基于單片機(jī)的SD卡FAT文件系統(tǒng)讀寫設(shè)計(jì)
隨著信息技術(shù)的飛速發(fā)展,高容量存儲(chǔ)芯片日益向大容量小體積發(fā)展,其中以SD卡、Micro SD卡為突出代表。SD卡由日本松下、東芝及美國SanDisk公司于1999年8月共同開發(fā)研制。大小猶如一張郵票的SD卡,重量只有2 g,卻擁有高記憶容量、快速數(shù)據(jù)傳輸率、極大的移動(dòng)靈
活性以及很好的安全性。通過單片機(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ī)上,并通過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ún)R編語言。
④移植條件:對(duì)于本文中的SD卡讀取與寫入,用戶的單片機(jī)推薦使用HCSl2X系列,也可使用HCSl2系列,但總線超頻會(huì)不穩(wěn)定,從而影響SD卡讀寫速率以及穩(wěn)定性。
1.2 設(shè)計(jì)思想
圖1顯示了本文中所使用的SD卡FAT文件系統(tǒng)通過MC9S12XSl28MAA進(jìn)行解析的軟硬件結(jié)構(gòu)體系。編譯鏈接軟件使用CodeWarrior 5.O,硬件采用MC9S12XSl28MAA單片機(jī)與Kingston公司的Micro SD卡。代碼由4部分組成:用戶應(yīng)用部分(由用戶編寫控制,本文使用MC9S12XS128MAA SCI串口模塊進(jìn)行信息調(diào)試),FAT文件系統(tǒng)讀取解析部分,硬件控制部分(通過單片機(jī)SPI模塊與SD卡連接),以及單片機(jī)CPU的初始化部分。其中,SPI模塊與SD卡連接的硬件控制部分,以及FAT文件系統(tǒng)的讀取解析部分是本文的重點(diǎn)。
其中,Sd_SPI.h是關(guān)于SD卡讀取寫入部分的一些宏定義、常量和函數(shù)的聲明;Sd_SPI.c包括了通過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ù)的聲明。
51單片機(jī)相關(guān)文章:51單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
晶振相關(guān)文章:晶振原理 鎖相環(huán)相關(guān)文章:鎖相環(huán)原理
評(píng)論