SDIO总线(一)
SDIO接口是在SD内存卡接口的基础上发展起来的接口。SDIO接口兼容曾经的SD内存卡。而且能够连接SDIO接口的设备。
SDIO1.0标准定义了两种类型的SDIO卡:
1.全速的SDIO卡。传输率能够超过100Mbps。
2.低速的SDIO卡,支援的时脉速率在0至400KHz之间。
因为这个。SDIO和SD卡规范间的一个重要差别是添加了低速标准,低速卡的目标应用是以最小的硬件开支来支持低速I/O能力。
低速卡支持类似调制解调器,条形码扫描仪和GPS接收器等应用。
快速卡支持网卡,电视卡以及组合卡等。
组合卡指的是存储器+SDIO,对组合卡来操作须要全速和4BIT的传输模式,这是SDIO1.0标准规定的。
一、SDIO总线:
在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卡和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会向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外围也都被开发出来,让手机外接外围更加easy,并且开发上更有弹性(不须要内建外围)。眼下常见的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的写法来做清楚差别。