【基础知识】QSPI的命令
这里写目录标题
- 一、QSPI命令的基本特点
- 二、QSPI典型命令集
- 1. **读取类命令**
- 2. **写入类命令**
- 3. **配置与状态命令**
- 4. **其他命令**
- 三、QSPI命令时序示例
- 四、命令使用注意事项
- 五、应用场景
- 六、总结
QSPI(Quad SPI)的命令集是其实现高速数据传输的核心,通过专用指令可激活多线模式、配置设备参数及执行数据操作。以下是QSPI的主要命令类型、格式及典型应用:
一、QSPI命令的基本特点
-
兼容SPI
- QSPI设备通常支持标准SPI命令(如
READ
、WRITE
),可在单线模式下与传统SPI主机通信。 - 高速场景下使用扩展的QSPI命令集。
- QSPI设备通常支持标准SPI命令(如
-
多线传输模式
- 单线模式:使用IO0(MOSI)发送命令/地址,IO1(MISO)接收数据。
- 双线模式:IO0和IO1同时传输数据,吞吐量翻倍。
- 四线模式:IO0~IO3全部用于数据传输,速率最高。
-
命令格式
- 典型QSPI命令帧包含:
[命令字节] → [地址字节] → [可选模式字节] → [数据阶段]
- 命令字节:指定操作类型(如读取、写入),始终通过单线传输。
- 地址字节:指定数据存储位置,可选择单线、双线或四线传输。
- 数据阶段:根据命令类型,支持不同的传输模式。
- 典型QSPI命令帧包含:
二、QSPI典型命令集
以下是QSPI设备常用的命令(以SPI Flash为例):
1. 读取类命令
命令 | 缩写 | 功能 | 传输模式 |
---|---|---|---|
Read Data | 03h | 标准SPI读取(单线) | 命令/地址/数据:单线 |
Fast Read | 0Bh | 高速读取(带空时钟周期以提高频率) | 命令:单线 地址:单线 数据:单线 |
Dual Output Fast Read | 3Bh | 双线输出快速读取(数据通过IO0和IO1并行传输) | 命令/地址:单线 数据:双线 |
Dual I/O Fast Read | BBh | 双线I/O快速读取(地址和数据均通过双线传输) | 命令:单线 地址/数据:双线 |
Quad Output Fast Read | 6Bh | 四线输出快速读取(数据通过IO0~IO3并行传输) | 命令/地址:单线 数据:四线 |
Quad I/O Fast Read | EBh | 四线I/O快速读取(地址和数据均通过四线传输) | 命令:单线 地址/数据:四线 |
2. 写入类命令
命令 | 缩写 | 功能 | 传输模式 |
---|---|---|---|
Write Enable | 06h | 使能写操作(必须先执行此命令) | 单线 |
Page Program | 02h | 标准SPI页编程(写入数据) | 命令/地址/数据:单线 |
Quad Page Program | 32h | 四线页编程(高速写入) | 命令:单线 地址/数据:四线 |
3. 配置与状态命令
命令 | 缩写 | 功能 | 传输模式 |
---|---|---|---|
Read Status Register | 05h | 读取状态寄存器(如写保护位、忙碌标志) | 单线 |
Write Status Register | 01h | 写入状态寄存器 | 单线 |
Read Configuration Register | 35h | 读取配置寄存器(如QSPI模式使能位) | 单线 |
Write Configuration Register | 01h | 写入配置寄存器 | 单线 |
Enter QSPI Mode | 38h | 使能QSPI模式(从标准SPI切换到四线模式) | 单线 |
Exit QSPI Mode | F5h | 退出QSPI模式(回到标准SPI) | 单线 |
4. 其他命令
命令 | 缩写 | 功能 | 传输模式 |
---|---|---|---|
Erase Sector | 20h | 擦除指定扇区(通常4KB) | 单线 |
Erase Block | D8h | 擦除指定块(通常64KB) | 单线 |
Chip Erase | C7h | 擦除整个芯片 | 单线 |
Read ID | 9Fh | 读取设备ID(如制造商ID、设备类型) | 单线 |
三、QSPI命令时序示例
以**Quad I/O Fast Read(EBh)**命令为例,说明四线模式下的完整时序:
-
命令阶段
- 主机通过IO0发送命令字节
EBh
(单线传输)。
- 主机通过IO0发送命令字节
-
地址阶段
- 主机通过IO0~IO3四线并行发送24位地址(通常3字节)。
-
空周期(Dummy Cycles)
- 主机发送若干空时钟周期(通常4~8个),让从设备准备数据。
-
数据阶段
- 从设备通过IO0~IO3四线并行返回数据,直到主机终止传输。
时序图示例:
[命令] [地址] [空周期] [数据...]
EBh AAAAAA DDDDDD DDDDDD...
(IO0) (IO0~IO3) (IO0~IO3)
四、命令使用注意事项
-
模式切换
- 部分QSPI设备默认处于标准SPI模式,需先发送
Enter QSPI Mode (38h)
命令激活四线模式。 - 退出时需发送
Exit QSPI Mode (F5h)
回到标准模式。
- 部分QSPI设备默认处于标准SPI模式,需先发送
-
地址长度
- 命令中的地址字节数取决于设备容量(如24位或32位地址)。
-
空周期配置
- 不同设备的空周期数量可能不同,需参考datasheet设置。
-
写保护
- 写入操作前必须先发送
Write Enable (06h)
命令,否则写操作会被拒绝。
- 写入操作前必须先发送
五、应用场景
-
高速Flash读取
- 嵌入式系统通过QSPI快速加载固件(如MCU启动时从Flash读取程序)。
-
图形数据传输
- 显示屏控制器通过QSPI从Flash读取图像数据,四线模式可满足高分辨率显示需求。
-
数据缓存
- 传感器数据通过QSPI快速写入外部缓存芯片,减少数据丢失风险。
六、总结
QSPI命令集通过灵活的单线/多线切换机制,在保持与SPI兼容性的同时,显著提升了数据传输效率。开发时需根据设备特性选择合适的命令,并严格遵循时序要求,以实现最优性能。