admin 管理员组文章数量: 887021
2023年12月17日发(作者:四季的html网页怎么做)
SDIO1.00协议简介
目录
目的
本文描述的是基于SDIO标准协议1.0版本,主要描述协议中比较重要的细节信息。对实际代码层,没有做详细的描述,对比较重要的寄存器配置会做详细的描述。
备注
此文档参考内容是SDIO标准协议1.10,而实际用到的WIFI驱动是SDIO1.00协议。所以与实际的可能有差别
SDIOSignaling Definition SDIOcard types
标准定义有两种类型的SDIO卡。全速(full-speed)card支持SPI,1bitSD,和4bit传输模式,时钟范围在0到25MHZ。这种卡传输数据速率达到100Mb/s以上。第2种是low-speedSDIO卡。这种卡仅需要支持SPI模式和1bitSD传输模式。4bit传输模式是可选的。另外。低速模式的SDIO卡支持的时钟范围是0到400KHZ.这种卡趋向支持低速模式的设备,如modems。GPS等
SDIOcard modes
有SPI模式,1bit模式,一位模式下只用到数据DATA[0],4bit模式
SDIOHost Modes
如果SDIOaware主机支持SD传输模式,建议采用1bit和4bit模式。而SDIOhost端可能仅支持4位传输模式。这是因为唯一的传输数据的路径,从一个低速CARD将通过命令单子节传输。
信号引脚
Hostrequirements for SDIO
为了主机支持所有的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个时钟中断周期。
SDIOcard初始化 IOCARD初始化的差异
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(CommonInformation Area)。这样做是发送读命令。首先是字节地址。CIA包含CCCR(CardCommon Control Registers )和FBR(FunctionBasicRegisters)。也包含指向CIS和每一个独立的CIS结构。CIS包含电源,功能,制造商和其他。HOST需要确定是否IO空能是否需要适当的上电。如果HOST确定card需要激活,寄存器CCCR使能CARD和每一个功能。在这种条件下,所有IOCARD的功能充分使用。除此之外,HOST能控制电源功耗和关闭和使能中断。这些访问通过IO,而不是内存接口访问。
SDIO识别HOST将发送CMD5arg=0作为初始化时序的部分
TheIO_SEND_OP_COND Command (CMD5)
CMD5对SDIO卡的操作类似于ACMD41对内存卡的操作。这个被用来IOcard表述电压范围.正常的响应CMD5是R4(SD模式和SPI模式)
S
D
Command Index
Stuff bits
IO OCR
CRC7
E
开始位
数据方向
命令索引
没有使用
操作控制寄存器
CRC值
结束位
1bit
1bit
6bit
8bit
24bit
7bit
1bit
总共的数据位数是48位
S:开始位,始终为0;
D:数据方向,总是1表示从HOST到CARD传输
CommandIndex: 表示CMD5命令索引值000101b
StuffBits:not used
I/OOCR:操作控制寄存器。支持的最小和最大电压值。
CRC7:7BITSCRC数据
E:结束位,总是1
IO OCR BIT
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
TheIO_SEND_OP_COND Response (R4)
SDIOcard接收到CMD5后将相应SDIO要求的时序,R4。R4包含SD模式和SPI模式
S
D
Reserved
C
Memory Presen
Number Of I/O function
Stuff
I/O OCR
Reserved
E
1bit
1bit
6bit
1bit
3bit
1bit
3bit
24bit
7bit
1bit
上图为SD模式
S:开始位,0
D:数据方向位,总是0,从card到HOST
Reserverd:设置1
C:初始化后如果CARD准备操作设置为1
IOOCR:操作控制寄存器。支持的最小和最大电压值
MemoryPresent:如果卡包含SD内存设置为1,设置为0仅IOCARD支持
Numberof I/O Functions:表明CARD支持的IO功能数量,范围是0-7。IO功能将实现时序在公功能
一旦SDIOCARD 收到CMD5,卡的IO端口使能响应的所有的命令。这些IO功能使能保留直到复位,重新上电和CMD52写入到SDIOCARD
重新复位IO和内存
当主机重现初始化IO和内存控制器时,建议执行power复位或发送复位命令到控制器。如果选择复位命令,将发送CMD52。
Differenceswith SD Memory Specification(与SD内存标准的差异) SDIO命令清单
SDMemory Command SDIO Command
CMD0 CMD52 CMD0是复位命令,为了复位SDIO,用CMD52写1到RES位
CMD12 CMD52 停止块数据传输CMD,写CCCR寄存器中的相应位
CMD16 CMD52 设置块长度,对SD内存,用CMD5写块长度到FBR寄存器
CMD2 NONE CID寄存器不存在SDIOCARD中
CMD4 NONE DSR寄存器不存在SDIOCARD中
CMD9 NONE CSD寄存器不存在SDIOCARD中
CMD10 NONE CID寄存器不存在SDIOCARD中
CMD13 NONE SDIO不支持
ACMD6 CMD52 设置总线宽度,通过些CCCR寄存器
ACMD13 NONE SDIO中不支持
ACMD41 CMD5 SDIO卡和HOST用IO_SEND_OP_COND_COMMAND(CMD5)
ACMD42 CMD52 在SD模式,上拉电阻在DAT[3]被控制通过写CDDisable
ACMD51 ONE 不支持
CMD17 CMD53 IO 块操作用CMD53,而不是内存块操作
如果是IO功能的卡被激活,仅些CCCR被要求改变的位模式就可以了。如果仅内存激活,通过ACMD6改变总线宽度。如果两者都有,则激活两者需要两个命令
CardDetect Resistor
SD内存和IO卡用上来电阻DAT[3]来检测CARD插入,在SD内存和SDIO使能这个电阻不同。SD用ACMD42命令控制,而SDIO用CMD52控制CCCR。
数据传输停止
HOST与SD卡用CMD12停止数据读写从卡。而SDIO卡,写CCCR寄存器的ASxbit停止。
SDIO传输块数据大小是1个字节到2048个字节。
Changesto SD Memory Fixed Registers OCR寄存器
所有的SD卡至少有一个OCR寄存器。如果卡是combo卡,它也许有两个OCR寄存器(一个内存一个IO),内存部分的combo卡有一个OCR通过用ACMD41和CMD58访问。IO端口的卡有一个OCR用同样的结构访问通过CMD5。如过有多OCR的电压范围也许不被定义。每一个功能电压对每一个IO功能能被读,通过卡的CIS
CID寄存器
对于SDIO操作在SPI模式下,返回的数据是无效的命令。CSD寄存器SDIO不支持
RCA寄存器
所有的所有的功能和一些内存将共享同样的card地址DSR寄存器和SCR寄存器在SDIO中不支持
新IO读写命令IO_RW_DIRECTcommand(CMD52)
这个命令最简单的意思是访问128K寄存器空间的单个寄存器,包括通用IO区域。通常被用在初始化寄存器和管理状态寄存器的值。
命令时序
S
D
Command Index
R/W flag
FuntionNumbe
RAW flag
stuff
寄存器地址uff
Write Data or Stuff bits
CRC7
E
1bit
1bit
6bit
1bit
3bit
1bit
1bit
17bit
8bit
7bit
1bit
S:开始位,总是0
D:数据传输方向,总是1表示传输HOST到CARD
CommandIndex:命令的索引值110100B
R/Wfalg:这位确定IO操作的方向。如果这位是0,表述从SDIOCARD读取数据。数据类型返回到R5,如果这位设置为1,写字节。
RAWFlag:读然后写。如果这位被设置1并且R/Wflag为1,然后命令读值,然后写入寄存器中。
FunctionFlag:The number of the function within the I/O card you wish to reador write. Note that
function0 selects the common I/O area (CIA)
IO_RW_DIRECTResponse(R5)
命令回应的格式有两种,一种是SD模式,一种是SPI模式,对于SD模式,数据位数是48bit,而spi模式则只有16位,此图只是给出了SD模式下的数据时序
S
D
Command Index
Stuff
Response Flags Bit
Read or Write DATA
CRC7
E
1bit
1bit
6bit
16t
8bit
8bit
7bit
1bit
S:开始位。总是0
D:数据方向,0指示从CARD传输到HOST
CommandIndex命令值
Stuffbits:保留
ResponseFlags:八位标志位知名SDIO卡的状态
bit7:COM_CRC_ERROR CRC检测错误标志 0没有错,1有错
bit6:ILLEGAL_COMMAND命令不合法状态 0no error,1error
bit5-4:IO_CURRENT_STATE00=DIS,01=CMD,数据线free02=TRN.选择数据先传输03=RFU,
bit3:error
bit2:RFU
bit1:FUNCTION_NUMBER功能号是非法
bit0:OUT_OF_RANGE
CMD53:33page
Reador Write 数据:
CRC7:
E:结束
IO_RW_EXTENDEDcommand(CMD53)
为了读写多个IO寄存器用单个命令,IO_RW_EXTENDED被定义。这个命令允许单个命令读或写多数IO寄存器,因为这个是数据传输命令,它提供高速的传输速率。
S
D
Command Index
R/W flag
FUNTION Number
Block Mode
OP Code
Register address
Byte/block count
CRC7
E
1bit
1bit
6bit
FunctionNumber:IO CARD希望读到的功能号,标记0X00选择通用IO区域CIA
BlockMode:如果这位设置为1,表示读写操作将一块传输,而不是字节传输。如果这位被设置,字节和块数量值包含在读取和写入的块数量。
OPcode:0多字节读写固定的地址;1多字节读写增加的地址
OPCode=0被用作读或者些多个字节发送和接受单个IO寄存器地址。这个命令被用作IO数据传输用FIFO。在这种情况下,多字节数据是传输单个字节地址寄存器。
OPCode=1是被用作多块数据发送或着到IO寄存器地址。一次传输完成后,下次操作将发生在address+1,直到操作完成。
RegisterAddress:始地址IO寄存器读写。范围是[0x1ffff:0]
Byte/BlockCount如果命令操作是字节,这个区域包含读写字节的数量0x000对应512字节0x001=1字节,一次增加一个字节。
CMD53数据传输格式
当执行IO_RW_EXTENED(CMD53),多字节或多块数据传输类似数据传输到内存。多字节传输模式对应一下应用:
IO_RW_EXTENED字节读类似CMD17(READ_SINGLE_BLOCK)
IO_RW_EXTENED字节写类似CMD24(WRITE_BLOCK)
IO_RW_EXTENDED 块读类似CMD18(READ_MULTIPLE_BLOCK)
IO_RW_EXTENDED 块写类似CMD25(WRITE_MULTIPLE_BLOCK)
SDIOcard内部操作
每个SDIO卡有1到7个功能加上一个内置的内存功能。一个功能是被包含IO设备。IO功能是相同的或者完全不同的。所有的IO功能是被组织作为一个联合的寄存器。每个IO功能还一个最到的寄存器。这些寄存器和他们的单独位也许是只读的,只写或者读写。这些寄存器能被8,16,32bit访问所有的地址是基于字节地址访问。单一的读/写访问往往是用来初始化的I/ O功能或改为单一状态或数据值。
SDIO内部操作RegisterAccess Time
所有的寄存器在SDIOcard中读写数据的传输少于1秒。此超时只涉及到到数据在DATA[X]LINE上传输的时间,而不包括命令相应。等待时间是通知HOST,card用写忙或者延时开始位来响应一个读操作。
如果需要支持访问大于1秒的时间操作,必须定义其他方法,在协议中不定义这种方法
Interrupts
所有的SDIOHOST应该支持硬件中断,如果HOST不支持硬件中断,很难与SDIOcard一起工作,除非快速相应中断。中断用在SDIO功能通常被称作“levelsensitive”.levelsensitive意思是一些功能在任意时间发送一个中断信号。一旦功能发送了一个中断,将不会释放中断,直到中断被删除或者命令通知等(HOST端)。因为只有一个中断线,它被中断源共享。功能将继续发送中断信号直到HOST相应和清除中断。因为多个中断也许被立即激活,要求HOST确定中断源和处理需要的中断。在SDIO功能中被用作两BITS来完成,每个功能也许产生一个中断有功能使能位。在SDIOcard中有一个管理中断使能的来控制所有的功能。中断信号将被发送到SDbus,如果功能使能和card管理使能被设置。中断挂起,是只读的。这些位都在CCCR中。
SDIOFixedInternel Map
SDIO卡有一个固定的内部寄存器空间和功能独特的区域。固定区域包含卡信息和某些强制性和选择性寄存器。在固定区域允许任何主机获取卡的信息,并进行简单的操作。功能独特的领域是每个功能区,是指应用规范标准的SDIO职能或由供应商非标准功能。下图显示了内部机构图:
CommonIO Area
CIA访问是HOST通过IO读写FUNCTION0,CIA寄存器提供使能和关闭所有IO功能的操作,控制中断发生和可选的软件加载支持IO功能。CCCR,FBR,CIS支持单独的结构
CCCR(CardCommon Control Register)
CCCR允许host控制和检测IOcard使能和中断,CCCR中的BIT位是混合读和写和只读的状态位。如果7个功能在SDIO中一些不提供,未用到的功能位响应时只读的,并且返回是0.所
有保留(RFU)的位是只读状态并且返回0值。访问CCCR寄存器是可能的在初始化以后而此时IO功能是禁用的。
adress
Register name
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
0x00
CCCR/SDIO Revision
SDIO Bit3
SDIO Bit2
SDIO
Bit1
SDIO
Bit0
CCCR
Bit3
CCCR
Bit2
CCCR
Bit1
CCCR
Bit0
0x01
SD Revision
RFU
RFU
RFU
RFU
SDBit3
SDBit2
SDbit1
SDBit0
0x02
IO enable
IOE7
IOE6
IOE5
IOE4
IOE3
IOE2
IOE1
RFU
0x03
IO Ready
IOR7
IOR6
IOR5
IOR4
IOR3
IOR2
IOR1
RFU
0x04
IntEable
IEN7
IEN6
IEN5
IEN4
IEN3
IEN2
IEN1
RFU
0x05
Int Pending
INT7
INT6
INT5
INT4
INT3
INT2
INT1
RFU
0x06
I/O abort
RFU
RFU
RFU
RFU
RES
AS2
AS1
AS0
0x07
Bus Interface Control
CD disable
SCSI
ECSI
RFU
RFU
RFU
Bus width1
Bus width
0x08
Card Capability
4BLS
LSC
E4MI
S4MI
SBS
SRW
SMB
SDC
0x09-0x0B
Common CIS Pointer
指向卡的通用卡信息结构CIS
0x0c
Bus suspend
RFU
RFU
RFU
RFU
RFU
RFU
BR
BS
0x0D
Function Select
DF
RFU
RFU
RFU
FS3
FS2
FS1
FS0
0x0E
Exec Flags
EX7
EX6
EX5
EX4
EX3
EX2
EX1
EXM
0x0F
Ready Flags
RF7
RF6
RF5
RF4
RF3
RF2
RF1
RFM
0x10-0x11
FN0 Block
Size
功能0的IO块大小
0x12
Power Control
RFU
RFU
RFU
RFU
RFU
RFU
EMPC
SMPC
0x13-0xEF
RFU
0XF0-0xFF
保留给厂商
Field
Type
解释
CCCRx
RO
CCCR格式的版本号,这4位包含card支持的CCCR和FBR格式,CCCR或FBR的改变将引起新版本号的分配。
0x00=CCCR/FBR Version1.00
0x01=CCCR/FBR Version1.00
0x02-0x0F 保留
SDIOx
RO
SDIO标准协议版本号
0x00=SDIO 标准协议1.00
0x01=SDIO标准协议1.10
0x02-0x0F 保留
SDx
RO
SD协议版本号
0x00=SD Version1.00
0x01=SD Version1.10
0x02-0x0F 保留
IOEx
RW
使能功能,如果这位为0,功能禁止,这位为1,功能被使,并开始初始化。通过IORx可以获得初始化状态。上电或复位此位为可以使用IOEx作为每一个功能的复位的错误恢复。HOST端数据序列是复位每一个功能是复位IOEx,等IORx变成0并且再次设置IOEx。如果错误没有发生,SDIO复位将生命也不做。操作的所用功能都被禁止。
IORx
RO
IO Fuction Ready如果这位复位为0,功能没有准备好被操作。如果这位为1,功能可以操作。对于一些儿功能在SDIO中不被实现,将总是被设置为0.功能将设置这位为1在超时时间值内,超时时间定义在TPLFE_ENABLE_TIMEOUT_VAL元组中
IENx
RW
功能的中断使能,如果这位被清零,功能的中断信号将不会被发送到HOST端,如果这位位1,中断信号将发送到HOST同时master中断使能也必须置1
IENM
RW
中断使能master。如果这位为0,中断信号不会从card发送到HOST,为1,功能的中断信号会发送到HOST
INTx
RO
功能的中断挂起。如果这位为0表明没有中断挂起,为1有中断挂起,如果IENx和IENM位没有设置,HOST将不能收到挂起中断
ASx
WO
终止选择(Abort Select),终止IO读写操作,并且释放SD总线。这3位定义功能传输停止。如:停止功能好3的数据传输,通过CMD52命令写0X03到ASx。
RES
WO
IO Card Reset设置这位为1将引起IO功能在SDIO card中执行软复位,但并不影响当前card协议选择。通过CMD52设置此为,此位自动清除,因此没有必要重写置0。读此位将收到不确定的数据值
Bus Width1:0
RW
定义数据传输总线宽度,所有全速SDIO card支持1位和4位,但是低速可选择4位数据传输。复位或上电,此位清0
CD disable
R/W
连接10到90K上拉电阻到数据线DATA[3],上拉被用于card检测。这个位必须清零在上电时
SCSI
RO
支持连续的SPI中断(Support Continuous SPI interrupt)。对现有的wifi芯片,不用理会
ECSI
RW
使能SPI中断Enable Continuous SPI Interrupt.
SDC
RO
Card Supports Direct Commands卡支持直接命令。这位仅应用在SD模式,对于SPI模式不适用。这个标志位指示SDIO卡的能力在执行CMD52同时数据传输正在进行。
SMB
RO
卡支持多块传输。这位仅使用在SD模式,不适用SPI模式。这位报告SDIO卡的功能。命令相关时CMD53
SRW
RO
卡支持读等待。这位指示SDIO卡支持读等待操作。
SBS
RO
Card supports Suspend/Resume.这位用在SD模式,对SPI模式不适用。
S4MI
RO
Supports interrupt between blocks of data in 4-bit SD mode
支持中断的数据块中的4位的SD模式。此标志位报告
SDIO卡的能力,产生中断时, 4位多块数据传输。如果
此位是0 ,则SDIO卡无法信号中断在多块
数据传输中的4位模式。在这种情况下,并不意味着中断之后才
数据传输完成。如果此位是1 ,那么SDIO卡是一种能信号
中断模块之间的数据传输,同时正在取得进展
E4MI
RW
Enable interrupt between blocks of data in 4-bit SD mode
如果这位为0在SD模式的多块数据传输时,SD 卡将不会信号中断
,为1将信号中断。
LSC
RO
Card is a Low-Speed card.为0指示卡是高速模式,为1是低速模式
4BLS
RO
4-bit support for Low-Speed cards,如果卡支持4位传输模式,并且是在低速模式,此位为1否者是0
Pointer to
card’s
common CIS
RO
This 3-byte pointer points to the start of the card’s common CIS.
指向CIS,CIS包含整个卡的信息,
BS
RO
总线状态:
Bus Release Request/Status
RW
Bus Release Request/Status:对实际的wifi芯片没有用到
FSx
RW
功能选择位0:3bit,有两种方式设置这个值,一个是通过CCCR寄存器,一个是通过新的IO命令写IO功能号
0000=CIA功能号0
0001-0111功能号1到7
1000 Transaction of memory in combo card
其他保留。如果SBS设置为0,表示为只读状态
DF
RO
Resume Data Flag:如果这位为0,表示没有没有数据传输,如果这位为1,有更多的数据传输在功能或者内存唤醒后。
EXx
RO
执行标志7:0,这些位被HOST来确定当前功能1到7和内存的执行状态。该位为1,每一个功能和内存正在执行命令。只有在SBS=1,这些位才定义,SBS=0,这些位同样也必须是0
RFx
RO
Ready Flag bits 7:0,这些位通知HOST读写忙状态。当功能和内存正在执行写,此标志位被清0,表示此时功能和内存忙,不能接受更多的数据。
FN0 Block Size
RW
这个16位寄存器设置功能0 IO操作块大小,如果card不支持IO块操作(SMB=0),这个寄存器只读,并且总是0.最大的块大小是2048.最小1块
SMPC
RO
Support Master Power Control这个标志位告诉HOST card支持功耗控制。
SMPC=0:当前电流小于200MA,SMPC=1大于200MA
EMPC
RW
Enable Master Power Control
RFU
RO
保留
Reserved
for Vendors
R/W
这里由厂商定义或扩充
FBR(FunctionBasic Registers)
除了CCCR,每个支持的I/ O功能有一个256字节区域使用,让主机能够迅速
判断每个功能(FUNCTION)的能力和要求,使能每个功能(FUNCTION)电源选择,并
使软件载入中。的地址,这寻址是从0x00n00以0x00nFF其中n是功能数量
(0x1到0x7)。这每功能区的结构如下
Address
7
6
5
4
3
2
1
0
0x100
Function1
CSA enable
Function1
Supports
CSA
RFU
RFU
Function 1 Standard SDIO Function
interface code
同3
同3
同3
0x101
Function 1 Extended standard SDIO Function interface code
0x102
RFU
RFU
RFU
RFU
RFU
RFU
EPS
SPS
0X103-0x108
RFU
0x109-0x10B
Pointer to Function 1 Card Information Structure (CIS)
0x10C-0x10E
Pointer to Function 1 Code Storage Area (CSA)
0x10F
Data access window to Function 1 Code Storage Area (CSA)
0x110-0x111
I/O block size for Function 1
0x112-0x1FF
Reserved for Future Use
0x200-0x7FF
Function 2 to 7 Function Basic Information Registers (FBR)
0x800-0xFFF
RFU
状态位描述
Field
Type
描述和解释
SDIO Standard
Function interface code
RO
这位指示SDIO标准功能接口的功能。不同的数据值代表不同的标准接口
0x0:非SDIO标准接口支持
0x1:这个功能支持SDIO标准的UART
0x2:这个功能支持SDIO type-a的蓝牙标准
0x3:这个功能支持SDIO type-b的蓝牙标准
0x4:这个功能支持SDIO GPS接口标准
0x5:这个功能支持SDIO 摄像头接口标准
0x6:这个功能支持SDIO PHS 标准接口
0x7:这个功能支持SDIO WLAN接口
0x8-0x0E:保留
0xF:这个功能支持SDIO标准接口号大于0Xe.
Function
Supports
CSA
RO
如果Function 支持和包含CSA(Code Storage Area).这位被置1.如果Function不支持CSA,这位将清零。CSA使能被7位寄存器0xn00控制
Function
CSA
Enable
RW
此位置1,读写CSA允许,否则不能读写。如果function不支持CSA,这位为只读状态
Extended
SDIO
Standard
Function
interface
code
RO
扩展的SDIO标准接口。如果SDIO标准功能接口大于0xE,这个字节应该包含编码和标准编码应该包含 0xF值。如果标准编码小于0xF,这个字节是0x00
SPS(Support
Power
Selection)
RO
SPS=0:表示没有功耗选择。EPS为0
SPS=1:指示FUNCTION 有两种功耗模式通过选择EPS
EPS
(Enable
Power
Selection
EPS
EPS=0:功能操作在高电流模式
最大的电流值是在TPLFE_HP_MAX_PWR_3.3V
EPS=1:FUNCTION 工作在低功耗模式
最大电流值在TPLFE_LP_MAX_PWR_3.3V
Address
pointer to
Function
CIS
RO
这3个字节组成24位的指针指向CIS的开始位置与每一个FUNCTION融合在一起。SDIO卡中的每一个FUNCTION是强制CIS的。指针存储是小端模式。如果FUNCTION不支持,寄存器指针指向元组的最后。
Address
pointer to
Function
CSA
RW
3个字节组成24位指针,指向读写的CSA字节,任何读写CSA的操作通过window 寄存器。指针将自动增加1.如果FUNCTION不支持CSA,24bit读时将总是返回0x000000.指针存储时小端模式
Data
access
window to
CSA
RW
当CSA使能,任何读写这个地址必须通过CSA寻址指针。如果不支持CSA,这8位将是只读状态返回 0x00。
Function
1-7 I/O
Block Size
RW
这16位寄存器设置IO块操作的块大小。如果这个卡不支持IO块操作(SMB=0)这个寄存器就变成只读,并总是返回0x0000。最大的块大小是2048,最小的是1
CardInformationStructure(CIS)
CIS提供更多的完整的信息和独立的FUNCTION。设计标准基于PCcard16的设计标准。所有的卡,支持的IO操作的都有一个CIS,并且每一个FUNCTION有一个CIS。访问CIS通过读固定的地址区域(0x0001000-0x017FFF).这个地址区域作为通用的CIS,也可以被用作每个FUNCTION的存储区域。对地址0X018000-0X01FFF是保留的。
MultipleFunction SDIO Cards
多功能SDIOcard对每个功能都有一个单独的功能配置寄存器。多重功能的SDIO卡应该结合使用CIS的所有功能。
备注:此描述不够完整,对于WIFI也不用作过多的关注
SettingBlock Size with CMD53
对多功能块传输,HOST设置块大小通过些16BIT功能IO块大小寄存器(FBR中)HOST不会写这个寄存器用CMD53设置BLOCKMODE时。如果card检测到非法的块大小在执行CMD53设置blockmode时,这将知识OUT——OF——RANGE错误在当前相应中并且不会数据传输。也将停止中断
EmbeddedI/O Code Storage Area (CSA)
为了支持“即插即用”为SDIO卡,卡可能需要含有内存块来存储驱动器或应用程序。此外,因为同样的的SDIO卡可用于多种不同的主机平台,有几个不同版本的代码,可能需要需要不同的版本的代码来对应相应的每个功能。一种选择是,这些程序存储在一个标准的SD记忆部分的combo卡。另外,一个标准的途径,以加载代码包含在可选的代码存储区(CSA。CSA是一个独立的16MB内存领域。访问时通过CSA地址指针和CSAwindow寄存器(包含在FBR)。
注意:每一个FUNCTION也许包含独立的CSA支持它。CSA数据可读写或者只读的。因为实际WIFI用的SDIO标准协议的1.00,而此文档根据的内容是1.10,所以在描述上有出入。
版权声明:本文标题:SDIO1.00协议简介 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702802811h431482.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论