1️⃣ SPI(Serial Peripheral Interface,串行外设接口)
-
英文解释:
- Serial:串行
- Peripheral:外设
- Interface:接口
-
用途:MCU 与外部设备(Flash、传感器等)高速数据通信
常见 SPI 类型
类型 | 数据线 | 英文全称 | 每时钟传输 | 特点 / 用途 |
---|---|---|---|---|
单线 SPI | 1(MOSI)+1(MISO)+CLK+CS | Standard SPI | 1 bit | 基础 SPI,低速 Flash、外设配置 |
双线 SPI | 2 数据线 + CLK + CS | Dual SPI | 2 bit | 双向传输,速度翻倍 |
四线 SPI | 4 数据线 + CLK + CS | Quad SPI (QSPI) | 4 bit | 高速读取 NOR Flash,可 XIP(Execute In Place) |
八线 SPI | 8 数据线 + CLK + CS | Octo SPI / HyperBus | 8 bit | 高速大容量 Flash,数百 MB/s,工业 / Linux 系统用 |
⚠️ SPI 扩展主要是增加数据线并行传输,最大常见是 8 线。16 线 SPI 不存在,超过 8 线通常改用并行总线或 DDR 接口。
SPI 通信距离
条件 | 建议距离 |
---|---|
PCB 板上(同板或短线) | 几厘米到几十厘米(稳定) |
板间普通导线 | ≤30 cm(高速模式下建议 ≤10~15 cm) |
高速 QSPI / Octo SPI | ≤10~15 cm(线长越长,时钟抖动越严重) |
影响因素:
- 时钟频率:高频 → 信号衰减,距离减小
- 线缆类型:双绞线/屏蔽线可稍延长距离
- 电容和阻抗匹配:线太长 → 串扰和反射 → 数据错误
- 信号驱动能力:驱动弱 → 长线更容易出错
💡 总结:SPI 是短距离高速接口,高速模式通常只适合同板或板间短线,米级通信需换 UART/RS485/CAN 等长距离接口。
2️⃣ Flash 类型
2.1 NOR Flash
-
英文解释:Not OR Flash
-
特点:
- 支持 随机访问,按字节读取
- 读取速度快,适合执行程序代码(XIP)
- 写入/擦除慢,容量相对小
- 擦写次数高 (~10 万次)
-
用途:存储 MCU 固件、启动程序、少量数据
-
接口:SPI / QSPI / OctoSPI
-
例子:W25Q64(8MB QSPI NOR Flash)
2.2 NAND Flash
-
英文解释:Not AND Flash
-
特点:
- 按页 / 块顺序访问,随机访问慢
- 写入/擦除快,容量大(GB级)
- 擦写次数约 10 万次(小块 NAND)
-
用途:存储数据文件、大容量存储(SD 卡、SSD)
-
接口:Parallel NAND / SPI NAND
-
特点对比:
特性 | NOR Flash | NAND Flash |
---|---|---|
访问方式 | 随机访问 | 顺序访问(页/块) |
写入速度 | 慢 | 快 |
擦写速度 | 慢 | 快 |
容量 | 小 | 大 |
XIP 支持 | 支持 | 不支持 |
用途 | 固件 / 代码 | 数据存储 / 文件系统 |
3️⃣ QSPI / Dual / Octo 关键英文单词
缩写 | 英文全称 | 含义 |
---|---|---|
SPI | Serial Peripheral Interface | 串行外设接口 |
QSPI | Quad SPI | 四线 SPI,每时钟传 4 bit |
Dual SPI | Dual SPI | 双线 SPI,每时钟传 2 bit |
Octo SPI | Octo SPI | 八线 SPI,每时钟传 8 bit |
XIP | eXecute In Place | 直接从 Flash 执行程序,无需拷贝到 RAM |
CS | Chip Select | 片选信号,低电平选中芯片 |
MOSI | Master Out Slave In | 主机输出,从机输入 |
MISO | Master In Slave Out | 主机输入,从机输出 |
CLK | Clock | 时钟信号 |
IO0~IO7 | 数据线 | 数据传输线(Quad/Octo 模式) |
💡 总结要点:
- SPI 接口根据数据线不同有 单线 / 双线 / 四线 / 八线,带宽逐步增加
- SPI 是短距离高速接口,高速模式通常只适合同板或板间短线
- NOR Flash 适合存程序,NAND Flash 适合大容量数据存储
- QSPI / OctoSPI 主要用于 高速读取 + XIP
- MCU 与 Flash 接口模式必须匹配,才能发挥最大带宽