基于Zigbee的分布式温度采集系统的设计

2010-09-24 06:28:34许海燕
关键词:分配芯片电池

许海燕

(淮阴师范学院计算机科学与技术学院,江苏淮安 223300)

基于Zigbee的分布式温度采集系统的设计

许海燕

(淮阴师范学院计算机科学与技术学院,江苏淮安 223300)

无线数据采集是Zigbee的重要应用领域,但对节点的地址管理和重组,以及电源管理一直比较敏感.设计了一种基于芯片CC2430和Z-Stack协议栈的多点温度采集系统,可对节点进行动态管理,新设计的电源管理方案延长了电池的使用寿命.本方案的特点在于组网方便,重组能力强,节点电池寿命长.

Zigbee;温度采集;CC2430;嵌入式系统

0 引言

2004 年Zigbee联盟发布了基于802.15.4协议的Zigbee协议,其优点是功耗低,容量大,广泛应用于自动控制、数据采集等领域.由Zigbee组网的无线传感器,多个传感器之间可相互协调实现通信,以接力的方式通过无线电波将数据从一个传感器传到另一个传感器,通信效率非常高.

在实际生产中,常需要对温度进行多点测控,温度测控需要传输的数据量相对较小,实时性要求较低,但一些传统方法如采用485总线布网[1],或采用wifi无线组网[2]等方式,存在布点不方便,局限性大,不经济和对电池要求过高等缺点.本文采用了TI公司的片上系统CC2430作为主控芯片,组网采用了Zigbee树形网络,使用分布式地址分配方案和动态电源管理,实现了温度数据的分布式采集,实践效果良好.

1 节点的功能设计

1.1 测温基本原理

CC2430自身带有温度传感器,测量范围可达-40℃~120℃,设置片内14 bits的ADC转换器的数据源为温度传感器就可以测量芯片温度,但由于不能直接测量环境温度,应用受到了限制[3].本案采用了外接温度传感器的方法.温度传感器使用了DS18B20[4],该传感器使用1-Wire总线,测量温度范围是-55℃~125℃,可在一根总线上并联多个传感器,采用多点测温取平均方法测得的温度更准确.DS18B20采用外接供电方式,扩展原理见图1所示.

图1中CC2430扩展了P2-0,没有接上拉电阻,因为CC2430的 I/O口可以通过特殊功能寄存器P2INP设置为上拉方式,设置P2-0引脚需要设置两个比特位,分别是PDUP2和MDP2-0.PDUP2是P2的上拉/下拉选择,0表示上拉,1表示下拉;MDP2-0是P2-0的I/O的输入模式,0表示上拉/下拉,1表示三态.

1.2 中心节点与上位机的通信设计

温度采集网中的中心节点担负着网关的任务,是数据的汇聚节点,CC2430自带UART口,通过简单的电平转换就可以和PC通信,但现在生产的笔记本大多不带RS232串口,因此需要外扩一个UART和USB的转换芯片,本设计使用了CP2102芯片,扩展原理图[5]如图2所示.

图2 CC2430扩展USB接口

图1 CC2430扩展DS18B20原理图

当CP2102通过USB接到电脑里,需要安装USB→COM驱动程序,将USB口虚拟成COM串口,通过对COM口的操作可实现与CC2430的通信.上位机程序采用Visual Studio 2008 VB.NET编写,设计了COM串口读写类,它封装了.NET组件System.IO.Ports.SerialPort,可以非常方便对COM串口进行读写,实现对Zigbee节点的控制.

2 Zigbee组网

Zigbee网络中共有3种节点:Zigbee协调器、Zigbee路由节点和Zigbee终端设备.PAN协调器一般网络的中心节点,起着网络控制和网关的作用,为减少网络时延,一般不执行温度采集功能.路由节点,负责数据转发和路由发现的任务,一般它也执行温度采集功能.终端节点没有路由功能,负责温度数据的采集.3种节点的功能CC2430都可以担任,只是在编译时选择不同的编译选项就可以生成相应的下载软件.

2.1 Zigbee地址分配

TI公司在其网站上免费提供了实现zigbee的Z-STACK协议栈,各层都是通API函数提供的,用户可以根据需要裁剪,开发出自己的产品.本系统也采用了Z-STACK作为zigbee协议栈,网络拓扑采用簇树结构,地址自动分配.网络的建立过程[6]如下:

1)PAN协调器启动后选择一个新的PAN,然后向邻近设备广播信标帧.

2)邻近的设备收到信标帧后便申请加入该个域网,PAN协调器进入应答和必要的验证,同时把该设备作为子设备.新入网的路由器开始广播信标,遇到终端节点.

3)新加入的设备将其父节点加到自己邻居列表中,并且发送周期性信标帧,以增加新网络节点.

4)NWK采用分布式地址分配方案,此时Z-stack的NIB属性nwkUseTreeAlloc的值为true,整个网络地址是唯一的,除网络协调

器节点外,其它节点的地址都由父设备分配.一个设备的所有子设备,最多可以有nwkMaxRouters个具有路由器功能的设备,其余预留给Zigbee终端设备.每个设备发送数据时可以设置最少的跳数,即深度.Zigbee协调器自身的深度为0,其子设备深度是1,依次类推.设 d为父节点的深度,每个父设备具有路由器功能的子设备分配的地址数[6]为:

图3 Zigbee网络拓扑和地址分配

其中:cm表示父设备最多允许的子设备数,lm表示网络最大深度,Rm表示父设备的子设备中最多允许的路由节点数.

父节点分配给首个路由子节点的地址为父节点地址加1,分配给第二个路由器子节点的地址为首个路由节点的地址+Cskip(d),依次类推.父节点为子节点终端设备分配的地址是连续的,父节点的第n个终端子节点的地址为:

其中:1≤n≤(Cm-Rm).

Zigbee网络地址分配实例如图3所示.图3中 Cm为nwkMaxChildren=6;Rm为nwkMaxRouters=4;Lm为nwkMaxDepth=4.

2.2 节点的动态入网和离网管理

Zigbee设备可以动态加入网络,Zigbee网络中的节点因为某种原因暂时离开网络,成为孤立节点.例如为节点更换电池,节点物理环境的改变等,都可能导致节点成为孤立节点.

孤立节点加入网络可以采用两种方式加入网络,一种是主动加入,如果它的近邻表中存有原父节点的信息,可以直接向原父节点发送加入网络的请求信息.如果父节点地址资源没有用完,链路质量符合通信要求,可以分配其地址同意入网.如果原来的父节点的子节点数已经用完,原来的父节点不可能再批准它加入,这时孤立节点将尝试以新节点身份加入网络.

新入网的节点首先扫描周围找到的网络,查找有节点数没有用完的节点,并把它们存入自己的近邻表中,保存的信息包括网络号,Zigbee版本和可加入的信息等.然后在近邻表的选择一个深度最小的节点,向其发送请求加入的信息.如果近邻表中找不到一个合适的节点能作为父节点时,则表示入网失败.发出的邀请如果失败,新节点继续查找近邻表的下一个可选父节点,直到遍历完所有可能的待选父节点,则表示加入失败.如果发出的请求被同意,父节点会分配一个16位的网络短地址,新的子节点可以通信了.

一个终端子节点可以请求自己离开网络,协调器或路由节点还可以向其子节点发送请求,请求其离开网络.在本案中的可视化环境中,设计了强迫节点退出网络的命令,方便了采集点的管理.删除节点时,要把相关节点的近邻表中的近邻表项一并删除,还可以要求被删除的子节点一并删除其子设备.删除节点可能会导致孤立节点的产生或者节点重新入网的现象出现.

3 低功耗设计和电源管理

无线传感器一般应用于特殊场合,电池更换往往比较麻烦,因此系统功耗设计和管理显得更为重要.无线节点的功耗取决于多方面的因素,如数据采集量、距离、可靠性要求和系统的规模等.在上述因素不可改变的情况,设计合理的采集方式、挖掘芯片的节能特性显得更为重要.

3.1 CC2430电源管理设计

CC2430有4种电源管理模式,分别是PM0、PM1、PM2、PM3,其中 PM0是全功能模式,PM3是最省电的模式.

PM0是全功能电源模式,电压调节器处于工作状态,高速RC振荡器HS-RCOSC或者32M外接振荡器处于工作状态.当芯片复位、睡眠定时器到或者外部有中断申请唤醒系统时,芯片都进入PM0模式.PM 1模式下,上述两个振荡器都处于关闭状态,32.768 K的片内RC振荡器或者外置晶振被打开.PM 2模式下,芯片的数字工作核被关闭,系统只能32.768 K的时钟下工作.PM 3模式下,芯片数字核也处于关闭态,所有振荡器都停止工作,此时只有复位或者有外部中断申请,芯片才进入PM0电源模式.由于芯片处于无线工作状态,往往不太可能借助外部中断使系统进入全功能PM0模式.本案中设计了定时工作模式.系统进行一次数据采集并上传后,进入节电模式PM 2,定时到后自动唤醒再次进行数据采集.这个工作模式可节省大量电力,对使用电池的采集点比较适合.如果需要实时远程控制,这个模式需要改进,因为在休眠期间,芯片不会接收来自父节点的数据.

CC2430芯片RF输出功率是可编程的,通过 TXCTRLL寄存器可以设置发射功率大小,范围是-25.2 dBm~0.6 dBm,工作电流相差1.8倍.如果能根据节点距离的远近和环境的不同,选取适当的功率输出,可以节省大量电能,对电池敏感的节点意义重大.本系统能够根据节点的实际工作环境灵活改变输出功率,延长了电池的使用时间,下面叙述其工作原理.

CC2430有一个内置的接收信号强度指示器(RSSI),其数字值为8位有符号的二进制补码,可以从寄存器位RSSIL.RSSI-VAI读出.RSSI值总是通过8个符号周期内(128μs)取平均值得到.RSSI寄存器值RSSI.RSSI-VAI可以反映射频接收引脚上收到信号能量的大小,设为P,其值可以下式表示:

式中:RSSI-OFFSET是一个误差修正值,近似值为-45,该修正值的大小和天线的配置有关,在一个系统中,这个值一般相同的.例如,从 RSSI寄存器中读到的值是-20,那么 RF的输入功率大约是-65 dBm.

接受信号强度会随着距离的增加按正式递减:

式中,n是信号传播系数,它和使用环境密切相关,其值范围一般在1.0~8.0之间;d是与发送者的距离,容量测出;A是距发送者1米时的信号强度,和天线配置有关,一般可取和RSSI-OFFSET一样的值.通过读取接收信号的RSSI值,可以推出信号发送节点的发射功率大小,系统设置TXCTRLL为相近的值作为信号发送功率,节省了节点的入网时间.

3.2 电池监控设计

对于使用电池的无线节点,应该能实时采集电池电量,提醒用户更换电量不足的电池.利用CC2430内置的A/D转换器可以很方便地进行电池电量的远程采集,便于电源管理.

检测电池电压时,A/D转换的参考电压取自芯片内部提供的标准电压1.25 V,采样电源引脚AVDD-SOC的1/3,得到数字量的3倍即是电池电压.相关的寄存器有4个:ADCCON1、ADCCON2、ADCH和ADCL.ADCH和ADCL用于保存转换结果.本方案ADCCON2设置为0x3F,ADCCON1设置为0x73.ADCCON2的高两位SREF[1:0]用于设置参考电压源,4、5两位SDIV[1:0]用于设置A/D转换的精度,00表示8位分辩率,01表示10位分辩率,10表示12位分辩率,11表示14位分辩率.ADCCON2的低4位SCH[3:0]用于选择采样源,全1时表示选择VDD/3.ADC控制寄存器ADCCON1的EOC位为高表示一次ADC转换结束并且ADCH值被读取.ADCCON1.ST位用来表示启动一次ADC转换.当该位被置位,并且ADCCON1.STSEL“?",且当前ADC转换器空闲,将启动一次新的ADC转换.转换结束后,该位自动复位为0.ADCCON1.STSEL用于设置ADC转换的启动方式,“11"表示启动条件为:ADCCON1.ST=“?".CC2430工作电压最低可达2.0V,根据检查结果可判断电池是否要更换.

4 结束语

本文介绍了CC2430的测温原理,片上资源的扩展方案和分布式组网的节点功能和地址分配方案,提出了一种动态节省电池电力的方法.采用休眠的方法来节省电力是一个经济的省电方法,但需要较强的实时控制时会有危险性.当数据采集后需要对节点进行控制时,如果恰好节点处于休眠态,将影响控制效果.本方案改进为:数据采集后上位机回复采集点是否需要控制,如果需要,节点进入预警模式,节点将不进入休眠,随时侦听来自上位机的控制命令.实际测试表明,基于CC2430和Zigbee协议的分布式温度采集系统具有组网简便,节点重组能力强,工作时间长等特点.

[1] 宋晓伟,解大,舒晓琼,等.基于新型485总线的分布式数据采集控制系统 [J].机电一体化,2008(10):67-68.

[2] 曾欢,刘毅.嵌入式WiFi技术在温室环境监测系统中的应用[J].林业机械与木工设备,2008,36(2):49-51.

[3] 蔡文晶,秦会斌,程春荣.基于CC2430片内温度传感器的温度监测系统电子器件 [J].2010(6):295-297.

[4] 徐国荣,金涛.DSl8820构成的单线多点滑油温度监测系统设计 [J].装备制造技术,2008(12):187-189.

[5] 孙少伟,戴义保,章高琴.基于DSl8820组网测温的研究[J].自动化仪表,2006,27(10):1022-1024.

[6] 瞿雷,刘盛德,胡咸斌.Zigbee技术及应用[M].北京:北京航空航天大学出版社,2007.

Abstract:Wireless data collection could be themain application domain while it is very susceptible to network address,topology reorganization and power.The design is described based on the chip of CC2430 and Z-Stack,which can collect distributed data.Network nodes can be managed dynamically.A novel management scheme of Zigbee RF power is put forth to prolong cell’s lifetimel,too.Experimental results show that the design can implement the remote data acquisition of temperatures,with merits of easy installation,better reorganization and low power.

Key words:zigbee;temperature collection;CC2430;DS18B20

[责任编辑:蒋海龙]

Design of Distributed Temperature Collection System Based on Zigbee

XU Hai-yan

(School of Computer Science and Technology,Huaiyin Normal University,Huaian Jiangsu 223300,China)

TP393

A

1671-6876(2010)06-0484-05

2010-09-15

许海燕(1970-),男,江苏淮安人,讲师,硕士,研究方向为嵌入式系统.

猜你喜欢
分配芯片电池
电池很冤
今日农业(2022年14期)2022-09-15 01:43:28
“一粒盐电池”
军事文摘(2022年14期)2022-08-26 08:14:30
把电池穿身上
科学大众(2021年21期)2022-01-18 05:53:42
穿在身上的电池
应答器THR和TFFR分配及SIL等级探讨
遗产的分配
一种分配十分不均的财富
绩效考核分配的实践与思考
芯片测试
多通道采样芯片ADS8556在光伏并网中的应用