2023年12月15日发(作者:)

SD 文件系统

SD文件系统

1

1

SD卡概述

22

SD卡通信协议

3

文件系统的实现

3

44

DE2实例

55

总结

一、 SD卡概述

1、SD卡简介(1)

SD卡(Secure Digital Memory Card)是一种基

于半导体快闪记忆器的新一代记忆设备。

SD卡数据传送和物理规范由MMC发展而来

一、 SD卡概述

1、SD卡简介(2)

特点:大容量、高性能、安全性高。

用途:可用在MP3、移动电话、PDA、数码相机、数

码摄像机、电子图书、微型电脑、AV器材等领域。

数据传输速率:SD卡读写速度比MMC卡要快四倍,

最大速率可达到10MB/秒。

几种SD卡的区分:普通SD,高速SD,SDHC。

一、 SD卡概述

2、SD卡内部结构

SD卡由9线接口控制,数

据线包括:CMD,CLK,DAT0-

DAT3。

包括6个寄存器

写保护

一、 SD卡概述

3、SD通信模式

一个主机一般情况下可以挂多张SD卡,最大10个堆

叠的卡。

主机访问模式:SD模式;SPI模式

一、 SD卡概述

4、SD卡通信

主机和SD卡之间的通信是通过命令和数据流实现

的,如下图所示:

命令发送/数据传输

二、 SD卡通信协议

1、SD卡接口可以支持两种操作模式

1、SD卡模式

2、SPI模式

主机系统可以选择以上其中任一模式,SD卡模式

允许4线的高速数据传输。SPI模式允许简单通用的

SPI通道接口,这种模式相对于SD模式的不足之处

是丧失了速度。

二、 SD卡通信协议

SD模式(1)

SD模式总线连接图

二、 SD卡通信协议

SD模式(2)

SD模式针脚定义

SD总线允许1线和4线数据信号设置。

二、 SD卡通信协议

SPI模式(1)

SPI模式连接图

二、 SD卡通信协议

SPI模式(2)

SPI模式针脚定义

注意:SPI模式时,数据信号需要在主机端用10-

100K欧的上拉电阻。

二、 SD卡通信协议

2、SD模式介绍

SD模式下的命令和数据都有一个开始位和结束位。

数据传输格式主要有命令、响应和数据格式。

命令格式

命令: 在CMD上传输的用于启动一个操作的比特流

由主机发往从机, 可以是点对点也可以是广播的。

二、 SD卡通信协议

响应格式

响应格式

响应: 在CMD上传输的用于回答命令的比特流,由从

机发往主机。

二、 SD卡通信协议

数据格式

数据格式

数据: 是在DAT上传输的比特流,双向传输。

二、 SD卡通信协议

3、SD模式下的单块读

读SD卡的顺序为:发送读命令接受到响应信号读数据

二、 SD卡通信协议

4、SD模式下的单块写

写SD卡的顺序为: 发送写命令接受响应信号写

入数据发送CRC

二、 SD卡通信协议

5、SD模式下的常用命令

基本命令Class0

二、 SD卡通信协议

读命令Class2

二、 SD卡通信协议

写命令Class4

二、 SD卡通信协议

擦除命令Class5

三、 SD卡文件系统的实现

三、 SD卡文件系统的实现

1、文件系统

文件系统:文件命名、存储和组织的总体结构。

Windows XP 支持下列三种文件系统:FAT16、

FAT32 和 NTFS。

FAT16(文件分配表):它最大可以管理2GB的分

区,但每个分区最多只能有65536个簇(簇是磁盘

空间的配置单位)。

三、 SD卡文件系统的实现

三、 SD卡文件系统的实现

2、SD卡存储结构

SD卡存储结构包括: MBR区、

保留扇区、FAT1文件分配表1、

FAT2文件分配表2、FDT文件根目

录区、User Data。

MBR 区

保留扇区

FAT1

FAT2

FDT区

User Data

三、 SD卡文件系统的实现

保留扇区(BPB表)

名称

BPB_BytesPerSec

BPB_SecPerChus

BPB_RsvdSecCnt

BPB_NumFATs

BPB_RootEntCnt

BPB_TotSec16

BPB_MediaType

BPB_FATSize16

BPB_SecPerTrk

BPB_NumHeads

BPB_HiddSec

BPB_TotSec32

占用字节数

2

1

2

1

2

2

1

2

2

2

4

4

内容

0x0200

0x08

0x0004

0x02

0x0200

0x0000

0xF8

0x00F2

0x3F

0x00FF

0x00000000

0x00078A00

说明

扇区大小为512字节

每簇有8个扇区

有4个保留扇区

有2个FAT表

有512个登记项

0表示总扇区数大于65536

磁盘介质为硬盘

每个FAT表占242个扇区

每个磁道有63个扇区

磁头数为255

有0个隐藏扇区

共有494080个扇区

三、 SD卡文件系统的实现

FAT文件分配表(1)

文件在磁盘中以簇为单位进行存储,同一个文件的数

据可能不连续地存储在几个簇上,FAT表就是记录文件

簇与簇之间的连接信息,这就是所谓的链式存储。

FAT表中,族号是按照顺序依次排列的。

Cluster 2

Cluster 3

FAT

Cluster n-1

Cluster n

三、 SD卡文件系统的实现

FAT文件分配表(2)

链式存储:为每个文件构造链表,文件的每个

族号存储下一个族号的序号,每个族号都固定对

应一个存储块。

起始族号

5

6

6

11

11

下个

族号

……

20

最末

族号

FAT区

5

DATA区

文件 文件 文件 文件

块0 块1 块2 块3

……

文件

块N

三、 SD卡文件系统的实现

FAT文件分配表(3)

通用的FAT表及其意义如下:

所表示的意义

空簇

文件的下一簇

文件的最后一簇

坏簇

FAT12代码

0x000

0x002-0xFEF

0xFFF

0xFF7

FAT16代码

0x0000

0x0002-0xFFEF

0xFFFF

0xFFF7

FAT32代码

0x00000000

0x00000002-

0xFFFFFF0E

0xFFFFFF0F

0x00000001

三、 SD卡文件系统的实现

FDT表

FDT表(也称为文件根目录区),主要记录分区中目

录和文件的名称、属性、起始簇号等信息。

名称

DIR_Name1

DIR_Name2

DIR_Attr

DIR_Reserved

DIR_WrtTime

DIR_WrtDate

DIR_FstCluLO

DIR_FileSize

偏移量

0

8

11

12

22

24

26

28

字节数

8

3

1

10

2

2

2

4

意义

文件的名称,首字节为0x00表

示未使用

扩展名

属性[1]

建立时间,校验等信息

最后写入时间

最后写入日期

起始簇的低16位

文件的大小,目录的此项为0

三、 SD卡文件系统的实现

3、文件操作

起始扇区号=隐藏扇区数+保留扇区数+2*(FAT表占

用扇区数)+根目录区所占扇区数+(起始簇号-2)*每

簇的扇区数

读文件:FAT表起始族号起始扇区号 最后

一个族号? 读下一个族号扇区号 ……最后

一个族号

三、 SD卡文件系统的实现

4、写文件/删除文件

写文件:确定FDT登记项(文件名及信息) 计

算所需要的族数写FDT表写FAT1表 写数据

删除文件:将FDT表中的数据置为0FAT1中的数据

置为0

四、 DE2实例

1、DE2试验平台

四、 DE2实例

2、DE2硬件结构

适合模式:1线SD模式、SPI模式。

四、 DE2实例

3、DE2 读/写文件

文件系统采用FAT16,文件名支持8.3格式。

写文件

读文件

五、总结

SD卡其容量大、体积小等特点,为手机、PDA、电子图

书等数码产品提供了圆满的嵌入式解决方案!