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、电子图
书等数码产品提供了圆满的嵌入式解决方案!


发布评论