无线传感器网络节点的设计与实

时间:2022-10-23 04:50:38

无线传感器网络节点的设计与实

[摘要]文章设计并实现了一种基于嵌入式Linux的无线传感器网络汇聚节点,该节点以ARM9处理器S3C2440作为主控芯片,基于Linux平台开发远程监控体系。经测试,可以实现无线传感器网络数据接收的功能,并能够将处理好的数据以动态网页的形式提供给用户访问。

[关键词] 无线传感器网络 传感器节点 嵌入式系统 Boa Web服务器

无线传感器网络节点

无线传感器网络节点一般由4个部分组成:传感器模块、处理模块、无线收发模块和能量供应模块[1]。传感器模块负责信息采集和数据转换;处理模块控制整个传感器节点的操作,处理本身采集的数据和其他节点发来的数据点提供运行所需的能量,运行高层网络协议;无线通信模块负责与其他传感器节点进行通信;能量供应模块为传感器节点微型蓄电池。

硬件设计

本文所设计的汇聚节点的硬件结构设计中,核心单元为处理器单元和射频单元。处理器采用Samsung公司的ARM9处理器S3C2440,实现对整个系统的控制。射频单元采用CC2430射频芯片实现无线传感器网络的创建管理与数据收集的功能。系统的存储采用SDRAM和FLASH来实现,Internet网络接入芯片采用DM9000网卡,电源模块与复位模块用来实现整个系统的供能和复位。为了实现系统的监测与调试,又加入了串口模块和JTAG模块。

软件设计

1.嵌入式Linux系统移植

建立一个与系统硬件密切相关的嵌入式系统软件平台不仅可以屏蔽系统的硬件特性,而且更是无线传感器网络节点的远程监控软件实现的基础[2]。

对于系统移植而言,Linux实际上是由内核部分和系统部分构成。其内核初始化和控制绝大部分硬件设备,为内存管理、进程管理、设备读写等做好一切准备工作;其系统加载必需的设备,配置各种环境以便用户可以使用整个系统。

2.远程监控软件系统

无线传感器网络节点实现远程监控主要通过CC2430射频芯片接收各个节点采集到的数据,并将接收到的数据作初步处理,再通过虚拟总线发送给S3C2440,S3C2440芯片将接收到的数据包解包后送到数据存储区。需要在Linux系统中移植一个Boa web服务器,使用CGI编程技术和AJAX技术实现动态网页,用户终端就可以通过浏览器访问到实时数据。

(1)ARM系统对CC2430监控程序

ARM-Linux软件系统对CC2430监控过程如下:程序运行之后,首先调用CC2430设备驱动中的cc2430_apace_ropen函数,实现对CC2430设备的打开。然后打开数据存储区,存储来自无线传感器网络中的数据。接着,系统进入循环状态。通过调用select函数来监测CC2430设备,如果此时没有数据到达,则重新监测,一直等到有数据发送过来,则使用read函数读取数据包,并按照协议解析数据包,将数据送到数据存储区。此时为避免对数据存储区的同时读写,先使用锁定函数锁定数据存储区,然后将数据写入数据存储区,之后再解锁数据存储区,方便Internet客户端访问,至此则完成了一个数据包的接收。程序进入循环状态,重新监测CC2430设备,等待下个数据包的到来。

(2)建立Linux Boa服务器

Boa web服务器的工作流程:Boa从新到达的套接字获得HTTP请求(由一个request结构来存储),使用get_request( )将所有数据保存在requestheader_line中,之后调用process_request( )来处理在队列中的每一个请求。根据request结构中status所表示的不同状态,将进行不同的处理。如果这个请求符合HTTP协议,则会调用process_option_line( )将一些头部信息填写到request结构中完成这些环境变量的设置,随后process_header_end( )会对用户进行验证。如果验证通过,则判断request结构中的is_cgi,非0则是CGI程序,调用init_cgi( )函数进行处理,为0则是静态页面,调用init_get( )函数进行处理。

(3)基于AJAX的实时监控动态网页

本设计采用基于AJAX技术(asynchronous JavaScript and XML)与CGI技术实现无线传感器网络的实时监控动态网页。

AJAX是Web应用中JavaScript和XML相结合的一种异步交互式网页开发技术,可以实现网页无刷新动态更新的效果。它提供了到HTTP协议的所有细节的完整存取,包括头部和数据的任何定制格式。

通用网关接口CGI(Common Gateway Interface)是外部扩展应用程序与web服务器进行数据交流的一种接口,Web服务器控制调用CGI程序可以实现外部应用程序的执行,CGI程序就是按照标准接口编程实现的运行于Web服务器上的一种程序。在无线传感器网络节点的软件系统中,CGI程序主要的功能是向客户端返回无线传感器网络中的实时数据。

要实现对无线传感网络节点数据的实时监控,首先需要通过表单向AJAX引擎发送请求,然后AJAX引擎会不断地向web服务器发送请求,要求调用服务器中的CGI程序以获取网络实时数据,无刷新实时监控网页中的数据。

系统测试

测试实验中,选用8个CC2430、组建的汇聚节点和一台PC机。将汇聚节点和PC机接入Internet,PC机作为客户端,CC2430作为通用节点与汇聚节点构成一个星型拓扑结构的无线传感器网络,设置汇聚节点的IP为192.168.1.230。预先设定好数据,通用节点定时向汇聚节点发送数据包,汇聚节点接收到数据包后解包处理,等待PC机通过Internet访问。在客户端PC机上打开支持JavaScript的浏览器,单击动态监控首页上的send按钮发送请求,屏幕上就会实时地显示由8个通用无线节点所发送的数据包经过解包后的结果。

结束语

结果表明,所设计的汇聚节点能够通过Internet对远程的节点采集的数据进行实时动态监测。下一步,计划将所设计的节点与具体的实际应用相结合,扩展其应用范围。

参考文献:

[1]孙利民,李建中.无线传感器网络[M].北京:清华大学出版社,2005:51—55.

[2]郑灵翔.嵌入式Linux系统设计[M].北京:北京航空航天大学出版社,2008:61—70.

作者单位:西安培华学院 陕西西安

上一篇:英语词汇呈现方式与词汇教学效果的相关性实证... 下一篇:高中政治课教学与人文精神