一文搞懂SDIO

简介: SDIO(Secure Digital Input and Output),即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、GPS等。

SDIO总线简介

SDIO(Secure Digital Input and Output),即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、GPS等。

90c2b480b249a4af24571a978c194a2c.png


什么是SDIO卡

SDIO卡,是使用SD总线以及SD指令的IO设备。SDIO卡的外形和接口和SD卡是兼容的,但是实现的不只是存储功能,还能实现其它的功能,如蓝牙、WIFI等。比如下面的就是一个实现了WIFI功能,而且外形和接口与SD卡兼容的SDIO卡。

2b677913845974b73425c7e9c63a3204.png


什么是组合卡

组合卡指带有memory(存储器)的SDIO卡(memory+SDIO)。

b6eebd926db7d7be617eec0f0d46b2f9.png


SDIO卡类型

  1. 全速卡: 传输速率超过100Mbps,时钟范围0-25MHz。
  2. 低速卡:时钟范围0-400KHz。

低速卡支持类似调制解调器, 条形码扫描仪和GPS接收器等应用。高速卡支持网卡,组合卡等。


SDIO卡模式

SDIO卡有三种总线模式:

  • SPI模式
  • 1-bit SD传输模式
  • 4-bit SD传输模式


SDIO接口定义

ffb7fbdd8237c00eba91f71f83cfb77e.png

  • CLK: HOST给DEVICE的时钟信号
  • CMD: 双向的信号,用于传送命令和应答
  • DAT0-DAT3: 用于传输的数据线


不同模式下的引脚定义:

引脚

4bit模式

1bit模式

SPI模式

1

DAT3

数据线3

CD

卡侦测

CS

片选

2

CMD

命令/应答

CMD

命令/应答

DI

串行输入(MOSI)

3

VSS1

地线

VSS1

地线

VSS

地线

4

VDD

电源线

VDD

电源线

VDD

电源线

5

CLK

时钟线

CLK

时钟线

CLK

SPI时钟

6

VSS2

地线

VSS2

地线

VSS

地线

7

DAT0

数据线0

DAT0

数据线0

DO

串行输出(MISO)

8

DAT1

数据线1/中断

NC/IRQ

中断

NC/IRQ

中断

9

DAT2

数据线2

NC

NC



SDIO命令

SDIO总线上的设置和控制都是通过命令来实现,SDIO总线上都是HOST端发起请求,然后DEVICE端回应请求,其中请求和应答中会包含数据信息

  1. Command: 用于开始传输的命令,是由HOST端发往DEVICE端的,其中命令是通过CMD信号线传送的。
  2. Response: DEVICE返回的应答。也是通过CMD线传送的;
  3. Data: 数据是双向传送的。可以设置为1线模式,也可以设置为4线模式。数据是通过DAT0-DAT3信号线传输的。


命令格式:

8907615cf5c4aa1ff250e4d62dab06d2.png

  • Start: 起始位,值固定为0。
  • Transmission:传输方向,值为1表示host发出, 0则表示device发出。
  • Command Index: 代表命令索引,例如CMD0 这项值为0 ,CMD5则这项值为5,它的范围是0-63。
  • Argument:CMD所附带的一些参数,不同的CMD,这32bit每一位所代表的含义是不一样的。
  • CRC7:7位CRC校验值
  • End:结束位,值固定为1


应答格式:

SD内存卡支持五种response type:R1,R1b,R2,R3,R6

SDIO卡额外支持2种response type:R4,R5


  • R1(正常应答命令)

16fa43c89977d9c374dceeb7e6796dd1.png

  • R2(CID,CSD寄存器)

9a62ff3d907b738d36daeab1ecafc9ee.png

  • R3(OCR寄存器)

c560b5c2fc707d5da4e67cd0571915ae.png

  • R6(Published RCA应答)

22fe50daaa385e75854139aec2650a5b.png

  • R7(卡接口条件)

c45535ba0ee06a52bcaad2b7326c8cb8.png

  • R4

56c727b20648e8538c7bdb91ba19c805.png

用来回复CMD5,该CMD是给SDIO card专用的,用来查询card中支持的电压域。


  • R5

c85919c3dd27ca5159c48151c92e9b2c.png

用来回复CMD52,该CMD是给SDIO card专用的。

不同的外设使用的命令会有差异,具体命令要查看Spec。


更多详细命令介绍请参考:

《Physical Layer Simplified Specification Version8.00》

《SDIO_Simplified_Specification_Ver3.00》


总结

SDIO卡和SD存储卡的命令上是有差异的,里面的寄存器也是有差异的。所以具体命令需要查看官方文档,对于初始化流程,哪条命令对应哪个应答等都有详细的描述。


相关文章
|
机器学习/深度学习 人工智能 运维
10 分钟搞懂 LLMOps
10 分钟搞懂 LLMOps
802 0
|
人工智能 网络协议 算法
5 分钟搞懂 ECN
5 分钟搞懂 ECN
1613 0
|
5月前
|
C#
一文搞懂:一道关于C#linqwhere的面试题
一文搞懂:一道关于C#linqwhere的面试题
41 0
|
5月前
|
数据可视化 API
一文搞懂:【Havok】
一文搞懂:【Havok】
91 0
一文搞懂:_.cloneDeep(value)
一文搞懂:_.cloneDeep(value)
|
5月前
|
API
一文搞懂:关于串行接口
一文搞懂:关于串行接口
166 0
|
5月前
|
PHP
一文搞懂:yeild理解
一文搞懂:yeild理解
31 0
|
5月前
|
机器学习/深度学习 定位技术
一文搞懂:【OpenJ_Bailian
一文搞懂:【OpenJ_Bailian
31 0
|
5月前
一文搞懂:【华为oj】iNOC产品部
一文搞懂:【华为oj】iNOC产品部
27 0
|
5月前
|
前端开发 JavaScript
一文搞懂:【Reduc】ReactCounterExample
一文搞懂:【Reduc】ReactCounterExample
37 0