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

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

特性 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按字节擦除

典型用途:

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

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

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

相关推荐
贵州诚鑫致达科技有限公司5 小时前
Linux的yum源怎么重启?源不是服务
linux·运维·服务器
尼喃5 小时前
OVP/OCP过压过流保护芯片选型表:2A、3A、5A与10A方案怎么选
嵌入式硬件
澜山奕秋8 小时前
RHCSA
linux·运维·服务器
Web极客码9 小时前
告别流式截断:我用客户端中间件解决长文本 API 跨国 SSE 断连与数据自愈
linux·agent 图
cnnews9 小时前
Chromebox3安装Ubuntu后内存化与最小化 eMMC 写入优化
linux·运维·ubuntu
flytalei10 小时前
Ubuntu 24.04 单节点 K3s 部署实践:从环境评估到故障排查与验收
linux·运维·ubuntu
Starry-sky(jing)10 小时前
Hermes Agent 部署后怎么升级?v0.21.7 Linux 源代码版实测
linux·人工智能·ai agent·版本升级·hermes agent
水饺编程10 小时前
第2章:Linux 基础,clear 命令
linux·c语言·汇编
NYFEA11 小时前
NF532重磅上新:高集成度13.56MHz非接触式控制器
嵌入式硬件
GeW11 小时前
新质生产力路线图Linux和数据库自主可控实践指南
linux