打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SD/MMC/SDIO 概念区分

SDSecure Digital)与 MMCMultimedia Card


SD 是一种 flash memory card 的标准,也就是一般常见的 SD 记忆卡,而 MMC 则是较早的一种记忆卡标准,目前已经被 SD 标准所取代。在维基百科上有相当详细的 SD/MMC 规格说明:[http://zh.wikipedia.org/wiki/Secure_Digital]


SDIOSecure Digital I/O


SDIO 是目前我们比较关心的技术,SDIO 故名思义,就是 SD  I/O 接口(interface)的意思,不过这样解释可能还有点抽像。更具体的说明,SD 本来是记忆卡的标准,但是现在也可以把 SD 拿来插上一些外围接口使用,这样的技术便是 SDIO


所以 SDIO 本身是一种相当单纯的技术,透过 SD  I/O 接脚来连接外部外围,并且透过 SD 上的 I/O 数据接位与这些外围传输数据,而且 SD 协会会员也推出很完整的 SDIO stack 驱动程序,使得 SDIO 外围(我们称为 SDIO 卡)的开发与应用变得相当热门。


现在已经有非常多的手机或是手持装置都支持 SDIO 的功能(SD 标准原本就是针对 mobile device 而制定),而且许多 SDIO外围也都被开发出来,让手机外接外围更加容易,并且开发上更有弹性(不需要内建外围)。目前常见的 SDIO 外围(SDIO 卡)有:



  • Wi-Fi card(无线网络卡) 
  • CMOS sensor card(照相模块) 
  • GPS card 
  • GSM/GPRS modem card 
  • Bluetooth card 
  • Radio/TV card(很好玩)

SDIO 的应用将是未来嵌入式系统最重要的接口技术之一,并且也会取代目前 GPIO 式的 SPI 接口。


SD/SDIO 的传输模式


SD 传输模式有以下 3 种:



  • SPI moderequired 
  • 1-bit mode 
  • 4-bit mode

SDIO 同样也支持以上 3 种传输模式。依据 SD 标准,所有的 SD(记忆卡)与 SDIO(外围)都必须支持 SPI mode,因此 SPI mode 是「required」。此外,早期的 MMC 卡(使用 SPI 传输)也能接到 SD 插糟(SD slot),并且使用 SPI mode  1-bit mode 来读取。


SD  MMC Mode


SD 也能读取 MMC 内存,虽然 MMC 标准上提到,MMC 内存不见得要支持 SPI mode(但是一定要支持 1-bit mode),但是市面上能看到的 MMC 卡其实都有支持 SPI mode。因此,我们可以把 SD 设定成 SPI mode 的传输方式来读取 MMC 记忆卡。


SD  MMC Mode 就是用来读取 MMC 卡的一种传输模式。不过,SD  MMC Mode 虽然也是使用 SPI mode,但其物理特性仍是有差异的:



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

为避免混淆,有时也用 SPI/MMC mode  SPI/SD mode 的写法来做清楚区别。




1、什么卡会处于busy状态?


    当数据送到卡里,其实只是送到了卡的内部控制器的buffer中。真正存到存储单元里面去还需要过一阵子。当这个buffer处于full的时候,就是卡处于busy状态的一种情况。此时SDCLK会暂时终止。


2、CRC校验是必须的吗?


    不是。SD卡,MMC卡都支持CRC校验,但是当SPI模式的时候,可以选择不做CRC校验,不过也可以有CRC校验,这个是由用户决定的。


3、SD/SDIO/MMC/SPI之间的关系?


SD/SDIO/MMC是三种不同的卡,这3种卡的管脚很类似,卡的样子也类似。最开始是先由MMC卡,然后在MMC的基础上做了修改有了SD卡,SD卡的基础上有了SDIO卡。所以SD/SDIO/MMC的协议大同小异,只有少量差异。


SPI在SD的大军里,只是一种传输模式。若是慢速的情况下,可选择SPI传输模式,这样SD接口就变成SPI协议了。Host也要根据SPI的协议对卡进行操作。


具体的区别需参考各协议。


4、SDSC/SDHC/SDXC的区别?


    容量上不同,速度上不同。每一种新的协议在原有基础上功能会变得更完善。


5、SD双沿采集的时候,data block size自动变成固定512bytes,不管是否设置了BLOCK_LEN。


    SD双沿采集的时候,只是数据传输的时候是双沿的,其他时候还都是单沿的。包括CRC,start bit,end bit都是单沿的。


    还有SPI模式下,每个block的大小也一定是固定的512byte。


6、MMC4.0以下的卡中,小尺寸的卡称为RS-MMC。MMC4.0以上的卡中,大尺寸的卡称为MMCPLUS,小尺寸的卡称为MMCMOBILE,BGA封装的称为EMMC。


7、Inactive和IDLE状态的区别?


    当卡进入inactive状态,卡不能被操作。只能通过重新上电才能回到IDLE状态。除了inactive以外的其他状态,CMD0都可以令卡回到IDLE状态。


8、SD/MMC/SDIO的命令格式都一样,所以三种卡才有可能通过同一个控制器来控制。


9、哪种MMC会事8个bit的?


    所谓的8线MMC是指数据线为8线的MMC卡。当MMC4.x以上的卡,都支持8线的数据宽度,所以这类MMC就有13根线啦,其中data线占8根。


10、SDXC中的SDR、DDR,是怎么回事?


    这是速率上的一种叫法。DDR50标示电压1.8V,速度50MHz的一种模式。SDXC分为两种卡:UHS50和UHS104,他们都支持SDR、DDR模式。


11、同一个控制器,支持SD/MMC/SDIO的所以卡,如何区分出现在卡槽里的是个什么卡呢?


    这个需要软件来区分。软件不停的循环访问卡,对卡按照一定的顺序发出对应格式的命令,那么不同的卡会做出不同的反应。几个CMD发完,根据不用的反应就可以分出是什么卡了。比如已经判断出是SD卡了,但是不知道是什么类型的SD卡。那么我们就发一个CMD8,如果没有response,那么这个卡就是SD1.X的卡;如果有response,那么就是SD2.0以上的卡。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SD卡规范解读
SD卡、TF卡、MMC卡、emmc、sdio扫盲
STM32的SDIO控制SD卡
干货 | STM32 SDIO折腾记
SD卡读写
linux sd卡驱动分析,基于mini2440,sdio mmc sd卡驱动编写(转)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服