SD/SDIO(2):SDIO协议介绍和初始化流程

news2024/11/13 15:20:00

文章目录

  • 1 标准/非标准SDIO规范
  • 2 SDIO引脚定义
  • 3 SDIO初始化流程
    • 3.1 由不支持I/O的主机初始化
    • 3.2 由支持I/O的主机初始化
    • 3.3 CMD5(IO_SEND_OP_COND)
    • 3.4 R4(CMD5的回复)
  • 4 总结

1 标准/非标准SDIO规范

如下图所示,SDIO总线规范由物理层规范和SDIO规范定义。组合卡(包含存储和其它功能,如WIFI/蓝牙等)的存储部分由物理层规范指定。有两种SDIO功能规范:标准SDIO规范和非标准SDIO规范。
(1)标准SDIO规范:如相机、蓝牙卡和GPS接收器,具有标准的寄存器接口、共同的操作方法和标准的CIS(Container Interface Specification)扩展。通过为特定功能定义标准的寄存器接口。
(2)非标准SDIO规范:SD卡厂商可以选择遵循标准SDIO规范,也可以不遵守。若不遵守,则设备制造商需要提供相关驱动程序。
在这里插入图片描述

2 SDIO引脚定义

1、SDIO卡类型
本规范定义了两种类型的SDIO卡。
(1)全速
支持SPI,1位SD和4位SD传输模式,时钟范围为0-25MHz,数据传输速率超过100Mb/s
(2)低速
该卡仅有SPI和1位SD传输模式,4位支持是可选的。低速SDIO卡应支持0-400 KHz的时钟范围。低速卡的预期用途是在使用较少引脚的情况下支持低速I/O功能,如调制解调器,条形码扫描器,GPS接收器等。

2、SDIO卡模式
SD卡的三种总线模式也适用于SDIO卡:

  • SPI模式(强制,SDIO 2.0规范开始不强制要求支持SPI)
  • 1位SD数据传输模式(强制)
  • 4位SD数据传输模式(高速卡强制,低速可选)

如下是SD主机与两个4位SDIO卡的连接引脚图:
在这里插入图片描述

3 SDIO初始化流程

3.1 由不支持I/O的主机初始化

SDIO规范要求SDIO卡插入时不应导致不支持I/O的主机出现故障。为了防止在不支持I/O的主机上执行I/O功能,需要更改SD卡识别模式流程图。为了通过I/O感知主机进行SDIO初始化,添加了一个新的命令IO_SEND_OP_COND(CMD5)来替代ACMD41指令。

在复位或上电后,卡上的所有I/O功能都被禁用,卡的I/O在CS为低的情况下,不能执行除CMD5CMD0外的操作。如果卡上有SD内存(组合卡),该内存应正常响应所有强制性内存命令。仅支持I/O的卡不会响应ACMD41命令,主机应该放弃并禁用这张卡。

因此,不支持I/O的主机不会从I/O卡获得任何响应,从而将其迫使进入非活动状态。不支持I/O的主机与I/O卡的操作如下图所示,实线表示实际路径,虚线表示未执行的路径。

在这里插入图片描述

3.2 由支持I/O的主机初始化

对于支持SDIO的主机,在执行CMD55/ACMD41命令之前,会发送CMD5命令,从而在CMD5R4响应中获得有效的OCR(操作条件寄存器),并继续初始化SDIO卡。下图展示了在SD模式下操作的SDIO感知主机的运行过程。

  • SPI模式下操作SDIO感知主机的运行过程请参考手册

如果卡的I/O部分没有收到CMD5命令,I/O部分将保持不活动状态,不会对除CMD5之外的任何命令作出响应。组合卡将保持在仅内存模式。如果卡上没有SD内存,则卡不会对任何内存命令作出响应。如果支持I/O的主机向卡发送CMD5,卡将以R4响应的形式作出响应。主机然后读取R4的值,并了解可用的I/O功能数量以及是否存在任何SD内存。

支持UHS-I的主机在CMD5的参数中将S18R设置为1,以请求信号电压变更为1.8V。如果卡支持UHS-I且当前的信号电压为3.3V,R4响应中将设置S18A为1。如果信号电压已经为1.8V,则卡将设置S18A为0,以使主机保持当前的信号电压。UHS-I支持SD模式,而SPI模式不支持UHS-IS18A始终为0。

主机在初始化卡的I/O部分后,通过发出读取命令,从I/O功能0的地址00h开始,读取卡的通用信息区域(CIA)。CIA包含卡通用控制寄存器(CCCR)和功能基本寄存器(FBR)。CIA还包括指向卡的通用卡信息结构(CIS)和每个个别功能的CIS的指针。CIS包括有关电源、功能、制造商和主机需要确定I/O功能是否适合上电的其他信息。如果主机确定卡应该被激活,CCCR区域中的寄存器启用卡和每个个别功能。此时,I/O卡的所有功能都可以完全使用。此外,主机可以逐个功能控制功耗和启用/禁用中断。这种对I/O的访问不会干扰对卡的内存访问(如果存在)。

当接收到参数为0的CMD5时,SDIO卡会返回R4响应,但不会启动I/O功能的初始化。Version 3.00的SDIO卡应该通过接收不等待WV=0CMD5来启动初始化序列。

组合卡可以接受带有RCA(相对卡地址)=0000CMD15,如物理层规范所述,但仅内存卡有一个例外。仅内存卡在主机发出CMD15之前需要一个非零的RCA。因此,在ACMD41的情况下,它应该接受RCA=0000h
在这里插入图片描述

3.3 CMD5(IO_SEND_OP_COND)

下图显示了IO_SEND_OP_COND命令(CMD5)的格式。对于SDIO卡,CMD5的功能类似于ACMD41对于SD内存卡的操作。它用于查询I/O卡所需的电压范围。CMD5的正常响应是R4,SD或SPI格式各不相同。
在这里插入图片描述
SDIO 2.00版本的卡应支持操作电压范围为2.7-3.6V,不需要支持2.0-2.7V的电压范围进行基本通信。支持SDIO 2.00版本的主机不能使用2.0-2.7V的电压范围进行基本通信。

3.4 R4(CMD5的回复)

SDIO卡在接收CMD5命令后,应该用SDIO独有的响应R4进行回应。R4的格式适用于SD和SPI模式,如下:
在这里插入图片描述
一旦SDIO卡接收到CMD5,该卡的I/O部分将被启用,以正常响应所有后续命令。这种I/O启用状态将一直保持,直到卡接收到重置、电源循环或CMD52写入I/O复位的命令。

注意,仅支持SD内存的卡可能会响应·CMD5·。仅内存卡的适当响应应为Memory Present = 1Number of I/O Functions = 0。SD内存卡将CMD5视为非法命令,不予响应。需要注意的是,与类似的内存命令ACMD41不同,CMD5的SPI响应包含了卡中的OCR值。

I/O感知主机将发送CMD5。如果卡在物理层规范中定义的Ncr超时值内以R4响应,主机将根据R4中包含的数据确定卡的配置。

4 总结

本文对SDIO的协议和初始化流程做了一个大致的介绍,实际上对于SDIO协议还增加了几个特定的命令,与SD协议也有一定的区别,详细参考:SDIO Simplified Specification Version 3.00。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1122735.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于WebRTC构建的程序因虚拟内存不足导致闪退问题的排查以及解决办法的探究

目录 1、WebRTC简介 2、问题现象描述 3、将Windbg附加到目标进程上分析 3.1、Windbg没有附加到主程序进程上,没有感知到异常或中断 3.2、Windbg感知到了中断,中断在DebugBreak函数调用上 3.3、32位进程用户态虚拟地址和内核态虚拟地址的划分 …

Dockerfile 镜像创建

目录 一、创建镜像的三种方法: 二、基于已有镜像创建: 1.启动一个镜像: ​编辑 2.将修改后的容器提交为新的镜像: 三、基于本地模板创建: 1.下载模板: 2.导入为镜像: 四、基于Dockerfile 创…

AD9371 官方例程HDL详解之JESD204B TX_CLK生成 (一)

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射 参考资料: UltraScale Architecture GTH Transceive…

Windows 11中无法通过默认应用更改文件关联

这里写自定义目录标题 现象解决方法 这里以.md格式文件为例。 现象 在 Windows 11 计算机上安装第三方软件后,关联 JPG、JPE、JPEG、PNG、MPG、MPEG、MD 等文件类型和其他文件类型的能力可能会受到阻碍。以下是尝试更改上述文件类型的文件关联时可能遇到的问题。 …

docker部署与基础操作

目录 一、Docker 概述: 1. docker简介: 2. 容器的优点: 3. 容器在内核中支持2种重要技术: 4 . 容器与虚拟机 的区别: 5. docker三个核心概念: 二、安装docker: 1. 关闭防火墙: 2. 安…

字节码进阶之JVM Attach API详解

字节码进阶之JVM Attach API详解 文章目录 字节码进阶之JVM Attach API详解附加到虚拟机加载代理和获取信息分离虚拟机 使用Attach API的基本步骤1. **获取虚拟机实例**:2. **附加到虚拟机**:3. **加载代理或获取信息**4. **从虚拟机分离**:…

GCC安装

查看gcc版本 gcc -vUsing built-in specs. COLLECT_GCCgcc COLLECT_LTO_WRAPPER/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --prefix/usr --mandir/usr/share/man --infodir/usr/share/info --with-…

Identity-Preserving Talking Face Generation with Landmark and Appearance Priors

主要问题:1)模型如何生成具有与输入音频一致的面部运动(特别是嘴部和下颌运动)的视频?2)模型如何在保留身份信息的同时生成视觉上逼真的帧? 摘要: 从音频生成说话脸部视频引起了广泛的研究兴趣。一些特定个人的方法可以生成生动的视频,但需要使用目标说话者的视频进行训…

【tg】6: MediaManager的主要功能

【tg】2:视频采集的输入和输出 的管理者是 media manager‘ media 需要 network的支持:NetworkInterface friend class MediaManager::NetworkInterfaceImpl;NetworkInterfaceImpl 直接持有 MediaManager 的指针即可:发送rtp包、rtcp包、设置socket选项?

SpringMVC系列-5 消息转换器

背景 SpringMVC系列的第五篇介绍消息转换器,本文讨论的消息转换指代调用Controller接口后,对结果进行转换处理的过程。 内容包括介绍自定义消息转换器、SpringMVC常见的消息转换器、Spring消息转换器工作原理等三部分。 本文以 SpringMVC系列-2 HTTP请求…

Android Settings解析

首语 Android设置应用是Android系统中一个非常重要的系统应用,它允许用户调整和设置系统的各种参数和功能(系统设置/自定义设置/控制应用权限/开发者选项/系统信息等),使用户获得更好的使用体验。同时它一般也是Android系统开发者…

数据结构(递归,链表实现递归)

a.宏观描述:本质上说,递归将原问题转化为更小的同一问题。 b.递归本身也是一个函数,来完成某一功能。 1.递归终止的条件 2.递归操作 1.猴子吃桃问题 猴子第一天偷吃了该堆桃子的一半,觉得好吃多吃了一个;第二天吃了该堆…

【计算机网络】计算机网络中的一些基本概念

IP地址(互联网协议地址): IP地址是分配给连接到互联网的设备的唯一标识符。它是由四个数字(IPv4)或者由八个数字(IPv6)组成。这些数字是网络层协议的一部分,它定义了数据包的路由。…

源码解析SpringMVC处理请求的完整流程

1.WebMvcAutoConfiguration EnableWebMvcConfiguration自动装配类负责加载SpringMVC涉及的HandlerAdapter、HandlerMapping、ExceptionHandlerExceptionResolver等。 SpringMVC利用 DispatchServlet 处理上游Tomcat的请求时,会被HandlerMapping、HandlerAdapter的相关子类分别…

Java JDK环境变量配置

JDK 安装和配置完成后,可以测试其是否能够正常运行。选择“开始”|“运行”命令,在打开的“运行”对话框中输入 cmd 命令,按 Enter 键进入到 DOS 环境下。 在命令提示符后输入并执行java -version命令,系统如果输出类似图 1 所示的…

Java类的继承

继承: 类的继承基本思想是基于某个父类进行扩展,得到一个新的子类,子类可以继承父类的原有属性和方法,也可以增加原来父类所不具备的属性和方法,或者重写父类中的方法; 重写: 【重写】也可以称为【覆盖】&…

阿里云服务结构--长期更新

CNCF 全称Cloud Native Computing Foundation(云原生计算基金会),成立于 2015 年7月21日(于美国波特兰OSCON 2015上宣布),其最初的口号是坚持和整合开源技术来让编排容器作为微服务架构的一部分&#xff0…

基于​Segment-and-Track Anything与ProPainter实现视频一键目标移除与一键祛除水印

一、 ProPainter 1.算法简介 ProPainter是由新加坡南洋理工大学(Nanyang Technological University)的S-Lab团队开发的一款视频修复工具。它融合了图像和特征修复的优势,以及高效的Transformer技术,旨在提供高质量的视频修复效果…

SolidWorks模型导入到Gazebo中

首先建立好solidworks模型,然后另存为stl格式, 导出为STL文件时,文件名最好不要是中文,并且要将后缀STL改为stl,否则Gazebo无法识别 这是我创建好的机器人充电桩模型: 尺寸是单位是mm: 135mm …

C语言程序的翻译环境和执行环境

目录 一、概述:翻译环境、执行环境 1.翻译环境 2.执行环境(运行环境) 二、详述翻译环境——编译环境、链接环境 1.编译环境 2.链接环境 三、详述编译过程——预编译、编译、汇编 1.预编译(预处理) 2.编译&…