当前位置: 首页 > backend >正文

嵌入式接口通识知识之SDIO接口

1.1 基础概念

SDIO的全称是Secure Digital Input/Output,译为安全数字输入输出,它是一种基于SD卡物理接口的扩展,允许设备在SD卡的基础上进行输入和输出操作。

SDIO接口建立在SD卡物理接口之上,利用SD卡的标准物理接口和通信协议,使得设备能够通过一个共同的接口实现数据传输和设备控制。这意味着SDIO设备可以插入标准的SD卡插槽中,并且可以与支持SDIO的主机设备通信。

与传统的SD卡仅能存储数据不同,SDIO接口不仅保留了存储功能,还可以实现多种输入和输出功能。这些功能可以包括Wi-Fi、蓝牙、GPS、音频、摄像头等,使得SD卡不仅作为存储介质,还能实现更多的应用。

SDIO本身只是一种接口技术,类似于SPI接口,通过I/O引脚来连接外部设备,并且与外围设备之间传输数据,所以这些外围设备又被称为SDI/O卡。

1.2 工作原理

SDIO接口建立在SD卡物理接口之上,所以引脚信息也是相对应的。

SDIO总线有两端,一端是主机(HOST)端,另一端是设备(DEVICE)端,采用HOST- DEVICE的设计为主机和设备之间提供了一个高效、灵活的通信机制,使得各种外部设备能够通过统一的接口与主机进行交互。所有的通信都是由HOST端发出命令开始的,在DEVICE端只要能解析HOST的命令,就可以同HOST进行通信,SDIO的HOST可以连接多个DEVICE。

SDIO的信号传输模式有SPI、1-bit、4-bit三种。在SPI模式中,第8脚位被当成中断信号。其它脚位的功能和通信协定与SD记忆卡的标准规范一样。在SDIO总线定义中,DAT1信号线复用为中断线。在SDIO的1BIT模式下DAT0用来传输数据,DAT1用作中断线。在SDIO的4BIT模式下DAT0-DAT3用来传输数据,其中DAT1复用作中断线。

针对不同的引脚定义,如下图所示:

引脚

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

上图引脚定义如下:

SD卡:1-data3,2-cmd,3-vss,4-vdd,5-clk,-6-vss,7-data0,8-data1,9-data2

TF卡(SD模式):1-data2,2-data3,3-cmd,4-vdd,5-clk,-6-vss,7-data0,8-data0,9-data1

TF卡(SPI模式):1-rsv2,2-cs3,3-di,4-vdd,5-sclk,-6-vss,7-do,8-rsv

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

Command:用于开始传输的命令,是由HOST端发往DEVICE端的,其中命令是通过CMD信号线发送的,包括命令索引、参数以及命令特性等。

Response:DEVICE返回的应答。也是通过CMD线传送的,设备会返回状态字,以指示命令是否成功执行以及其他相关信息,如错误代码、状态等;

Data:数据的传输是双向的。数据可以再SDIO总线上以1线模式或4线模式进行传输。1线模式使用单数据线(DAT0)进行单向或双向数据传输。4线模式使用四个数据线(DAT0-DAT3)进行并行数据传输,这种方式可以提高数据传输速率。

所有命令都有一个固定的48位代码长度:

位置

47

46

[45:40]

[39:8]

[7:1]

0

长度(bit)

1

1

6

32

7

1

'0'

'1'

x

x

x

'1'

描述

起始位

传输方向位

命令索引

附带参数

CRC校验

结束位

    起始位:占1位,值固定为0。起始位用于表明命令的开始,指示接下来的数据是一个命令。

传输方向位:占1位,值为1表示host发出, 值为0则表示device发出。

命令索引:通常是一个6位二进制数,这意味着它可以表示的数值范围是从000000(0)到111111(63),即0-63。例如CMD0 这项值为0,表示这是SDIO总线的第一个命令;CMD5这项值为5,表示这是第六个命令。

附带参数:占32位,CMD所附带的一些参数,不同的CMD,这32bit的每一位所代表的含义是不一样的。

CRC校验:7位CRC校验值,用于检测传输错误,通过对命令内容进行CRC计算饼附加到命令中,接收方可以验证命令的完整性和正确性。

结束位:占1位,值固定为1。结束位标志着命令的结束,告知接收方该命令的传输已经完成。

http://www.xdnf.cn/news/18306.html

相关文章:

  • 聚铭安全管家平台2.0实战解码 | 安服篇(四):重构威胁追溯体系
  • 手写MyBatis第28弹:告别代理,直击本质:手写MyBatis SqlSession的增删改查奥秘
  • 「数据获取」《中国环境统计年鉴》(1998-2024)(获取方式看绑定的资源)
  • C# 编写一个XmlToDota的转换工具
  • Seaborn数据可视化实战:Seaborn入门-环境搭建与基础操作
  • [ Servlet 服务器]
  • electron-vite_18Less和Sass共用样式指定
  • 基于混合注意力网络和深度信念网络的鲁棒视频水印技术基础理论深度解析
  • AI设计师-标小智旗下AI在线设计平台
  • [论文阅读] 人工智能 + 软件工程 | 当AI成为文学研究员:Agentic DraCor如何用MCP解锁戏剧数据分析
  • 设计模式之观察者模式
  • 为什么可以kvcache
  • 订单簿数据深度学习方法在大单发现应用
  • 微信小程序集成vant-weapp时,构建npm报错的解决办法
  • 深度学习-计算机视觉-物体检测与边缘框实现
  • 区块链联邦学习思路一
  • 机器学习两大核心算法:集成学习与 K-Means 聚类详解
  • 如何保证数据库和缓存的一致性?
  • Java设计模式-模板方法模式
  • 常见开源协议详解:哪些行为被允许?哪些被限制?
  • B站 韩顺平 笔记 (Day 24)
  • K8S-Secret资源对象
  • 学习数组①
  • 1.Shell脚本修炼手册之---为什么要学Shell编程?
  • 【MySQL的卸载】
  • 读《精益数据分析》:规模化(Scale)—— 复制成功,进军新市场
  • PiscCode集成Hand Landmarker:实现高精度手部姿态检测与分析
  • JVM面试精选 20 题(终)
  • 【北京迅为】iTOP-4412精英版使用手册-第三十二章 网络通信-TCP套字节
  • 30.Linux cobbler自动化部署