spi或者nand启动 如何选择嵌入式产品中的存储器类型?

小编头像

小编

管理员

发布于:2025年05月05日

150 阅读 · 0 评论

如何选择嵌入式产品中的存储器类型?

摘要:Flash存储器是一种非易失性内存,其作为数据、系统存储的关键介质,在嵌入式系统中扮演着重要角色。常见的Flash有NAND Flash 、Nor Flash、eMMC等,本文将简单介绍不同Flash的区别及应用场景。

图1 HD6Q-CORE ARM核心板板载Flash

1. NAND Flash

按照接口区分,NAND Flash分为串行和并行两种,串行就是每次传输1 bit,并行就是每次传输多位。下图的并行Flash采用8bit的数据位宽,并配合RE/WE等读写信号进行数据的读写。串行Flash管脚较少,多采用SPI或者QSPI接口进行通信。一般来讲,并行Flash的容量要高于串行Flash。

图2 并行NAND Flash接口

图3 串行NAND Flash接口

按照颗粒密度区分,并行NAND Flash可以分为SLC、MLC、TLC、QLC等,其中SLC、MLC颗粒较为常用。

图4 SLC、MLC、TLC、QLC

第一代SLC(Single-Level Cell)每单元可存储1比特数据(1bit/cell),性能好、寿命长,可经受10万次编程/擦写循环,但容量低、成本高,市场上用的比较少;第二代MLC(Multi-Level Cell)每单元可存储2比特数据(2bits/cell),性能、寿命、容量、成各方面比较均衡,可经受1万次编程/擦写循环,目前主流的核心板厂商大都配置该类型的存储;第三代TLC(Trinary-Level Cell)每单元可存储3比特数据(3bits/cell),性能、寿命变差,只能经受3千次编程/擦写循环,但是容量可以做得更大,成本也可以更低,大多数固态硬盘的选择;第四代QLC(Quad-Level Cell)每单元可存储4比特数据(4bits/cell),性能、寿命进一步变差,只能经受1000次编程/擦写循环,但是容量更容易提升,成本也继续降低。

2.Nor Flash

NOR Flash是一种非易失闪存技术,是Intel在1988年创建。是市场上两种主要的非易失闪存技术之一。按照接口区分, Nor Flash也可以分为并行和串行两种。由于并行Nor Flash易存在兼容性问题,现已逐渐淘汰,目前常用的Nor Flash通常指串行Flash,即SPI Flash,其接口定义和图3一致。

与NAND Flash相比,Nor Flash容量较低,且读写速度和擦写速度较慢。不同于NAND Flash的是,NOR Flash支持Execute ON Chip,程序可以直接在Flash片内执行,因此很适合作为嵌入式系统中的程序启动介质。

表1 NAND Flash &Nor Flash 存储介质对比表

eMMC

eMMC 本质上还是Nand flash ,数据接口支持1bit、4bit和8bit三种。eMMC=Nand flash +闪存控制芯片+标准接口封装,其内部集成的闪存控制器具有读写协议、擦写均衡、坏块管理、ECC校验、电源管理、时钟管理、数据存取等功能,极大降低了Nand-flash的使用难度。

图5 eMMC架构

在嵌入式系统中,Flash除了用来存放数据,还有一个重要的功能就是存放uboot启动程序。一般来讲,系统可以直接从Nor Flash启动,而不能直接从NAND Flash启动。系统要从NAND Flash启动,则需要先将NAND Flash低4K的代码拷贝到CPU内部的SRAM中,然后从SRAM中驱动。再将FLASH剩下的代码拷贝到SDRAM中,从SDRAM开始执行main函数,启动流程如下图所示。

图6 NAND Flash启动方式

一般来讲,当主控制所需搭配的存储容量较低时(如256M、512M),通常选择Nand flash。当主控制所需搭配的存储容量较高时(如4GB、8GB甚至32GB),选择eMMC将更具性价比。

嵌入式(1):ROM、RAM和FLASH傻傻分不清,搞懂存储介质与启动顺序

硬件的存储介质配置决定了整体的启动流程。运行介质都会在CPU的地址空间上,占用地址空间的一部分。CPU可以根据寻址地址从运行介质中读取一条指令或者一条数据。RAM属于随机访问存储器,ROM和Flash等属于非易失性存储器。

ROM

ROM(Read Only Memory),只读存储器。ROM数据不能随意更新,但是在任何时候都可以读取。主要用于存放一些固定的不需要修改的代码或者数据。掉电之后,数据还可以保存。IROM则是指集成于芯片内部的ROM。

ROM

ROM主要有Mask ROM、EPROM、EEPROM和Flash ROM。

Mask ROM (掩膜ROM),一次性由厂家写入数据的ROM,用户无法修改。

PROM 只允许用户利用专门的设备(编程器)将自己的程序写入一次,一旦写入后,其内容将无法改变。所以也叫做一次可编程只读存储器(One Time Programming ROM)。

EPROM (可擦除可编程ROM),分为UVEPROM(紫外线擦除)和EEPROM(电擦除)。EPROM虽然即可读又可“写”,但它不能取代RAM。因为EPROM的编程次数是有限的;而且它写入的时间较长,即使对于EEPROM,擦除一个字节需要约10ms,写入一个字节大约需要10us,比SRAM或DRAM的时间长100~1000倍。

EEPROM 不但可以利用电压的高低来写入数据,还可以利用电压的高低清除EEROM所存储的数据。EEPROM在数据清除时还可以针对个别的存储单元进行清除操作,比起EPROM需要整个清除数据方便许多。EEPROM的数据存储保持能力可以长达10年,而数据清除再被规划的次数可以达到一万次以上。

Flash ROM 见NOR Flash部分。

RAM

RAM有两个大类,静态RAM和动态RAM。

板载RAM

SRAM(Static Random Access Memory) ,即静态随机存取存储器(六个晶体管存储一位数据,功耗大,密面积大)。它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。优点,速度快(目前读写速度最快的存储设备),不必配合内存刷新电路,可提高整体的工作效率。初始化简单。缺点,集成度低,掉电不能保存数据,功耗较大,相同的容量体积较大,而且价格较高,少量用于关键性系统以提高效率(一、二级缓存)。

DRAM( Dynamic Random Access Memory) ,动态随机存储器(一个晶体管和一个电容存储一位数据,便宜简单,需要刷新),动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。

DRAM有很多种,主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等。

其中SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器,同步是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;相对于SRAM来说,体积较小且价格便宜。由General SDRAM and Controller进行控制,通常只能工作在133MHz主频。

其中DDRAM(Double Data Rate SDRAM,双倍速率随机存储器),DDRAM依靠一种叫做双倍预取(2n-prefetch)的技术,即在内存芯片内部的数据宽度是外部接口数据宽度的2倍,使峰值的读写速度达到输入时钟速率的2倍,并且DDRAM允许在时钟脉冲上升沿或下降沿传输数据,这样不需要提高时钟频率就能加倍提高SDRAM的速度,并具有SDRAM多一倍的传输速率和内存带宽。同时为了保证在高速运行时的信号完整性,DDRAM技术还采用了差分输入的方式。总的来说DDRAM采用更低的电压、差分输入和双倍数据速率输出等技术。

Flash

又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替ROM(EPROM)在嵌入式系统中的地位。

U盘、SD大小卡

Flash有两种:NOR Flash和NADN Flash。NOR Flash(读慢、写快)一般用来存储少量的代码,适合小容量固件的启动内存。NADN Flash一般用在高数据存储密度方案(固态硬盘、u盘等)。

NOR Flash 的读取和我们常见的SRAM的读取是一样,不需要再把代码读到系统RAM中运行,用户可以直接运行装载在NOR FLASH里面的代。NOR Flash的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但很低的擦除和写入速度大大影响了它的性能。

NAND Flash 没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。NAND Flash不能像RAM那样,直接对目标地址进行总线操作,比如执行一次写操作,它必须输入一串特殊的指令(NOR Flash),或者完成一段时序(NAND Flash)才能将数据写入到Flash Memory中,因此用户不能直接运行NAND Flash上的代码,好多使用NAND Flash的开发板除了使用NAND Flah以外,还配上了一块小的NOR Flash来运行启动代码。

SPI Flash使用SPI总线接口的Nand Flash。

eMMC是Nand Flash和闪存控制器集成在同一芯片封装。

SD和eMMC相似,区别就是eMMC焊接在主板上,而SD卡是可以拔插的。

TF(Trans Flash),也称为Micro SD卡,本质和SD卡是一个东西。

TF卡

SSD(solid-state drive)固态硬盘,与eMMC类似,区别是SSD是有多个闪存芯片,eMMC通常是一个闪存芯片,SSD使用SATA、PCIe、M2等接口,传输速度比eMMC的SPI接口更快,eMMC常用于移动设备中,SSD常用于PC。

三星870pro SSD

启动顺序

在uboot启动过程中有三个步骤,即BL0、BL1和BL2。因为BL0是上电启动代码,固定不变的,所以将其固化在IROM中运行。因为SRAM是集成在平台内部,BL0阶段之后可以直接使用,但是size比较小。而SDRAM需要根据外围DDR进行初始化,BL0之后还无法使用,需要在BL1中进行初始化之后才能使用。故BL0放在IROM中运行,BL1放在SRAM中运行,BL2放在SDRAM中运行。

本文为算法卡农所有,严禁侵权!

喜欢的话加个关注吧!

相关问答

spi nand 和spiflash有什么不同?

SPⅠNAND是SPI总线接口的闪存,一般用于移动硬盘或计算机固态硬盘,它的容量很大,通常都是以GB为单位的。而SPlFLASH通常是指SPl总线接口的存储芯片,容量都是...

spi flash与 nand flash的区别?

SPIFlash和NANDFlash是两种常见的闪存存储器类型,它们在结构和工作原理上存在一些区别。1.结构:SPIFlash采用串行接口(SerialPeripheralInterfa...

spi nand 与sd nand 的区别?

spinand和sdnand有显著的差异,主要有以下几点:1)spinand是使用spi接口连接的nandflash存储器,而sdnand是使用sd接口连接的nandflash存储器。...

spi nand 和nor是否兼容?

不兼容。首先,SPI是指一种通信接口。那么严格的来说SPIFlash是一种使用SPI通信的Flash,即,可能指NOR也可能是NAND。但现在大部分情况默认下人们说的SPIFlas...

宏旺半导体是中国企业吗?

宏旺半导体是中国民族企业,践行着“中国芯·宏旺梦”的伟大理想,立志实现存储芯片自主化,现有自己的品牌ICMAX,面对未来,宏旺半导体充满信心。宏旺半导体股...

如何评价龙芯推出国产高性能网络平台?

近年来国产处理器遍地开花,刚刚爆出了国产X86处理器,最早的国产处理器龙芯进来动静反而很小。这几天才注意到龙芯推出了一款高性能网络平台,主要芯片都是国产...

128M闪存的路由器是不是就可以随意刷机了?

128M这个一般是NAND闪存,有可能反而不容易好刷了;普通的16M或者32M存储的SPIFLASH的路由器,搭配主流的处理器,是最好刷的,比如常见的联发科MT7620、7621,...

手机内存卡对不同的手机能混用吗?大小刚好?

SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,所以有着广泛的应用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到SD卡中。因此不少数码...

标签:

相关阅读