SDIO 接口

简介

SDIO(SecureDigital I/O)故名思义,就是 SD 的 I/O 接口(interface)的意思。SD 本来是记忆卡的接口标准,但是现在也可以使用该接口连接其他外围设备,这样的技术便是 SDIO。

因此,现在的 SDIO 就是一种相当单纯的技术,通过 SD 的 I/O 引脚来连接外围设备,并且通过 SD 上的 I/O 数据线与这些外围设备传输数据。而且 SD 协会会员也推出很完整的 SDIO stack 驱动程序,使得 SDIO 外围(我们称为 SDIO 卡)的开发与应用变得相当热门。目前常见的 SDIO 外围(SDIO 卡)有:

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

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

总线连接

SDIO 总线和 USB 总线类似,SDIO 总线也有两端,其中一端是主机(Host)端,另一端是设备端(Device)。采用Host-Device(主从模式)这样的设计是为了简化 Device 的设计,所有的通信都是由 Host 端发出命令开始的。在 Device 端只要能解析 Host 的命令,就可以同 Host 进行通信了,SDIO 的 Host 可以连接多个 Device(一主多从)。

SDIO 主机和设备端的连接方式如下图所示(连接了两个 SDIO 卡):

传输模式

SD 传输模式有以下 3 种:

  • SPI mode(required)
  • 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 来读取。

在 SPI 模式中,第 8 脚位被当成中断信号。其它脚位的功能和通信协定与 SD 记忆卡的标准规范一样。在 SDIO 总线定义中,DAT1 信号线复用为中断线。在 SDIO 的 1BIT 模式下 DAT0 用来传输数据,DAT1 用作中断线。在 SDIO 的 4BIT 模式下 DAT0-DAT3 用来传输数据,其中 DAT1 复用作中断线。

SDIO 的每个脚位在不同信号模式下的定义如下图:

协议标准

SDIO1.0 标准定义了两种类型的 SDIO 卡:

  1. 全速的 SDIO 卡,传输率可以超过 100Mbps;
  2. 低速的 SDIO 卡,支援的时脉速率在 0 至 400KHz 之间。

SDIO 协议是由 SD 卡的协议演化升级而来的,很多地方保留了 SD 卡的读写协议,同时 SDIO 协议又在 SD 卡协议之上添加了 CMD52 和 CMD53 命令。由于这个,SDIO 和 SD卡规范间的一个重要区别是增加了低速标准,低速卡的目标应用是以最小的硬件开支来支持低速 I/O 能力。低速卡支持类似调制解调器,条形码扫描仪和 GPS 接收器等应用。高速卡支持网卡,电视卡以及组合卡等。组合卡指的是存储器+SDIO,对组合卡来操作需要全速和 4BIT 的传输模式,这是 SDIO1.0 标准规定的。

SDIO 命令

SDIO 总线上都是 Host 端发起请求,然后 Device 端回应请求,其中请求和回应中会包含数据信息:

  • Command: 用于开始传输的命令,是由 Host 端发往 Device 端的,其中命令是通过 CMD 信号线传送的;
  • Response: 回应是 Device 返回的 Host 命令作为 Command 的回应。也是通过 CMD 线传送的;
  • Data: 数据是双向的传送的。可以设置为 1 线模式,也可以设置为 4 线模式。数据是通过 DAT0-DAT3 信号线传输的。

SDIO 的每次操作都是由 Host 在 CMD 线上发起一个 CMD,对于有的 CMD,Device 需要返回 Response,有的则不需要。

对于读命令,首先 Host 会向 Device 发送命令,紧接着 Device 会返回一个握手信号,此时,当 Host 收到回应的握手信号后,会将数据放在 4 位的数据线上,在传送数据的同时会跟随着 CRC 校验码。当整个读传送完毕后,Host 会再次发送一个命令,通知 Device 操作完毕,Device 同时会返回一个响应。

对于写命令,首先 Host 会向 Device 发送命令,紧接着 Device 会返回一个握手信号,此时,当 Host 收到回应的握手信号后,会将数据放在 4 位的数据线上,在传送数据的同时会跟随着 CRC 校验码。当整个写传送完毕后,Host 会再次发送一个命令,通知 Device 操作完毕,Device 同时会返回一个响应。

相关链接

One comment

  1. Great web site you have got here.. It’s hard to find high-quality writing like yours nowadays. I really appreciate people like you! Take care!!

Leave a Reply