SDIO接口介绍SDIO卡接口技术SDIO卡能够延伸一个装置的功能。目前有许多种SDIO卡被开发出来,例如:数字相机、蓝芽、GPS、WLAN都有它们各自的SDIO卡。SDIO1.0标准定义了两种类型的SDIO卡:1.全速的SDIO卡,传输率可以超过100Mbps;2.低速的SDIO卡,支援的时脉速率在0至400KHz之间。SDIO卡只需要SPI和1-bit资料宽度的SD传输模式,4-bit模式是一个选项。低速的SDIO卡可以用最少的硬体支援低速的I/O装置,这些装置包含:数据机、条码扫描机、GPS接收机……等。如果这种记忆卡是一种「组合式(combo)」的卡片(记忆体加SDIO),就必须使用全速的模式和4-bit的传输模式,这是SDIO1.0标准规定的。附图九是两个4-bit模式的SDIO卡的线路连接图。图九:两个4-bit模式的SDIO卡的线路连接方式SDIO的信号传输模式有SPI、1-bit、4-bit三种。在SPI模式中,第8脚位被当成中断信号。其它脚位的功能和通信协定与SD记忆卡的标准规范一样。附表五是SDIO的每个脚位在不同信号模式下的定义。表五:SDIO的脚位定义SDIO内部的记忆体映射SDIO记忆卡内部具有固定的记忆体映射,这包含暂存器空间或称为「一般资讯区域(commoninformationarea;CIA)」,以及特殊功能区域(functionuniquearea)。CIA包含了与SDIO记忆卡有关的资讯,以及一些必要的(mandatory)和可选择的(optional)暂存器,它们都位于固定的位址上。藉此,SDIO的主机(譬如:可携式装置)能够得到SDIO记忆卡的有关资讯,并执行一般性的作业。特殊功能区域储存了许多种不同的功能,这是由供应商定义的,因此,不同厂牌的SDIO记忆卡可能会有不同的功能。附图十是具有许多种不同功能的SDIO记忆卡内部的固定记忆体映射空间。其中,RFU是「保留给未来使用(ReservedforFutureUse)」的意思。CIA所包含的暂存器可以开启或关闭I/O作业、处理硬件中断、载入韧体(这是选项)。这些暂存器也提供与SDIO记忆卡功能相关的资讯和要求。CIA支援下列3种暂存器:.一般控制暂存器(CardCommonControlRegister;CCCR):能快速检查SDIO主机,并依照不同的SDIO记忆卡之功能控制它们的启动和中断能力。即使在开机后,SDIO记忆卡的I/O功能尚未被启动,但是CCCR是可以被存取的,这使得SDIO主机于系统初始化后,可以立即启动SDIO记忆卡的I/O功能。.基本功能暂存器(FunctionBasicRegister;FBR):每一个I/O功能具有256bytes的记忆体空间,这使得SDIO主机能够快速地判定每一个I/O功能的能力和要求,并启动韧体下载功能。这个空间位址是从0x00n00至0x00nFF,n是功能编号(从0x1至0x7)。.记忆卡资讯结构(CardInformationStructure;CIS):CIS提供更完整的记忆卡功能的相关资讯。这是仿照PCMCIA标准所制定的规格。SDIO记忆卡的每一个功能都各有一个CIS区域,以及一个共用的CIS区域;共用的CIS区域储存了所有功能的共同特性,每一个功能的CIS区域则储存了该功能所具备的特性。CCCR和FBR各具有一个指标指向相对应的CIS位址。图十:SDIO记忆卡内部的固定记忆体映射空间此外,由于SDIO记忆卡的每一个功能可能需要包含额外的记忆体空间,用来储存驱动程式或应用程式。而且,因为SDIO记忆卡可能必须支援不同的平台,所以每一个驱动程式或应用程式可能会有许多种版本。解决的方法有两种:一种是使用SD的标准规范(如附图十一),来设计「组合卡」;另一种是使用嵌入式的「程式码储存区域(CodeStorageArea;CSA)」。图十一:SD的记忆体映射空间。SMC是「静态记忆体控制器(StaticMemoryController)」、BFC是「暴量传输的(burst)FLASH控制器(BurstFlashController)」。SD/MMC/SDIO概念区分概要SD(SecureDigital)与MMC(MultimediaCard)SD是一种flashmemorycard的标准,也就是一般常见的SD记忆卡,而MMC则是较早的一种记忆卡标准,目前已经被SD标准所取代。在维基百科上有相当详细的SD/MMC规格说明:[]。SDIO(SecureDigitalI/O)SDIO是目前我们比较关心的技术,SDIO故名思义,就是SD的I/O接口(interface)的意思,不过这样解释可能还有点抽像。更具体的说明,SD本来是记忆卡的标准,但是现在也可以把SD拿来插上一些外围接口使用,这样的技术便是SDIO。所以SDIO本身是一种相当单纯的技术,透过SD的I/O接脚来连接外部外围,并且透过SD上的I/O数据接位与这些外围传输数据,而且SD协会会员也推出很完整的SDIOstack驱动程序,使得SDIO外围(我们称为SDIO卡)的开发与应用变得相当热门。现在已经有非常多的手机或是手持装置都支持SDIO的功能(SD标准原本就是针对mobiledevice而制定),而且许多SDIO外围也都被开发出来,让手机外接外围更加容易,并且开发上更有弹性(不需要内建外围)。目前常见的SDIO外围(SDIO卡)有:Wi-Ficard(无线网络卡)CMOSsensorcard(照相模块)GPScardGSM/GPRSmodemcardBluetoothcardRadio/TVcard(很好玩)SDIO的应用将是未来嵌入式系统最重要的接口技术之一,并且也会取代目前GPIO式的SPI接口。SD/SDIO的传输模式SD传输模式有以下3种:SPImode(required)1-bitmode4-bitmodeSDIO同样也支持以上3种传输模式。依据SD标准,所有的SD(记忆卡)与SDIO(外围)都必须支持SPImode,因此SPImode是「required」。此外,早期的MMC卡(使用SPI传输)也能接到SD插糟(SDslot),并且使用SPImode或1-bitmode来读取。SD的MMCModeSD也能读取MMC内存,虽然MMC标准上提到,MMC内存不见得要支持SPImode(但是一定要支持1-bitmode),但是市面上能看到的MMC卡其实都有支持SPImode。因此,我们可以把SD设定成SPImode的传输方式来读取MMC记忆卡。SD的MMCMode就是用来读取MMC卡的一种传输模式。不过,SD的MMCMode虽然也是使用SPImode,但其物理特性仍是有差异的:MMC的SPImode最大传输速率为20Mbit/s;SD的SPImode最大传输速率为25Mbit/s。为避免混淆,有时也用SPI/MMCmode与SPI/SDmode的写法来做清楚区别。