3456|10

1488

帖子

2

TA的资源

纯净的硅(中级)

楼主
 

MXCHIP Open1081-WIFI模块全总结 [复制链接]

本帖最后由 qq849682862 于 2014-11-4 08:21 编辑

分享今天刚看到的一篇文档  先贴出部分预览 具体文档下载在最后



WIFI学习总结






1        WLAN技术
WLAN是英文WirelessLAN的缩写,就是无线局域网的意思。无线以太网技术是一种基于无线传输的局域网技术,与有线网络技术相比,具有灵活、建网迅速、个人化等特点。将这一技术应用于电信网的接入网领域,能够方便、灵活地为用户提供网络接入,适合于用户流动性较大、有数据业务需求的公共场所、高端的企业及家庭用户、需要临时建网的场合以及难以采用有线接入方式的环境等。
2        802.11协议简述2.1.1     概述
作为全球公认的局域网权威,IEEE802工作组建立的标准在过去二十年内在局域网领域独领风骚。这些协议包括了802.3Ethernet协议、802.5TokenRing协议、802.3z100BASE-T快速以太网协议。在1997年,经过了7年的工作以后,IEEE发布了802.11协议,这也是在无线局域网领域内的第一个国际上被认可的协议。
在1999年9月,他们又提出了802.11b"HighRate"协议,用来对802.11协议进行补充,802.11b在802.11的1Mbps和2Mbps速率下又增加了5.5Mbps和11Mbps两个新的网络吞吐速率。利用802.11b,移动用户能够获得同Ethernet一样的性能、网络吞吐率、可用性。这个基于标准的技术使得管理员可以根据环境选择合适的局域网技术来构造自己的网络,满足他们的商业用户和其他用户的需求。802.11协议主要工作在ISO协议的最低两层上,并在物理层上进行了一些改动,加入了高速数字传输的特性和连接的稳定性。
主要内容:
  1.802.11工作方式
  2.802.11物理层
  3.802.11b的增强物理层
  4.802.11数字链路层
  5.联合结构、蜂窝结构和漫游
3        802.11四种主要物理组件3.1      工作站(Station
构建网络的主要目的是为了在工作站间传送数据。所谓工作站,是指配备无线网络接口的计算设备。
3.2      接入点(Access Point
802.11网络所使用的帧必须经过转换,方能被传递至其他不同类型的网络。具备无线至有线的桥接功能的设备称为接入点,接入点的功能不仅于此,但桥接最为重要。
3.3      无线媒介(Wireless Medium
802.11标准以无线媒介在工作站之间传递帧。其所定义的物理层不只是一种,802.11最初标准化了两种射频物理层以及一种红外线物理层。
3.4      分布式系统(Distribution System
当几个接入点串联以覆盖较大区域时,彼此之间必须相互通信以掌握移动式工作站的行踪。分布式系统属于802.11的逻辑组件,负责将帧转送至目的地。
下图为802.11网络的基本服务集(basic service set),其中包含了这四种物理组件。
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image002.jpg

4        WIFI适配层
里面定义很多字符串变量和适配层的接口实现,是对wpa_supplicant程序通信的接口封装,用来完成上层和wpa_supplicant的通信, 头文件在libhardware/include/hardware下,这里的函数用来向JNI的本地实现提供调用接口。
这里的函数,我把它们分为四类函数:
一类是命令相关的(控制)函数,就是在JNI层android_XXX_Command()函数所调用 的Wifi_Command()函数,调用流程如下:
android_XXX_command()=>docommand()=>wifi_command()=>wifi_send_command()=>wpa_ctrl_require()。
二类是 监听函数,即Wifi_wait_for_event()函数,调用流程如下:android_net_wifi_Waitforevent()=>wifi_wait_for_event()=>wpa_ctrl_recv()。
三就是WPA_SUPPLICANT的启动,连接,关闭函数
四是驱动的加载和卸载函数
5        wpa_supplicant5.1      wpa_ctrl的作用
定义了两类套接字和一个管道,并分别实现了和wpa_supplicant的通信,而在实际的实现中采用的都是套接字的方式,因此wpa_supplicant适配层和wpa_supplicant层 是通过socket通讯的。
要是从wifi.c中真的很难看出它和wpa_supplicant有什么关系,和它联系密切的就是 这个wpa_ctrl.h文件,这里面定义了一个类wpa_ctrl,这个类中声明了两个Socket套接口,一个是本地一个是要连接的套接 口,wpa_ctrl与wpa_supplicant的通信就需要socket来帮忙了,而wpa_supplicant就是通过调用 wpa_ctrl.h中定义的函数和wpa_supplicant进行通讯的,wpa_ctrl类(其实是其中的两个socket)就是他们之间的桥梁。
5.2      WPA_SUPPLICANT5.2.1     概念
wpa_supplicant本是开源项目源码,被谷歌修改后加入android移动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过socket发送命令给wpa_supplicant调动驱动来对WiFi芯片操作。 简单的说,wpa_supplicant就是WiFi驱动和用户的中转站外加对协议和加密认证的支持。
5.2.2     Wpa_supplicant与驱动的交互5.2.2.1        wpa_supplicant.c
首先定义一个驱动操作数组externstructwpa_driver_ops *wpa_supplicant_drivers[],然后是系列wpa_supplicant_XXX()函数,很多函数里面调用 wpa_drv_XXX()函数,这些函数是wpa_supplicant_i.h中实现的函数。几乎每个函数都需要一个wpa_supplicant结 构,对其进行所有的控制和通信操作。
5.2.2.2        Wpa_supplicant_i.h
其中定义了一个重要数据结构wpa_supplicant,其中有一个重要的driver成 员,它是wpa_driver_ops类型,可以被用来调用抽象层的接口。接下来是系列函数声明,这些函数声明在wpa_supplicant.c中实现,然后就是wpa_drv_XXX函数,这些函数就是在 wpa_supplicant.c中被wpa_supplicant_xxx函数调用的,而这些wpa_drv_xxx函数也都有一个 wpa_supplicant结构的变量指针,用来调用封装的抽象接口,而这些抽象接口的实现在driver_wext.c中(如果使用的汉斯WEXT驱动)。
这里要注意的是:在wpa_suppliant.c文件中定义的很多函数是在该头文件中声明的,而不是在wpa_supplicant.h中声明的。
5.2.2.3        Driver_wext.c
对wpa_drvier_ops的个函数的具体实现,该结构指针在wpa_supplicant注册一个网络接口时会被初始化赋予指定的操作指针,wpa_supplicant.c中的wpa_supplicant_xxx函数通过wpa_supplicant结构中的该操作指针调用WEXT的实现接口。
就是在该文件中,创建了三个socket:ioctrl_socket,event_socket和mlme_socket,它们分别有自己的用途,如ioctrl_socket用于发送控制命令,event_socket用于监听驱动传来的event事件等。Wpa_supplicant通过这三个socket与wifi驱动关联,这里的socket同fd(文件描述符)类似。








WiFi模块全总结.doc (571 KB, 下载次数: 12)

此帖出自RF/无线论坛

最新回复

作为全球公认的局域网权威,IEEE802工作组建立的标准在过去二十年内在局域网领域独领风骚 这个工作组确实厉害啊  详情 回复 发表于 2014-11-6 10:28
点赞 关注
个人签名专业从事于在线监测振动、转速、轴振动、位移等,设备管理及故障检测振动诊断系统在线监测点巡检系统-现场动平衡仪-测振仪、便携式测振仪
 

回复
举报

169

帖子

3

TA的资源

一粒金砂(中级)

沙发
 
顶啊,这个分析相当高级啊!
下载下来慢慢研究
此帖出自RF/无线论坛

点评

发现全部粘贴直接网页卡死 想占楼重新编辑的 结果发现楼已经被抢了  详情 回复 发表于 2014-11-3 15:50
 
 

回复

169

帖子

3

TA的资源

一粒金砂(中级)

板凳
 
帮楼主整理成pdf文档,方便阅读。
WiFi模块全总结.pdf (3.19 MB, 下载次数: 8)
此帖出自RF/无线论坛

点评

多谢了 我是觉得word那个里面有目录翻阅更方便一点 话说你整到哪里啦  详情 回复 发表于 2014-11-3 15:51
 
 
 

回复

1488

帖子

2

TA的资源

纯净的硅(中级)

4
 
本帖最后由 qq849682862 于 2014-11-3 15:51 编辑
小麦克 发表于 2014-11-3 15:27
顶啊,这个分析相当高级啊!
下载下来慢慢研究

发现全部粘贴直接网页卡死 想占楼重新编辑的 结果发现楼已经被抢了
此帖出自RF/无线论坛
个人签名专业从事于在线监测振动、转速、轴振动、位移等,设备管理及故障检测振动诊断系统在线监测点巡检系统-现场动平衡仪-测振仪、便携式测振仪
 
 
 

回复

1488

帖子

2

TA的资源

纯净的硅(中级)

5
 
小麦克 发表于 2014-11-3 15:29
帮楼主整理成pdf文档,方便阅读。

多谢了 我是觉得word那个里面有目录翻阅更方便一点 话说你整到哪里啦
此帖出自RF/无线论坛

点评

你说open1081板子? 我之前弄了下MICO系统,发现这玩意有点复杂。现在MICO官方代码更新很频繁,最新的版本为了适配其他芯片,又搞了很多东西,但是反而不支持open1081开发板了。还要自己移植,想想还是算了。 直接  详情 回复 发表于 2014-11-4 09:27
个人签名专业从事于在线监测振动、转速、轴振动、位移等,设备管理及故障检测振动诊断系统在线监测点巡检系统-现场动平衡仪-测振仪、便携式测振仪
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

6
 
这个能用在open1081上吗
此帖出自RF/无线论坛

点评

不能 别人使用其他WIFI模块的心得体会 有利于了解工作原理  详情 回复 发表于 2014-11-4 08:27
 
 
 

回复

1488

帖子

2

TA的资源

纯净的硅(中级)

7
 
lxttian 发表于 2014-11-4 08:24
这个能用在open1081上吗

不能 别人使用其他WIFI模块的心得体会 有利于了解工作原理
此帖出自RF/无线论坛

点评

哈哈 Thanks  详情 回复 发表于 2014-11-4 08:28
个人签名专业从事于在线监测振动、转速、轴振动、位移等,设备管理及故障检测振动诊断系统在线监测点巡检系统-现场动平衡仪-测振仪、便携式测振仪
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

8
 
qq849682862 发表于 2014-11-4 08:27
不能 别人使用其他WIFI模块的心得体会 有利于了解工作原理

哈哈 Thanks

此帖出自RF/无线论坛
 
 
 

回复

169

帖子

3

TA的资源

一粒金砂(中级)

9
 
qq849682862 发表于 2014-11-3 15:51
多谢了 我是觉得word那个里面有目录翻阅更方便一点 话说你整到哪里啦

你说open1081板子?
我之前弄了下MICO系统,发现这玩意有点复杂。现在MICO官方代码更新很频繁,最新的版本为了适配其他芯片,又搞了很多东西,但是反而不支持open1081开发板了。还要自己移植,想想还是算了。
直接跑裸机吧,在操作系统上写程序写习惯了,裸机各种不自在。
不知道有没有其他简单点的操作系统?
有时间准备移植个uC/OS-II
此帖出自RF/无线论坛

点评

EMW3161版本应该是兼容core1081吧 庆科肯定有对应EMW3161的版本吧  详情 回复 发表于 2014-11-4 09:33
 
 
 

回复

1488

帖子

2

TA的资源

纯净的硅(中级)

10
 
小麦克 发表于 2014-11-4 09:27
你说open1081板子?
我之前弄了下MICO系统,发现这玩意有点复杂。现在MICO官方代码更新很频繁,最新的版 ...

EMW3161版本应该是兼容core1081吧  庆科肯定有对应EMW3161的版本吧
此帖出自RF/无线论坛
个人签名专业从事于在线监测振动、转速、轴振动、位移等,设备管理及故障检测振动诊断系统在线监测点巡检系统-现场动平衡仪-测振仪、便携式测振仪
 
 
 

回复

3025

帖子

0

TA的资源

五彩晶圆(初级)

11
 
作为全球公认的局域网权威,IEEE802工作组建立的标准在过去二十年内在局域网领域独领风骚
这个工作组确实厉害啊
此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表