wifi SDIO driver
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SDIO 1-BIT MODE N/C Not used Command line Ground Supply voltage Clock Ground Data line Interruption Read wait
2
3 4 5 6 7 8 9
CMD
VSS1 VDD CLK VSS2 DATA IRQ RW
• SD卡与SDIO卡的检测判别
– 上电,发送CMD5命令,如果有响应,并且响 应中的MP位为0,说明对应卡槽中的卡为SDIO 卡,进而开始SDIO卡的初始化流程 – 如果发送CMD5命令没有响应,则说明对应卡 槽的卡为SD或MMC卡,进而开始SD/MMC卡 的初始化流程 – 如果发送CMD5命令,有响应,且响应中的MP 位为1,说明这个卡不但是SDIO卡,同时也时 SD卡,也就是所谓的combo卡,则进行combo 卡的初始化流程
• Linux下已经支持了市面上的大多数wifi卡的 驱动 • 每种wifi卡都是需要固件(firmware)才能 驱动的,并且同一种卡工作在不同接口时对 应的firmware是不一样的 • 需要注意的是:很多firmware都是要花钱的 • 固件通过其驱动下载到无线卡中,才能驱动 起来
• 上图是wifi驱动的通用的软件架构 • 分为两部分,上面为主机端驱动,下面是我 们之前所说的firmware • 其中固件部分的主要工作是:因为天线接受 和发送回来的都是802.11帧的帧,而主机接 受和传送出来的数据都必须是802.3的帧, 所以必须由firmware来负责802.3的帧和 802.11帧之间的转换, • 当天线收到数据,并被firmware处理好后会 放在一个buffer里,并产生一个中断,主机 在收到中断后就去读这个buffer。
– SDIO协议的版本号,BUS MOD,块大小等。这 些信息有些是只读的,有些是可读可写的
• Function1~7是可选的,根据具体的应用的 不同,所包含的function数目也不一样,譬 如我门使用的marvell的8686芯片,它就只 有function0和function1
PIN 1
SDIO 4-BIT MODE CD/DAT3 Data line 3 Command CMD line VSS1 Ground Supply VDD voltage CLK Clock VSS2 Ground DAT[0] Data line 0 Data line1 DAT[1] or INT line Data line2 DAT[2] or read wait
• SDIO协议
– 相对于SD协议,SDIO协议特有的命令 有:cmd5,cmd52,cmd53 – cmd5命令相当于SD卡协议中的acmd41,用于匹 配SDIO卡的电压 – 对于SDIO卡中的单个寄存器的读写一般都使用 cmd52命令,而对于多字节数据的读写则用 cmd53命令。 – cmd53分字节和块传输模式
1. SD卡使用的是SD卡协议,而SDIO卡使用的 是SDIO协议;协议不一样,初始化/读写方式 都不一样 2. ARK1600控制器既支持SD卡也支持SDIO卡, 在驱动上完全可以做到同一个卡槽既支持SD 卡也支持SDIO卡,甚至combo卡,因此在驱动 上有个判断过程,判断插进来的是SD卡还是 SDIO卡 3. 两者的引脚定义不一样,尽管引脚个数都一样
1. SDIO mode 同样也有1bit和4bit 总线模式 2. SD与SDIO卡的引脚的一个最大的区别是: SDIO有个中断引脚DAT[1],在4bit模式下, DAT[1]既做数据线,又做中断线,因此是 分时复用的,在总线发送命令期间, DAT[1]用作中断线。
PIN 1 Name
SD MODE Type Description Card detect/data line3 Command/resp onse Ground Supply voltage Ground Data line0 Data line1
• 目前linux下,已支持的wifi卡有如下厂家的 卡:
– Marvell 8385 and Marvell 8686 – Intersil公司 Prism54 chips series – Intel IWL4965 and IWL3945 – Atheros corporation 5xxx chipset – Broadcom(博通)43xx – Ralink(雷凌)RT2x00
Thanks your attention!
• 每个SDIO卡都由1~7个function (optional) 和一个memory function(mandatory)组 成
• 什么是function
– 所谓function,就是一个I/O设备,它实质就是 一些寄存器的集合
• SDIO卡里function的组织分布
• CIA就是function0,也就是memory function, 它每个SDIO卡所必须具有的,它里面包含 了如下一些重要信息:
2
3 4 5 6 7 8
CD/DATA3
CMD Vss1 VDD Vss2 DAT0 DAT1
I/O/PP
Pp S S S I/O/PP I/O/PP
9
DAT2
I/O/PP
Data line2
• 当HOST同时连接多个卡时:
– 时钟,电源,地线可以为每个卡公共 – 但每个卡都有自己单独的数据和命令总线,避 免干扰 – 在卡的初始化过程中,命令是单独发到每个卡 的,允许驱动来检测每个卡槽的卡是否存在, 并且分配相应的逻辑地址给每个卡槽。 – HOST与每个卡槽的卡的数据传输都是单独进 行的,因为每个卡槽都有自己的数据总线 – 在卡的初始化完成后,命令可以同时发送到每 个卡槽,因为此时命令中已经包含了卡的逻辑 地址(在卡的分别初始化时分配的)
• 对于字节传输模式相当于SD协议的单块读写 (cmd17,cmd24) • 对于块传输模式相当于SD协议的块读写(cmd18, cmd25)
• Cmd53
– 对于字节传输模式,它可以是1~512之间的任 意长度的传输,而不是固定长度 – 对于块传输模式,首先它的块长度可以人为设 定,但不能超过规定的最大块长度 – 相对于SD卡中的块传输模式,在最后一个块传 输末尾,是不需要发送块停止命令的(cmd12)
SDIO Wifi Card
08-11-14 肖祥云
• Wifi卡的常用接口有:
– CF 接口 – USB接口 – SDIO接口 – SPI接口 – PCMCIA接口
Fra Baidu bibliotek
• 很多时候,同一个wifi卡同时支持多种接口, 譬如marvell的8686的wifi卡,既支持spi接 口,也支持sdio接口
SD卡与SDIO卡的异同