MCU片上存储器详解:RAM、ROM、Flash及TF卡、SD卡的原理与区别总汇

Create Time:2025-05-05

目录

1. RAM

2. ROM

3. Flash

4. XIP

5. TF\SD卡

6. TF\SD卡中的ECC机制

7. TF与SD卡的区别


本篇笔记记录一下有关MCU常用存储器的定义、主要区别、常见容量以及常用的使用场景。

        一般来说,MCU里的存储器件包括RAMROM以及Flash三种,而RAM又分为DRAM和SRAM,ROM又分为EPROM、EEPROM,Flash又分为NOR和NAND,此外,还有一种被称为SD/TF卡的存储器,它们的主要区别是什么?常见容量是多少?常见的使用场景又是什么样的?本篇笔记将回答这些问题。

1. RAM

        首先来说RAM,RAM分为DRAM和SRAM,简单来说,DRAM使用电容器存储数据,数据会随时间消失,因此需要定期刷新以保持数据,所以称之为Dynamic,DRAM速度较慢但存储容量大,且成本低,一般用作MCU的主内存或者图形内存,比如我们常说的“代码会先读入RAM,然后再运行”,这里的RAM就是指的DRAM。
        再来说说SRAM,SRAM使用触发器来存储数据,数据保持稳定,不需要定期刷新,所以称之为Static,SRAM速度较快,适合需要高速访问内存的场景,但SRAM成本高且容量明显小于DRAM,一般用作CPU缓存或一些高性能应用中。

2. ROM

        再来说说ROM,ROM是只读存储器(与RAM最大的区别就是,ROM存储器掉电数据不丢失),可分为PROM、EPROM、EEPROM三类,这三者都属于只读存储器,区别在于修改存储的数据时,所采用的方法不同,现在最常用的就是EEPROM,一般大小在几十到几百KB之间,很少有超过512KB的,EEPROM一般用来存储用户配置参数、产品序列号、身份码、秘钥或授权信息等数据。

3. Flash

        除了EEPROM以外,Flash也是一种掉电数据不丢失的存储器,它与EEPROM存储器最大的区别在于:Flash容量要远大于EEPROM,且Flash是按扇区操作数据的,而EEPROM是按字节操作数据的。Flash一般用来存放运行代码,在运行过程中不能改,所以Flash在MCU中很适合不需频繁改写的程序存储器。
        至于NOR-Flash和NAND-Flash,二者区别主要在于:相比NAND,NOR的读取速度更快,但NOR容量较小,且NOR擦除速度慢,可擦除次数也低于NAND,另外,NAND的写入速度比NOR快。总的来说,NOR更类似SRAM,可按字节寻址,但容量较小,成本高;NAND更类似传统的Flash,按页/块擦除,容量较大且成本低。还有一点就是,NOR支持XIP(可直接从Flash运行代码),非常适合存放固件/内核启动程序,NAND不支持XIP,启动时需先将数据拷贝到RAM再运行。

4. XIP

        有关XIP,XIP(eXecute-In-Place,原地执行)是嵌入式系统中非常重要的一项技术,它允许CPU直接从非易失性存储器(通常是NOR-Flash)中取指并执行程序,无需先拷贝到RAM中,大幅节省RAM空间,并简化系统架构。本质上,NPR-Flash被映射到处理器的可执行地址空间,程序可以像在RAM中那样运行。
        总的来说,XIP是一种允许CPU直接从Flash中执行程序的机制,在嵌入式系统中极大地节省了RAM空间、提高了启动速度,是实现“精简系统设计”的关键技术之一,尤其适合MCU+NOR-Flash架构。但对写入能力、实时性和外部访问速度有严格限制,使用时需精心设计内存布局与函数位置。

5. TF\SD卡

        最后说一说TF卡存储器,TF卡本质上就是NAND-Flash与外围控制器合并在一起的一种系统级存储级产品,其本质上是NAND-Flash存储颗粒与存储控制器、接口电路以及ECC合并的模块。TF卡一般可以用SPI或者SDIO接口直接读写,支持FAT等标准文件系统,而Flash存储器需要自己驱动控制,实现块设备或文件系统映射。一般用来存储图片、音频、视频等数据,典型容量约为1GB-512GB。
        总的来说,TF卡是集成了控制器、支持文件系统的“系统级存储器”,用于大容量数据存储,而Flash芯片是裸存储单元,更适合高可靠、低层级控制、固件或高速缓存用途,两者本质不同,适配场景完全不同。

6. TF\SD卡中的ECC机制

        补充一下ECC,ECC是一种用于检测和纠正存储器中数据错误的算法机制,广泛应用于Flash、SD卡、内存、通信协议等领域,尤其在NAND Flash、TF卡中必不可少。

7. TF与SD卡的区别

        TF卡和SD卡的区别:TF卡是微型SD卡的早期称呼,现统一归为microSD,与SD卡技术相同、尺寸更小、应用更广泛,差别仅在体积和封装接口,二者可互转但不可互插。

 

作者:NJUST_ZHChen

物联沃分享整理
物联沃-IOTWORD物联网 » MCU片上存储器详解:RAM、ROM、Flash及TF卡、SD卡的原理与区别总汇

发表回复