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