新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > TransFlash存儲卡在嵌入式系統調試中的應用

TransFlash存儲卡在嵌入式系統調試中的應用

作者: 時間:2013-04-24 來源:網絡 收藏

摘要:硬件平臺基于應用處理器PXA310,軟件平臺基于嵌入式Linux的操作系統。首先介紹了與應用處理器的連接電路設計。然后介紹驅動程序的設計和的掛載方法。在TF卡驅動程序設計中采用了SPI工作模式和FAT32文件系統,描述了FAT32文件系統的移植。最后介紹了系統調試,并展示了TF卡在視頻數據采集單元中應用的設計結果。
關鍵詞:TF卡;;;

0 引言
調試一般使用串口、JTAG、USB或網卡來下載系統鏡像到目標機中。使用串口下載鏡像,協議簡單,接口通用,但傳輸速率太慢。使用JTAG下載鏡像,傳輸速率較高,但需要專用的JTAG調試器,價格較高,限制了調試環(huán)境。使用USB或網卡下載鏡像速度快、接口通用,但一般做成產品后的嵌入式設備不需要留出通用的USB或以太網接口,從而增加了設計的復雜性和開發(fā)成本。在移動嵌入式產品開發(fā)過程中,如果使用TransFlash(TF)卡代替USB或以太網口,由于TF卡一般又都是移動嵌入式產品的必要構成部分,這樣做一般可以減小調試的復雜性和成本。本文提出使用TF卡更新鏡像的方法,并在實際的嵌入式系統調試中成功應用。使用TF卡下載系統鏡像,速度與通用性都很好,既省去了調試中對其他下載設備的設計需求,又解決了最終產品大容量存儲器的設計問題。

1 TransFIash卡與應用處理器的連接電路設計
本文調試的嵌入式系統,是一種視頻數據采集與傳輸單元,以PXA310為中央處理器,采集到的視頻數據由PXA310進行壓縮編碼處理,之后發(fā)送到網絡中去,供用戶查看。系統調試過程中,視頻數據可以存儲到TF卡中。
TF卡模塊在系統中主要有兩個方面的作用:
一是在嵌入式系統開發(fā)調試過程中用于將系統鏡像到目標版;
二是作為最終嵌入式系統產品的大容量存儲器。
SD卡有兩個可選的通信協議:SD模式和SPI模式。SD模式是SD卡標準的讀寫方式,但要求主控制器帶有SD卡控制器。PXA310本身沒有TF卡控制器接口,選用SD模式通信就無形中增加了產品的硬件成本,選擇SPI模式可以說是一種最佳的解決方案,相對于SD模式,SPI模式接口與協議簡單、易于操作。這時TF卡在PXA3 10 MMC/SD/SDIO主控制器控制下工作。

2 Blob中TF卡的驅動設計以及FAT32文件系統移植
2.1 設計TF卡SPI模式驅動
TF卡操作遵循SD卡協議,TF卡的操作完全與SD卡相同。相對于SD模式,SPI模式接口與協議簡單、易于操作。PXA310帶有MMC/SD/SDIO主控制器,但由于Blob中沒有提供SD卡與主控制器的具體驅動,實現完整驅動的難度較大,故本文采用GPIO口模擬的SPI模式讀寫TF卡,運行到Linux內核后再加載主控制器驅動運行SD模式的方式,性能與實現難度都可兼顧。

本文引用地址:http://www.2s4d.com/article/148043.htm

a.JPG


SPI模式TF卡總線采用主從問答式協議。主機發(fā)送命令Command,TF卡應答回復Response。SD卡命令有兩種,CMDx和ACMDx。ACMD是應用指令集,屬于擴展指令集,在發(fā)送任何的ACMD之前,必須先發(fā)送CMD55激活,才可以使用ACMD指令集。發(fā)送完一個ACMD,并且卡響應了此指令之后,CMD55的作用就消失了,所以要發(fā)送多個或多次發(fā)送一個ACMD,需要循環(huán)發(fā)送CMD55+ACMD。
2.2 SPI模式初始化TF卡流程
TF卡默認的通信模式是SD模式,本文要在SPI模式下設計TF卡驅動,需要從SD模式切換到SPI。為此,先將TF卡上電,延時74個時鐘周期后發(fā)送復位命令CMD0,同時將SD卡的CS片選信號置低,若此時接收到應答信號為0x01,說明TF卡進入了SPI模式。
TF卡與MMC卡都可用SPI模式驅動,故在初始化時可考慮與MMC卡的兼容性。在發(fā)送CMD0成功接收到應答信號后,連續(xù)發(fā)送CMD55+ACMD41,若CMD55回復0x01而ACMD41回復0x00,則TF卡初始化成功。若沒有完整的應答,則改發(fā)CMD1,若CMD1成功回復0x00,則MMC卡初始化成功。
在SPI模式下,TF卡的初始化時鐘頻率不能超過400 kHz。初始化成功后,就可以配置高速時鐘下TF卡的讀寫操作了。圖2為TF卡初始化流程圖。

b.JPG


在Blob中完成TF卡初始化,還需要初始化PXA310的GPIO口,并根據對應TF卡的引腳配置其輸入輸出關系。
在Blob中,PXA3 10的PXA_SD_D2、PXA_SD_D3、PXA_SD_CMD、PXA_SD_CLK、PXA_SD_D0、PXA_SD_D1這幾個I/O口并沒設置為GPIO口,不能在軟件上進行讀寫操作,要使用SPI模式,必須將這幾個IO口設置為GPIO。通過在MFP寄存器中配置IO口的功能號,再配置相應參數即可實現。
2.3 通過SPI讀寫TF卡的程序設計
TF卡的讀寫以塊為單位,初始化完成后,使用CMD16設置SD卡讀寫塊長度(512 B),發(fā)送CMD17和CMD24讀單塊寫單塊,發(fā)送CMD18和CMD25讀多塊和寫多塊。實現TF驅動層中讀寫函數的邏輯流程如圖3所示。

c.JPG


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉