1. SPI Flash 概述
SPI Flash 是一种采用 串行外设接口(Serial Peripheral Interface) 进行通信的 NOR 型闪存存储器。它凭借引脚少、体积小、读写速度快、可靠性高等优势,成为嵌入式系统中固件存储与数据持久化的首选介质。本章将系统介绍 SPI Flash 的定义、核心特点、主流型号及其在嵌入式系统中的关键作用。
1.1 什么是 SPI Flash
SPI Flash 是一种基于 SPI 总线协议的非易失性存储器芯片。它内部采用 NOR 闪存单元阵列,支持按字节随机读取,非常适合存储可执行代码(XIP,eXecute In Place)。与并行 NOR Flash 相比,SPI Flash 仅需 6~8 个引脚即可完成通信,大幅简化了 PCB 布局并降低了系统成本。
核心特征: SPI Flash 属于 NOR 型闪存,支持随机读取,擦除和写入以扇区(Sector)或块(Block)为单位进行。
1.2 SPI Flash 的主要特点
| 特性 | 说明 | 典型指标 |
|---|---|---|
| 接口标准 | SPI 总线,支持 Mode 0/3,全双工同步通信 | SCK、MOSI、MISO、CS# 四线 |
| 存储容量 | 从 512KB 到 256MB 不等,常见 8MB~128MB | W25Q64:8MB;MX25L128:16MB |
| 读取速度 | 支持标准 SPI、Dual/Quad SPI 高速读取 | 标准 50MHz,Quad SPI 可达 133MHz |
| 擦写寿命 | 每个扇区可擦写 10 万次以上 | 典型 100,000 次 |
| 数据保持 | 在 85°C 环境下数据可保持 20 年 | 20 年 @85°C |
| 工作电压 | 低功耗,支持宽电压范围 | 2.7V~3.6V |
| 封装形式 | 小型化封装,节省 PCB 空间 | SOP-8、WSON-8、USON-8 |
1.3 常见 SPI Flash 型号对比
目前市场上最主流的 SPI Flash 供应商包括 Winbond(华邦)、Macronix(旺宏)、GigaDevice(兆易创新) 和 ISSI。以下列出嵌入式开发中最常用的几款型号:
| 型号 | 容量 | 最高频率 | 特色功能 | 典型应用 |
|---|---|---|---|---|
| W25Q64JV | 8MB (64Mb) | 133MHz (Quad) | Dual/Quad SPI,支持 SFDP | 路由器、IoT 设备、MCU 固件 |
| W25Q128JV | 16MB (128Mb) | 133MHz (Quad) | Dual/Quad SPI,支持 XIP | 嵌入式 Linux 启动、FPGA 配置 |
| MX25L12835F | 16MB (128Mb) | 133MHz (Quad) | 低功耗,宽温范围 -40~85°C | 工业控制、车载电子 |
| MX25L25645G | 32MB (256Mb) | 166MHz (Quad) | 4KB 扇区擦除,支持 DTR | 高端路由器、AI 边缘设备 |
| GD25Q64C | 8MB (64Mb) | 120MHz (Quad) | 与 W25Q64 引脚兼容 | 国产替代方案、消费电子 |
选型建议: 对于大多数 MCU 固件存储场景,W25Q64(8MB)或 W25Q128(16MB)是性价比最高的选择。若需要更大容量或更高速度,可考虑 MX25L256 系列。
1.4 SPI Flash 在嵌入式系统中的作用
SPI Flash 在嵌入式系统中承担着多重关键角色,其作用贯穿系统启动、运行和升级的全生命周期:
- 固件存储与启动加载: 存放 Bootloader(如 U-Boot)、操作系统内核和根文件系统。上电后 CPU 通过 SPI 接口读取固件并加载到 RAM 中执行。
- 参数与配置持久化: 保存设备 MAC 地址、校准参数、用户配置、日志记录等需要断电保持的数据。
- OTA 升级缓冲区: 在固件远程升级过程中,新固件先写入 SPI Flash 的备用分区,校验通过后再覆盖主分区,实现安全升级。
- FPGA 配置存储: 许多 FPGA 使用 SPI Flash 存储比特流文件,上电后 FPGA 自动从 SPI Flash 加载配置。
- 文件系统载体: 在资源受限的嵌入式设备中,SPI Flash 可作为 SPIFFS、LittleFS 等轻量级文件系统的底层存储介质。
注意: SPI Flash 的擦除操作以扇区(通常 4KB)或块(通常 64KB)为单位,不能像 RAM 一样按字节直接覆写。写入前必须先擦除,这是固件烧录和备份时必须理解的关键特性。
1.5 SPI Flash 系统架构示意
下图展示了 SPI Flash 在典型嵌入式系统中的连接架构,以及它与主控芯片(MCU/SoC)之间的信号关系:
1.6 SPI Flash 内部存储结构
理解 SPI Flash 的内部存储层次结构,对于后续固件烧录和备份操作至关重要。下图展示了典型的 SPI Flash 存储组织方式: