基于A(yíng)RM9-μC/OS-II軟硬件平臺的SD卡文件系統的設計與實(shí)現
隨著(zhù)嵌入式式技術(shù)的不斷發(fā)展,ARM處理器憑借其高性能、廉價(jià)、耗能低的優(yōu)質(zhì)特性而得到廣泛應用。文中主要針對貨車(chē)動(dòng)態(tài)稱(chēng)重系統中大量實(shí)時(shí)載重數據存取的需求,在ARM9嵌入式處理器和μC/OS-II操作系統基礎上,設計實(shí)現了一種SD卡文件系統。該系統具有實(shí)時(shí)性強、存取速率高、易維護,易移植等特點(diǎn)。
本文引用地址:http://dyxdggzs.com/article/170576.htm1 硬件接口電路設計
本系統硬件開(kāi)發(fā)平臺處理器為S3C2440A,是三星公司推出的16/32位RISC微處理器,ARM920T內核,主頻400 MHz,最高可達533 MHz,內部具有豐富的系統外圍控制器和多種通信接口。SD卡支持SPI和SD兩種通信模式,S3C2440A具有SD卡接口,支持SD總線(xiàn)模式,所以不再像低端的ARM處理器那樣采用SPI模式,而是采用SD總線(xiàn)模式,這樣可以大大提高SD卡的讀寫(xiě)速度。S3C2440A與SD卡讀寫(xiě)器的接口電路如圖1所示。

SD卡的DAT0~DAT3、CLK(時(shí)鐘線(xiàn))和CMD(命令線(xiàn))分別連接到S3C2440A的SDDATA0~SDDATA3、SDCLK和SDCMD引腳。SD卡支持單線(xiàn)和寬總線(xiàn)的數據傳輸,寬總線(xiàn)數據一次傳4位,數度更快,因此,此設計采用寬總線(xiàn)方式。
μC/OS-II是一種可移植的,可植入ROM的,可裁剪的,搶占式的,實(shí)時(shí)多任務(wù)小型的嵌入式操作系統,它采用可剝離式內核實(shí)施任務(wù)調度,實(shí)時(shí)性很強,而且每個(gè)任務(wù)具有唯一的優(yōu)先級,能夠保證就續表中任務(wù)優(yōu)先級最高的任務(wù)優(yōu)先執行。μC/OS-II大部分代碼是用移植性很高的C語(yǔ)言編寫(xiě)的,只極少部分與處理器密切相關(guān)的部分代碼用匯編語(yǔ)言編寫(xiě),因此只需要做很少的工作就可以很方便地將它移植到各種不同構架的微處理器上。

為了增強軟件的可移植性,易維護性,程序設計時(shí)采用層次化,模塊化設計。模塊化結構如圖2所示,除了用來(lái)進(jìn)行管理的操作系統外,共分為4個(gè)模塊,包括SD卡底層驅動(dòng),文件系統,API接口,用戶(hù)應用程序。底層驅動(dòng)完成SD卡初始化,以及實(shí)質(zhì)上的讀寫(xiě)功能;文件系統采用PC機普遍支持的FAT32文件系統規范來(lái)設計,完成文件的創(chuàng )建,讀寫(xiě),刪除功能;API接口封裝文件系統提供的函數,供上層應用使用;用戶(hù)應用程序通過(guò)調用文件系統提供的API函數,完成相應的功能。各個(gè)模塊的具體實(shí)現下面會(huì )做以說(shuō)明。
2.1 底層驅動(dòng)設計
2.1.1 SD卡初始化
SD卡讀寫(xiě)操作都是基于命令的,通過(guò)向SD卡發(fā)送命令并讀取命令的響應來(lái)實(shí)現對SD卡的控制。在SD卡讀寫(xiě)之前,首先要進(jìn)行初始化操作。這是確保SD卡能進(jìn)行正常數據讀寫(xiě)的前提,SD卡初始化完成了SD卡上電,確認,設置邏輯地址,使其進(jìn)入傳輸狀態(tài)以及設置總線(xiàn)帶寬幾大主要工作。需要注意的是,在發(fā)送使SD卡空閑命令CMD0之前至少等待74個(gè)時(shí)鐘,確保SD卡進(jìn)入SD總線(xiàn)模式。SD卡初始化代碼編寫(xiě)如下:


評論