SPI Flash 接口模式与 XIP 技术详解

适用范围:SPI NOR / SPI NAND Flash,Single / Dual / Quad / QPI 模式

标准说明:本文描述为行业通用 SPI Flash 扩展协议;原生 SPI 标准无 Dual/Quad 定义;不含 eMMC、SD、UHS-II 等其它存储接口

带宽计算公式:

Byte Rate=fclk×IO位宽÷8\text{Byte Rate}=f_{clk} \times \text{IO位宽} \div 8Byte Rate=fclk×IO位宽÷8

1 术语约定

  1. SCLK、CS# 为基础固定信号,不计入单线/二线/四线的数据线统计
  2. 命名格式 A-B-C:命令阶段位宽 - 地址阶段位宽 - 数据阶段位宽
  3. SDR:单沿采样(仅上升沿);行业标准QSPI为SDR架构,标准协议无DDR;DDR QSPI / Octal SPI属于厂商非标扩展
  4. DS(Data Strobe)、Tuning:SPI Flash 体系不支持、不需要,仅eMMC高速模式使用
  5. XIP:Execute In Place,原地执行
  6. Shadow加载:先将固件搬运至RAM再执行

2 单线、二线、四线模式详解

2.1 单线 Single(1-1-1)

  • 使用IO0、IO1,IO方向固定:IO0=MOSI(主机发),IO1=MISO(Flash收);IO2、IO3默认为WP#、HOLD#功能,不作为数据线
  • 每个SCLK周期传输:1 bit
  • 通信特性:全双工
  • 特点:兼容性最强,绝大多数SoC Boot ROM默认支持该模式

⚠️ 重要区分:传统常说的"4线SPI" = SCLK+CS# + MOSI + MISO,就是本Single单线模式,不等于Quad四线模式

2.2 二线 Dual(典型 1-2-2)

  • 使用IO0、IO1两根双向IO,不再固定收发方向
  • 每个SCLK周期传输:2 bit
  • 通信特性:半双工(同一时刻只能读或写)
  • 典型配置 1-2-2:命令阶段单线传输,地址、数据阶段双线并行

2.3 四线 Quad(1-4-4 / 4-4-4(QPI))

  • 使用IO0~IO3四根双向IO;IO2、IO3放弃WP#、HOLD#功能,复用为数据线
  • 每个SCLK周期传输:4 bit
  • 通信特性:半双工
    • 1-4-4:命令阶段单线,地址、数据四线;Boot ROM支持度较高
    • 4-4-4(QPI):命令、地址、数据全部四线并行;XIP性能最优

3 QSPI 各模式对比总表

模式名称 模式编码 典型最大时钟 IO位宽 每时钟bit 独立CMD线 Strobe/DS Tuning 理论带宽@133MHz
Single SPI 1-1-1 100~133MHz 1 1 ❌ ❌ ❌ 16.6 MB/s
Dual SPI 1-2-2 100~133MHz 2 2 ❌ ❌ ❌ 33.2 MB/s
Quad SPI 1-4-4 100~133MHz 4 4 ❌ ❌ ❌ 66.5 MB/s
QPI 4-4-4 100~133MHz 4 4 ❌ ❌ ❌ 66.5 MB/s

4 XIP原地执行原理

XIP全称 Execute In Place,原地执行。

  • XIP:QSPI控制器做地址映射(Memory-Mapped),CPU直接从Flash取指令运行,无需预先拷贝代码到RAM
  • 非XIP(Shadow加载):控制器读出Flash数据,搬运到片上SRAM/DDR,CPU从RAM取指执行

✅ 优势:节省RAM资源,适合小RAM MCU方案

❌ 劣势:受限于Flash接口带宽,存在命令、地址传输带来的读取延迟,执行速度低于RAM

所有Single/Dual/Quad/QPI模式理论上均可配置XIP;但很多Boot ROM仅支持1-1-1、1-4-4的XIP映射,原生不支持4-4-4 QPI启动,需要启动后切换模式。

5 SPI NOR 与 SPI NAND 的 XIP 能力差异

器件类型 是否支持XIP 底层原因 启动方式
SPI NOR(含Octal NOR) ✅ 支持 字节级随机寻址,支持CPU随机取指跳转 XIP原地执行 / Shadow加载二选一
SPI NAND / Octal NAND ❌ 不支持 按页访问架构,最小读出单元为页(2KB/4KB),自带ECC、坏块管理,无法做到任意地址即时随机读 仅Shadow加载:BootROM搬运Bootloader到SRAM后跳转执行

备注:SPI NAND的连续读(Continuous Read)仅提升页内顺序读取速度,不属于XIP。

6 时钟与采样机制

SPI Flash 所有标准模式以主机SCLK作为唯一采样基准,无DS源同步选通信号,不需要Tuning相位校准。

7 Boot与选型建议

  1. 最小兼容启动:Single 1-1-1,通用兜底
  2. 平衡兼容性与带宽:Quad 1-4-4,优先推荐量产
  3. XIP性能最大化:QPI 4-4-4,确认Boot ROM支持后使用
  4. 大容量、低成本固件存储:SPI NAND,采用Shadow启动,预留足够RAM
  5. 小RAM、代码直接运行:SPI NOR + QPI XIP

8 硬件风险提示

  1. 切换Quad/QPI模式后,IO2、IO3不再是WP、HOLD,原有硬件上拉/下拉逻辑需要重新评估
  2. DDR QSPI、Octal SPI属于厂商扩展规格,不同品牌兼容性差,量产项目谨慎选用
  3. QPI XIP启动兼容性是高频坑点,需要提前核对SoC Boot ROM手册

9 缩写释义

  • SPI:Serial Peripheral Interface
  • QSPI:Quad Serial Peripheral Interface
  • QPI:Quad Peripheral Interface
  • XIP:Execute In Place
  • SDR:Single Data Rate
  • CS#:Chip Select
  • SCLK:Serial Clock
相关推荐
沐欣工作室_lvyiyi1 小时前
基于STM32的人体健康检测设计(论文+源码)
stm32·单片机·嵌入式硬件
艾络迅Acceleronix1 小时前
气象监测:STM32+EG800Z AT + 艾络迅平台实战|气压/光照/雨量采集全流程
stm32·单片机·嵌入式硬件·mcu·物联网·1024程序员节
深圳老胡1 小时前
FDC2212 + STM32G030 液面探测:IIC 读数跳动导致下探深度不一致的排查与解决
笔记·stm32·单片机·代码规范·1024程序员节
xiangw@GZ1 小时前
两线 JTAG(cJTAG / IEEE 1149.7)技术专题
单片机·嵌入式硬件
comyccccc2 小时前
晶振区禁铺铜,三大保险丝护航电路安全学习笔记
单片机·嵌入式硬件
女神下凡2 小时前
芯参谋(71):全桥电机驱动电路设计指南
arm开发·stm32·单片机·嵌入式硬件·硬件工程·设计规范·1024程序员节
李永奉2 小时前
杰理可视化SDK开发-【BUG】AC7006F8芯片开启一拖二和双麦DNS通话算法后,大概率通话时蓝牙自动断连,RAM空间爆了问题处理
单片机·嵌入式硬件·mcu·物联网·电脑·bug
小向是个Der2 小时前
P02_你的变量住在哪里_教学文档
经验分享·笔记·stm32·单片机
深圳老胡3 小时前
液面探测功能的硬件方案对比:原理、优缺点与选型建议
笔记·单片机