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(一次可编程)存储器。
-
用途: 配置单片机硬件特性(如看门狗、保护位、时钟源)。
-
总结要点
-
包含关系 : NVM ⊃ Flash。Flash是NVM家族中最成功的"明星成员"。
-
关键区别 : Flash必须 "先擦后写" ,且擦除以 "块" 为单位。而像EEPROM这样的NVM可以 "按字节擦写"。
-
单片机中的应用:
-
写的固件程序 ,存放在 Flash (NOR型) 中。
-
程序运行时产生的、需要掉电保存的数据 ,通常也存放在一块专用的 Flash 里,或者少数单片机有独立的 EEPROM。
-
当调用
EEPROM.write()这类函数时,底层操作的很可能就是一块用Flash模拟的EEPROM区域。
-
当在单片机数据手册上看到"Flash Memory"时,就知道它指的是那个存你程序代码的主要非易失性存储器;而"NVM"这个词则是对所有这类不掉电存储器的总称,Flash是它的核心组成部分。