zigbee通信模块的设计

zigbee通信模块的设计
zigbee通信模块的设计

zigbee通信模块的设计The design of zigbee communication module

江苏科技大学

毕业论文(设计)任务书

学院:电子信息学院专业:电子信息工程

学号:0640302224 姓名:

指导教师:职称:副教授

2010年3 月1 日

摘要

Zigbee是一种新兴的短距离,低速率无线网络技术。它是一种介于无线标记与蓝牙之间的技术提案,此前被称作HomeRF Lite或firefly无线技术,主要用于近距离无线连接。它有自己的无线标准,是通过数千个微小的传感器之间相互协调来实现通信的。这些传感器只需要很少的能量,以接力的方式通过无线电波将数从一传感器传到另一个传感器,所以通信效率非常高。Zigbee技术应用广泛,包括智能家居,建筑自动化,自动仪表读取,工业自动化,冷冻管理和货柜防护。这些应用让企业节省能源,带来经济和环保效益;智能家居提升家居安全,舒适度和娱乐享受;监测如道路及桥梁等公用基建的损耗,避免设施损坏甚至人员伤亡。Zigbee协议栈由一组特定的服务;一个数据实体提供数据传输服务;一个管理实体提供全部其他服务。每个服务实体通过一个服务接入点为上层提供服务接口,并且每个SAP提供一系列的基本服务指令完成相应的功能。

关键字:短距离;智能家居;协议栈;

Abstract

Zigbee is a new short-range, low-rate wireless network technology. It 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 communications. 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 automation, 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 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 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;

目录

第一章绪论 (1)

1.1 zigbee无线网络的研究背景 (1)

1.2 zigbee无线网络的研究现状 (1)

1.3 zigbee无线网络的研究前景 (2)

第二章zigbee协议栈 (4)

2.1 认识zigbee协议栈 (4)

2.2 设备类型 (5)

2.2.1 协调器 (6)

2.2.2 路由器 (7)

2.2.3 终端设备 (7)

2.2.4 栈配置 (7)

2.3 寻址 (7)

2.3.1 地址类型 (8)

2.3.2 网络地址分配 (8)

2.3.3 Z-Stack寻址 (9)

2.3.4 单点传送 (10)

2.3.5 间接传送 (10)

2.3.6 广播传送 (11)

2.3.7组寻址 (11)

2.3.8重要设备地址 (12)

2.4 绑定 (12)

2.4.1 建立绑定表 (12)

2.4.2 ZigBee Device Object Binding Request (13)

2.4.3 启动申请 (13)

2.4.4 Zigbee设备对象终端绑定请求 (13)

2.4.5 设备应用层绑定管理 (14)

2.4.6 配置源绑定 (15)

2.5 路由 (16)

2.5.1 概述 (16)

2.5.2 路由协议 (16)

2.5.3 路径的发现和选择 (17)

2.5.4 路径保持维护 (18)

2.5.5路径期满 (18)

2.5.6 表存储 (18)

2.5.7 路由表 (18)

2.5.8路径发现表 (18)

2.5.9路径设置快速参考 (19)

2.6安全 (19)

2.6.1概述 (19)

2.6.2配置 (20)

2.6.3网络访问控制 (20)

2.6.4更新密码 (20)

2.6.5快速参考 (21)

2.7本章小结 (21)

第三章zigbee 开发平台 (23)

3.1 zigbee软件开发平台 (23)

3.2 zigbee硬件开发平台 (23)

3.2.1 CC2530芯片介绍 (23)

3.2.2开发板原理 .......................................................................... 错误!未定义书签。

3.3小结 (26)

第四章家庭自动化应用 (29)

4.1 软件设计原理 (29)

4.2 管理器(灯)设备 (35)

4.3终端(开关)设备 (36)

4.4小结 (36)

结论 (39)

致谢 (40)

参考文献 (41)

第一章绪论

1.1 zigbee无线网络的研究背景

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

1.2 zigbee无线网络的研究现状

无线传感器网络是新一代的传感网络,具有非常广泛的应用前景,其发展和应用。将会给人们的生活和生产的各个领域带来深远的影响。各国都非常重视无线传感网络的发展,IEEE正在努力推进无线传感网络的应用和发展,波士顿大学还于最近创办了传感器网络协会,期望能促进传感器联网技术开发。美国《技术评论》杂志在论述未来新兴十大技术时,更是将无线传感器网络也加入其中。在“中国未来20年技术遇见研究”中总共157个技术课题,其中有7项是直接论述传感网络的。2006年初发布的《国家长期科学与技术发展规划纲要》为信息技术确定了三个前沿方向,其中两个与无线传感器网络的研究直接相关,即智能感知技术和自组织网络技术。可以预计。无线传感网络的广泛应用是一种趋势,它的出现将会给人类社会带来极大的变革。

国际上比较有代表性和影响力的无线传感器网络使用和研发项目有遥控战场传感器系统,网络中心战及灵巧传感器网络,智能尘埃,行为习性监控项目和美国皇家网络等,尤其是最新试验成功的低成本美军“狼群”地面无线传感器网络标识着电子战

领域技术的最新突破。俄亥俄州正在开发“沙地直线”无线传感网络系统。这个系统能够散射电子绊网到任何地方,以侦测运动的高金属含量目标。民用方面,美国,日本等国家在对该技术不断研发的基础上在多领域也进行了应用。

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

在日本,日立制作所与Yrp泛在网络化研究所于2004年11月24日宣布开发出全球体积最小的无线传感网络终端,该终端为安装电池的有源无线终端,可以搭建温度,亮度,红外线,加速度等各种传感器。设想应用与大楼与家庭的无线传感网络以及安全管理方面。

在旧金山,200个联网“微尘”,已被部署在金门大桥上,这些微尘用于确定大桥从一边到另一边的摆动距离(在强风中可以精确几ft,1ft=0.3048m)。当微尘检测出移动距离时,它将把信息通过微型计算机网络传递出去。信息最后到达一台强大的计算机进行数据分析。任何当前天气情况不吻合的异常读数都可能预示着大桥存在隐患。

1.3 zigbee无线网络的研究前景

微电子技术,计算机技术和无线通信技术的进步,推动了低功耗多功能传感器的快速发展,使其在微笑体积内能够集成信息采集,数据处理,和无线通信等多种功能。无线传感器网络就是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信等多种方式组成的一个多跳的自组织的网络系统,其目的是协作和感知,采集和处理网络覆盖区域中感知对象的信息,并发送给观察者。传感器,感知对象和观察者构成了传感网络的三个要素,。如果说Internet构成了逻辑上的信息世界,改变了人

与人之间的沟通方式,那么,无线传感网络就是将逻辑上的信息世界与客观上的物理世界融合在一起,改变人类与自然界的交互方式。人们可以通过传感器网络世界直接感知客观世界,从而极大地扩展现有网络的功能和人类认识世界的能力。

未来移动通信网络除了以低成本实现数据的传输外,还要求在无专用通信基础设施的场景下,网络具有适应性和生存能力,因此无线传感器网络和自组织网络将因器灵活性而在未来移动通信网络中起重要作用。

无线传感器网络是由分布在给定局部区域内足够多的无线传感器节点构成的一种新型信息获取系统。并且具有一定的计算能力,。各节点之间通过专用的网络协议实现信息的交流,汇集和处理,从而实现给定局部区域内目标的探测,识别,定位和跟踪,随着通信技术,嵌入式计算技术和传感器技术的飞速发展和日益成熟,具有感知能力,计算能力和通信能力的微型传感器开始在世界范围内出现,由这些微型传感器构成的传感器网络引起了人们的极大关注。

无线自组织网络是一种没有预定技术设施支撑的自组织可重构的多级无线网络。在该网络中,网络拓扑,信道的环境,业务的模式随节点的移动而动态改变。无线自组织网络可以快速地为名用和军事应用建立通信平台。

第二章zigbee协议栈

2.1 认识zigbee协议栈

Zigbee协议栈由一组子层构成。每层为其上层提供一组特定的服务:一个数据实体提供数据传输服务;一个管理实体提供全部其他服务。每个服务实体通过一个服务接入点(SAP)为其上层提供服务接口,并且每个SAP提供一系列电额基本服务指令来完成相应的功能。

Zigbee协议栈的体系结构包括zigbee应用层,IEEE802.15.4MAC层和IEEE802.15.4 PHY层。它虽然是基于标准的7层开放式系统互联(OSI)模型,但仅对那些涉及zigbee层予以定义。IEEE802.15.4 2003标准定义了最下面的两层:物理层(PHY)和戒指介入控制子层。Zigbee联盟提供了网络层和应用层(APL)框架的设计。其中应用层的框架包括了应用支持子层(APS),zigbee设备对象(ZDO)和由制造商制定的应用对象。

相对于常见的无线通信标准,zigbee协议套件紧凑而简单,具体实现要求很低,zigbee协议套件的最低需求估计:硬件需要8为处理器,如80C51;软件需要32kb 的rom,最小软件需要4kb的rom,如CC2530芯片是具有8051内核的,内存为32-128kb的zigbee无线单片机;网络主节点需要更多sdram,以容纳网络中所有节点的设备信息,数据包转发表,设备关联表,与安全有关的密钥存储等。

Zigbee联盟希望建立一种可连接每个电子设备的无线网。它预言zigbee将很快成为全球高端的无线技术,到2007年zigbee节点可达到30亿个。具有几十亿个节点的网络将很快耗尽已不足的IPV4的地址空间,因此IPV6与IEEE802.15.4结合是传感器网络的发展趋势。IPV6采用128位地址长度,几乎可以不受限制地提供地址。

使用IAR for c8051 7.5在工程中打开zigbee协议栈,可以看到如图2.1 的整个协议栈的框架。

App:应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈中一般是以操作系统的任务实现的。

HAL:硬件抽象层,包含有与硬件相关的配置和驱动及操作函数。

MAC:MAC层目录,包含了mac层的参数配置文件及其mac的LIB 库的函数接口文件。

MT:实现通过串口可控制各层,并与各层进行直接交付。

NWK:网络层目录,包含网络层配置参数文件和网络层库的函数接口文件及aps 层库的函数接口。

OSAL:协议栈的操作系统。

PROFILE:AF层的目录,包含af层处理函数文件。

Security:安全层目录,包含安全层处理函数,比如加密函数等。

Tools:工程配置目录,包含空间划分,及z-stack相关配置及信息。

Zdo:zdo目录。

Zmac:mac目录,包括mac层参数配置及mac层lib库函数回调处理函数。

Zmain:主函数目录,包含入口函数及硬件配置文件。

Output:输出文件目录,这是IAR ew8051 IDE自动生成的。

综上所示,真个协议栈中对于zigbee功能已经全部体现,在此基础上建立一个项目的方法主要是改动应用层。

2.2设备类型

在ZigBee网络中存在三种逻辑设备类型:Coordinator(协调器),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)。

注意,协调器的角色主要涉及网络的启动和配置。一旦这些都完成后,协调器的工作就像一个路由器(或者消失)。由于ZigBee网络本身的分布特性,因此接下来整个网络的操作就不在依赖协调器是否存在。

2.2.2 路由器

路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的儿子终端设备的通讯。

通常,路由器希望是一直处于活动状态,因此它必须使用主电源供电。但是当使用树群这种网络模式时,允许路由间隔一定的周期操作一次,这样就可以使用电池给其供电[1]。

2.2.3 终端设备

终端设备没有特定的维持网络结构的责任,它可以睡眠或者唤醒,因此可以可以是一个电池供电设备。

通常,终端设备对存储空间(特别是RAM的需要)比较小。

注意:在Z-Stack 1.4.1中一个设备的类型通常在编译的时候通过编译选项(ZDO_COORDINATOR和RTR_NWK)确定。所有的应用例子都提供独立的项目文件来编译每一种设备类型。

2.2.4 栈配置

栈参数的集合需要被配置为一定的值,连同这些值在一起被称之为栈配置。ZigBee联盟定义了这些由栈配置组成的栈参数。网络中的所有设备必须遵循同样的栈配置。为了促进互用性这个目标,ZigBee联盟为ZigBee2006规范定义了栈配置。所有遵循此栈配置的设备可以在其他开发商开发的遵循同样栈配置的网络中。

2.3 寻址

2.3.1 地址类型

ZigBee设备有两种类型的地址。一种是64位IEEE地址,即MAC地址,另一种是16位网络地址。

64位地址使全球唯一的地址,设备将在它的生命周期中一直拥有它。它通常由制造商或者被安装时设置。这些地址由IEEE来维护和分配。

16为网络地址是当设备加入网络后分配的。它在网络中是唯一的,用来在网络中鉴别设备和发送数据。

2.3.2 网络地址分配

ZigBee使用分布式寻址方案来分配网络地址。这个方案保证在整个网络中所有分配的地址是唯一的。这一点是必须的,因为这样才能保证一个特定的数据包能够发给它指定的设备,而不出现混乱。同时,这个寻址算法本身的分布特性保证设备只能与他的父辈设备通讯来接受一个网络地址。不需要整个网络范围内通讯的地址分配,这有助于网络的可测量性。

在每个路由加入网络之前,寻址方案需要知道和配置一些参数。这些参数是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决定了一个路由(Router)或者一个协调器(Coordinator)节点可以处理的具有路由功能的儿子节点的最大个数。这个参数是MAX_CHILDREN 的一个子集,终端节点使用(MAX_CHILDREN – MAX_ROUTER)剩下的地址空

间。

如果开发人员想改变这些值,则需要完成以下几个步骤:

首先,你要保证这些参数新的赋值要合法。即,整个地址空间不能超过216,这就限制了参数能够设置的最大值。可以使用projects\ZStack\tools文件夹下的CSkip.xls文件来确认这些值是否合法。当在表格中输入了这些数据后,如果你的数据不合法的话就会出现错误信息。

当选择了合法的数据后,开发人员还要保证不再使用标准的栈配置,取而代之的是网络自定义栈配置(例如:在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(在ZComDef.h 中定义)类型的目标设备。

typedef struct

{

union

{

uint16 shortAddr;

} addr;

afAddrMode_t addrMode;

byte endPoint;

} afAddrType_t;

注意,除了网路地址之外,还要指定地址模式参数。目的地址模式可以设置为以下几个值:

typedef enum

{

afAddrNotPresent = AddrNotPresent,

afAddr16Bit = Addr16Bit,

afAddrGroup = AddrGroup,

afAddrBroadcast = AddrBroadcast

} afAddrMode_t;

因为在Zigbee中,数据包可以单点传送(unicast),多点传送(multicast)或者广播传送,所以必须有地址模式参数。一个单点传送数据包只发送给一个设备,多点传送数据包则要传送给一组设备,而广播数据包则要发送给整个网络的所有节点。这个将在下面详细解释。

2.3.4 单点传送

Uicas t是标准寻址模式,它将数据包发送给一个已经知道网络地址的网络设备。将afAddrMode设置为Addr16Bit并且在数据包中携带目标设备地址。

2.3.5 间接传送

当应用程序不知道数据包的目标设备在哪里的时候使用的模式。将模式设置为AddrNotPresent并且目标地址没有指定。取代它的是从发送设备的栈的绑定表中查找目标设备。这种特点称之为源绑定。

当数据向下发送到达栈中,从绑定表中查找并且使用该目标地址。这样,数据包将被处理成为一个标准的单点传送数据包。如果在绑定表中找到多个设备,则向每个设备都发送一个数据包的拷贝。

上一个版本的ZigBee(ZigBee04),有一个选项可以讲绑定表保存在协调器

(Coordinator)当中。发送设备将数据包发送给协调器,协调器查找它栈中的绑定表,然后将数据发送给最终的目标设备。这个附加的特性叫做协调器绑定(Coordinator Binding)。

2.3.6广播传送

当应用程序需要将数据包发送给网络的每一个设备时,使用这种模式。地址模式设置为AddrBroadcast。目标地址可以设置为下面广播地址的一种:

NWK_BROADCAST_SHORTADDR_DEV ALL(0xFFFF)——数据包将被传送到网络上的所有设备,包括睡眠中的设备。对于睡眠中的设备,数据包将被保留在其父亲节点直到查询到它,或者消息超时(NWK_INDIRECT_MSG_TIMEOUT 在f8wConifg.cfg中)。

NWK_BROADCAST_SHORTADDR_DEVRXON(0xFFFD)——数据包将被传送到网络上的所有在空闲时打开接收的设备(RXONWHENIDLE),也就是说,除了睡眠中的所有设备。

NWK_BROADCAST_SHORTADDR_DEVZCZR(0xFFFC)——数据包发送给所有的路由器,包括协调器。

2.3.7组寻址

当应用程序需要将数据包发送给网络上的一组设备时,使用该模式。地址模式设置为afAddrGroup并且addr.shortAddr设置为组ID。

在使用这个功能呢之前,必须在网络中定义组。(参见Z-stack API文档中的aps_AddGroup()函数)。

注意组可以用来关联间接寻址。再绑定表中找到的目标地址可能是是单点传送或者是一个组地址。另外,广播发送可以看做是一个组寻址的特例。

下面的代码是一个设备怎样加入到一个ID为1的组当中:

aps_Group_t group;

相关主题
相关文档
最新文档