学位文出版意向书下载

更新时间:2024-02-14 作者:用户投稿原创标记本站原创 点赞:5376 浏览:20343

毕业设计(论文)

题目基于ZigBee无线技术的校园供暖温度监测系统专业测控技术与仪器班级学号学生指导教师讲师

二○○八年

基于ZigBee无线技术的校园供暖温度监测系统

摘 要

校园供暖系统作为当今校园基础设施建设的重要组成部分,需要不断地优化运行调度.以往担当监测重任的有线技术在某些方面的表现不尽如人意,布线存在浪费,分不太广,反馈不及时等,无线网络技术填补了这一缺陷.而相对于各种无线通信技术,ZigBee以其低廉的,可靠的性能,逐步获得认可,在家庭智能化,工控,医用设备控制各领域获得广泛应用.

本文提出了一种基于ZigBee无线技术的校园供暖温度监测系统方案,并设计出了相应的无线传感器节点.本方案中使用基于AD590的温度测量电路,PIC16F877A微控制芯片和MRF24J20无线芯片搭建无线传感器网络.该无线传感器网络由一个位于控制室的协调器充当中心节点及若干个置放于各楼层暖气片旁的终端节点一起,构成一个星型网络.协调器负责向终端节点查询温度信息并显示到PC机上,装有测温电路的终端节点负责将温度传感器所采集到的信息反馈给协调器,从而达到对整个大楼乃至全校供暖系统进行温度监控的目的.

关 键 词:温度监测,无线传感器网络,IEEE802.15.4协议,ZigBee

ZigBee-basedwirelesstechnologycampusheatingtemperaturemonitoringsystem

ABSTRACT

Campusheatingsystemasthecurrentcampusinfrastructureconstruction,animportantponentoftheneedtocontinuetooptimizetheoperationofscheduling.Monitoringmissionevertoplaythewiredtechnologyinsomeareasofunsatiactoryperformance,theexistenceofawasteofcabling,thelessbroad,non-timelyfeedback,thewirelessworktechnologytofillthisgap.Andinrelationtoallkindsofwirelesunicationstechnology,ZigBeeitslowpriceandreliableperformance,andgraduallyrecognized,inthefamilyintelligent,andindustrialcontrol,medicalequipmentcontrolaccesstoextensiveapplicationinvariouields. Inthispaper,aZigBee-basedwirelesstechnologycampusheatingtemperaturemonitoringsystemprogrammes,andtodesignthecorrespondingwirelesssensornodes.TheprogrammebasedontheuseoftheAD590temperaturemeasurementcircuit,PIC16F877Achipsandmicro-controlstructuresMRF24J20wirelesschipwirelesssensorworks.ThewirelesssensorworksinthecontrolroombyacoordinatortoactasthecentralnodeandseveralplacedineachfloorHeating-nodenexttotheterminaltogether,constituteasatellitework.CoordinationisresponsibleforthetemperaturetotheterminalnodeforinformationanddisplaytoaPC,equippedwithtemperaturemeasurementcircuitterminalnodewillberesponsibleforthetemperaturesensorstocollecttheinformationbacktothecoordinator,toachievetheentirebuildingandalltheheatingsystemformonitoringtemperatureThepurpose.

Keywords:Temperaturemonitoring,Wirelessensorworks,IEEE802.15.4,ZigBee

目录

第1章绪论1

1.1课题研究的背景及意义1

1.2无线传感器网络2

1.2.1无线传感器网络的发展2

1.2.2国内外研究现状2

1.2.3主要研究方向3

1.3几种短距离无线通信技术的性能比较3

1.4ZigBee技术概述7

1.5本文工作8

第2章ZigBee协议及应用10

2.1IEEE802.15.4技术概述10

2.1.1物理层(PHY)10

2.1.2数据链路层(MAC)11

2.1.3设备分类12

2.22.2ZigBee协议12

2.2.1ZigBee协议标准12

2.2.2ZigBee协议栈12

2.3ZigBee协议栈API15

2.3.1应用层(APL)API15

2.3.2应用支持层(APS)API16

2.4原语的概念17

2.5网络拓扑结18

2.6数据传输机制19

2.6.1KVP格式19

2.6.2MSG格式21

2.7短地址的分配机制22

2.8路由花费和基本路由算法24

2.8.1路由花费24

2.8.2路由算法25

2.9ZigBee应用领域26

2.10本章小节27

第3章无线测温系统硬件的设计与实现28

3.1总体网络架构28

3.2节点硬件组成28

3.3节点硬件设计32

3.3.1模块电源电路设计32

3.3.2晶振与复位电路设计33

3.3.3AD590测温电路34

3.3.4LCD显示电路设计35

3.3.5MRF24J40芯片电路的设计35

3.4本章小结36

第4章无线测温系统软件设计37

4.1总体流程37

4.2程序项目文件结构39

4.3程序的初始化40

4.4组网41

4.5数据传送43

4.6定时发送43

4.7设备发现44

4.8软件调试环境45

4.9本章小结45

第5章总结46

5.1今后的工作46

5.1.1实现树型及网状网络拓扑46

5.1.2实现采集多种环境信息47

5.1.3实现操作系统的内嵌47

致谢48

的民用/商用应用领域,一直到数字化战场全谱战斗空间的监视,检测与跟踪等军事作战领域.

国内外研究现状

传感器网络系统是当今前沿性的热点研究方向之一,有着巨大的科学意义和应用前景,被认为是将对21世纪产生巨大影响力的高技术之一.2003年2月份的美国《技术评论》杂志评选出对人类未来生活产生深远影响的十大新兴技术[2],传感器网络即被列为第一.传感器网络系统己引起了世界各国学术界,军事部门工业界的极大关注.

信息工业界巨头如微软公司等也开始了传感器网络方面的工作,纷纷设立或启动相应的行动计划.欧盟2002年开始实施为期3年的EYES(自组织和协作有效能量的传感器网络)计划.2004年3月,日本总务省成立"泛在传感器网络(UbiquitousSensorNetwork)"调查研究会.

国外的一些着名大学,如加州大学洛杉矶分校,康奈尔大学,麻省理工学院和加州大学伯克利分校等也先后开展了传感器网络方面的研究工作.加州大学洛杉矶分校在生态监控方面研究了小气批

主要研究方向

1.新型智能传感器关键技术和传感系统

传感器网络系统的性能很大程度上取决于作为网络节点的智能传感器的性能.智能传感器是目前国际传感器领域的一个热点问题,其科学意义和应用价值,己引起了世界各国学术界,军事部门和工业界的极大关注.

2传感器网络的网络协议研究

网络协议是传感器网络系统的一个非常重要的研究方向.该方向重点研究传感器网络的分布式自治系统及关键技术,适用于传感器网络的网络通信协议,支持传感器网络通信的各种协议,时间同步,任务分配与协调控制以及相应的软硬件资源等.网络协议的重点研究目标就是如何设计能量高效的传感器网络系统,即如何优化MAC协议和路由协议,来延长网络生存时间.传感器网络的网络协议是传感器网络其它核心技术和支撑技术的基础.对其协议的研究包括:(1)MAC层协议研究,(2)能量高效的路由协议,(3)节点自定位技术.

几种短距离无线通信技术的性能比较

目前,短距离无线通信技术,除ZigBee技术外,还存在许多其他技术,它们各有各的特色,下文将ZigBee技术与这些相关技术作简单的分析比较,可以更好的了解它们各自的技术性能和应用领域.这些技术分别是红外,家庭无线射频技术,蓝牙,超带宽,IEEE802.11x和无线射频识别技术.

1993年,由20多个大厂商发起成立了红外[8]数据协会(IrDA:InfraredDataAssociation),统一了红外通信标准,该标准采用850mm的红外光传输数据信息,红外信号要求设备之间必须具有无障碍的直线信道,通信距离通常最大不超过l0m,并且,通信角度不能超过30度.红外的数据传输速率较快,最初为4Mbps,目前己经能够达到16Mbps.

家庭无线射频技术[9](HomeRF)无线联网标准是由Proxim,西门子,摩托罗拉,康柏电脑等技术巨头于1998年发起组建的HomeRF工作组负责研发的,其研发初衷旨在为家庭无线联网提供一种组网方便,易用,成本低廉的通用性标准.它汲取了IEEE802:11等无线标准的优势,能够有效降低话音和数据传输的成本,可提供1-2Mbps的数据传输带宽,新的HomeRF2.x标准的最高数据传输带宽可以达到10Mbps,该技术的工作频率为2.4GHz,可以连接127个设备.

1998年5月:瑞典爱立信,芬兰诺基亚,日本东芝,美国IBM和Intel等5家公司联合提出了蓝牙[10](Bluetooth)技术.1999年下半年,业界巨头微软,摩托罗拉,3COM,朗讯和蓝牙特别兴趣小组5家公司共同发起成立了蓝牙技术推广组织,从而在全球范围内掀起了一股蓝牙潮.蓝牙技术是一种用于代替便携或固定电子设备上所有使用的电缆或连线的短距离无线通信技术.它工作在2.4GHz的I频段上,采用每秒1600次的扩频技术,发射功率为3类,即1mW,10mW和100mW,通信距离为10~100m,传输速率己从720kbps发展到3Mbps,在传输数据信息的同时,还可以传输一路话音信息,这是蓝牙技术的一个重要的特点之一.

超带宽[11](UWB:Ultra-WeBand)无线通信技术是一种新型的无线通信技术,根据2002年2月14日美国FCC(FederalCommunicationCommission,联邦通信委员会)从信号带宽的角度的确切定义:UWB信号是指"-10dB功率点处的相对带宽大于25%或射频的绝对带宽大于1.5GHz"的信号.该技术的工作频段范围为3.1-10.6GHz,工作带宽为7.5GHz,数据传输速率可达1.5Gbps,传输距离为l0m.

由于这项技术存在信号带宽宽,数据传输速率高,而且,功耗低,隐蔽性好,抗信号多径效果好等优点,因此,这项技术受到了各方面的关注.

Inter网络的迅速发展,进一步加速了无线网络技术的应用和发展,特别是IEEE802.11x[12]技术标准经过了十几年的发展,其技术性能指标得到了极大的提高,其技术性能指标由于所采用的技术和工作的频段不同,它们之间也存在许多差异.

IEEE802.11b,其工作频段为2.4GHz的I频段,采用直接序列扩频技术,传输速率为11MBps.aIEEE802.11a,其工作频段为5.2GHz,采用OFDM调制技术,具有较好的抗多径干扰能力,可提供8个信道,可采用6,9,12,18,24,36,48,54Mbps等速率来传输数据.


无线射频识别[13](RFID:RadioFrequencyIdentification)是一种非接触式的自动识别技术.最简单的RFID系统由标签(Tag),阅读器(Reader)和天线(Antenna)3部分组成,在实际应用中还需要其他硬件和软件的支持.其工作原理并不复杂:标签进入磁场后,接收阅读器发出的射频信号,凭借从感应电流中所获得的能量发送储存在芯片中的产品信息(PassiveTag,无源标签),或者主动发送某一频率的信号(ActiveTag,有源标签),阅读器读取信息并经过解码后,送至信息系统进行相关的数据处理.在零售业中,认为RFID是条形码的终结者.

为了更加直观表述和比较这几种短距离无线通信技术的性能,下面通过图1.1和表1.1来进行说明.

图1.1给出了ZigBee技术与其他几种短距离无线通信技术在通信距离,传输速率上的差别.表1.1为几种短距离无线通信技术的性能比较.从中,我们不难看出,无论是ZigBee技术,蓝牙技术,HomeRF技术,红外技术,超宽带技术还是IEEE802.11技术以及RFID技术,它们都具有各自的特点,适用在不同的应用场合,它们之间存在着相互竞争,相互补充的关系,谁也不能完全替代另外一种.

表1.1几种短距离无线通信技术的性能比较

规范工作频率传输速率(Mbps)最大功耗连接设备数安全措施主要用途ZigBee868/915

MHz

2.4GHz0.02,0.04,0.251~3mW216~26432,64,128位密钥家庭,控制,传感器网络红外850mm1.521,4,16数mW2靠短距离,小角度传输保证安全透明可见范围内数据传输,近距离遥控HomeRF2.4GHz1,2100mW12750次/秒跳频家庭无线局域网蓝牙2.4GHz1,2,31~100mW71600次/秒跳频,128位密钥个人网络802.11a2.4GHz11100mW255WEP加密无线局域网802.11b5.2GHz6,9,12,18,24,36100mW255WEP加密无线局域网802.11g2.4GHz54100mW255WEP加密无线局域网RFID5.8GHz0.212不需供电2密钥超市,物流管理

ZigBee技术概述

ZigBee这个字源自于蜜蜂跳Zigzag形状的舞蹈,来通知其他蜜蜂有关花粉位置等资讯,以达到彼此沟通讯息之目的[3],故以此作为新一代无线通讯技术之命名.ZigBee先前亦被称"HomeRFLite","RF-EasyLink"或"FireFly"无线电技术,目前统一称为ZigBee.

ZigBee技术并不是完全独有,全新的标准.它的物理层,MAC层采用了IEEE802.15.4(无线个人区域网)协议标准,但在此基础上进行了完善和扩展.其网络层,应用会聚层和高层应用规范(API)由ZigBee联盟进行了制定[4].

根据ZigBee之技术本质,ZigBee具有下列之特性:

1.省电:ZigBee传输速率低,使其传输资料量亦少,所以讯号的收发时间短,其次在非工作模式时,ZigBee处于睡眠模式,而在工作与睡眠模式之间的转换时间,一般睡眠启动时间只有15ms,而设备搜索时间为30ms.透过上述方式,使得ZigBee十分省电,透过电池则可支援ZigBee长达6个月到2年左右的使用时间.

2.可靠度高:ZigBee之MAC层采用talk-when-ready之碰撞避免机制,此机制为当有资料传送需求时则立即传送,每个发送的资料封包都由接收方确认收到,并进行确认讯息回覆,若没有得到确认讯息的回覆就表示发生了碰撞,将再传一次,以此方式大幅提高系统资讯传输之可靠度,另外ZigBee提供了数据完整性检验和鉴权功能.

3.安全性高:ZigBee加密算法采用了AES-128,同时各个应用程序可以灵活确定其安全属性.ZigBee联盟还开发了安全层,以保证这种设备不会意外泄漏其标识,而且这种利用网络远距离传输不会被其它节点获得[5].

4.高度扩充性:一个ZigBee的网络最多包括有255个ZigBee网络节点,其中一个是Master设备,其余则是Sle设备.若是透过NetworkCoordinato:则整体网络最多可达到6500个ZigBee网络节点,再加上各个NetworkCoordinator可互相连接,整体ZigBee网路节点数目将十分可观[6].

5.成本低廉:目前,ZigBee芯片的成本大约在3美元左右,ZigBee设备成本的目标是要在1美元以下.而且ZigBee芯片的体积较小,如Freescal公司生产的MC13192ZigBee收发芯片的体积为5mm*5mm,随着半导体集成技术的发展,ZigBee芯片的体积将会变得更小,成本也会降得更低[7].

本文工作

本文的设计目标是设计一种基于ZigBee无线通信技术的校园供暖温度监测系统,实现对校园各个建筑物冬季暖气供暖情况的实时动态监测,方便供暖部门的管理与检修.

本文的主要工作如下:

1.分析IEEE802.15.4和ZigBee协议,理解ZigBee技术的特性和通信原理.研究Microchip的ZigBee协议栈及其具体实现方式,并能初步应用协议栈实现具体功能.

2.根据节点的物理特性,选择合适的微处理器和无线传输芯片,组建无线传感器网络节点,包括电路连接,相应电路设计,射频部分的天线分析,PCB制作等.

3.测温软件的编写及整个网络的测试,能完成预期设定的功能并能达到预定的性能指标.

本文的结构大致分为三部分:第一部分为无线传感器网络的介绍以及对ZigBee技术,协议栈的介绍,包括第一章,第二章,第二部分为硬件和软件的具体实现以及整个网络的测试,包括第三章,第四章,第三部分为总结,对本论文的工作做简要评价.

第一章:绪论.该章介绍了无线传感器网络的概念以及国内外的研究现状,主要研究方向,然后对包括ZigBee技术在内的几种短距离无线通信技术做了介绍和比对,最后对本文的工作做了提纲性的简介.

第二章:ZigBee协议及其应用.该章从ZigBee协议介绍到ZigBee协议栈的构架,并对ZigBee技术的应用范围做了具体的分析.主要内容包括IEEE802.15.4技术,ZigBee协议,ZigBee协议栈API,数据传输机制以及地址分配机制和路由算法.

第三章:无线测温系统硬件的设计与实现.该章首先对整个网络的结构做了介绍,然后就硬件的设计做了具体的阐述.主要包括节点硬件的组成与设计等内容.

第四章:无线测温系统软件的设计与实现.该章首先对整个网络的软件结构及协议栈做了介绍,然后就软件设计方面做了具体的阐述.主要包括节点软件的设计,节点间数据的通信等内容.

第五章:总结.该章对本文所完成的任务做了总结,指出了本文所取得的成果和创新点并提出了今后的需要做的工作和下一步努力的方向.

ZigBee协议及应用

ZigBee协议底层是基于IEEE802.15.4无线通讯协议[14].zigBee规范是由半导体厂商,技术供应商和其他公司组成的一家非营利工业协会,即ZigBee联盟.联盟当前的成员己经超过150家.ZigBee规范致力于利用IEEE802.15.4所提供的特性,ZigBee适用于低速率,低功耗的应用环境.下图是ZigBee协议栈的概述图:

ApplicationFramework

应用层(AF)ApplicationSupportSublayer

应用支持层(APS)NetworkLayer

网络层(NWK)MediumAccessControlLayer

数据链路层(MAC)PhysicalLayer

物理层(PHY)图2.1ZigBee协议栈概述图

IEEE802.15.4技术概述

当前的IEEE802.15.4标准是在2003年提出的并由IEEE所管理.这个标准与常见的无线传输标准802.n不同,它主要关注低速率,低功耗的应用.

IEEE802.15.4网络协议栈基于开放系统互连模型(OSI),每一层都实现一部分通信功能,并向高层提供怎么写作.IEEE802.15.4标准只定义了PHY层和数据链路层的MAC子层.PHY层由射频收发器以及底层的控制模块构成.MAC子层为高层访问物理信道提供点到点通信的怎么写作接口.

物理层(PHY)

IEEE802.15.4定义了2.4GHz物理层和868/915MHz物理层两个物理层标准,它们都采用了DSSS(DireetSequeneeSpreadSpectnJIn,直接序列扩频).2.4GHz波段为全球统一的无需申请的IsM频段,有助于设备的推广和生产成本的降低.物理层数据怎么写作从无线物理信道上收发数据,物理层管理怎么写作维护一个由物理层相关数据组成的数据库[15].

物理层数据怎么写作包括以下六方面的功能:

(1)激活和休眠射频收发器,

(2)信道能量检测(energydeteet),

(3)检测接收数据包的链路质量指示(linkalityindieation,LQI),

(4)空闲信道评估(clearchannelhannelassesent,CCA),

(5)信道频率的选择

(6)收发数据.

数据链路层(MAC)

IEEE802系列标准把数据链路层分成LLC(Logica1LinkConirol,逻辑链路控制)和MAC(MediaAeeessControl,媒介接入控制)两个子层.MAC子层提供两种怎么写作:MAC层数据怎么写作和MAC层管理怎么写作.前者保证MAC协议数据单元在物理层数据怎么写作中的正确收发,而后者从事MAC层的管理活动,并维护一个信息数据库[15].

数据链路层数据怎么写作包括:

(l)为协调器设备产生信标帧,

(2)在各个信标帧之间同步,

(3)支持PAN的关联和取消关联的操作,

(4)支持设备无线通信信道安全,

(5)使用CA/CA机制访问信道,

(6)支持时槽保证(guaranteedtimeslot,GTS)机制

(7)支持MAC层实体之间可靠传输.

设备分类

在IEEE502.15.4标准中.定义了两种设备:半功能设备(ReducedFuion

DeVice,RFD)和全功能设备(FullFunctionDeviee,FFD).这些设备的不同在于它们实现标准的程度,具体内容见下表.

表2.1IEEE802.15.4设备类型

设备类型怎么写作提供电源来源接受机设置全功能设备(FFD)绝大部分或全部固定电源一直开启半功能设备(RFD)受限电池当空闲时关闭

2.2ZigBee协议

ZigBee协议标准

在物理层(physiealLayer:PHY)方面,802.15.4之工作频率分为2.4GHz,915MHz和868MHz三种,分别提供250Kbps,40Kbps和20Kbps之传输速率,其传输范围介于10到100公尺之间,一般是30公尺.由于ZigBee使用的是2.4GHz,9l5MHz和868MHz频段,这些频段因是免费开放使用,故已有多种无线通讯技术使用,因此ZigBee为避免被干扰,故在各个频段皆是采用直接序列展频(DSSS)技术.

ZigBee协议栈

ZigBee协议栈同开放式系统互联参考模型(OSIRM)一样采用分层模型,具体分层情况见图2.3.最低两层是由IEEE802.15.4标准所定义,其他层则是有ZigBee联盟所定义:

1.物理层(PhysicalLayer,PHY)是IEEE802.15.4标准中定义的最低一层[16].它包括两个物理子层,分别工作在868/915MHz和2.4GMHz不同的频率范围上.物理层的职责包括:ZigBee的激活与钝化,当前信道的能量检测:接受链路怎么写作质量信息,ZigBee的信道接入方式,信道频率选择以及数据传输和接收等.

2.数据链路层(MediumAccessControlLayer,MAC)是由IEEE802.15.4标准所定义[16].MAC层的职责包括:网络协调器产生网络信标,与信标同步,支持个域网(PAN)链路的建立和断开,为设备的安全性提供支持,信道接入方式采用免冲突'载波检测多址接入(CA/CA)机制,处理和维护保护时隙(GTS)机制,在两个对等的MAC实体之间提供一个可靠的通信链路等.

3.网络层(NetworkLayer,NWK)是由ZigBee联盟所定义,主要完成从应用层接受数据并向其发送数据.网络层的职责包括:设备连接和断开网络时所采用的机制,帧信息在传输过程中所采用的安全性机制,设备之间的路由发现和路由维护和转交,完成对一跳邻居设备的发现和相关节点信息的存储.网络层的主要功能是提供IEEE802.15.4-2003MAC子层的正确操作,并通过SAP(怎么写作接入点)为应用层提供适当的怎么写作接口.为了与应用层进行接口,网络层从概念上包含有两种具备所需功能的怎么写作实体:数据实体困LDE)主要是通过其相应的SAP(即NLDE-SAP)提供数据传输怎么写作,管理实体州LME)则主要通过NLME-SAP来提供访问内部层参数,配置和管理数据的机制度.

4.应用层(ApplicationLayer,APL)是ZigBee协议栈的最高层.应用层主要负责把不同的应用映射到ZigBee网络上,具体而言,应用层包括以下几点功能:用应用维持器件的功能属性,用应用层发现该器件工作空间中其他器件的工作,应用层根据怎么写作和需求来使多个器件之间进行通信,应用层主要根据具体应用由用户开发.它包括应用支持层(ApplicationSupportLayer,APS),ZigBee设备对象(ZigBeeDeviceObject,ZDO)和应用对象(ApplicationObject).

1)应用支持层(ApplicationSupportLayer,APS)提供两个接口:应用支持层管理实体怎么写作接入点(APanagementEntityServiceAccessPoint,APE-SAP)和应用支持层数据实体怎么写作接入点(APSDataEntityServiceAccessPoint,APSDE-SAP).前者用于实现安全性并通过协调器的ZDO来接受应用层的信息,后者通过应用对象和ZDO来发送数据[17].

2)ZigBee设备对象(ZigBeeDeviceObject,ZDO)为应用对象提供接口来发现其它设备和怎么写作.另外,ZDO还回复其它设备关于询问自身信息的请求.ZDO使用APSDE-SAP和NLME-SAP来支持这些功能[17].

3)应用对象.(ApplicationObject)是实际在ZigBee协议栈上运行的厂商应用[17].

另外在上述分层结构中,一个安全怎么写作提供者是可选的并供网路层和应用层所使用.基于IEEE802.15.4对设备的分类,ZigBee协议对设备也做了更细的分类,具体分类见表2.2[18]

表2.2ZigBee协议设备类型

ZigBee协议设备类型IEEE设备类型功能协调器(Coordinater)FFD每个网络分配一个协调器,用于组网,分配网络地址,存储绑定表路由器(Router)FFD可选.用于扩展网络的物理地址.允许更多节点加入网络,也可以提供监视和控制功能终端(End)FFD或RFD执行监视和控制功能ZigBee协议栈API

典型的应用程序总是使用应用层(APL)和应用支持层(APS)的API.下面就这两层API中重要的一部分作下介绍.

应用层(APL)API

1.voidAPLDisable(void),

函数说明:关闭收发器.

函数用途:这个功能仅仅是提供给终端(盯D)在休眠中保存电力用的.

2.voidAPLDiseard(void):

函数说明:丢弃当前接受到的消息.

函数用途:当当前消息己经接受完全时,调用此函数.

3.voidAPLEnable(void):

函数说明:激活收发器.

函数用途:当终端(盯D)从休眠中唤醒时,调用此函数.

4.BYTEAPLGet(void),

函数说明:解析当前收到消息中的一个字节.

5.BYTEAPLGetTransld(void),

函数说明:解析出下一个APS事务的标识符的值.

6.voidZigBeelnit(void):

函数说明:初始化ZigBee协议栈.

函数用途:该函数必须在其他所有协议栈函数调用之前调用.所有硬件针脚的设置和方向也必须在此函数调用之前配置好.

7.voidZigBeeBloekTx(void):

函数说明:锁住传输缓存.

函数用途:当调用ZigBeeReady()函数来确认传输缓存(TxBuffer)是否可以使用之后,调用该函数来使得以后调用ZigBeeReady()函数时,都返回FALSE.

8.BOOLZigBeeReady(void),

函数说明:判断协议栈是否准备好去初始化一个将要发出的消息.

9.BOOLZigBeeTasks(ZIGBEEeePRIMITIVE*Primitive),

函数说明:用于控制协议栈的操作.当前要执行的原语必须放入参数*primitive中.

应用支持层(APS)API

1.BOOLAPSHasBackgroundTasks(void)

函数说明:判断APS层是否有后台任务要运行.

2.voidAPShiit(void)

函数说明:初始化所有APS层的数据结构.

3.ZIGBEE_PRIMITIVEAPSTasks(ZIGBEE_PRIMITIVEinPutPrimitive)

基于ZigBee协议的无线温度传感器网络的设计和实现

函数说明:执行给定的Zighee原语,返回下一个要执行的原语.

4.BYTEAPSAddBindinglnfo(SHORT一DDRsreAddr,BYTEsreEP,BYTEelusterID,SHORTesADDRdestAddr,BYTEdestEP)

函数说明:创建或更新一个绑定记录.

5.BYTEAPSGet(void)

函数说明:返回msdu中的下一个byte.

6.BYTEAPSRemoveBindinglnfo(SHORTesADDRsreAddr,BYTEsrcEP,BYTEclusterID,SHORT_ADDRdestAddr,BYTEdestEP)

函数说明:删除一个绑定记录.

7.BYTELookuPAPSAddress(LONGweADDR*longAddr)

函数说明:通过给定的长地址,在妙S地址中寻找对应的短地址.

8.BYTELookuPSoureeBindinglnfo(SHORTesADDRsreAddr,BYTEsreEP,BYTEelusterID)

函数说明:寻找匹配源地址的绑定表中的记录.

9.voidRemoveAllBindings(SHORTee人DDRshortAddr)

函数说明:清除所有源地址的绑定记录.

原语的概念

在ZigBee设备工作时,各种不同的任务在不同层次上执行,通过层的怎么写作,完成所要执行的任务.每一层的怎么写作主要完成两种功能:根据它的下层怎么写作要求,为上层提供相应的怎么写作,另一种是根据上层的怎么写作要求,对它的下层提供相应的怎么写作.各项怎么写作通过原语来实现,如图2.3描述了一个具有N个用户的网络中,两个对等用户以及它们与M层对等协议实体建立连接的怎么写作原语.

原语通常分为以下4种类型:

(1)Request:请求原语是从第N1用户发送到它的第M层,请求怎么写作开始.

(2)Indication:指示原语是从第N,用户的第M层向第N:用户发送,指示对于第N:用户有重要意义的内部M层的事件.

(3)Response:响应原语是从第N2用户向它的第M层发送,用来表示对用户执行上一条原语调用过程的响应.

(4)Confirm:确认原语是从第M层向第N1用户发送,用来传送一个或多个前面怎么写作请求原语的执行结果.

网络拓扑结

在ZigBee网络中的节点有三种不同的网络拓扑结构:星型,树型和网状[28].其中最简单的是星型结构,如图2.4(a)所示.它由一个协调器和多个终端节点构成,协调器作为整个网络的中心,终端节点分布在其的覆盖范围之内.星型网络构造简单,一般用于设备数量较小,物理范围较小的场合.网状网络如图2.4(c)所示,其中的每个节点都可以作为协调器或者是路由器,具有很高的可靠性.而树型网络则集合了星型结构和网状结构的优点,具有较高的可靠性和较低的功耗.

数据传输机制

在无线传感器网络中,传送的基本上都是短消息(Message).信息的格式包括帧头,数据内容,帧尾,数据内容的格式目前有两种,一种是KVP,另外是MSG.

KVP格式

KVP:是ZigBee规范定义的特殊数据传输机制,通过一种规定来标准化数据传输格式和内容,主要用于传输较简单的变量值格式.KVP是通过应用支持层的APSDE_DATArequest原语发送并通过APSDEDATA-indication来接收的.表2.3为通用KVP命令帧格式和MSG事务帧格式.

表2.3通用KVP命令帧格式

Bits:44160/8可变命令类型属性数据类型属性标识符错误代码数据1.命令类型字段

KVP的命令类型字段是由4位二进制组成,标识了命令的类型.该字段应该填入表4中除保留值之外的其他值.如果消息(Messages)是通过协调器非直传的话,命令类型字段只能填Set或Get,即0001或0010.

表2.4命令类型字段值

命令类型字段值(b3b2b1b0)描述0000保留0001Set0010Event0011保留0100带确认的Get0101带确认的Set0110带确认的Event0111保留1000Get反馈1001Set反馈1010Event反馈1011~1111保留

2.属性数据类型字段

属性数据类型字段是由4位二进制组成,标识了在属性数据字段中数据的类型.该字段应该填入表2.5中除保留值之外的其他值.属性数据字段的长度应该从数据类型中推算出来或是在属性数据字段的第一个字节中指定.

表2.5数据类型字段值

数据类型字段值(b3b2b1b0)数据类型数据长度(字节数)0000无数据00001无符号8位整型10010有符号8位整型10011无符号16位整型20100有符号16位整型20101~1010保留-1011半精度21100绝对时间41101相对时间41110字符串在第一个字节中定义1111八进制串在第一个字节中定义

3.属性标识符字段

属性标识符字段是由16位二进制组成,标识了命令要执行的目标设备的属性.该字段的值在相关设备描述中定义.

4.错误代码字段

错误代码字段由8位二进制组成,标识了事务的状态.该字段应该填入表2.6中除保留值之外的其他值.

表2.6错误代码字段值

错误代码描述0x00成功0x01无效终端0x02保留0x03不支持的属性0x04无效命令0x05无效属性数据长度0x06无效属性数据0x07~0x0f保留0x10~0xff应用程序所定义的错误

5.属性数据字段

属性数据字段是变长的,包含在属性标识符字段中所提及的属性的信息.该字段取决于特定的命令,属性的数据类型和设备的描述.如果该字段的长度没有直接在属性数据类型中定义,那么整个命令帧的长度不能大于maxCommandSize的大小,除非发送方和接受方都支持分段传输.

MSG格式

MSG:是ZigBee规范定义的特殊数据传输机制,其在数据传输格式和内容上并不作更多规定,主要用于专用的数据流或文件数据等数据量较大的传输机制.MSG也是通过应用支持层的APSDEDATArequest原语发送并通过APSDEDATAindication来接收的.MSG事务不显式的支持应用层的确认或者是命令的聚合,但是它可以自由地组合帧来传递那些在具体应用中定义的消息.

表2.7MSG事务帧格式

Bits:8可变事务长度事务数据1.事务长度字段

事务长度字段是由8位二进制组成的,标识了在接下来的事务数据字段中字节的个数.

2.事务长度字段

事务数据字段是变长的,且除非发送方和接受方都支持分段传输,长度是不能大于maxCommandSize的大小.同时字段包含了那些在具体应用中定义的属性的特定消息内容.

短地址的分配机制

ZigBee网络为每个父类节点提供一块可用的地址范围,这些地址是在当前网络中唯一存在的,父类节点再在自己的可用地址范围里向它的子节点分配地址.协调器决定每个父类可以拥有的子节点数,这些子节点包括最大个数个可路由节点(最大个数由nwkMaxRouters变量决定)和其他剩余的不可路由的子节点.每个节点拥有depth属性,是指当前节点到达协调器的最小跳数,比如,协调器的depth属性为0,协调器的子节点的depth属性为1,同样网络的最大depth属性也是由协调器决定的.

通过父类节点所拥有的最大子节点数,nwkMaxChildren(Cm),网络的最大深度,nwkMaxDepth(Lm)和父类节点所拥有的最大路由节点数nwkMaxRouters(Rm),我们就可以计算出父类节点所能分配给子节点的网络地址子块,公式如下:

(2.1)

如果有设备的Cskip(d)值为0,那么这个设备就是终端节点,因为这个节点己经没有可用地址块再往下分了,这时应该就不让这个节点允许其他节点加入自己.如果Cskip(d)值大于0,则父类节点就会允许其他节点加入自己,成为自己的子节点.同时根据子节点是否具有路由功能为其分配短地址.父类节点应该以Cskip(d)作为偏移量,以自己的短地址为基准,分配给其具有路由功能的子节点.对于终端节点,父类节点应该根据下面的公式来分配地址:

(2.2)

下面给出一个例子,nwkMaxChildren为4}nwkMaxRouters为3}nwkMaxDepth为3}计算Cskip(d)值如下表所示:

表2.8网络每个深度下的偏移量

网络的深度d偏移量Cskip(d)016152130

路由花费和基本路由算法

路由花费

ZigBee将比较路由路径的开销作为其用于路由发现和维持的算法.为了计算路径开销,ZigBee会计算路径上的每一段链接的成本,并取得它们成本之和来作为最终该路径的开销.例如,我们定义一条长度位L的路径P,为路径P的表示,而表示P中的每一段链路,则路径P的开销:

(2.3)

其中,C{[D,,几十,]}表示每一段链路的成本.而链路l的成本C{l}定义如下:

(2.4)

当定义了数据包在链路1上传递的可能性Pr时,C{l}采用下面的计算公式,不然为7.如果定义了数据包在链路1上传递的可能性Pr,则可能性的倒数会影响在该链路上期待要通过数据包的数目.反之,则链路的成本为7.

路由算法

首先分析网络层接收到从其高层传下来数据帧的情况,如果目的地址是广播地址,那么网络层就应该将这个帧广播出去.如果帧的接收方是ZigBee协调器或者是路由器,而帧的目的地址正好是接收方的子节点且同时是ZigBee的终端,那么接收方应该使用MCPS-DATA.request原语来路由当前这个帧,同时设置下一跳的目的地址为帧的最终目的地址.如果帧的目的地址不是接收方的终端子节点,那么若接收方有路由能力的话,它会查看网络层帧头中控制字段的发现路由子字段,如果子字段的值为0x02,接收方就会初始化路由发现过程.如果子字段的值不是0x02,那么接收方会检查自己的路由表来寻找与帧的目的地址匹配的路由条目.若接收方没有路由能力,那么接收方顺着网络的树型结构来分层路由.

接着分析从其低层传上来数据帧的情况,如果目的地址是广播地址,那么网络层就应该将这个帧广播出去并且将帧传向更高层.如果不需要广播,网络层就要判断帧的目的地址是否为自己的逻辑地址.如果相符,网络层同样将帧传向高层去处理.如果不相符,那么处理过程就同接收高层传下来帧的情况相同.

ZigBee应用领域

ZigBee应用领域主要有工业控制,智能交通,汽车应用,精确农业,家庭及楼宇自动化,医学,军事应用等.

在工业领域,利用传感器和ZigBee网络,使得数据的自动采集,分析和处理变得更加容易,可以作为决策辅助系统的重要组成部分.例如危险化学成分的检测,火警的早期检测和预报,高速旋转机器的检测和维护..

在汽车上,由于很多传感器只能在飞转的车轮里或发动机中,比如轮胎压力检测系统,这就要求内置的无线通信设备使用的电池有较长的寿命(大于或等于轮胎本身的寿命),同时应该克服嘈杂的环境和金属结构对电磁波的屏蔽效应.

在精确农业上,传统农业主要使用孤立的,没有通信能力的机械设备,主要依靠人力监测作物的生长情况.采用了基于ZigBee技术的传感器网络后,农业可以逐步地转向以信息和软件为中心的生产模式,使得更多的自动化,网络化,智能化和远程控制的设备来工作.传感器可以收集包括土壤湿度,氮浓度,PH值,降水量,温度,空气湿度和气压等信息,帮助农民及早而准确地发现温度,从而有助于保持并提高作物的产量.

在家庭和楼宇自动化领域,家庭自动化系统作为电子技术的集成被得到迅速地扩张.易于进入,简单明了和低廉的成本成了应用无线技术的主要动因.未来的家庭将会有数十个支持ZigBee的芯片被安装在电灯开发,烟火监测器,抄表系统,无线报警,安保系统,厨房器械中,为实现远程控制怎么写作.

在医学领域,将借助于ZigBee网络,准确而实时地监测病人的血压,体温和心跳等信息,从而减轻医生的工作负担,有助于医生对患者的监护和治疗.

本章小节

本章对ZigBee协议进行了研究,研究的内容主要包括协议标准,协议API以及协议中一些具体的细节,如数据传输的机制,短地址分配的机制和路由的算法等,最后还对ZigBee的应用前景和应用领域进行了分析.

无线测温系统硬件的设计与实现

总体网络架构

本网络有若干个ZigBee终端节点和一个ZigBee中心节点(协调器)搭建一个星型的无线传感器网络,有终端节点上的温度传感器采集环境温度信息并由终端节点通过无线芯片发送到中心节点,中心节点将接受到的信息及时反馈到计算机上.整体网络结构如图3.1所示,下面分别就节点的硬件组成和软件的设计与实现作详细的介绍.

节点硬件组成

虽然传统计算机现在己经应用的很广泛,且其在不断下降,运算速度在不断提高.但无线传感器网络的节点与传统的计算机有这着显着的差别,下面是主要的几点.

1.功耗:传统计算机如没有固定的电源供电,只能工作几个小时的时间.而在无线传感器网络中,节点通常要在仅以小型电池供电的情况下,工作数月或更长.所以在无线常感器节点的设计中,节能是至关重要的.

2.体积:传统计算机受到键盘,屏幕等配件大小的限制,其整体体积不可能大比例缩小.而无线传感器网络中的节点通常要求设计的十分小巧,这要就能被放置在任何物理环境下,能适应不同的环境要求.

3.:传统计算机的一般在数千元,而传感器网络的节点在其的十分之一,甚至更低.这就满足了许多需要大量数量节点的场合,而这些是计算机不可能完成[19].

无线传感器网络节点是一个微型化的嵌入式系统,构成了无线传感器网络的基础支持平台[20].目前,国内外已经出现了许多种网络节点的设计,它们在实现原理上是相似的,只是分别采用了不同的微处理器或者不同的通信或协议方式,例如采用自定义协议,IEEE802.11协议,Zigbee协议,蓝牙协议以及UWB通信方式等.典型的节点有Sensoria,WINS,SmatNeshDustmote,InteliMote以及IntelXsalenodesICTCAS/HKUST的BUDS[21][22]等.下面着重介绍本文设计的一种基于Zigbee协议的无线传感器网络节点.

无线传感器节点的硬件组成如图2所示,微处理器采用Microchip公司的单片机PIC16F877A[23],拥有64Kbytes的FLASH容量,13个10位精度的A/D转换通道,五个双向的I/0端口.该芯片还采用了许多新的节电功能包括:交替工作模式,多重空闲模式,on-the-fly模式交换和核心模块的低功耗等.在交替工作模式下,Timerl的控制器或内部晶振将会被关闭,在程序运行期间电源可以减少百分之九十的消耗.

无线通信模块是节点的重要组成部分,选用Microchip公司的MRF24J40[24]芯片.该芯片是IEEE802.15.4兼容的RF接受机,射频工作频率选在2.4GHz上,采用数字直接序列扩频基带的调制解调器来提供250kbps的有效数据传输速率并具有较强的抗干扰性.

AD590[25]是美国模拟器件公司生产的单片集成两端感温电流源,廉价,小尺寸应用中.温度数据从内部温度敏感元件转化而来,随时都可以转化为13位数字.

图3.2无限传感器节点的硬件组成

表3.1节点设计性能指标

性能参数名称性能参数频段2.4~2.483GHz通信协议标准IEEE802.15.4网络拓扑结构星型调制方式DSSS(O-QPSK)数据传输速率250kbps通信范围30mMCUPIC16F877ARFMRF24J40接收灵敏度-90dBm寻址方式64位IEEE,8位网络地址数据加密128—bitAES错误校验CRC-16/32信道接入方式CA-CA和时隙化的CA-CA信道数16工作温度-40~85电源3.3V功耗30mW

节点硬件设计

模块电源电路设计

稳定可靠的电源是整个系统正常工作的保证,电源的提供必须考虑到硬件系统各个模块的供电标准.本系统中Zigbee总节点控制器需要提供稳定电源的电路有PIC16F877A芯片,MRF24J40芯片等.各电路对电源的具体要求如下表所示:

表3.2ZigBee总节点控制器各模块供电需求

电路模块最小电压值典型电压值最大电压值PIC16F877A4.0V5.0V5.5VMRF24J402.4V3.3V3.6VAD5904.0V8.0V30V电源电路设计时,根据各单元模块的电源需求,采用不同的电压转换芯片将5V输入电压转换为所需要的各种电压值.现代微电子技术发展,使得我们可以选用更小,功耗更低的集成芯片来进行设计.在这里选用1117电压调整芯片.

图3.4模块电源电路

晶振与复位电路设计

晶振电路用于向PIC16F877A,MRF24J40及其他电路提供工作时钟.单片机可以使用RC振荡电路或者晶振起振,如果需要较高的工作频率可以使用内部PLL技术把频率增高,片内PLL电路兼有频率放大和信号提纯的功能,可以用较低的外部时钟信号获得较高的工作频率,以降低因高速开关时钟造成的高频噪音.PICF4620选用8MHz的外接晶振,这时的指令周期为lus.考虑到MRF24J40对指令周期和发射频率的要求,选用20MHz的外接晶振.图中的电容是系统时钟的环路滤波电容,电容选择越大晶振越稳定,同时起振时间也会延长,PIC16F877A中的环路滤波电容选择C1等于C2等于22pF,MRF24J20中的环路滤波电容选择C3等于等于27pF.晶振电路如下图3.5所示.

图3.5晶振电路

复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能,可以用简单的RC电路构成,也可以用相对较复杂,但功能更加完善的电路.PIC16F877A可以有多种复位方式:手动复位,上电复位,看门狗复位,欠压复位等.低压复位已经在前面的电源电路相似度检测绍过了,下面介绍一下手动复位.当手动按下SW时芯片会在Vout端输出一个足够长时间的低电平信号,使单片机复位,通过调整R和C的参数,可以调整复位状态的时间.

在线烧写程序是适合大批量生产方式的烧写办法,使用在线烧写时通常用户都己经把芯片焊到了板上,此时就要求用户在板上有预留的烧写接口.PIC单片机可以使用的烧写器很多,其中ICD2是较常用的一种调试工具,复位电路及接口电路如图所示.

图3.6复位及ICD2接口电路

AD590测温电路

AD590是美国模拟器件公司生产的单片集成两端感温电流源,该器件体积小,重量轻,性能稳定.测温范围为-50~+150℃,线性电流输出为223A,灵敏度为1A/K,线性度好,测量精度为±0.3℃,源电压范围为4~30V.当电源电压在5~10V之间,电压稳定度为1%时,其误差只有0.1℃,温度数据从内部温度敏感元件转化而来,随时都可以转化为13位数字.

图3.7AD590测温电路

LCD显示电路设计

本系统中LCD是用来显示监测温度的,由于显示的内容简单而且比较少,本系统设计中使用RT12864[26]液晶块来进行显示.态的编程操作,完成对液晶模块所需时序的操作和数据的传输.

图3.8LCD显示电路

MRF24J40芯片电路的设计

MRF24J40是Microchip公司推出的首款符合2.4GHzIEEE802.15.4标准的射频收发器.该器件包括众多额外功能,是第一款适用于Zigbee产品的RF器件.性能稳定且功耗极低.利用此芯片开发的无线通信设备支持数据传输率高达250kbps可以实现多点对多点的快速组网.

芯片只需要极少的元器件.它的电路包括晶振时钟电路,射频输入/输出匹配电路和微控制器接口电路三个部分.

芯片本振信号既可由外部有源晶体提供,也可由内部电路提供.由内部电路提供时需外加晶体振荡器和两个负载电容,电容的大小取决于晶体的频率及输入容抗等参数.当采用20MHz晶振时,其电容值约为20pF.

MRF24J20可以通过4线SPI总线(SDI,SD0,SCK,CS)设置芯片的工作模式,并实现读/写缓存数据读/写状态寄存器等.MRF24J20的应用电路如图4.9所示.

图3.9MRF24J40芯片电路

本章小结

该章首先对整个网络的结构做了介绍,然后就硬件的设计做了具体的主要包括节点硬件的组成与设计等内容.,包括模块电源,晶振与复位,ICD2接口,AD590测温电路,,LCD显示,MRF24J20电路等.

无线测温系统软件设计

总体流程

在网络中,每个节点都有一个16位短地址和一个64位的长地址.短地址用于本地网络中的设备通信,而长地址则可以与本地网络之外的其他网络进行通信.数据传送采用主从节点方式,与计算机相连的节点作为主节点(即协调器),其他节点作为从节点(即终端节电),从节点可以向主节点发送中端请求.下面就协调器和终端节点的程序流程做大致的描述,详细地描述将会在后文介绍.

图4.1是协调器端程序的大体流程图,从图中可以看出协调器加电后,首先进行初始化,包括看门狗,控制台,硬件和协议栈等的初始化.然后进入NOPRIMITIVE原语状态,这个状态是整个程序的核心状态,程序一开始由这个状态出发,根据不同条件转向其他原语状态,经过一系列的判断和转向,最终又会回到NOPRIMITIVE原语这个状态.由于是协调器,接着判断是否己经组成好了网络,如果已经组好,就可以发送查询命令并显示接受到的结果.如果没有组成网络,则进行组网并当网络组成后允许终端节点加入当前网络.

上图是终端程序的大体流程图,终端的初始化过程和协调器类似.首先判断节点是否己加入了一个网络,如果是,则可以发送所要采集的信息.如果没有加入网络,则判断是否作为老节点加入网络,如果作为老节点加入网络,则终端节点通过保留以前加入网络的地址来加入网络.如果是作为新节点加入网络,则需要扫描网络,然后加入其中最优的一个网络.

程序项目文件结构

本程序是基于Microchip公司公布的ZigBee协议栈,此协议栈是免费下载使用的,根据实际需要,在创建协调器和终端节点项目时需要包含一下源文件

表4.1协议栈程序项目源文件[27]

SymbolTime.ch执行MicrochipZigBeeTM协议栈的计时功能zAPL.h协议栈的应用级接口头文件zAPS.chZigBee协议的APS层zHCLighting.hZigBee协议的家居控制的照明配置文件信息ZigBee.h一般ZigBee协议常数ZigBeeTasks.ch指挥各层谢意间的程序流程zMAC.h一般IEEE802.15.4MAC层的头文件zMAC_MRF24J40.chMicrochipMRF24J40收发器的IEEE802.15.4MAC层zNVM.ch执行非易失性存储器的存储功能zNVM.chZigBee协议的NWM层zPHY.h一般IEEE802.15.4PHY层的头文件zPHY_MRF24J40.chMicrochipMRF24J40收发器的IEEE802.15.4PHY层zSecurity.hZigBee协议的安全层头文件zSecurity_MRF24J40.chMicrochipMRF24J40收发器的ZigBee协议的安全层zZDO.chZigBee协议的ZDO(ZDP)层Compiler.h特定编译器的定义Console.ch(可选的)USART接口代码Generic.h一般常数和类型定义MSPI.chSPI接口代码Sralloc.ch动态存储分配(堆)代码myZigBee.c由ZENA软件生成.包含应用特定的信息Coord/RFDTemplate.c主应用程序文件DemoCoord/RFD.mcp项目文件ZigBee.def应用层特征信息zLink.lkr项目连接脚本程序的初始化

应用程序的源程序必须使用下列语句包含zAPL.h使用其中提供的ZigBee协议的函数[29].

#include"zAPL.h'

协调器的程序需要使用下列语句定义一个变量来跟踪当前执行的原语状态.

ZIGBEE一RIMITIVEcurrentPrimitive,

而终端节点不仅同样需要跟踪当前执行的原语状态,它还需要另外两个变量来进行网络发现和网络加入的工作,语句如下:

NETWORKDESCRIPTOR*currentNetworkDescriptor,

ZIGBEE一RIMITIVEcurrentPrimitive,

NETWORKDESCRIPTOR*NetworkDescriptor,

接下来,需要清空看门狗,一般PIC初始化之前需要加载命令,以免不必要的中断,然后开门狗并对控制台和硬件进行初始化,语句如下:

CLRWDTQ,

ENABLE_WDT(

ConsoleInit(),

HardwareInit(),

再接下来,在协议栈被使用之前,必须对其进行初始化,所有的中断也要被激活,语句如下:

ZigBeeInit(),

IPEN等于1,

GIEH等于1,

组网

组网的过程主要为:首先将协调器加电,由协调器进行信道扫描,采用一个其他网络没有使用的空闲信道来建立一个网络,然后将终端节点加点,终端节点需将自己的信道设置成与现有协调器使用的信道,并提供正确的认证信息.在终端节点加入网络后,可以从协调器得到自己的短地址以及参数,协调器通过终端节点的短地址来询问温度信息.

协调器可以有两种方法来取得终端节点的短地址,如果程序定义了USE

BINDINGS,在消息能够成功发送和接收之前,终端节点必须将自己和协调器做绑定.如果程序没有定义了USEesBINDINGS,则协调器将使用短地址来发送消息.

在一个终端设备开启以及无线电接收装置和其他组件初始化后,首要的工作是去扫描可用的网络,然后加入其中的一个网络.因为一个终端设备只能加入一个网络,所以加入网络的工作就有ZDO来处理,而不是交由每个独立的应用对象.当已成功加入网络后,ZDO会通知每个应用对象.加入网络的步骤包括:扫描网络,选择网络和确认加入.

1扫描网络

NLME-NETWORK-DISCOVERYrequest通过MLME-SCAN.request在MAC层管理实体中扫描特定的信道,而NLME-NETWORK-DISCOVERYconfirm会返回给ZDO

一个网络描述符列表,这其中包括可用网络的列表,具体过程下图所示:

2.选择网络

基于网络是否允许节点加入以及网络的安全性等其他因素,ZDO将会选择一个网络加入.当已选中了一个网络,ZDO执行NLME-JOIN.request原语,然后通过MAC层的MLME-ASSOCIATE.request来发出加入父节点的请求.当收到网络层的MLME-ASSOCIATE.request原语,由协调器给终端节点分配的短地址将会被保留.NLME-JOIN.confirm原语通知ZDO选定的网络已加入.

3确认加入

要来确认是否成功加入了网络,ZDO会通过带短地址和长地址地APS数据实体向父节点发出En走Device_annce.当从父节点接受到End_Device_annce_rsp时,这就表明网络己成功加入.图3.3.5.2展示了选择网络并确认是否加入成功的这一个过程.

数据传送

ZigBee一协议定义了三种寻址方式:直接寻址,间接寻址和广播寻址,这里采用的直接寻址.直接寻址又称为通用单播,可以用于设备之间的通信.设备要直接寻址必须知道接受方的短地址或者长地址.

温度查询的主要过程:

第一步:协调器查询温度命令发送代码,

第二步:终端接受查询命令及回发温度信息代码,

第三步:协调器接受温度信息代码.

定时发送

我们在实际的环境中,一般不采用协调器发送查询命令来采集信息,而是让终端定时发送,自动向协调器发送自己采集到的信息,协调器主要接受各个节点发送过来的信息,再讲这些信息传送到PC机上.在本文的设计中,我们采用看门狗定时器作为定时温度发送的定时器,具体计算如下:

时I}}I}}隔等于2^16(看门狗定时器为16位)X2^15(1/32768的分频)/16X2^20(16MHz的晶振)等于128s}2mo

也就是说,终端每隔两分钟左右,就会发送温度信息给协调器,程序中的设置如下:

表4.2时间间隔设置

constromunsignedcharconfig1H等于0b00000010,//16MHz

constromunsignedcharconfig2H等于0b00011110,//HWWDdisabled,1:32768prescaler

第一行设置CPU的晶振.onfigiH为16MHz,第二行设置看门狗的分频.config2H为1:32768.

设备发现

ZDO提供了一些原语用来寻找终端节点,主要有以下几个:

1.NWKADDR.req

这个原语基于节点的长地址来解析其短地址.协调器以广播形式发出请求,相应的节点应该发出一个单播形式的回应,NWKADDRrsp,这里面包括节点的短地址.

2.IEEEesADDRreq

这个原语基于节点的短地址来解析其长地址.请求以单播形式发送至被询问的节点,该节点应该同样以单播形式发送消息,IEEE_ADDResrsp,这里面包括节点的长地址.

3.ACTIVEesEPreq

这个原语用于从终端节点上解析出活动节点的列表.这个请求同其回复.

4.ACTIVE-P.rsp

一样以单播形式发送.回复中包含终端节点上活动节点的列表.

软件调试环境

本检测系统的软件开发采用Microchip公司推出的MPLABIDE集成开发环境,可在Windows操作系统下运行,采用C语言编程.该开发环境提供了适用于PIC系列单片机的开发调试应用程序和开发工具.它既可连接PICMASTER,LABICD/ICD2,MPLABICE等硬件设备,来对PIC进行在线调试,也可以使用开发环境中的MPLABSIM进行软件模拟调试,并能快速在不同的开发/调试模式制间进行转换[30].

本章小结

本章首先提出了网络总体的构架,接着分别就软件设计做了阐述.主要是软件的整体流程,其中对具体的程序初始化,组网,数据传送,定时发送及设备发现等功能做了简要介绍.

总结

本文在对无线传感器及其网络协议技术分析的基础上,提出了一种基于ZigBee协议的用于测量温度的无线传感器网络方案,并设计和开发出了相应的无线传感器节点.

文章对该ZigBee节点的各个模块的设计以及软件的实现进行了详细的介绍.主要包括以下几个方面:

1适用于ZigBee的2.4Ghz的无线数据传输模块的设计和实现.

2.基于ZigBee协议栈实现无线传感器节点温度测量系统.

本文中使用PIC16F877A微控制芯片和MRF24J20无线芯片搭建了一个基于ZigBee技术的无线传感器网络.该网络由一个协调器充当中心节点和若干个终端节点一起,构成一个星型网络.协调器负责向终端节点查询温度信息,终端节点负责将温度传感器所采集到的信息反馈给协调器,从而达到对一块区域进行温度监控的目的.

综上所述,本文所取得的成果和创新点主要有:

1.对温度传感器网络系统进行了硬件设计.采用开发板参考设计方案,申请射频芯片自行组建电路,包括微处理器MCU与无线收发芯片的电路连接,相应电路设计,射频部分的天线分析,PCB制作等,设计出能进行测试的无线通讯模块.

2.进行了测温软件开发与调试.此部分包括通信网络方案设计,通信协议的编制以及程序调试,能实现网络节点间的通讯.

今后的工作

实现树型及网状网络拓扑

树型及网状网络相比星型网络,是拓扑结构更为复杂的网络结构并且可以容纳更

多的节点,这就为无线传感器在更大物理空间范围里的应用成为可能.

实现采集多种环境信息

实际应用中,用户大多要求测量多个环境信息(如,湿度,气压等),所以要在无线传感器节点上为多种传感器提供接口,获取数据并在网络中发送.

实现操作系统的内嵌

为了使节点具有自我协调,自我调度的能力,需要在节点上增加嵌入式操

相关论文范文