本科毕业设计---zigbee通信模块的设计.doc

上传人:知****量 文档编号:91669705 上传时间:2023-05-27 格式:DOC 页数:51 大小:452.50KB
返回 下载 相关 举报
本科毕业设计---zigbee通信模块的设计.doc_第1页
第1页 / 共51页
本科毕业设计---zigbee通信模块的设计.doc_第2页
第2页 / 共51页
点击查看更多>>
资源描述

《本科毕业设计---zigbee通信模块的设计.doc》由会员分享,可在线阅读,更多相关《本科毕业设计---zigbee通信模块的设计.doc(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、江苏科技大学本科毕业论文zigbee通信模块的设计The design of zigbee communication module江苏科技大学毕业论文(设计)任务书学 院:电子信息学院 专 业: 电子信息工程 学 号: 姓 名: 指导教师: 职 称: 副教授 2010年 3 月 1 日毕业设计(论文)题目:ZigBee通信模块的设计 一、毕业设计(论文)内容及要求(包括原始数据、技术要求、达到的指标和应做的实验等)1 提供条件: DSP开发板,CCS开发环境、MATLAB、PROTEL99软件等; 2 设计内容与要求:(1) 调研收集分析有关资料,总结ZigBee通信模块的结构特点;(2)

2、确定ZigBee通信模块的结构设计总体原则; (3) 进行ZigBee通信模块的统结构规范计算;(4) 绘制ZigBee通信模块的电路框图、程序流程图等;(5) 设计ZigBee通信模块的电路图和C原程序。二、完成后应交的作业(包括各种说明书、图纸等)1. 毕业设计论文一份(不少于1.5万字);2. 外文译文一篇(不少于5000英文单词);3ZigBee通信模块的电路图和C原程序。三、完成日期及进度自2010年3月1日起至2010年6月27日止进度安排:第一三周(3月1日-3月21日):1、 熟悉课题;2、查阅资料;3、翻译外文文献;4、完成开题报告。第四八周(3月22日-4月25日):1、熟

3、悉DSP单片机硬件结构,掌握常用模块的设计原理;2、硬件、软件设计。第九十一周(4月26日-5月16日):1、硬件、软件调试(若有条件)。2、完成中期检查报告。第十二十五周(5月17日-6月13日):撰写毕业设计论文。第十六周(6月14日-6月20日):1、交论文; 2、完成毕业设计验收。第十七周(6月21日-6月27日):毕业答辩。五、主要参考资料(包括书刊名称、出版年月等):1电子技术基础 高等教育出版社 1998。72模拟电子线路2 电子科技大学出版社 2004.73SP430系列16位超低功耗单片机原理与实践 沈建华 编著 北京航空航天大学出版社 2008.74MSP430单片机基础与

4、实践 谢兴红 编著 北京航空航天大学出版社 2008.15DSP集成开发环境 彭启琮 编著 电子工业出版社 2004.76TMS320X28XXX原理与开发 苏奎峰 编著 电子工业出版社 2009.37.TMS320X281XDSP应用系统设计 编著 北京航空航天大学出版社 2008.58.MATLAB R2006a基础篇 曹岩 编著 化学工业出版社 2008.29精通MABLAB接口与编程 王世香 编著 电子工业出版社 2007.110.Simulink动态系统建模与仿真基础 李颖 编著 西安电子科技大学出版社 2004.711.MATLAB仿真应用详解 范影乐 编著 人民邮电出版社 200

5、1.712.从Matlab/Simulink模型到代码实现 陈永春 清华大学出版社 2002.10 系(教研室)主任: (签章) 年 月 日 学院主管领导: (签章) 年 月 日江苏科技大学本科毕业设计(论文)摘 要Zigbee是一种新兴的短距离,低速率无线网络技术。它是一种介于无线标记与蓝牙之间的技术提案,此前被称作HomeRF Lite或firefly无线技术,主要用于近距离无线连接。它有自己的无线标准,是通过数千个微小的传感器之间相互协调来实现通信的。这些传感器只需要很少的能量,以接力的方式通过无线电波将数从一传感器传到另一个传感器,所以通信效率非常高。Zigbee技术应用广泛,包括智能

6、家居,建筑自动化,自动仪表读取,工业自动化,冷冻管理和货柜防护。这些应用让企业节省能源,带来经济和环保效益;智能家居提升家居安全,舒适度和娱乐享受;监测如道路及桥梁等公用基建的损耗,避免设施损坏甚至人员伤亡。Zigbee协议栈由一组特定的服务;一个数据实体提供数据传输服务;一个管理实体提供全部其他服务。每个服务实体通过一个服务接入点为上层提供服务接口,并且每个SAP提供一系列的基本服务指令完成相应的功能。关键字:短距离; 智能家居; 协议栈;AbstractZigbee is a new short-range, low-rate wireless network technology. It

7、 is a cross between tag and Bluetooth wireless technology between the proposals, had been called HomeRF Lite or firefly wireless technology, mainly used for short-range wireless connection. It has its own wireless standard, through thousands of tiny sensors to achieve coordination between the commun

8、ications. The sensor requires very little energy to relay the number through radio waves transmitted from one sensor to another sensor, so the communication efficiency is very high. Zigbee technology is widely used, including smart home, building automation, automatic meter reading, industrial autom

9、ation, refrigeration management and container protection. These applications allow enterprises to save energy, bring economic and environmental benefits; smart home improve home safety, comfort and entertainment; monitoring. such as roads and bridges and other public infrastructure losses, to avoid

10、equipment damage and even casualties. Zigbee protocol stack by a specific set of services; a data entity to provide data transmission services; a management entity to provide all other services. Each service entity through a service aCCess point to provide services for the upper interface, and each

11、SAP order to provide a range of basic services to complete the functions of the corresponding.Key words: short-range; smart home; Zigbee protocol stack;目录第一章 绪论11.1 zigbee无线网络的研究背景11.2 zigbee无线网络的研究现状11.3 zigbee无线网络的研究前景2第二章 zigbee协议栈42.1 认识zigbee协议栈42.2 设备类型52.2.1 协调器62.2.2 路由器72.2.3 终端设备72.2.4 栈配置

12、72.3 寻址72.3.1 地址类型82.3.2 网络地址分配82.3.3 Z-Stack寻址92.3.4 单点传送102.3.5 间接传送102.3.6 广播传送112.3.7组寻址112.3.8重要设备地址122.4 绑定122.4.1 建立绑定表122.4.2 ZigBee Device Object Binding Request132.4.3 启动申请132.4.4 Zigbee设备对象终端绑定请求132.4.5 设备应用层绑定管理142.4.6 配置源绑定152.5 路由162.5.1 概述162.5.2 路由协议162.5.3 路径的发现和选择172.5.4 路径保持维护182.

13、5.5路径期满182.5.6 表存储182.5.7 路由表182.5.8路径发现表182.5.9路径设置快速参考192.6安全192.6.1概述192.6.2配置202.6.3网络访问控制202.6.4更新密码202.6.5快速参考212.7本章小结21第三章 zigbee 开发平台233.1 zigbee软件开发平台233.2 zigbee硬件开发平台233.2.1 CC2530芯片介绍233.2.2开发板原理253.3小结26第四章 家庭自动化应用294.1 软件设计原理294.2 管理器(灯)设备354.3终端(开关)设备364.4小结36结 论39致 谢40参 考 文 献41IV第一章

14、 绪论1.1 zigbee无线网络的研究背景无线传感网络技术是典型的具有交叉学科性质的军民两用的高科技技术,可以广范应用于军事,国家安全,交通管理,灾害预测,医疗卫生,制造业和城市信息化建设等领域。无线传感网络由许许多多功能相同或不同的的无线传感节点组成,每一个传感节点又由数据采集模块(传感器,A/D转换器),数据处理和控制模块(微处理器,存储器),通信模块(无线收发器)和供电模块(电池,DC/AC能量转换器)等组成,近期微机电系统(MEMS)技术的发展为传感器的微型化提供可能,微处理技术的发展促进了传感器的智能化,通过MEMS技术和射频(RF)通信技术的融合促进了无线传感器及其网络的诞生。传

15、统的传感器正逐步实现微型化,智能化,信息化,网络化,正经历着一个从传统传感器到智能传感器再到嵌入式web的内涵不断丰富的发展过程。1.2 zigbee无线网络的研究现状无线传感器网络是新一代的传感网络,具有非常广泛的应用前景,其发展和应用。将会给人们的生活和生产的各个领域带来深远的影响。各国都非常重视无线传感网络的发展,IEEE正在努力推进无线传感网络的应用和发展,波士顿大学还于最近创办了传感器网络协会,期望能促进传感器联网技术开发。美国技术评论杂志在论述未来新兴十大技术时,更是将无线传感器网络也加入其中。在“中国未来20年技术遇见研究”中总共157个技术课题,其中有7项是直接论述传感网络的。

16、2006年初发布的国家长期科学与技术发展规划纲要为信息技术确定了三个前沿方向,其中两个与无线传感器网络的研究直接相关,即智能感知技术和自组织网络技术。可以预计。无线传感网络的广泛应用是一种趋势,它的出现将会给人类社会带来极大的变革。 国际上比较有代表性和影响力的无线传感器网络使用和研发项目有遥控战场传感器系统,网络中心战及灵巧传感器网络,智能尘埃,行为习性监控项目和美国皇家网络等,尤其是最新试验成功的低成本美军“狼群”地面无线传感器网络标识着电子战领域技术的最新突破。俄亥俄州正在开发“沙地直线”无线传感网络系统。这个系统能够散射电子绊网到任何地方,以侦测运动的高金属含量目标。民用方面,美国,日

17、本等国家在对该技术不断研发的基础上在多领域也进行了应用。英特尔公司与加利福尼亚州大学伯克利分校正领导“微尘”技术的研究工作。他们成功创建了瓶盖大小的全能传感器,可以执行基数按,检测与通信等功能。2002年,英特尔研究实验室人员将处方药瓶大小的32个传感器连进互联网,以读出缅因州“大鸭岛”上的气候,评价一种海燕巢的条件。而2003年第二季度,他们换用150个安有D型微型电池的第二代传感器来评估这些鸟巢的条件。他们的目的是让全世界各国研究员实现无人侵入式及无破坏的,对敏感野生物及其栖息地的监测。目前,已有公司开发出了用于家庭福利的无线传感器网络系统,根据演示,该系统通过在鞋,家具,以及家用电器中嵌

18、入半导体传感器,帮助老人,阿尔茨海默病患者以及残障人士的家庭生活,该系统利用无线通信将各传感器联网。 在日本,日立制作所与Yrp泛在网络化研究所于2004年11月24日宣布开发出全球体积最小的无线传感网络终端,该终端为安装电池的有源无线终端,可以搭建温度,亮度,红外线,加速度等各种传感器。设想应用与大楼与家庭的无线传感网络以及安全管理方面。 在旧金山,200个联网“微尘”,已被部署在金门大桥上,这些微尘用于确定大桥从一边到另一边的摆动距离(在强风中可以精确几ft,1ft=0.3048m)。当微尘检测出移动距离时,它将把信息通过微型计算机网络传递出去。信息最后到达一台强大的计算机进行数据分析。任

19、何 当前天气情况不吻合的异常读数都可能预示着大桥存在隐患。1.3 zigbee无线网络的研究前景微电子技术,计算机技术和无线通信技术的进步,推动了低功耗多功能传感器的快速发展,使其在微笑体积内能够集成信息采集,数据处理,和无线通信等多种功能。无线传感器网络就是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信等多种方式组成的一个多跳的自组织的网络系统,其目的是协作和感知,采集和处理网络覆盖区域中感知对象的信息,并发送给观察者。传感器,感知对象和观察者构成了传感网络的三个要素,。如果说Internet构成了逻辑上的信息世界,改变了人与人之间的沟通方式,那么,无线传感网络就是将逻辑上的信

20、息世界与客观上的物理世界融合在一起,改变人类与自然界的交互方式。人们可以通过传感器网络世界直接感知客观世界,从而极大地扩展现有网络的功能和人类认识世界的能力。未来移动通信网络除了以低成本实现数据的传输外,还要求在无专用通信基础设施的场景下,网络具有适应性和生存能力,因此无线传感器网络和自组织网络将因器灵活性而在未来移动通信网络中起重要作用。 无线传感器网络是由分布在给定局部区域内足够多的无线传感器节点构成的一种新型信息获取系统。并且具有一定的计算能力,。各节点之间通过专用的网络协议实现信息的交流,汇集和处理,从而实现给定局部区域内目标的探测,识别,定位和跟踪,随着通信技术,嵌入式计算技术和传感

21、器技术的飞速发展和日益成熟,具有感知能力,计算能力和通信能力的微型传感器开始在世界范围内出现,由这些微型传感器构成的传感器网络引起了人们的极大关注。 无线自组织网络是一种没有预定技术设施支撑的自组织可重构的多级无线网络。在该网络中,网络拓扑,信道的环境,业务的模式随节点的移动而动态改变。无线自组织网络可以快速地为名用和军事应用建立通信平台。第二章zigbee协议栈2.1 认识zigbee协议栈Zigbee协议栈由一组子层构成。每层为其上层提供一组特定的服务:一个数据实体提供数据传输服务;一个管理实体提供全部其他服务。每个服务实体通过一个服务接入点(SAP)为其上层提供服务接口,并且每个SAP提

22、供一系列电额基本服务指令来完成相应的功能。Zigbee协议栈的体系结构包括zigbee应用层,IEEE802.15.4MAC层和IEEE802.15.4 PHY层。它虽然是基于标准的7层开放式系统互联(OSI)模型,但仅对那些涉及zigbee层予以定义。IEEE802.15.4 2003标准定义了最下面的两层:物理层(PHY)和戒指介入控制子层。Zigbee联盟提供了网络层和应用层(APL)框架的设计。其中应用层的框架包括了应用支持子层(APS),zigbee设备对象(ZDO)和由制造商制定的应用对象。 相对于常见的无线通信标准,zigbee协议套件紧凑而简单,具体实现要求很低,zigbee协

23、议套件的最低需求估计:硬件需要8为处理器,如80C51;软件需要32kb的rom,最小软件需要4kb的rom,如CC2530芯片是具有8051内核的,内存为32-128kb的zigbee无线单片机;网络主节点需要更多sdram,以容纳网络中所有节点的设备信息,数据包转发表,设备关联表,与安全有关的密钥存储等。 Zigbee联盟希望建立一种可连接每个电子设备的无线网。它预言zigbee将很快成为全球高端的无线技术,到2007年zigbee节点可达到30亿个。具有几十亿个节点的网络将很快耗尽已不足的IPV4的地址空间,因此IPV6与IEEE802.15.4 结合是传感器网络的发展趋势。IPV6采用

24、128位地址长度,几乎可以不受限制地提供地址。使用IAR for c8051 7.5 在工程中打开zigbee协议栈,可以看到如图2.1 的整个协议栈的框架。App :应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈中一般是以操作系统的任务实现的。HAL:硬件抽象层,包含有与硬件相关的配置和驱动及操作函数。MAC:MAC层目录,包含了mac层的参数配置文件及其mac的LIB 库的函数接口文件。MT:实现通过串口可控制各层,并与各层进行直接交付。NWK:网络层目录,包含网络层配置参数文件和网络层库的函数接口文件及aps层库的函数接口。OSA

25、L:协议栈的操作系统。PROFILE:AF层的目录,包含af层处理函数文件。Security:安全层目录,包含安全层处理函数,比如加密函数等。Tools:工程配置目录,包含空间划分,及z-stack相关配置及信息。Zdo:zdo目录。Zmac:mac目录,包括mac层参数配置及mac层lib库函数回调处理函数。Zmain:主函数目录,包含入口函数及硬件配置文件。Output:输出文件目录,这是IAR ew8051 IDE自动生成的。综上所示,真个协议栈中对于zigbee功能已经全部体现,在此基础上建立一个项目的方法主要是改动应用层。2.2设备类型在ZigBee网络中存在三种逻辑设备类型:Coo

26、rdinator(协调器),Router(路由器)和End-Device(终端设备)。ZigBee网络由一个Coordinator以及多个Router和多个End_Device组成,如图2.2,zigbee网络拓扑结构。 图2.1 zigbee协议栈图2.2 zigbee网络拓扑结构2.2.1 协调器协调器负责启动整个网络。它也是网络的第一个设备。协调器选择一个信道和一个网络ID(也称之为PAN ID,即Personal Area Network ID),随后启动整个网络。协调器也可以用来协助建立网络中安全层和应用层的绑定(bindings)。注意,协调器的角色主要涉及网络的启动和配置。一旦这

27、些都完成后,协调器的工作就像一个路由器(或者消失)。由于ZigBee网络本身的分布特性,因此接下来整个网络的操作就不在依赖协调器是否存在。2.2.2 路由器路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的儿子终端设备的通讯。通常,路由器希望是一直处于活动状态,因此它必须使用主电源供电。但是当使用树群这种网络模式时,允许路由间隔一定的周期操作一次,这样就可以使用电池给其供电1。2.2.3 终端设备终端设备没有特定的维持网络结构的责任,它可以睡眠或者唤醒,因此可以可以是一个电池供电设备。通常,终端设备对存储空间(特别是RAM的需要)比较小。注意:在Z-Stack 1.4

28、.1中一个设备的类型通常在编译的时候通过编译选项(ZDO_COORDINATOR 和RTR_NWK)确定。所有的应用例子都提供独立的项目文件来编译每一种设备类型。2.2.4 栈配置栈参数的集合需要被配置为一定的值,连同这些值在一起被称之为栈配置。ZigBee联盟定义了这些由栈配置组成的栈参数。网络中的所有设备必须遵循同样的栈配置。为了促进互用性这个目标,ZigBee联盟为ZigBee2006规范定义了栈配置。所有遵循此栈配置的设备可以在其他开发商开发的遵循同样栈配置的网络中。2.3 寻址2.3.1 地址类型ZigBee设备有两种类型的地址。一种是64位IEEE地址,即MAC地址,另一种是16位

29、网络地址。64位地址使全球唯一的地址,设备将在它的生命周期中一直拥有它。它通常由制造商或者被安装时设置。这些地址由IEEE来维护和分配。16为网络地址是当设备加入网络后分配的。它在网络中是唯一的,用来在网络中鉴别设备和发送数据。2.3.2 网络地址分配ZigBee使用分布式寻址方案来分配网络地址。这个方案保证在整个网络中所有分配的地址是唯一的。这一点是必须的,因为这样才能保证一个特定的数据包能够发给它指定的设备,而不出现混乱。同时,这个寻址算法本身的分布特性保证设备只能与他的父辈设备通讯来接受一个网络地址。不需要整个网络范围内通讯的地址分配,这有助于网络的可测量性。 在每个路由加入网络之前,寻

30、址方案需要知道和配置一些参数。这些参数是MAX_DEPTH,MAX_ROUTERS和MAX_CHILDREN。这些参数是栈配置的一部分,ZigBee2006协议栈已经规定了这些参数的值:MAX_DEPTH = 5,MAX_ROUTERS = 6和MAX_CHILDREN = 20。 MAX_DEPTH决定了网络的最大深度。协调器(Coordinator)位于深度0,它的儿子位于深度1,他的儿子的的儿子位于深度2,以此类推。MAX_DEPTH参数限制了网络在物理上的长度。MAX_CHILDREN决定了一个路由(Router)或者一个协调器节点可以处理的儿子节点的最大个数。 MAX_ROUTER决

31、定了一个路由(Router)或者一个协调器(Coordinator)节点可以处理的具有路由功能的儿子节点的最大个数。这个参数是MAX_CHILDREN的一个子集,终端节点使用(MAX_CHILDREN MAX_ROUTER)剩下的地址空间。 如果开发人员想改变这些值,则需要完成以下几个步骤: 首先,你要保证这些参数新的赋值要合法。即,整个地址空间不能超过216,这就限制了参数能够设置的最大值。可以使用projectsZStacktools文件夹下的CSkip.xls文件来确认这些值是否合法。当在表格中输入了这些数据后,如果你的数据不合法的话就会出现错误信息。当选择了合法的数据后,开发人员还要保

32、证不再使用标准的栈配置,取而代之的是网络自定义栈配置(例如:在nwk_globals.h文件中将STACK_PROFILE_ID改为NETWORK_SPECIFIC。然后nwk_globals.h文件中的MAX_DEPTH参数将被设置为合适的值。 此外,还必须设置nwk_globals.c文件中的Cskipchldrn数组和CskipRtrs数组。这些数组的值由MAX_CHILDREN和MAX_ROUTER构成1。2.3.3 Z-Stack寻址为了向一个在ZigBee网络中的设备发送数据,应用程序通常使用AF_DataRequest()函数。数据包将要发送给一个afAddrType_t(在ZC

33、omDef.h中定义)类型的目标设备。typedef structunionuint16 shortAddr; addr;afAddrMode_t addrMode;byte endPoint; afAddrType_t;注意,除了网路地址之外,还要指定地址模式参数。目的地址模式可以设置为以下几个值:typedef enumafAddrNotPresent = AddrNotPresent,afAddr16Bit = Addr16Bit,afAddrGroup = AddrGroup,afAddrBroadcast = AddrBroadcast afAddrMode_t;因为在Zigbee中

34、,数据包可以单点传送(unicast),多点传送(multicast)或者广播传送,所以必须有地址模式参数。一个单点传送数据包只发送给一个设备,多点传送数据包则要传送给一组设备,而广播数据包则要发送给整个网络的所有节点。这个将在下面详细解释。2.3.4 单点传送Uicast是标准寻址模式,它将数据包发送给一个已经知道网络地址的网络设备。将afAddrMode设置为Addr16Bit并且在数据包中携带目标设备地址。2.3.5 间接传送当应用程序不知道数据包的目标设备在哪里的时候使用的模式。将模式设置为AddrNotPresent并且目标地址没有指定。取代它的是从发送设备的栈的绑定表中查找目标设备

35、。这种特点称之为源绑定。当数据向下发送到达栈中,从绑定表中查找并且使用该目标地址。这样,数据包将被处理成为一个标准的单点传送数据包。如果在绑定表中找到多个设备,则向每个设备都发送一个数据包的拷贝。上一个版本的ZigBee(ZigBee04),有一个选项可以讲绑定表保存在协调器(Coordinator)当中。发送设备将数据包发送给协调器,协调器查找它栈中的绑定表,然后将数据发送给最终的目标设备。这个附加的特性叫做协调器绑定(Coordinator Binding)。2.3.6广播传送当应用程序需要将数据包发送给网络的每一个设备时,使用这种模式。地址模式设置为AddrBroadcast。目标地址可

36、以设置为下面广播地址的一种:NWK_BROADCAST_SHORTADDR_DEVALL(0xFFFF)数据包将被传送到网络上的所有设备,包括睡眠中的设备。对于睡眠中的设备,数据包将被保留在其父亲节点直到查询到它,或者消息超时(NWK_INDIRECT_MSG_TIMEOUT在f8wConifg.cfg中)。NWK_BROADCAST_SHORTADDR_DEVRXON(0xFFFD)数据包将被传送到网络上的所有在空闲时打开接收的设备(RXONWHENIDLE),也就是说,除了睡眠中的所有设备。NWK_BROADCAST_SHORTADDR_DEVZCZR(0xFFFC)数据包发送给所有的路由

37、器,包括协调器。2.3.7组寻址当应用程序需要将数据包发送给网络上的一组设备时,使用该模式。地址模式设置为afAddrGroup并且addr.shortAddr设置为组ID。在使用这个功能呢之前,必须在网络中定义组。(参见Z-stack API文档中的aps_AddGroup()函数)。注意组可以用来关联间接寻址。再绑定表中找到的目标地址可能是是单点传送或者是一个组地址。另外,广播发送可以看做是一个组寻址的特例。下面的代码是一个设备怎样加入到一个ID为1的组当中:aps_Group_t group;group.ID = 0x0001;group.name0 = 0;aps_AddGroup(

38、SAMPLEAPP_ENDPOINT, &group );2.3.8重要设备地址应用程序可能需要知道它的设备地址和父亲地址。使用下面的函数获取设备地址(在ZStack API中定义):l NLME_GetShortAddr()返回本设备的16位网络地址l NLME_GetExtAddr()返回本设备的64位扩展地址使用下面的函数获取该设备的父设备的地址:l NLME_GetCoordShortAddr()返回本设备的父设备的16位网络地址l NLME_GetCoordExtAddr()返回本设备的父设备的64位扩展地址2.4 绑定绑定是一种两个(或者多个)应用设备之间信息流的控制机制。在Zig

39、Bee2006发布版本中,它被称为资源绑定,所有的设备都必须执行绑定机制。绑定允许应用程序发送一个数据包而不需要知道目标地址。APS层从它的绑定表中确定目标地址,然后将数据继续向目标应用或者目标组发送。注意:在ZigBee的1.0版本中,绑定表是保存在协调器(Coordinator当中)。现在所有的绑定记录都保存在发送信息的设备当中2。2.4.1 建立绑定表有三种方法可以建立一个绑定表:l Zigbee Device Object Bind Request一个启动工具可以告诉设备创建一个绑定记录l Zigbee Device Object End Device Bind Request两个设备

40、可以告诉协调器它们想要建立一个绑定表记录。协调器来协调并在两个设备中创建绑定表记录。l Device Application一个设备上的应用程序建立或者管理一个绑定表2.4.2 ZigBee Device Object Binding Request任何一个设备都可以发送一个ZDO信息给网络中的另一个设备,用来建立绑定表。称之为援助绑定,它可以为一个发送设备创建一个绑定记录。2.4.3 启动申请一个应用程序可以通过ZDP_BindReq()函数(在ZDProfile.h),并在绑定表中包含两个请求(地址和终点)以及想要的群ID。第一个参数(目标dstAddr)是绑定源的短地址即,16位网络地址

41、2。确定你已经在ZDConfig.h允许了这个功能(ZDO_BIND_UNBIND_REQUEST)。你也可以使用ZDP_UnbindReq()用同样的参数取消绑定记录。目标设备发回ZigBee Device Object Bind 或者Unbind Response信息,该信息是ZDO代码根据动作的状态,通过调用ZDApp_BindRsq()或者ZDApp_UnbindRsq()函数来分析和通知ZDApp.c的。对于绑定响应,从协调器返回的状态将是ZDP_SUCCESS,ZDP_TABLE_FULL或者ZDP_NOT_SUPPORTED。对于解除绑定响应,从协调器返回的状态将是ZDP_SUC

42、CESS,ZDP_NO_ENTRY或者ZDP_NOT_SUPPORTED。2.4.4 Zigbee设备对象终端绑定请求这个机制是在指定的时间周期(timeout period)内,通过按下选定设备上的按钮或者类似的动作来绑定。协调器在指定的时间周期内,搜集终端设备的绑定请求信息,然后以配置ID(Profile ID)和群ID(Cluster ID)协议为基础,创建一个绑定表记录作为结果。默认的设备绑定时间周期(APS_DEFAULT_MAXBINDING_TIME)是16秒钟(在nwk_globals.h中定义)。但是将它添加到f8wConfig.cfg中,则可以更改。你应该注意到,所有的例程

43、都有处理关键事件的函数(例如:在TransmitApp.c中的TransmitApp_HandleKeys()函数)。这个函数调用ZDApp_SendEndDeviceBindReq()。这个函数搜集所有终端节点的请求信息,然后调用ZDP_EndDeviceBindReq()函数将这些信息发送给协调器。协调器调用函数ZDP_IncomingData()【ZDProfile.c中】函数接收这些信息,然后再调用ZDApp_ProcessEndDeviceBindReq ()【ZDObject.c中】函数分析这些信息,最后调用ZDApp_EndDeviceBindReqCB【ZDApp.c中】函数,

44、这个函数再调用ZDO_MatchEndDeviceBind()【ZDObject.c中】函数来处理这个请求。当收到两个匹配的终端设备绑定请求,协调器在请求设备中启动创建源绑定记录的进程。假设在ZDO终端设备中发现了匹配的请求,协调器将执行下面的步骤:l 发送一个解除绑定请求给第一个设备。这个终端设备锁定进程,这样解除绑定被首先发送来去掉一个已经存在的绑定记录。l 等待ZDO解除绑定的响应,如果响应的状态是ZDP_NO_ENTRY,则发送一个ZDO绑定请求在源设备中创建一个绑定记录。如果状态是ZDP_SUCCESS,则继续前进到第一个设备的群ID。l 等待ZDO绑定响应,如果收到了,则继续前进到

45、第一个设备的下一个群ID。l 当地一个设备完成后,用同样的方法处理第二个设备。l 当第二个设备也完成之后,发送ZDO 终端设备绑定请求消息给两个设备。2.4.5 设备应用层绑定管理另一种进入设备绑定记录的方式是应用自己管理绑定表。这就意味着应用程序需要通过调用下面的绑定管理函数在本地进入并且删除绑定记录:l bindAddEntry()在绑定表中增加一个记录l bindRemoveEntry()从绑定表中删除一个记录l bindRomoveClusterIdFromList()从一个存在的绑定表记录中删除一个群IDl bindAddClusterIdToList()向一个已经存在的绑定记录中增

46、加一个群IDl bindRemoveDev()删除所有地址引用的记录l bindRemoveSrcDev()删除所有源地址引用的记录l bindUpdateAddr()将记录更新为另一个地址l bindFindExisting()查找一个绑定表记录l bindIsClusterIdInList()在表记录中检查一个已经存在的群IDl bindNumBoundTo()拥有相同地址(源或者目的)的记录的个数l bindNumEntries()表中记录的个数l bindCapacity()最多允许的记录个数l bindWriteNV()在NV中更新表2.4.6 配置源绑定为了在你的设备中使能源绑定在f8wConfig.cfg文件中包含REFLECTOR编译标志。同时在f8wConfig.cfg文件中查看配置项目NWK_MAX_BINDING_ENTRIES和MAX_BINDING_CLUSTER_IDS。NWK_MAX_BINDING_ENTRIES是限制绑定表中的记录的最大个数,MAX_BINDING_CLUSTER_IDS是每个绑定记录的群ID的最大个数。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁