《zigbee技术原理.ppt》由会员分享,可在线阅读,更多相关《zigbee技术原理.ppt(129页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、理解Zigbee网络结构。掌握IEEE802.15.4通信层。掌握MAC层和网络层帧结构。掌握Zigbee网络层服务规范。掌握Zigbee应用层规范。本章主要介绍Zigbee技术原理,这是更深入了解Zigbee协议的应用以及后续开发的基础。2.1 概述概述Zigbee技术是一种低数据传输速率的无线个域网,网络的基本成员称为设备。网络中的设备按照各自作用的不同可以分为协调器节点、路由器节点和终端节点。2.2 Zigbee网络结构网络结构Zigbee网络协调器是整个网络的中心,它的功能包括建立、维持和管理网络,分配网络地址等。所以可以将Zigbee网络协调器认为是整个Zigbee网络的“大脑”。Z
2、igbee网络路由器主要负责路由发现、消息传输、允许其他节点通过它接入到网络。Zigbee终端节点通过Zigbee协调器或者Zigbee路由器接入到网络中,Zigbee终端节点主要负责数据采集或控制功能,但不允许其他节点通过它加入到网络中。本节将重点介绍Zigbee网络体系、Zigbee网络拓扑结构和Zigbee协议架构。2.2.1 网络体系 按照OSI模型,Zigbee网络分为4层,从下向上分别为物理层、媒体访问控制层(MAC)、网络层(NWK)和应用层。其中物理层和MAC层由IEEE802.15.4标准定义,合称IEEE802.15.4通信层;网络层和应用层由Zigbee联盟定义。图2-1
3、所示为Zigbee网络协议架构分层,每一层向它的上层提供数据和管理服务。图2-1 Zigbee网络体系架构2.2.2 拓扑结构Zigbee网络支持三种拓扑结构:星型、树型和网状型结构,如图2-2所示。其中:在星型拓扑结构中,所有的终端设备只和协调器之间进行通信。树型网络由一个协调器和多个星型结构连接而成,设备除了能与自己的父节点或子节点互相通信外,其他只能通过网络中的树型路由完成通信。图2-2 Zigbee网络拓扑结构网状型网络是在树型网络的基础上实现的。与树状网络不同的是,它允许网络中所有具有路由功能的节点互相通信,由路由器中的路由表完成路由查寻过程。(1). 星型网络的形成过程在星型网络中
4、,协调器作为发起设备,协调器一旦被激活,它就建立一个自己的网络,并作为PAN协调器。路由设备和终端设备可以选择PAN标识符加入网络。不同PAN标识符的星型网络中的设备之间不能进行通信。(2). 树型网络的形成过程在树型网络中,由协调器发起网络,路由器和终端设备加入网络。设备加入网络后由协调器为其分配16位短地址,具有路由功能的设备可以拥有自己的子设备。但是在树型网络中,子设备只能和自己的父设备进行通信,如果某终端设备要与非自己父设备的其他设备通信,必须经过树型路由进行通信。(3). 网状型网络的形成过程在网状型网络中,每个设备都可以与在无线通信范围内的其他任何设备进行通信。理论上任何一个设备都
5、可定义为PAN主协调器,设备之间通过竞争的关系竞争PAN主协调器。但是在实际应用中,用户往往通过软件定义协调器,并建立网络,路由器和终端设备加入此网络。当协调器建立起网络之后,其功能和网络中的路由器功能是一样的,在此网络中的设备之间都可以相互进行通信。2.2.3 协议架构(重点、难点)协议架构(重点、难点)Zigbee网络协议体系结构如图2-3所示,协议栈的层与层之间通过服务接入点(SAP)进行通信。 SAP是某一特定层提供的服务与上层之间的接口。 大多数层有两个接口:数据服务接口和管理服务接口。数据服务接口的目标是向上层提供所需的常规数据服务;管理服务接口的目标是向上层提供访问内部层参数、配
6、置和管理数据服务。Zigbee协议体系架构是在IEEE802.15.4标准的基础上建立的,IEEE802.15.4标准定义了Zigbee协议的物理层和MAC层。因此Zigbee设备应该包括IEEE802.15.4的物理层和MAC层以及Zigbee堆栈层,其中Zigbee堆栈层包括Zigbee联盟定义的网络层和应用层以及安全服务商提供的安全服务层。1. 物理层和MAC层IEEE802.15.4标准为低速率无线个人域网定义了OSI模型最底层的两层,即物理层和MAC层,也是Zigbee协议底部的两层,因此这两层也称为IEEE 802.15.4通信层。其详细内容见2.3节。图2-3 Zigbee协议体
7、系架构2. 网络层网络层提供保证IEEE802.15.4 MAC层正确工作的能力,并为应用层提供合适的服务接口,包括数据服务接口数据服务接口(MCPS)和管理服务接口管理服务接口(MLME)。数据服务接口的作用数据服务接口的作用主要有两点: 一是为应用支持子层的数据添加适当的协议头以便产生网络协议数据单元。 二是根据路由拓扑结构,把网络数据单元发送到通信链路的目的地址设备或通信链路的下一跳地址。管理服务接口的作用管理服务接口的作用有以下两点:提供的服务包括配置新设备、创建新网络、设备请求加入或者离开网络。允许Zigbee协调器或路由器请求设备离开网络、寻址、路由发现等功能。3. 应用层应用层包
8、括三部分:应用支持子层应用支持子层(APS)、Zigbee设备对象(ZDO)和厂商定义的应用对象。应用支持子层提供了网络层和应用层之间的接口,包括数据服务接口数据服务接口和管理服务接口管理服务接口。其中管理服务接口提供设备发现服务和绑定服务,并在绑定的设备之间传送消息。Zigbee设备对象设备对象功能包括:定义设备在网络中的角色(比如协调器、路由器或终端设备),发起和响应绑定请求,在网络设备之间建立安全机制。另外,还负责发现网络中的设备,并且向他们提供应用服务。厂商定义的应用对象功能包括:提供一些必要函数,为网络层提供合适的服务接口。另外一个重要的功能是应用者可以在这层定义自己的应用对象。IE
9、EE802.15.4规范满足国际标准组织(ISO)开放系统互联(OSI)参考模式,它定义了Zigbee的物理层和物理层和MAC层层。2.3 IEEE802.15.4通信层通信层2.3.1 物理层物理层负责的主要功能包括:工作频段的分配,信道的分配以及为MAC层服务提供数据服务和管理服务。1. 工作频段的分配IEEE802.15.4定义了两个物理标准,分别是2450MHz(一般称为2.4GHz)的物理层和868/915MHz的物理层。它们基于直接序列扩频,使用相同的物理层数据包格式,区别在于工作频段、调制技术和传输速率的不同。2.4GHz是全球统一的无需申请的ISM频段,有助于Zigbee设备的
10、推广和生产成本的降低。此频段的物理层通过采用高阶调制技术能够提供250kb/s的传输速率,有助于获得更高的吞吐量、更小的通信延时和更短的周期,达到节约能源的目的。另外此频段提供16个数据速率为250kb/s的信道。868MHz是欧洲的ISM频段,915MHz是美国的ISM频段,这两个频段的引入避免了2.4GHz附近各种无线通信设备的相互干扰。868MHz的传输速率为20kb/s,915MHz的传输速率是40kb/s。这两个频段上无线信号传播损耗较小,可以降低对接收灵敏度的要求,获得较远的通信距离。在868/915MHz频段中,868MHz支持1个数据速率为20kb/s的信道,915MHz支持1
11、0个数据速率为40kb/s的信道。2. 信道的分配IEEE802.15.4物理层在三个频段上划分了27个信道,信道编号k为026。2.4GHz频段上划分了16个信道,915MHz频段上有10个信道,868MHz频段只有1个信道。27个信道的中心频率和对应的信道编号定义如下:3. 物理层服务规范物理层服务规范物理层的主要功能是在一条物理传输媒体上,实现数据链路实体之间透明地传输各种数据比特流。它提供的它提供的主要服务主要服务包括:物理层连接的建立、维持与释放,物理服务数据单元的传输,物理层管理,数据编码。物理层功能涉及“服务原语”和“服务访问接口”两个概念,它们的意义如下所述。 服务原语:服务原
12、语:Zigbee协议栈是一种分层结构,从下至上第从下至上第N层向第层向第N + 1层或者第层或者第N + 1层向第层向第N层提供一组操作层提供一组操作(也也叫服务叫服务),这种,这种“操作操作”叫做服务原语叫做服务原语。它一般通过一段不可分割的或不可中断的程序实现其功能。服务原语用以实现层和层之间的信息交流。 服务访问接口服务访问接口:服务访问接口(Service Access Point,SAP)是某一特定层提供的服务与上层之间的接口。这里所说的“接口接口”是指不同功能层的是指不同功能层的“通信规则通信规则”。例如,物理层服务访问接口是通过射频固件和硬件提供给MAC层与无线信道之间的通信规则
13、。服务访问接口是通过服务原语实现的,其功能是为其他层提供具体服务。注意:这里要区分区分“服务原语服务原语”和和“协议协议”的区别的区别:“协议”是两个需要通信的设备之间的同一层之间如何发送数据、如何交换帧的规则,是“横向”的;而“服务原语”是“纵向”的层和层之间的一组操作。IEEE 802.15.4标准的物理层所实现的功能物理层所实现的功能包括数据的发送与接收、物理信道的能量检测、射频收发器的激活与关闭、空闲信道评估、链路质量指示、物理层属性参数的获取与设置。这些功能是通过物理层服务访问接口来实现的,物理层主要有两种服务接口(SAP):物理层管理服务访问接口管理服务访问接口(Physical
14、Layer Management Entity,简称,简称PLME-SAP),PLME-SAP除了负责在物理层和MAC层之间传输管理服务之外,还负责维护物理层PAN信息库(PHY PIB)。物理层数据服务访问接口(Physical Data SAP,简称PD-SAP),PD-SAP负责为物理层和MAC层之间提供数据服务。PLME-SAP和PD-SAP通过物理层服务原语实现物理层的各种功能,如图2-4所示。图2-4 物理层参考模型4. 数据的发送与接收数据的发送与接收数据的发送和接收是通过PD-SAP提供的PD-DATA原语完成的,它可以实现两个MAC子层的MAC协议数据单元(MAC Proto
15、col Data Unit,MPDU)传输。IEEE802.15.4标准专门定义了三个与数据相关的原语原语:数据请求原语(PD-DATA.Request),数据确认原语(PD-DATA. comfirm)数据指示原语(PD-DATA.Indication)。语法见P18内容5. 物理能量信道的检测物理能量信道的检测协调器在构建一个新的网络时构建一个新的网络时,需要扫描所有信道(在MAC层这种扫描称作ED_SCAN),然后为网络选择一个空闲的信道,这个过程在底层是借助物理信道能量检测来借助物理信道能量检测来完成的完成的。如果一个信道被别的网络占用,体现在信道能量上的值是不一样的。IEEE802.
16、15.4标准定义了与之相关的两个原语:能量检测请求原语(PLME_ED.request)能量检测确认原语(PLED-ED.confirm)。能量检测请求原语由MAC子层产生。能量检测请求原语为一个无参的原语,语法如下:PLME-ED.request( )。收到该原语后,如果设备处于接收使能状态,PLME就指示物理层进行能量检测(ED)。能量检测确认原语由物理层产生,物理层在接收到能量检测原语后把当前信道状态以及当前信道的能量值返回给MAC子层。语法如下:PLME-ED.confirm( status, Energy Level )其中状态参数status将指示能量检测失败的原因(TRX_OFF
17、或TX_ON),如果设备处于收发关闭状态(TRX_OFF)或发送使能状态(TX_ON)时,则无法进行能量检测。在具体实现中,一般射频芯片会使用特定的寄存器存放当前的信道状态以及信道的能量值。 注意:在Zstack协议栈中,用户往往会提前指定信道的使用,以便于Zigbee网络的管理和维护。6. 射频收发器的激活与关闭射频收发器的激活与关闭为了满足低功耗要求,在不需要无线数据收发时,可以选择关闭底层射频收发器。802.15.4标准定义了两个相关的原语:收发器状态设置请求原语收发器状态设置请求原语(PLME-SET-TRX-STATE. request) 收发器状态设置确认状态设置确认原语(PLME
18、-SET-TRX-STATE.confirm)收发器状态设置请求原语由MAC子层产生。语法如下:PLME-SET-TRX-STATE.request( status )其中参数为需要设置的目标状态目标状态,包括:射频接收打开 (RX_ON)、发送打开 (TX_ON)、收发关闭 (TRX_OFF)强行收发关闭 (FORCE_TRX_OFF)。物理层在接收到收发器状态设置确认收发器状态设置确认原语后,将射频设置为对应的状态,并通过设置确认原语返回才做结果。语法如下:PLME-SET-TRX-STATE.confirm( status )其中参数status的取值为SUCCESSRX_ONTRX_O
19、FFTX_ONBUSY_RX或BUSY_TX。7. 空闲信道评估空闲信道评估(Clear Channel Assessment,CCA)由于802.15.4标准的MAC子层采用的是CSMA/CA机制访问信道,需要探测当前的物理信道是否空闲需要探测当前的物理信道是否空闲,物理层提供的CCA检测功能就是专门为此而定义的。此功能定义的两个与之相关的原语为:CCA请求原语(PLME-CCA.request)CCA确认原语(PLME-CCA.confirm)。CCA请求原语由MAC子层产生,语法为:PLME-CCA.request(),是一个无参的请求原语无参的请求原语,用于向物理层询问当前的信道状况。
20、在物理层收到该原语后,如果当前的射频收发状态设置为接收状态,将进行CCA操作(读取物理芯片中相关的寄存器状态)。CCA确认原语由物理层产生,语法如下:PLME-CCA.confirm( status )通过CCA确认原语返回信道空闲或者信道繁忙状态空闲或者信道繁忙状态。如果当前射频收发器处于关闭状态或者发送状态,CCA确认原语将对应返回TRX_OFF或或TX_ON。8. 链路质量指示链路质量指示高层的协议往往需要依据底层的链路质量来选择路由,物理层在接收一个报文的时候,可以顺带返回当前的LQI值,物理层主要通过底层的射频硬件支持来获取LQI。MAC软件产生的软件产生的LQI值可以用信号接收强度
21、指示器(RSSI)来表示。9. 物理层属性参数的获取与设置物理层属性参数的获取与设置在Zigbee协议栈里面,每一层协议都维护着一个信息库(PAN information base,PIB)用于管理该层,里面具体存放着与该层相关的一些属性参数,如最大报文长度等。在高层可以通过原语获取或者修改下一层的信息库里面的属性参数。IEEE802.15.4物理层也同样维护着这样一个信息库,并提供4个相关原语:属性参数获取获取请求(PLME-GET.request)。属性参数获取获取确认原语(PLME-GET.confirm)。属性参数设置设置请求原语(PLME-SET.request)。属性参数设置设置确
22、认原语(PLME-SET.confirm)。2.3.2 MAC层前述物理层负责信道的分配,而而MAC层负责无线信层负责无线信道的使用方式道的使用方式,它们是构建Zigbee协议底层的基础。1. MAC功能功能概述IEEE802.15.4标准定义MAC子层具有以下几项功能:采用CSMA/CA机制来访问信道。PAN(Personal Area Network,个域网)的建立和维护。支持PAN网络的关联(即加入网络)和解除关联(退出网络)。 协调器产生网络信标帧,普通设备根据信标帧与协调器同步。处理和维护保证GTS(Guaranteed Time Slot,同步时隙)。在两个对等MAC实体间提供可靠
23、链路。 2. MAC层服务规范MAC层包括MAC层管理服务(MLME)和数据服务(MCPS)。MAC层参考模型如图2-5所示。图2-5 MAC层参考模型MAC管理服务可以提供调用MAC层管理功能的服务接口,同时还负责维护MAC PAN信息库(MAC PIB)。MAC数据服务可以提供调用MAC公共部分子层(MCPS)提供的数据服务接口,为网络层数据添加协议头网络层数据添加协议头,从而实现实现MAC层帧数据层帧数据。除了以上两个外部接口外,在MCPS和MLME之间还隐含了一个内部接口内部接口,用于MLME调用MAC管理服务。MAC子层具体功能子层具体功能的实现如下所述。 1) CSMA/CA的工作
24、原理 2) PAN的建立和维护 3) 关联和解除关联4) 信标帧2.3.3 MAC帧的结构MAC帧即MAC协议数据单元(MPDU),是由一系列字段按照特定的顺序排列而成的。设计目标是在保持低复杂度的前提下实现在噪声信道上的可靠数据传输。MAC层帧结构分为一般格式和特定格式。1. MAC帧的一般结构MAC帧的一般格式,即所有的MAC帧都由三部分组成:MAC帧头(MHR)、MAC有效载荷和MAC帧尾(MFR)。如图2-6所示。图2-6 MAC帧的一般格式其中,MAC帧头部分由帧控制字段和帧序号字段组成;MAC有效载荷由地址信息和特定帧(例如数据帧、命令帧、信标帧、确认帧)的有效载荷组成,MAC有效
25、载荷的长度与特定帧类型相关(例如确认帧的有效载荷部分长度为0);MAC帧尾是校验序列(FCS)。图2-6中的各部分解释如下。1) 帧控制帧控制帧控制字段的长度为16位,共分为9个子域。帧控制字段的格式如图2-7所示。帧类型子域占3位:000表示信标帧,001表示数据帧,010表示确认帧,011表示MAC命令帧,其他取值预留。安全使能子域占1位:0表示MAC层没有对该帧做加密处理;1表示该帧使用了MACPIB中的密钥进行保护。数据待传指示:1表示在当前帧之后,发送设备还有数据要传送给接收设备,接收设备需要再发送数据请求命令来索取数据;0表示发送数据帧的设备没有更多的数据要传送给接收设备。确认请求
26、占1位:1表示接收设备在接收到该数据帧或命令帧后,如果判断其为有效帧,就要向发送设备反馈一个确认帧;0表示接收设备不需要反馈确认帧。网内/网际子域占1位,表示该数据帧是否在同一PAN内传输。如果该指示位为1且存在源地址和目的地址,则MAC帧中将不包含源PAN标识码字段;如果该指示位为0且存在源地址和目的地址,则MAC帧中将包含PAN标识码和目的PAN标识码。目的地址模式子域占2位:00表示没有目的PAN标识码和目的地址,01预留,10表示目的地址是16位短地址,11表示目的地址是64位扩展地址。如果目的地址模式为00且帧类型域指示该帧不是确认帧或信标帧,则源地址模式应非零,暗指该帧是发送给暗指
27、该帧是发送给PAN协调器的协调器的,PAN协调器的PAN标识码与源PAN标识码一致。源地址模式子域占2位:00表示没有源PAN标识码和源地址,01预留,10表示源地址是16位短地址,11表示源地址是64位扩展地址。如果源地址模式为00且帧类型域指示该帧不是确认帧,则目的地址模式应非零,暗指该帧是由与目的PAN标识码一致的PAN协调器发出的。2) 帧序号序号是MAC层为每帧制定的唯一顺序标示码,帧序号字段长度为8位。其中信标帧的序号是信标序号(BSN)。数据帧、确认帧或MAC命令帧的序号是数据信号(DSN)。3) 目的PAN标识码目的PAN标识码字段长度为16位,它指定了帧的期望接收设备所在PA
28、N的标识。只有帧控制字段中目的地址模式不为0时,帧结构中才存在目的PAN标识码字段。4) 目的地址字段目的地址是帧的期望接收设备的地址。只有帧控制字段中目的地址模式非00时,帧结构中才存在目的地址字段。5) 源PAN标识码源PAN标识码字段长度为16位,它制定了帧发送设备的PAN标识码。只有当帧控制字段中源地址模式值不为0,并且网内/网际指示位等于0时,帧结构中才包含有源PAN标识字段。一个设备的PAN标识码是初始关联到PAN时获得的,但是在解决PAN标识码冲突时可能会改变。6) 源地址字段源地址是帧发送设备的地址。只有帧控制字段中的源地址模式非00时,帧结构才存在源地址字段。7) 帧有效载荷
29、字段有效载荷字段的长度是可变的,因帧类型的不同而不同。如果帧控制字段中的安全使能位为1,则有效载荷长度是受到安全机制保护的数据。8) FCS字段FCS字段是对MAC帧头和有效载荷计算得到的16位CRC校验码。2. MAC特定帧格式MAC帧特定格式包括信标帧、数据帧、确认帧和命令帧。1) 信标帧信标帧信标帧实现网络中设备的同步工作和休眠,建立PAN主协调器。信标帧的格式如图2-8所示,包括MAC帧头、有效载荷和帧尾。其中帧头由帧控制字段、序号和地址信息组成,信标帧中的地址信息只包含源设备的PANID和地址。负载数据单元由四部分组成,即超帧配置、超帧配置、GTS、待处理地址、待处理地址和信标有效载
30、荷信标有效载荷,具体描述如下。超帧配置:超帧指定发送信标的时间间隔、是否发送信标以及是否允许关联。信标帧中超帧描述字段规定了这个超帧的持续时间、活跃部分持续时间以及竞争访问时持续时间、活跃部分持续时间以及竞争访问时段持续时间段持续时间等信息。GTS分配字段:GTS配置字段长度是8位,其中02位是GTS描述计数器子域,位36预留,位7是GTS子域。GTS分配字段将无竞争时段划分为若干个GTS,并把每个GTS具体分配给每个设备。待处理地址:待处理地址列出了与协调者保存的数据相对应的设备地址。一个设备如果发现自己的地址出现在待转发数据目标地址字段里,则意味着协调器存有属于它的数据,所以它就会向协调器
31、发出传送数据的MAC帧请求。信标帧有效载荷:信标帧载荷数据为上层协议提供数据传输接口。Guaranteed Time Slots2) 数据帧数据帧数据帧用来传输上层发到MAC子层的数据。它的负载字段包含了上层需要传送的数据。数据负载传送至MAC子层时,被称为MAC服务数据单元。它的首尾被分别附加了MAC帧头(MHR)和MAC帧尾(MFR)信息。数据帧的格式如图2-9所示。图2-9 数据帧的格式3) 确认帧确认帧确认帧的格式如图2-10所示,由MHR和MFR组成。其中确认帧的序列号应该与被确认帧的序列号相同,并且并且负载长度为负载长度为0。4) 命令帧命令帧命令帧用于组建PAN网络,传输同步数据
32、等,命令帧的格式如图2-11所示。其中命令帧标识字段指示所使用的MAC命令,其取值范围为0 x010 x09。MAC帧头部分。MAC命令帧的帧头部分包括帧控制字段、帧序号字段和地址信息字段。命令帧标识字段指示所使用的MAC命令命令,各帧标识的命令名称如表2-1所示。表2-1 MAC命令帧Zigbee网络层的主要作用是负责网络的建立、允许设备加入或离开网络、路由的发现和维护。2.4 Zigbee网络层网络层2.4.1 功能概述Zigbee网络层主要实现网络的建立、路由的实现以及网络地址的分配。Zigbee网络层的不同功能由不同的设备完成。其中Zigbee网络中的设备有三种类型,即协调器、路由器和
33、终端节点,分别实现不同的功能。协调器协调器具有建立新网络的能力。协调器和路由器协调器和路由器具备允许设备加入网络或者离开网络、为设备分配网络内部的逻辑地址、建立和维护邻居表等功能。Zigbee终端节点终端节点只需要有加入或离开网络的能力即可。2.4.2 服务规范网络层内部由两部分组成,分别是网络层数据实体网络层数据实体(NLDE)和网络层管理实体网络层管理实体(NLME),如图2-12所示。网络层数据实体通过访问服务接口NLDE-SAP为上层提供数据服务。网络层管理实体通过访问服务接口NLME-SAP为上层提供网络层的管理服务,另外还负责维护网络层信息库。图2-12 网络层参考模型1. 网络层
34、数据实体网络层数据实体(NLDE)NLDE可提供数据服务以允许一个应用在两个或多个设备之间来传输应用协议,这些设备必须在同一个网络中。NLDE可提供以下服务类型。通用的网络协议数据单元(NPDU):NLDE可以通过附加一个适当的协议头适当的协议头,并从应用支持子层PDU中产生NPDU。特定的拓扑路由特定的拓扑路由:NLDE能够传输给NPDU一个适当的设备。这个设备可以是最终的传输目的地,也可以是交流链中通往最终目的地的下一个设备。2. 网络层管理实体网络层管理实体(NLME)NLME提供一个管理服务来允许一个应用和协议栈相连接,用来提供以下服务。配置一个新设备配置一个新设备:网络层管理实体可以
35、依据应用操作的要求来完全配置协议栈。设置配置包括开始设备作为Zigbee协调器或加入一个存在的网络。开始一个网络开始一个网络:网络层管理实体可以建立一个新的网络。加入或离开一个网络加入或离开一个网络:网络层管理实体可以加入或者离开一个网络,使Zigbee的协调器和路由器能够允许终端节点离开网络。分配地址分配地址:使Zigbee协调器和路由器可以分配地址给新加入网络的设备。邻居表发现邻居表发现:去发现、记录和报告设备的一跳邻居表的相关信息。路由的发现路由的发现:可以通过网络来发现以及记录传输路径,并记录在路由表中。接收控制接收控制:当接收者活跃时,网络层管理实体可以控制接收时间的长短并使MAC子
36、层同步或直接接收。2.4.3 帧结构帧结构网络层协议数据单元(NPDU)即网络层帧的结构,如图2-13所示。网络层协议数据单元(NPDU)结构由网络层帧报头和网络层的有效载荷两部分组成。网络层帧报头包含帧控制、地址信息、广播半径域、广播序列号、多点传送控制等信息,其中地址信息包括目的地址、源地址、IEEE目的地址和IEEE源地址。图2-13 网络层数据帧的格式在Zigbee网络协议中定义了两种类型的帧结构,即网络层数据帧和网络层命令帧。下面主要介绍网络层数据帧内的各个子域。1) 帧控制域帧控制子域的格式如图2-14所示。图2-14 帧控制子域的结构各子域详细说明如下:帧类型子域占2位,00表示
37、数据帧,01表示命令帧,1011保留。协议版本子域占4位,为Zigbee网络层协议标准的版本号。在一个特殊设备中使用的协议版本应作为网络层属性nwkProtocolVersion的值,在Zstack-CC2530-2.5.1A中版本号为2。发现路由子域占2位,00表示禁止路由发现,01表示使能路由发现,10表示强制路由发现,11保留。广播标记占1位,0表示为单播或者广播,1表示组播。安全子域占1位,当该帧为网络层安全操作使能时(即加密时),安全子域的值为1,当安全子域在另一层执行或者完全失败时(即未加密时),值为0。源路由子域占1位,1表示源路由子帧在网络报头中存在。如果源路由子帧不存在,则源
38、路由子域值为0。IEEE目的地址为1时,网络帧报头包含整个IEEE目的地址。IEEE源地址为1时,网络帧报头包含整个IEEE源地址。2) 目的地址目的地址长度域为2个字节。如果帧控制域的广播标志子域值为0,那么目的地址域值为16位的目的设备网络地址或者广播地址。如果广播标志子域值为1,目的地址域为16位目的组播的Group ID。3) 源地址在网络层帧中必须有源地址,其长度是2个字节,其值是源设备的网络地址。4) 半径域半径域总是存在的,它的长度为1字节。当设备每接收一次帧数据时,广播半径即减1,广播半径限定了传输半径的范围。5) 广播序列号域每个帧中都包含序列号域,其长度是1字节。每发送一个
39、新的帧,序列号值即加1。帧的源地址和序列号子域是1对,在限定了序列号1字节的长度内是唯一的标识符。6) IEEE目的地址如果存在IEEE目的地址域,它将包含在网络层地址头中的目的地址域的16位网络地址相对应的64位IEEE地址中。如果该16位网络地址是广播或者组播地址,那么IEEE目的地址不存在。7) IEEE源地址如果存在IEEE源地址域,则它将包含在网络层地址头中的源地址域的16位网络地址相对应的64位IEEE地址中。8) 多点传送控制多点控制域是1字节长度,且只有广播标志子域值是1(即组播)时才存在。其结构如图2-15所示。图2-15 多点控制子域的结构9) 源路由帧源路由帧只有在帧控制
40、域的源路由子域的值是1时,才存在源路由帧子域。它分为3个子域:应答计数器(1个字节)、应答索引(1个字节)以及应答列表(可变长)。应答计数器子域表示包含在源路由帧转发列表中的应答数值。应答索引子域表示传输数据包的应答列表子域的下一转发索引。这个域被数据包的发送设备初始化为0,且每转发一次就加1。应答列表子域是节点的短地址列表,用来为源路由数据包寻找目的转发节点。10) 帧有效载荷帧有效载荷的长度是可变的,包含的是上层的数据单元信息。Zigbee的应用层由应用支持子层(APS)、Zigbee设备对象、Zigbee应用框架(AF)、Zigbee设备模板和制造商定义的应用对象等组成。2.5 Zigb
41、ee应用层应用层2.5.1 几个概念1. 节点地址和端点号节点地址:地址类型有两种,64位IEEE地址(即MAC地址,是全球唯一的)和16位网络地址(又称短地址或网络短地址,是设备加入网络后,由网络中的协调器分配给设备的网络短地址)。端点号:端点号(也简称端点)是Zigbee协议栈应用层的入口,它是为实现一个设备描述而定义的一组群集。每个Zigbee设备可以最多支持240个端点,即每个设备上可以定义240个应用对象,端点0被保留用于设备对象(ZDO)接口,端点255被保留用于广播,端点241245被保留用于将来扩展使用。2. 间接通信和直接通信间接通信:指各个节点通过端点的“绑定”建立通信关系
42、,这种通信方式不需要知道目标节点的地址信息,包括IEEE地址或网络短地址,Zstack底层将自动从栈的绑定表中查找目标设备的具体网络地址并将其发送出去。绑定是指两个节点在应用层上建立起来的一条逻辑链路,关于绑定的详细信息参见第6章。直接通信:该方式不需要节点之间通过绑定建立联系,它使用节点地址作为参数,调用适当的应用接口来实现通信。直接通信的关键点之一在于节点地址的获得(获取IEEE地址或网络短地址)。由于协调器的网络短地址是固定为0 x0000的,因此直接通信常用于设备和协调器之间的通信。3. 簇簇(cluster)可以由用户自定义,用于代表消息的类型。当一个任务接收到消息后,会对消息进行处
43、理,但不同的应用有不同的消息,簇是为了将这些消息区分开而定义的(关于簇的使用参见第6章)。4. 设备发现在Zigbee网络中,一个设备通过发送广播或者带有特定单播地址的查询,从而发现另一设备的过程称为设备发现。设备发现有两种类型:第一种是根据IEEE地址;第二种是短地址已知的单播发现和短地址未知的广播发现。接收到查询广播或单播发现信息的设备,根据Zigbee设备类型的不同作出不同方式的响应。Zigbee终端设备:根据请求发现类型的不同,发送自己的IEEE地址或短地址。Zigbee路由器:发送所有与自己连接的设备的IEEE地址或者短地址作为响应。Zigbee协调器:发送IEEE地址或者短地址,或
44、与它连接的设备的IEEE地址或短地址作为响应。5. 服务发现在Zigbee网络中,某设备为发现另一终端设备提供服务的过程称为服务发现。服务发现可以通过对某一给定设备的所有端点发送服务查询来实现,也可以通过服务特性匹配来实现。服务发现过程是Zigbee协议栈中设备实现服务接口的关键。通过对特定端点的描述符的查询请求和对某种要求的广播查询请求等,可以使应用程序获得可用的服务。6. 绑定绑定是一种两个(或多个)应用设备之间信息流的控制机制,在Zstack协议栈中被称为源绑定。所有需要绑定的设备都必须执行绑定机制。绑定允许应用程序发送一个数据包而不需要知道目标地址。应用支持子层从它的绑定表中确定目标地
45、址,然后将数据继续向目标应用或者目标组发送。2.5.2 应用支持子层应用支持子层(APS)负责应用支持子层协议数据单元APDU的处理、数据传输管理和维护绑定列表。应用支持子层(APS)通过一组通用的服务为网络层和应用层之间提供接口,这一组服务可以被Zigbee设备对象和制造商定义的应用对象使用,包括应用支持子层数据服务(APSDE)和应用支持子层管理服务(APSME),如图2-16所示。图2-16 应用支持子层的参考模型应用支持子层数据服务(APSDE)通过“应用支持子层数据服务访问接口(APSDE-SAP)”提供应用层数据单元(APDU)的处理服务,即APDU要取得应用层PDU,并为应用层P
46、DU加入合适的协议头生成APSDU。应用支持子层管理实体(APSME)通过“应用支持子层管理服务访问接口”提供设备发现、设备绑定和应用层数据库的管理等服务,主要提供应用程序与协议栈进行交互的管理服务和对象的绑定服务。另外,还提供应用层信息库(AIB)管理,即从设备的AIB中获取和设置参数的能力;安全管理,即使用密钥来建立与其他设备的可靠关系。2.5.3 应用框架Zigbee设备中应用对象驻留的环境称为应用框架(Application Framework,英文简称AF)。在应用框架中,应用程序可以通过APSDE-SAP发送、接收数据,通过“设备对象公共接口”实现应用对象的控制与管理。应用支持子层
47、数据服务接口(APSDE-SAP)提供的数据服务包括数据传输请求、确认、指示等原语。数据请求原语用于在对等的应用实体间实现数据传输。确认原语报告“数据请求原语”执行的结果。指示原语用来指示APS向目的应用对象的数据传送。Zigbee应用框架给各个用户自定义的应用对象提供了模板式的活动空间,为每个应用对象提供了键值匹配(KVP)服务和报文(MSG)服务。1. Zigbee协议栈模板每个Zigbee设备都与一个特定的模板有关,这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇,比如应用环境为智能家居,那么就可以建立一个智能家居的模板。不过Zigbee模板不是随意定义的,它们的定义由Zig
48、bee联盟负责。Zigbee联盟定义了三种模板,分别为Zigbee协议栈模板、ZigbeePRO模板以及特定网络模板,在Zstack协议栈中使用了这三种模板。Zigbee协议栈模板的定义详见第6章。Zigbee的三种类型的模板可以按使用限制分为:私有、公开和共用。每个模板都有一个模板标识符,此标识符必须是唯一的。如果需要定义满足特定需要的模板,开发商必须向Zigbee联盟申请模板标识符。建立模板应考虑到能够覆盖一定的应用范围,不至于造成模板标识符的浪费。申请模板标识符后,可以为模板定义设备描述、簇标识符和服务类型(键值匹配和报文服务)属性。单个的Zigbee设备可以支持多个模板,提供定义的簇标
49、识符和设备描述符。这些簇标识符和端点标识符通过设备地址和端点地址来实现。设备地址:包含有IEEE地址和短地址的无线收发装置。端点地址:设备中的不同应用端点号代表。一个设备中最多可以有240个端点。在设备中怎样部署端点由应用程序开发者决定,应能保证结构简单,能够满足服务发现的需要。应用程序被安置在端点,它有一个简单描述符。通过简单描述符和服务发现机制才能实现服务发现、绑定及功能互补的设备之间的信息交换。服务发现是建立在模板标识符、输入簇标识符表和输出簇标识符表的基础上的。2. 功能描述Zigbee应用框架的功能可以简单概括为组合事务、接收和拒绝。1) 组合事务应用框架帧结构允许将若干个单独的事务
50、组合在一个帧内,这一组事务称为组合事务。只有共享相同服务类型和簇标识符的事务才能组合事务帧。组合事务帧的长度不能超过最大允许长度。当接收到组合事务帧时,设备将按顺序处理每一个事务。对于需要应答的事务,将分别构造和发送响应帧。发送的组合事务响应帧长度应在APS帧允许的长度之内,如果超过允许的长度,则应将这个组合响应帧分成若干个响应帧。2) 接收和拒绝应用框架首先从APS接收的帧进行过滤处理,然后,检查该帧的目的端点是否处于活动状态。如果目的端点处于非活动状态,则将该帧丢弃;如果目的端点处于活动状态,则应用框架将检查帧中的模板标识符是否与端点的模板标识符匹配。如果匹配,将帧的载荷传送给该端点,否则