嵌入式存储器(ROM/RAM/Flash)知识梳理
作为嵌入式开发者,存储器是我们开发过程中最频繁的硬件组件之一。从微小的8位单片机到复杂的嵌入式Linux系统,每个设备都用到了各种类型的存储器。
概念
存储器主要分为ROM和RAM,RAM和ROM的最大区别是RAM在断电以后保存的数据会自动消失,ROM不会消失
。
当然我们可以把所有的存储器按两种方式分类,易失性
和功能用途
。
按易失性划分(最核心分类)
-
非易失性
- 典型代表:
flash(NOR/NAND)
、EEPROM
、ROM
、硬盘 - 核心用途: 存储程序,配置信息,用户数据等长期保存的内容
- 典型代表:
-
易失性
- 典型代表:
RAM(SRAM/DRAM/SDRAM)
- 核心用途: 运行程序、临时数据、堆栈
- 典型代表:
按功能划分
- 程序存储器: 用于存储可执行代码(ROM、NOR Flash)
- 数据存储器: 用于存储运行时的数据(RAM、EEPROM)
- 外部扩展: 存储大容量数据(NAND Flash、eMMC、SD卡)
非易失性存储器
非易失性存储器
是负责保护系统断电后仍需保留的所有信息。
ROM只读存储器的进化史
ROM
是最早的非易失存储器。
掩模ROM
- 原理:芯片制造的时候通过掩模写入,永远无法修改
PROM
- 原理:通过熔断内部金属丝实现编程,只能写一次
EPROM
- 原理:通过紫外线照射擦除数据,电信号编程
上面提到的基本已经被
EEPROM
和Flash
取代。
- 原理:通过紫外线照射擦除数据,电信号编程
上面提到的基本已经被
EEPROM-小容量存储
- 原理: 通过
隧道效应
实现电擦写,可字节级操作 - 特点: 可字节级擦除、读写速度慢、容量小(KB级别) 可以应用在存储设备校准参数、用户信息、运行状态。现在MCU都以集成内部EEPROM。
Flash存储器-主力军
Flash
闪存是目前应用最广泛的非易失性存储器,结合了ROM的非易失性和灵活性。
- 基本原理(听过即可)
- 写入: 通过隧道效应向浮栅注入电荷
- 擦除: 通过隧道效应或热电子发射清除浮栅电荷
- 读取: 通过检测浮栅电荷对沟道导通状态的影响判断数据
和EEPROM的核心区别
- Flash的擦除是以块为单位,而非字节
- Flash具有更高的存储密度
- Flash擦除次数比EEPOM高
NOR Flash
NOR Flash
是一种支持随机访问的闪存类型
- 结构性能
- 读取速度块
- 擦写速度慢,尤其大容量擦写
- 容量相对小(1MB - 256MB)
- 接口类型
- 并行接口(Parallel NOR): 速度快,引脚多
- SPI引脚(SPI NOR): 引脚少,布线简单
- 应用场景
- 存储
Bootloader
和应用程序 - 存储需要快速随机访问的配置数据
- 支持 XIP
- 作为代码存储器,支持CPU直接从NOR中读取
- 存储
CPU直接从存储器中读取程序代码执行,不用再读到内存中,可以节省内存资源
NAND Flash
NAND Flash
是一种高容量、高性价比的闪存
- 结构特点
- 存储单元串联结构,类似
NAND
门
- 存储单元串联结构,类似
- 核心性能
- 容量大
- 擦写速度快
- 随机读取慢
- 存在坏块
- 接口类型
- 传统NAND接口
- 标准化NAND接口(ONFI接口)
- 应用场景
- 存储大量数据
- 作为文件系统的载体
- 固件升级包存储
NOR闪存是由Intel公司开发的,是一种随机访问设备,具有专用的地址和数据线(和SRAM类似),以字节的方式进行读写,允许对存储器当中的任何位置进行访问。 而NAND闪存则没有专用的地址线,不能直接寻址,是通过一个间接的、类似I/O的接口来发送命令和地址来进行控制的,这就意味着NAND闪存只能够以页的方式进行访问。 NOR主要应用于代码存储介质中,而NAND则用于数据存储。
集成化存储
集成化存储即为将Flash与控制器集成的方案
eMMC
- 本质:
NAND Flash
+控制器
+标准接口
的继承芯片 - 特点:
- 采用标准MMC接口,简化硬件设计
- 容量大(4GB~256GB)
- 可靠性高
SD卡和MicroSD卡
- 本质: 可移动的eMMC类似物
- 特点: 支持热插拔,方便数据交换
易失性存储器
易失性虽然不能长期保存数据,但系统运行时也是必不可缺的。
RAM的概念
RAM
的特点:
- 可以随机访问任何地址,读写速度快
- 断电后数据丢失
- 用于存储运行中的数据和数据
- 是CPU与外部世界交换数据的主要场所
SRAM(静态随机存储器)
- 工作原理: 触发器电路数据存储,不需要刷新
- 特点:
- 速度快,纳秒访问时间
- 功耗较高
- 应用场景:
- CPU内部缓存
- 对速度要求高的场景(RTOS)
- 小型MCU的片内RAM
DRAM(动态随机存器器)
- 工作原理: 基于电容存储电荷,需要定期刷新
- 特点:
- 速度比SRAM慢
- 比静态功耗低
- 成本较低
- 常见类型
- SDRAM(同步DRAM): 与系统时钟同步
- DDR SDRAM(双倍数据率 SDRAM)
- DDR: 双倍数据率
- DDR2: 更新频率
- DDR3: 比DDR2更稳定,功耗更低
- DDR4: 主流,更高带宽,更低电压
- LPDDR SDRAM(低功耗DDR): 移动设备上
嵌入式系统中的RAM应用
- 片内RAM: 集成在MCU中,容量小,速度快,用于简单程序运行
- 外部扩展RAM: 当片内RAM不足是使用,特定接口(FSMC、LPDDR)
FSMC为可变静态存储控制器,是ST公司为STM32的MCU开发的
存储器在嵌入式系统的常见配置
- 8位/16位MCU: 片内 ROM(或 Flash) + 片内 RAM + 可选 EEPROM
- 32位MCU: 片内 Flash + 片内 RAM + 外部 NOR Flash + 可选外部 NAND Flash/SD 卡
- 嵌入式Linux: eMMC(或 NAND Flash) + DDR RAM + 可选 SD 卡 / SSD
相关文章
合宙主流通信模组梳理
合宙作为我第一家实习公司,其在行业上是一位佼佼者,我们合宙推出多种产品,满足了几乎所有客户对通信模组的需求。 并且,合宙有一个特色`Luatos`,是一种基于`lua`的开发脚本。它是一种针对嵌入式的脚本运行框架。针对资源较少的嵌入式环境进行了优化,极大提升了运行效率。 >但是对于习惯C的嵌入式开发者,就需要拿出时间去学习、熟悉该脚本 我一直认为`一个公司的销售不了解产品那一定会让去问开...
一文搞懂DTU、RTU的区别和应用场景
>DTU是作为串口数据与IP数据转换的传输通道 >RTU是集数据采集、现场设备控制、数据传输于一体的单元 >二者核心差异在于是否具备“现场数据采集与设备控制功能” >随着各样的无线网络传输技术的出现,网关应运而生。网关能够适配更多协议标准 我们从一个房间走到另一个房间,必须要经过一扇门。同样,从一个网络向另一个网络发送消息,也必须经过一个“关口”,而`DTU`、`RTU`就是这样的`关口`。...
一款高速USB转接多种协议芯片CH347
>本文介绍了国产CH347芯片的多种工作模式,包括USB转UART、IIC、SPI和JTAG等功能。 >目前正在设计合宙PC模拟器通过CH347实现控制SPI、IIC、GPIO的功能,所以给大家分享一下这个非常给力的国产芯片。 CH347介绍 `CH347`是一款**高速USB总线转接芯片**,通过`USB总线`提供`异步串口`、`I2C同步串行接口`、`SPI同步串行接口`和`JTAG接...