单片机中NVM和FLASH的区别

Flash是NVM的一种具体实现技术,而NVM是一个更广义的类别。

NVM(非易失性存储器)是一个大类,Flash(闪存)是这个大类下最流行、应用最广泛的一个子类。


核心概念对比

特性 NVM (Non-Volatile Memory) Flash (闪存)
定义 广义概念:所有断电后数据不会丢失的存储器。 狭义概念 :一种基于 浮栅MOS管 技术的、以块为单位擦除 的NVM。
关系 ,是上级类别。 ,是NVM的一种主流技术实现。
擦写单位 因技术而异(字节、块等)。 必须按"块/扇区"擦除,写入可以按字节/字。这是关键特点。
关键特性 非易失性是其唯一共同点。 非易失性 + 电可擦写 + 高密度 + 低成本
寿命 差异巨大,从一次写入到近乎无限。 有限(约1万-10万次擦写),需要磨损均衡管理。
在单片机中的角色 可以是程序存储器、数据存储器或配置存储器。 现代单片机中最主要的程序存储器和数据存储器

详细解释与在单片机中的应用

1. NVM - 非易失性存储器

这是一个统称,只要断电后数据不丢,都叫NVM。在单片机世界里,常见的NVM包括:

  • Mask ROM (掩膜ROM): 出厂时数据固化,不可更改。成本极低,用于完全定型的大批量产品。

  • PROM (可编程ROM): 用户可编程一次。

  • EPROM (可擦除PROM): 用紫外线擦除,可重复编程。

  • EEPROM (电可擦除PROM)可以按字节擦写,非常方便,但容量小、成本高。常用于存储需要频繁修改的少量数据(如系统配置、密码)。

  • Flash: 我们下面重点讲的技术。

  • 新型NVM: 如FRAM(铁电)、MRAM(磁阻)、RRAM(阻变)等,性能更好但尚未完全普及。

2. Flash - 闪存

Flash是当前单片机绝对主流的NVM技术,它本身又主要分为两类:

  • NOR Flash

    • 特点 : 支持 "芯片内执行" ,CPU可以直接从NOR Flash中取指令运行(XIP)。

    • 接口: 类似SRAM,有独立的地址和数据总线。

    • 在单片机中绝大多数单片机的程序存储器就是NOR Flash。你写的代码就烧录在这里面,单片机上电后直接从这里面读取指令执行。

  • NAND Flash

    • 特点 : 密度极高、成本低、速度快,但 不支持XIP,有坏块,需要驱动管理。

    • 接口: 通常为串行或并行IO接口,更像访问设备。

    • 在单片机中 : 单片机内部集成较少,通常作为 外部大容量数据存储器(比如SD卡、eMMC的核心就是NAND Flash)。一些高端单片机会集成一部分用于存文件系统或日志数据。

3. 单片机中的典型架构

现代单片机(如STM32, AVR, PIC32)的存储结构很好地展示了这两者的关系:

  • 主存储器 (Main Flash Memory)

    • 类型 : 这是 NOR Flash

    • 用途 : 存储程序代码常量数据

    • 特点: 擦写速度较慢(毫秒级),寿命有限(约1万次)。所以程序运行时不会频繁写这里。

  • 用户数据区 / DFlash / EEPROM 仿真区

    • 类型 : 通常也是 另一块独立的Flash (可能是NOR或专用数据Flash),或者真正的EEPROM

    • 用途 : 存储需要掉电保存的用户数据(如设备参数、校准值、运行记录)。

    • 特点 : 为了频繁写,这块区域通常被分成更小的扇区,并可能由软件库(如EEPROM仿真驱动)实现磨损均衡,以延长使用寿命。

  • 选项字节 / 配置字

    • 类型 : 一小块特殊的 Flash 或 OTP(一次可编程)存储器

    • 用途: 配置单片机硬件特性(如看门狗、保护位、时钟源)。


总结要点

  1. 包含关系NVM ⊃ Flash。Flash是NVM家族中最成功的"明星成员"。

  2. 关键区别 : Flash必须 "先擦后写" ,且擦除以 "块" 为单位。而像EEPROM这样的NVM可以 "按字节擦写"

  3. 单片机中的应用

    • 写的固件程序 ,存放在 Flash (NOR型) 中。

    • 程序运行时产生的、需要掉电保存的数据 ,通常也存放在一块专用的 Flash 里,或者少数单片机有独立的 EEPROM

    • 当调用 EEPROM.write() 这类函数时,底层操作的很可能就是一块用Flash模拟的EEPROM区域。

当在单片机数据手册上看到"Flash Memory"时,就知道它指的是那个存你程序代码的主要非易失性存储器;而"NVM"这个词则是对所有这类不掉电存储器的总称,Flash是它的核心组成部分。

相关推荐
想放学的刺客2 小时前
单片机嵌入式试题(第21期)嵌入式系统启动异常排查与多任务同步机制设计两个核心方向,涵盖硬件调试、软件架构等综合能力考察。
stm32·单片机·嵌入式硬件·物联网·51单片机·proteus
Y1rong2 小时前
STM32之DMA
stm32·单片机·嵌入式硬件
LS_learner2 小时前
ros2命令行工具的完整命令简介
嵌入式硬件
飞凌嵌入式2 小时前
嵌入式AI领域的主控选择
linux·arm开发·人工智能·嵌入式硬件
猫猫的小茶馆2 小时前
【Linux 驱动开发】四. 平台总线驱动
linux·c语言·arm开发·驱动开发·嵌入式硬件·mcu·物联网
promising-w2 小时前
【stm32入门教程】TIM定时中断
stm32·单片机·嵌入式硬件
代码游侠2 小时前
嵌入式开发代码实践——串口通信(UART)开发
c语言·开发语言·笔记·单片机·嵌入式硬件·重构
二十画~书生2 小时前
CH340G 驱动的多功能 USB 转串口电路
单片机·嵌入式硬件·硬件工程
阿凉07023 小时前
STM32 USB CDC虚拟串口配置
stm32·单片机·嵌入式硬件