嵌入式系统中的非易失性存储设备

在嵌入式系统中,主要有这几类非易失性存储设备(断电不丢数据):

特性 NOR Flash NAND Flash eMMC SD卡 SPI Flash EEPROM
XIP支持 ✅ 支持 ❌ 不支持 ❌ 不支持 ❌ 不支持 ⚠️ 部分支持 ❌ 不支持
访问方式 随机 块(页) 随机/块 随机
典型容量 1MB-256MB 128MB-1TB 4GB-512GB 1GB-1TB 1KB-128MB 1KB-1MB
价格/容量 昂贵 便宜 中等 便宜 中等 昂贵
接口 并行 原始NAND MMC SDIO SPI I²C/SPI
是否需要 坏块管理 不需要 需要 内部处理 内部处理 不需要 不需要
擦除单位 块/扇区 块(页) 扇区 字节
主要用途 启动/代码 数据存储 系统存储 可移动存储 小数据/配置 配置数据

1. NOR Flash(贵族,支持XIP)

特点

  • 随机访问:可以像 RAM 一样直接读取任意地址

  • 支持 XIP :代码可以直接在NOR上运行,无需先拷贝到RAM

  • 可靠性高:寿命长,稳定性好

  • 价格贵:比 NAND 贵很多

  • 容量小:通常几MB到几十MB

物理接口

  • 并行接口:有很多数据线(如16位、32位),速度快

  • i.MX 上通常通过 EIM(外部接口模块) 连接

典型用途

  • 启动设备:存储 bootloader(如 U-Boot)

  • 关键固件:存储必须可靠、快速启动的代码

  • 工业设备:对可靠性要求高的场合

比喻 :像一个图书馆的书架,你可以直接走到任意书架前拿书(直接读取任意地址)。


2. NAND Flash(平民,大容量)

特点

  • 串行访问:必须按"块"读写(如4KB一块)

  • 不支持 XIP :代码必须先拷贝到RAM才能执行

  • 容量大:几百MB到几百GB

  • 价格便宜:单位容量成本低

  • 需要坏块管理:有坏块,需要特殊管理

  • 需要ECC:需要纠错码保障数据正确

物理接口

  • 并行或串行:有原始NAND接口(很多控制线)

  • i.MX 上通过 GPMI(通用NAND接口) 连接

典型用途

  • 大容量存储:文件系统、用户数据

  • 消费电子产品:手机、平板、数码相机

  • 替代硬盘:SSD固态硬盘的核心就是NAND

比喻 :像一盒盒密封的巧克力,你必须打开整个盒子(读一个块),不能只拿一颗(读一个字节)。


3. eMMC(智能NAND)

特点

  • NAND + 控制器:内部集成了NAND芯片和管理控制器

  • 简化设计:对主机来说就像访问SD卡一样简单

  • 标准接口:MMC接口标准

  • 无需坏块管理:控制器内部处理了所有复杂问题

典型用途

  • 智能手机:主要存储设备

  • 平板电脑:系统存储

  • 嵌入式系统:简化设计的首选大容量存储


4. SD/TF卡(可移动存储)

特点

  • 可插拔:方便更换

  • 标准接口:SDIO接口

  • 容量范围广:从几MB到几TB

  • 速度分类:有Class 2/4/6/10,UHS-I/II等速度等级

与eMMC的关系

  • 类似原理:都是基于NAND Flash

  • eMMC是焊死的SD卡是可插拔的

  • eMMC通常更可靠(工业级)

典型用途

  • 相机存储:照片、视频

  • 开发板启动:嵌入式开发常用启动方式

  • 扩展存储:为设备增加存储空间


5. SPI Flash(简单接口)

特点

  • 串行接口:只需要4根线(CLK, MOSI, MISO, CS)

  • 小容量:通常几KB到几十MB

  • 接口简单:占用引脚少

  • 速度较慢:串行传输

物理接口

  • SPI总线:串行外围接口

  • 多个SPI设备可以共享总线(通过片选CS区分)

典型用途

  • 存储配置参数:网络设备的MAC地址、校准数据

  • 小型固件:简单设备的程序存储

  • 替代EEPROM:需要较大容量时


6. EEPROM(可字节擦写)

特点

  • 字节级擦写:可以单独修改一个字节

  • 寿命有限:通常10万-100万次擦写

  • 容量很小:通常几KB到几百KB

  • 接口多样:I²C、SPI等

与Flash的区别

  • Flash按块擦除(如4KB一块)

  • EEPROM按字节擦除

典型用途

  • 配置存储:需要频繁修改的小数据

  • 校准数据:传感器校准参数

  • 设备信息:序列号、生产日期等

相关推荐
Devlab3 小时前
LVGL设计大师——网页版anyui来了!!
嵌入式硬件·物联网·低代码·ui·iot
ltl3 小时前
存储性能建模:IOPS、吞吐与延迟
linux
刘某的Cloud5 小时前
ceph osd 导入导出 rbd volume 卷
linux·运维·ceph·volume
酸菜。7 小时前
dw_axi_dmac总结
linux
神奇霸王龙7 小时前
Agent 准入门控屠夫:5 旗舰 4 维度评估
linux·运维·数据库·ai·ai作画·agent·ai编程
zlinear数据采集卡8 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
ACP广源盛139246256738 小时前
蚂蚁百灵 Ling‑3.0‑flash 开源 + 昇腾 0‑Day 原生适配@ACP#GSV9001E 在国产算力矩阵中的机会与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
小绫网络安全10 小时前
Kali Linux渗透测试入门教程:从零搭建到实战攻防
linux·运维·服务器
allforgood10 小时前
控制启动过程
linux·运维·服务器
西安景驰电子10 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php