-
. z
随着计算机应用技术的飞速开展,移动存储设备得到了广泛的应用。其中CF(pactFlash)卡诞生于19LBA模式的转换如下:
其中LBA是逻辑块地址,是柱面号,HpC是每个柱面的磁头数,Hn是磁头数,Sn是扇区号,SpH是每个磁头(簇)的扇区数。
3CF卡的文件存储
FAT(FileAllocationTable)文件系统产生于20世纪70年代末到80年代初,是微软的MS-DOS操作系统所支持的文件系统。目前FAT文件系统有3种类型:FATl2、FATl6和FAT32。它们的不同是在磁盘上实际的FAT构造中每个记录(Entry)所占的位数不同。FATl2占12位(1.5字节),FATl6占16位(2字节),FAT32占32位(4字节)。每一个记录中的数据都按照低字节在前、高字节在后排列。
在CF卡格式化时,首先要了解CF卡的容量等一系列信息。通过对CF卡写入命令ECH就可以读出1个扇区,其中包含了该CF卡的一些参数的信息,如容量、默认的柱面数、默认的磁头数、每个扇区的字节数、每个磁道的扇区数和CF卡上总的扇区数等。这为格式化CF卡提供了重要的数据。
在格式化后的CF卡中,FAT文件系统由如下4局部组成:
0区:保存区(引导区)。
1区:FAT区。
2区:根目录区(FAT32中存在的是浮动的FDT表)。
3区:文件、目录与数据区(下面简称数据区)。
引导区中包含了整个FAT文件系统的重要信息,即BPB(BIOSParameterBlock)。下面为BPB的几个重要数据构造:
在FAT32格式下,BPB?RootEntt为’0’,因此RootDirSec总是为’0’。
如果BPB.FATSzl6不为’0’,就可以根据下面公式计算数据区的第一个扇区地址。
FirstDataSec="BPB".ResvdSect+(BPB.NumFATs*BPB.FATSzl6)+RootDirSec(4)
因此数据区所占用的扇区数:
DataSec="BPB".TotSecl6-FirstDataSec(5)
根目录的第一个扇区地址(在FATl2、FATl6下):
FirstRootDirSec="BPB".ResvdSect+(BPB.NumFATs*BPB.FATSzl6)
如果BPB.FATSzl6为’0’,则BPB.FATSz32一定不为’0’,则有:
-
. z
FirstDataSec="BPB".ResvdSect+fBPB.NumFATs*BPB.FATSz32)+RootDirSec(6)
DataSec="BPB".TotSec32-FirstDataSec(7)
FirstRootDirSec="BPB".ResvdSect+〔BPB.NumFATs*BPB.FATSz32)(8)
如果CF卡有多个分区,则(3)~(8)式计算出的参数只是相对当前分区而言的,且数据区
基于单片机的cf卡文件存储 来自淘豆网m.daumloan.com转载请标明出处.