嵌入式WiFi技能是当时无线网络运用的一个热门。本文介绍IEEE802.11b的根本技能,给出一种在嵌入式环境中的WiFi通讯规划计划;经过一个移动监护体系的详细完结,阐明计划的有效性。 关键词 IEEE802.11b嵌入式WiFi TCP/IP 移动监护 现在,IEEE802.11无线局域网规范在语音通讯、无线作业等范畴广泛运用,但首要仍是约束在PC机、笔记本电脑等通用渠道的无线通讯。无线局域网在信息家电、工业操控、移动手持设备等嵌入式环境中的运用需求日益增多。如安在嵌入式体系中整合WLAN宽带通讯,成为嵌入式体系运用中的一个热门。
1 IEEE802.11b无线局域网 IEEE802.11系列包含IEEE802.11、IEEE802.11a、IEEE802.1lb、IEEE802.1lg四个规范。现阶段 IEEE802.11b的产品比较多。本文首要针对IEEE802.1lb规范,介绍嵌入式WiFi 的完结。 IEEE802.11b规范是在IEEE802.11的基础上发展起来的,作业在2.4 GHz频段,选用CCK调制技能,最高传输率能够到达11 Mbps,具有布置便利、通讯牢靠、抗干扰能力强、成本低、灵活性好、移动性强、高吞吐量等特色。它使得无线用户能够得到以太网级的网络功用、速率和可用性,而且能够无缝地将多种LAN技能集成起来,构成一种能够最大极限地满意用户需求的网络。WiFi是Wireless Fidelity的缩写,专指IEEE802.11b无线规范。在介绍IEEE802.11b的作业形式之前,首要介绍几个根本的概念。
1.1 IEEE802.11b根本概念 STA是指接入无线前言的部分,常被称为网络适配器或许网络接口卡。STA可所以移动的,也可所以固定的。每个STA都支撑鉴权 (authentication),撤销鉴权(deauthentication),加密和数据传输等。 根本服务集BSS(Basic Service Set)是IEEES02.11b 局域网的根本构成单元,根本服务会集能够包含多个STA。BSS根本服务集都有一个掩盖规模。在该掩盖规模内根本服务集的成员STA能够坚持彼此通讯,每个BSS有一个根本服务集识别码BSSID。 独立的根本服务集IBSS(Independent BSS)是最根本的IEEE802.11b局域网类型,一个最小的IEEE802.11b局域网能够仅仅包含两个STA。在这种形式下,STA能够直接通讯。因为这种类型的IEEES02.11b局域网一般在需求的时分才组织,所以这种网络作业形式一般被称为ad hoc(拉丁语,可译为“自组网”)形式。站点(STA)与根本服务集(BSS)之间的彼此关系是动态的,STA能够自由地开机、关机、进入或脱离BSS 掩盖规模。 DSS(Distribution System Service),用于衔接多个BSS。因为物理层掩盖规模的约束决议了所能支撑的STA与STA之间的直接通讯间隔。为了处理这个问题,引进 DS(Distribution System),它能够把多个BSS构成一个扩展的网络。 AP是Access Point简称,一般翻译为“无线拜访节点”或“桥接器”。首要在前言拜访操控层MAC中扮演无线作业站及有线局域网络的桥梁。 ESS(Extended Service Set),DS和多个BSS答应IEEE802.11构成一个恣意巨细和杂乱的无线网络。
IEEE802.11b把这种网络称为扩展服务集网络。相同,ESS也有一个标识的称号,即ESSID。
1.2 IEEE802.11b的作业形式 IEEE 802.1lb有两种作业形式:Ad-hoe和Infra—structure形式。IEEE规范以独立的根本服务集(IBSS)来界说Ad-hoc形式作业的客户端调集,以根本服务集(BSS)界说以Infrastructure形式作业的客户端调集。 在Ad-hoc形式中,客户端不能直接和网络外其他的客户端通讯。Ad-hoc形式的规划意图是使在同一个频谱掩盖规模内的客户间能够相互通讯。假如一个 Ad—hoc网络形式中的客户想要和该网络外的客户通讯,则该网络中必须有一个客户做网关并履行路由功用。 而在Infrastructure形式中,每一个客户将其通讯报文发向AP.AP转发一切的通讯报文。这些报文可所以发往以太网的,也可所以发往无线网络的。这是一种整合以太网和无线网络架构的运用形式。无线拜访节点担任频段办理及周游等指挥作业。一个AP最多可衔接1024个站点。
2 嵌入式WiFi的规划 嵌入式WiFi的结构与规范PC/OS渠道上的完结有所不同。要在一般的微处理器/微操控器上完结WiFi通讯,其硬件结构、软件层次都必须进行削减。下面以Prism MAC为例阐明嵌入式WiFi的软、硬件规划。
2.1 嵌入式WiFi的硬件规划 嵌入式环境中WiFi的硬件接口如图1所示。与规范渠道比较,中心没有PCMCIA桥。图1是嵌入式环境中的PC2MCIA接口的网卡与总线敞开MCU的衔接。
因为Prism MAC包含Memory space和I/O memory两个空间,所以需求两个片选经过或门操控读写空间的挑选。PCMCIA封装的Prism MAC有26根地址线,驱动Prism MAC仅仅需求地址线A0~A9,其他地址线悉数接地。关于总线不敞开的处理器,能够运用I/O口线模仿的方法进行读写。
2.2嵌入式WiFi的软件规划 在WinCE、Linux等操作体系环境下,能够运用厂家供给的设备驱动来运用WiFi网卡。这种体系一般对硬件资源(如CPU功用、存储器容量等)有较高的要求。关于许多嵌入式运用,因为硬件资源的约束,许多体系都在简略OS(如uC/0S等)或无0S的环境下运转,这时就需求对整个软件协议作恰当的削减。图2是嵌入式WiFi的软件结构。 图2中,TCP/IP协议的完结在许多文章中已经有较多的叙述。这儿首要以Prism MAC为例,介绍无限网络驱动,即嵌入式WiFi 的驱动。 Prism MAC供给给用户一组接口寄存器,经过这些寄存器和Prism MAC进行通讯。这些寄存器坐落Attribute Memory[2]空间中,能够运用AttribLlte Memory地址直接拜访。表1列出了PRISM MAC的常用寄存器及其界说。
为了读写这些寄存器,界说了两个函数:unsigned int getReg(unsigned int reg)和void selReg(unsigned int reg, usnigned int val)。Prism MAC驱动便是向指令寄存器发指令来操作MAC。常用的指令有分配buffer、查询网卡状况、初始化网卡、读数据、写数据等。
Prism MAC驱动程序需求为上层供给MAC的读写函数和一些操控函数,完结的函数原型如下: void init_mac(void) void reset_mac(void) WORD wc_write(WORD*buff,WORD len) WORDwc_read(WORD*buff,WORDmaxlen) B00L get_wlan(void) reset_mac(void)用于在体系启动或许体系需求复位时,复位Prism MAC,一起对驱动运用的变量进行初始化。inh_mac(void)函数完结初始化网络操控器和固件,一起向网卡操控器请求运用的buffer,保存需求用到的RID。wc_write(W0RD*burf,W0RD len)函数把buff中的len个字节写入到MAC的发送缓冲区,然后写发送指令到网卡的指令寄存器发送数据,函数回来实践发送的数据长度。 wc_read(WORD*buff,WoRD maxlen)函数接纳输入数据。回来实践收到的数据长度,对上层协议来讲,调用wc_read今后,能够对buff中的数据做协议剖析。关于 TCP/IP来讲,实践上取出的可能是IP、ARP等类型的报文。get_wlan(void)经过拜访EvStat寄存器判别是否有数据被接纳,回来判别成果。若有,则把PrismMAC数据帧收入到同享数据区中。本函数仅仅把PrismMAC的数据帧首部读出,适当所以以太网帧的首部。