本文章主要讲解SD2.0的状态信息(Status information)内容,基础概念和其它内容请参考以下文章。
SD2.0 Specification简述
SD卡有2种用于描述状态的字段,一种称为卡状态(Card Status),一种称为SD状态(SD Status)。卡状态(Card Status)有32 bits,描述的是一个命令执行后的错误与状态情况,通常作为响应给出。SD状态(SD Status)有512 bits,用于支持特定功能或者将来的功能拓展。两者的详情在下文展开描述。
卡状态(Card Status)
R1响应包含着32 bits的卡状态(Card Status)内容,所以凡是会返回R1的命令,都能得到卡状态(Card Status)的内容,也可通过CMD13专门读取卡状态(Card Status)。如果没有特别指出,卡状态信息总是跟最近发出的命令相关。
32 bits数据的含义具体如下图所示
下图记录的是命令对卡状态(Card Status)的影响。
SD状态(SD Status)
SD状态(SD Status)记录特定功能的状态情况,这个512 bits的数据可通过ACMD13从SD卡中读取出来,这个数据是在DATA线上传输的,采用CRC16进行校验。数据结构及含义如下图所示
- SIZE_OF_PROTECTED_AREA
保护区域的大小,标准容量和大容量有区别。
标准容量 Protected Area = SIZE_OF_PROTECTED_AREA_* MULT * BLOCK_LEN
大容量 Protected Area = SIZE_OF_PROTECTED_AREA
-
SPEED_CLASS
速度等级(写)。
-
PERFORMANCE_MOVE
移动性能(读)
-
AU_SIZE
Allocation Unit (AU)的大小。
-
ERASE_SIZE
-
ERASE_TIMEOUT
-
ERASE_OFFSET
ERASE_SIZE、ERASE_TIMEOUT、ERASE_OFFSET三者的关系举例如下
T O F F S E T = 0 T_{OFFSET}=0 TOFFSET=0
T
O
F
F
S
E
T
=
2
T_{OFFSET}=2
TOFFSET=2