当前位置:网站首页>【SDIO】SD2.0协议分析总结(一)-- SD卡基本概率介绍
【SDIO】SD2.0协议分析总结(一)-- SD卡基本概率介绍
2022-07-22 09:06:00 【ZHONGCAI0901】
相关文章
《【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版本 |
SDSC | Standard Capacity SD Memory Card | <=2GB | 2.0版本以上 |
SDHC | High Capacity SD Memory Card | 2GB~32GB | 2.0版本以上 |
SDXC | Extended Capacity SD Memory Card | 32GB~2TB | 3.0版本以上 |
SDUC | Ultra Capacity SD Memory Card | 2TB~128TB | 8.0版本以上 |
总线速度模式分类如下:
SD版本 | 总线速度 | 总线接口 |
2.0 | 最高速度 < 25 MB/sec | 1. 支持4条3.3V数据线High Speed模式 |
3.0 | 最高速度 < 104 MB/sec | 1. 支持4条3.3V数据线High Speed模式 2. 支持4条1.8V数据线 UHS-I模式 |
6.0 | 最高速度 < 6.24Gbps per lane | 1. 支持4条3.3V数据线High Speed模式 2. 支持4条1.8V数据线 UHS-I模式 3. 支持UHS-II、UHS-III不同的接口总线模式 |
8.0 | 最高速度 < 3938MB/s | 1. 支持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 宽度 | 描述 |
CID | 128 | 卡识别号(Card identification number):用来识别的卡的个体号码(唯一的) |
RCA | 16 | 相对地址(Relative card address):卡的本地系统地址,初始化时,动态地由卡建议,主机核准 |
DSR | 16 | 驱动级寄存器(Driver Stage Register):配置卡的输出驱动 |
CSD | 128 | 卡的特定数据(Card Specific Data):卡的操作条件信息 |
SCR | 64 | SD 配置寄存器(SD Configuration Register):SD 卡特殊特性信息 |
OCR | 32 | 操作条件寄存器(Operation conditions register) |
SSR | 512 | SD 状态(SD Status):SD 卡专有特征的信息 |
CSR | 32 | 卡状态(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 数据是以块(Black)形式传输的,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,这个取决于
R1
、R2
、R3
…的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
边栏推荐
猜你喜欢
PHP实现删除一维数组中某一个值
Fabric.js 控制元素层级
Applet sorted by an element of the structure (fishing_3)
MySQL优化之强制索引的使用
uniapp 微信小程序地图,在高德app、腾讯app、百度app、苹果地图app 中打开
[10:00 public class]: cloud video conference system privatization practice
Js高级-函数的理解
【10点公开课】:云视频会议系统私有化实践
Is it really necessary to define VO, Bo, Po, do, dto?
Copy of file descriptor
随机推荐
How to build a clear and understandable data Kanban?
二、注解
2022-07-21:给定一个字符串str,和一个正数k, 你可以随意的划分str成多个子串, 目的是找到在某一种划分方案中,有尽可能多的回文子串,长度>=k,
arguments
协议与端口
手写shallowReadonly和readonly
[10:00 public class]: cloud video conference system privatization practice
ecshop配置微信支付,微信开发者工具微信支付时弹窗提示“未绑定网页开发者”问题
MySQL密碼正確但是啟動報錯Unable to create initial connections of pool.Access denied for user ‘root‘@‘localhost
It took two hours to find the bug about scrollto scrolling the distance from offsettop to the top
Internet Download Manager2022试用版(简称 IDM)
垃圾回收
3. Transbot modifies the display resolution
"Review of software engineering in Wuhan University of technology" Chapter 6 | coding specification
creating vlan over openstack (by quqi99)
Mail Informer
juju debug hacks (by quqi99)
力扣解法汇总522-最长特殊序列 II
使用工厂的方法创建对象
"Review of software engineering in Wuhan University of technology" Chapter 7 | software testing