嵌入式系统常用外部存储器

目录

前言

1 DDR SDRAM

2 EEPROM

3 NAND Flash

4 Nor Flash

5 eMMC

6 其他


前言

存储器主要包含两大类,一类是易失性内存存储,一类是非易失性内存,其作为数据、系统存储的关键介质,在嵌入式系统中扮演着重要角色。常见的有DDR SDRAM、EEPROM、NOR Flash、NAND Flash 、eMMC等,本文将介绍其区别及应用场景。

1 DDR SDRAM

DDR的全称其实是DDR SDRAM(双通道同步动态随机存储器),程序运行内存。

DRAM:只有一个异步接口,采用异步传输的方式,异步传输技术简单,也比较稳定,但是数据的传输速率相对较慢。

SDRAM:除了异步接口,还多了一个同步接口。同步接口需要数据发送方和接收方有一个统一的时钟信号,技术相对复杂,相应的传输速率和并发度都更高,每个时钟周期传输一次数据。

DDR SDRAM(DDR):在每个时钟周期内能够传输两次数据,数据传输是SDRAM的2倍。也就是说DDR其实就是具有双倍数据传输率的SDRAM,在DRAM的基础上快上加快。

DDR代数越高:

时钟周期越短(也就是频率越高),传输速度也就越快

能支持的理论最大容量越大,DDR4的理论最大容量已经达到512GB

电压越小,耗电量也就越低。

2 EEPROM

EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦写可编程只读存储器)是一种非易失性存储器,可以在不需要外部电源的情况下存储和擦除数据。EEPROM可以被单个字节擦除和重新编程,而不需要整体擦除,适用于配置信息、参数设置等。

EEPROM与普通的只读存储器(ROM)和闪存有所不同。ROM是只读存储器,一旦被编程就无法再次擦除或修改。闪存可以被擦除和重新编程,但需要一些特殊的操作,而EEPROM可以更方便地进行擦除和编程,

EEPROM的工作原理是通过在集成电路内部存储电荷来存储数据。当数据需要被擦除时,电荷被从存储单元中移除,使其恢复为初始状态。当数据需要被编程时,电荷被重新注入,改变存储单元的状态。

对于编程EEPROM,通常使用专门的EEPROM编程器或通过编程器接口(如SPI或I2C)与微控制器或计算机连接来编程。编程EEPROM的过程通常包括选择要编程的地址、写入数据和执行编程操作。

EEPROM提供了2种写方式,字节写和页写:

  • 字节写:随机写入想要写入的地址,在指定的地址写入一个字节数据;
  • 页写:发生写操作,开始送入的地址对应的页被锁存,后续不论写多少,都在这个页中,只是一个页内的地址进行加一,超过就归零开始。从F0开始写32个字节,那么开始送入的地址为F0,就会锁定在1号页(第2个页)上,底端7位页内部地址开始从70H开始写,到达7F时回到00再到10H,也就是写在了F0~FF,80~8F。也就是,从01开始写也只能到7F,再往80写就跑到00上去了,这就是写操作的翻卷,datasheet上都有说明。就是从边界前写两个字节也要分两次写。页是绝对的,按整页大小排列,不是从开始写入的地址开始算。

EEPROM也提供了三种读方式;分为直接读,随机读和顺序读。读没有页的问题,可以从任意地址开始读取任意大小数据,只是超过整个存储器容量时地址才回卷。但一次性访问的数据长度也不要太大。所以分页的存储器要做好存储器管理,尽量同时读写的数据放在一个页上。

  • 直接读取读取EEPROM的第一个字节;
  • 随机读取就是写入想要读取的地址,从当前的地址一个字节一个字节读取数据;
  • 顺序读取就是从EEPROM的第一个字节开始一个字节字节的读取;

注意:选择具有WP写保护引脚的器件,防止被误写。现在很多器件都有写保护功能,首先将WP置高,需要写时置低,写完后再置高;防止被误操作。

3 NAND Flash

按照接口区分,NAND Flash分为串行和并行两种,串行就是每次传输1 bit,并行就是每次传输多位。串行Flash管脚较少,多采用SPI或者QSPI接口进行通信。一般来讲,并行Flash的容量要高于串行Flash。适用于存储固件。

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

  • 第一代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次编程/擦写循环,但是容量更容易提升,成本也继续降低。

4 Nor Flash

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

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

5 eMMC

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

6 其他

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

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

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tech Embedded

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值