【SDIO】SD2.0协议分析总结(一)-- SD卡基本概率介绍

本文详细介绍了SD卡的类型、总线速度模式,以及SD卡的物理结构和引脚定义。重点阐述了SD总线协议,包括命令、响应和数据传输的格式,并通过波形图展示了实际的数据交互过程。此外,还提到了SD卡的8个寄存器及其作用。
摘要由CSDN通过智能技术生成

相关文章

《【SDIO】SDIO、SD卡、FatFs文件系统相关文章索引》

1.前言

由于目前使用的硬件平台STM32只支持SD2.0,所以后面的介绍主要是参考《Part1_Physical_Layer_Simplified_Specification_Ver2.00.pdf》的学习总结。

2.SD卡简介

SD 卡(Secure Digital Memory Card)在我们生活中已经非常普遍了,控制器对 SD卡进行读写通信操作一般有两种通信接口可选,一种是 SPI接口,另外一种就是 SDIO 接口。SDIO 全称是安全数字输入/输出接口,多媒体卡(MMC)、SD 卡、SD I/O 卡都有 SDIO 接口。SD I/O 卡本身不是用于存储的卡,它是指利用 SDIO 传输协议的一种外设。比如 Wi-Fi Card,它主要是提供 Wi-Fi功能,有些 Wi-Fi模块是使用串口或者 SPI接口进行通信的,但 Wi-Fi SDIO Card是使用 SDIO 接口进行通信的。
在这里插入图片描述
SD卡按内存容量分类如下:

简称全称容量大小SD版本
SDSCStandard Capacity SD Memory Card <=2GB2.0版本以上
SDHCHigh Capacity SD Memory Card2GB~32GB2.0版本以上
SDXCExtended Capacity SD Memory Card32GB~2TB3.0版本以上
SDUCUltra Capacity SD Memory Card2TB~128TB8.0版本以上

总线速度模式分类如下:

SD版本总线速度总线接口
2.0最高速度 < 25 MB/sec1. 支持4条3.3V数据线High Speed模式
3.0最高速度 < 104 MB/sec1. 支持4条3.3V数据线High Speed模式
2. 支持4条1.8V数据线 UHS-I模式
6.0最高速度 < 6.24Gbps per lane1. 支持4条3.3V数据线High Speed模式
2. 支持4条1.8V数据线 UHS-I模式
3. 支持UHS-II、UHS-III不同的接口总线模式
8.0最高速度 < 3938MB/s1. 支持4条3.3V数据线High Speed模式
2. 支持4条1.8V数据线 UHS-I模式
3. 支持UHS-II、UHS-III不同的接口总线模式
4. 支持PCIe Gen 4 2 lanes不同的接口总线模式

3. SD总线Pin和Register分布

一张 SD卡包括有存储单元存储单元接口电源检测卡及接口控制器接口驱动器 5个部分。存储单元是存储数据部件,存储单元通过存储单元接口与卡控制单元进行数据传输;电源检测单元 保证 SD卡工作在合适的电压下,如出现掉电或上状态时,它会使控制单元和存储单元接口复位;卡及接口控制单元 5个部分控制 SD卡的运行状态,它包括有 8个寄存器;接口驱动器控制 SD卡引脚的输入输出。

  • SD卡功能框图如下:

SD卡的pin定义如下:

  • microSD卡功能框图如下:

microSD卡的pin定义如下:

  • SD 卡寄存器总共有 8个寄存器,用于设定或表示 SD 卡信息,如下:
名称bit 宽度描述
CID128卡识别号(Card identification number):用来识别的卡的个体号码(唯一的)
RCA16相对地址(Relative card address):卡的本地系统地址,初始化时,动态地由卡建议,主机核准
DSR16驱动级寄存器(Driver Stage Register):配置卡的输出驱动
CSD128卡的特定数据(Card Specific Data):卡的操作条件信息
SCR64SD 配置寄存器(SD Configuration Register):SD 卡特殊特性信息
OCR32操作条件寄存器(Operation conditions register)
SSR512SD 状态(SD Status):SD 卡专有特征的信息
CSR32卡状态(Card Status):卡状态信息

4. SD总线协议

SD总线上的通信是基于Command和Data传输的,由一个开始位(“0”)发起,由一个停止位(“1”)终止。SD通信一般是主机发送一个命令(Command),从设备在接收到命令后作出响应(Response),如有需要会有数据(Data)传输参与。

  • Command:Command是启动操作的令牌。Command从主机发送到单个卡(寻址命令)或所有连接的卡(广播命令)。Command在CMD数据线上串行传输。
  • Response:Response是一个令牌,它从一个有地址的卡或从所有连接的卡发送到主机,作为对先前接收到的命令的回答。Response在CMD数据线上串行传输。
  • Data:Data可以从卡转移到主机或反之亦然。Data通过DAT数据线传输。

4.1 SD总线CMD和DATA交互介绍

SD 总线的基本交互是命令与响应交互,如下图:

SD 数据是以块(Block)形式传输的,SDHC卡数据块长度一般为 512 字节,数据可以从主机到卡,也可以是从卡到主机。数据块需要 CRC位来保证数据传输成功。CRC 位由 SD卡系统硬件生成。下图为主机向 SD卡写入数据块操作示意:

SD 数据传输支持单块多块读写,它们分别对应不同的操作命令,多块写入还需要使用命令来停止整个写入操作。数据写入前需要检测 SD 卡忙状态,因为 SD 卡在接收到数据后编程到存储区过程需要一定操作时间。SD卡忙状态通过把 D0 线拉低表示。

数据块读操作与之类似,只是无需忙状态检测。

4.2 SD总线Command和Response的命令格式

  • Command令牌格式如下:

逻辑分析仪抓取CMD8的实际波形图如下:
在这里插入图片描述
每个Command前面都有一个开始位(0),后面有一个结束位(1),总长度为48 bit。每个Command都被CRC位保护,这样就可以检测到传输错误并重复操作。

  • Response的长度有48 或136 bit,这个取决于R1R2R3…的Content的大小,后面会详细介绍Command和Response的定义。Response令牌格式如下:

CMD数据线中,首先传输最高有效位(MSB),最后传输最低有效位(LSB)。

4.3 SD总线Data包格式

使用4条数据线传输时,每次传输 4bit数据,每根数据线都必须有起始位终止位以及CRC位CRC 位每根数据线都要分别检查,并把检查结果汇总然后在数据传输完后通过D0 线反馈给主机。

SD 卡数据包种格式,一种是常规数据(8bit 宽),它先发低字节再发高字节,而每个字节则是先发高位再发低位,1 or 4线传输示意图如下:
在这里插入图片描述
4 线同步发送,每根线发送一个字节的其中两个位,数据位在四线顺序排列发送,DAT3 数据线发较高位,DAT0数据线发较低位。

另外一种数据包发送格式是宽位数据包格式,对 SD卡而言宽位数据包发送方式是针对 SD卡 SSR(SD 状态)寄存器内容发送的,SSR 寄存器总共有 512bit,在主机发出ACMD13命令后 SD卡将 SSR 寄存器内容通过 DAT线发送给主机。宽位数据包格式示意见图如下:
在这里插入图片描述
逻辑分析仪抓取SD卡传输Data的实际波形图如下:
在这里插入图片描述

5. 参考资料

SDIO参考的资料如下:
在这里插入图片描述
下载地址如下:
https://download.csdn.net/download/ZHONGCAI0901/14975835

### 回答1: SDIO2.0(Secure Digital Input/Output)是一种用于在嵌入式系统中实现数据读写和通信的接口协议SDIO2.0协议定义了设备之间的时序,主要包括传感器、存储设备和其他外设设备之间的通信流程。 SDIO2.0协议时序的主要流程如下: 1. 主机发起命令:主机向设备发送命令,包括命令类型、读写操作、寄存器地址等信息。 2. 设备响应:设备接收到命令后,根据命令的类型和参数执行相应的操作,并将响应反馈给主机。设备的响应可能包括操作成功/失败、数据传输准备就绪等状态。 3. 数据传输:如果命令需要传输数据,主机会在设备准备好数据后发起数据传输请求。设备将数据按照指定的格式(如字节、块等)发送给主机。 4. 结束命令:主机在完成操作后,发送结束命令给设备,告知设备当前操作已经结束。 5. 设备确认:设备接收到结束命令后,发送确认信号给主机,表示设备已经收到结束命令并确认操作已完成。 6. 设备复位:在一些情况下,主机可以向设备发送复位信号,重新初始化设备的状态。 需要注意的是,SDIO2.0协议通过时钟信号和数据信号完成设备之间的通信,时钟信号用于同步数据传输,数据信号用于传输命令和数据。时序的严格控制保证了设备之间的数据传输的准确性和可靠性。 总之,SDIO2.0协议时序是设备之间进行数据读写和通信的具体流程,通过发送命令、设备响应、数据传输和结束命令等步骤完成数据的传输和操作。 ### 回答2: SDIO2.0协议是用于在SDIO总线上实现高速数据传输的一种协议。它定义了数据传输的时序和规范,确保数据能够准确、快速地从SDIO设备传输到主机或从主机传输到SDIO设备。 SDIO2.0协议的时序包括以下几个方面: 1. 主机发送命令:主机通过CMD线发送命令到SDIO设备。主机先发送命令的索引和参数,然后SDIO设备会返回一个响应。 2. 主机发送数据:主机发送数据到SDIO设备的时序包括以下几个步骤:主机发送数据块的大小、主机等待ACK响应、主机发送数据块的起始地址和实际数据。 3. SDIO设备回应:SDIO设备会根据主机发送的命令或数据给出相应的回应。回应类型有响应响应(R1响应)、响应响应加数据块(R1b响应)、响应加数据(R2响应)和无响应(R3和R4响应)。 4. 数据传输结束:主机在某个时刻结束数据传输,即发送结束标志。 总的来说,SDIO2.0协议的时序是通过主机发送命令和数据,SDIO设备根据主机的指令进行操作并给出相应的响应,最后主机结束数据传输。保证了数据的准确和高效传输。以上是对SDIO2.0协议时序的简要回答。 ### 回答3: SDIO2.0(Secure Digital Input/Output)是一种用于连接外部设备的接口协议,该协议可以让主机设备(如智能手机、平板电脑等)与外部设备(如Wi-Fi模块、蓝牙模块等)进行数据传输和通信。 SDIO2.0协议时序指的是在SDIO接口下,各个信号线的时钟和数据传输顺序。具体来说,SDIO2.0协议时序有以下几个关键步骤: 1. 初始化步骤:在通信开始前,主机设备要向外部设备发送初始化命令,以确保通信正常开始。 2. 时钟同步:主机设备会发送一个时钟信号给外部设备,用于同步数据传输的时钟。 3. 命令传输:主机设备发送指令给外部设备,包括读写操作和其他控制命令。这些命令通过命令线传输。 4. 数据传输:在命令传输完成后,主机设备通过数据线发送数据给外部设备或从外部设备接收数据。数据传输的顺序可以是单字节传输或者多字节传输。 5. 响应传输:外部设备在接收到命令后,会返回一个响应给主机设备,表示命令的执行结果。响应传输的方式可以是使用命令线来传输响应码。 需要注意的是,SDIO2.0协议时序非常重要,若时序不正确,会导致数据传输错误或通信失败。所以在设计和实现SDIO2.0接口时,需要根据协议规范精确控制时钟和数据传输的顺序,以确保稳定可靠的数据传输和通信。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值