虞致国,万书芹,陈子逢,魏 斌,黄召军
(中国电子科技集团公司第58研究所,江苏 无锡 214035)
近年来,随着传感网技术的快速发展,如何实现对监测对象的远程数据采集和实时监控成为了一个研究和开发热点。无线数据采集和监测系统在智能农业、智能医疗、智能安防和智能家居等领域获得了广泛的应用[1~6]。在上述应用中,系统的很多功能和要求是类似的[7~11],且大多数要求节点具备低功耗特性。
因此,如何设计适用于多种环境和应用领域的多功能、低功耗无线数据采集平台具有重要意义。为此,设计实现了基于ZigBee的可配置无线数据采集平台,利用ZigBee通信标准来实现各采集点和管理终端的无线传输。在该平台的实现过程中,重点考虑节点的多功能化、低功耗特性,以及管理终端软件对网络的管理和配置。
系统由采集网络和监控软件组成,系统结构如图1所示。采集网络基于网状(Mesh)网络实现,包括一个协调器节点、多个路由器节点和采集节点。协调器节点主要实现网络管理和与监控软件通信的功能。路由器节点主要实现节点的数据转发功能。采集节点可根据应用情况接传感器,实现数据采集。监控软件安装在管理终端上(一般采用PC),通过计算机接口和协调器节点进行通信,从而实现对整个网络的管理和数据的采集。
图1 采集平台系统结构
采集平台的特征如下。
(1)节点包括协调器、路由器节点,无线数据采集节点,采用模块化设计;
(2)节点采用ZigBee协议栈进行无线自组网,使用2.4 GHz ISM频段;
(3)节点可远程配置系统采集周期、休眠间隔、发送功率和节点类型等多种网络参数;
(4)采集终端传感器接口丰富,可接多种模拟传感器、智能传感器(SPI/IIC/UART/PWM/GPIO)等;
(5)节点参数采用Flash存储,节点上电后自动读取配置参数:网络参数存储在芯片的Flash里,若芯片断电后再上电,不需要对节点进行重新配置,直接读取Flash中的网络参数即可;
(6)监控软件具有发送功率配置、模拟通道配置、数字通道配置、节点休眠配置和报表生成等功能。
为了节省硬件开发成本,所有的节点采用同样的设计,只是在具体器件的焊接时可以根据节点的类型进行取舍。节点由传感器接口、MCU模块、人机接口和供电系统等组成,节点系统结构如图2所示。对于采集节点,LCD显示部分及电源指示灯不予焊接。PC机的监控软件通过USB接口与节点相连。
多功能无线采集节点的MCU担负着系统管理、控制及无线收发等作用,是节点的核心单元。在选择硬件方案时,重点从节点实际应用方面考虑,如芯片的集成度、软件开发、芯片的低功耗模式和对外接口等几个方面。经过比较,选用FreeScale公司的ZigBee集成芯片MC1322X作为核心芯片,该芯片集成度高,并在开发环境中提供了ZigBee 2007/PRO协议栈。MC1322X内含射频通信电路,支持ZigBee通信协议,最高传输率达250 Kbps。该芯片内含巴伦电路,无线部分硬件设计比较简单,只要外接2.4 GHz的单端天线即可。
图2 节点硬件设计方案
MC1322X接口丰富,为了适应将来多类型传感器,节点保留了多种类型的传感器接口,节点引出了MC1322X的大部分接口进行传感器接入,包括数字量状态接口(GPIO)、模拟量接口(ADC),智能传感器接口(包括 IIC,UART/485/422,SPI和 PWM 等)。其中模拟量的接口内部还要考虑信号的调理和ADC稳压源的实现。对于ADC采集部分,采用芯片LM385-2.5提供ADC转换的外部参考电压输入。
系统包含5 V电源、USB和电池三种供电方式,其中5 V电源和USB5V电源经过TPS79533后变成3.3 V。TPS79533功耗低、噪声小,适合于射频系统设计。不使用USB接口时,如采用5V或电池供电,为了降低功耗,可考虑断开USB接口电路电源;在使用接口时,无需采用5 V供电(因为USB接口含5 V输入);此外,采用5 V或USB接口时,为了防止它们对电池充电,必须自动断开电池供电。因此,系统内部设计了电源接入方式识别电路,当接入5 V电源时,USB芯片的供电会自动断开;接入电池时,USB芯片和TPS79533的供电也会自动断开。
MC1322X芯片带有两个UART接口,由于目前大多数计算机都不带RS232接口,所以,节点添加了UART转USB芯片(FT232RL)。
(1)配置接口
为了能够现场更好对节点进行配置,节点参数还可以通过USB接口进行现场配置。具体实现的思路是,节点启动后,等待UART参数配置;如不配置可通过按键加入网络。
(2)软件升级
MC1322X主要有三种方式对软件进行升级,一是JTAG,二是USB,三是采用无线升级。其中JTAG接口太大,不便于现场升级,只适用于调试或第一次写入程序。无线升级的优势是可以远程升级,缺点是必需两个节点。采用USB接口写入程序,FreeS-cale提供了上位机的擦写程序,使用也比较方便,但擦写前,芯片要求先对Flash进行擦除。擦除片内Flash,FreeScale公司推荐的方法是:先对引脚ADC2_VERFH、ADC2_VREFL分别进行接地和接高电平,然后再去除接触(目的是擦除内部Flash),这样就带来了操作上的不方便,也不便于现场升级。本文对此进行了改进,如要升级程序,可对其中一个按键进行长按,软件识别长按后对 Flash进行擦除。Flash被擦除后,再采用USB接口进行写入。
(3)按键和显示
显示包括LCD显示屏、LED指示灯。按键功能由软件设计,可包括重置、加入网络及采集功能启动等。LED指示灯包括电源指示、系统状态指示灯。LCD显示屏采用SPI接口进行控制,模块内置升压电路。
对于采集节点来说,大多需要采用电池供电,因此,采集节点的低功耗设计尤为重要。硬件低功耗要充分利用芯片的硬件特性,下面从两个方面进行重点考虑:电源、时钟。
(1)电源可控
当MC1322X进入低功耗后,MCU消耗的功耗很低。如果外围芯片不能及时关闭,它的静态电流仍然存在,其数值或将远超过MCU的低功耗电流,大大影响了系统的低功耗设计性能,因此,在本设计中,需要关闭的芯片主要有基准源芯片、UART转USB接口芯片等。为了降低芯片功耗,MC1322X在进入低功耗状态后,芯片引脚(PAD)可以不保持电源驱动,但KBI[3∶0]引脚除外,它们可以保持自己进入低功耗前的状态。因此,可以采用这些引脚来控制P沟道FET,用FET的关断来控制相关芯片的电源,从而达到最低功耗设计。节点的电源可控设计结构如图3所示。
(2)采用低功耗时钟
图3 节点的电源可控设计结构
MC1322X设有两种睡眠模式:Doze(浅睡眠)、Hibernate(深度睡眠)。分别要求不同的时钟源。因此,在设计上采用了三个时钟晶振:主晶振(24 MHz)、辅助晶振(32.768 kHz)及内部 2 kHz环形振荡器。在正常工作状态和Doze状态下,采用主晶振时钟;当处理器进入Hibernate状态时采用辅助晶振或内部振荡器,达到降低功耗的目的。
系统软件设计主要包括各类节点软件设计、PC的监控软件设计,软件功能如图4所示。节点软件的开发以FreeScale公司的Beekit为基础,采用IAR System进行编译。PC的监控软件设计以VB、数据库软件为基础进行开发。系统工作过程如下。
(1)开启协调器节点和监控软件,监控软件选择二者的通信接口;
(2)通过按键使协调器组建网络;开启路由器和采集节点,并通过按键使其加入网络,加入网络成功后,路由器和采集节点通过协调器向监控软件发送自身信息;
(3)通过监控软件设置网络、节点的接口类型和相关参数,如休眠时间、发射功率等;
(4)通过节点自身的按键或监控软件的命令控制使节点进入工作状态。
需要说明的是,节点参数配置后会被自身记忆,如无变化,下一次无需重新配置。
图4 软件功能结构
节点软件包括协调器节点、路由器节点和采集节点三个方面。
协调器节点首先建立网络,然后等待从PC监控中心接收数据和从ZigBee网络接收数据,协调器节点的工作流程图如图5所示。协调器节点在从PC监控中心接收到命令后,首先要判断命令是否只是发送给自己的。如果是,则执行命令并不会将该命令发送给ZigBee网络中,否则将该命令通过广播或者单播的方式,发送给ZigBee网络。
图5 协调器节点软件流程图
对于从ZigBee网络中接收到的数据,主要有两种情况
(1)其他节点加入网络后发送的自身信息(节点类型+MAC地址+短地址)。协调器节点接收到该信息后,会发送给监控软件,监控软件将数据存储到相应的数据库中。
(2)采集节点采集的传感器数据。协调器接收到数据后转发给监控软件。
路由器节点首先要加入网络,加入网络成功后,立即发送自己信息(包括节点类型,MAC地址,短地址)给协调器,供监控中心备案,然后路由器等待配置命令或者网络数据转发。
采集节点的流程图如图6所示。采集节点加入网络成功后,立即发送自己信息给协调器,然后采集节点等待配置命令。若接收到的命令为配置参数命令,则配置相关网络参数。若接收到命令为启动采集命令,启动采集系统,采集传感器数据并将数据发送给协调器,然后判断是否低功耗使能,若低功耗使能,则进入休眠状态;待休眠T时间(可设定的时间)后,则再次进入采集传感器数据并发送给协调器的循环。若低功耗未使能,则延迟T时间后再次进入采集传感器数据并发送给协调器的循环。
图6 采集节点工作流程图
监控软件主要用于监测和处理各种传感器采集参数值,如空气温湿度,气压,光照度,气体浓度等。软件功能模块主要有串口配置、发射功率配置、模拟通道配置、数字通道配置、节点休眠配置、节点配置查询、启动系统、报表生成、查看和帮助菜单等功能。
协调器、路由器和终端采集设备组成了无线数据采集网络,采集设备通过无线网络与上位机实现通信。网络建立成功后,上位机一方面实现无线网络的参数配置,另一方面对网络的运行状态和采集到的环境参数值实现实时的显示和保存。监控软件运行的界面如图7所示,图中显示了一个节点的状态查询画面和采集到的参数实时变化曲线。
图7 PC机软件界面
MC1322X软件库中设置了7种低功耗模式,从而应对不同的实际应用。在实际节点设计时,采集节点的功耗要综合考虑软件和硬件,并充分利用MCU的低功耗特性。重点从以下几个方面进行考虑。
(1)采集节点不焊接电源指示灯,一个发光LED至少需要5 mA左右的电流才能比较好的工作,电源指示灯长亮将无法真正实现系统的低功耗;
(2)节点正常工作,关闭一切不必要的外设,使其功耗最低;
(3)ADC的稳压芯片工作电流不要太大,只要符合MCU中ADC的驱动要求即可;
(4)进入低功耗状态后芯片的对外引脚尽量不要出现上拉的情况;
(5)进入低功耗状态后,关闭一切不必要工作芯片的电源。
在采用低功耗硬件技术的基础上,对节点进行电源接入方式的功率测试,实际节点的测试结果(电流表:VC9805A+),见表1。
表1 采集节点低功耗电流测试结果 单位:mA
从表1可看出:(1)基于USB接口比基于5 V电源接口的电流大8 mA左右,这是由于前者的UART转USB接口电路工作电流带来的。(2)基于5 V电源接入方式的节点休眠电流比基于3 V电池接入方式的节点休眠电流要大,这主要是由电源管理电路的功耗引起的。结果表明,采用电池供电,休眠期间功耗很低,仅12 μA左右,能够满足一般的应用需求。
以ZigBee技术和MC1322X为基础,提出了多功能、低功耗无线数据采集平台。还介绍了系统的节点软硬件设计、上位机监控软件。针对采集节点的低功耗设计、多功能传感器接口进行重点阐述。经过实验室测试,系统能够完成无线数据的采集,具有一定的实际应用价值。
[1]巩伟,孙永欣.无线数据采集技术在燃气监控中的应用研究[J].自动化技术与应用,2011,30(8):102-104.
[2]张杰,石为人,涂巧玲.基于无线传感器网络的信息采集监测系统设计[J].传感技术学报,2009,22(6):861-864.
[3]郭斌,钱建平,张太红.基于Zigbee的果蔬冷链配送环境信息采集系统[J].农业工程学报,2011,27(6):208-212.
[4]高廷金.一种基于Zigbee技术的能源计量数据采集系统[J].计量与测试技术,2011,38(6):1-2.
[5]刘映辉,樊晓平,张纯和,等.基于ZigBee技术的无线数据采集系统设计[J].工业控制计算机,2008,21(8):5-7.
[6]邓中华.基于ZigBee的无线温度采集系统设计[J].计算机工程与科学,2011,33(6):164-167.
[7]沈晓昱,李文军,孙斌.基于ZigBee的工业仪表无线数据采集系统的设计[J].工业控制计算机,2009,22(11):1-2,5.
[8]陈德海,梁毓明.低功耗温室无线测量节点的设计[J].自动化仪表,2010,31(5):65-68.
[9]李明明,李伟.低功耗无线传感器网络节点的设计技术[J].测控技术,2010,29(6):8-11.
[10]杨琦,陈辉煌,石江宏.低功耗无线传感器网络终端节点设计[J].厦门大学学报(自然科学版),2008,47(3):357-360.
[11]赖成瑜.基于煤矿监测的低功耗无线传感器节点的研究与设计[J].通信技术,2008,41(12):282-283.