Linux中的无线架构概述
来源:互联网 发布:低碳钢的弹性模量算法 编辑:程序博客网 时间:2024/06/05 02:33
http://blog.csdn.net/robertsong2004/article/details/38897603
译至:http://wire-less-comm.blogspot.jp/2013/01/wireless-lan-and-linux-together.html
随着开放源代码的出现,开发的时间已经快速下降,同时质量也迅速提高。 对于所有参与WLAN /WiFi开发的人来说,让我们来研究一下基于开源mac80211框架的Linux的WLAN架构吧。
下面的框图说明了Linux的WLAN架构。 请看下面的详细资料。
用户空间:
配置: wpa_supplicant和hostapd
两者都是可通过其CLI版本(wpa_cli,hostapd_cli)配置的。
它们支持不同的功能,如SME,MLME,安全,无线直连(P2P),AP和STA的配置。
工具:
我们也有工具来直接发送命令到驱动来设置一些参数,如通道,带宽,一些自定义的命令等。
用户空间和内核空间之间的桥
如何在用户空间中的各种应用程序和内核中的核心实体之间进行沟通呢? 我们有不同的方法,但都是基于不同的套接字接口。WExt ==> 通用无线扩展:IOCTL接口
NL80211==> Netlink套接字
HostAP ==> 原始数据包套接字
特定于芯片组:
Atheros==> IOCTL 接口
Prism,IPW etc.
内核空间
配置和UMAC(Upper MAC)
对于开源世界来说,内核的WLAN架构是mac80211,它分成2个内核模块。cfg80211.ko:它处理所有的配置,和用户空间的交互。
mac80211.ko:协议:上层的MAC,和驱动程序的交互。
大部分功能和管理是由具有mac80211模块在底层的MAC协助下处理的。
低层的Mac驱动程序
低层的MAC驱动担任UMAC和芯片组(固件和硬件)之间的桥梁。 他们通过Linux内核提供的服务来执行所有的设备初始化,注册到操作系统上,错误注册,中断注册等。一个精心编写的驱动程序遵循这些约定:
- 保持一个操作系统无关层:方便移植到不同的操作系统。
- 保持一个UMAC无关层:方便移植到不同的UMAC上:专有,开源,第三方等。
- 总线抽象层:保持不同的物理总线之间,如PCI,PCIe,AHB,SDIO等的相容性
芯片组:固件和硬件
完整的802.11协议的功能在这里实现。
固件可能是运行在一个单独的处理器/微控制器上,它配置和控制硬件,同时还通过一个芯片组(控制路径)特定的通讯接口与主机(驱动程序)进行交互。
数据路径通常包括一个硬件上的DMA控制器,它负责产生中断给主处理器和从/至主机传输数据包到硬件队列。
固件可能是运行在一个单独的处理器/微控制器上,它配置和控制硬件,同时还通过一个芯片组(控制路径)特定的通讯接口与主机(驱动程序)进行交互。
数据路径通常包括一个硬件上的DMA控制器,它负责产生中断给主处理器和从/至主机传输数据包到硬件队列。
参考文献:
wpa_supplicant_hostapd_devel_doc
http://www.omappedia.org/wiki/MAC802.11_based_Wilink
wpa_supplicant
0 0
- Linux中的无线架构概述
- Linux中的无线架构
- Linux中的无线架构
- Linux中的无线架构
- Linux中的无线架构
- Linux中的无线架构
- linux无线架构总结
- Linux内核架构概述
- Unix&Linux系统架构概述
- Linux SPI架构分析概述
- linux无线网卡驱动MAC80211架构数据结构
- [技术概述]流媒体在无线网中的应用(转载)
- Linux中的LVM架构
- 无线技术在Linux操作系统中的应用
- 无线传输数据概述
- 无线基本概述(一)
- 无线基本概述(二)
- 无线基本概述(三)
- C/C++ 将数据乱序
- MyBatis insert操作返回主键
- tomcat7与JSTL冲突
- Codeforces Round #336 (Div. 2)
- 文章标题
- Linux中的无线架构概述
- XML名字空间
- vijos P1485传球游戏(递推)
- 用MATLAB将矩阵数据写入txt文件中,打开乱码原因
- 将XML整合为一行
- 广度优先搜索
- 求多边形面积(如HDU2036)
- 基于拦截器的权限管理
- Web组件跳转和JSP