文档介绍:无线传感器网络节点的设计与实
[摘要]文章设计并实现了一种基于嵌入式linux的无线传感器网络汇聚节点,该节点以arm9处理器s3c2440作为主控芯片,基于linux平台开发远程监控体系。经测试,可以实现无线传感器网络数据接收的功能,并能够将处理好的数据以动态网页的形式提供给用户访问。
[关键词] 无线传感器网络传感器节点嵌入式系统 boa web服务器
无线传感器网络节点
无线传感器网络节点一般由4个部分组成:传感器模块、处理模块、无线收发模块和能量供应模块[1]。传感器模块负责信息采集和数据转换;处理模块控制整个传感器节点的操作,处理本身采集的数据和其他节点发来的数据点提供运行所需的能量,运行高层网络协议;无线通信模块负责与其他传感器节点进行通信;能量供应模块为传感器节点微型蓄电池。
硬件设计
本文所设计的汇聚节点的硬件结构设计中,核心单元为处理器单元和射频单元。处理器采用samsung公司的arm9处理器s3c2440,实现对整个系统的控制。2430射频芯片实现无线传感器网络的创建管理与数据收集的功能。系统的存储采用sdram和flash来实现,网络接入芯片采用dm9000网卡,电源模块与复位模块用来实现整个系统的供能和复位。为了实现系统的监测与调试,又加入了串口模块和jtag模块。
软件设计
建立一个与系统硬件密切相关的嵌入式系统软件平台不仅可以屏蔽系统的硬件特性,而且更是无线传感器网络节点的远程监控软件实现的基础[2]。
对于系统移植而言,linux实际上是由内核部分和系统部分构成。其内核初始化和控制绝大部分硬件设备,为内存管理、进程管理、设备读写等做好一切准备工作;其系统加载必需的设备,配置各种环境以便用户可以使用整个系统。
2430射频芯片接收各个节点采集到的数据,并将接收到的数据作初步处理,再通过虚拟总线发送给s3c2440,s3c2440芯片将接收到的数据包解包后送到数据存储区。需要在linux系统中移植一个boa web服务器,使用cgi编程技术和ajax技术实现动态网页,用户终端就可以通过浏览器访问到实时数据。
(1)2430监控程序
arm-2430监控过程如下:程序运行之后,2430_apace_ropen函数,2430设备的打开。然后打开数据存储区,存储来自无线传感器网络中的数据。接着,系统进入循环状态。2430设备,如果此时没有数据到达,则重新监测,一直等到有数据发送过来,则使用read函数读取数据包,并按照协议解析数据包,将数据送到数据存储区。此时为避免对数据存储区的同时读写,先使用锁定函数锁定数据存储区,然后将数据写入数据存储区,之后再解锁数据存储区,客户端访问,至此则完成了一个数据包的接收。程序进入循环状态,2430设备,等待下个数据包的到来。
(2)建立linux boa服务器
boa web服务器的工作流程:boa从新到达的套接字获得http请求(由一个request结构来存储),使用get_request( )将所有数据保存在request→header_line中,之后调用process_request( )来处理在队列中的每一个请求。根据request结构中status所表示的不同状态,将进行不同的处理。如果这个请求符合