欢迎来到天天文库
浏览记录
ID:26067317
大小:236.82 KB
页数:14页
时间:2018-11-24
《linux+下wifi+驱动开发——+sdio接口wifi驱动浅析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linux下wifi驱动开发(三)——SDIO接口WiFi驱动浅析 SDIO-Wifi模块是基于SDIO接口的符合wifi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户主平台数据通过SDIO口到无线网络之间的转换。SDIO具有传输数据快,兼容SD、MMC接口等特点。 对于SDIO接口的wifi,首先,它是一个sdio的卡的设备,然后具备了wifi的功能,所以,注册的时候还是先以sdio的卡的设备去注册的。然后检测到卡之后就要驱动他的wifi功能了,显然,他是用s
2、dio的协议,通过发命令和数据来控制的。下面先简单回顾一下SDIO的相关知识:一、SDIO相关基础知识解析1、SDIO接口 SDIO 故名思义,就是 SD的I/O接口(interface)的意思,不过这样解释可能还有点抽像。更具体的说明,SD本来是记忆卡的标准,但是现在也可以把SD拿来插上一些外围接口使用,这样的技术便是SDIO。 所以SDIO本身是一种相当单纯的技术,透过SD的I/O接脚来连接外部外围,并且透过SD上的I/O数据接位与这些外围传输数据,而且SD协会会员也推出很完整的SDIOstack驱动程序,使得
3、SDIO外围(我们称为SDIO卡)的开发与应用变得相当热门。 现在已经有非常多的手机或是手持装置都支持SDIO的功能(SD标准原本就是针对mobiledevice而制定),而且许多SDIO外围也都被开发出来,让手机外接外围更加容易,并且开发上更有弹性(不需要内建外围)。目前常见的SDIO外围(SDIO卡)有:·Wi-Ficard(无线网络卡) ·CMOSsensorcard(照相模块) ·GPScard ·GSM/GPRSmodemcard ·Bluetoothcard SDIO的应用将是未来嵌入式系统最重要的接口技
4、术之一,并且也会取代目前GPIO式的SPI接口。2、SDIO总线 SDIO总线和USB总线类似,SDIO也有两端,其中一端是HOST端,另一端是device端。所有的通信都是由HOST端发送命令开始的,Device端只要能解析命令,就可以相互通信。CLK信号:HOST给DEVICE的时钟信号,每个时钟周期传输一个命令。CMD信号:双向的信号,用于传送命令和反应。DAT0-DAT3信号:四条用于传送的数据线。VDD信号:电源信号。VSS1,VSS2:电源地信号。3、SDIO热插拔原理方法:设置一个 定时器检查 或 插拔中断检测
5、硬件:假如GPG10(EINT18)用于SD卡检测GPG10为高电平即没有插入SD卡GPG10为低电平 即插入了SD卡4、SDIO命令 SDIO总线上都是HOST端发起请求,然后DEVICE端回应请求。sdio命令由6个字节组成。a--Command:用于开始传输的命令,是由HOST端发往DEVICE端的。其中命令是通过CMD信号线传送的。b--Response:回应是DEVICE返回的HOST的命令,作为Command的回应。也是通过CMD线传送的。c--Data:数据是双向的传送的。可以设置为1线模式,也可以设置为4线模
6、式。数据是通过DAT0-DAT3信号线传输的。 SDIO的每次操作都是由HOST在CMD线上发起一个CMD,对于有的CMD,DEVICE需要返回Response,有的则不需要。 对于读命令,首先HOST会向DEVICE发送命令,紧接着DEVICE会返回一个握手信号,此时,当HOST收到回应的握手信号后,会将数据放在4位的数据线上,在传送数据的同时会跟随着CRC校验码。当整个读传送完毕后,HOST会再次发送一个命令,通知DEVICE操作完毕,DEVICE同时会返回一个响应。 对于写命令,首先HOST会向DEVICE发送命
7、令,紧接着DEVICE会返回一个握手信号,此时,当HOST收到回应的握手信号后,会将数据放在4位的数据线上,在传送数据的同时会跟随着CRC校验码。当整个写传送完毕后,HOST会再次发送一个命令,通知DEVICE操作完毕,DEVICE同时会返回一个响应。二、SDIO接口驱动 前面讲到,SDIO接口的wifi,首先,它是一个sdio的卡的设备,然后具备了wifi的功能,所以SDIO接口的WiFi驱动就是在wifi驱动外面套上了一个SDIO驱动的外壳,SDIO驱动仍然符合设备驱动的分层与分离思想: 设备驱动层(wifi设备)
8、
9、核心层(向上向下提供接口)
10、主机驱动层(实现SDIO驱动) 下面先分析SDIO接口驱动的实现,看几个重要的数据结构(用于核心层与主机驱动层的数据交换处理)。[/include/linux/mmc/host.h]
此文档下载收益归作者所有