硬件接口之SDIO

article/2025/10/24 3:03:48

  SDIO接口是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的SD内存卡,并且可以连接SDIO接口的设备。
参考

在这里插入图片描述
在这里插入图片描述

SDIO1.0标准定义了两种类型的SDIO卡:

  全速的SDIO卡,传输率可以超过100Mbps;
  低速的SDIO卡,支援的时脉速率在0至400KHz之间。
  SDIO协议是由SD卡的协议演化升级而来的,很多地方保留了SD卡的读写协议,同时SDIO协议又在SD卡协议之上添加了CMD52和CMD53命令。由于这个,SDIO和SD卡规范间的一个重要区别是增加了低速标准,低速卡的目标应用是以最小的硬件开支来支持低速I/O能力。低速卡支持类似调制解调器,条形码扫描仪和GPS接收器等应用。高速卡支持网卡,电视卡以及组合卡等。组合卡指的是存储器+SDIO,对组合卡来操作需要全速和4BIT的传输模式,这是SDIO1.0标准规定的。

一、SDIO总线

  SDIO总线和USB总线类似,SDIO总线也有两端,其中一端是主机(HOST)端,另一端是设备端(DEVICE),采用HOST- DEVICE这样的设计是为了简化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复用作中断线。

SDIO的每个脚位在不同信号模式下的定义如下图:
在这里插入图片描述
图一  SDIO的每个脚位在不同信号模式下的定义

  Micro SD Card,原名Trans-flash Card(TF卡)。2004年正式更名为Micro SD Card,由SanDisk(闪迪)公司发明。SD卡的管脚定义和Micro SD(TF)卡的管脚定义是不一样的。
在这里插入图片描述
图二   SD卡和Micro SD(TF)卡的管脚定义

在这里插入图片描述

二、SDIO命令

  SDIO总线上都是HOST端发起请求,然后DEVICE端回应请求,其中请求和回应中会包含数据信息:

  Command:用于开始传输的命令,是由HOST端发往DEVICE端的,其中命令是通过CMD信号线传送的;
  Response:回应是DEVICE返回的HOST命令作为Command的回应。也是通过CMD线传送的;
  Data:数据是双向的传送的。可以设置为1线模式,也可以设置为4线模式。数据是通过DAT0-DAT3信号线传输的。
  SDIO的每次操作都是由HOST在CMD线上发起一个CMD,对于有的CMD,DEVICE需要返回Response,有的则不需要。

  对于读命令,首先HOST会向DEVICE发送命令,紧接着DEVICE会返回一个握手信号,此时,当HOST收到回应的握手信号后,会将数据放在4位的数据线上,在传送数据的同时会跟随着CRC校验码。当整个读传送完毕后,HOST会再次发送一个命令,通知DEVICE操作完毕,DEVICE同时会返回一个响应。
  对于写命令,首先HOST会向DEVICE发送命令,紧接着DEVICE会返回一个握手信号,此时,当HOST收到回应的握手信号后,会将数据放在4位的数据线上,在传送数据的同时会跟随着CRC校验码。当整个写传送完毕后,HOST会再次发送一个命令,通知DEVICE操作完毕,DEVICE同时会返回一个响应。

三、SDIO内部的记忆体映射
  SDIO记忆卡内部具有固定的记忆体映射,这包含暂存器空间或称为「一般资讯区域(common information area;CIA)」,以及特殊功能区域(function unique area)。CICIAA包含了与SDISDIOO记忆卡有关的资讯,以及一些必要的(mandatory)和可选择的(optional)暂存器,它们都位于固定的位址上。藉此,SDIO的主机(譬如:可携式装置)能够得到SDIO记忆卡的有关资讯,并执行一般性的作业。特殊功能区域储存了许多种不同的功能,这是由供应商定义的,因此,不同厂牌的SDIO记忆卡可能会有不同的功能。附图二是具有许多种不同功能的SDIO记忆卡内部的固定记忆体映射空间。其中,RFU是「保留给未来使用(Reserved for Future Use)」的意思。CIA所包含的暂存器可以开启或关闭I/O作业、处理硬件中断、载入韧体(这是选项)。这些暂存器也提供与SDISDIOO记忆卡功能相关的资讯和要求。CIA支援下列3种暂存器:

  一般控制暂存器(Card Common Control Register;CCCR):能快速检查SDIO主机,并依照不同的SDIO记忆卡之功能控制它们的启动和中断能力。即使在开机后,SDIO记忆卡的I/O功能尚未被启动,但是CCCR是可以被存取的,这使得SDIO主机于系统初始化后,可以立即启动SDIO记忆卡的I/O功能。
  基本功能暂存器(Function Basic Register;FBR):每一个I/O功能具有256 bytes的记忆体空间,这使得SDIO主机能够快速地判定每一个I/O功能的能力和要求,并启动韧体下载功能。这个空间位址是从0x00n00至0x00nFF,n是功能编号(从0x1至0x7)。
记忆卡资讯结构(Card Information Structure;CIS):CIS提供更完整的记忆卡功能的相关资讯。这是仿照PCMCIA标准所制定的规格。SDIO记忆卡的每一个功能都各有一个CIS区域,以及一个共用的CIS区域;共用的CIS区域储存了所有功能的共同特性,每一个功能的CIS区域则储存了该功能所具备的特性。CCCR和FBR各具有一个指标指向相对应的CIS位址。

在这里插入图片描述

图三   SDIO固定记忆体映射空间

  此外,由于SDIO记忆卡的每一个功能可能需要包含额外的记忆体空间,用来储存驱动程式或应用程式。而且,因为SDIO记忆卡可能必须支援不同的平台,所以每一个驱动程式或应用程式可能会有许多种版本。解决的方法有两种:一种是使用SD的标准规范,来设计「组合卡」;另一种是使用嵌入式的「程式码储存区域(Code Storage Area;CSA)」。
在这里插入图片描述
图四   SD的记忆体映射空间

  SMC是「静态记忆体控制器(Static Memory Controller)」、BFC是「暴量传输的(burst)FLASH控制器(Burst Flash Controller)」。

四、SD/MMC/SDIO概念区分概要

  SD(Secure Digital)与MMC(Multimedia Card)

  SD是一种flash memory card的标准,也就是一般常见的SD记忆卡,而MMC则是较早的一种记忆卡标准,目前已经被SD标准所取代。在维基百科上有相当详细的SD/MMC规格说明:[http://zh.wikipedia.org/wiki/Secure_Digital]。

SDIO(Secure Digital I/O)
  SDIO是目前我们比较关心的技术,SDIO故名思义,就是SD的I/O接口(interface)的意思,不过这样解释可能还有点抽像。更具体的说明,SD本来是记忆卡的标准,但是现在也可以把SD拿来插上一些外围接口使用,这样的技术便是SDIO。

  所以SDIO本身是一种相当单纯的技术,透过SD的I/O接脚来连接外部外围,并且透过SD上的I/O数据接位与这些外围传输数据,而且SD协会会员也推出很完整的SDIO stack驱动程序,使得SDIO外围(我们称为SDIO卡)的开发与应用变得相当热门。

  现在已经有非常多的手机或是手持装置都支持SDIO的功能(SD标准原本就是针对mobile device而制定),而且许多SDIO外围也都被开发出来,让手机外接外围更加容易,并且开发上更有弹性(不需要内建外围)。目前常见的SDIO外围(SDIO卡)有:
Wi-Fi card(无线网络卡)
CMOS sensor card(照相模块)
GPS card
GSM/GPRS modem card
Bluetooth card
Radio/TV card

  SDIO的应用将是未来嵌入式系统最重要的接口技术之一,并且也会取代目前GPIO式的SPI接口。SD/SDIO的传输模式SD传输模式有以下3种:
SPI mode(required)
1-bit mode
4-bit mode

  SDIO同样也支持以上3种传输模式。依据SD标准,所有的SD(记忆卡)与SDIO(外围)都必须支持SPI mode,因此SPI mode是「required」。此外,早期的MMC卡(使用SPI传输)也能接到SD插糟(SD slot),并且使用SPI mode或1-bit mode来读取。SD的MMC Mode

  SD也能读取MMC内存,虽然MMC标准上提到,MMC内存不见得要支持SPI mode(但是一定要支持1-bit mode),但是市面上能看到的MMC卡其实都有支持SPI mode。因此,我们可以把SD设定成SPI mode的传输方式来读取MMC记忆卡。

  SD的MMC Mode就是用来读取MMC卡的一种传输模式。不过,SD的MMC Mode虽然也是使用SPI mode,但其物理特性仍是有差异的:

  MMC的SPI mode最大传输速率为20Mbit/s;
  SD的SPI mode最大传输速率为25Mbit/s。
  为避免混淆,有时也用SPI/MMC mode与SPI/SD mode的写法来做清楚区别。

SDIO电路设计注意事项

SDIO走线速率较高,尽量控制寄生电容
CMD、D0~D3走线长度以CLK走线长度为基准±3mil,需要时绕蛇形线
CLK走线尽量单独包地,从芯片管脚到SD接口的总长度越短越好,控制在2500mil以内,最好在2000mil以内
SDIO走线要保证不跨平面
射频走线最为理想的是微带线50Ohm管控,而不是共面波导50Ohm管控;同时射频走线上方能不铺绿油就不要铺绿油
电源走线能粗就粗一点,没坏处
模组PCB表面工艺一定要沉金1oz,有钱可以尝试2oz,但一定不能喷锡和裸铜
板材要选择Tg190及以上,最好200以上
2G链路中的滤波器最好加上,防止认证中各种问题
芯片底部的过孔一定要足量,否则会引起Mask问题
因为模组散热,将大电感及大电容从模组移至底板,增加模组本身散热能力
VCO电源上的磁珠不能省,而且要小心磁饱和


http://chatgpt.dhexx.cn/article/YClXNIfX.shtml

相关文章

一文搞懂SDIO

SDIO总线简介 SDIO(Secure Digital Input and Output),即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、GPS等。 什么是SDIO卡 SDIO卡&…

visual svn for visual studio 2019

https://marketplace.visualstudio.com/items?itemNameVisualSVNLimited.VisualSVN-VS2019 参考 https://www.cnblogs.com/Music/p/visualsvn-for-visual-studio-2019.html

visualSVN server的安装和使用

一、安装visualSVN server 服务器端 下载地址:https://www.visualsvn.com/server/download/ 1.在官网中下载visualSVN server服务器端 2.安装下载的visualSVN server,选择默认选项即可 二、安装号visualSVN server后,创建一个代码创库&am…

《SVN系列教程-第三章-VisualSVN的使用》

教程说明 本系列教程目录大纲:《SVN系列教程-目录大纲》 《SVN系列教程-第三章-VisualSVN的使用》 1.1 VisualSVN简介 VisualSVN是Subversion的一款图形化界面工具,提供了图形化方式来辅助我们管理仓库、用户、组信息,另外VisualSVN还帮我…

安装VisualSVN server

链接: 官网链接: https://www.visualsvn.com/ 下载页链接: https://www.visualsvn.com/server/download/ 下载文件链接:https://www.visualsvn.com/files/VisualSVN-Server-3.2.3-x64.msi安装步骤: 这一步是让选择安装…

VS2019安装 VisualSVN Server 插件

选择VisualSVN for Visual Studio 2019 进行安装,网址:https://www.visualsvn.com/visualsvn/download/

VisualSVN的下载与安装

1.在浏览器地址栏中搜索:https://www.visualsvn.com/server/download/,选择对应版本的下载包进行下载 2.安装VisualSVN 点击运行 3.点击Next 4.点击接受,然后点击Next . 5.点击Next 6.点击Next Location是指VisualSVN Server的安装目录&am…

vs2010插件之VisualSVN

一、说说svn 说到svn,大体上说的有两种,服务端:Subversion和VisualSVN-Server,客户端:TortoiseSVN和VisualSVN,现在在开发项目的时候用的代码管理工具也无非那么几种,比如:tfs和svn…

Vs插件 VisualSvn破解

发现问题 之前的项目是使用git,最近有个别项目使用SVN来管理代码,于是使用Vs 的 svn插件,用了一个月,今天突然发现修改代码后居然识别不了,就连我昨天改动的几个页面也识别不出来,开始有点慌,后…

VisualSVN Server的配置和使用方法(项目部署到svn上)

1.为什么要用VisualSVN Server,而不用Subversion? 回答: 因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来…

VS中SVN的简介、安装和使用(安装+汉化+使用)

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。 一.安装SVN 1.下载:Downloads…

VisualSVN Server的配置和使用方法

VisualSVN Server搭建SVN服务器 使用原始的SVN和Apache相配合来实现源代码的SVN管理,虽然专业且功能强大,但对于一般个人用户来说未免太过复杂。而使用VisualSVN Server来实现主要的SVN功能则简单得多。 简单的直接看前面,详细的看后面部分。…

用VisualSVN做项目版本控制

一、SVN服务端 1、VisualSVN Server下载: http://download.csdn.net/detail/jiminull/4448874 或 http://www.visualsvn.com/server/download/ VisualSVN Server是免费的 2、VisualSVN Server安装: 下载完VisualSVN Server后,只要双击V…

VisualSVN-Server服务器的搭建

【我这里是用的阿里云服务器】 第一步:先下载VisualSVN-Server-3.6.1-x64,然后拷贝到服务器上: 第二步: 第三步: 第四步: 第五步:点击standard edition进入设置安装路径和仓库路径备…

VisualSVN Server版本推荐

一,关于VisualSVN和VisualSVN Server 这两个是不同类型的软件。 1,VisualSVN VisualSVN for Visual Studio是集成在VS上的SVN客户端插件,功能和tortoiseSVN类似。 2,VisualSVN Server 这个是服务器端的软件,用于管…

VisualSVN的使用

1、安装VisualSVN-VS2017-6.0.3.vsix插件 VisualSVN 是一个Visual Studio插件,可以与Visual Studio无缝集成Subversion和TortoiseSVN。VisualSVN 实际上消除 了在Subversion中的项目源代码文件的管理。使用VisualSVN作为您的 静默合作伙伴进行 程序设计&#xff0…

使用VisualSVN建立SVN服务器

以前使用官方Subversion搭建SVN版本控制环境,感觉很繁琐,需要手动该文件,很麻烦,今天在网上看到了VisualSVN搭建版本控制环境的方法,写出来和大家分享一下。欢迎提出问题O(∩_∩)O~ 1、下载安装文件(服务器…

VisualSVN的安装

首先,我们来了解一下VisualSVN是什么?做什么的? VisualSVN是一个计算机系统函数。 SVN的功能可以简单概括为三点:数据备份、版本管理、团队合作。 故:只要利用计算机产出大量的重要电子文档(如学术论文、…

Windows系统VisualSVN-Server下载安装和配置

作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 Windows系统VisualSVN-Server下载安装和配置 一、下载VisualSVN-Server https://download.csdn.net/download/huangbangqing12/862719…

蓝牙协议BTBLE

基本概念 前言 自1994年由爱立信推出至今,蓝牙技术已经走过了20个岁月,从最初的Bluetooth V1.0,到Bluetooth V4.0(最新的为V4.1,2013年底发布)Bluetooth V5.0,本文基于蓝牙4.1规范,…