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,如下图所示:

    1. CLK信号:HOST给DEVICE的时钟信号。
    2. VDD信号:电源信号。
    3. VSS信号:Ground信号。
    4. D0-3信号:4条数据线,其中,DAT1信号线复用为中断线,在1BIT模式下DAT0用来传输数据,在4BIT模式下DAT0-DAT3用来传输数据。
    5. CMD信号:用于HOST发送命令和DEVICE回复响应。

    图 1 SDIO的HOST-DEVICE连接示意图

  1. ![](/projects/openharmony-1.0-zh-cn/driver/figures/zh-cn_image_0000001054280608.png)
  • 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

释放中断

SDIO概述 - 图1 说明: 本文涉及的所有接口,目前只支持在内核态使用,不支持在用户态使用。