在 SDIO 协议中,R1、R2、R3 等是不同类型的命令响应格式
在 SDIO 协议中,R1、R2、R3 等是不同类型的命令响应格式,用于设备向主机返回命令执行结果或状态信息。每种响应格式有特定的长度、结构和含义。以下是详细介绍:
一、响应类型总览
| 响应类型 | 长度 | 适用命令 | 主要用途 |
|---|---|---|---|
| R1 | 32 位 | CMD1、CMD3、CMD7 等 | 基本状态响应,包含设备状态位。 |
| R1b | 32 位 + | CMD12 等 | R1 的扩展,包含忙信号(在数据线上持续发送 0xFF)。 |
| R2 | 136 位 | CMD2 | 返回 CID 或 CSD(卡识别号或卡规格数据)。 |
| R3 | 32 位 | CMD5、ACMD41 | 返回 OCR(操作条件寄存器)内容,包含电压范围和 HCS 位。 |
| R4 | 32 位 | CMD48、CMD49 | SDIO 协议保留,通常不使用。 |
| R5 | 32 位 | CMD5、SDIO 中断响应 | 返回 SDIO 特定状态或中断信息。 |
| R6 | 32 位 | CMD3 | 返回分配的 RCA(相对卡地址)。 |
| R7 | 32 位 | CMD8 | 电气特性响应,用于检查电压支持和模式。 |
二、常见响应格式详解
1. R1 响应(32 位)
plaintext
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│<─────────────────────────────────────── 状态位 ────────────────────────────────────────>|
关键状态位:
- 位 0:In idle state(空闲状态)
- 1 = 设备处于空闲状态(刚复位或初始化中)。
- 0 = 设备已就绪。
- 位 1:Erase reset(擦除复位)
- 1 = 擦除序列被重置。
- 位 2:Illegal command(非法命令)
- 1 = 设备不支持该命令。
- 位 3:Com CRC error(命令 CRC 错误)
- 1 = 命令 CRC 校验失败。
- 位 4:Erase sequence error(擦除序列错误)
- 1 = 擦除命令序列错误。
- 位 5:Address error(地址错误)
- 1 = 地址超出设备范围。
- 位 6:Parameter error(参数错误)
- 1 = 命令参数无效。
2. R2 响应(136 位)
用于返回 CID(卡识别号)或 CSD(卡规格数据):
plaintext
31 30 ... 00 31 30 ... 00 31 30 ... 00 31 30 ... 00 7 6 5 4 3 2 1 0
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────┐
│ 字节0-3 │ │ 字节4-7 │ │ 字节8-11 │ │ 字节12-15 │ │ 字节16 │
└─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────┘
│<────────────────────────────────── CID/CSD数据 ──────────────────────────────────>|
- CID 内容(128 位):
- 制造商 ID(8 位)、OEM / 应用 ID(16 位)、产品名称(40 位)、产品版本(8 位)、序列号(32 位)等。
- CSD 内容(128 位):
- 卡容量、数据传输率、访问时间等规格信息。
3. R3 响应(32 位)
用于返回 OCR(操作条件寄存器)内容:
plaintext
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ VDD 电压窗口支持 │ HCS │ CCS │ 保留 │ 供电状态 │ 保留 │ OCR 值(如 0x00FF8000) │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
- 位 31~24:VDD 电压窗口支持(如
0xFF表示支持 2.7~3.6V)。 - 位 30:HCS(High Capacity Support)
- 1 = 支持高容量卡(如 SDHC/SDXC)。
- 位 29:CCS(Card Capacity Status)
- 1 = 卡是高容量卡(SDHC/SDXC)。
- 位 28~0:OCR 值,反映设备支持的操作条件。
4. R5 响应(32 位)
用于 SDIO 特定响应(如中断状态):
plaintext
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│<────────────────────────────────── 状态位 ──────────────────────────────────>|│<──── 功能中断位 ────>|
- 位 31~8:与 R1 相同的状态位。
- 位 7~0:功能中断位,指示哪个功能(如 WiFi)触发了中断。
5. R7 响应(32 位)
用于 CMD8 的电气特性响应:
plaintext
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│<─────────── 保留 ───────────>|│ VHS │<── 保留 ──>|│ 检查模式(如 0xAA) │

- 位 19~16:VHS(Voltage Host Support)
- 指示设备支持的电压范围(如
0x01表示 2.7~3.6V)。
- 指示设备支持的电压范围(如
- 位 3~0:检查模式,与 CMD8 中发送的值相同(如
0xAA)。
三、在 WiFi 模块通信中的应用
-
初始化阶段:
- CMD0 → R1(检查 Idle 状态)
- CMD8 → R7(确认电压兼容性)
- CMD5 → R5(SDIO 功能初始化响应)
-
数据传输阶段:
- CMD52/CMD53 → R1(命令执行状态)
-
中断处理:
- 读取中断状态寄存器 → R5(包含中断源信息)
四、注意事项
- CRC 校验:部分响应(如 R1、R7)包含 CRC 校验位,主机需验证正确性。
- 响应超时:若未在规定时间内收到响应,主机应视为命令失败。
- 具体格式:某些响应的位定义可能因 SDIO 版本(2.0/3.0)或设备而异,需参考模块数据手册。

浙公网安备 33010602011771号