SD卡和文件系统技术分析.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SD卡和文件系统技术分析

主要内容 一 SD卡与单片机的接口 二 SD卡文件系统的结构分析 三 SD卡文件系统的实现 四 总结 一 SD卡与单片机的接口 1 SD卡的接口规范 SD卡的接口可以支持两种操作模式: 。SD卡模式 SD卡模式允许4线的高速数据传输。 。SPI 模式 SPI模式使用简单通用的SPI通道接口进行数据传输。 2 SPI模式 在SPI模式中,通过4条信号线完成数据的传输。这4条信号线分别是时钟CLK、数据输入DI、数据输出DO和片选CS。 SPI模式相对于SD模式的不足之处是丧失了速度。但是由于SD卡和MMC卡都兼容SPI模式,这样使得MMC卡主机系统通过很小的改动就可以使用SD卡。 SPI模式下SD卡的针脚定义 SD卡底层读写原理 SD卡读写操作都是基于命令的,通过向SD卡发送相应的命令并读取相应的响应来实现对SD卡的控制。 命令的基本格式为: 1字节命令操作数+4字节数据+1字节CRC 以RESET命令(CMD0)为例: 0x40,0x00,0x00,0x00,0x00,0x95 二 SD卡文件系统的结构分析 要使写入SD卡的数据能在Windows下访问,需要在SD卡上创建Windows支持的FAT16文件系统。 SD卡上的FAT16文件系统的结构包含: (1)分区引导记录 (2)文件分配表(FAT) (3)文件目录表 (4)数据区 1 分区引导记录区通常占用分区的第一个扇区,共512 个字节,通常包含4块内容: ① BIOS参数记录块BPB(BIOS Parameter Block) ; ② 磁盘标志记录表; ③ 分区引导记录代码区; ④ 结束标志55AA。 2 文件分配表 在分区引导记录之后是FAT(File Allocation Table,文件分配表)。 文件在磁盘上以簇为单位存储,但是同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,往往会分成若干簇,FAT表就是记录文件存储中簇与簇之间连接信息的,这就是文件的链式存储。 FAT16以2个字节(即16位)表示1个簇,这就是FAT16与FAT32之间的最主要的区别。 另外,FAT表记录了磁盘数据文件的存储链表,对于数据的读取而言是极其重要的,所以FAT文件系统为FAT表创建了一份备份,也就是FAT2。FAT2与FAT1的内容通常是即时同步的,也就是说如果通过正常的系统读写对FAT1做了更改,那么FAT2也同样被更新。 3 文件目录表 紧接在FAT表之后的是文件目录表FDT,固定占32个扇区,每个扇区可以容纳16个登记项,每个登记项的长度是32字节。 4 数据区 文件目录表之后就是数据区DATA,用来存放文件数据,占用大部分的磁盘空间。 三 SD卡文件系统的实现 单片机对按照FAT16 的格式对SD卡上数据进行操作,就可在SD卡上创建文件、读写文件和删除文件等,从而实现文件的管理。 文件(或目录) 的创建 在SD卡上创建文件(或目录) 的过程就是在文件目录表FDT 中申请登记项的过程。登记项中包括文件名、文件长度和起始簇号等内容。为此定义了如下结构: typedef struct { u8 FileName[8] ; / / 文件名,不足8 字节用空格补充 u8 ExtName[3] ; / / 扩展名 u8 attribute ;   / / 属性,典型值:存档(0x20) ,卷标(0x08) u8 reserved[10] ; / / 保留 u16 time ; / / time=Hr*2048+Min*32+Sec+2 u16 date ; / / date=(Yr-1980)*512+Mon*32+Day u16 StartCluster ; / / 起始簇号 u32 FileLength ; / / 文件长度 } DIR_tag ; 2 文件的读写 SD卡上文件都是以簇为单位存取的。当读取SD卡上的文件时,首先要根据文件名查找到该文件的目录登记项。根据目录登记项中的起始簇号既可找到文件在数据区DATA中第1簇的内容,又可在FAT表中找到第2个簇号。根据第2个簇号又能找到第2簇的内容和FAT表中的第3个簇号。这样,就可以根据FAT表中的簇号读取到全部文件数据。

文档评论(0)

wbjsn + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档