1. 认识NOR Flash:从原理到选型

大家好,我是你们的嵌入式存储讲师。今天咱们来聊聊NOR Flash——这个在嵌入式世界里随处可见,却又常常被忽视的存储器件。

说实话,我最早接触NOR Flash是在做一款工业控制板的时候。当时选型时随手挑了个便宜的NAND,结果程序死活跑不起来。后来才发现,NOR Flash的XIP(片上执行)特性,才是这类场景的刚需。嗯,从那以后,我对NOR Flash就多了几分敬畏。

1.1 NOR Flash的工作原理

NOR Flash本质上是一种非易失性存储器。它的名字来源于内部存储单元的连接方式——每个存储单元都并联在字线和位线上,形成了类似"或非门"(NOR)的拓扑结构。

为什么会这样设计?说白了,就是为了实现随机访问。你想想看,CPU要读指令时,直接给个地址,NOR Flash就能像SRAM一样把数据吐出来。这一点在嵌入式启动过程中至关重要——很多MCU就是直接从NOR Flash里取指令执行的。

核心要点:NOR Flash支持XIP(eXecute In Place),即片上执行。程序可以直接在Flash里运行,无需拷贝到RAM中。

我在项目中遇到过这样一个坑:某次用了一款号称"高速"的NOR Flash,结果发现读速度确实快,但写一个字节要等好几毫秒。后来查手册才明白,NOR Flash的写操作需要先擦除再编程,擦除是以扇区(通常64KB或128KB)为单位的。这个特性,直接影响了文件系统的设计思路。

1.2 存储单元结构

NOR Flash的存储单元,目前主流的有两种:

  • 浮栅晶体管(Floating Gate):传统结构,通过向浮栅注入电荷来存储数据。写入时需要较高的电压(约12V),擦除时用负电压把电荷拉出来。
  • 电荷俘获结构(Charge Trap):较新的技术,用氮化硅层代替多晶硅浮栅。优点是功耗更低、工艺更先进。

每个存储单元可以存储1位(SLC)、2位(MLC)甚至3位(TLC)。但要注意,NOR Flash目前主流还是SLC,因为MLC/TLC的读取可靠性在NOR架构下不太好保证。我个人习惯,但凡涉及代码存储,一律用SLC NOR Flash。

小技巧:判断一款NOR Flash是SLC还是MLC,可以看它的擦除次数规格。SLC通常标称10万次以上,MLC只有1万次左右。

1.3 与NAND Flash的对比

很多初学者会问:NOR和NAND到底有啥区别?我做个表格,一目了然:

对比项 NOR Flash NAND Flash
读取速度 快(支持随机访问) 较慢(按页读取)
写入速度 慢(按字节/字编程) 快(按页编程)
擦除速度 慢(按扇区擦除) 较快(按块擦除)
密度 低(通常≤512Mb) 高(可达数Gb)
位成本
可靠性 高(坏块少) 较低(需坏块管理)
典型应用 代码存储、启动加载 大容量数据存储

我曾经在一个项目里,用NAND Flash存代码,结果启动时CPU读指令总是出错。后来加了ECC校验才勉强能用,但性能大打折扣。说白了,选型时一定要想清楚:你的数据是代码还是文件?代码用NOR,文件用NAND,这是铁律。

1.4 常见型号与规格

市面上主流的NOR Flash厂商有Winbond(华邦)、Macronix(旺宏)、Micron(美光)、Cypress(赛普拉斯)等。我整理了几款常见的型号:

型号 容量 接口 扇区大小 典型应用
W25Q64JV 64Mb SPI 64KB MCU代码存储
MX25L12835F 128Mb SPI 64KB 物联网设备
S25FL256S 256Mb SPI/Quad SPI 256KB 工业控制
MT25QL512 512Mb SPI 128KB 汽车电子

避坑指南:我曾经在选型时没注意扇区大小,结果文件系统的擦除粒度跟Flash扇区不匹配,导致频繁的读-改-写操作,性能惨不忍睹。所以,选型时一定要确认扇区大小,并据此设计文件系统的擦除策略。

另外,接口方面,SPI NOR Flash是目前的主流。Quad SPI(四线SPI)能提供更高的读取带宽,适合需要快速启动的场景。我个人习惯,如果MCU支持Quad SPI,优先选这种接口的Flash。

1.5 知识体系总览

下面这张图,是我梳理的NOR Flash知识体系。你可以把它当作本章的思维导图:

NOR Flash 工作原理 浮栅晶体管 电荷俘获结构 XIP片上执行 存储单元结构 SLC / MLC / TLC 扇区擦除 字节/字编程 与NAND Flash对比 随机读 vs 页读 高可靠 vs 高密度 代码 vs 数据 常见型号与规格 W25Q64JV (64Mb) MX25L12835F (128Mb) S25FL256S (256Mb) MT25QL512 (512Mb) 接口类型 SPI / Quad SPI Parallel (较少用) Dual/Quad I/O 选型关键:容量、接口、扇区大小、擦除次数

这张图把NOR Flash的核心知识点串起来了。你从中心出发,沿着四个方向展开,就能建立起完整的知识框架。我个人建议,初学者先把"工作原理"和"与NAND对比"这两块吃透,再去研究具体型号。

好了,关于NOR Flash的基础知识就聊到这里。记住一句话:NOR Flash是嵌入式系统的"代码仓库",选对了,事半功倍;选错了,后面全是坑。


公众号:蓝海资料掘金营,微信deep3321