APP下载

基于Linux+ARM9的Wi-Fi网络图形化设计与实现

2012-08-04翁秋华

通信技术 2012年3期
关键词:图形化无线网络加密

陈 新,翁秋华

(福州大学 物理与信息工程学院,福建 福州 350108)

0 引言

近年来,中国正处在网络高速发展阶段,尤其是中国进入 3G时代以来推动各项无线业务快速发展,除了3G技术外,其中最为明显的是Wi-Fi无线通信技术高速发展。Wi-Fi,英文全称为 wireless fidelity,中文意思为“无线保真”。Wi-Fi技术是IEEE定义的无线局域网通信工业标准IEEE 802 11[1]。该标准包括IEEE 802 11a、802 11b和802 11g。相比传统有线接入技术,Wi-Fi技术具有更大灵活性;与其他的无线技术相比,Wi-Fi技术则具有传输速率快,传输距离远,搭建方便等优点。由于嵌入式技术已经广泛应用于各种便捷式电子产品的开发,其中以 ARM 架构体系最为常见,在相应设备上为访问互联网而增加 Wi-Fi功能成为一个必然的选择。由于 Linux的开源性,可以应用的资源较为丰富,以及对驱动支持日益完善。文中通过对 Linux下的ARM构架体系的Wi-Fi无线通信功能的图形化设计与实现,概括了Linux下完整开发Wi-Fi功能一般步骤。

对于电子产品设计通常分为两部分:硬件设计与软件设计。硬件提供必要的资源构成实体,而软件则提供系统运行和相应各种功能实现。

1 系统硬件设计

[2]。整个系统由AR9271无线通信模块、ARM920T(S3C2440A)处理器、LCD显示屏(含触摸)、NAND、FLASH、SDROM、电源管理等部分组成,结构如图1所示。其中设计依据是:由FLASH启动系统,并向AR9271无线通信模块供电,由USB接口受ARM的Linux系统识别,由串口输入请求激活AR9271,生成相应的wlan0套接字接口,利用无线连接工具扫描周围的无线网络,选择其中的一个网络,请求连接,由系统识别的端口的自动获取IP,从而接入互联网。通信数据包通过系统的TCP/IP协议暂存在SDROM进行数据交换,最后由LCD显示。

图1 系统框

1.1 AR9271模块

AR9271是一款Atheros公司为家庭网关、机顶盒、掌上游戏机、打印机以及各种其他嵌入式无线产品提供高性能的 Wi-Fi芯片。此外,它还可集成到笔记本电脑和桌面电脑的无线USB适配器中,能简便地在现有PC上实现低价格的性能升级。

AR9271芯片采用全新的架构,集成了可运行更多片上无线LAN功能的CPU与存储器。这种集成式CPU可减轻主机设备的无线处理开销。该项设计可使消费类电子设备上原本不支持无线功能的主机处理器现在也能提供稳健的Wi-Fi功能。AR9271具有创新的主机设备任务分担特性,不仅可使WLAN自主运行,而且还可实现与主机设备应用的无缝配合。向用户提供了USB接口,故采用USB接口。

1.2 S3C2440A模块

该系统采用S3C2440A作为ARM920T的核心模块,该处理器的主频能够轻松地运行 Linux、Windows CE等操作系统,具有强大的内部中断和TCP/IP的轮询调用功能,S3C2440A有130个通用可编程多功能的I/O端口,其中包括USB接口,可以直接与 AR9271通信模块相连,这对简化外围电路扩展部分有很大帮助,降低了系统的复杂度和简化了软件设计,所以选用S3C2440A作为本系统的CPU,其与AR9271的控制接口如图2。

图2 AR9271与CPU接口控制

2 系统软件设计

为了实现Wi-Fi功能,使系统能够正常识别到AR9271无线通信模块并能够正常被调用,除了必要的硬件连接,还要进行软件设计,通过Linux操作系统驱动配置和加载,使 AR9271模块接上网络并和Linux系统的S3C2440A模块通信,最后设计成图形化连接界面方便前台独立操作。其设计流程如图 3所示。

图3 软件处理流程

2.1 驱动编译与加载

参考文献[3-5]。由于设计所用的 AR9271是比较新的芯片,一般发行版的Linux(内核版本2.6.35以下)系统没有自带驱动,所以应另外编译ARM版驱动,动态加载。下载码源,进入相应的目录,交叉编译后得到 ath9k_htc.ko文件,拷贝到/lib/modules/driver/下通过NFS挂载文件系统,加载命令为:modprobe ath9k_htc.ko。最后还应激活网卡,相应命令为:ifconfig wlan0 up。

2.2 无线配置工具移植

根据无线网络不同的加密类型,需要配置的命令也不同,其中wireless tools支持的驱动最为全面,但它不能连接 WPA/WPA2加密的网络,而 wpa_supplicant则可以连接WPA/WPA2加密的网络,但支持驱动有限。本设计所用 AR9271为 wpa_supplicant所支持驱动之一。因此,可以连接各种加密网络。下载好相应的码源,对其交叉编译,得到可执行文件,分别为iwlist、iwconfig、wpa_cli、wpa_ passphrase、wpa_supplicant,放至/usr/sbin/目录下。

2.3 连网测试实验

(1)连接无加密网络

对于无加密网络的连接,先扫描周围可以检测到的无线网络,在终端输入:iwlist wlan0 scannig;选择其中一个特别为测试而搭建的无线网络test,再次终端输入:iwconfig wlan0 essid “test”;确认为无加密网络,终端输入:iwconfig wlan0 key off(可不输入本条命令,因为默认是无加密);通过自动获取IP方式连网,最后终端输入:udhcpc –iwlan0,则可以看到获得IP:192.168.1.109,这时可以看到ping –c 4 www.baidu.com有返回值。

(2)连接wep加密网络

对于加密类型为wep的无线网络,操作步骤与连接无加密网络一样,只要把其中的命令:iwconfig wlan0 key off修改为iwconfig wlan0 key xxxx(其中xxxx为10位16进制数或是5位ASCII字符),其余操作不变,最后连上网络。

(3)连接wpa/wpa2加密网络

由于连接加密类型为wpa/wpa2的网络,需要先写好配置文件,才能使用wpa_supplicant进行连接。输入命令:wpa_supplicant –B –iwlan0 –c/etc/wpa_supplicant.conf则表示已经连上网络,通过自动获取IP方式连网,终端输入:udhcpc –iwlan0,则可以看到获得 IP:192.168.1.103,这时可以 ping –c 4 www.baidu.com有返回值。

其中配置文件/etc/wpa_supplicant.conf参考如下:

#指定接口路径

#确保只有root用户才能读取配置文件

#配置文件可重写

#扫描并选择一个网络,当没找到时使用默认网络

2.4 图形化连接界面

鉴于上述整个操作过程都是在终端命令行下操作的,这给使用带来诸多不便,不适合普通用户的使用习惯,可以通过集成开发工具 Qt creator 编写Wi-Fi图形化连接界面[6-8]。根据实际需要可在主界面放置一个网络列表:网络名(SSID)、信号强度(Signal Level)、状态(Status),还有扫描按钮(Scan)、断开按钮(Disconnect)、最小化按钮(Minimize)。当扫描到网络时,点击该网络,则会弹出连接对话框,如果该网络是加密网络则需要输入密码才可连接,对话框中有连接按钮与取消按钮。如图4所示。

图4 Wi-Fi连接开发界面

其中间的列表框用于显示所扫描到的网络,经过简单处理后只显示网络名称、信号强度和状态;扫描按钮用于扫描周围存在的无线网络,可以编写scan_network()函数作为扫描按钮的槽动作;最小化按钮则让整个程序退出界面在后台运行,可以编写minimize()函数做该按钮的槽动作;断开按钮是让所连接的网络正常断开,可以编写disconnect()函数做该按钮的槽动作。

3 实验结果

当完成上述硬件平台搭建、驱动编译和加载、连接应用程序设计,完成了整个 Wi-Fi网络的开发,当打开应用程序用于扫描网络并连接其中一个网络,最小化后,打开网页浏览器输入 www.google. com.hk即可上网。结果如图5所示,测试结果表明,所设计开发的Wi-Fi网络完全可以正常通信,并且实现了图形化的友好连接界面,达到预期目标。

图5 扫描结果

4 结语

本文通过分析Linux下的ARM9体系Wi-Fi网络通信原理,结合当前对无线网络需求更加突出的情况下,从而设计了Wi-Fi网络开发流程,并实现了网络通信,并在此基础上进行了图形化的设计,方便操作,可运用于网络系统开发,对嵌入式的网络设计具有一定的参考作用。

参考文献

[1] 索炜.基于S3C2440+LINUX的无线射频模块的驱动程序设计[D].北京:北京邮电大学,2008.

[2] 张玉杰,马立云,张贺艳.基于ARM和FPGA的LED显示屏控制系统的设计[J].计算机测量与控制,2009,17(12):2429-2431.

[3] 杨峰.C语言完全手册:基本概念、函数参考、编程实例与试题集锦[M].北京:科学出版社,2008:15-48.

[4] 宋宝华. Linux设备驱动开发详解[M].北京:人民邮电出版社,2008:277-296.

[5] CORBET J,GREG Kroath-Hartman,RUBINI A.Linux Device Drivers[M].3rd edition, American:O’Reilly Media.Inc,2005:10-65.

[6] BLANCHETTE J,SUMMERFIELD M.C++ GUI Programming with Qt 4[M].USA:Prentice Hall,2008:80-92.

[7] 丁林松,黄丽琴.Qt4图形设计与嵌入式开发[M].北京:人民邮电出版社,2009:116-124.

[8] 韦东山.嵌入式 Linux应用开完全手册[M].北京:人民邮电出版社,2008:335-360.

猜你喜欢

图形化无线网络加密
基于Arduino图形化编程的教学应用研究
一种新型离散忆阻混沌系统及其图像加密应用
时间触发卫星无线网络同步仿真研究
滤波器对无线网络中干扰问题的作用探讨
一种基于熵的混沌加密小波变换水印算法
LKJ自动化测试系统图形化技术研究
加密与解密
TD-LTE无线网络高层建筑覆盖技术研究与应用
网络图形化界面在高速公路机电设施养护管理系统中的应用
数说无线网络:覆盖广 流量大 均衡差