一个完整的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响应为例,其内容格式如下表所示:
-
单片机
+关注
关注
6035文章
44554浏览量
634577 -
SD卡
+关注
关注
2文章
564浏览量
63884 -
SD
+关注
关注
1文章
163浏览量
33666
发布评论请先 登录
相关推荐
评论