mmc/eMMC/SD-card/SPI/SDIO

起初引用了一篇MMC相关文档,然而终究还是有些不明所以,忽觉博客不就是加工整理自己的思想吗,遂百度众文,整理归纳如下.

MMC(multiMedia card)是早起记忆卡标准,于1997年由西门子和SanDisk推出了多媒体卡;SD卡(Secure Digital Memory Card)是一种基于半导体快闪记忆器的新一代记忆设备。于1999年8月由日本松下、东芝及美国SanDisk公司开发研制。

SD与MMC都是存储设备的标准,包括物理硬件与协议软件,SD的软件协议与MMC的软件协议是不同的协议,物理硬件也不同。SD相对MMC增加了数据权限功能,防止数据被他人复制,增加了安全性。

SD卡与MMC卡的引脚定义是不一样的,接口不兼容,当然现在市面上应该很难见到MMC存储卡了。

 

MMC协议支持两种模式:SPI和MMC,MMC模式为MMC协议的标准模式,SPI模式为MMC的单线模式,以保证MMC设备在现有硬件上的兼容性。

目前有这么几种类型的存储卡以MMC框架为基础,它们分别是:MMC Plus、MMC Mobile和MMC Micro、eMMC,2018年存活的也就剩下eMMC了。

SD协议支持三种模式:4-wire mode, 1-wire mode, SPI mode, SPI mode是required,应该也是出于兼容性考虑的吧。三种模式的信号定义如下:

SD与 MMC 的兼容性

MMC协议与SD协议都支持SPI mode,如果有SPI总线,无论使用SD卡还是MMC卡都不是问题。虽然MMC的SPI mode不是required,然而基本上所有的MMC都支持SPI mode。SPI模式支持不带CRC校验的传输方式,可以降低硬件要求

MMC 的 SPI mode 最大传输速率为 20 Mbit/s; SD 的 SPI mode 最大传输速率为 25 Mbit/s。

MMC卡与SD卡两者在时序上也是一致的,读写命令控制也完全一样,这就是为什么经常把两者混在一起写的原因。

差异。

一。在数据位宽方面,MMC卡最大支持8BIT,而SD卡只能支持4BIT传输。

二、在卡的激活过程,MMC使用CMD1来进行激活,而SD卡使用ACMD41来进行激活的。于是,这两条命令也成了主机区分两种卡的类型的关键。在获取卡的RCA地址时,MMC卡是由主机分配RCA给设备,而SD卡则是由设备返回RCA给主机。

三、在CMD6的使用方法上也有很大不同。MMC有EXT_CSD的概念,主要用CMD8进行读取,CMD6进行设置。而SD卡则只用CMD6进行UserFunction的设置。SD卡的CMD8主要用于区别SD1.0和SD2.0。

四、MMC还支持CMD14和CMD19进行主线测试,从而选择合适总线进行通信。SD则不支持。另外,MMC卡还支持CMD11、CMD20这类数据流操作,因此较多用于媒体设备上。MMC还支持Boot等高级的用法(SD也支持)

 

SDIO是在SD软件协议上定义的标准接口,透过 SD 的 I/O接脚来连接外部外围,并且透过 SD 上的 I/O 数据接位与这些外围传输数据,相对SD增加了低速标准。

什么是MCI:MCI是Multimedia Card Interface的简称,即多媒体卡接口。上述的MMC,SD,SDI卡定义的接口都属于MCI接口。MCI这个术语在驱动程序中经常使用,很多文件,函数名字都包括”mci”.

其他各种存储卡:xD卡,记忆棒(memory stick), CF卡,SM(Smart media)卡, 慢慢消失在历史的长河之中。

SD Memory Card Spec(ver 1.0) / MMC Spec(2.11) compatible。按照spec,物理规范应该也是兼容的,已经找不到MMC Spec(2.11) ,待核实,不过其实核实的意义也不大了。

 

 eMMC

eMMC是当前使用很多的设备。eMMC为具备MMC协议标准的芯片,故名eMMC-embeded MMC, 嵌入式MMC,封装形式为IC。

eMMC为具备MMC协议的芯片。然而MMC支持SPI。

实际查看eMMC的datasheet,V4.41 eMMC不支持 SPI mode,但是支持X1,X4的mode。所以,Host具备SPI无法向eMMC内存储数据,必须为SDIO方可向eMMC内部存数据。SPI模式支持不带CRC校验的传输方式可能是原因。

posted @ 2018-01-02 18:48  legend_yuan  阅读(6485)  评论(1编辑  收藏  举报