FAT16文件系统

2019-07-30 15:01发布

  随着Flash Memory等非易失存储技术的发展,诞生了许多基于Flash存储技术的非易失大容量闪烁存储卡。其中SD卡以体积小、功耗低、口线少、操作方便等优势,被广泛应用于各种数码产品中,如数码相机、MP3等。SD卡同时也为低功耗、便携式动态心电监护仪器的采集、存储系统提供了理想的存储介质。本研究设计了一个基于MSP430系列单片机和SD卡的FAT16文件系统,该文件系统能够将采集的数据以Windows标准文件的形式存储在SD卡上,然后通过读卡器方便地将采集的数据传输到通用计算机上,进行进一步的数据处理和分析。
  1硬件功能原理及接口设计
  SD卡的外形和接口如图1所示。根据SD卡与主控制器的通信协议不同,SD卡对外提供两种访问模式[1]:SD模式和SPI模式。所用通信模式不同,SD卡引脚的功能也不同,具体引脚功能如表1所示。在具体通信过程中,主机只能选择其中一种通信模式,而且通信模式一旦选定,系统在通电情况下不能改变。SD模式下,主控制器使用SD总线访问SD卡,而通常的单片机没有硬件SD总线,尽管可以借助通用口线用软件仿真,但访问速度较低,还要占用大量CPU时间,而单片机多具有SPI总线,本文就利用SPI总线实现对SD卡的访问。下面主要介绍SPI总线方式。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
chenci2013
1楼-- · 2019-07-31 08:35
 BPB表从扇区字节地址0BH开始,共占25个字节,表2是从SD卡的首扇区读出的BPB表的内容示例。



chenci2013
2楼-- · 2019-07-31 12:42
  在分区引导记录之后是文件分配表FAT(File Allocation Table)区。FAT16的文件系统中有两份完全相同的文件分配表FAT1和FAT2,每份FAT占用空间的大小可从BPB表中查得。文件在磁盘上以簇为单位存储,但是同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,往往会分成若干簇,FAT表就是记录文件存储中簇与簇之间连接信息的,这就是文件的链式存储。FAT16以2个字节(即16位)表示1个簇,起始2个字节为F8FFH、FFFFH,FFFFH表示终止,0000H时表示未使用。

  紧跟在FAT表之后的是文件目录表FDT(File Directory Table),它固定占32个扇区,每个扇区可以容纳16个登记项,每个登记项的长度为32B。登记项的内容包括文件名、文件属性、文件修改时间和文件长度等。

  文件目录表之后就是数据区,用来存放文件数据,占用大部分磁盘空间。
chenci2013
3楼-- · 2019-07-31 15:39
 3 FAT16文件系统的实现

  单片机对SD卡底层的读写,按照FAT16的格式对SD卡上数据进行操作,就可在SD卡上创建文件、读写文件和删除文件,从而实现文件的管理。

  为了程序的可移植性和易用性,将整个文件系统分为3层,第1层是SD卡驱动层,第2层是FAT16文件系统层,第3层是应用层,提供给用户的接口函数。

  SD卡驱动层完成SD卡控制器中相应寄存器的设置和向SD卡发送命令,实现SD卡初始化、读、写等操作,目的是为FAT16文件系统层提供相应的功能函数,屏蔽直接对硬件的具体操作。

  FAT16文件系统层向应用层提供对文件和目录进行操作的API接口函数,使写入SD卡的数据能够在被装有Windows操作系统的上位机中得到正确访问。

  应用层直接使用文件系统层的接口函数完成对数据的操作,而不需要考虑使用函数的细节问题以及底层硬件的相关问题。

  FAT16文件系统向应用层提供的接口函数有:CreateFile(),创建文件;OpenFile(),打开文件;WriteFile(),写文件;ReadFile(),读文件;DelFile(),删除文件等。其中创建、读写、删除文件是应用程序使用的主要函数接口,下面对其作详细介绍。
chenci2013
4楼-- · 2019-07-31 18:41
  (1) 文件的创建
  在SD卡上创建文件或目录的过程就是在文件目录表FDT中申请登记项的过程,流程如图4所示。登记项包括文件名、文件长度、起始簇号等内容。

chenci2013
5楼-- · 2019-07-31 22:39
 精彩回答 2  元偷偷看……
chenci2013
6楼-- · 2019-08-01 00:18
  通过对SPI模式下SD卡读写和文件系统的研究,实现了单片机对SD卡FAT16文件的管理,包括文件的创建、读写、删除等操作。该方法为数据采集系统提供了一种非易失性存储器的解决方案,采集到的数据会以标准文件的格式记录到SD卡上,数据可在Windows下用读卡器读取,在保证高性价比的同时,又方便了数据的进一步分析、处理。通过长时间在心电图监测系统中的实际应用,证明了该方法的可行性。该文件系统的分层结构使得只需对底层驱动进行简单的修改就可以移植到闪存卡等其他存储介质上。该方案也可以应用到如MP3等与Windows有交互的移动存储设备中,便于文件的统一管理。

一周热门 更多>