嵌入式存储器(ROM/RAM/Flash)知识梳理

flushbonading

作为嵌入式开发者,存储器是我们开发过程中最频繁的硬件组件之一。从微小的8位单片机到复杂的嵌入式Linux系统,每个设备都用到了各种类型的存储器。

概念

存储器主要分为ROM和RAM,RAM和ROM的最大区别是RAM在断电以后保存的数据会自动消失,ROM不会消失

当然我们可以把所有的存储器按两种方式分类,易失性功能用途

按易失性划分(最核心分类)

  • 非易失性

    • 典型代表: flash(NOR/NAND)EEPROMROM、硬盘
    • 核心用途: 存储程序,配置信息,用户数据等长期保存的内容
  • 易失性

    • 典型代表: RAM(SRAM/DRAM/SDRAM)
    • 核心用途: 运行程序、临时数据、堆栈

按功能划分

  • 程序存储器: 用于存储可执行代码(ROM、NOR Flash)
  • 数据存储器: 用于存储运行时的数据(RAM、EEPROM)
  • 外部扩展: 存储大容量数据(NAND Flash、eMMC、SD卡)

非易失性存储器

非易失性存储器是负责保护系统断电后仍需保留的所有信息。

ROM只读存储器的进化史

ROM是最早的非易失存储器。

  • 掩模ROM
    • 原理:芯片制造的时候通过掩模写入,永远无法修改
  • PROM
    • 原理:通过熔断内部金属丝实现编程,只能写一次
  • EPROM
    • 原理:通过紫外线照射擦除数据,电信号编程 上面提到的基本已经被EEPROMFlash取代。

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的嵌入式开发者,就需要拿出时间去学习、熟悉该脚本 我一直认为`一个公司的销售不了解产品那一定会让去问开...

flushbonading

一文搞懂DTU、RTU的区别和应用场景

>DTU是作为串口数据与IP数据转换的传输通道 >RTU是集数据采集、现场设备控制、数据传输于一体的单元 >二者核心差异在于是否具备“现场数据采集与设备控制功能” >随着各样的无线网络传输技术的出现,网关应运而生。网关能够适配更多协议标准 我们从一个房间走到另一个房间,必须要经过一扇门。同样,从一个网络向另一个网络发送消息,也必须经过一个“关口”,而`DTU`、`RTU`就是这样的`关口`。...

flushbonading

一款高速USB转接多种协议芯片CH347

>本文介绍了国产CH347芯片的多种工作模式,包括USB转UART、IIC、SPI和JTAG等功能。 >目前正在设计合宙PC模拟器通过CH347实现控制SPI、IIC、GPIO的功能,所以给大家分享一下这个非常给力的国产芯片。 CH347介绍 `CH347`是一款**高速USB总线转接芯片**,通过`USB总线`提供`异步串口`、`I2C同步串行接口`、`SPI同步串行接口`和`JTAG接...

flushbonading