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

相关推荐
茯苓gao几秒前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
GeekArch21 分钟前
第24讲:Vibe模式代码风格控制——适配Keil/STM32工程规范
人工智能·stm32·单片机·嵌入式硬件·mcu·决策树·ai编程
Freedom_my1 小时前
STM32项目3
stm32·单片机·嵌入式硬件
国科安芯2 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
小李不困还能学4 小时前
基于 51 单片机的8 路抢答器设计教程
单片机·嵌入式硬件·mongodb·抢答器
萌动的小火苗4 小时前
嵌入式开发中的栈与队列:任务调度为什么依赖数据结构
数据结构·c++·单片机·嵌入式硬件
振浩微433射频芯片5 小时前
工业遥控器总在关键时刻“掉链子”?——433MHz芯片方案如何破局
网络·单片机·嵌入式硬件·物联网·工业遥控
blevoice5 小时前
抖抖燃脂机单 AC6966B 主控调试踩坑:Type-C 整机供电喇叭无声排障
c语言·开发语言·单片机
三易串口屏6 小时前
三易串口屏开发教程:如何使用键盘控件输入参数并发送给单片机
单片机·嵌入式硬件·串口屏·三易串口屏·键盘控件
2CM_Embed7 小时前
F28379D 下载后 VOFA+ 无数据、Reset 后恢复:一次 TZ 中断误触发排查记录
笔记·单片机·sci·c2000·f28379d·vofa·tz