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

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

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