[SDIO].SDIO总线详解

转自:https://blog.csdn.net/liuhan33025/article/details/51131848

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

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

1.全速的SDIO卡,传输率可以超过100Mbps;

2.低速的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)卡的管脚定义

引脚号 SD卡 TF卡(SD卡模式) TF卡(SPI模式)
1 data3 data2 rsv
2 cmd data3 cs
3 vss cmd di
4 vdd vdd vdd
5 clk clk sclk
6 vss vss vss
7 data0 data0 do
8 data1 data1 rsv
9 data2 -- --

二、SDIO命令:

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

1. Command:用于开始传输的命令,是由HOST端发往DEVICE端的,其中命令是通过CMD信号线传送的;

2. Response:回应是DEVICE返回的HOST命令作为Command的回应。也是通过CMD线传送的;

3. 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的写法来做清楚区别。

原文地址:https://www.cnblogs.com/aaronLinux/p/11032906.html

时间: 2024-08-24 23:21:55

[SDIO].SDIO总线详解的相关文章

汽车CAN总线详解

概述 CAN(Controller Area Network)总线协议是由 BOSCH 发明的一种基于消息广播模式的串行通信总线,它起初用于实现汽车内ECU之间可靠的通信,后因其简单实用可靠等特点,而广泛应用于工业自动化.船舶.医疗等其它领域.相比于其它网络类型,如局域网(LAN, Local Area Network).广域网(WAN, Wide Area Network)和个人网(PAN, Personal Area Network)等,CAN 更加适合应用于现场控制领域,因此得名. CAN

SPI总线协议及SPI时序图详解

SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议.SPI是一个环形总线结构,由ss(cs).sck.sdi.sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换. 上升沿发送.下降沿接收.高位先发送.上升沿到来

迅为4412开发板Linux驱动教程——总线_设备_驱动注册流程详解

视频下载地址: 驱动注册:http://pan.baidu.com/s/1i34HcDB 设备注册:http://pan.baidu.com/s/1kTlGkcR 总线_设备_驱动注册流程详解 ? 注册流程图 ? 设备一般都需要先注册,才能注册驱动 – 现在越来越多的热拔插设备,反过来了.先注册驱动,设备来了再注册 设备 ? 本节使用的命令 – 查看总线的命令#ls /sys/bus/ – 查看设备号的命令#cat /proc/devices ? 设备都有主设备号和次设备号,否则255个设备号不

《Linux设备驱动开发详解(第3版)》海量更新总结

本博实时更新<Linux设备驱动开发详解(第3版)>的最新进展. 2015.2.26 几乎完成初稿. [F]是修正或升级:[N]是新增知识点:[D]是删除的内容 第1章 <Linux设备驱动概述及开发环境构建>[D]删除关于LDD6410开发板的介绍[F]更新新的Ubuntu虚拟机[N]添加关于QEMU模拟vexpress板的描述 第2章 <驱动设计的硬件基础> [N]增加关于SoC的介绍:[N]增加关于eFuse的内容:[D]删除ISA总线的内容了:[N]增加关于SP

嵌入式开发平台 迅为6818开发板接口详解

迅为八核iTOP-6818开发板接口详解: iTOP-4418接口图: iTOP-6818核心板: iTOP-6818开发板接口详解: 1.POWER电源接口 电源输入为5V/2A+,给核心板AXP228电源管理芯片提供5V电源,给底板供电. 2. SWITCH电源开关 轻触电源开关可以控制开发板电源通断. 3. 拨码开关 3位拨码开关控制4418启动模式. 4. 模数转换 A/D模数转换,调整滑动变阻器,模拟量可以通过转换口检测到. 5. JTAG接口 保留JTAG接口,有需要的用户可以进行扩

ARM Cortex-M底层技术(2)—启动代码详解

杂谈 工作了一天,脑袋比较乱.一直想把底层的知识写成一个系列,希望可以坚持下去.为什么要写底层的东西呢?首先,工作用到了这部分内容,最近和内部Flash打交道比较多,自然而然会接触到一些底层的东西:第二,近些年来Cortex-M阵营各厂商(ST.Nordic.ATMEL……)对新产品的迭代速度越来越快,以及微控制器应用普及程度的加深,越来越多的开发者把更多精力投注在应用层开发上,花在对底层技术上的时间越来越少,更深层次的原因是走嵌入式底层没有做互联网上层赚钱.希望自己可以把嵌入式ARM Cort

OSI七层模型详解 TCP/IP协议

总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,OSPF,EIGRP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,MTU 物理层 以二进制数据形式在物理媒体上

sysctl与/proc详解

目录 一.sysctl简介 二.sysctl命令使用 三.sysctl配置文件/etc/sysctl.conf详解 四./proc目录简介 五./proc/sys下内核文件与配置文件sysctl.conf中变量的对应关系 一.sysctl简介 sysctl 是一个用来在系统运作中查看及调整系统参数的工具.有的sysctl参数只是用来查看目前的系统状况,例如查看目前已开机时间.所使用的操作系统版本.核心名称等等:而有的可以让我们修改参数以调整系统运作的行为,例如网络暂存内存的大小.最大的上线人数等

20150222 IO端口映射和IO内存映射(详解S3C24XX_GPIO驱动)

20150222 IO端口映射和IO内存映射(详解S3C24XX_GPIO驱动) 2015-02-22 李海沿 刚刚我们实现了linux系统内存的分配,读写,释放功能,下面,我们一鼓作气将IO端口映射及IO内存映射搞定,加油! (一)地址的概念 1)物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义.物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上(如显存.BIOS等).在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址