SDIO协议文档要点Word文档下载推荐.docx
《SDIO协议文档要点Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《SDIO协议文档要点Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。
5.4.2CID寄存器-5-
5.4.3RCA寄存器-6-
6新IO读写命令-6-
6.1IO_RW_DIRECTcommand(CMD52)-6-
6.2IO_RW_DIRECTResponse(R5)-6-
6.3IO_RW_EXTENDEDcommand(CMD53)-7-
6.3.1CMD53数据传输格式-7-
7SDIO内部操作-8-
7.1RegisterAccessTime-8-
7.2Interrupts-8-
7.3SDIOFixedInternelMap-8-
7.4CommonIOArea-9-
7.5CCCR(CardCommonControlRegister)-9-
7.6FBR(FunctionBasicRegisters)-13-
7.7CardInformationStructure(CIS)-14-
7.8MultipleFunctionSDIOCards-14-
7.9SettingBlockSizewithCMD53-15-
8EmbeddedI/OCodeStorageArea(CSA)-15-
1目的
本文描述的是基于SDIO标准协议1.0版本,主要描述协议中比较重要的细节信息。
对实际代码层,没有做详细的描述,对比较重要的寄存器配置会做详细的描述。
2备注
此文档参考内容是SDIO标准协议1.10,而实际用到的WIFI驱动是SDIO1.00协议。
所以与实际的可能有差别
3SDIOSignalingDefinition
3.1SDIOcardtypes
标准定义有两种类型的SDIO卡。
全速(full-speed)card支持SPI,1bitSD,和4bit传输模式,时钟范围在0到25MHZ。
这种卡传输数据速率达到100Mb/s以上。
第2种是low-speedSDIO卡。
这种卡仅需要支持SPI模式和1bitSD传输模式。
4bit传输模式是可选的。
另外。
低速模式的SDIO卡支持的时钟范围是0到400KHZ.这种卡趋向支持低速模式的设备,如modems。
GPS等
3.2SDIOcardmodes
有SPI模式,1bit模式,一位模式下只用到数据DATA[0],4bit模式
3.3SDIOHostModes
如果SDIOaware主机支持SD传输模式,建议采用1bit和4bit模式。
而SDIOhost端可能仅支持4位传输模式。
这是因为唯一的传输数据的路径,从一个低速CARD将通过命令单子节传输。
3.4信号引脚
3.5HostrequirementsforSDIO
为了主机支持所有的SDIO卡,一些信号引脚连接必须被支持。
为了支持中断,HOST应该有PIN8从card连接到host,以便支持中断信号,即使host只支持1bit模式和spi模式。
此外,如果host支持多张card在SD模式下,CMD和4根数据线不应该连接在一起,而是应该单独连接到host。
这使多种card类型用不同的接口而没有影响。
此外,有一些附加设计细节,设计host支持SDIO卡必须知道:
如果host支持4bitSD总线模式和中断(在4bit数据传输时间内);
host将控制值置换到数据线data3:
1.这些条件是:
A:
在多块数据写时
根据sd物理协议1.1,数据线data3:
1是描述为不x(任意值)在CRC状态期间.如果host激活驱动这些数据线在这个时期,也许会干扰从sdio卡来的中断信号。
为了防止这样的冲突,host支持中断在4bit传输模式下,在这期间不会驱动数据现data3:
1
B:
多块数据读时
根据SD标准协议1.1,DATA1被描述为"
P"
(上拉信号)在读数据包时。
为了在4bit传输模式支持中断,host将不驱动data1数据线在2个时钟中断周期。
4SDIOcard初始化
4.1IOCARD初始化的差异
SDIO标准要求:
是SDIOcard插入时不会导致host探测失败。
为了防止操作IO功能在非IO识别host端,改变SD卡的识别模式流程是必要的。
一个新的命令(IO_SEND_OP_COND,CMD5)被添加代替ACMD41初始化SDIO。
复位和上电以后,所有的IO功能被关闭,并且IO端口不能操作,除非CMD5或CMD0且CS=0。
如果SD内存安装到CARD中,内存应正常响应所有正常强制性内存命令。
所有的IO功能CARD不相应ACMD41,因而最初作为MMC卡,IO卡不相应CMD1用作初始化MMC卡并且表现非相应card。
主机放弃并且禁用这种卡。
因此,no-awarehost没有收到回应的I/O卡,只能强制到无效状态。
所有的SDIOhost发送CMD5前发送CMD55/ACMD41,并且将收到有效的OCR,在R4相应CMD5并且继续初始化卡,在数据手册中描述了SD模式和SPI模式的时序图。
如果IO端口CARD收到的不是CMD5命令,IO选择保留非激活状态并且不相应一些命令。
COMBO卡维持在内存模式。
如果内存没有被安装在card上,card将不相应内存命令。
这种符合条件无论在那里用户用一些IO功能如:
以太网下载音乐文件到card的内存。
这种card移出和插入是非SDIOaware-host。
HOST将不使能IO功能,因此作为内存CARD。
如果HOST主机识别IO,它将发CMD5到card并且card将响应R4。
HOST读R4值和知道可用IO功能数量和SD内存是否存在。
初始化IO端口CARD后,读取CIA(CommonInformationArea)。
这样做是发送读命令。
首先是字节地址。
CIA包含CCCR(CardCommonControlRegisters)和FBR(FunctionBasicRegisters)。
也包含指向CIS和每一个独立的CIS结构。
CIS包含电源,功能,制造商和其他。
HOST需要确定是否IO空能是否需要适当的上电。
如果HOST确定card需要激活,寄存器CCCR使能CARD和每一个功能。
在这种条件下,所有IOCARD的功能充分使用。
除此之外,HOST能控制电源功耗和关闭和使能中断。
这些访问通过IO,而不是内存接口访问。
SDIO识别HOST将发送CMD5arg=0作为初始化时序的部分
4.2TheIO_SEND_OP_CONDCommand(CMD5)
CMD5对SDIO卡的操作类似于ACMD41对内存卡的操作。
这个被用来IOcard表述电压范围.正常的响应CMD5是R4(SD模式和SPI模式)
S
D
CommandIndex
Stuffbits
IOOCR
CRC7
E
开始位
数据方向
命令索引
没有使用
操作控制寄存器
CRC值
结束位
1bit
6bit
8bit
24bit
7bit
总共的数据位数是48位
S:
开始位,始终为0;
D:
数据方向,总是1表示从HOST到CARD传输
CommandIndex:
表示CMD5命令索引值000101b
StuffBits:
notused
I/OOCR:
操作控制寄存器。
支持的最小和最大电压值。
CRC7:
7BITSCRC数据
E:
结束位,总是1
IOOCRBIT
VDD电压等级值
0-3
保留
4
5
6
7
8
2.0-2.1
9
2.1-2.2
10
2.2-2.3
11
2.3-2.4
12
2.4-2.5
13
2.5-2.6
14
2.6-2.7
15
2.7-2.8
16
2.8-2.9
17
2.9-3.0
18
3.0-3.1
19
3.1-3.2
20
3.2-3.3
21
3.3-3.4
22
3.4-3.5
23
3.5-3.6
4.3TheIO_SEND_OP_CONDResponse(R4)
SDIOcard接收到CMD5后将相应SDIO要求的时序,R4。
R4包含SD模式和SPI模式
Reserved
C
MemoryPresen
NumberOfI/Ofunction
Stuff
I/OOCR
3bit
上图为SD模式
开始位,0
D:
数据方向位,总是0,从card到HOST
Reserverd:
设置1
C:
初始化后如果CARD准备操作设置为1
IOOCR:
支持的最小和最大电压值
MemoryPresent:
如果卡包含SD内存设置为1,设置为0仅IOCARD支持
NumberofI/OFunctions:
表明CARD支持的IO功能数量,范围是0-7。
IO功能将实现时序在公功能
一旦SDIOCARD收到CMD5,卡的IO端口使能响应的所有的命令。
这些IO功能使能保留直到复位,重新上电和CMD52写入到SDIOCARD重新复位IO和内存
当主机重新初始化IO和内存控制器时,建议执行power复位或发送复位命令到控制器。
如果选择复位命令,将发送CMD52。
5DifferenceswithSDMemorySpecification(与SD内存标准的差异)
5.1SDIO命令清单
SDMemoryCommandSDIOCommand
CMD0CMD52CMD0是复位命令,为了复位SDIO,用CMD52写1到RES位
CMD12CMD52停止块数据传输CMD,写CCCR寄存器中的相应位
CMD16CMD52设置块长度,对SD内存,用CMD5写块长度到FBR寄存器
CMD2NONECID寄存器不存在SDIOCARD中
CMD4NONEDSR寄存器不存在SDIOCARD中
CMD9NONECSD寄存器不存在SDIOCARD中