Linux中的无线架构
2015-09-06 16:52
591 查看
随着开放源代码的出现,开发的时间已经快速下降,同时质量也迅速提高。 对于所有参与WLAN /WiFi开发的人来说,让我们来研究一下基于开源mac80211框架的Linux的WLAN架构吧。
下面的框图说明了Linux的WLAN架构。 请看下面的详细资料。
![](http://img.blog.csdn.net/20140828142725609)
两者都是可通过其CLI版本(wpa_cli,hostapd_cli)配置的。
它们支持不同的功能,如SME,MLME,安全,无线直连(P2P),AP和STA的配置。
WExt ==> 通用无线扩展:IOCTL接口
NL80211==> Netlink套接字
HostAP ==> 原始数据包套接字
特定于芯片组:
Atheros==> IOCTL 接口
Prism,IPW etc.
cfg80211.ko:它处理所有的配置,和用户空间的交互。
mac80211.ko:协议:上层的MAC,和驱动程序的交互。
大部分功能和管理是由具有mac80211模块在底层的MAC协助下处理的。
一个精心编写的驱动程序遵循这些约定:
保持一个操作系统无关层:方便移植到不同的操作系统。
保持一个UMAC无关层:方便移植到不同的UMAC上:专有,开源,第三方等。
总线抽象层:保持不同的物理总线之间,如PCI,PCIe,AHB,SDIO等的相容性
固件可能是运行在一个单独的处理器/微控制器上,它配置和控制硬件,同时还通过一个芯片组(控制路径)特定的通讯接口与主机(驱动程序)进行交互。
数据路径通常包括一个硬件上的DMA控制器,它负责产生中断给主处理器和从/至主机传输数据包到硬件队列。
参考文献:
wpa_supplicant_hostapd_devel_doc
http://www.omappedia.org/wiki/MAC802.11_based_Wilink
wpa_supplicant
下面的框图说明了Linux的WLAN架构。 请看下面的详细资料。
用户空间:
配置:wpa_supplicant和hostapd:
所有直接与用户交互的应用程序都在这里。 例如可以基于GUI / CLI。 在Ubuntu / Fedora发行版本的网络管理器是基于GUI的,但最核心的部分是基于命令行的。例如,使用wpa_supplicant用于控制STA的部分和使用hostapd用于控制AP的部分。两者都是可通过其CLI版本(wpa_cli,hostapd_cli)配置的。
它们支持不同的功能,如SME,MLME,安全,无线直连(P2P),AP和STA的配置。
工具:
我们也有工具来直接发送命令到驱动来设置一些参数,如通道,带宽,一些自定义的命令等。用户空间和内核空间之间的桥
如何在用户空间中的各种应用程序和内核中的核心实体之间进行沟通呢? 我们有不同的方法,但都是基于不同的套接字接口。WExt ==> 通用无线扩展:IOCTL接口
NL80211==> Netlink套接字
HostAP ==> 原始数据包套接字
特定于芯片组:
Atheros==> IOCTL 接口
Prism,IPW etc.
内核空间
配置和UMAC
对于开源世界来说,内核的WLAN架构是mac80211,它分成2个内核模块。cfg80211.ko:它处理所有的配置,和用户空间的交互。
mac80211.ko:协议:上层的MAC,和驱动程序的交互。
大部分功能和管理是由具有mac80211模块在底层的MAC协助下处理的。
低层的Mac驱动程序
低层的MAC驱动担任UMAC和芯片组(固件和硬件)之间的桥梁。 他们通过Linux内核提供的服务来执行所有的设备初始化,注册到操作系统上,错误注册,中断注册等。一个精心编写的驱动程序遵循这些约定:
保持一个操作系统无关层:方便移植到不同的操作系统。
保持一个UMAC无关层:方便移植到不同的UMAC上:专有,开源,第三方等。
总线抽象层:保持不同的物理总线之间,如PCI,PCIe,AHB,SDIO等的相容性
芯片组:固件和硬件
完整的802.11协议的功能在这里实现。固件可能是运行在一个单独的处理器/微控制器上,它配置和控制硬件,同时还通过一个芯片组(控制路径)特定的通讯接口与主机(驱动程序)进行交互。
数据路径通常包括一个硬件上的DMA控制器,它负责产生中断给主处理器和从/至主机传输数据包到硬件队列。
参考文献:
wpa_supplicant_hostapd_devel_doc
http://www.omappedia.org/wiki/MAC802.11_based_Wilink
wpa_supplicant
相关文章推荐
- 全文检索框架Lucene——架构
- 君临天下服务端架构调研
- 一种更加清晰的Android架构
- 软件系统体系结构---C/S B/S P2P架构(概述)
- 学习网站推荐
- 目前发现有关星座命理行业比较知名的网站(典藏版)
- 【转】Yahoo!团队:网站性能优化的35条黄金守则
- 转 .Net架构必备工具列表
- 新浪、万网前系统架构师高俊峰:统一监控报警平台架构设计思路
- 大型高并发高负载web应用系统架构
- Gate架构
- 测试限制域名网站的方法
- 【学习总结】总结一些书籍、Blog、网站等资料汇总
- 微服务架构的设计模式
- 个人网站开发1
- sharepoint 2016 学习系列篇(9)-如何创建子网站Create sub site
- sharepoint 2016 学习系列篇(8)-如何修改网站标题以及Logo
- Hadoop2.2.0中HDFS的高可用性实现原理
- 浅谈iOS中MVVM的架构设计与团队协作【转载】
- 手机cpu厂商和手机cpu架构