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的核心知识点串起来了。你从中心出发,沿着四个方向展开,就能建立起完整的知识框架。我个人建议,初学者先把"工作原理"和"与NAND对比"这两块吃透,再去研究具体型号。
好了,关于NOR Flash的基础知识就聊到这里。记住一句话:NOR Flash是嵌入式系统的"代码仓库",选对了,事半功倍;选错了,后面全是坑。
公众号:蓝海资料掘金营,微信deep3321