外部存储芯片(详细说明)

您所在的位置:网站首页 flash存储芯片是外设吗为什么不能用 外部存储芯片(详细说明)

外部存储芯片(详细说明)

2024-07-15 20:06| 来源: 网络整理| 查看: 265

前言

苔花若米小,也学牡丹开.

这里是各种存储芯片的简单描述,如有问题,敬请指正!

存储芯片简介 为什么需要外部的存储原器件

STM32控制芯片内部有一定大小的 SRAM以及Flash做为内存和程序存储器, 一般来说, 这个内部存储器是足够的, 但当程序较大的时候, 内存装不下的时候, 就需要在STM32芯片的外部扩展外存(外部扩展存储器).

例如, 你本来只有100毫升的水, 我用桶装绰绰有余, 但是一旦你有100升的水, 我的桶就装不下了, 就需要外部再加一个或者多个更大的桶来把水全部装进去.

存储数据只是外部芯片的一种应用,还有一种用途就是充当一个间界的缓存。

存储芯片是什么

存储芯片是由各类存储器的统称. 而存储器是用来存储程序和各种数据信息的记忆部件

许多存储单元的集合, 按单元号顺序排列. 每个单元由若干二进制位(8位 16位 32位)构成, 以表示存储单元中存放的数值.存储器的单元地址只有一个, 固定不变, 而存储在其中的数据可以改变.

以上的概念非常好理解, 就拿一个例子来举例吧, 你面前有一排柜子, 每个柜子的外面都有对应的序号, 每个柜子里面都可以装一定大小的东西, 至于装多大, 还得看你柜子里面的空间有多大. 这里的柜子就可以看成存储芯片, 序号就是对应的单元号, 用来寻找不同地方的内存, 而柜子里面的空间就可以看成位数, 8位就可以存放28, 16位就可以存放216, 32位就可以存放232.

这个有点类似于数组的东西, 数组的下标就是序号, 数组的元素的大小取决于位数, 一般电脑的int 型数组就是32位的.

为什么众厂商选择的是SDRAM

我的单片机是安富莱的f429的芯片, 它上板载的外部存储芯片是SDRAM芯片, 我查阅了众家(如野火, 正点原子等)板子上的外部存储芯片, 无一不是选用了SDRAM 芯片,为什么会有这样的情况,是什么原因导致的, 下面我将带来对于这个问题的分析…

难道是因为只有SDRAM芯片吗?

在这里插入图片描述

上面是我在cubemx中截的图, 从图中我们可以看出fmc配置中, 有很多种的存储类芯片可以选择,有下面几种():

NOR FlashNAND FlashCompact FlashSDRAM

为什么这么多中的芯片, 最后却选择了SDRAM, 这背后定有其原因所在, 于是我打算从各个芯片的特点, 找到他们的异同, 做为我们的突破点.

突破点:存储芯片的类与别

首先芯片分为两个大类, 一种是易失性存储器,另一种是非易失性存储器. 其中易不易失的标准在于, 断电之后芯片是否还能保存原来的数据, 直白说就是, 易失就是断电之后数据就会丢失, 不易失就是芯片掉电之后数据还能保存. 既然, 都有非易失存储器了, 那我们还要易失存储器干嘛? 有句话说的好 : " 存在即合理. " 相对于非易失存储器, 易失存储器的存取速度快, 可以即拿即用, 而非易失存储器, 只能作为不易失的仓库使用了.

在这里插入图片描述

非易失存储器

有以下几种

ROMFlash光盘软盘机械硬盘

后三种我们不做讨论, 我们只用看前两种

ROM

ROM是Read Only Memory的缩写, 意思是只读存储器, 为什么叫这个名字, 这就要翻一翻ROM的历史了。

第一阶段 : ROM

在很久以前最古老的ROM是, 只能写入不可以读出的, ROM的数据通常都是在装机之前, 把内容写好固定死的, 之后就没办法改动了.

第二阶段 : PROM

后来为了方便用户自己的使用, 发展出了PROM, 这个芯片可以由用户编程一次, 之后的内容就是固定死了, 不可更改的了.

第三阶段 : EPROM

再后来, 只可编程一次的芯片也满足不了用户的需求了, 就发明出了EPROM, 可擦除可编程只读存储器, 可以多次写入内容, 在写入内容之前,必须先擦除,用紫外线光源和脉冲点流将原来的信息擦除。 缺点, 擦除太麻烦。

第四阶段: EEPROM

这个时候就发明出了至今为止最通用的一版ROM了, 就是EEPROM, 是一种随时可写入而无须擦除原先内容的存储器,其写操作比读操作时间要长得多,EEPROM把不易丢失数据和修改灵活的优点组合起来,修改时只需使用普通的控制、地址和数据总线.

Flash

Flash是快速闪存存储器 Flash memory 的简称,Flash容量大,速度高,价格便宜,擦除时,一般以多字节位单位,Flash内部是浮栅晶体管或浮栅MOSFET(FGMOS),MOSFET是用于放大或切换电子信号的晶体管。浮栅晶体管是电气隔离的,也就是说,浮栅晶体管的控制端和输出端没有直接相连,至于为什么不相连,这里会进行说明,

对于下图的MOS来说,当晶体管的控制端(g的地方)这边要求输出端(s的地方)那边输出一个高电平,就会给g一个高电平,给d一个高电平,一但给g一个电平,P型半导体的电子通过电势能都汇集到了,两个N型半导体中间,形成一个电子通路,从而把d的电压传递到s那边的输出端去,根据图示,就会在s那边输出一个高点平。

这里的g是栅极,s是源极,d是漏极。很好理解,g是门栅,控制开关;d要往外输出能量,要漏出去;s是输出极,对于外面就是能源。

Flash又分为NOR Flash 和 NAND Flash 1. NOR Flash

NOR Flash是Intel于1988年开发出来的第一代Flash,一经出现就打破了原先EPROM和EEPROM一统天下的局面。 NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。NOR 的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。

2. NAND Flash

1989年,东芝公司发表了NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。 NAND的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理需要特殊的系统接口。

3. NOR 和NAND的比较

通常读取NOR的速度比NAND稍快一些,而NAND的写入速度比NOR快很多。

在这里插入图片描述

4. CF(Compact Flash)卡

其实除了以上两种Flash,还有一种从NAND Flash延申出来的Flash,CF卡(Compact Flash)最初是一种用于便携式电子设备的数据存储设备。初期的CF卡确实是NAND Flash 规格的,经过后来的发展逐渐有了自己的的规格,如CF+规格。CF卡现今主要用作于摄像头的存储芯片。

易失存储器

先介绍一波RAM, –> RAM(Random Access Memory)随机访问存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。

RAM有两大分类,一个是SRAM(Static RAM) 静态的随机访问存储器,一个是DRAM(Dynamic RAM)动态的随机访问存储器。

1. SRAM

利用双稳态电路进行存储。即使有干扰对稳态电路也没影响,所以有双稳态性,“静态”是指只要不掉电,存储在SRAM中的数据就可以一直保存,只要有电,SRAM中的数据就不会有变化。加电情况下,不需要一直刷新,数据不会丢失,SRAM 的存储单元以锁存器来存储数据,种电路结构不需要定时刷新充电,就能保持状态。

双稳态,意味着可以稳定的状态有两种。 锁存,意味着可以一直保持一个状态,直到下次刷新才能改变。 在这里插入图片描述

2. DRAM

需要不断的刷新,才能保存数据。主要的作用原理,是利用电容中存储电荷的多少来判断,是二进制中的0还是1。但是由于电荷会有漏电的现象,导致数据的失真,所以需要不断给电容周期性的充电,否则无法长期保持记忆。 DRAM的另外一个特性就是,读取DRAM的电平,会导致单元行的电容的快速漏电,也就是说我们当前的读取会使下次读取不出正确的数据,所以一般对于DRAM的行读取操作后,会把行数据重新写回读取行中,这个写回的操作叫预充电,是行上的最后一项操作,完成这个操作之后,才能访问新的行,这一操作叫做,关闭打开的行。

DRAM的一种 --> SDRAM

SDRAM是DRAM的一种,也就是Synchronous DRAM,同步的DRAM。

他在时钟的上升沿表示有效数据,如图所示。

同步是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。

有的SDRAM是只有行地址,直接找到行地址,就可以直接把数据存入。 而有的SDRAM的存储,是通过存储矩阵来存储的,你可以把他想象成一个表格。我们在向这个表格中写入数据的时候,需要先指定一个行地址,然后指定一个列地址,就可以精确的找到目标单元格的位置,从而把数据存储进去。

SDRAM的容量计算

SDRAM由几个Bank组成,每个Bank有固定的大小。

只有行地址的情况: Bank数 * 2行数 * 存储单元容量

行列矩阵的情况: Bank数 * 2行数 * 2列数 * 存储单元容量

混杂的情况: 只有行Bank数 * 2行数 * 存储单元容量 + 行列都有Bank数 * 2行数 * 2列数 * 存储单元容量

拿安富莱的STM32F429的板子上面的SDRAM (MT48LC4M32B2)来举例: 大小为16MB = 4 * 212 * 28 * 32bit = 128Mbit = 16MB

在这里插入图片描述

SDRAM的刷新时间对于CPU时钟周期的要求计算

刷新速率 = SDRAM自动刷新时间 / 2行数

CPU时钟周期 = 刷新速率 * CPU运行频率

可靠运行的CPU时钟周期 = CPU时钟周期 - 20

拿安富莱的STM32F429的板子上面的SDRAM (MT48LC4M32B2)来举例: 这里设置CPU为(180MHz / 2) = 90MHz

在这里插入图片描述 刷新速率 = 64ms / 212 = 15.625us

CPU时钟周期 = 15.625us * 90MHz = 1406.25

可靠运行的CPU时钟周期 = 1406.25 - 20 = 1386.25

最后后向下取整 = 1386

SRAM与DRAM比较

SRAM的速度非常快,在快速读取和刷新时能够保 持数据完整性。SRAM内部采用的是双稳态电路的形式来存储数据。所以SRAM的电路结构非常复杂。制造相同容量的SRAM比DRAM的成本高的多。正因为如此,才使其发展受到了限制。因此目前SRAM基本上只用于CPU 内部的一级缓存以及内置的二级缓存。

总结比较

由于各个开发板厂商,用外部的芯片主要使用来传输数据,不是用来存储数据的,所以快的RAM比慢的ROM好,Flash的使用需要擦除浪费时间,所以用RAM,而DRAM比SRAM提供更高的存储空间且加个低廉,所以选用DRAM,而SDRAM因为其同步的时钟信号,可以保证数据传输的可靠,所以选择了SDRAM。

参考文档

FMC—扩展外部 SDRAM

SDRAM、DRAM及DDR FLASH ROM概念详解

什么是MOS管?结构原理图解

NOR Flash

MT48LC4M32B2中文数据手册

总结


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3