ZigBee无线传感器网络在远程环境监测中的应用设计
中心控制节点负责启动整个网络和维护节点,采集无线传感器网络上传来的环境参数,并通过串口发送到监控中心计算机上,同时侦听串口接收中断,用以向传感器节点发送模式控制指令,因此,在中心控制节点的硬件平台上可扩展使用RS232串口。考虑到功耗等问题,电源系统的设计采用稳压电源供电,这样电量较为充足,能够满足系统需求。除了上述特殊需求外,中心控制节点的结构设计与传感器节点的不同之处是其不包含传感器组和信号调理模块。
3 软件程序设计
3.1 无线传感器网络层数据帧
传感器节点、中心控制节点之间的数据传输必须遵循一定的数据格式,才能保证传输数据的正确性和有效性。一种有效的数据帧格式对于通信网络中数据的准确传输能起到事半功倍的效果。数据帧的定义应该满足两个条件:一是要具有很好的扩展性,以方便系统扩展其他服务;二是要尽量简洁,以减少通信网络中的数据流量,使数据通信更通畅。
当传感器节点向中心控制节点发送数据时,必须让中心控制节点知道自己上传数据的类型以及自己的设备特征,这样,当出现异常时,监测网络就可以报告出现异常的区域以及异常的特征。考虑到这个需求,在网络中传输的数据就必须按照网络约定的格式进行存储。图4所示是无线传感器网络层数据帧的格式定义。
其中OXAAH为帧头,是一个数据帧开始的标志;
0XBBH为帧尾,是一个数据帧结束的标志;
校验和用于表示通过校验位来检验数据帧在传输过程中是不是发生了数据位的改变,通常从帧类型到数据域尾进行加和校验;
通过帧类型域可以判断此数据帧所携带的是哪一种数据。为了满足系统需求,一般可设置周期采集数据和中断数据两种数据类型。其中
“0X01H”表示中断数据, “0X02H”表示周期采集数据。
利用设备标识,在无线传感器网络中,传感器节点在此域中写入自己的短地址的低字节作为自己的标志,上级网络根据这个标志就可以知道是哪个设备的数据。
数据域是数据帧的主要部分。在无线传感器网络中,数据域包括系统定义的几种参数测量值(3字节ASII码)。在系统定义的数据帧格式中,各个参数的位置是固定不变的,顺序依次为温度值、湿度值、节点电池电压值,因此,数据域的长度为固定的9字节。存放测量值的数据域每次都在传感器点采集数据前都将民初始化为全0,这样,如果某个参数没有传递过来自己的测量值,上级设备就可以根据某段数据是否为全0来判断数据是否成功采集。
3.2 中心控制节点程序设计
中心控制节点是无线传感器网络与监控中心交互的关键部分。它作为无线传感器网络的协调器,可建立一个新的ZigBee无线通信网络,以负责网络标识符的选取,并允许加入网络,实施节点绑定;接收传感器节点的环境数据,并进行预处理;同时,还通过RS232串口将数据传输到监控中心进行数据分析和处理。因此,中心控制节点应该一直处于活跃的工作状态,时刻监听无线数据和串口数据,其中心控制节点的设计流程如图5所示。
中心控制节点在无线传感器网络中充当着协调器的角色,它应该具有建立一个新的网络并允许其他节点加入的能力;同时,中心控制节点还要实现无线传感器网络和监控中心计算机的数据通信功能。中心控制节点工作时,首先用电源开关S1启动监测站网关,以开始建立一个新的网络过程,并进行串口初始化。监测站网关的应用程序应通过应用层接口与协议栈连接,从而建立网络、允许加入网络和绑定等,而且这些工作应在协议栈内自动完成。
初始化完毕后,中心控制节点即进入一个无限循环。在此循环中,中心控制节点首先判断是否有串口中断指令,然后响应指令,并将指令广播发送到传感器节点;若无串口中断数据,则侦听空中无线数据,若侦听到无线数据经加和校验判断为有效数据,则将数据通过串口发送到监控中心。
3.3 传感器节点程序设计
考虑到节点对能耗的要求,节点不应该一直不停歇的对监测区域的环境参数进行采集,因此,本系统为传感器节点设计了周期采集和睡眠两种工作模式。在周期采集模式下,网络中采集数据的节点将按照设定的时间间隔和循环采集次数对环境数据进行采集和上传,当采集发送指定次数后,传感器节点自动进入睡眠模式。传感器节点的工作流程如图6所示。
传感器节点初始化工作完成后,即可运行ZStack协议栈,以自动完成加入网络、建立邻居表等底层操作。应用层在收到成功入网的事件消息后,将设置睡眠定时器并开启全局中断,此后节点将进入睡眠状态以实现低功耗工作。在睡眠状态下,传感器节点的大部分内部电路掉电关闭,只有上电复位、外部中断、
- 基于Zigbee技术家用无线网络的构架(12-14)
- 基于精简协议栈的ZigBee网络节点研究(07-17)
- ZigBee无线传感器网络的研究与实验(02-08)
- 解析ZigBee堆栈架构(03-26)
- 组建SMAC协议构架的ZigBee星形网络(06-11)
- ZigBee基本技术问答(12-07)