现有的机房监控主要采用人工监控和有线监控两种方法。传统的人工检测和控制方法费时费力;有线传输面临着布线复杂、维护和更新升级困难,而无线传感网络技术的诞生给它带来了一场全新的革命。
文中提出了一种基于ZigBee无线网络技术的智能机房环境监控系统设计方案,通过对机房的湿度、温度、光照、火警和水浸等几个重要因素进行实时的智能化监测和控制,同时还可以通过手机短信通知管理者。文中重点介绍了基于ZStack的应用程序开发,实现了对机房内多种信息的远程监测、处理和控制。
1 ZigBee无线网络技术
ZigBee是一种新兴的短距离、低速率无线网络技术。它是一种介于无线标记和蓝牙之间的技术方案。ZigBee是建立在IEEE 802.15.4标准之上的,IEEE规定了ZigBee的物理层和媒体接入控制层,网络层、应用支持子层和高层应用规范由ZigBee联盟制定。ZigBee协议规定了3个可用频段868 MHz、915 MHz和2.4GHz,分别提供:1个、10个和16个共计27个信道。其中2.4GHz为全球通用频段,传输速率达250Kb/S。 ZigBee技术采用CSMA—CA的信道接入方式,可有效避免通信的冲突。
ZigBee网络支持星状、网状和树状三种自组织无线网络类型,其连接地址分为16位短地址和64位长地址,最多一个主节点可管理254个子节点;同时主节点还可由上一层网络节点管理,可组成多达65 000个节点的大网,一个区域可以有100个ZigBee网络同时存在。
基于ZigBee技术的无线传感器网络是集信息采集、信息传输、信息处理于一体的综合智能信息系统,具有低成本、低功耗、低速率、高可靠性等特点。
2 系统总体设计
2.1 系统结构
以自动控制原理为理论基础,应用传感器与执行器件构成闭环控制系统。传感器节点配有传感器感知机房环境,控制节点配有执行器件改善机房环境。传感器节点与控制节点相互配合,共同为机房内机器运行提供适宜的环境。
本系统由无线传感器网络、网关和主控中心组成。无线传感器网络是物联网的神经末梢,负责感知环境的变化,并将数据通过网关传输到互联网。系统结构如图1所示。
2.2 网关系统结构
网关是互联网与无线传感器网络之间的数据通讯桥梁。本方案提供了3种网关接入方式:本地访问、手机访问和互联网访问。网关系统结构如图2所示。
2.3 传感器网络结构
ZigBee网络存在3种逻辑设备类型,即协调器、路由器、终端设备,并且在一个ZigBee网络中有且只有一个协调器。当协调器被激活后,它就会建立一个自己的网络。本方案采用的是星型网络,在星型网络结构中只有一个唯一的PAN主协调器,通过选择一个PAN标识符确保网络的唯一性。路由或终端都可以加入到这个网络中来。
3 硬件设计
本系统硬件主要包括3部分,其中无线传感器网络核心是基于TI公司的CC2430开发的无线模块;网关是基于ARM微处理器的嵌入式平台;主控中心是PC机。
CC2430是挪威Chipcon公司的一款真正符合IEEE802.15.4标准的片上ZigBee产品。这种解决方案能够提高性能并满足以ZigBee为基础的2.4 GHz ISM波段应用,及对低成本、低功耗的要求。CC2430无线单片机在待机时的电流消耗仅0.2μA,在32 kHz晶振下运行时的电流消耗小于1μA。因此,使用小型电池寿命可以长达10年
3.1 ZigBee协调器节点硬件设计
ZigBee协调器节点主要由无线收发器CC2430、射频天线RF、电源模块、晶振模块、串口模块和LED指示灯组成,功能模块如图3所示。RF的输入/输出是高阻和差动的,用于RF口最合适的差动负载是(115+180 Ω)。当使用不平衡天线时为了优化性能,应当使用不平衡变压器。由于CC2430的工作电压为3.3 V,所以要用电压转换模块把5 V降到3.3 V。CC2430可以同时接32 MHz和32.768 kHz的两种频率的晶振电路,以满足不同的要求。串口模块用于ZigBee协调器将无线接收的数据信息传送给网关,同时接收网关传送过来的控制命令。LED指示灯用于显示网络连接状态。
3.2 传感器节点硬件设计
无线传感器节点由各种数据采集模块、CC2430数据传输模块、电源模块和外部数据存储等功能模块组成,功能模块如图4所示。数据采集模块负责采集监测区域的温度、湿度、光照强度、火警和水浸等信息并完成数据转换;CC2430数据传输模块负责与路由节点进行无线数据交换、传输采集数据、接收控制命令。外部数据存储模块用来保存传感器节点采集的数据。电源管理模块采用两节5号干电池。LED指示灯显示加入或退出网络的状态。
路由器节点的主要任务是将不同区域的数据从传感器节点路由到协调器节点,因此电路比较简单,不再赘述。
4 软件设计
本系统采用的开发环境是IAR7,系统软件是基于TI公司的Z-Stack 2006协议栈开发。从系统结构中可以看出本系统软件设计包括3大部分:无线传感器网络基于Z-Stack的应用程序开发;网关基于Qt的应用程序开发;主控中心Web应用程序开发,本文着重实现基于Z-Stack的应用程序开发。
4.1 ZigBee协议栈
ZigBee协议栈由一组子层构成,每一层向它的上层提供数据和管理服务,分别为物理层(PHY)、媒体访问控制层(MAC)、网络层(NWK)和应用层(ADL),应用层又分为:应用支持子层(APS)、ZigBee设备对象(ZDO)和由制造商制定的应用对象。其中PHY和MAC位于最低层,且与硬件相关;除此之外的其他层建立在PHY和MAC层之上,并且完全与硬件无关。分层的结构脉络清晰、一目了然,给设计和调试带来极大的方便。
实际开发中根据需要将协议栈的层次又做了细化,Z-Stack软件的总体架构如图5所示。Z-Stack中的硬件抽象层HAL提供各种硬件模块的驱动,基于HAL之上是操作系统抽象层OSAL,OSAL实现了一个易用的操作系统平台,以实现多任务为核心的系统资源管理机制。Z-Stack采用操作系统的思想来构建,采用事件轮循机制,当各个层初始化完成后,系统将会进入低功耗模式,当有事件发生时,系统立刻被唤醒,并转而进入中断处理事件,处理完成后再次进入低功耗模式,减少功耗。OSAL把优先级放在了最重要的地位。当在处理的任务中有两个以上事件待处理,处理完一件后,也要去查询优先级更高的任务。赋予优先级高的任务最大的权利,尽可能保证高优先级任务的每一个事件都能得到最及时的处理。操作系统任务调度流程如图6所示。
开发所用协议栈目录结构如图7所示。主要用到的文件有:ZMain/ZMian.c、Tools/f8wConfig.cfg、App/OSAL_SampleApp.c和App /SampleApp.c。其中ZigBee协议栈的main函数在ZMain.c中,总体上来说它一共做了两件事,一个是系统初始化,即由启动代码来初始化硬件系统和软件架构需要的各个模块;一个是执行操作系统实体。fSwConfig.cfg为网络配置文件。App/OSAL_SampleApp.c为操作系统任务初始化和添加文件。App/SampleApp.c为应用程序核心文件。整个Z-stack的主要工作流程大致分为:系统启动,驱动初始化,OSAL初始化和启动,进入任务轮循几个阶段。