一个完整的SD卡操作过程是:主机(单片机等)发起“命令”,SD卡根据命令的内容决定是 否发送响应信息及数据等,如果是数据读/写操作,主机还需要发送停止读/写数据的命令来结束 本次操作,这意味着主机发起命令指令后,SD卡可以没有响应、数据等过程,这取决于命令的 含义。这一过程如下图 所示。:

SD卡有多种命令和响应,它们的格式定义及含义在SD协议中有详细介绍,发送命令时主机只能通过CMD引脚发送给SD卡,串行逐位发送时先发送最高位(MSB),然后是次高位这样类推……。
SD卡的命令格式,如下表所示:

SD卡的命令固定为48位,由6个字节组成,字节1的最高2位固定为01,低6位为命令 号(比如CMD16,为10000B即16进制的0X10,完整的CMD16,第一个字节为01010000,即0X10+0X40)。字节2~5为命令参数,有些命令是没有参数的。字节6的高七位为CRC值, 最低位恒定为1。
SD卡的命令总共有12类,分为Class0~Class11,本章,此文仅介绍几个比较重要的命令,
如下表所示:


上表中,大部分的命令是初始化的时候用的,而表中的 R1、R1b、R2、R3、R6和R7等是SD卡的应答信号。在主机发送有响应的命令后,SD卡都会给出相对应的应答,以告知主机该 命令的执行情况,或者返回主机需要获取的数据,具体场景如下图所示:

SD的响应大体分为短响应48bit和长响应136bit,每个响应也有规定好的格式。R1、R1b、
R3、R6和R7属于短响应,而R2属于长响应,它们具体作用如下表所示。

SD卡的响应因使用接口不同,比如SDIO和SPI接口,它们的响应种类以及响应格式也是 不同。这里以SDIO接口下的R1响应为例,其内容格式如下表所示:
-
单片机
+关注
关注
6078文章
45635浏览量
675785 -
SD卡
+关注
关注
2文章
593浏览量
69851 -
SD
+关注
关注
1文章
175浏览量
36629
发布评论请先 登录
u-boot命令之EMMC和SD卡操作命令详解
使用HSPI与SD卡通信,卡都不会响应初始CMD0设置命令的原因?
SD卡命令响应超时怎么解决?
sd card cmd2/3没有响应是为什么?
SD卡命令解释
SD卡与SD卡座电路
U盘和SD卡高速文件管理控制芯片CH378的辅助命令和USB基本传输命令
SD nand 与 SD卡的SPI模式驱动
瀚海微SD NAND存储功能描述(17)命令类d
SD的命令和响应
评论