SDIO概述
简介
- SDIO是安全数字输入输出接口(Secure Digital Input and Output)的缩写,是从SD内存卡接口的基础上演化出来的一种外设接口。SDIO接口兼容以前的SD内存卡,并且可以连接支持SDIO接口的设备。
- SDIO的应用比较广泛,目前,有许多手机都支持SDIO功能,并且很多SDIO外设也被开发出来,使得手机外接外设更加容易。常见的SDIO外设有WLAN、GPS、CAMERA、蓝牙等。
- SDIO总线有两端,其中一端是主机端(HOST),另一端是设备端(DEVICE)。所有的通信都是由HOST端发出命令开始的,在DEVICE端只要能解析HOST的命令,就可以同HOST进行通信了。SDIO的HOST可以连接多个DEVICE,如下图所示:
- CLK信号:HOST给DEVICE的时钟信号。
- VDD信号:电源信号。
- VSS信号:Ground信号。
- D0-3信号:4条数据线,其中,DAT1信号线复用为中断线,在1BIT模式下DAT0用来传输数据,在4BIT模式下DAT0-DAT3用来传输数据。
- CMD信号:用于HOST发送命令和DEVICE回复响应。
图 1 SDIO的HOST-DEVICE连接示意图
1. 
- SDIO接口定义了操作SDIO的通用方法集合,包括打开/关闭SDIO控制器、独占/释放HOST、使能/去使能设备、申请/释放中断、读写、获取/设置公共信息等。
接口说明
表 1 SDIO驱动API接口功能介绍
| 功能分类 | 接口名 | 描述 |
|---|---|---|
| SDIO设备打开/关闭接口 | SdioOpen | 打开指定总线号的SDIO控制器 |
| SdioClose | 关闭SDIO控制器 | |
| SDIO读写接口 | SdioReadBytes | 从指定地址开始,增量读取指定长度的数据 |
| SdioWriteBytes | 从指定地址开始,增量写入指定长度的数据 | |
| SdioReadBytesFromFixedAddr | 从固定地址读取指定长度的数据 | |
| SdioWriteBytesToFixedAddr | 向固定地址写入指定长度的数据 | |
| SdioReadBytesFromFunc0 | 从SDIO function 0的指定地址空间读取指定长度的数据 | |
| SdioWriteBytesToFunc0 | 向SDIO function 0的指定地址空间写入指定长度的数据 | |
| SDIO设置块大小接口 | SdioSetBlockSize | 设置块的大小 |
| SDIO获取/设置公共信息接口 | SdioGetCommonInfo | 获取公共信息 |
| SdioSetCommonInfo | 设置公共信息 | |
| SDIO刷新数据接口 | SdioFlushData | 刷新数据 |
| SDIO独占/释放HOST接口 | SdioClaimHost | 独占Host |
| SdioReleaseHost | 释放Host | |
| SDIO使能/去使能功能设备接口 | SdioEnableFunc | 使能SDIO功能设备 |
| SdioDisableFunc | 去使能SDIO功能设备 | |
| SDIO申请/释放中断接口 | SdioClaimIrq | 申请中断 |
| SdioReleaseIrq | 释放中断 |
说明: 本文涉及的所有接口,目前只支持在内核态使用,不支持在用户态使用。
说明:
本文涉及的所有接口,目前只支持在内核态使用,不支持在用户态使用。