张 帆 察 豪 崔萌达
(海军工程大学电子工程学院 武汉 430033)
ZHANG Fan CHA Hao CUI Mengda
(School of Electronic Engineering,Naval University of Engineering,Wuhan 430033)
基于ZigBee技术的蒸发波导高度采集系统设计与实现*
张帆察豪崔萌达
(海军工程大学电子工程学院武汉430033)
论文设计实现了基于ZigBee技术的气象参数采集系统,并通过模型计算了蒸发波导高度。ZigBee无线传感网络在家居、工业、医疗等领域应用的发展暗示着它已经成为一种新的技术趋势。为了快速构建气象参数采集无线通信网络,从应用方面着手对ZigBee 技术的网络拓扑结构进行研究和介绍。在IAR 开发环境下,采用TI 公司的Z-STACK 协议栈,以CC2530 芯片为核心构建了一个由若干节点组成的星型无线传感网络。各终端器利用温湿度传感器DHT11采集温度、湿度数据,气压传感器BMP085采集气压数据,并通过网络汇聚到协调器。实现了基于ZigBee 网络的气象参数采集及通信,最终将数据带入P-J模型得到蒸发波导高度。
CC2530; ZigBee; IAR; 蒸发波导高度
ZHANG FanCHA HaoCUI Mengda
(School of Electronic Engineering,Naval University of Engineering,Wuhan430033)
Class NumberTN959
随着现代技术的发展,无线通信技术在许多领域的优势使之得到了越来越多的应用。使用无线传感器网络系统能弥补有线网络系统需要进行大量布线,成本较高,且在恶劣的环境中无法进行布线的缺点。近年来成为国内外的研究热点。自ZigBee联盟推出规范以来,ZigBee技术一直得到国内外无线传感领域的重视,目前已经广泛应用在工业、农业、家庭、医院等各个领域。
关于ZigBee应用的物理层应用芯片已经有很多种类。世界各个国家都有相关厂商出品。比较有代表性的有Jennic的JN5139,Freescal的MC13192和Ember的EM250等。德州仪器也推出了一系列系统级芯片。其中CC2530 是一款兼容IEEE 802.15.4 的片上系统,集成了增强型8051内核,结合TI Z-STACK 协议栈可方便地组建自己的无线通信网络[1]。
本系统通过构建ZigBee网络测量同一时刻,同一地点,不同高度条件下的气象参数,其系统总结构图如图1所示。
图1 系统总结构图
ZigBee的协议结构是建立在IEEE 802.15.4标准基础之上的。IEEE 802.15.4标准定义了ZigBee的物理层(PHY)和媒体访问控制层(MAC);ZigBee联盟则定义了ZigBee协议的网络层(NWK)、应用层(APL)和安全服务规范。如图2是ZigBee协议栈的结构图。ZigBee协议以OSI七层参考模型为基础,只定义了其中与LR-WPAN应用相关的协议层。
图2 ZigBee 协议栈模型
ZigBee协议栈的每层为其上层提供一套服务功能:数据实体提供数据传输服务,管理实体提供其它的服务。所有的服务实体通过服务接入点(SAP)为上层提供一个接口,每个SAP都支持一定数量的服务原语(即请求、指示、响应和证实)来实现所需要的服务功能[2]。
IEEE 802.15.4的物理层提供两类服务:物理层数据服务和物理层管理服务。PHY层功能包括无线收发信机的开启和关闭、能量检测(ED)、链路质量指示(LQI)、信道评估(CCA)和通过物理媒体收发数据包。MAC层提供MAC层数据服务和MAC层管理服务,其主要功能包括采用CSMA/CA进行信道访问控制、信标帧发送、同步服务和提供MAC层可靠传输机制。
ZigBee网络层提供设备加入/退出网络的机制、帧安全机制、路由发现以及维护机制。ZigBee协调器的网络层还负责新网络并为新关联的设备分配地址。ZigBee应用层包括应用支持子层(APS)、ZigBee设备对象(ZDO)和制造商定义的应用对象。APS子层负责维护绑定列表,根据设备的服务和需求对设备进行匹配,并在绑定的设备之间传送信息。ZDO负责发现网络中的设备并明确其提供的应用服务。
ZigBee 网络由一系列网络节点组成,一个网络节点可以包含多个设备,每个设备可支持240个端点。端点作为网络通信中的数据通道,编号为1~240的端点对应可以定义240 个应用对象。此外端点0作为ZigBee设备对象(ZDO)的数据接口。每个端点可定义多个群集(Cluster)。
在ZigBee网络中进行数据收发都是建立在应用规范(Profile)基础上的,设定Profile 是一种规定不同设备对消息帧的处理行为,使不同的设备之间可以通过发送命令、数据请求来实现互操作。它由ZigBee 联盟提供或用户自行建立,在从ZigBee 联盟得到分配的ProfID 后,就可以定义设备描述符和群集(Clusters)。其中描述符用来描述设备类型和应用方式,包括节点、电源、简单、复杂和用户描述符。简单描述符需要在节点的各个终端(Endpoint)中定义,而其他描述符则适用于整个节点。
在ZigBee 网络中,设备可以分为两类,即完整功能设备(FFD)和简化功能设备(RFD)。完整功能设备(FFD)可以作为协调器或路由器在任何拓扑结构中工作,能同其他FFD 或RFD 通信。而RFD 只能作为终端网络节点,并且只能同网络中的FFD 通信。FFD 和RFD 在硬件结构上相同,但在网络层结构中有差异。
ZigBee 网络支持三种网络拓扑结构,为星型网络拓扑、网状网络拓扑和树状网络拓扑[2]。三种拓扑结构见图3。星型网络中,PAN协调器提供组织网络和路由功能,终端网络节点通过协调器进行通信。这种拓扑结构主要用在智能家居、PC 外设等领域。网状网络中每个节点都具智能化,网络中任意节点故障时,附近的无线节点会自动代替该故障的节点,继续进行信息的传输和转发,从而大大提高系统可靠性[3]。
图3 ZigBee网络拓扑
ZStack是德州仪器推出的ZigBee协议栈软件,其为应用开发者提供了一个模板,在其基础上进行开发可以大大加快应用开发周期[4]。
ZStack 采用操作系统的思想来构建,采用事件轮询机制,系统按照任务优先级依次来处理事件,而在事件处理完后,进入低功耗模式,降低了系统的功耗。操作系统抽象层(OSAL)的工作就是对多个任务进行系统资源分配,核心是通过参数传递的事件类型来判断对应处理相应任务的事件。在系统中,通过tasksEvents指针轮询访问事件表的每一项,如果有事件发生,则查找函数表找到事件处理函数进行处理,处理完成后,继续访问事件表,查看是否有事件发生,进而执行事件处理函数,完成各个任务事件处理。其中任务事件的触发有两种方式,一种是通过设置一个软件定时器osal_start_timeEx()函数等待溢出来触发,一种是调用系统消息传递机制来触发。
图4 用户开发程序所需要新增编写文件
在进行应用开发时,需要定义添加相应的任务。其中主要包括任务初始化函数和事件处理函数。任务初始化函数定义一个TasksArr 数组,存放所有任务事件处理函数的地址,给每个任务分配唯一的任务标识号,最后注册系统服务。ZStack协议栈中按照由高到低的优先级已经定义好了MAC层、网络层、硬件驱动抽象层、应用设备对象层的任务,只需按照自己的需求编写应用层的任务及事件处理函数即可,一般情况下,用户只需额外添加三个文件就可以完成一个项目,一个是主文件,存放具体的任务处理函数,一个是这个主文件的头文件,另外一个是操作系统接口文件(以Osal开头),如图4所示。大大增加了项目的通用性和易移植性。
CC2530是一个片上系统解决方案。CC2530芯片的RF性能佳,闪存容量大,封装尺寸小,协议支持也多样。在该芯片基础上设计的气象参数采集节点在室外的最高传输距离可达300m。本节主要讲解气压传感器BMP085[4]的结构(如图5所示)及SHT11温湿度传感器的工作原理。
图5 BMP085结构图
SHT11型传感器由瑞士Sensirion公司生产,该传感器具有相对湿度和温度一体测量、超快的响应时间等优良特性。
SHT11是新型智能温湿度传感器,它将温湿度传感器、信号放大调理、A/D转换、二线串行接口全部集成于一个芯片内,融合了CMOS芯片技术与传感器技术[5]。SHT11传感器默认的测量温度和相对湿度的分辨率一般分别为14位、12位,通过状态寄存器可降至12位、8 位。湿度测范围是0~100RH,对于12位的测量精度为±3. 0%RH; 测温范围为-40~+123. 8℃,对于14位的测量精度为±0. 4℃。
温湿度传感器SHTl1送出的温度、湿度数据必须经过数据转换,才能表示实际的温度和湿度,其公式如下:
Tc=d1+d2×SOT
(1)
(2)
RHTure=(Tc-25)×(t1+t2×SORH)+RHLinear
(3)
式中:Tc为摄氏温度;RHTure为经过温度补偿的相对湿度;d1和d2为和温度分辨率有关的校正系c1、c2、c3、t1、t2为和湿度的分辨率有关的校正系数;SOT为从SHT11中读出的温度值;SORH为从SHT11中读出的湿度值。
BMP085包含电阻式压力传感器、AD转换器和控制单元。控制单元包括E2PROM和I2C接口。E2PROM存储了176位单独的标准数据,这些数据主要用于温度补偿等。
BMP085数据传输采用I2C总线技术,有四种测量模式,分别为极低功耗模式、标准模式、高分辨率模式、超高分辨率模式。气压输出字长为19位,温度输出字长为15位。
实验中利用BMP085气压传感器通过I/O口模拟I2C总线协议进行气压参数测量,其具体工作过程如下。
1) 在利用I2C总线与BMP085进行数据通信时,首先由主机发送启动信号来启动I2C总线。启动信号的格式为:在SCL在高电平期间SDA出现下降沿,图6为启动时序图。
图6 I2C总线启动时序图
2) 向BMP085发送命令:
(1)发送寻址信号
在主机发送完启动信号后即需要发送寻址信号。寻址信号的结构是:设备地址(高7位)+方向位(最低位)。方向位为0则表明接下来主机对从器件进行写操作;方向位为1则表明接下来主机对从器件进行读操作,寻址字节的定义如表1所示。发送命令时寻址信号为从器件地址+0,读取数据时寻址信号为从器件地址+1。
表1 寻址字节的定义
(2)发送寄存器地址
(3)发送需写入寄存器的值
3) 从BMP085读取数据
(1)发送寻址信号(从器件地址+0)
(2)发送寄存器地址
(3)重新开始数据传输
(4)发送寻址信号(从器件地址+1)
(5)取测量值高低各8位
4) 当数据传输完毕后,主机发送停止信号,SDA上产生一个上升沿信号,停止时序图如图7所示。
图7 I2C总线停止时序图
其中有几点注意事项:
(1)I2C总线协议规定,总线上每传送一个字节数据之后,接收设备都需要产生一个应答信号,以确认收到数据。应答信号的格式为:在SCL信号为高电平期间SDA拉低为低电平。应答时序图如图8所示。
图8 I2C总线应答时序
(2)数据传输要在主机向从器件发送寻址信号并得到从器件应答之后,数据传输时每次一个字节,每次传输都应在得到应答信号后再进行下一字节的传输。
(3)当主机为接收设备时,不应答最后一个字节,以向发送设备表示数据传送结束。
气压采集节点上BMP085工作的流程图如图9所示。
图9 BMP085工作流程
终端节点和路由节点大气压采集流程为: 终端节点和路由节点接收到来自协调器节点的采集指令后,将BMP085传感器定期采集的大气压数据进行预处理,然后通过无线网络与协调器节点进行通讯。温湿度采集流程图如图10所示,终端节点通常为节能考虑而间歇性工作,在传输数据之后会进入一定时间的休眠,等待下一个采集指令的到来。
图10 温湿度采集流程图
软件设计主要分为终端节点软件、路由节点软件及协调器节点软件设计[6]。协调器节点上电后,会按照编译时给定的参数,选择合适的信道、合适的网络号,建立ZigBee无线网络。终端节点和路由节点上电后,会进行硬件电路初始化,然后搜索是否有ZigBee无线网络,如果有ZigBee无线网络时,终端节点和路由节点申请加入网络,协调器节点准许加入并分配一个16位的网络短地址,等待采集的气象数据命令,然后将接收的所有数据包通过串口通信发送到PC机上,以便更容易地进行气象数据分析和数据存储。协调器节点、路由节点和终端节点工作流程如图11~图13所示。
图11 协调器工作流程图
图12 路由器工作流程图
图13 路由器工作流程图
搭建好硬件环境后,在本系统中,终端节点每隔1min采集一次温湿度数据并通过无线网络发送给协调器节点,协调器节点再通过RS232串口总线将数据发送到PC机上,串口设置为COM1,波特率设置为19200bps。气压数据串口设置为COM2,波特率设置为115200bps。将本系统测得的数据分别与江苏无线电科学研究所有限公司的ZQZ-CY移动气象站的温湿度数据和VAISALA公司的WXT520移动气象仪的气压数据进行对比。温度传感器测量值与移动气象站测得的温度误差在-0.1~+0.4之间,湿度传感器测量值与移动气象站测得湿度误差在-0.7~+1.1之间,气压传感器BM085测量值与移动气象站测得的气压误差在-0.1~+0.1hPa之间,均符合实验测量误差值范围。对比图如图14,图15所示。
图14 温湿度对比图
图15 气压数据对比图
从以上测试结果对比曲线可以看出,本系统的稳定性较好;从绝对误差曲线可以看出,本系统气压的测量误差范围较小,系统的精度也达到了一定要求。
图16 蒸发波导高度与随气象参数变化图
将气象数据带入P-J模型中进行计算,最终得到蒸发波导高度与各数据之间的关系图,如图16所示。
从以上测试结果对比曲线可以看出,本系统的稳定性较好;从绝对误差曲线可以看出,本系统各气象参数测量误差范围较小,系统的精度也达到了一定要求。
本文主要介绍了基于ZigBee网络的气象参数测量系统的结构和相关软件流程,使用该系统进行实地测量,并与移动气象仪测得的数据进行比较,并根据模型以及测量数据得到蒸发波导高度。结果证明该方案构建合理,能够同时测量多点气象参数,得到波导高度,具有测量精度较高且功耗较低的优点。可进一步完善系统设计并推广。
[1] Ling-Jyh Chen, Tony Sun, Nia-Chiang Liang.An Evaluation Study of Mobility Support in ZigBee Networks[J].J Sign Process Syst,2010,59:111-122.
[2] ZigBee Aliance. ZigBee Specification.[EB/OL].http://www.ZigBee.org./,2008.
[3] 李文仲,段朝玉.ZigBee无线网络技术入门与实战[M].北京:北京航空航天大学出版社,2007:28-30.
[4] 张金燕,刘高平,杨如祥.基于气压传感器BMP085的高度测量系统实现[J].技术与方法,2014(6):64-67.
[5] 张艳丽,杨仁弟.数字温湿度传感器SHT11及其应用[J].工矿自动化,2007(3):113.
[6] 陈铭治,李精明,王侯清.基于CC2530的ZigBee无线气压测量模块设计和实现[J].电脑知识与技术,2014(10):58-60.
[7] 樊建明,陈渊睿.基于SHT11的温室多点测量系统设计[J].国外电子测量技术,2006(25):4-8.
[8] 吕治安.ZigBee网络原理与应用开发[M].北京:北京航空航天大学出版社,2008:69-73.
[9] 沙国荣,赵不贿,景亮,等.基于ZigBee无线传感器网络的温室大棚环境测控系统设计[J].电子技术应用,2012,32(1):60-65.
[10] 左雷,察豪,周沫,等.海上蒸发波导PJ模型在我国海区的适应性初步研究[J].电子学报,2009,37(5):1100-1105.
[11] 陈铭治,李精明,王候清,等.基于CC2530的ZigBee无线气压测量模块设计和时间[J].电脑知识和技术,2014(10):58-60.
Design and Implementation of Evaporation Duct Height Data Acquisition System Based on ZigBee Technology*
The paper designs and implements an acquisition system which is used to collect the atmospheric databased on ZigBee technology then brings the data into model and obtains the evaporation duct height . The application of ZigBee wireless sensor network in the fields of intelligent home,industry,medical health andothers implies that ZigBee is becoming one trend of new technology. In order to rapidly construct the acquisition wireless communication network, the paper introduces and researches the network topology of ZigBee technology from a perspective of application. A kind of a starwireless network including severalnodes is built using theSOC chip CC2530 and TI’s Z-STACK protocol under the development environment IAR. Each terminal can acquisite temperature and humidity data using DHT11 sensor and atmospheric pressure data using BMP085 sensor, then the data is converged to the coordinator through network, finally the data acquisition and communication is implemented based on ZigBee network,then the data is imput into P-J model and the height of evaporation duct is obtained.
CC2530, ZigBee, IAR, height of evaporation duct
2016年2月8日,
2016年3月25日
张帆,男,硕士研究生,研究方向:雷达信号处理。
TN959
10.3969/j.issn.1672-9730.2016.08.023