其中OXAAH为帧头,是一个数据帧开始的标志;
0XBBH为帧尾,是一个数据帧结束的标志;
校验和用于表示通过校验位来检验数据帧在传输过程中是不是发生了数据位的改变,通常从帧类型到数据域尾进行加和校验;
通过帧类型域可以判断此数据帧所携带的是哪一种数据。为了满足系统需求,一般可设置周期采集数据和中断数据两种数据类型。其中
“0X01H”表示中断数据, “0X02H”表示周期采集数据。
利用设备标识,在无线传感器网络中,传感器节点在此域中写入自己的短地址的低字节作为自己的标志,上级网络根据这个标志就可以知道是哪个设备的数据。
数据域是数据帧的主要部分。在无线传感器网络中,数据域包括系统定义的几种参数测量值(3字节ASII码)。在系统定义的数据帧格式中,各个参数的位置是固定不变的,顺序依次为温度值、湿度值、节点电池电压值,因此,数据域的长度为固定的9字节。存放测量值的数据域每次都在传感器点采集数据前都将民初始化为全0,这样,如果某个参数没有传递过来自己的测量值,上级设备就可以根据某段数据是否为全0来判断数据是否成功采集。
3.2 中心控制节点程序设计
中心控制节点是无线传感器网络与监控中心交互的关键部分。它作为无线传感器网络的协调器,可建立一个新的ZigBee无线通信网络,以负责网络标识符的选取,并允许加入网络,实施节点绑定;接收传感器节点的环境数据,并进行预处理;同时,还通过RS232串口将数据传输到监控中心进行数据分析和处理。因此,中心控制节点应该一直处于活跃的工作状态,时刻*无线数据和串口数据,其中心控制节点的设计流程如图5所示。
中心控制节点在无线传感器网络中充当着协调器的角色,它应该具有建立一个新的网络并允许其他节点加入的能力;同时,中心控制节点还要实现无线传感器网络和监控中心计算机的数据通信功能。中心控制节点工作时,首先用电源开关S1启动监测站网关,以开始建立一个新的网络过程,并进行串口初始化。监测站网关的应用程序应通过应用层接口与协议栈连接,从而建立网络、允许加入网络和绑定等,而且这些工作应在协议栈内自动完成。
初始化完毕后,中心控制节点即进入一个无限循环。在此循环中,中心控制节点首先判断是否有串口中断指令,然后响应指令,并将指令广播发送到传感器节点;若无串口中断数据,则侦听空中无线数据,若侦听到无线数据经加和校验判断为有效数据,则将数据通过串口发送到监控中心。
3.3 传感器节点程序设计
考虑到节点对能耗的要求,节点不应该一直不停歇的对监测区域的环境参数进行采集,因此,本系统为传感器节点设计了周期采集和睡眠两种工作模式。在周期采集模式下,网络中采集数据的节点将按照设定的时间间隔和循环采集次数对环境数据进行采集和上传,当采集发送指定次数后,传感器节点自动进入睡眠模式。传感器节点的工作流程如图6所示。
传感器节点初始化工作完成后,即可运行ZStack协议栈,以自动完成加入网络、建立邻居表等底层操作。应用层在收到成功入网的事件消息后,将设置睡眠定时器并开启全局中断,此后节点将进入睡眠状态以实现低功耗工作。在睡眠状态下,传感器节点的大部分内部电路掉电关闭,只有上电复位、外部中断、32.768 kHz睡眠时钟处于活跃状态,但此时传感器节点能够时刻侦听空中的无线数据。在睡眠模式下,若传感器节点侦听到无线数据,则对接收到的数据进行解析。若为有效的周期采集命令,则唤醒传感器节点进入周期采集工作模式,同时设置周期采集时间间隔Tc和采集次数N。开始循环采集上传环境数据。当采集发送到指定次数时,传感器节点又自动进入睡眠侦听模式。
若传感器节点未侦听到无线数据,则判断睡眠定时器是否溢出,若睡眠定时器未溢出,则继续睡眠侦听;反之,定时器溢出中断触发一次环境数据采集过程,并判断环境参数是否超出阈值,若超出阈值,则启动报警电路,并将异常数据打包发送到监测站网关;如果采集到的环境参数在正常范围内,则丢弃该数据,节点继续睡眠侦听。
4 结束语
本文提出了无线传感器网络环境监控系统的整体架构、底层硬件和应用程序软件的设计方法。该系统经连接测试可组成多层分簇无线网络,从而实现数据的传输,并可达到预期效果,同时系统稳定性、响应速度等性能都可满足实际需求。此外,本系统还具有良好的扩展性,可以根据具体要求方便地在数据采集模块上进行相应传感器的扩充以完成特定数据采集的需要。Zigbee无线传感器网络因其组网灵活、节点耗电低、可自动恢复等强大功能,其应用领域将会越来越广泛。
,ZigBee无线传感器网络在远程环境监测中的应用设计