Linux SD Driver (二)
二、SD 存储卡寄存器
每个 SD 存储卡都有一组信息寄存器,如下图所示:
其中 CID、OCR、CSD、SCR 存储了卡片的具体信息,RCA、DSR 寄存器存储了实际的配置参数。
1、OCR 寄存器
OCR (操作条件)寄存器中存储了卡片的电压信息以及部分状态信息:其中一个状态位(bit 31)指示
卡片的上电操作是否完成,另外一个状态位(bit 30)指示卡片的容量状态(0代表SDSC、1代表SDHC或者SDXC)。
寄存器的说明如下图所示:
2、CID 寄存器
CID (识别信息)寄存器总共 128 bits,包含了卡片的识别信息,每个独立的卡片都应该有一组
独一无二的识别信息。寄存器说明如下图所示:
3、CSD 寄存器
CSD(具体信息)寄存器也是 128 bits,提供了访问卡片内容的一些信息如:传输速率、数据格式、
错误类型、最大是数据访问时间、DSR 寄存器是否启用的。其中 bit[126:127] 记录了 CSD 的版本号,
CSDversion 1.0 为标准容量卡所用,CSD version 2.0 为大容量或超大容量卡所用。
CSD version 1.0 寄存器说明如下图所示:
4、SCR 寄存器
SCR(SD 配置)寄存器总共 64 bits,定义了卡片的一些特殊功能,寄存器说明如下图所示:
5、CSR 寄存器
CSR(卡片状态)寄存器总共 32bits,代表了执行一个命令的错误和状态信息,其信息包含在
R1 格式的应答中返回给主机,寄存器说明如下图所示:
6、SD Status 寄存器
SD Status 寄存器包含了 SD 存储卡的的专有属性并为以后的功能扩展保留了足够的空间,其大小
为 512bits 即一个块大小,这个寄存器作为ACMD13命令的执行结果,通过DATA线发送到主机,
寄存器说明如下图所示: