嵌入式开发人员,这些ROMFLASH硬盘技术知识,必须要了解
Posted 一口Linux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式开发人员,这些ROMFLASH硬盘技术知识,必须要了解相关的知识,希望对你有一定的参考价值。
在嵌入式开发中,如果芯片内部有Flash,应用程序通常保存在芯片内部FLASH中,比如Cortex-M系列的单片机;如果芯片内部没有Flash,则应用程序通常保存于外部的NAND FLASH中,比如Cortex-A系列的芯片。这些Flash都是可以通过软件编码进行重新编程。
在计算机发展早期,数据是存储在ROM中,ROM中的数据只读不可写,应用有限,直到后面出现的EEPROM、NAND存储器,使得计算机存储技术的应用得到快速发展,特别是近十年广泛应用的高速存储技术eMMC与UFS,推动消费电子领域的快速发展,比如手机存储技术,现今最新款的小米11,使用了UFS3.1技术。
一、存储器的发展
存储器的快速发展得益于半导体技术的发明与发展,特别是晶体管与CMOS管的发明,通过电信号来控制自身开合,以开关的断开和闭合来代表0和1,这些就是存储电路的基本逻辑构成,随着集成电路的出现,ROM存储技术也随之产生。如下简要了解存储技术的发展史:
二、ROM
ROM是Read Only Memory的简称,即为只读存储器。ROM内部的程序是在ROM的制造时被烧录进去的,其中的内容只能读不能改,一旦烧录进去,用户只能读取内部的数据,不能再作任何修改。如果发现ROM的内容写错,则该ROM芯片只能报废。由于ROM是在生产线上生产的,由于成本高,一般只用在大批量应用的场合。
三、PROM
由于ROM在出厂时已被固化,用户无法定制自己的程序和数据,因此进行了改进,出现了PROM(Programmable ROM,可编程ROM)。也就是出厂时ROM里面没有数据即全为1,用户可以用专用工具进行固化程序数据到ROM中,但是这种机会只有一次,一旦写入后也无法修改,若是出了错误,已写入的芯片也只能报废。
四、EPROM
PROM这种只能一次性编程显然成本高不符合开发需求,因此EPROM(Erasable Programmable ROM,可擦除可编程ROM)芯片出现,通过紫外线可重复擦除和写入,解决了PROM芯片只能写入一次的弊端。
EPROM芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以看到其内部的集成电路,紫外线透过该孔照射内部芯片就可以擦除其内的数据,完成芯片擦除的操作要用到EPROM擦除器。
EPROM的型号有以27开头的系列,如2764(8*8K)是一片64K Bits容量的EPROM芯片。EPROM芯片在写入程序后,还要以不透光的贴纸或胶布把窗口封住,以免受到周围的紫外线照射而使程序丢失。
四、EEPROM
虽然EPROM可多次擦除编程,但是由于需要编程器,所以EPROM还是不是很方便使用,因此 EEPROM(Electrically Erasable Programmable ROM,电可擦除可编程ROM)随着产生。EEPROM的擦除不需要借助于其它设备,它是以电子信号来修改其内容的,而且是以Byte为最小修改单位,不需要全部擦除再写入,很适合嵌入式设备的外部存储器。
目前EEPROM还有在使用,以Ateml公司的AT24C系列的CMOS E2PROM为例,其采用IIC通信接口,电压1.8-3.6V,嵌入式设备应用很广泛。
五、Flash
Flash目前主要是Intel于1988年开发出的NOR flash技术和1989年东芝公司开发的NAND flash技术;它们的出现彻底改变了存储器市场上由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。
这两种技术区别在于接口与内部存储结构。在接口方面,NOR flash有独立的地址与数据线,而NAND flash没有,他们的特性区别如下表所示:
内部结构方面(基于SLC NAND),如下表所示区别:
5.1、nor flash
NOR Flash最大特点是支持XIP(Execute On Chip),既程序可以直接在NOR flash的片内执行,在NOR Flash中的代码运行时不需要重定位复制到RAM内。
如上图所示Nor Flash,型号为MX29LV160。
NOR Flash的地址线和数据线分开,只要能够提供数据地址,数据总线就能正确给出数据。不过不能直接对它进行写操作,执行写操作之前需要先发送固定的命令序列,然后发送写操作的地址和数据。
NOR Flash存储器的最小访问单元一般分为8位和16位的,也有一些NOR Flash器件同时支持8位和16位模式,这种Flash的位宽可以在设计硬件时选择,当芯片的BYTE#引脚接为高电平,芯片工作在位宽16位模式,BYTE#引脚设为低电平时,芯片工作在位宽8位模式。
NOR Flash一般有多个扇区,扇区是NOR Flash擦除的最小单位,Nor Flash中每个扇区的大小也不是固定的。
MX29LV160为例,写时序图如下所示(地址与数据总线是独立的):
读时序图如下所示,具体可参考数据手册:
5.2、nand flash
5.2.1、nand类型
Nand flash是现在使用最多的闪存技术,现在主流的SD卡、eMMC、UFS、SSD等都是基于Nand flash技术的。但是Nand flash根据其存储单元的类型,可分为SLC、MLC、TLC、QLC、PLC、…… 后续会有很多类型的LC系列。这些类型的区别是同一个存储单元可以表示的数据位数不同,以SLC、MLC、TLC、QLC为例如下图所示:
SLC:一个单元表示1bit数据;
MLC:一个单元表示2bit数据;
MLC:一个单元表示3bit数据;
QLC:一个单元表示4bit数据;
因此同样尺寸大小的nand flash,基于QLC可以存储的容量是SLC的4倍之多。但是虽然存储容量多,但是在读写速率、擦除寿命及稳定性上却是更低的,目前市面上比较多的是基于SLC、MLC、TLC单元结构的,特性对比如下:
SLC读写快,寿命长,但价格贵,容量低;而TLC读写慢,寿命短,但价格便宜,容量高。所以市面上基于nand flash的产品中,低端产品大部分都是TLC,中端产品大部分都是mlc,企业级的高端产品就是用SLC,追求的是稳定。
5.2.2、2D与3D技术
现在市场上追求的是设备的小型化,但是容量要求最大化,因此通过不断地提升制程工艺技术,减小每个存储单元的大小,如从45nm到16nm(目前最先进制程为高通骁龙888处理器达5nm),能到达同样的芯片体积存储容量进行扩大。
但是制程提高也带来了一个瓶颈,当随着制程工艺提高,每个存储单元越小,nand单元颗粒的氧化层越薄,可靠性越低,特别是QLC这种一个存储单元表示4bit/cell数据,影响更大。
假设存储单元电压是 1.8V,对 SLC 而言,一个 bit 有二个状态,平均分配 1.8V 电压,每个状态可以分到 0.9V;对 MLC 而言,四个状态平均分配电压,每个状态可以分到 0.45V,以此类推,TLC 每个状态只可以分到 0.225V,而 QLC 更惨,每个状态只可以分到 0.1125V。在这么小的电压下,这么多的状态以极小的电压区隔,电压区隔越小越难控制,干扰也越复杂,而这些问题都会影响 TLC 或 QLC 闪存的性能、可靠性及稳定性。
Nand 2D技术属于平面闪存(Planar NAND)范畴,其通过工艺提高容量瓶颈在10/9nm上;因此Nand 3D技术早在2007年就被提出来,即立体结构闪存。举例说明:如果2D是平房,则3D就是高楼大厦,3D就是N层的2D闪存的堆叠,如上图所示。
但是3D并不是简单的进行堆叠,不同的公司有不同3D技术工艺,在3D闪存中具有代表性的工艺有:
也正因为3D NAND的技术,使得部分采用相应技术的TLC产品达到了MLC的性能,就是我们常说的3D TLC。而三星、美光等大厂的第四代颗粒3D QLC产品也已经投入了市场,让广大消费者体验到了更高的容量、更低的价格、更快的读写性能。
随着3D Nand的出现,2D由于无法在缩小单元尺寸的瓶颈限制,已经走到尽头,现在最新的3D堆叠层数达到了128层,如下图所示:
5.2.3、nand接口与时序
Nand flash比nor flash写/擦除快,寿命长,成本低,得到更加广泛的应用,但是其没有独立地址总线与数据总线,地址与数据共用8bit/16bit IO,因此其读取速率方面比nor略低一些。
以美光MT29F系列nand flash为例(如MT29F16G08),其复用8bit或16bit IO用于传输命令、地址、数据,同时有5组控制信号CE#,CLE,ALE,WE#,RE#,还有WP写保护与R/B状态信号线。
各个引脚功能描述如下表所示:
写命令时序:
写地址时序:
数据写入时序:
数据读取时序:
以上读写MT29F系列芯片的具体命令与地址信息组成可参考MT29F系列的规格书,网盘地址为:
关注公众号:一口Linux:后台回复:
MT29F
六、MMC与SD系列存储卡
6.1、存储卡发展简介
Nand Flash的出现使得数据存储得到快速的发展,但是Nand Flash只是一种存储介质,要在其上读写数据,需要外部加上主控和电路设计,因此会影响到读写速率的提升,同时也是有点复杂。
基于此,控制器+Nand Flash组合的存储结构模式开始出现,控制器用于处理Nand Flash的存储逻辑,同时也可以管理NAND的坏块、ECC校验等,解放了外部主芯片的工作,提高了开发效率。于是,MMC卡、SD卡(TF卡)、eMMC卡、UFS等各种接口卡开始出现。
MMC是比较早出现的一种卡类型,其所定义的总线接口类型及通信协议规范,后续都被SD卡规范及eMMC规范继承和延续,参考如下图:
首先,在1997年,西门子公司和SanDisk推出MMC(MultiMedia Card)卡,成立了MMC协会(MultiMedia Card Association简称MMCA),MMC的发展目标主要是针对数码影像、音乐、手机、PDA、电子书、玩具等产品。
其次,在1999年,日本松下、东芝及美国SanDisk公司共同开发研制了SD(Secure Digital Memory Card)卡,在MMC卡基础上,扩展了总线协议,支持数据存储的安全性。后续Mini SD(Mini Secure Digital Memory Card)从SD卡发展而来,体积是SD卡60%,性能跟SD卡一样;
在2004年,摩托罗拉与SANDISK共同研发TF卡(TransFLash),体积更是只有SD卡的1/4,因此,后续早期智能手机的容量扩展都是用来TF卡。
早期SD规范只是针对数据存储,即只连接SD卡;后面制定了SDIO规范,除了可以外接SD卡外,通过SD总线还可以连接外围其他IO设备,如WiFi card,Bluetooth card,GPS card等,因此现在SDIO接口基本上可以兼容SD卡与MMC卡。
2010年,随着智能手机的发展,需要更快速率的数据存储,因此新的eMMC(Embedded Multi Media Card)规范也发展起来,在2011年至2016年,智能手机的存储FLASH主要基于eMMC接口;而2016年后,更快的UFS规范的出现,将eMMC替换,UFS成为当下智能手机的主要存储FLASH。
6.2、存储卡接口
1、MMC接口:
MMC卡接口共只有7针,支持SPI模式与MMC模式,3根电源线,4根通信线,如下图所示,分别是SPI模式(Do,Di,CLK,CS)与MMC模式(CMD,DAT,CLK),所以MMC只支持单根数据线。
2、SD接口
SD接口从MMC中扩展而来,增加到了9针,SD卡大小和MMC卡差不多,比MMC稍微厚一点,其也是有分为SPI模式与SD模式,其中SD模式有1线和4线模式,1线模式可兼容MMC卡的MMC模式。
上图描述了SD与MMC接口的对于关系,MMC卡可以通过转换适配器当作SD卡使用(即使用SD卡1线模式),SD接口个引脚含有如下表:
3、TF卡接口
TF卡接口是SD卡接口的延续,只有8针,在SD接口上少第3脚VSS1,其它与SD接口一致。
TF也称为microSD卡,因此可以通过转换器转为SD使用。
TF卡也支持SPI模式与SD模式,跟SD卡一致,但是体积比SD卡小很多。
4、eMMC接口
eMMC接口有MMC发展而来,也是由MMC协会订立,其数据总线扩展到了8位,主要应用是对存储容量有较高要求的消费电子产品,比如手机。
随着eMMC规范版本的升级,其通信速率也不断的提高,最大速率可达400MB/s,如下表所示,在UFS出现前,智能手机存储器基本上是基于eMMC接口。
5、UFS接口
UFS(Universal Flash Storage)是JEDEC发布的新一代通用闪存存储标准,包括主机侧和内存芯片侧的标准。物理层是MIPI M-PHY,接口协议是SCSI。
如上图所示,下行数据流DOUT与上行数据流DIN是独立的,走差分信号,因此可以进行全双工通信,相比与eMMC的半双工,速率提高几倍,因此现在市面高端智能手机基本都是UFS存储,最新小米11使用的是UFS3.1版本。
UFS卡的外观类似TF卡,有12针引线,每个引线的含义如下图所示:
由于UFS相比与TF卡,存储速率有明显优势,将来替换TF卡不可避免,比如在运动相机、航拍飞机等对速率要求更高的领域。
下图描述的eMMC与UFS的发展时间表,UFS具体的规范信息可参考官方网站下载:
https://www.jedec.org/document_search/field_committees/28?page=1
七、SSD硬盘
上面的那些存储卡基本应用于嵌入式领域,比如消费电子和物联网等设备,现在比较流行的SSD硬盘,内部存储也是基于Nand Flash存储,主要应用PC和服务器上。其内部也是由闪存芯片+控制器+缓存构成。
SSD硬盘通过主控连接的接口比较复杂,而且种类繁多,主要有SATA接口、PCIE等,如下表所示:
目前使用比较多的是SATA3、PCI-E、Msata、SATA Express、M.2、U.2接口,它们的速率、尺寸大小等特性如下表所示:
各种硬盘的接口常见的如下图所示:
八、HDD硬盘(传统机械硬盘)
目前硬盘有三种类型,分别为:机械硬盘(HDD)、固态硬盘(SSD)、混合硬盘(SSHD),如下表所述:
HDD硬盘出现时间甚至比ROM还更早,上个世纪50、60年代初,发明了机械硬盘HDD,体积巨大,容量奇小,HDD硬盘发展历史如下表:
HDD硬盘的出现,促进了计算机快速发展,特别是90年代个人电脑的兴起,现在许多台式电脑还有很多的HDD硬盘。
以上是关于嵌入式开发人员,这些ROMFLASH硬盘技术知识,必须要了解的主要内容,如果未能解决你的问题,请参考以下文章