Linux驱动设计硬件基础(四)接口与总线之SD和SDIO

时间:2024-03-27 15:37:52

2.3.7 SD和SDIO

    SD(Secure Digital)是一种关于Flash存储卡的标准,也就是一般常见的SD记忆卡,在设计上与MMC(Multi-Media Card)保持了兼容。SDHC(SD High Capacity)是大容量SD卡,支持的最大容量为32GB。2009年发布的SDXC(SD eXtended Capacity)则支持最大2TB大小的容量。

    SDIO(Secure Digital Input and Output Card,安全数字输入输出卡)在SD标准的基础上,定义了除存储卡以外的外设接口。SDIO主要有两类应用——可移动和不可移动。不可移动设备遵循相同的电气标准,但不要求符合物理标准。现在已经有非常多的手机或者手持装置都支持SDIO的功能,以连接WiFi、蓝牙、GPS等模块。

    一般情况下,芯片内部集成的SD控制器同时支持MMC、SD卡,又支持SDIO卡,但是SD和SDIO的协议还是有不一样的地方,支持的命令也会有不同。

SD/SDIO的传输模式有:
·SPI模式
·1位模式

·4位模式

表2.1 SDIO接口引脚定义

Linux驱动设计硬件基础(四)接口与总线之SD和SDIO

表2.1显示了SDIO接口的引脚定义。其中CLK为时钟引脚,每个时钟周期传输一个命令或数据位;CMD是命令引脚,命令在CMD线上串行传输,是双向半双工的(命令从主机到从卡,而命令的响应是从卡发送到主机);DAT[0]~DAT[3]为数据线引脚;第8脚位被当成中断信号。

图2.18给出了一个SDIO单模块读、写的典型时序。

Linux驱动设计硬件基础(四)接口与总线之SD和SDIO

图2.18 SDIO单模块读、写的典型时序

    eMMC(Embedded Multi Media Card)是当前移动设备本地存储的主流解决方案,目的在于简化手机存储器的设计。eMMC就是NAND Flash、闪存控制芯片和标准接口封装的集合,它把NAND和控制芯片直接封装在一起成为一个多芯片封装(Multi-Chip Package,MCP)芯片。eMMC支持DAT[0]~DAT[7]8位的数据线。上电或者复位后,默认处于1位模式,只使DAT[0],后续可以配置为4位或者8位模式。