SDIO

        SDIO卡是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的SD内存卡,并且可以连接SDIO接口的设备,目前根据SDIO协议的SPEC,SDIO接口支持的设备总类有蓝牙,网卡,电视卡等。

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

       SDIO和SD卡的SPEC间的又一个重要区别是增加了低速标准。SDIO卡只需要SPI和1位SD传输模式。低速卡的目标应用是以最小的硬件开支来支持低速I/O能力,低速卡支持类似MODEM,条形扫描仪和GPS接收器等应用。对组合卡来说,全速和4BIT操作对卡内存储器和SDIO部分都是强制要求的。

        在非组合卡的SDIO设备里,其最高速度要只有达到25M,而组合卡的最高速度同SD卡的最高速度一样,要高于25M。

        RT-Thread的SD驱动架构采用了分层设计,最底层是主控制器驱动层,用于控制如何和SD卡或SDIO卡通信,再上一层是MMCSD核心层,该层实现了SD卡和SDIO卡最核心的部分,包括如何请求数据和命令,另外也包括了设置主控制器工作模式接口等。在MMCSD核心之上是SD卡驱动核心和SDIO驱动核心,其中SD卡驱动核心完成SD卡特定的操作,比如获取SD卡寄存器,并完成SD卡的初始化,SDIO核心完成SDIO的操作方法。在SD核心和SDIO核心之上是SD块设备驱动和SDIO设备驱动,其中SD块设备驱动提供了块设备操作接口,SDIO设备驱动包括SDIO WIFI等设备驱动。SDIO驱动框架图如下: