STM32外设SDIO应用之SD卡Word文档下载推荐.docx
- 文档编号:20666275
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:32
- 大小:173.70KB
STM32外设SDIO应用之SD卡Word文档下载推荐.docx
《STM32外设SDIO应用之SD卡Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《STM32外设SDIO应用之SD卡Word文档下载推荐.docx(32页珍藏版)》请在冰豆网上搜索。
2、SD模式
1、STM32的SDIO适配器原理框图:
位
47
46
[45:
40]
[39:
8]
[7:
1]
宽度
32
数值
-
说明
开始位
传输位
命令索引
参数
CRC7
结束位
2、SD命令格式
3、SD通用命令
类型
响应格式
缩写
CMD0
bc
[31:
0]填充位
GO_IDLE_STATE
重置所有卡为空闲状态
CMD2
bcr
R2
ALL_SEND_CID
要求所有卡发送CID号(任何连在总线上的卡都必须响应)
CMD3
R6
SEND_RELATIVE_ADDR
要求卡发送一个新的相对地址(RCA)
CMD4
16]DSR
[15:
SET_DSR
规划所有卡的DSR
CMD7
ac
16]RCA
R1b
SELECT/DESELECT_CARD
使卡在备用和传输状态或者编程和断开状态之间切换。
在这两种情况下,当接收到的相对地址与自己的相同时卡被选中,不同时卡取消选中,而相对地址是0时,所有卡都不被选中,之后主机可能会执行如下操作:
1、使用其它的相对地址来选中卡
2、重新发送命令3更改卡的相对地址为0,再发送命令7,参数相对地址为0选中该卡
CMD8
12]保留
[11:
8]电源电压
0]检验模式
R7
SEND_IF_COND
发送SD存储卡的接口条件,包括主机支持的电压范围及询问卡是否支持。
保留位应当设置为“0”
CMD9
SEND_CSD
寻址卡并让其发送它的特殊数据寄存器(CSD)
CMD10
SEND_CID
寻址卡并让其发送识别号(CID)
CMD12
STOP_TRANSMISSION
强制卡停止传输
CMD13
R1
SEND_STATUS
寻址卡并让其发送状态寄存器的数据
CMD15
0]保留
GO_INACTIVE_
STATE
使被寻址的卡进入不活跃状态,该命令用在主机明确想要去激活某张卡
CMD16
0]块大小
SET_BLOCKLEN
如果是标准容量SD存储卡,该命令为随后的块操作命令(读、写及上锁)设定块大小(单位为字节)。
块大小默认为512字节。
只有当该命令是CSD所允许时,才是一个合法的内存访问命令。
如果卡是高容量SD存储卡,使用该命令不会影响内存的读写命令,块大小总是固定的512字节。
该命令会影响卡上锁/解锁命令。
在这两种情形下,如果块大小被设置超过512字节,卡将会设置BLOCK_LEN_ERROR位
CMD17
adtc
0]数据地址
READ_SINGLE_BLOCK
如果是标准容量SD存储卡,该命令会读取由SET_BLOCKLEN命令所设置大小的块。
如果卡是高容量SD存储卡,读取的块大小固定位512字节,不受SET_BLOCKLEN命令影响
CMD18
READ_MULTIPLE_BLOCK
使卡连续传输数据块到主机,直到被停止传输命令中断。
块大小的详细说明同上
CMD24
WRITE_BLOCK
如果是标准容量SD存储卡,该命令会写由SET_BLOCKLEN命令所设置大小的块。
CMD25
WRITE_MULTIPLE_BLOCK
连续写数据块到卡,直到被停止传输命令中断。
CMD27
PROGRAM_CSD
对CSD中可编程的位编程
CMD28
SET_WRITE_PROT
如果卡有写保护功能,该命令设置指定组的写保护位。
写保护特性设置在卡的特殊数据区(WP_GRP_SIZE)。
高容量SD存储卡不支持该命令
CMD29
CLR_WRITE_PROT
如果卡有写保护功能,该命令清除指定组的写保护位。
CMD30
0]写保护数据的地址
SEND_WRITE_
PROT
如果卡有写保护功能,该命令要求卡发送写保护位的状态。
CMD32
ERASE_WR_BLK_START
设置第一个擦除组的地址
CMD33
ERASE_WR_BLK_END
在连续的擦除范围内,设置最后一个擦除组的地址
CMD38
ERASE
擦除先前选择的数据块
CMD42
LOCK_UNLOCK
用来设置/重置密码或对卡上锁/解锁。
数据块的大小由SET_BLOCK_LEN命令设置。
CMD55
APP_CMD
指示卡下一个命令是应用相关命令而不是一个标准命令
CMD56
1]填充位
0读/写
GEN_CMD
在通用或应用相关命令中,或者用于向卡中传输一个数据块,或者用于从卡中读取一个数据块。
如果是标准容量SD存储卡,数据块的大小由SET_BLOCK_LEN命令设置。
如果卡是高容量SD存储卡,数据块的大小固定位512字节。
当读/写位为“1”时,主机从卡读取数据,为“0”时写数据到卡里
4、SD应用命令
ACMD6
2]填充位
[1:
0]数据线宽度
SET_BUS_WIDTH
定义用于数据传输的数据线宽度(‘00’表示1位,‘10’表示4位)。
允许的数据线宽度由SCR寄存器给出
ACMD13
SD_STATUS
返回SD状态
ACMD18
预留给SD安全应用
ACMD22
SEND_NUM_WR_BLOCKS
返回已写块的数量(未出错)。
如果WRITE_BL_PARTIAL是‘0’,ACMD22的单位总是512字节。
如果WRITE_BL_PARTIAL是‘1’,
ACMD22的单位是写命令执行时的数据块大小
ACMD23
23]填充位
[22:
0]块数量
SET_WR_BLK_
ERASE_COUNT
在写数据前设置预写块的数量(用于更快的多块写命令)。
默认为‘0’(一个写数据块)
ACMD25
ACMD26
ACMD38
ACMD41
[31]保留
30HCS(OCR[30])
[29:
24]保留
[23:
0]供电电压窗口(OCR[23:
0])
R3
SD_SEND_OP_COND
发送主机的容量支持信息(HCS)到被访问的卡,并利用CMD线询问其工作条件寄存器(OCR)中的内容。
当卡接收到SEND_IF_COND命令时,HCS变得有效,保留位应当设置为0。
CCS位将被设置成对应OCR[30]中的内容
ACMD42
0设置
SET_CLR_CARD_DETECT
连接[1]或不连接[0]5万欧姆的电阻到卡CD/DAT3(引脚1)信号线上
ACMD43
...
ACMD49
ACMD51
SEND_SCR
读取SD配置寄存器(SCR)
5、响应格式
域宽度
X
卡状态
135
134
[133:
128]
[127:
127
111111
OCR寄存器
16
卡新的相对地址(RCA)
卡状态23,22,19,12:
20]
[19:
16]
18]
20
001000
000000
可接受的电压范围
检测响应
注:
R1b与R1格式相同,但可以选择在数据线上发送一个繁忙信号。
收到这些命令后,依据收到命令之前的状态,卡可能变为繁忙。
主机在收到此响应时应当检测忙状态。
R7中可接受的电压范围定义如下:
值
0000b
未定义
0001b
2.7-3.6
0010b
为低电压范围保留
0100b
1000b
其它
6、部分命令详解
CMD8用于初始化符合物理规范2.00版本的SD存储卡。
当卡处于空闲状态时,CMD8才是有效的。
该命令有两种功能:
a.电压检测:
检测卡是否能在主机提供的电压下工作
b.扩充现有的命令及响应
CMD8能通过重新定义某些现有命令的保留位,增加其新的功能。
ACMD41就是被这样被扩展后用于初始化高容量SD存储卡。
CMD8命令格式:
其中电源电压定义如下:
电源电压
当卡处于空闲状态,主机应当在发送ACMD41前发送CMD8。
在参数段,电源电压段是主机提供的电压值,而检测模式段可以是任何数值。
若主机支持卡的工作电压,卡会把接收到的电源电压及检测模式数值在命令响应中原样返回给主机。
若主机不支持卡的工作电压,卡不作响应并停留在空闲状态。
ACMD41命令格式:
ACMD41用来进一步检查主机是否支持卡的工作电压,通过其命令参数中的HCS来区分是高容量卡(SDHC)还是标准容量卡(SDSC)。
7、SD卡寄存器
SD卡寄存器有:
卡识别寄存器(CID),相对卡地址寄存器(RCA),驱动级寄存器(DSR),
特殊数据寄存器(CSD),SD卡配置寄存器(SCR),工作状态寄存器(OCR),SD状态寄存器(SSR),卡状态寄存器(CSR)。
7.1工作状态寄存器(OCR)
OCR的格式如下表
OCR位
OCR段定义
0-3
10
11
12
13
14
15
2.7-2.8
2.8-2.9
17
2.9-3.0
18
3.0-3.1
19
3.1-3.2
3.2-3.3
21
3.3-3.4
22
3.4-3.5
23
3.5-3.6
24-29
30
卡容量状态(CCS)1
31
卡供电状态(busy)2
1、当卡的供电状态位被设置时,该位才有效
2、如果卡没有完成启动程序,该位会被设置为低
OCR的第15~23位分别对应着一个电压值,表示可支持电压。
若返回的命令响应R3中对应的OCR位为1,则表示这个SD卡支持该位对应的电压值。
第30位即为CCS位,若响应R3中这一位为一则表示这个SD卡为高容量卡,否则为标准容量卡。
只要卡处于忙状态,对应的位(31)就会被设置为低。
7.2卡识别寄存器(CID)
卡识别寄存器有128位,它包含的卡的识别信息在卡识别阶段使用。
每张卡都有一个唯一的识别号码。
CID的格式如下表:
位宽
对应位
生产商标识(ManufacturerID)
MID
120]
原始设备制造商/应用标识(OEM/ApplicationID)
OID
[119:
104]
产品名称(Productname)
PNM
40
[103:
64]
产品修订版本(Productrevision)
PRV
[63:
56]
产品序列号(Productserialnumber)
PSN
[55:
24]
生产日期(Manufacturingdate)
MDT
CRC7校验和(CRC7checksum)
CRC
未使用,总为1
7.3特殊数据寄存器(CSD)
特殊数据寄存器提供关于如何访问卡内数据的信息,它定义了数据格式、纠错类型、最大数据访问时间,DSR寄存器是否可用等等。
该寄存器可编程的部分(条目中标有W或E,见下)可被CMD27改变。
下表中条目的类型按如下定义:
R表示可读的,W
(1)表示只可写一次,W表示可写多次。
CSD版本1.0格式如下:
字段
CSD架构(CSDstructure)
CSD_STRUCTURE
00b
R
126]
000000b
[125:
数据读取时间1(datareadaccess-time-1)
TAAC
xxh
112]
数据读取时间2单位100时钟周期(datareadaccess-time-2inCLKcycles(NSAC*100))
NSAC
[111:
最大数据传输速率(max.datatransferrate)
TRAN_SPEED
32h或5Ah
96]
卡命令集(cardcommandclasses)
CCC
01x110110101b
[95:
84]
最大读数据块长度(max.readdatablocklength)
READ_BL_LEN
xh
[83:
80]
允许读块的一部分(partialblocksforreadallowed)
READ_BL_PARTIAL
1b
79
写块偏差(writeblockmisalignment)
WRITE_BLK_MISALIGN
xb
78
读块偏差(readblockmisalignment)
READ_BLK_MISALIGN
77
应用DSR(DSRimplemented)
DSR_IMP
76
[75:
74]
规格尺寸(devicesize)
C_SIZE
xxxh
[73:
62]
最小电压时的最大读电流(max.readcurrent@VDDmin)
VDD_R_CURR_MIN
xxxb
[61:
59]
最大电压时的最大读电流(max.readcurrent@VDDmax)
VDD_R_CURR_MAX
[58:
最小电压时的最大写电流(max.writecurrent@VDDmin)
VDD_W_CURR_MIN
53]
最大电压时的最大写电流(max.writecurrent@VDDmax)
VDD_W_CURR_MAX
[52:
50]
设备大小乘数(devicesizemultiplier)
C_SIZE_MULT
[49:
47]
使能块擦除(erasesingleblockenable)
ERASE_BLK_EN
擦除扇区的大小(erasesectorsize)
SECTOR_SIZE
xxxxxxxb
39]
写保护组大小(writeprotectgroupsize)
WP_GRP_SIZE
[38:
32]
使能写保护组(writeprotectgroupenable)
WP_GRP_ENABLE
保留(不使用)
[30:
29]
写速度系数(writespeedfactor)
R2W_FACTOR
[28:
26]
最大写数据块大小(max.writedatablocklength)
WRITE_BL_LEN
xxxxb
[25:
22]
允许写块的一部分(partialblocksforwriteallowed)
WRITE_BL_PARTIAL
00000b
[20:
文件格式组(Fileformatgroup)
FILE_FORMAT_GRP
R/W
(1)
复制标志(OTP)(copyflag(OTP))
COPY
永久的写保护(permanentwriteprotection)
PERM_WRITE_PROTECT
临时写保护(temporarywriteprotection)
TMP_WRITE_PROTECT
R/W
文件格式(Fileformat)
FILE_FORMAT
xxb
10]
[9:
未用,总是1
CSD版本2.0格式如下:
01b
数据读取时间(datareadaccess-time)
0Eh
数据读取时间单位100时钟周期(datareadaccess-timeinCLKcycles(NSAC*100))
00h
84
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 外设 SDIO 应用 SD