NANDFLASH与PSRAM
NANDFLASH与RAM,NORFLASH一些概念
小白第一次发博文,望大佬指正!
符号与缩略语与基本原理解释
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
DDR : DDR就是DDR SDRAM,就是双倍速的SDRAM,之所以是双倍速,是因为在系统时钟的上升沿与下降沿都可以传输数据
UFS : 手机上,从SD卡,到eMMC卡,再到UFS卡,存储卡的速度也是越来越快。现在一般手机配的是eMMC,旗舰高端手机配的是UFS。(ufs与eMMC差别主要在于内部主控器与接口标准和协议不同)
SLC :NAND Flash根据存储原理分为三种,SLC、MLC、TLC。一个存储器单元可存储1bit数据,只存在0和1两个充电值
MLC: 2 bit per cell
TLC: 3 bit per cell
MCP: 将两种以上的记忆晶片堆叠在一块,外部通过BGA封装好,例如NANDFLASH加上DRAM. 可简化PCB板结构与系统设计。
eMMC: 以MCP的方式将NANDFLASH和控制器整合在一块,外部用BGA封装
eMCP: 同传统MCP相比,多了 控制晶片
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
首先要弄明白一个问题,为什么闪存具有记忆的能力呢?可以看一下存储单元的内部结构。
用通俗语言解释就是说,NAND的存储单单元gate极与衬底之间有二氧化硅绝缘层,用来保护浮置栅极中的电荷不会泄漏。根据NAND的物理结构,NAND是通过绝缘层存储数据的。当你要写入数据,需要施加电压并形成一个电场,这样电子就可以通过绝缘体进入到存储单元,此时完成写入数据。如果要删除存储单元(数据),则要再次施加电压让电子穿过绝缘层,从而离开存储单元。 所以,NAND闪存在重新写入新数据之前必须要删除原来数据。
那么TLC 是怎么实现的呢?答案是通过控制不同数量的电子进入到存储单元来实现。见下图:
可以推测,TLC的寿命比SLC 和 MLC短的多,原因是由于TLC采用不同的电压状态,加上存储容量多,击穿绝缘层次数也比其他介质多,于是加速了绝缘层的损耗过程。所以,TLC SSD的寿命比SLC、MLC短得多。
RAM与NANDFLASH和NORFLASH的区别
首先,不要问我为什么没有ROM,因为ROM特么的就是个垃圾,就跟学习MOS管你还去学耗尽型MOS管一样,大家都不用的东西,就不用去管它了。
- NOR 内部可以直接跑程序(专业术语叫带XIP: 芯片内执行),这是和NAND最大的区别。很多boot都直接放在NOR里面,开机后直接跑起来。这就意味着NOR可以替代SRAM了。
- 断电后RAM里的数据就没有了,flash仍然有,所以这就是为啥boot放NOR里面的原因。
- NAND写入的速度比NOR快,并且容量大,价格便宜。所以NAND适合做替代磁盘做存储器。NOR读出速度快。
- NOR带SRAM接口,有足够的多的地址引脚来访问每一个存储单元,NAND只能按块来访问。
- NAND的最大擦写次数比NOR强,大概100万次,NOR只有10万次左右。
- NAND容量大
NANDFLASH的硬件连接
先来看看 NANDflash 的布线:
可以看出,就data0~data7 八根数据线。那么,问题来了,站在硬件工程师的角度来说,就八根数据线,外部是怎么对flash进行地址操作,以及发送命令操作的呢?
所以诀窍就在这几根线:
总结一下来说就是这样子工作的:
那么问题又来了,很多时候MCU的这几根数据线可不止光接NANDFLASH这一个外设,还会同时接 NORFALASH, SDRAM等,那么是怎么避免相互间干扰的呢?
答案很简单,就是靠的就是这根片选信号线:
假如把 数据 地址 命令 这三个都发给了flash后,怎么判断flash的执行状态呢?
答案仍然很简单,靠的就是RnB这根状态判断引脚来判断。
总结一下就是下面的表格:
RE WE就是 读写信号。
NANDFLASH的操作顺序
一般操作NANDFLASH的顺序都是三步走: 发出命令,给出地址,再读写数据
现在来看看具体的操作NANDFLASH的实例(读取NANDFLASH内部的ID值):