SD卡命令与响应机制概览

SD卡的完整操作流程如下:首先,主机(例如单片机)发送一个“指令”给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,本章,此文仅介绍几个比较重要的命令

如下表所示

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

SD 的响应大体分为短响应 48bit 和长响应 136bit,每个响应也有规定好的格式。R1R1b

R3R6 R7 属于短响应,而 R2 属于长响应,它们具体作用如下表所示。

SD 卡的响应因使用接口不同,比如 SDIO SPI 接口,它们的响应种类以及响应格式也是 不同。这里以 SDIO 接口下的 R1 响应为例,其内容格式如下表所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值