标题: [转帖]基于Altera Nios软核处理器的无线局域网接入点设备设计 [打印本页]
作者: xuyanchen 时间: 2005-11-15 15:33 标题: [转帖]基于Altera Nios软核处理器的无线局域网接入点设备设计
李晓光 谢新翔 南京邮电学院
摘要:本文介绍如何在Altera开发平台上,使用Nios软核CPU来构建嵌入式无线局域网接入设备;从实例开发角度,详细介绍此类系统硬件,软件的设计方法,并探讨了在ucLinux操作系统上,实现IEEE802.11协议管理的方法,提供了安全增强型AP的解决方案。最后总结全文,提出系统的改进方向。
关键词:嵌入式系统,IEEE802.11, WLAN,AP,Altera Nios,SOPC
一、引言
1.1无线局域网技术背景
随着信息技术的飞速发展,人们的工作、生活越来越离不开计算机网络。无论是信息共享、合作,还是移动办公,处处体现着计算机网络的价值,计算机网络已经无处不在。无线局域网(WLAN)是传统有线局域网的延伸和补充,是一种更加灵活的数据通信系统。它采用射频工作方式传输数据,不需物理布线,具有组网灵活方便,传输速率高,移动性强等优点,成为3G网络接入的有益补充,并且在机场、酒店和咖啡厅等热点地区有着广阔的应用前景。
无线接入点(AP)是无线局域网中的重要设备,是负责移动主机管理以及协调无线与有线主干网络之间通信的关键部件。它在不修改已有的有线网络结构和不改变现有协议的基础上,将移动主机纳入现有网络中。一般AP的实际开发应满足IEEE802.11、IEEE802.1d、IEEE802.3等协议和RFC有关建议。AP的基本功能包括传递移动主机间的通信和桥接移动主机到有线网络。除了完成对数据包的过滤、存储、转发,还要负责移动主机的认证、鉴权和漫游管理。
1.2 可编程片上系统设计
SoPC(System on a Programmable Chip,片上可编程系统)是SoC 技术和可编程逻辑技术结合的产物,是一种特殊的嵌入式系统。首先它是SoC,即可以由单个芯片完成整个系统的主要逻辑功能;其次,它还是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备一定的系统可编程功能。
在2000 年,Altera 发布了Nios 处理器,这是一种可特许的通用RISC CPU。Altera公司以IP核的方式将它提供给设计者。它可以与各种各样的外设、定制指令和硬件加速单元相结合,构成一个定制的SOPC。该处理器具有可由用户配置的L1(第一层)指令与数据超高速缓存。Nios处理器还具有一种基于JTAG的OCI(片上仪器)芯核,使软件开发人员在实时调试方面具有更明显的优势。该处理器为ucLinux提供了良好的支持,这样,我们在软件设计的时候,就可以很方便的利用ucLinux强大的网络支持,快速开发AP设备。
1.3 基于Nios的AP
Altera的Nios IP套装可配置,可裁减,给设计带来了很强的灵活性。采用同一硬件平台(SOPC),通过对软核及其软件的调整,就可以根据不同用户需求,生成性价比最高的产品。就我们设计的无线网络器件而言,Nios更是提供了方便。随着无线网络基础设施的大规模部署,无线网络安全问题日益严重,新的规范、标准层出不穷。利用传统方法设计出来的产品,即使通过固件升级,也很难符合新标准的要求。例如,基于WEP的传统无线网络产品,就无法支持AES等新的加密算法。Nios出现后,这些问题就得到很好的解决。设计者可以重新定制IP,导入新的Altera FPGA器件。这种方案可满足设计和生产部门两方面的要求。
[此贴子已经被作者于2005-11-15 15:33:35编辑过]
作者: xuyanchen 时间: 2005-11-15 15:34
下面,我们给出一套基于Nios的AP设计方案。
二、系统设计与实现
2.1 硬件设计
整个系统的结构如图1所示。下面,我们给出各部分的功能和芯片选型。
Stratix FPGA,包括Nios软核CPU、操作系统使用的定时器、中断向量控制器和CPU同外围设备的接口;这部分设计使用到的开发工具是Altera公司的SOPC Builder,该工具会根据我们提供的配置信息,自动进行系统定义,完成SOPC开发的集成过程。设计者采用SOPC Builder能够在图形化界面内定制一个从硬件到软件的完整系统。
IEEE802.3以太网接口,采用Reltech8139芯片,实现传输层和MAC层的功能,具有10/100M自适应、双工/半工自适应等功能,有很好的网络兼容性。
无线部分空中接口,主要包括两个芯片。基带处理器采用Prism HFA3862芯片,作为收发信机。媒体接入控制器采用同系列的HFA3842芯片,当设置在Host AP模式时,提供AP在MAC层的基本功能。为了节省开发时间,我们可以选择内含Prism系列芯片无线局域网适配器(Wireless IEEE802.11 PC Card)作为无线部分空中接口模块进行开发,此类适配器的具体型号包括康柏的WL100和WL200、D-Link的DWL-650和Linksys的WPC11等。
ALTERA MAX系列CPLD采用一片EPM7128,用来在上电时对FPGA进行配置。
Flash,主要用来存放软件代码和系统日志。
SRAM,用来在系统运行时的代码和数据存储。
2.2 软件设计
ucLinux与Linux基本相同,不同的只是对内存管理和进程管理进行改写,以满足无MMU处理器的要求。uClinux是Linux 操作系统的一种,是由Linux2.0内核发展来的,是专为没有MMU的微处理器(如ARM7TDMI、Coldfire 等)设计的嵌入式Linux操作系统。Microtronix和Altera联合推出的开发套件,使我们能够在Altera的可编程逻辑器件平台上面,运行ucLinux操作系统。由于大多数内核源代码都被重写,uClinux的内核要比原内核小的多, 但保留了Linux 操作系统的主要优点:稳定性,优异的网络能力以及优秀的文件系统支持。
得益于强大的开发平台,我们的软件设计主要包括内核网络协议栈设计和应用级代码编写两部分,其中网络协议栈可以利用ucLinux本身提供的TCP/IP网络服务,稍加修改,并添加对无线设备的支持加以实现。应用级代码编写包括图形用户界面(GUI)和接入点守护进程(AP Daemon)两部分组成。
2.2.1 网络协议栈设计
这一部分最大限度利用了ucLinux内核提供的网络资源。图2内核功能各个模块中,位于左侧的命令行管理界面、管理命令解析、TFTP服务进程和以太网驱动程序属于bios功能,仅在开发调试的时候,用于下载和配置内核。位于右侧的各功能模块保留了ucLinux对于TCP/IP协议栈的支持,所以利用现有代码,就可以实现无线网络和有线网络间的交换功能。我们需要在内核编写无线模块的驱动程序和AP的基本管理功能。这是系统设计的关键之一,我们将在2.2.3节中详细详述。
2.2.2 应用级代码编写
应用级代码主要包括图形化用户配置界面的编写和AP守护程序的设计。有了图形化用户配置界面,用户就可以通过网页访问的形式,方便的设置AP的各项参数。
Linux下有很多免费的Web服务器软件,如httpd、miniHTTP和Apache。Httpd是最简单的一个Web Server,它的功能最弱,不支持认证,不支持CGI。所以我们在AP设计时无法采用。miniHTTP和Apache都支持认证、CGI等,功能都比较全。尤其是Apache,在大型网站有着广泛的应用,但对于小型系统来说,会消耗过多的系统资源。为了实现动态Web技术,我们选择实现一个支持CGI的、非常适合于嵌入式系统的miniHTTP。
AP守护进程的设计,是系统的另一项关键技术。它通过socket和ioctl调用内核和驱动程序的各项功能,在用户空间完成AP的扩展功能。
2.2.3 AP功能代码实现
本部分实现了IEEE802.11 AP的全部功能。
最下层是由Prism芯片组成的物理层,当工作于Host AP模式的时候,芯片可以完成很多实时性很强的工作,如发送信标和响应来帧等。
中间层是内核的驱动程序,完成硬件接口抽象和IEEE802.11一些基本的网络管理工作,前者包括芯片的初始化、配置信息的加载、数据帧的发送和接收、统计信息的收集等。后者实现了IEEE802.11基本的管理功能,包括鉴权(解除鉴权)、关联(解除关联)、无线终端的数据接力和省电模式的数据缓冲及信令通知等。内核驱动程序还提供了各种各样的调试功能,使上层很方便的访问硬件的配置信息、I/O寄存器内容和带有802.11头的原始数据。
最上层是用户空间的AP守护程序,在内核提供的基本无线网络管理功能的基础上,添加了很多增强功能。它借助外部的RADIUS鉴权服务器,提供基于MAC地址的接入控制,还可以完成IEEE802.11X基于端口的鉴权,动态选择WEP密钥以及RADIUS记账的功能。IAPP功能模块符合IEEE 802.11f 标准,这一标准提供了不同厂商之间AP的互操作性。利用IAPP模块,我们的AP就可以作为无线中继器,为移动主机提供更广阔范围的漫游支持。
2.2.4 AP增强的安全性
IEEE802.11协议中提供的安全机制是WEP(Wired Equivalent Privacy)加密,提供无线链路上数据的机密性和完整性保护,达到与有线链路同样的安全级别。但近几年的研究发现,WEP加密方案非常脆弱。为了保障AP的安全性,我们在设计中添加了IEEE802.1x端口鉴权和动态WEP密钥两种增强的保密机制。
IEEE802.1x/EAP是一个提供集中认证和动态密钥分配架构的WLAN安全方法。该方法基于IEEE802.11i的端到端结构,使用IEEE802.1x协议和扩展认证协议(EAP)来实现增强的认证功能。如图4所示,IEEE802.1x/EAP认证的主要步骤为:
1)在用户和认证服务器RADIUS(远程接入拨号用户服务器)之间进行双向认证。
2)动态获得加密密钥
3)集中的控制策略,一旦会话超时即将重新认证并且生成新的加密密钥。
与原始IEEE802.11认证相比,该方案主要又三点优势。第一,采用了双向认证机制,有效地消除了中间人攻击(MITM),如假冒的AP和RADIUS。第二,集中化认证管理和动态分配加密密钥机制解决了管理上的难度。第三,集中控制策略,会话超时时重新认证和生成加密密钥消除了MAC地址侦听和伪装,防止了会话攻击。
三.结论
采用Nios软核CPU进行嵌入式系统硬件设计相当快速。由于SOPC Builder开发环境的完备功能,可以把注意力集中在系统整体构架和功能上来,而无须过多的考虑细节性的电路设计,同时还可以得到比较好的系统稳定性和可靠性。
基于Nios+ucLinux平台进行AP设计具有两个突出优点。首先,硬件设计的难度,缩短了硬件开发周期,提出了设计的可靠性。CPU本身是以软核的方式实现,其功能可根据需要进行定制,从而达到节约成本的目的。其次,网络上有大量优秀的免费源代码,减轻了软件开发的难度。例如在本次开发中,为了实现有线网络和无线网络间的转发功能,我们只需在编译内核时,只需设置内核的IEEE802.1d网桥功能即可。
本文中的系统已经进行了初步的仿真试验,能够达到预期的效果,被证实是切实可行的。美中不足的是我们的系统还不能提供AES加密功能,不支持IEEE802.11i和wifi WPA协议标准,系统的安全性有待加强。另一方面,Stratix器件中为大数据吞吐量的应用而优化的DSP模块是包括硬件乘法器、加法器、减法器、累加器和流水线寄存器,还没有得到有效的利用。下一版,我们计划利用Stratix的DSP模块实现AES加密算法,使我们设计的AP更加安全,应用前景更加广阔。
作者: yti_52 时间: 2005-11-17 13:20
能提供一些具体实现过程。比较好。。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |