- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于MCF51QE128的SD卡文件系统设计
摘要:随着嵌入式系统的发展,越来越多的嵌入式设备需要处理大量的数据,使用文件系统将成为这类嵌入式应用的一个必然趋势。本文基于FREESCALE公司MCF51QEl28微控制器和SD卡,结合实验数据深入探讨了FATl6文件系统及其存储原则,实现了文件的创建、打开和多扇区数据的读写。
引言
MCF51QEl28微控制器是FREESCALE公司生产的8位/32位兼容的低功耗微处理器。工作电压的典型值是3.6V,与SD卡的工作电压兼容,可直接与SD卡连接而无需电平转换电路。SD卡因为其体积小、功耗低、容量大且成本低,目前被广泛应用于各类嵌入式数据采集系统中。本文针对此类应用,通过实测512MB SD卡数据,以实例的形式深入解析了FATl6文件系统的存储原则,并给出了实现方案。
1 FATl6文件系统
SD卡格式化为FAT文件系统时,一般只采用1个分区,以便于存储空间的管理。FATl6主要由图1所示的6个阴影部分组成。通常情况下,每扇区的大小为512字节。
1. 1 主引导记录
MBR(Master Boot Record,主引导记录)总是位于存储卡的起始位置,即扇区O。图2是主引导记录的详细信息。由于只有1个分区,所以由偏移量0x1BE可找到第1分区的入口,接着由偏移量0x08找到第1分区的相对起始扇区,即第1分区引导记录所在的扇区。以512 MB SD卡为例,读取图2中地址OxlC6~OxlC9处的4个字节数据(由高位向低位读取),即Ox000000E9。可知,第1分区引导记录位于SD卡的第0xE9个扇区。
1.2 分区引导记录
分区BR(Boot Record,引导记录)位于分区的第O扇区。它由跳转代码,OEM(Original Eqtlipment Manufacturer,原始设备制造商),BPB(BIOs Parameter Block,BIOS参数块),扩展BPB,引导代码和结束标志(Ox55 AA)组成。图3重点列出了分区引导记录中BPB的各项参数。读图3中Ox000000E9扇区,由偏移量0x0B处2字节数据Ox0200=512可知,SD卡每扇区的字节数为512。类似地,可得到其他相关参数。
1.3 FAT表和文件存储原则
FATl6文件系统主要通过FAT表(FATl和FAT2)、根目录和数据区实现对文件的存储管理。FAT表记录了数据文件的存储链表,对数据的读取极为重要,通常都会有一个或多个备份。这里,FAT2就是对FATl的备份,必须随着FATl即时同步更新。根目录一般以32字节为单位来存放文件记录。
来源:维库开发网