大容量SD卡在海洋數據存儲中的應用
由于大容量SDHC的出現,SD1.x滿(mǎn)足不了SDHC的容量要求,標準已經(jīng)升級為SD2.0。但也因此出現了許多電子設備無(wú)法驅動(dòng)大容量SD卡的情況,如何識別SD1.x與SD2.0就顯得尤為重要。SD2.0的SPI模式初始化流程如圖3所示。

判斷是否為SD2.0卡,CMD8(SD2.0新增的命令)是關(guān)鍵。若卡是SD2.0,則發(fā)送CMD8將會(huì )返回有效響應;若是SD1.x,則返回非法響應,這樣就可以識別SD卡的類(lèi)型。
SD1.x與SD2.0的最大不同在于命令地址的表示。SD1.x的地址單位是字節,而SD2.0的地址單位是扇區,地址仍然采用32位4個(gè)字節來(lái)表示。因此在讀寫(xiě)操作時(shí)應該根據不同的卡對地址進(jìn)行相應的處理,若是SD1.x則寫(xiě)入字節地址,若為SD2.0則寫(xiě)入扇區地址。
3 FAT32文件系統
目前有3種FAT文件系統:FAT12、FAT16和FAT32。它們的區別在于文件分配表(File Allocation Table,FAT)中每一表項的大小(也就是所占的位數):FAT12為12位,FATl6為16位,FAT32為32位。本設計選擇FAT32文件系統。
由于文件存儲在硬盤(pán)上占用的存儲器空間以簇為最小單位,FAT32文件系統不適合管理容量低于512 MB的存儲器。簇如果太大,存儲小文件會(huì )浪費大量的存儲空間;如果太小,FAT表會(huì )變大,不方便管理。綜合考慮,FAT32每簇大小為4 KB。
3.1FAT32文件系統結構
FAT32文件系統可以分為以下幾部分;保留區(reserved region),存放FAT文件系統的重要參數和引導程序;FAT區(FAT region),記錄簇(cluster)的使用情況;根目錄區(root directory region),記錄根目錄信息,FAT32文件系統舍棄了這個(gè)區,根目錄區可以指定為任意一個(gè)簇;文件目錄數據區(file and directory data region),是各種文件數據實(shí)際存放的區域。
保留區中的BPB表從扇區0偏移11個(gè)字節開(kāi)始,共占25字節。表2是格式化為FAT32文件系統的8 GBSD卡首扇區中讀出的BPB參數內容。

在保留區之后是FAT區,存有文件分配表。一般文件系統中有2份文件分配表FAT1和FAT2,每份FAT表占用空間的大小可從BPB表中查得。
評論