wifi SDIO driver.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
wifi SDIO driver

SDIO Wifi Card 08-11-14 肖祥云 Wifi卡的常用接口有: CF 接口 USB接口 SDIO接口 SPI接口 PCMCIA接口 很多时候,同一个wifi卡同时支持多种接口,譬如marvell的8686的wifi卡,既支持spi接口,也支持sdio接口 SD卡与SDIO卡的异同 SD卡使用的是SD卡协议,而SDIO卡使用的是SDIO协议;协议不一样,初始化/读写方式都不一样 ARK1600控制器既支持SD卡也支持SDIO卡,在驱动上完全可以做到同一个卡槽既支持SD卡也支持SDIO卡,甚至combo卡,因此在驱动上有个判断过程,判断插进来的是SD卡还是SDIO卡 两者的引脚定义不一样,尽管引脚个数都一样 SDIO协议 相对于SD协议,SDIO协议特有的命令有:cmd5,cmd52,cmd53 cmd5命令相当于SD卡协议中的acmd41,用于匹配SDIO卡的电压 对于SDIO卡中的单个寄存器的读写一般都使用cmd52命令,而对于多字节数据的读写则用cmd53命令。 cmd53分字节和块传输模式 对于字节传输模式相当于SD协议的单块读写(cmd17,cmd24) 对于块传输模式相当于SD协议的块读写(cmd18,cmd25) Cmd53 对于字节传输模式,它可以是1~512之间的任意长度的传输,而不是固定长度 对于块传输模式,首先它的块长度可以人为设定,但不能超过规定的最大块长度 相对于SD卡中的块传输模式,在最后一个块传输末尾,是不需要发送块停止命令的(cmd12) 每个SDIO卡都由1~7个function (optional)和一个memory function(mandatory)组成 什么是function 所谓function,就是一个I/O设备,它实质就是一些寄存器的集合 SDIO卡里function的组织分布 CIA就是function0,也就是memory function,它每个SDIO卡所必须具有的,它里面包含了如下一些重要信息: SDIO协议的版本号,BUS MOD,块大小等。这些信息有些是只读的,有些是可读可写的 Function1~7是可选的,根据具体的应用的不同,所包含的function数目也不一样,譬如我门使用的marvell的8686芯片,它就只有function0和function1 SDIO mode 同样也有1bit和4bit 总线模式 SD与SDIO卡的引脚的一个最大的区别是:SDIO有个中断引脚DAT[1],在4bit模式下,DAT[1]既做数据线,又做中断线,因此是分时复用的,在总线发送命令期间,DAT[1]用作中断线。 当HOST同时连接多个卡时: 时钟,电源,地线可以为每个卡公共 但每个卡都有自己单独的数据和命令总线,避免干扰 在卡的初始化过程中,命令是单独发到每个卡的,允许驱动来检测每个卡槽的卡是否存在,并且分配相应的逻辑地址给每个卡槽。 HOST与每个卡槽的卡的数据传输都是单独进行的,因为每个卡槽都有自己的数据总线 在卡的初始化完成后,命令可以同时发送到每个卡槽,因为此时命令中已经包含了卡的逻辑地址(在卡的分别初始化时分配的) SD卡与SDIO卡的检测判别 上电,发送CMD5命令,如果有响应,并且响应中的MP位为0,说明对应卡槽中的卡为SDIO卡,进而开始SDIO卡的初始化流程 如果发送CMD5命令没有响应,则说明对应卡槽的卡为SD或MMC卡,进而开始SD/MMC卡的初始化流程 如果发送CMD5命令,有响应,且响应中的MP位为1,说明这个卡不但是SDIO卡,同时也时SD卡,也就是所谓的combo卡,则进行combo卡的初始化流程 目前linux下,已支持的wifi卡有如下厂家的卡: Marvell 8385 and Marvell 8686 Intersil公司 Prism54 chips series Intel IWL4965 and IWL3945 Atheros corporation 5xxx chipset Broadcom(博通)43xx Ralink(雷凌)RT2x00 Linux下已经支持了市面上的大多数wifi卡的驱动 每种wifi卡都是需要固件(firmware)才能驱动的,并且同一种卡工作在不同接口时对应的firmware是不一样的 需要注意的是:很多firmware都是要花钱的 固件通过其驱动下载到无线卡中,才能驱动起来 上图是wifi驱动的通用的软件架构 分为两部分,上面为主机端驱动,下面是我们之前所说的firmware 其中固件部分的主要工作是:因为天线接受和发送回来的都是802.11帧的帧,而主机接受和传送出来的数据都必须是802.3的帧,所以必须由firmware来负责802.3的帧和802.

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档