ZigBee的应用层.doc_第1页
ZigBee的应用层.doc_第2页
ZigBee的应用层.doc_第3页
ZigBee的应用层.doc_第4页
ZigBee的应用层.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录1、概述 .21.1、应用支持子层( APS) .31.2、 ZigBee 设备对象( ZDO ) .31.2.1、设备发现 .41.2.2、服务发现 .41.2.3、制造商所定义的应用对象 .42、应用支持子层 (APS) .52.1、概述 .52.2、 APS 数据实体 APSDE .52.3、 APS 管理实体 APSME .62.4、服务规范 .62.4.1、APS 数据服务 .72.4.2、APS 管理服务 .162.4.2.1 、绑定原语 .172.4.2.2 、信息库维护 .202.4.2.3 、组管理 .232.5、帧格式 .252.5.1、通用的 APDU 帧格式 .25

2、2.5.2、不同帧类型的格式 .282.6、功能描述 .302.6.1 、永久数据 .302.6.2 、绑定302.6.3 、组寻址312.6.4 、重传332.6.5 、分段的传输332.7 、应用支持子层状态值33参考书籍35ZigBee的应用层协议格式本篇内容ZigBee协议应用层的概述;主讲应用层(APL )下的应用支持子层(APS )规范;1、概述ZigeBee协议栈结构是在IEEE802.15.4标准基础上建立的,而该标准定义了协议的MAC 和 PHY 层。ZigBee设备应该包括IEEE802.15.4的 PHY 层和 MAC 层、以及 ZigBee堆栈层: 网络层 (NWK )

3、、应用( APL )层和安全服务管理。图 1 给出这些组件的关系结构。图 1 ZigBee 协议结构体系应用层更高层实体应 用 对应 用 对ZDOZigBee 设备对象象 240象 1公 共(ZDO)-应用支持子层数据实体 -应用支持子层管理实体服务接入点接口服务接入点端点 240端点 1端点 0APSDE-SAPAPSDE-SAPAPSDE-SAP应用支持子层PSA 应用支持子层APS 安APS信响 应 信-ZDOE管理实体APSME数据实体 APSDEDL管理全管理息中间息M安网络层数据实体SAP全应用支持子管NWK 层P层信息库理SA-ED网 络 安网 络 层路 由 管网络管理LM全管理

4、信 息 中理网络层数据实体介质访问控制子层管理实-服务接入点体 -服务接入点MLDE-SAPMLDE-SAPMAC 层网络层实体PD-SAPPD-SAP2.4GHz(物理)PHY 层868 / 915Hz每个 ZigBee 设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备简通信的串(或称簇).公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。设备是由模板定义的,并以应用对象(Application Objects)的形式实现。每个应用对象通过一个端口连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件。从应用的角度看,通信

5、的本质就是端口到端口的连接(例如, 一个带开关组件的设备与带一个或多个灯组件的设备进行通信,目的是点亮这些灯)。端口之间的通信是通过簇的数据结构实现的。 这些簇是应用对象之间共享信息所需要的全部属性的容器,特殊应用中的簇在模板中有定义。每个接口都能接收或发送簇格式的数据,一共有两个特殊的端口,即端口 0 和端口 255.端口 0 用于整个ZigBee设备的配置和管理。应用程序可以通过端口0 与 ZigBee堆栈的其他层通信, 从而实现对这些层的初始化和配置。附属在端口0 的对象被称为ZigBee设备对象( ZDO )。端口 255 用于向所有端口的广播。端口241254是保留端口。所有端口都使

6、用应用支持子层( APS )提供的服务。 APS 通过网络层和安全服务提供层与端口相连接, 并为数据传送、安全和绑定提供服务,因此能够适配不同单兼容的设备,如带灯的开关。APS 使用网络( NWK )层提供的服务。NWK负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。应用层可以通过ZigBee设备对象( ZDO )对网络层参数进行配置和访问。再从图 1 中观察可以发现,ZigBee应用层框架包括应用支持子层(APS )、ZigBee设备对象( ZDO )和制造商所定义的应用对象。1.1 、应用支持子层( APS )ZigBee协议栈中应用层(APL )的 APS

7、提供了在NWK 层和 APL 层之间及从ZDO 到供应商的应用对象的通用服务集的接口。这种服务由两个实体APSDE 和 APSME 实现。1.2 、ZigBee 设备对象( ZDO )ZDO 代表着一个基本的功能函数类,这个功能在应用对象、设备模式与APS 之间提供了一个接口。 ZDO 位于应用框架与应用支持子层之间,它满足所有在ZigBee协议栈中应用操作的一般需要,具有以下作用:初始化应用支持子层(APS )、网络层( NWK )、安全服务规范(SSS);从终端应用中集合配置信息来确定和执行发现、安全管理、网络管理和绑定管理。ZDO 描述了应用框架层应用对象的公用接口以控制设备和应用对象的

8、网络功能。在终端端口 0 , ZDO 提供了与协议栈中低一层相接的接口,如果是数据,则通过APSDE-SAP ;如果是控制信息,则通过APSME-SAP 。在 ZigBee协议栈的应用框架中,ZDO 公用接口提供设备、发现、绑定、安全等功能的地址管理。1.2.1 、设备发现设备发现,是一个ZigBee设备发现其他ZigBee设备的过程。有两种形式的设备发送请求: IEEE 地址请求和网络地址请求。IEEE 地址请求是单播到一个特定的设备且假定网络地址已知;网络地址请求是广播且携带一个已知的IEEE 地址作为数据负载。1.2.2 、服务发现服务发现是一个已知设备被其他设备发现的过程。服务发现通过

9、在一个已知设备的每个端口发送查询或通过使用一个匹配服务功能(广播或单播)。服务发现可方便定义和使用各种描述来概述一个设备的能力。服务发现信息在网络中也许被隐藏,在这种情况下, 设备提供的某种服务可能不好在发现操作时到达,致使服务可能无法访问。1.2.3 、制造商所定义的应用对象运行在 ZigBee协议栈上的应用程序实际就是厂商自定义的应用对象。这些应用程序使用 ZigBee联盟给出的并且批准的规范(Profile )进行开发并运行在端点1-240上。2 、应用支持子层 (APS)2.1 、概述ZigBee协议栈中应用层(APL )的 APS 提供了在NWK 层和 APL 层之间及从ZDO 到供

10、应商的应用对象的通用服务集的接口。这种服务由两个实体实现:APS 数据实体( APSDE ):通过 APSDE 服务接入点(APSDE-SAP )实现;APS 管理实体( APSME ):通过 APSME 服务接入点( APSME-SAP )实现。2.2 、 APS 数据实体 APSDEAPSDE 提供在同一个网络中的两个或者多个应用实体之间的数据通信,为 NWK 、ZDO和应用对象提供一个数据服务,使得应用程序的PDU 在两个或多个设备之间传输,设备本身必须位于同一个网络。APSDE 提供的服务:发出应用层PDU ( APDU ):APSDE 会接收应用PDU ,并通过增加合适协议开销发出一

11、个 APS PDU ;绑定:一旦两个设备绑定,APSDE 就可以从一个绑定设备传输一个信息给第二个设备;组地址过滤:提供了根据是否是终端组的成员过滤组地址信息的功能;可靠传输:在NWK 层采用端到端重试,增加了事件的可靠性;重复拒绝:传输所提供的信息将不会被多次接收;分裂:可以分裂和重组长于一个NWK 层负载的信息。2.3 、 APS 管理实体 APSMEAPSME 提供的功能包括维持绑定表及在绑定的设备之间传送消息。绑定指的是基于两台设备的服务和需求将它们匹配地连接起来。APSME 提供的服务:绑定管理:根据服务和需求一起匹配两个设备的功能;AIB 管理:在设备的AIB 中获取并设置属性的功

12、能;安全:通过使用安全密钥与其他设备建立可信关系的功能;组管理:提供了宣布多个设备共享一个地址,增加设备到组以及从组中移除设备的功能;2.4 、服务规范APS子层提供了上层实体(NHLE)和NWK层之间的一个接口。APS子层的APSME通过激发子层管理功能提供了服务接口,它还负责维护一个管理有关APS子层对象的数据库( AIB ) 。图2 描绘了APS子层的组件和接口。图 2应用支持子层参考模型APS 子层的两种服务通过NLDE-SAP和(在有限范围内)NLME-SAP ,提供了 NHLE和 NWK层之间的接口。NWK 层和 APS 子层之间的NLME-SAP接口只支持NLME-GET和 NL

13、ME-SET原语;所有其它NLME-SAP原语只能通过ZDO 访问。除这些外部的接口,在 APSME 和 APSDE 之间还有一个隐藏接口, 它允许 APSME 使用 APS 数据服务。 层与层间的通信方式如图 3RequestConfirmRequestConfirmIndication图 3request-confirm-indication2.4.1 、 APS 数据服务APS 子层数据实体SAP( APSDE-SAP )支持应用协议数据单元在对等应用实体之间的传输,表 1 列出了 APSDE-SAP 支持的原语。表 1 APSDE-SAP 原语APSDE-SAP原请求确认指示语APSD

14、E-DATAAPSDE-DATA.requAPSDE-DATA.confiAPSDE-DATA.indicationestrmRequest-confirm原语执行的流程示意图见图4 ,各原语详细内容如下描述;图 4 req-con流程2.4.1.1 、 APSDE-DATA.request原语该原语请求一个从本地NHLE 到一个或多个对等NHLE 实体传输一个NHLE PDU(ASDU );每当一个数据PDU ( ASDU )要被传输给一个对等的NHLE 时,该原语由一个本地的 NHLE 生成,并根据其参数进行不同形式的传输。参数见表2表 2 指明 APSDE-DATA.request原语参

15、数名称类型有效范围描述DstAddrMoInteger0x00-0xff使用目的地址以及传输APDU 的寻址de模式0x00 :DstAddress 和 DstEndpoint不存在0x01 : DstAddress16位组地址;DstEndpoint不存在;0x02 :DstAddress 和 DstEndpoint都存在,是16 位组地址;0x03 : DstAddress16和DstEndpoint都存在,是 64 位扩展地址;0x04-0xff保留;DstAddressAddress通过 DstAddrModeASDU 要被传输到的实体的单独的设参数指定备地址或者组地址DstEndpo

16、inInteger0x00-0xf0,0xff当且仅当 DstAddrMode参数的值为t0x02/0x03时,该参数才存在,此时该参数或者 ASDU 要被传输到的实体的单独个端点的编号,或者是广播端点( 0xff )ProfiledInteger0x0000-0xffff帧要被送到的profilede 标识符ClusterIdInteger0x0000-0xffff帧要被送到的对象的标识符SrcEndpointInteger0x00-0xf0被传输的 ASDU 来自的实体的单个端点ASDULengtInteger0x00-256*(NSDULen构成被传输的ASDU 的字节数, 单负hgth

17、-载的最大长度由NSDULength-apscMinHeaderOverapscMinheaderOverhead给定。 如head)果分段, 用 256 个这样的块组成单个最大的 ASDUASDUSet of-组成被传输的ASDU 的字节集合octetsTxOptionBitmap0000 0xxx(x 为 0/1)被传输的 ASDU 的传输选项:0x01: 启用安全传输0x02: 使用密钥传输0x04: 确认传输0x08: 允许分段RadiusUnsigne0x00-0xff允许一个被传输的帧通过网络进行传d输的距离量,以跳为单位integer2.4.1.2 、 APSDE-DATA.co

18、nfirm原语该原语报告请求从一个本地NHLE 传输一个数据PDU ( ASDU )到一个对等NHLE 的结果。它由本地APS 子层实体在响应一个APSDE-DATA.request原语时产生。当返回的状态参数值为SUCCESS,表明请求传输成功,或者为错误代码NO_SHORT_ADDRESS ,NO_BOUND_DEVICE或 SECURITY_FAIL 或者为任何NLDE-DATA.confirm原语返回的状态值。参数见表3表 3APSDE-DATA.confirm原语的参数名称类型有效范围描述DstAddrModeInteger0x00-0xff使用目的地址以及传输APDU的寻址模式0x

19、00 : DstAddress和DstEndpoint不存在0x01 : DstAddress16位组地址; DstEndpoint不存在;0x02 : DstAddress和DstEndpoint都存在,是16 位组地址;0x03 : DstAddress16和DstEndpoint都存在,是64 位扩展地址;0x04-0xff保留;DstAddressAddress通过 DstAddrModeASDU 要被传输到实体的单个参数来指定设备的地址或组地址DstEndpointInteger0x00-0xf0,0xff当且仅当DstAddrMode参数的值为 0x02/0x03时,该参数才存在,

20、 此时,该参数是APDU要被传输到实体的单个端点的编号;SrcEndpointInteger0x00-0xf0ASDU要被传输到的实体的单StatusEnumerationSUCCESS,NO_ACK,个端点相应的请求状态NO_SHORT_ADDRESS,NO_BOUND_DEVICE,ASDU_TOO_LONG,SECURITY_FALL以及从NLDE-DATA.confirm 原语返回的任何状态返回值TxTimeIndicationInteger具体执行对基于本地时钟的传输包的时间指示, 如 NWK 层所提供的那样原语执行的流程示意图见图5 ,原语详细内容见如下描述;图 5 indicat

21、ion原语流程2.4.1.3 、 APSDE-DATA.indication原语本原语表示从APS 子层传输一个数据PDU( ASDU )到本地应用实体。 (参数说明见表4 )当从本地网络层实体接收到适当地址的数据帧,或随后收到一个DstAddrMode为 0x00且绑定表条目指示帧送到设备本身的APSDE-DATA.request时,该原语由 APS 子层产生并发送给上层。如果ASDU 头的帧控制域表明该帧安全保护,则执行相应的安全管理程序处理。当从本地网络层实体接收到适当地址的数据帧时,该原语由APS 子层产生,并通过NLDE-DATA.indication原语发给上层实体。如果 APDU

22、 头的帧控制域表明该帧安全保护,则执行相应的安全程序进行处理。如果帧处理失败,APSDE 设置状态参数为安全处理返回的安全错误代码。如果帧未被保护或安全处理成功,APSDE 必须检查帧是否被分段。如果扩展头包含在APDU 头中且扩展帧控制域的分段子域表示帧被分段,但是这个设备不支持分段,APSDE就设置状态参数为DEFRAG_UNSUPPORTED。如果扩展头包含在APDU 头中且扩展帧控制域的分段子域表示帧被分段,且这个设备支持分段,但是当前不能重组该帧,APSDE 就设置状态参数为DEFRAG_DEFERRED 。在其它所以情况下,APSDE 设置状态参数为SUCCESS。如果状态参数不设

23、置为SUCCESS,APSDE 设置 ASDULength参数为 0 ,ASDU参数为空字节集合。APS 子层实体必须通过使用NIB 中的属性 nwkAddressMap把接收到的帧的源地址映射为相应的扩展的 64 位 IEEE 地址。如果能找到相应的64 为 IEEE 地址,则 APSDE 发出该原语,其参数 SrcAddrMode设为 0x03 , SrcAddress参数设为相应的 64 位 IEEE 地址。如果找不到相应的 64 位 IEEE 地址, APSDE 将发出该原语,其参数SrcAddrMode设为0x02 ,参数 SrcAddress设为接收帧包含的16 位源地址。表 4A

24、PSDE-DATA.indication原语参数名称类型有效范围描述DstAddrMoInteger0x00-0xff使用目的地址以及传输APDU 的寻址模式de0x00 :保留0x01 :DstAddress16位组地址;DstEndpoint不存在;0x02 : DstAddress 和 DstEndpoint都存在,是 16 位组地址;0x03 -0xff保留;DstAddressAddress通过ASDU 要被传输到的实体的单独的设备地址或DstAddrMod者组地址e参数指定DstEndpoinInteger0x00-0xf0ASDU 所针对的是本地实体上的目标端点tSrcAddrM

25、oInteger0x00-0xff使用目的地址以及传输APDU 的寻址模式de0x00 、 0x01 、0x04-0xff :保留0x02 : DstAddress和 DstEndpoint都存在,是 16 位组地址;0x03 : SrcAddress和 SrcEndpoint都存在,是 64 位扩展地址SrcAddressAddress通过来自收到的 ASDU的实体的单个设备的地址或SrcAddrMod组地址e 指定SrcEndpointInteger0x00-0xf0来自被传输的 ASDU 的实体的单个端点ProfiledInteger0x0000-0xffff发起该帧的 profiled

26、e 标识符ClusterIdInteger0x0000-0xffff接收对象的标识符ASDULengtInteger通过 APSDE 表示的 ASDU 包含的字节数hASDUSet of-通过 APSDE 表示的 ASDU 包含的字节集合octetsStatusEnumerSUCCESS,输入帧处理的状态ationDEFRAG_DEFERREDDEFRAG_UNSUPPORTED 或者帧安全处理返回的任何状态SecurityStatEnumerUNSECURED如果在没有任何安全情况下接收ASDU ,返回usation,UNSECUREDSECURED_N如果接收到的 ASDU 用网络密钥加密

27、,返回WK_KEYSECSECURED_NWK_KEYURED_LINK_如果 ASDU 使用一个链接密钥加密,返回KEYSECURED_LINK_KEYLinkQualityInteger0x00-0xffNLDE 传送的链路质量指示RxTimeInteger具体执行对基于本地时钟的传输包的时间指示,如 NWK层所提供的那样2.4.2 、 APS 管理服务APSME 支持上层和APSME 之间的管理命令的传输。表5 为 APSME-SAP接口支持的原语。并在下面的内容逐一介绍各原语。表 5 APSME-SAP 原语名称请求指示响应确认APSME-BIND.request.confirmAPS

28、ME-UNBIND.request.confirmAPSME-GET.request.confirmAPSME-SET.request.confirmAPSME-ADD-GROUP.request.confirmAPSME-REMOVE-GROUP.request.confirmAPSME-REMOVE-ALL-GROUP.request.confirm2.4.2.1 、绑定原语这两组原语定义了设备的上层如何往其本地绑定表中增加/ 移除一个绑定记录。原语执行的流程示意图见图6;绑定: APSME-BIND.request & APSME-BIND.confirm移除绑定: APSME-UNBI

29、ND.request & APSME-UNBIND.confirm只有支持绑定表或绑定表缓存的设备可以处理这些原语,如果任何其他设备从其上层接收到这些原语,原语将会被丢弃。图 6 BIND&UNBIND原语流程(1 )、 APSME-BIND.request原语本原语允许上层通过在其本地绑定表中创建一个实体,请求把两个设备绑定到一起,或绑定一个设备到某个组中。由上层实体生成,发给APS 子层,目的是在一个支持绑定表的设备上发起绑定操作。参数说明见表6表 6 APSME-BIND.request原语参数名称类型有效范围描述SrcAddrIEEE有效的 64位 IEEE绑定目录的源IEEE 地址A

30、ddress地址SrcEndpointInteger0x00-0xff绑定目录的源端点ClusterIdInteger0x0000-0xffff将要绑定到目的设备上的cluster 标识符DstAddrMoInteger0x00-0xff使用目的地址以及传输APDU 的寻址模式de0x00 、 0x02 、 0x04-0xff:保留0x01 : DstAddress16位组地址;DstEndpoint不存在;0x03 : DstAddress和 DstEndpoint 都存在,是 64 位扩展地址;DstAddrAddress通过绑定目录的目的地址DstAddrMode参数指定DstEndpo

31、inInteger0x00-0xf0, 0xff当 DstAddrMode参数为 0x03 时存在, 此t时参数为绑定目录的目标端点(2 )、 APSME-BIND.confirm原语本原语允许上层被通知其直接或代理请求绑定两个设备,或绑定一个设备到某个组。它由 APSME生成,发给其 NHLE 以响应一个 APSME-BIND.Request原语。参数说明见表 7表 7 APSME-BIND.confirm原语参数名称类型有效范围描述StatusEnumeratioSUCCESS绑定请求结果nILLEGAL_DEVICEILLEGAL_REQUESTTABLE_FULLNOT_SUPPORT

32、ED其余参数见表6(3 )、 APSME-UNBIND.request原语与 APSME-BIND.request原语比较操作基本相同,参数说明见表;(4 )、 APSME-UNBIND.confirm原语与 APSME-BIND.confirm原语比较不同在于返回的状态参数,参数说明见表;表 8APSME-UNBIND.confirm原语参数名称类型有效范围描述StatusEnumerationSUCCESS取消绑定请求的结果ILLEGAL_DEVICEILLEGAL_REQUESTILLEGAL_BINDING其余参数参见表62.4.2.2 、信息库维护这两组原语定义了设备上层如何读取和写

33、入AIB 中的属性。原语执行的流程示意图见图7图 7 SET-GET 原语流程图(1 )、 APSME-GET.Request原语该原语允许设备上层从AIB 中读取。 由上层生成, 发给其 APSME ,目的是从AIB 中读取一个属性, APSME-GET.Request AIBAttribute /参数说明见表;表 9信息库包含管理设备的APS 层所要求的属性属性标识类型有效范围描述Default符apsBindingTabl0xc1Set可变设备绑定表目录空集e当前集合apsDesignated0xc2BoolTRUE/FALSE设备为协调器时FALSEC为 TRUEoordinatora

34、psChannelMa0xc3IEEE802.15.4任何对于 PHY 有英语这个设备网所有信sk信道掩码效的掩码络操作的允许信道道掩码apsUseExtende0xc464bit 扩展地0x0-0xffffff形成或加入网络0x0d址fffffffffe的 64bit 地址PANIDApsGroupT able0xc5Set可变组表目录的当前空集集合(2 )、 APSME-GET.confirm原语该原语返回尝试从AIB 中读取一个属性值的结果。 它由 APSME 产生,发送给上层作为对 APSME-GET.request原语的响应。 该原语返回状态SUCCESS,表明请求读取AIB 属性请求成功,或者返回错误码UNSUPPORTED_ATTRIBUTE.参数说明见表 10 ;表 10 APSME-GET.confirm原语参数名称类型有效范围描述StatusEnumerationSUCCESS、请求读取 AIB 属性值的UNSUPPORTE结果D_ATTRIBUTEAIBAttributeInteger参见表被读取的 AIB 属性标识符AIBAttributeLengtInteger0x0000-0xffff返回属性值的字节长度hAIBAttributeValueVarious参见表被读取的 AIB 属性值APSME-SET.request原语该原语允

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论