引言
20世纪90年代以来,随着个人数据通信的发展,为了实现任何人在任何时间,任何地点均能实现数据通信的目标,无线局域网得到了迅猛发展,无线局域网(wLAN),通常被称为wi-Fi而,这是一种可以在91.44m内进行无线通信的技术,IEEE802.11委员会把孤立使用的无线局域网称为自组无线局域网(Ad-boc Network),而把互连使用的无线局域网称为多区无线局域网(Infrastruture Network)
无线AP是组建多区无线局域网的常用设备,配置多个接入点AP,就可以构成一个连续的覆盖区域,可提供移动用户漫游的能力,同时,它在介质访问控制子层MAC中扮演无线工作站及有线局域网的桥梁,是一个两端口的网桥。
无线接入点AP的功能和系统设计
无线接入点AP(Accss Point)通过一个标准的RJ-45接口用电缆连接到一个传统的集线器或交换机端口,一个无线接入点可认为是一个中继器,在有线局域网和无线设备运行的RF之间转发帧。
当一个站在LAN上发送数据时,接入点将以指定的RF和无线帧格式来转发帧,而并不考虑该帧的目的地,同样,当一个无线设备发送一个帧时,接入点将通过所设定运行的RF来接收帧,然后把帧转发到有线局域网,两个或者多个无线局域网接入点,将为移动无线设备提供一个接入到有线局域网的无线扩展区域。当建立一个无线局域网接入点时,一般要配置一个BSS(Basic Service Set)标识符。同样,也要为那些无线局域网适配卡设定一个区域标识符,其中接入点是为使用适配卡与其连接在一起的无线设备提供服务的,在多个无线接入点构造的一个扩展服务集(ESS,Extended Serice Set)中,通过定位接入点,无线设备就实现了漫游功能,以及通过应用无线局域网接入点服务的能力。一个基本的无线局域网是由一个连接到有线局域网的接入点和使用该接入点的一个或者多个无线PC用户所组成。
基于MPC852T的无线接入点AP由核心板和接口板组成,图1所示是其系统功能结构框图。其中在核心板上集成了摩托罗拉MPC852处理器、32MB SDRAM以及4MB的Flash,因而为系统软件提供了足够的空间。核心板上还集成了一个10M以太网口,不仅实现和有线局域网的桥接。还可以实现系统程序的以太网下载,从而烧写进Flash中。底板上则提供了非常丰富的外设接口:包括1个10Mbps以太网接口,1个100Mbps以太网接口、一个RS-232接口(COMI)、1个BDM调试是口(MPC8XX系列的EPBDM)、还有1个PCMCIA接口。当接入无线网卡后,作为无线接入点的RF,便可实现数据的无线发送和接收。该系统具有体积小,功耗低,处理能力强,网络功能强大的特点,能够装载和运行嵌入式Linux的操作系统,可以在这个系统平台上进行自主的应用软件和驱动程序开发。
MPC852T功能介绍
在无线接入点AP的设计中,可选用Motorola公司的MPC852T处理器,它是Motorola公司的PowerQUICC系列嵌入式通信处理器。PowerQUICC处理器系列广泛应用于当今市场上DSL调制解调器、SOHO路由器、远程接入服务器、DSLAM、中心局交换机设备、无线基础设施基站、企业路由器以及媒体网关等领域。
MPC852T PowerQUICC(Quad Integrated Communication Controlle)内部集成有微处理器和一些控制领域的常用器件,是一个多用途的通用芯片,它内部集成了微处理器和常用外围器件,可用于各种控制领域,它应用于通信系统时,可实现更低的成本,并提供更高的性价比,同时在通信性能方面也有所增强。MPC852T PowerQUICC集成了两个处理块,一个处理块是嵌入的PowerPC核心,另一个是通信处理模块CPM(Communications Processor Module)。由于CPM 分担了嵌入式PowerPC核心的外围工作任务,这种双处理器体系结构功耗要低于传统的体系结构的处理器,嵌入式MFC852T内核可达100MHz,扩展总线最大频率是66MHz,50/60MHz内核频率支持1:1模式和2:1模式,80/100MHz内核频率支持2:1模块,MFC852T系统集成单元主要包括:总线监视器、中断监视器、软件看门够、中断定时器,时钟合成器、PowerPC减量器,复位控制器及JTAG1149测试口,以上这些性能都可以非常理想地适用于各种有线和无线的通信处理任务,从而极大地满足控制层繁重的任务处理及传输层高带宽的要求。
核心板的设计
MPC852T是32位地址,32位数字总线宽度, 4KB的数据Cache和4KB指令Cache,分别带有一个MMU,52MHz的主频,52Mbps的总线速度,若外接8位或16位数据带宽的外设芯片,与CPU相接时,MPC852T的总线数据宽度是可设置的,可配置为8位,16位或32位模式。在核心板中,可选用2片16×1 bit数据宽度,共4MB的Flash(MX29Lv160BTC,如有不同型号,则应是完全兼容的器件),速度70/90ns:2片16M×8bit数据宽度的SDRAM(HY57V651620BTC-10S,如有不同型号,则是完全兼容的器件)构成,共32MB SDRAM。
MPC852T共提供了4个PORT(即PortA、PortB、PortC和PortD),以便于对应的控制寄存器实现与其他信号引脚的复用,其端口分配使用情况如表1所列。其中:SCC作为10Mbps以太网接口,SMC(和PortB GPIO复用)作为两线串口(TXD,RXD)。核心板未用的端口可通过核心板接口引到接口板,作为GPIO资源使用,图2所示是核心板的功能模块结构图。 底层接口板的设计
底层接口板有1个9V供电插座和1个供电模块,用的是9V的直流电源,为核心板和接口板提供了标准的3.3V和5V电压,底层接口板还提供了一系列的接口,其中包括1个标准RS-232串口、1个标准10Mbps快速以太网接口,1个标准的100Mbps快速以太网接口,1个PCMCIA接口、 1个BDM接口等,其中BDM接口和RS-232串口可用于核心板的硬件检测,映象文件下载、运行、Flash烧写等。
系统所用的无线网卡是LANEscapeTM XI325H的无线网卡,采用PCMCIA接口,可实现2.4GHz直接序列扩频,并具有高速低功耗的特点,其发射功率为20dBM,遵循802.11h协议和Wi-Fi认证,同时具备64bit/128bit WEP加密功能,可支持TCP/IP,IPX,NetBEUI等协议,同时支持1Mbps、2Mbps、5.5Mbps和11Mbps的自动传输速率选择。此外,它还支持AD-Hoc(对等)、Infrastructure(基础网络)和Roaming(漫游)等网络模式,可方便快捷无缝连接以实现以太网和无线局域网的连接。
MPC852T中CPM部分的4个SCC均可配置为10Mbps以太网控制器,FEM是10/100Mbps以太网自适应控制器,通过这些以太网控制器, 只需要简单的线路接口单元就可构成10Mbps以太网口和10Mbps/100mbps自适应网口。该以太网口符合IEEE8023规范, 实际使用中,MPC852T设置多少个网口,应根据主芯片的运行主频和接口要求统筹考虑,图3所示是一个10/100Mbps的自适应网口电路。
MPC852T中I/O口的引脚几乎都有多种功能,通过对有关的寄存器进行设置或将某些引脚设置成指定电位,使得有关I/O功能为设计指定功能,由于MPC852T的引脚多,各引脚的功能也多,为了能够尽快地确定各引脚的功能,可利用摩托罗拉公司提供的引脚功能安排工具,检查引脚功能上的冲突。
无线接入点AP的系统软件设计
MPC852T是遵照PowerPC结构体系的嵌入式芯片系列,因此可实现多任务操作,并支持多种内存映射方式,完全可以运行实时多任务操作系统,以满足通信控制设备所要求的实时性。
嵌入式操作系统主要有Palm OS、Windows CE、EPOC、Linux CE、ONX、ECOS、LYNX等。高端嵌入式操作系统要求许多高级功能,如图形用户界面和网络支持,但其价格很高,一般用户难以接受。嵌入式Linux操作系统以价格低廉,功能强大又易于移植而被广泛应用。Linux是一个和Unix相似,以核心为基础的,完全内存保护,多任务多进程的操作系统,它支持广泛的计算机硬件,包括Motorola、X86、Alpha、Sparce、MIPS、PPC、ARM、NEG等。
在移植的Linux源代码中,根据目标进行半裁减定制,以适合目标系统,尽量少占用系统内存,操作系统定制后,将其连接到目标的应用程序上,成为应用程序的一部分,并对低级系统的初始化文件进行修改,使得符合目标板的需要,对于MPC852T,所有软件都固化在板上2片Flash内,Flash的内容可通过烧写工具来更新升级,开发应用程序和更改其上的操作系统工作方式,可以采用一种交叉编译的开发模式,即为MPC852T应用。它不能直接在MPC823板上编辑、编译和调试,而必须把工作寄存到一台PC机上来完成,事实上,一个小型的Linux操作系统需要下面三个基本要素:
(1) 引导工具
用于完成系统的一些初始化工作,然后把操作系统调入内存中,应用时再将其跳到操作系统的入口。
(2) Linux内核
由内存管理、进程管理和事务处理构成,因为Linux内核可以支持多种CPU体系,所以,修改Linux内核以使其运行到硬件平台,不需要太多的工作。
(3)初始化进程
主要指为Linux系统安装inted、telnetd、tftpd、bttpd等守护进程,以便使Linux系统能成为名副其实的网络操作系统,但是,如果系统想成为完整的操作系统,还得加上一个文件系统,硬件驱动程序和提供所需功能的一个或多个应用程序,如1个串口、1个10Mbps以太网接口、1个100Mbps为以太网接口,1个BDM调试接口、WLAN无线网卡的驱动程序,802.11b无线AP以及网关系统软件,Web Server及TCP/IP协议等应用程序。
嵌入式LINUX无线接入点AP的实现
由于嵌入式操作系统硬件资源的限制,要做到实现AP在嵌入式Linux操作系统上的应用,就需要对Linux操作系统进行特别定制,以删除AP不需要的部分,真正做到精简系统、该过程大致可以分成两个部分。
精简内核
Linux内核是可以根据特定的要求进行定制的,笔者使用的是嵌入式Linux操作系统3.0 for PowerPC版本,在/usr/src/linux目录下,使用make menuconfig把可以拿掉的项目全部拿掉,如果嵌入式系统没有软驱和光驱,则可以去掉内核中对于软驱(floppy)及光驱(cdrom)的支持选项,而如果AP不需要发声,也可以不要声音(sound)的支持,从而去掉所有的字符设备(character device)等。
在去除的同时要根据AP应用软件及一些特定功能的要求,在内核中留下对需要驱动的支持,例如:要保留对网络的支持,保留对TCP/IP协议的支持,保留PPP(点对点协议)特定功能的支持。在完成后往往要重新编译内核,然后才能修改 Linux系统引导器Iilo的配置文件,最后以新编译的核作为启动内核。
缩小Linux的文件系统
嵌入式Linux本身是一种操作系统,它的主要任务管理计算机的系统资源,为用户提供使用计算机及外部设备的接口,因此在对Linux进行大幅度删减缩小的同时,也保留了一些基本的命令和目录。这些保留的命令和目录大致可以分成三类:一类是Linux操作系统启动所需要的,另一类用于完成一些系统功能,最后一类的主要任务是使AP能够正常工作。
通常在完成裁减工作并重启后,若Linux能够正常启动运行,则表明初步的Linux操作系统已构架成功,这样就可完成AP在此上面的实现。AP是以运行脚本命令pcmcia将AP驱动程序中已经编好的目标文件(.o文件)作为模块加载到系统中启动的,Linux提供了depmod、insmod、rmmod以及其他一些命令来保证适当的模块以正确的顺序加载,同时,AP启动时还要读取配置文件,所谓配置文件就是方便用户修改和相应的参数,如AP的SSID,AP的信道号等所编制的简单脚本文件,这些配置文件通知AP驱动程序相关参数的设置,有了这些文件后,AP就能正常启动了,另外,AP的目标文件在AP关闭后将自动卸载。最终实现的AP嵌入式Linux操作系统大概由以下目录组成:
/bin:包含用户的使用命令,如cp、Is、rm等,设计时也可以根据情况对原系统的命令进行删减。
/boot:包含一些压缩的内核映象和启动必备的文件。
/dev包含系统所需要的设备文件,是Linux设备输出,输入所需要的,可以用命令mknod或makedev来产生。
/etc:包含系统所需要的配置文件。
/lib包含执行命令所需要的共享库,命令ldd可以告诉哪些库可以动态连接在某一执行命令上,这样可以将需要的库拷入。
/mnt:此目录一般为空。
/proc:是个空目录,启动时内核将系统启动状态文件放入此目录中,是Proc文件系统所需要的目录。
/sbin:包含系统命令,如init、getty、reboot等,有些命令会影响整个系统。
/var:包含AP启动时的一些日志文件。
/usr:放入另外一些必要的命令,目录/ust/sbin及/usr/bin中。
实际操作时,可根据具体情况进行删减,最终在4MB存储容量的嵌入式Linux操作系统中完成对无线接入点AP的使用。