当前位置 首页 >范文大全 > 英语自学 >

基于ZigBee无线热能检测系统设计

作者:jkyxc 浏览数:

摘 要:为了能无线监测用户热能使用量,设计一种ZigBee传感器网络系统,终端节点将传感器采集的数据遵循ZigBee无线通信协议发送到协调器,协调器通过USB转串口把数据上传到PC机,最后由上位机计算并显示数据。该系统可以对用户热能使用数据进行无线实时监测。试验结果表明,节点监测数据稳定性好,组网灵活,功耗低,具有较高实用价值。

关键词:ZigBee;网络节点;CC2430;DS18B20;数据采集

中图分类号:TP273文献标识码:B

文章编号:1004-373X(2010)01-132-03

Design of Wireless Heat Meters System Based on ZigBee Technique

LI Hui,HE Zhiqiang

(School of Information Science and Engineering,Shenyang University of Technology,Shenyang,110178,china)

Abstract:A sensor network is presented as the design of wireless heat meters system based on ZigBee technique.The data detected by sensor terminal unit is transmitted to coordinator via ZigBee wireless communication protocol,then coordinator transmits the data to PC through the USB to serial port.Finally,the data is calculated and shown in the upper computer.User′s data is wireless,real-time monitored by this system.The system has many advantages,such as high reliability,low power and good practicality.

Keywords:ZigBee;network node;CC2430;DS18B20;data acquisition

在目前的供暖体制争议非常多,一般以住宅面积收取供暖费的方式受到越来越多用户的质疑。又由于楼层的关系,各用户的实际室内温度也不相同,按照目前的方法,必须缴纳相等的取暖费,这就带来了矛盾。例如:用户不能确定实际到底用了多少热能,也不能主动控制热能的使用,供暖公司还需要挨家挨户查表等问题。为了提出按照热能实际使用情况收取费用的方案,本设计提出采用ZigBee无线传感器网络,实时监控用户热能使用情况,用户也能自由地控制自己的热能使用,用户数据实时或定时传送给供暖公司监控中心,及时掌握供暖质量,优化服务。

1 ZigBee技术

ZigBee技术是一种新兴的近距离、低功耗、低数据速率、低成本的无线网络技术,遵循IEEE 802.15.4标准[1]。它专注于低速率传输控制,网络容量大,时延短,提供了数据完整性检查和鉴权功能,加密算法采用 AES-128,网络扩充性强,有效覆盖范围为10~75 m,具体依据实际发射功率的大小和各种不同的应用模式而定,基本上能够覆盖普通的家庭或办公室环境,通信频率采用2.4 GHz免执照频段[2]。

2 系统工作原理和硬件设计

2.1 工作原理

设计ZigBee模块并组建无线传感器网络,传感器采集用户的进水端水温T2和出水端水温T1,根据水的物理特性可以计算出水释放的热量。释放的热量Q的计算公式如下:

Q=CmΔT=CρV(T2-T1)=Cρπr2υt(T2-T1)

式中:C为水的比热容,C=4.2×103 J/kg•℃;m表示水的质量;ΔT表示温差;ρ为水的密度;V代表水的体积;r为管道半径;υ为循环水流速(单位:m/s);t是用户开启暖气的时间;π为圆周率;T2,T1分别为进水和回水温度值;用户总消耗的热能量Q′=∑Q。

ZigBee网络负责把终端节点测得的数据显示并无线传输到协调器,协调器处理后上传到PC,通过上位机监视和控制整个系统。

2.2 硬件设计及原理图

无线射频芯片选择CC2430-F128,传感器采用数字式DS18B20,LCD选用ST7920以及USB转串口芯片CP2102。无线射频芯片CC2430-F128工作在2.4 GHz的ISM免费频段,可以使能16个信道,内嵌工业级8051内核方便开发应用,支持2个多串行通信协议的USART,8路内嵌8~14位ADC,易于扩展其他功能,且输出功率编程可控[3]。传感器DS18B20采用的是1-Wire总线协议方式,每个器件上都有惟一的序列号,测量温度范围为-55~+125 ℃,分辨率可选择9~12位,内部设有温度上、下限告警,满足应用要求。

用户室内安装的热能检测终端模块包括温度传感器、LCD模块、无线数据发送芯片。协调器在终端的基础上扩展了USB转串口模块连接PC,直接通过上位机远程控制进行数据通信。系统电路图如图1所示。

图1 系统电路图

系统的硬件电路射频采用PCB非平衡天线,主芯片由两个晶振提供32 MHz和32.768 MHz的振荡频率[4];AMS1117电压芯片可以为电路提供稳定的3.3 V电压;通过P14,P15,P16分别驱动LCD的CS,SCLK,SID端;P00和P01驱动传感器,与PC的接口使用UART模式,由CP2102模拟串口连接;所有的芯片、模块必须共地。协调器和路由需要由主电源供电,以保持它一直处于活跃状态[5],终端没有特定维持网络的责任,定时或协调器对它实施唤醒,采集数据后又进入睡眠状态,由两节5号电池供电。

3 软件设计

ZigBee网络属于无线自组网络[6],有两种设备类型:全功能节点(FFD)和半功能节点(RFD)。RFD一般作为终端节点,FFD可以作为协调器或路由。软件设计包括RFD程序和FFD程序,它们均包括初始化程序、发射程序和接收程序、协议栈配置、组网方式配置程

序以及各处理层设置程序。初始化程序主要是对CC2430,USAR串口、协议栈、LCD等进行初始化;发射程序将所采集的数据通过CC2430调制并通过DMA直接送至射频输出;接收程序完成数据的接收并进行显示、远传及返回信息处理;PHY,MAC,应用层,网络层程序设置数据的底层、上层的处理和传输方式[7],主程序流程如图2所示。

3.1 传感器程序设计

由于DS18B20采用1-Wire总线协议方式,对读写数据位有着严格的时序要求。所有时序都是将主机作为主设备,单总线器件作为从设备,每一次命令和数据传输都从主机启动写时序开始,如果要求单总线器件回送数据,在写命令后,主机需启动读时序完成数据接收。

对于DS18B20的读时隙是从主机把单总线拉低后,在15 s内释放单总线,把数据传输到单总线上,完成一个读时序过程至少需60 μs。DS18B20的读时序如图3所示,其程序如下:

byte readbyte(void)

{ byte i;

byte value = 0;

for (i=8;i>0;i--)

{ value >>=1;

IODIRPORTPIN(0,1,IOOUT);

DQ = 0;

Delay (1);

IODIRPORTPIN (0,1,IOIN);

Delay (3);

if(DQ)value|=0x80;

delay (60);

IODIRPORTPIN (0,1,IOOUT);

Delay (1);}

Return (value);}

图2 主程序流程图

图3 读时序

DS18B20写时序中写0时序和写1时序的要求不同,当写0时序时,单总线要被拉低至少60 μs,保证DS18B20在15~45 μs间能够正确地采样I/O总线上的0电平;当写1时序时,单总线被拉低后,在15 μs内释放单总线。DS18B20的写时序如图4所示,其程序如下:

void writebyte(char h)

{ byte i;

for (i=8;i>0;i--)

{ IODIRPORTPIN(0,1,IOOUT);

DQ=0;

Delay(5);

DQ=h&0x01;

Delay(60);

DQ=1;

delay(1);

h=h/2;}

delay(60);}

图4 写时序

3.2 网络设置

在IAR环境编译程序及下载到CC2430中,终端结点的物理地址需要在编译环境中改写[8]。ZigBee使用分布式寻址方案来分配网络地址,保证在整个网络中所有的地址是惟一的,每个终端节点都会自动分配一个惟一的网络地址,程序下载的时候需设置project→option→c/c++compler→preprocesser→Defined symbols里面的64位IEEE地址,aExtendedAddressB7为高位地址,aExtendedAddressB0为低位地址,这样就可以分辨多个终端节点而不混淆。每个路由加入网络之前,寻址方式需要配置参数MAXDEPTH,MAXROUTERS和MAXCHILDREN。MAXROUTERS决定了一个路由或协调器可以处理的具有路由功能的子节点的最大个数,而终端节点使用(MAXCHILDREN-MAXROUTERS)剩下的地址空间[9]。

一个新网络在进行网络相关参数的设置后,调用函数aplFormNetork()建立网络,系统设置如下:

#define LRWPANDEFAULTSTARTCHANNEL 15;//信道

#define LRWPANDEFAULTPANID 0x3311;//网络号

由于ZigBee和WLAN共同工作在2.4 GHz频段,根据频谱分析可知,ZigBee的15,20,25,26信道可以有效避免802.11b的干扰[10]。要确保CHANNEL和PANID不与现有网络参数冲突,需初始化节点,通过apsBusy()判断系统是否空闲,扫描同频协调器,然后调用aplJoinNetwork()函数加入协调器。对ZigBee节点定义五种工作状态:

typedef enum PPSTATEENUM {

PPSTATESTARTRX,

PPSTATEWAITFORRX,

PPSTATESEND1,

PPSTATESEND2,

PPSTATEWAITFORTX

}PPSTATEENUM;

节点成功加入网络后,调用发送函数aplSendMSG(dstMode,dstADDR,dstEP,cluster,srcEP,pload,plen,tsn,reqack)进行数据发送。数据的传输有两种方式:使用物理地址或网络地址。对于父节点通过NLMEGetCoordShortAddr(),NLMEGetCoordExtAddr()分别获取其16位网络地址和64位扩展物理地址;对于子节点则通过NLMEGetShortAddr(),NLMEGetExtAddr()获得其网络地址和扩展物理地址;获取地址后数据就可以有目的的传输。当节点通电复位后,收到协调器的广播帧就回复信标,申请加入网络成功后,DS18B20采集的数据直接DMA传送到CC2430,经过合适的算法调制发送,协调器一直处于监听状态。

4 试验结果

终端节点定时器计数到后,节点中断唤醒,传感器开始采集数据并实时发送到协调器,协调器收到数据直接通过USB传输到PC,同时显示节点的网络ID及数据长度、信号强度(RSSI)等,如图5所示。

图5 试验结果显示

实验环境中,管道水流速υ=1.5 m/s,管道半径r=1.25 cm,水的密度ρ=1×103 kg/m3,同时由图3可得,T2-T1=0x003D(十六进制)=61(十进制),把数据代入公式,得每秒消耗热能Q=Cρπr2υt(T2-T1)188.5 kJ。最后根据时间的累计进行Q值的累加,即为用户实际使用的热能,这部分计算通过上位机完成。

5 结 语

监测系统以CC2430无线射频芯片为核心,利用数字式传感器DS18B20作为检测元件,对终端数据进行采集。该系统使热能监测由人工走向无线化,节省了成本,并且终端节点小巧,放置灵活,适用于电池长期供电,提高了监测能力,再加上采用树状拓扑网络结构使得通信更加可靠,易于控制,保证了供暖公司服务的质量和效率。与传统检测方法相比,非常方便实用,并且成本低廉。

参考文献

[1]IEEE Std 802.15.4[EB/OL]..

[4]陈伟歌,阎有运,陈朝军.基于ZigBee技术的仓库温度监测系统[J].现代电子技术,2008,31(12):47-48.

[5]孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005.

[6]吴光荣,章剑雄.基于CC2430的无线传感器网络的实现[J].现代电子技术,2008,31(12):121-124.

[7]李文仲,段朝玉.ZigBee无线网络技术入门与实战[M].北京:北京航空航天大学出版社,2007.

[8]8051 IAR Embedded Workbench Help[EB/OL]..

[9]Drew Gislason.ZigBee Wireless Networking[M].Newnes Publications,2008.

[10]Shahin Farahani,Bob Heile.ZigBee Wireless Networks and Transceivers[M].Newnes Publications,2008.

推荐访问:热能 检测系统 设计 ZigBee

相关文章:

Top