以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。
我们一般把RAM(random access memory,随机访问存储器)叫做内存,其特点是可以任意字节读写,掉电会丢失数据。把ROM(read only memory,只读存储器)叫做外存,其特点是掉电不丢失数据,但不能随机地址访问,只能以块为单位来访问。
下面简单地介绍外部存储器的相关知识。
磁存储设备,包括软盘、硬盘、光盘、CD、磁带。
这类型的存储设备的存储原理大部分为磁存储。优点是技术成熟、价格便宜,缺点是读写速度慢、可靠性不好等。
这些存储设备广泛使用在桌面电脑中,但是在嵌入式设备中几乎很少使用。
现代存储的发展方向是Flash存储,即闪存技术。
闪存技术是利用电学原理来存储1和0,所以闪存设备没有物理运动,读写速度可以很快,且无物理损耗。
闪存技术大致分为两类,即Nand技术和Nor技术。
采用这两种技术制成的 Flash芯片 就叫做 NandFlash芯片、NorFlash芯片。
最原始的NandFlash、NorFlash芯片由Flash颗粒组成,芯片外部只做了最基本的读写接口,因此使用这种存储芯片时,需要SoC为它提供Flash读写控制器,以及对Flash进行读写的时序。
这种存储芯片的缺陷是:读写接口时序比较复杂;芯片内部无坏块处理机制,需要SoC自己管理坏块;各个厂家的Flash接口不一致,甚至同一个厂家的不同型号、系列的Flash接口都不一致,这就造成产品升级时很麻烦。
也就是说,这种存储芯片就相当于最原始的存储容器,没有统一接口、块处理机制。
首先,这些存储器外观都是卡片式的。
其次,它们内部依然采用 NandFlash 存储颗粒,但与原始的NandFlash芯片相比,具有统一的外部封装和标准接口。比如SD卡都遵照SD规范来发布,它规定了SD卡的读写速度、接口时序、读写命令集、卡大小尺寸、引脚个数及定义,因此不同厂家的SD卡可以通用。
这些卡都遵循MMC协议或者SD协议,SD协议兼容MMC协议。
也就是说,这类存储器类似于把NandFlash芯片做成卡片,并添加统一标准接口、块处理机制。
一些电子产品如手机、相机等,前些年的趋势是用SD卡/TF卡等外部扩展卡来扩展存储容量,但近些年的趋势是直接在电子产品内部设置大容量的Flash芯片,比如iNand芯片、MoviNand芯片等。
这些芯片都遵循EMMC协议。相对于MMC协议,EMMC协议多了一个字母E,表示embedded,是内嵌的意思,意味着芯片化后焊接到开发板上。平常我们说的emmc芯片,一般指iNand(sandisk的产品)或者moviNand(三星的产品),它们都符合emmc协议。
这些芯片内部依然由NandFlash存储颗粒构成,内置了块设备管理模块(提供了诸如坏块管理的功能),综合了SD卡为代表的各种卡的优势(有统一的接口标准,比如引脚定义、物理封装、接口时序等,不同厂家的SD卡可以通用),以及原始的NandFlash芯片的优势(以芯片的方式来发布而不是以卡的方式,因为外部扩展卡时间长了其卡槽可能会接触不良)。
换言之,这类存储器类似于将SD卡芯片化,同时内置有块设备管理模块。
硬盘、光盘、磁带 | Nandflash / Norflash芯片 | SD卡 /MMC卡 |
iNand芯片 | |
是否统一接口 | --- | 否 | 是 | 是 |
外观造型 | --- | 芯片 | 卡片 | 芯片 |
是否有块处理机制 | --- | 无 | 有 | 有 |
存储原理 | 磁存储 | 电学原理 | 电学原理 | 电学原理 |
SD卡其实是将 NandFlash芯片卡片化,并添加统一的标准接口、外观,以及块处理机制。
(1)SD卡 与 MMC卡 的区别与联系
(2)SD卡 和 NandFlash、NorFlash 等 Flash 芯片差异
(3)SD卡 与 MicroSD卡 的区别
(4)SD卡与TF卡的区别
(5)SD卡与iNand芯片的区别
(1)SD卡的物理接口
SD卡由9个针脚与外界进行物理连接,这9个脚中有2个地,1个电源,6个信号线。
(2)SD协议与SPI协议
SD卡 与 SRAM/DDR/SROM 之类的东西的不同,SRAM/DDR/SROM 之类的存储芯片是总线式的,只要连接上并初始化好之后就可以由SoC直接以地址方式来访问;而SD卡不能直接通过接口给地址来访问,它的访问需要按照一定的接口协议来访问。
SD卡虽然只有一种物理接口,但是却支持两种读写协议:SPI协议、SD协议。
1)SPI协议简介(低速、接口操作时序简单、适合单片机)
2)SD协议简介(高速、接口时序复杂,适合有SDIO接口的SoC)