单片机中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是它的核心组成部分。

相关推荐
项目題供诗27 分钟前
51单片机入门(八)
单片机·嵌入式硬件·51单片机
羽获飞1 小时前
从零开始学嵌入式之STM32——9.STM32的时钟系统
stm32·单片机·嵌入式硬件
飞睿科技2 小时前
乐鑫智能开关方案解析:基于ESP32-C系列的低功耗、高集成设计
嵌入式硬件·物联网·esp32·智能家居·乐鑫科技
来自晴朗的明天2 小时前
13、NMOS 电源防反接电路
单片机·嵌入式硬件·硬件工程
17(无规则自律)3 小时前
深入浅出 Linux 内核模块,写一个内核版的 Hello World
linux·arm开发·嵌入式硬件
芯岭技术3 小时前
PY32MD310单片机:高性能、低功耗的32位电机控制微控制器
单片机·嵌入式硬件
wotaifuzao4 小时前
STM32 + FreeRTOS 的订阅通知组件架构
stm32·嵌入式硬件·架构·freertos·事件驱动·嵌入式架构
小龙报5 小时前
【51单片机】深度解析 51 串口 UART:原理、配置、收发实现与工程化应用全总结
c语言·开发语言·c++·stm32·单片机·嵌入式硬件·51单片机
Lester_110112 小时前
STM32 高级定时器PWM互补输出模式--如果没有死区,突然关闭PWM有产生瞬间导通的可能吗
stm32·单片机·嵌入式硬件·嵌入式软件
小李独爱秋13 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障