基于ZigBee技术的无线环高测量仪系统
2010-04-26廖俊必
张 艺,廖俊必
(四川大学制造科学与工程学院,四川 成都 610065)
1 引 言
继计算机、互联网、移动通信网之后,传感器网络成为信息产业新一轮竞争制高点的事实已不容置疑。更让人兴奋的是,作为一个新兴技术,我国的无线传感网已经呈现出蓬勃发展之势,与国际相比极具同发优势。今年8月,国务院总理温家宝在江苏无锡调研时,指出“在传感网发展中,要早一点谋划未来,早一点攻破核心技术”,“在国家重大科技专项中,加快推进传感网发展”。无线传感网技术正以其智能化、低功耗、自组织和无线通信等特性渗透到节能、电力、物流、工业自动化等众多行业,可应用领域非常巨大。
ZigBee无线网络是基于IEEE802.15.4技术标准和ZigBee网络协议的数据传输网络,工作于ISM频段,采用的ZigBee协议栈紧凑简单,实现要求低。ZigBee无线网络作为一种新兴的短距离无线网络技术,具有低速率、低功耗、低成本的特点,能够实现快速组网、自动配置和自我维护、路由修复等功能,非常适用于组建距离短、数据交换量不大、网络节点多的无线传感器网络。同时,每个ZigBee网络节点不仅可以直接与监控对象进行数据采集和监控,还可以承担起路由功能,与多个孤立的终端节点建立无线连接。ZigBee技术以其在自动化控制数据传输方面的表现,在2004年被列为当今世界发展最快、市场前景最广阔的十大最新技术之一[1]。
现有的环高测量仪通过对多种传感器的输出信号采集处理来实现活塞环的系数测量,存在布线复杂、机动性差、难以实现组网性能等问题。该文将基于ZigBee技术的无线传感器网络应用于环高测量仪系统,完成了从有线到无线的过渡,以提高系统的灵活性和组网性;设计的基于LabVIEW平台的上位机监控软件可以实现对环高测量仪的网络拓扑结构以及活塞环参数的实时监控。
2 无线环高测量仪系统设计
该无线环高测量仪系统组成结构如图1和图2所示,主要由8031单片机控制的环高测量仪、基于ZigBee芯片CC2430的无线网络、基于LabVIEW串口通信的上位计算机监控系统三大部分组成。上位计算机监控系统中,CC2430模块被设定为网关节点,向上通过串口与LabVIEW监测软件交互通信完成命令传达与数据传输;向下作为协调器进行无线传感器网络的组网和管理,收集网络节点信息以及传感器信息。测量终端系统中,CC2430模块作为子节点加入由网关节点组织的无线网络,以无线方式向网关节点发送本身的网络信息,以及通过串口采集到的由8031单片机输出的传感器信息[2]。
图1 上位计算机监控系统
图2 测量终端系统
该系统采用的ZigBee芯片CC2430是基于8051系列的系统芯片,结合了高性能的射频、增强性能MCU以及芯片可编程闪存,还具备直接存储器定址功能(可用于减轻8051微控制器内核对数据的搬移)、多达8输入的8~14位ADC、两个可编程USART(可用于主/从SPI或UART操作)、可编程看门狗定时器、睡眠模式定时、上电复位、掉电检测电路以及21个可编程I/O引脚等。
CC2430芯片的工作频带范围为2.400~2.4835GHz,工作电压范围为2.0~3.6 V,接收和发送模式下的电流损耗分别低于27 mA或25 mA,数据速率达250 kb/s,碎片速率达2 Mchip/s,接收灵敏度为-94dBm,抗邻频道干扰能力为39dB,采用0-QPSK调制方式,以其休眠模式和短时间的转换到主动模式的特性成为那些要求电池寿命非常长的应用的理想解决方案[1]。由于它的外围电路少、强大和灵活的开发工具,特别是支持编程的USART,非常适用于环高测量仪的无线扩展。
3 系统的软件设计
该设计中,由8031单片机控制的环高测量仪采用汇编语言编程,使得对硬件直接控制能力更强,执行速度更快[3];CC2430模块采用ZigBee协议栈,具有结构紧凑、编程简单等优点。考虑到CC2430芯片虽然集成了增强性能的8051MCU和存储器,但是能力和容量有限,该模块的计算能力十分有限,因而要求终端节点的计算机完成基本数据处理工作。实验中,采用ZigBee2006协议栈和汇编语言混合编程的思想[4],ZigBee协议栈编写软件的调度程序,环高测量仪对数据处理、串口输出等部分编写成子程序模块以供调用,做到了兼顾执行效率高和灵活的特点,实现最优的程序质量。
3.1 上层模块软件设计
上层模块的基本编程思路是:首先,网关节点选择一个信道和一个网络ID用于启动整个网络,然后等待路由器和终端设备的加入。当有设备申请加入该网络时,网关节点将为子设备预先分配一个64位的IEEE地址,加入网络成功以后该子设备将被分配一个与IEEE地址匹配的16位的网络地址,且该16位地址在网络中是唯一的。
网络建立成功以后,打开LabVIEW 8.5监控界面的串口开关,监测串口是否存在网关。如果有网关,则发送命令请求网关传送网络的基本信息(节点的IEEE地址、网络地址);然后解析网关传来的网络节点信息并存储,同时显示网络的拓扑结构以及节点的地址;选定节点,发送传感器数据收集命令;对收到的数据进行解析并显示在相应的节点信息图上。
3.2 下层模块软件设计
下层模块的基本编程思路是:子节点请求加入网络,加入成功后得到网络分配给自己的网络地址,向网关节点发送自己的基本信息;子节点收到传感器数据上报命令时,首先检查地址,如果地址不符则丢弃,如果地址符合则调用读取数据子程序。然后将数据通过无线方式发送给网关节点,重新进入等待状态。
3.3 通信机制
组网功能实现中,网关节点在ZigBee网络中充当协调器,负责整个网络的建立和管理,设定网络类型;普通传感器节点作为路由器,与测量仪连接的传感器节点被设计成终端设备。节点的设备类型参数设置如下:
表1 Cluster命令对应表
4 监控软件
该监控软件是在虚拟仪器开发平台LabVIEW 8.5环境下开发的,采用模块化编程思想,提供清晰的图形化操作界面[5]。
监控软件功能的实现是通过串口与网关节点交互通信。监控软件向网关节点发出命令WNⅠ,网关节点通过串口收到该命令后,通过串口向上位机监控软件回复网络中节点的设备属性、地址等信息。监控软件向网关节点发出命令WA,网关节点通过串口收到后,以无线方式向普通传感器节点发出传感器信息收集命令(Zg_SensorReq_ClusterID);普通传感器节点接收到信息收集命令后,解析其中的网络地址,若地址匹配,则调用环高测量仪的8031微控制器进行传感器数据的采集、处理和传输;子节点将传感器信息以无线方式回复给网关节点,回复命令为Zg_SensorReqReq_ClusterID。网关节点接收到普通传感器节点通过无线传来的数据,通过串口中转给监控软件,命令为WAA;监控软件将信息提取并显示。
节取串口通讯程序段,以说明WAA命令的使用方法:
在监控界面的控制台,设定了网络信息、传感器数值传送、命令准备状态三种操作命令。选择“网络信息”命令,将实时显示网络拓扑结构以及各个节点的IEEE地址、16位的唯一网络地址,并将节点的地址信息存储至节点具体信息的节点地址库;选择“传感器数值传送”命令,在节点网络地址中输入想要得到信息的终端节点地址,点击“发送命令”按钮,在前面板的传感器数值图中,将显示网关节点、路由节点以及终端节点的运行状态,同时终端节点传送来的传感器测量数据,以及各个节点自身的电源电压值、温度值、光强值信息也将以动态图形方式显示出来。在前面板的传感器数值表格中同步记录了各个节点的所有传感器信息[6-7]。监控软件如图3和图4所示。
图3 基于LabVIEW的监控软件主界面
图4 节点电压、温度信息
5 结束语
基于ZigBee网络技术的无线环高测量仪系统不但实现了对活塞环参数的在线检测、实时监控,同时解决了现场布线复杂的问题,提高了系统的灵活性和组网性。但是,无线传感器网络还存在着诸如数据传输丢失、节点的数据处理能力不强、监控系统易受到工作环境干扰等问题,随着无线传感器网络研究的不断深入,这些问题将逐步得到解决和改善。无线传感器网络的应用前景势必将越来越广阔。
[1] 李文仲,段朝玉.ZigBee2006无线网络与无线定位实战[M].北京:北京航空航天大学出版社,2008.
[2] 薛钧义,张彦斌.MCS-5196系列单片微型计算机及应用[M].西安:西安交通大学出版社,2001.
[3]蒋大文,杨大磊,于 鹏.新型活塞环综合测量仪系统软件的设计[J].机械与电子,2004(12):31-33.
[4] 杜树春.单片机C语言和汇编语言混合编程实例详解[M].北京:北京航空航天大学出版社,2006.
[5]杨乐平,李海涛,杨 磊.LabVIEW程序设计与应用[M].2版.北京:电子工业出版社,2005.
[6] 王庆东,陈江洪,汤雪华,等.基于ZigBee技术的空调温度无线监测系统 [J].上海电机学院学报,2008,11(3):239-242.
[7]林少锋,何 一.基于CC2420的ZigBee无线网络节点设计[J].电子设计工程,2009,17(3):66-68.
[8]徐爱钧.IAR EWARM嵌入式系统编程与实践[M].北京:北京航空航天大学出版社,2006.
[9] 李光飞,楼然苗.单片机C程序设计实例指导[M].北京:北京航空航天大学出版社,2005.
[10]UlemaM.Wirelesssensornetworks:architectures,protocols,and management [J].IEEE/IFIP Network Operation and Management Symposium,2004,3(1):21-23.
[11]Liu Y,Wang C,Qiao X,et al.An improved design of ZigBee wireless sensor network[C]∥2ndIEEE International Conference on Computer Science and Information Technology,2009,8(11):515-518.