支持的芯片

概述

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

备注

开发者可以修改 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 中断例程关联的任务中占用太多时间,以免影响及时处理中断相关事件。