支持的芯片
概述
SDIO(Secure Digital Input Output)是一种基于 SD 卡协议的接口标准,方便与具有 SDIO Host 接口的设备建立高速连接。
目前 Realtek 提供 turn key solution 可以将具有 SDIO Device 的 IC 虚拟成 WIFI 网卡设备 或者 WIFI/BT combo 设备。
功能特性
数据宽度:支持 1-bit 和 4-bit 数据总线宽度
传输速率:支持标准模式和高速模式,数据传输最高可达 50MHz
多功能扩展:SDIO 不仅可以用于存储,还可以扩展至其它功能模块
中断机制:SDIO 拉低 DAT1 产生中断提醒 SD 主控
支持 DMA
协议支持:完全兼容 SDIO 卡协议 2.0
备注
想要了解多功能扩展的更多细节,请参考 多功能扩展 。
支持的数据位宽
SDIO 支持 1-bit 和 4-bit 模式,这两种模式在信号线数量和数据传输速率方面有所不同。
1-bit 模式
信号线:在 1-bit 模式下,SDIO 使用一条数据线(DAT0)进行数据传输,加上命令线(CMD)和时钟线(CLK)。
传输速率:由于只有一条数据线,传输速率相对较低,但该模式具有更简单的硬件接口和较低的功耗。
主要应用:适用于低成本、低速率的应用场景,或者在不需要高数据吞吐量的设备中。
4-bit 模式
信号线:在 4-bit 模式下,SDIO 使用四条数据线(DAT0 - DAT3)进行数据传输,同时包括命令线(CMD)和时钟线(CLK)。
传输速率:数据传输速率显著提高。
主要应用:适用于需要较高数据吞吐量的设备,如高速传输的无线模块、存储设备等。
备注
初始化完成后,SDIO 的总线位宽取决于 SD 主控端的操作。
如需修改总线位宽,请在 SD 主控端进行修改。
支持的速度模式
SDIO 支持 默认速度模式 和 高速模式 ,以满足不同设备和应用的需求。
默认速度模式
时钟频率:最高支持到 25 MHz。
应用场景:适用于基本数据传输需求的设备。
高速模式
时钟频率:最高支持到 50 MHz。
应用场景:适合需要较高数据传输率的应用,如无线通信模块。
备注
初始化完成后,当前 SDIO 默认工作在高速模式。
如果开发者需要初始化完成后,SDIO 工作在默认速度模式,请联系 Realtek.
多功能扩展
SDIO 具有灵活的应用扩展能力,同时支持多个设备功能,包括 WLAN 和 蓝牙 。
备注
RTL8721Dx 仅支持 1 个功能模块,即 WLAN。
RTL8721F 支持 2 个功能模块,WLAN 和蓝牙。
SDIO 架构
SDIO 接口的结构如下图所示:
引脚分组
SDIO 接口具有硬件灵活性,其功能引脚被划分为多个功能组。
不同型号的开发板可能会提供不同组的引脚,开发者可以根据硬件选择合适的引脚组。
引脚基本功能
CLK:时钟输入引脚,用于数据同步。
CMD:指令输入/响应输出引脚,用于发送命令/响应命令。
DAT0-DAT3:数据引脚,支持 1-bit 和 4-bit 模式的数据传输。
引脚组划分
组号 |
CLK |
CMD |
D3 |
D2 |
D1 |
D0 |
---|---|---|---|---|---|---|
0 |
PA16 |
PA15 |
PA14 |
PA13 |
PA18 |
PA17 |
1 |
PA29 |
PA28 |
PA27 |
PA26 |
PA31 |
PA30 |
2(默认) |
PB9 |
PB8 |
PB7 |
PB6 |
PB14 |
PB13 |
3 |
PB19 |
PB18 |
PB17 |
PA12 |
PB21 |
PB20 |
4 |
PB26 |
PB25 |
PB24 |
PB23 |
PB28 |
PB27 |
组号 |
CLK |
CMD |
D3 |
D2 |
D1 |
D0 |
---|---|---|---|---|---|---|
0 |
PA18 |
PA19 |
PA26 |
PA4 |
PA25 |
PA5 |
1(默认) |
PA18 |
PA19 |
PA21 |
PA4 |
PA20 |
PA5 |
2 |
PA18 |
PA19 |
PA21 |
PA27 |
PA20 |
PA28 |
3 |
PA18 |
PA19 |
PA26 |
PA27 |
PA25 |
PA28 |
4 |
PA11 |
PA10 |
PA9 |
PA6 |
PA8 |
PA7 |
5 |
PB23 |
PB22 |
PB16 |
PB13 |
PB15 |
PB14 |
6 |
PC7 |
PC6 |
PC5 |
PC2 |
PC4 |
PC3 |
备注
开发者可以修改 ameba_intfcfg.c
文件中的 SDIO_Pin_Grp
来选择不同的引脚组,具体请参考 ameba_intfcfg 。
WHC
Ameba 可以通过 SDIO 与主机 MCU 连接,实现 WiFi 网卡功能。
更多详细信息请参考 支持的芯片。
应用示例
SDK 提供了 SDIO 设备进行回环测试的示例,帮助开发者了解和使用 SDIO 功能。
开发者可以通过运行该回环测试的示例,判断当前硬件环境是否正常。
示例代码包括 SDIO 设备示例代码和基于 树莓派
的 SD 主控示例代码。
SDIO 设备示例代码
示例 mbed_sdio_loopback_device 演示 在 SDIO 设备端进行回环测试。 其主要内容包括:
初始化 SDIO 接口及功能 1(WLAN 功能)
初始化回环测试的收发缓冲区
设置 SDIO 设备的中断处理函数,保证能够及时处理接收到的数据并发送数据。
SD 主控示例代码
示例 sdio_device_loopback_Raspberry 演示在树莓派上通过 SD 主控与 SDIO 设备进行收发通信。 其主要内容包括:
初始化树莓派上的 SD 主控
通过 SD 主控识别并初始化 SDIO 设备及功能 1
通过 SD 主控向 SDIO 设备的功能 1 连续发送数据
通过 SD 主控从 SDIO 设备的功能 1 连续接收数据
备注
相要了解更多测试细节,请查看示例路径下的 sdio_loopback_test_guide.pdf 。
如果开发者想要基于示例进行开发,请避免在 SDIO 中断例程关联的任务中占用太多时间,以免影响及时处理中断相关事件。