一文搞懂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存储卡的命令上是有差异的,里面的寄存器也是有差异的。所以具体命令需要查看官方文档,对于初始化流程,哪条命令对应哪个应答等都有详细的描述。


相关文章
|
6月前
|
机器学习/深度学习 人工智能 运维
10 分钟搞懂 LLMOps
10 分钟搞懂 LLMOps
418 0
|
6月前
|
人工智能 网络协议 算法
5 分钟搞懂 ECN
5 分钟搞懂 ECN
664 0
|
2天前
|
JavaScript 前端开发
【面试题】这道 JS 经典面试题不要背,今天帮你彻底搞懂它!
【面试题】这道 JS 经典面试题不要背,今天帮你彻底搞懂它!
|
2天前
|
C#
彻底搞懂 for、while、do...while
彻底搞懂 for、while、do...while
15 0
|
2天前
|
SQL 关系型数据库 MySQL
搞懂connectTimeout和socketTimeout的区别
搞懂connectTimeout和socketTimeout的区别
76 0
|
6月前
|
人工智能 安全 Cloud Native
5 分钟搞懂 NESAS
5 分钟搞懂 NESAS
63 0
|
10月前
|
Kubernetes 并行计算 负载均衡
一文搞懂 K3D
Hello folks,作为一款由 Google 开发的开源平台,Kubernetes 主要用于自动部署、资源扩展、管理以及编排容器化应用程序。其不仅是提供了一个简单的系统,用于管理跨多个服务器的容器,同时,具备出色的负载平衡和资源分配能力,以确保每个应用程序能够以最佳性能运行。
496 0
leetcode14(弄懂了一个知识点)
这个题有一点细节,所以就记录一下(可能不一定准确)
57 0
|
JavaScript Java API
都2022年了你不会还没搞懂this吧
在JS中`this`的绑定规则有`默认绑定`、`隐式绑定`、`显示绑定`、`new绑定`四种。绑定的优先级依次是 `new 绑定 > 显式绑定 > 隐式绑定 > 默认绑定`,下面我们来一一探讨。
58 0
|
安全 Linux 程序员
Linux环境编程必须搞懂的几个概念
Linux环境对于初学者来说,必须深刻理解重点概念才能更好的编写代码,实现业务功能,下面就几个重要的及常用的知识点进行说明。搞懂这几个概念后以免在将来的编码出现混淆。
20776 0
Linux环境编程必须搞懂的几个概念