(1) Wifi卡的常用接口有:
–CF 接口
–USB接口
–SDIO接口
–SPI接口
–PCMCIA接口
很多时候,同一个wifi卡同时支持多种接口,譬如marvell的8686的wifi卡,既支持spi接口,也支持sdio接口.
(2) SD卡与SDIO卡的异同
1.SD卡使用的是SD卡协议,而SDIO卡使用的是SDIO协议;协议不一样,初始化/读写方式都不一样
2.ARK1600控制器既支持SD卡也支持SDIO卡,在驱动上完全可以做到同一个卡槽既支持SD卡也支持SDIO卡,甚至combo卡,因此在驱动上有个判断过程,判断插进来的是SD卡还是SDIO卡
3.两者的引脚定义不一样,尽管引脚个数都一样
(3)
•SDIO协议
–相对于SD协议,SDIO协议特有的命令有:cmd5,cmd52,cmd53
–cmd5命令相当于SD卡协议中的acmd41,用于匹配SDIO卡的电压
–对于SDIO卡中的单个寄存器的读写一般都使用cmd52命令,而对于多字节数据的读写则用cmd53命令。
–cmd53分字节和块传输模式
对于字节传输模式相当于SD协议的单块读写(cmd17,cmd24)
对于块传输模式相当于SD协议的块读写(cmd18,cmd25)
(4)
•Cmd53
–对于字节传输模式,它可以是1~512之间的任意长度的传输,而不是固定长度
–对于块传输模式,首先它的块长度可以人为设定,但不能超过规定的最大块长度
–相对于SD卡中的块传输模式,在最后一个块传输末尾,是不需要发送块停止命令的(cmd12)
--每个SDIO卡都由1~7个function (optional)和一个memory function(mandatory)组成
•什么是function ?
–所谓function,就是一个I/O设备,它实质就是一些寄存器的集合
(5) SDIO卡里function的组织分布
•CIA就是function0,也就是memory function,它每个SDIO卡所必须具有的,它里面包含了如下一些重要信息:
–SDIO协议的版本号,BUS MOD,块大小等。这些信息有些是只读的,有些是可读可写的
•Function1~7是可选的,根据具体的应用的不同,所包含的function数目也不一样,譬如我门使用的marvell的8686芯片,它就只有function0和function1
(6)sdio 1~4bit mode
PIN SDIO 4-BIT MODE SDIO 1-BIT MODE
1 CD/DAT3 Data line 3 N/C Not used
2 CMD Command line CMD Command line
3 VSS1 Ground VSS1 Ground
4 VDD Supply voltage VDD Supply voltage
5 CLK Clock CLK Clock
6 VSS2 Ground VSS2 Ground
7 DAT[0] Data line 0 DATA Data line
8 DAT[1] Data line1 or INT line IRQ Interruption
9 DAT[2] Data line2 or read wait RW Read wait
1.SDIO mode 同样也有1bit和4bit 总线模式
2.SD与SDIO卡的引脚的一个最大的区别是:SDIO有个中断引脚DAT[1],在4bit模式下,DAT[1]既做数据线,又做中断线,因此是分时复用的,在总线发送命令期间,DAT[1]用作中断线。
(7)SD
PIN SD MODE
1 Name Type Description
2 CD/DATA3 I/O/PP Card detect/data line3
3 CMD Pp Command/response
4 Vss1 S Ground
5 VDD S Supply voltage
6 Vss2 S Ground
7 DAT0 I/O/PP Data line0
8 DAT1 I/O/PP Data line1
9 DAT2 I/O/PP Data line2
•当HOST同时连接多个卡时:
–时钟,电源,地线可以为每个卡公共
–但每个卡都有自己单独的数据和命令总线,避免干扰
–在卡的初始化过程中,命令是单独发到每个卡的,允许驱动来检测每个卡槽的卡是否存在,并且分配相应的逻辑地址给每个卡槽。
–HOST与每个卡槽的卡的数据传输都是单独进行的,因为每个卡槽都有自己的数据总线
–在卡的初始化完成后,命令可以同时发送到每个卡槽,因为此时命令中已经包含了卡的逻辑地址(在卡的分别初始化时分配的)
|