外存——主流的外存设备简介(SD卡、MMC卡、iNand、Nandflash等概念)

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。

我们一般把RAM(random access memory,随机访问存储器)叫做内存,其特点是可以任意字节读写,掉电会丢失数据。把ROM(read only memory,只读存储器)叫做外存,其特点是掉电不丢失数据,但不能随机地址访问,只能以块为单位来访问。

下面简单地介绍外部存储器的相关知识。

一、磁存储设备

磁存储设备,包括软盘、硬盘、光盘、CD、磁带。

这类型的存储设备的存储原理大部分为磁存储。优点是技术成熟、价格便宜,缺点是读写速度慢、可靠性不好等。

这些存储设备广泛使用在桌面电脑中,但是在嵌入式设备中几乎很少使用。

二、Flash存储设备

现代存储的发展方向是Flash存储,即闪存技术。

闪存技术是利用电学原理来存储1和0,所以闪存设备没有物理运动,读写速度可以很快,且无物理损耗。

1、原始 Flash 芯片:NandFlash芯片、NorFlash芯片

闪存技术大致分为两类,即Nand技术和Nor技术。

采用这两种技术制成的 Flash芯片 就叫做 NandFlash芯片、NorFlash芯片。

最原始的NandFlash、NorFlash芯片由Flash颗粒组成,芯片外部只做了最基本的读写接口,因此使用这种存储芯片时,需要SoC为它提供Flash读写控制器,以及对Flash进行读写的时序。

这种存储芯片的缺陷是:读写接口时序比较复杂;芯片内部无坏块处理机制,需要SoC自己管理坏块;各个厂家的Flash接口不一致,甚至同一个厂家的不同型号、系列的Flash接口都不一致,这就造成产品升级时很麻烦。

也就是说,这种存储芯片就相当于最原始的存储容器,没有统一接口、块处理机制。

2、卡片化 + 统一接口:SD卡、MicroSD、MMC卡、TF卡

首先,这些存储器外观都是卡片式的。

其次,它们内部依然采用 NandFlash 存储颗粒,但与原始的NandFlash芯片相比,具有统一的外部封装和标准接口。比如SD卡都遵照SD规范来发布,它规定了SD卡的读写速度、接口时序、读写命令集、卡大小尺寸、引脚个数及定义,因此不同厂家的SD卡可以通用。

这些卡都遵循MMC协议或者SD协议,SD协议兼容MMC协议。

也就是说,这类存储器类似于把NandFlash芯片做成卡片,并添加统一标准接口、块处理机制。

3、将SD卡芯片化:iNand芯片、MoviNand芯片

一些电子产品如手机、相机等,前些年的趋势是用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卡的更多介绍

SD卡其实是将 NandFlash芯片卡片化,并添加统一的标准接口、外观,以及块处理机制。

1、SD卡与其他存储器的对比

(1)SD卡 与 MMC卡 的区别与联系

  • 两者都是卡,都拥有统一的接口标准,以及块处理机制。
  • MMC标准出现的时间比SD标准早,后来者SD标准可以兼容MMC标准。
  • MMC卡可以被SD读卡器读写,而SD卡不可以被MMC读卡器读写。

(2)SD卡 和 NandFlash、NorFlash 等 Flash 芯片差异

  • SD卡/MMC卡等卡类有统一的接口标准,而NandFlash、NorFlash芯片没有统一的标准。

(3)SD卡 与 MicroSD卡 的区别

  • 体积大小区别而已,传输与原理完全相同。

(4)SD卡与TF卡的区别

  • 外观上,SD卡大而TF卡小。
  • 用途上,SD卡用于数码相机等,而TF卡广泛用于手机、GPS等。
  • 时间上,SD卡1999年推出,TF卡于2004年推出。
  • SD卡由日本松下、东芝与美国SanDisk共同推出,而TF卡由Motorola与SanDisk共同推出。
  • SD卡有写保护而TF卡没有,TF卡可以通过卡套转成SD卡使用。

(5)SD卡与iNand芯片的区别

  • SD卡是卡片式的存储器,而iNand可以简单理解为将SD卡芯片化。

2、SD卡的编程接口

(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协议简介(低速、接口操作时序简单、适合单片机)

  • SPI协议是单片机中广泛使用的一种通信协议,并不是为SD卡专门发明的。
  • SPI协议相对SD协议来说速度比较低。
  • SD卡支持SPI协议,就是为了单片机方便使用。

2)SD协议简介(高速、接口时序复杂,适合有SDIO接口的SoC)

  • SD协议是专门用来和SD卡通信的。
  • SD协议要求SoC中有SD控制器,运行在高速率下,要求SoC的主频不能太低。

你可能感兴趣的:(ARM裸机的开发,外部存储器)