R1响应 SD卡中的响应有许多种,R1为标准响应,最为常用。与R1响应相似的还有R1b、R2和R3。R1响应在除SEND_STATUS外其它命令后发送,也是最高位先发送,共1个字节。R1的格式如图7所示。响应说明如下:
0x01:空闲状态
0x02:擦除错误
0x04:命令错误
0x08:CRC通信错误
0x10:擦除次序错误
0x20:地址错误
0x40:参数错误
其它响应略去不谈,详见SD卡规范。
7、R1响应格式 4、 数据响应(Data Response)
写数据区都要有一个数据记号来响应,该数据响应共1字节,格式如图8所示。其中XXX者可设置为0,这样高4位即为0,Status处定义如下: (其中括号即为该字节的16进制数)
010:数据接收 (0x05)
101:CRC错误,拒绝接收 (0x0b)
110:写错误,拒绝接收 (0x0d)
8、数据响应格式 5、 数据记号(Data Token)
数据传输都是通过数据记号的,共4至515字节,同样是最高位先传输。对于单块的读写和多块读,第一个字节为0xfe(开始标志),接下来的2至513字节(视数据块长度而定)为用户数据。最后两字节为16位的CRC。而对于多块的写,第一字节有两种标志,开始标志为0xfc(数据是发送的),停止标志为0xfd(要求停止)。
6、 数据错误记号(Data Error Token)
如果读操作失败,SD卡则会发送数据错误记号,格式如图9,定义如下:
0x01:错误
0x02:CC错误
0x04:ECC错误
0x08:范围错误
0x10:卡被锁了
|