大容量輔助存儲系統的設計
Unsigned char fCHundredth;
Unsigned char fCTime[2];
Unsigned char fCDate[2];
Unsigned char fADate[2];
Unsigned char fHighClust[2];
Unsigned char fMTime[2];
Unsigned char fMDate[2];
Unsigned char fLowCluster[2];
Unsigned char fFileSize[4];
}
文件目錄表之后就是數據區DATA,用來存放文件數據,占用大部分的磁盤空間。數據的 讀寫以扇區為單位,一個簇所包含的扇區數由BPB參數來決定,通過根目錄找到對應的文件 名,格式化完成或進行寫操作時,就要新建對應文件名的文件分配表區和根目錄區,通過文 件分配表區中的保存的簇號,完成對應的數據讀寫,完成一個簇的操作后,根據文件分配表 的鏈式結構,找到文件的待操作的下一個簇的簇號,進行相應的操作,直到文件結束。
2.3 數據塊的寫操作
完成SD卡的初始化之后即可進行它的讀寫操作。SD卡的讀寫操作都是通過發送SD卡命令 完成的。SPI總線模式支持單塊(CMD24)和多塊(CMD25)寫操作。單塊寫操作的數據塊長 度只能是512字節。單塊寫入時,命令為CMD24,當應答為0時說明可以寫入數據。SD卡對每 個發送給自己的數據塊都通過一個應答命令確認,它為1個字節長,當低5位為00101時,表 明數據塊被正確寫入SD卡。多塊寫是單塊連續寫的循環操作,只是寫單塊和寫多塊開始時的 令牌包有所不同,多塊操作是從指定位置開始寫下去,直到SD卡收到一個停止命令CMD12時 才停止。多塊數據寫時序如圖3所示。
3 結束語
通過對SPI模式下SD卡寫操作和文件系統的研究,實現了單片機對SD卡FAT32文件的操 作,包括文件的創建、寫操作等。該課題研究在數據采集系統方面有著廣泛的應用前景,項 目實施以來直接經濟效益20萬元。本文創新點:為數據采集系統提供了一種非易失性存儲的 解決方案,采集到的大量數據會以標準數據文件的格式記錄到SD卡上。
評論