HCS12X單片機(jī)的SD卡FAT文件系統(tǒng)讀寫設(shè)計(jì)
摘要:基于HCSl2X單片機(jī)SPI模塊讀取Micro SD卡與SD卡,并解析SD卡上FAT文件系統(tǒng)以實(shí)現(xiàn)文件的讀取與寫入。測(cè)試證明,系統(tǒng)對(duì)FAT文件系統(tǒng)的讀取穩(wěn)定,誤差小,速度較快。使用HCSl2X類單片機(jī)對(duì)SD卡進(jìn)行讀取,在汽車智能設(shè)計(jì)和單片機(jī)調(diào)試方面有較高的應(yīng)用價(jià)值。
關(guān)鍵詞:HCSl2X單片機(jī);SPI模塊;SD卡;Micro SD卡;FAT文件系統(tǒng)
隨著信息技術(shù)的飛速發(fā)展,高容量存儲(chǔ)芯片日益向大容量小體積發(fā)展,其中以SD卡、Micro SD卡為突出代表。SD卡由日本松下、東芝及美國(guó)SanDisk公司于1999年8月共同開發(fā)研制。大小猶如一張郵票的SD卡,重量只有2 g,卻擁有高記憶容量、快速數(shù)據(jù)傳輸率、極大的移動(dòng)靈
活性以及很好的安全性。通過(guò)單片機(jī)處理SD卡信息,可以將信息化嵌入式產(chǎn)業(yè)向更小體積發(fā)展??紤]到穩(wěn)定性與讀取速度,研究中采用了Fr-eescale公司的16位單片機(jī)MC9S12XSl28MAA。為了進(jìn)一步滿足嵌入式研究的實(shí)時(shí)調(diào)試與應(yīng)用需要,把SD卡的讀取以及FATl6文件系統(tǒng)的讀取寫入移植到此單片機(jī)中,使開發(fā)應(yīng)用有更好的擴(kuò)展性。本文首次把FATl6文件系統(tǒng)的讀取移植到HCSl2X單片機(jī)上,并通過(guò)HCSl2X單片機(jī)的SPI模塊進(jìn)行SD卡的讀寫,取得了良好的效果。
1 研究平臺(tái)和設(shè)計(jì)思想
1.1 平臺(tái)介紹
①M(fèi)CS9S12XSl28MAA:Freescale公司16位單片機(jī)HCSl2X家族中的一員,相比于其他HCSl2X單片機(jī),去除了XGATE協(xié)處理器,大大降低了成本。此單片機(jī)內(nèi)嵌了許多資源,包括128KB Flash、4 KB EEPROM、16 KBROM以及多種通信接口。
②Micro SD卡:采用SD架構(gòu)設(shè)計(jì)而成,尺寸幾乎只有一片指甲蓋大小,由摩托羅拉公司與SanDisk公司共同研發(fā),是一種超小型卡(11 mm×15 mm×1 ram),約為SD卡的1/4。它支持3種傳輸模式,SPI模式(獨(dú)立序列輸入和序列輸出),1位SD模式(獨(dú)立指令和數(shù)據(jù)通道,獨(dú)有的
傳輸格式),以及4位SD模式(使用額外的引腳以及某些重新設(shè)置的引腳,支持4位寬的并行傳輸)。
③CodeWarrior:Freescale公司開發(fā)的編程環(huán)境。本文使用的CodeWarrior Special 5.0 For S12(X)是專門針對(duì)HCSl2X單片機(jī)開發(fā)的,可以進(jìn)行程序的編輯、編譯、鏈接和在線調(diào)試等多項(xiàng)功能,支持在C語(yǔ)言中嵌入?yún)R編語(yǔ)言。
④移植條件:對(duì)于本文中的SD卡讀取與寫入,用戶的單片機(jī)推薦使用HCSl2X系列,也可使用HCSl2系列,但總線超頻會(huì)不穩(wěn)定,從而影響SD卡讀寫速率以及穩(wěn)定性。
1.2 設(shè)計(jì)思想
圖1顯示了本文中所使用的SD卡FAT文件系統(tǒng)通過(guò)MC9S12XSl28MAA進(jìn)行解析的軟硬件結(jié)構(gòu)體系。編譯鏈接軟件使用CodeWarrior 5.O,硬件采用MC9S12XSl28MAA單片機(jī)與Kingston公司的Micro SD卡。代碼由4部分組成:用戶應(yīng)用部分(由用戶編寫控制,本文使用MC9S12XS128MAA SCI串口模塊進(jìn)行信息調(diào)試),F(xiàn)AT文件系統(tǒng)讀取解析部分,硬件控制部分(通過(guò)單片機(jī)SPI模塊與SD卡連接),以及單片機(jī)CPU的初始化部分。其中,SPI模塊與SD卡連接的硬件控制部分,以及FAT文件系統(tǒng)的讀取解析部分是本文的重點(diǎn)。
其中,Sd_SPI.h是關(guān)于SD卡讀取寫入部分的一些宏定義、常量和函數(shù)的聲明;Sd_SPI.c包括了通過(guò)SPI模塊讀寫SD卡的代碼;Fat.h是關(guān)于Fat文件系統(tǒng)解析的全局變量、宏定義以及函數(shù)聲明;Fat.c包括了Fat文件系統(tǒng)解析的代碼;SimpleFat.c是簡(jiǎn)易讀取Fat文件系統(tǒng)信息的代碼;SimpleFat.h是其全局變量以及函數(shù)的聲明。
評(píng)論