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

下载本文档

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

文档简介

1、目录1、概述1.1、 应用支持子层(APS) 1.2、 ZigBee 设备对象(ZDO ) .1.3、 支持子层(APS)2.1、 概述2.2、 APS 数据实体 APSDE2.3、 APS 管理实体 APSME2.4、 服务规范.2.5、 帧格式.2.6、 功能描述2.7、 应用支持子层状态值 参考书籍ZigBee的应用层协议格式本篇内容ZigBee协议应用层的概述;主讲应用层(APL)下的应用支持子层(APS)规范;1、概述图1 ZigBee协议结构体系tDO应用对象240应用对象1应用支持/层数据实体APS信息全管理中间ZigBee设备对象(ZDO应用支持子层管公共接口端点240- 端点

2、1apsdE-SAp接入点APSDE-SAPj I响应信息PAS-P M安全管理数据实体APSDE网络层数据实体SAPNW应用支持子管信理实体网络层 信息中路由管理网络管理问指制子层管服MLDE-SAPm ACf层实机de-SAP -服务接入点PD-SAPD-SA七 2.4GHz(物理)PHY18/915Hz-'每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备简通信的串(或称簇).公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。设备是由模板定 义的,并以应用对象(Application Objects )

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

4、被称为 ZigBee 设备对象 ( ZDO ) 。 端口 255 用于向所有端口的广播。 端口241254 是保留端口。所有端口都使用应用支持子层( APS )提供的服务。 APS 通过网络层和安全服务提供层与端口相连接,并为数据传送、安全和绑定提供服务,因此能够适配不同单兼容的设备,如带灯的开关。APS 使用网络( NWK )层提供的服务。 NWK 负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。应用层可以通过ZigBee设备对象(ZDO )对网络层参数进行配置和访问。再从图 1 中观察可以发现, ZigBee 应用层框架包括应用支持子层( APS ) 、Zig

5、Bee设备对象(ZDO )和制造商所定义的应用对象。1.1 、应用支持子层(APS )ZigBee 协议栈中应用层 ( APL ) 的 APS 提供了在 NWK 层和 APL 层之间及从ZDO 到供应商的应用对象的通用服务集的接口。这种服务由两个实体APSDE 和APSME 实现。1.2 、 ZigBee 设备对象( ZDO )ZDO 代表着一个基本的功能函数类,这个功能在应用对象、设备模式与APS之间提供了一个接口。 ZDO 位于应用框架与应用支持子层之间,它满足所有在ZigBee 协议栈中应用操作的一般需要,具有以下作用:初始化应用支持子层(APS ) 、网络层(NWK ) 、安全服务规范

6、(SSS) ;从终端应用中集合配置信息来确定和执行发现、安全管理、网络管理和绑 定管理。ZDO 描述了应用框架层应用对象的公用接口以控制设备和应用对象的网络功 能。在终端端口 0 , ZDO 提供了与协议栈中低一层相接的接口,如果是数据,则通过 APSDE-SAP ;如果是控制信息,则通过APSME-SAP 。在 ZigBee 协议栈的应用框架中,ZDO 公用接口提供设备、发现、绑定、安全等功能的地址管理。设备发现,是一个ZigBee 设备发现其他ZigBee 设备的过程。有两种形式的设备发送请求:IEEE地址请求和网络地址请求。IEEE地址请求是单播到一个特定的设备且假定网络地址已知;网络地

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

8、协议栈中应用层 ( APL ) 的 APS 提供了在 NWK 层和 APL 层之间及从ZDO 到供应商的应用对象的通用服务集的接口。这种服务由两个实体实现:APS 数据实体(APSDE ) :通过APSDE 服务接入点( APSDE-SAP ) 实现;APS 管理实体( APSME ) :通过 APSME 服务接入点( APSME-SAP )实 现。2.2 、 APS 数据实体 APSDEAPSDE 提供在同一个网络中的两个或者多个应用实体之间的数据通信,为NWK 、 ZDO 和应用对象提供一个数据服务,使得应用程序的 PDU 在两个或多个设备之间传输,设备本身必须位于同一个网络。APSDE

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

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

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

12、DE-DATA.cAPSDE-DATA.indicaAequestonfirmtionRequest-confirm原语执行的流程示意图见图4,各原语详细内容如下描述;图4 req-con 流程该原语请求一个从本地 NHLE到一个或多个对等NHLE实体传输一个NHLE PDU (ASDU);每当一个数据 PDU (ASDU )要被传输给一个对等的 NHLE时, 该原语由一个本地的NHLE生成,并根据其参数进行不同形式的传输。参数见表2表2指明APSDE-DATA.request 原语参数名称有效范围描述DstAddrModeInteger0x00-0xff使用目的地址以及传输 APDU的寻址模

13、式0x00 : DstAddress 和DstEndpoint 不存在0x01 : DstAddress16 位组地址;DstEndpoint 不存在;0x02 : DstAddress 和DstEndpoint 都存在,是 16位组地址;0x03 : DstAddress16 和DstEndpoint 都存在,是 64位扩展地址;0x04-0xff 保留;DstAddre ssAddres s通过DstAddrMode参数指定ASDU要被传输到的实体的单独的设备地址或者组地址DstEndpointInteger0x00-0xf0,0xff当且仅当DstAddrMode 参数的值为0x02/0

14、x03 时,该参数才存在,此时该参数或者ASDU要被传输到的实体的单独个端点的编号,或者是广播端点(0xff )ProfiledInteger0x0000-0xffff帧要被送到的profilede 标识符ClusterldInteger0x0000-0xffff帧要被送到的对象的标识符SrcEndpointInteger0x00-0xf0被传输的ASDU来自的实体的单个端点ASDULengthInteger0x00-256*(NSDULength-apscMinHeaderOverhead)构成被传输的ASDU的字节数,单负载的最大长度由NSDULength-apscMinheaderOve

15、rhead给定。如果分段,用256个这样的块组成单个最大的 ASDUASDUSet of octets-组成被传输的ASDU的字节集合TxOptionBitmap0000 0xxx(x 为0/1)被传输的ASDU的传输选项:0x01:启用安全传输0x02:使用密钥传输0x04:确认传输0x08:允许分段RadiusUnsign ed integer0x00-0xff允许一个被传输的帧通过网络进行传输的距离量,以跳为单位该原语报告请求从一个本地 NHLE传输一个数据PDU (ASDU)到一个对等NHLE的结果。它由本地 APS子层实体在响应一个 APSDE-DATA.request 原语时产生。

16、当返回的状态参数值为 SUCCESS,表明请求传输成功,或者为错误代码 NO_SHORT_ADDRESS ,NO_BOUND_DEVICE 或 SECURITY_FAIL 或者为任何 NLDE-DATA.confirm 原语返回的状态值。参数见表3表 3 APSDE-DATA.confirm 原语的参数名称有效范围描述DstAddrModeInteger0x00-0xff使用目的地址以及传输APDU的寻址模式0x00 : DstAddress 和DstEndpoint 不存在0x01 : DstAddress16 位组地址;DstEndpoint 不存在;0x02 : DstAddress 和

17、DstEndpoint 都存在,是16位组地址;0x03 : DstAddress16 和DstEndpoint 都存在,是64位扩展地址;0x04-0xff 保留;DstAddressAddress通过DstAddrMode参数来指定ASDU要被传输到实体的单个设备的地址或组地址DstEndpointInteger0x00-0xf0,0xff当且仅当DstAddrMode参数的值为0x02/0x03时,该参数才存在,此时, 该参数是APDU要被传输 到实体的单个端点的编号;SrcEndpointInteger0x00-0xf0ASDU要被传输到的实体的单个端点StatusEnumeratio

18、 nSUCCESS, NO_ACK, NO_SHORT_AD DRESS, NO_BOUND_D EVICE, ASDU_TOO_LO NG , SECURITY_FALL 以及从 NLDE-DATA.co nfirm 原语返回 的任何状态返回 值相应的请求状态TxTimeInteger具体执行对基于本地时钟的传输包的时间指示,如NWK层所提供的那样Indication 原语执行的流程示意图见图5,原语详细内容见如下描述;图5 indication 原语流程本原语表示从APS子层传输一个数据 PDU (ASDU)到本地应用实体。(参数说明见表4)当从本地网络层实体接收到适当地址的数据帧,或随后

19、收到一个DstAddrMode 为0x00且绑定表条目指示帧送到设备本身的APSDE-DATA.request 时,该原语由APS子层产生并发送给上层。如果 ASDU 头的帧控制域表明该帧安全保护,则执行相应的安全管理程序处理。当从本地网 络层实体接收到适当地址的数据帧时,该原语由APS子层产生,并通过NLDE-DATA.indication原语发给上层实体。如果 APDU头的帧控制域表明该帧安全保护,则执行相应的安全程序进行处理。如果帧处理失败,APSDE设置状态参数为安全处理返回的安全错误代码。如果帧未被保护或安全处理成功,APSDE必须检查帧是否被分段。如果扩展 头包含在APDU头中且扩

20、展帧控制域的分段子域表示帧被分段,但是这个设备不 支持分段,APSDE就设置状态参数为 DEFRAG_UNSUPPORTED 。如果扩展头包 含在APDU头中且扩展帧控制域的分段子域表示帧被分段,且这个设备支持分段, 但是当前不能重组该帧,APSDE就设置状态参数为 DEFRAG_DEFERRED。在其它所以情况下,APSDE设置状态参数为SUCCESS。如果状态参数不设置为 SUCCESS, APSDE设置ASDULength 参数为0, ASDU参数为空字节集合。APS子层实体必须通过使用 N旧中的属性nwkAddressMap 把接收到的帧的 源地址映射为相应的扩展的 64位IEEE地址

21、。如果能找到相应的64为IEEE地址, 则APSDE发出该原语,其参数 SrcAddrMode 设为0x03 , SrcAddress 参数设 为相应的64位IEEE地址。如果找不到相应的 64位IEEE地址,APSDE将发出该 原语,其参数SrcAddrMode 设为0x02 ,参数SrcAddress设为接收帧包含的16 位源地址。表 4 APSDE-DATA.indication 原语参数名称有效范围描述DstAddrIntege0x00-0xff使用目的地址以及传输 APDU的寻址Moder模式0x00 :保留0x01 : DstAddress16 位组地址;DstEndpoint 不

22、存在;0x02 : DstAddress 和 DstEndpoint都存在,是16位组地址;0x03 -0xff 保留;DstAddre ssAddre ss通过DstAddrMode参数指定ASDU要被传输到的实体的单独的设备地址或者组地址DstEndpointInteger0x00-0xf0ASDU所针对的是本地实体上的目标端点SrcAddrModeInteger0x00-0xff使用目的地址以及传输 APDU的寻址模式0x00、0x01、0x04-0xff :保留0x02 : DstAddress 和 DstEndpoint都存在,是16位组地址;0x03 : SrcAddress 和

23、SrcEndpoint都存在,是64位扩展地址SrcAddre ssAddre ss通过SrcAddrM来自收到的ASDU的实体的单个设备的地址或组地址ode指定SrcEndpoIntege0x00-0xf0来自被传输的ASDU的实体的单个端intr占八、ProfiledInteger0x0000-0xffff发起该帧的profilede标识符ClusterldInteger0x0000-0xffff接收对象的标识符ASDULenIntege通过APSDE表示的ASDU包含的字gthr节数ASDUSet of octets-通过APSDE表示的ASDU包含的字节集合StatusEnumerat

24、ionSUCCESS, DEFRAG_D EFERRED DEFRAG_U NSUPPO RTED或者 帧安全处理 返回的任何 状态输入帧处理的状态SecuritySEnumeUNSECUR如果在没有任何安全情况卜接收tatusrationED,ASDU ,返回 UNSECUREDSECURED_如果接收到的ASDU用网络密钥加NWK_KEY密,返回 SECURED_NWK_KEYSECURED_如果ASDU使用一个链接密钥加密,LINK_KEY返回 SECURED_LINK_KEYLinkQualiIntege0x00-0xffNLDE传送的链路质量指示tyrRxTimeIntege具体执行

25、对基于本地时钟的传输包的时间指r示,如NWK层所提供的那样APSME支持上层和 APSME之间的管理命令的传输。表 5为 APSME-SAP接口支持的原语。并在下面的内容逐一介绍各原语。表 5 APSME-SAP 原语名称请求指小响应确认APSME-BIND.request.confirmAPSME-UNBIND.request.confirmAPSME-GET.request.confirmAPSME-SET.request.confirmAPSME-ADD-GROUP.request.confirmAPSME-REMOVE-GROUP.request.confirmAPSME-REMOVE

26、-ALL-GROUP.request.confirm这两组原语定义了设备的上层如何往其本地绑定表中增加/移除一个绑定记录。原语执行的流程示意图见图6;绑定:APSME-BIND.request & APSME-BIND.confirm移除绑定:APSME-UNBIND.request & APSME-UNBIND.confirm只有支持绑定表或绑定表缓存的设备可以处理这些原语,如果任何其他设备从其上层接收到这些原语,原语将会被丢弃。图6 BIND&UNBIND原语流程(1)、APSME-BIND.request 原语本原语允许上层通过在其本地绑定表中创建一个实体,请求把

27、两个设备绑定到一起,或绑定一个设备到某个组中。由上层实体生成,发给 APS子层,目的是在一个支持绑定表的设备上发起绑定操作。参数说明见表6表 6 APSME-BIND.request原语参数名称有效范围描述SrcAddrIEEEAddre ss有效的64位IEEE地址绑定目录的源IEEE地址SrcEndpointInteger0x00-0xff绑定目录的源端点ClusterIdInteger0x0000-0xffff将要绑到目的设备上的 cluster标识符DstAddrModeInteger0x00-0xff使用目的地址以及传输 APDU的寻址模式0x00、0x02、0x04-0xff :保

28、留0x01 : DstAddress16 位组地址;DstEndpoint 不存在;0x03 : DstAddress 和DstEndpoint 都存在,是64位扩展地址;DstAddrAddre ss通过DstAddrMod e 参数指定绑定目录的目的地址DstEndpointInteger0x00-0xf0 ,0xff当DstAddrMode 参数为0x03时存在,此时参数为绑定目录的目标端点(2)、APSME-BIND.confirm 原语本原语允许上层被通知其直接或代理请求绑定两个设备,或绑定一个设备到某个组。它由 APSME生成,发给其 NHLE以响应一个 APSME-BIND.Re

29、quest 原语。参数说明见表7表 7 APSME-BIND.confirm原语参数名称有效范围描述StatusEnumerationSUCCESSILLEGAL_DEVICEILLEGAL_RE绑定请求结果QUESTTABLE_FULL NOT_SUPPO RTED其余参数见表6(3)、APSME-UNBIND.request原语与APSME-BIND.request原语比较操作基本相同,参数说明见表6 ;(4)、APSME-UNBIND.confirm原语与APSME-BIND.confirm原语比较不同在于返回的状态参数,参数说明见表8 ;表 8 APSME-UNBIND.confirm

30、原语参数名称有效范围描述StatusEnumerati onSUCCESSILLEGAL_DEVICEILLEGAL_REQUESTILLEGAL_BINDING取消绑定请求的结果其余参数参见表6这两组原语定义了设备上层如何读取和写入AIB中的属性。原语执行的流程示意图见图7图7 SET-GET原语流程图(1)、APSME-GET.Request 原语该原语允许设备上层从A旧中读取。由上层生成,发给其 APSME,目的是从AIB中读取一个属性, APSME-GET.Request A旧Attribute /参数说明见表9 ;该原语返回尝试从 AIB中读取一个属性值的结果它由APSME产生,发送

31、给表9信息库包含管理设备的 APS层所要求的属性属性标识符有效范围描述DefaultapsBindingTable0xc1Set可变设备绑定表目录当前集合空集apsDesignatedC oordinator0xc2BoolTRUE/FALSE设备为协调器取TRUEFALSEapsChannelMask0xc3IEEE802.15.4信道掩码任何对于PHY有效的掩码英语这个设备网络操作的允许信道掩码所有信道apsUseExtendedPANID0xc464bit扩展地址0x0-0xfffffffffffffffe形成或加入网络的64bit地址0x0ApsGroupTable0xc5Set可变组

32、表目录的当前集合空集(2)、APSME-GET.confirm 原语上层作为对 APSME-GET.request 原语的响应。 该原语返回状态 SUCCESS,表 明请求读取A旧属性请求成功,或者返回错误码UNSUPPORTED_ATTRIBUTE.参数说明见表10;表 10 APSME-GET.confirm 原语参数名称有效范围描述StatusEnumerationSUCCESS、UNSUPPORTED_AIIRIBUTE请求读取值的结果AIB属性A旧AttributeInteger参见表9被读取的标识符AIB属性A旧AttributeLengthInteger0x0000-0xffff

33、返回属性值的字节长度A旧AttributeVal ueVarious参见表9被读取的值AIB属性APSME-SET.request 原语该原语允许上层往 AIB写入一个属性值。它由上层产生并发送给APSME在AIB中写入一个属性值。参数说明见表11 ;表 11 APSME-SET.confirm 原语参数名称有效范围描述AIBAttributeInteger参见表9被读取的AIB属性标识符A旧AttributeLengthInteger0x0000-0xffff返回属性值的字节长度A旧AttributeVal ueVarious参见表9被读取的AIB属性值APSME-SET.confirm 原

34、语该原语报告尝试为一个 A旧属性写入一个值得结果。该原语由APSME生成,发给上层以响应一个 APSME-SET.request原语,返回状态值 SUCCESS,表示该 请求值被写入指明的 AIB属性或一个UNSUPPORTED_ATTRIBUTE /INVALID_ATTRIBUTE 的错误代码。参数见表 12;表 12 APSME-SET.confirm 原语参数名称有效范围描述StatusEnumerationSUCCESS,INVALID_PARAMETER或UNSUPPORTED_AIIRIBUTE写A旧属性请求的结果AIBAttributeInteger见表9这组原语允许上层在当前

35、设备中通过在组表中添加和移除入口来管理每个端点的组关系。这三组原语执行的流程示意图见图8;图 8 ADD-REMOVE-REMOVEALL原语流程(1)、APSME-ADD-GROUP .request 原语当上层给一该原语允许上层为某个特定端点请求网某个特定的组增加组成员个端点的某个组增加组成员时产生,设置了组地址的帧将被传送给该端点。参数 见表13 ;表 13 APSME-ADD-GROUP .request 原语参数名称有效范围描述GroupAddress16bit组地址0X0000-0Xfff7将要添加的16位组地址EndpointInteger0x01-0xf0将要添加的特定组的端点

36、(2)、APSME-ADD-GROUP .confirm 原语该原语使得设备得知其将一个组添加到端点的请求结果。它由APSME产生并发送给上层作为对APSME-ADD-GROUP .request原语的响应。如果APSME-ADD-GROUP .request成功,那么状态参数值为 SUCCESS。如果APSME-ADD-GROUP .request中的参数为无效值,那么状态产生设置为 INVALID_PARAMETER 。如果APSME试图加入一个组表入口,但表中已没有加 入其它入口的空间,状态参数设置为TABLE_FULL。参数见表14;表 14 APSME-ADD-GROUP .conf

37、irm 原语参数名称有效范围描述StatusEnumeratio nSUCCESS,INVALID_PARAMETER或 TABLE_FULL添加一个组的请求结的果其余参数见表13(3)、APSME-REMOVE-GROUP .request 原语与APSME-ADD-GROUP .request原语比较,作移除操作,参数说明见表13;(4)、APSME-REMOVE-GROUP .confirm 原语对其请求作出的应答与 APSME-ADD-GROUP .confirm 原语相似,参数见表 14 ;(5)、APSME-REMOVE-GROUP-ALL.request原语同 APSME-REM

38、OVE-GROUP .request ,参数 Endpoint 见表 13;(6)、APSME-REMOVE-GROUP-ALL.confirm原语同 APSME-REMOVE-GROUP .confirm 原语,参数 Status 和 Endpoint 见表 14 ;2.5、 帧格式每个APS帧基本组成一个APS头,包括帧控制域和寻址信息;一个APS负载、可变长度、包括特定帧类型的信息。该小节中所有的帧格式按照它们在NWK层传输的顺序描述,从左到右,左边先传输。每个域中的位从 0开始编码到k-1位,因此域长为k.长于一个8位字节 的域被送往NWK层,按照从编号最低的8位字节到编号最高的8位字

39、节的顺序。 传输时所有标记为保留的域都设置为0,接收时必须检查本规范版本中所有标记为保留的域是否为0o表15 通用APS帧格式字节:0/10/20/20/20/110/变变量1量帧控制目标端点组地址Cluster 标识符Profile标识符源端占八、APS计数器扩展头帧负载寻址域APS头APS负载:域长为8位,包括定义帧类型的信息、寻址域和其他控制标志,格式如下表16表16帧控制域格式位0-12-34567传送模式ACK格式安全ACK请求扩展头存在:长度2位,设置为表17的非保留值之一。表17 帧类型子域值帧类型值(b1b0 )00011011帧类型名称数据命令确认保留:长度2位,值为下表非保

40、留值之一。表18 传送模式子域值传送模式值(b1b0 )00011011传送模式名称正常单播间接寻址广播组寻址传送:1位长度,表示目标端点、cluster标识符、profile标识符和源端点域在确认帧中是否存在,对于数据帧确认设置为0,对于APS命令帧确认设置为1。:参见安全服务供应商管理-安全子域;:1位长度,指明接收者在接收该帧有效时,当前传输是否需要发起者发送一个确认帧。如果设置为1,给发起者发送一个确认帧,否则不发送;对于所有广播或多播,该值为0;:1位长度,1位长度,规定扩展头是否包含在此帧内。该值为 1时,包含在内, 否则,不包含;:8位长度,指明最终接收该帧的端点。该值为0x00

41、时,发送到每个设备的ZDO。 该值为0x01-0xf0,帧目的地址为操作的端点。该值为0xff,发送到除了端点0x00 的所有活跃端点。端点(0xf1-0xfe )保留;:16位长度,对应传送模式子域为0b11时存在。传送时,根据目标地址发送到该组中对应的端点。:16位长度,指定由请求中SrcAddr所指示的用于设备绑定操作的簇标识符。帧控制域的帧类型子域指定簇标识符域是否存在。该域只用于数据帧或确认帧,不 用于命令帧。:16位长度,指定在传输帧的过程中,用于设备过滤消息和帧的Profile标识符。仅用于数据帧和确认帧。:8位长度,指定发起者帧的端点。该值为 0x00时,表明从每个设备的 ZD

42、O发 起。值为0x01-0xf0时,表明帧从应用操作的端点发起。 其它的端点(0xf1-0xfe )保留:8位长度,防止接收重复帧,每次新的传输加1操作:见表19 ;表19 扩展头子域字节:10/10/1扩展帧控制块数ACK bitfiled扩展帧控制域:8位长度,包含定义使用分段信息。位 0-1 :分段,位2-7保留;其分段子域见表20表20分段子域的值分段值(b1b0 )00011011描述传输不分段帧是分段传输的第一段帧是分段传输的部分但不是第三分保留块数:如果分段子域指示不分段,则块数域不包含在子帧内;如果分段子域设 置为01 ,则包含在内且指示分段传输的块数;如果分段子域设置为10,

43、则包含在内且指示当前帧传输哪个块,第二段取值为0x01 ,第三段设置为0x02等;ACK bitfield :用于分段传输的 APS确认,指示一个分段的 ASDU的哪一块 已经接收成功。该域只有在帧类型子域指示一个确认帧且为分段传输时才存在。:长度可变,包含指明不同帧类型的信息。数据、APS命令、APS确认:见表15数据帧的APS头域包含帧控制、Cluster标识符、Profile标识符、源端点、APS帧控制域传送模式和扩展头存在子域,目标端点、组地址和扩展头域包含在 一个数据帧中。在帧控制域中,帧类型子域应包含指明一个数据帧的值见表17,所有其他子域应根据数据帧的预定用途作合适的调整。:对于

44、输出的数据帧,该值应包含部分或全部上层请求APS数据服务传输的字节序列。对于输入数据帧,该值应包含APS数据服务接收到的转发给目的设备或是要被传送到上层的字节序列。:见表21 (APS命令帧顺序域表15中的APS帧顺序一致)表21 APS命令帧格式字节:111可变帧控制APS计数器APS命令标识符APS命令负载APS头APS负载:应包含帧控制和APS计数器域。如果帧控制域中的传输模式子域表明为组地址,则帧中应包含组地址域。在该版本的规范中,APS命令帧不能分段,且没有扩展头域。在帧控制域中,帧类型子域应包含表明一个APS命令帧的值(见表17)。APS命令负载应根据使用 APS命令帧的意图进行适

45、当的设置。:APS命令标识符域表明正在使用 APS命令。:APS命令帧的APS命令有效载荷域应包含 APS命令本身。:见表15 APS头描述(顺序一致)应包含帧控制、簇标识符、Profile标识符和APS计数器。源和目的端点都应包含在确认帧中。是否包含扩展头域则按照帧控制域中扩展头存在子域的要求设置。在帧控制域中,帧类型子域应包含如表17所示的表示为确认帧的值;扩展头存在域应包含同样表明为确认帧的值;所有其它子域则根据使用确认帧的目的进行适 当的设置;确认帧源端点的值反映了要求进行确认的帧的目的端点的值;同样, 确认帧目的端点的值反映了要求进行确认的帧的源端点的值; APS 计数器域包含与确认

46、的帧相一致的值;如果扩展头域存在,其帧控制域的分段域应包含与确认的帧一致的值。如果该帧使用分段,那么应包含块序号和请求域。如果传输的使分段的第一个帧,那么块序号应为0 ,否则应包含与确认的帧一致的值。该规范中没有定义命令帧。2.6、 、功能描述要求 APS 在永久存储器中维护尽量少的数据。 这组数据应该能够经受住掉电、设备复位或其他处理事件。如 apsBindingTable 、 apsDesignatedCoordinator 、apsChannelMask 、 apsUseExtendedPANID 、 apsUseInsecureJoin 、 apsGroupTable 等。APS 维护

47、可以一个绑定表, 允许 ZigBee 设备为来自给定源端点并带有一个给定 ClusterIDea 的帧建立一个指定的目的地。每个指定的目标代表具体设备上的一个具体端点或一个组地址。绑定表格函数形式:(as,es,cs) = (ad1 |, ed1) , , , (and |, edn) as = 绑定源设备地址; es= 绑定源设备EP 的标识符; cs= 绑定连接的串标识符adi=i 绑定分配的目的地址或目的组地址; edi=i 绑定分配的 EP 标识符通过调用函数ZDP_BindReq()/ZDP_UnbindReq() 发送一个绑定/ 移除请求。目标设备将调用函数ZDApp_BindRs

48、q()/ZDApp_UnbindRsq() 反馈请求的响应,返回状态参数ZDP_SUCCESS , ZDP_TABLE_FULL 等。如图 9 绑定简化过程。9 支持绑定设备上的绑定过程应用层应用支持子层NWK APSME-(UN)BIND.requ8g在绑定表中创建一个新的入APSME-(UN)BIND.con. j JAPS子层应该维护一个组表,允许端点与组联系在一起,允许组寻址的帧有选择的传输到那些在表中与特定一个组相联系的端点。APS子层组表的组地址列表必须与NWk层组表的组ID列表(存储在newGroupIDTable 属性中)一致。 传输、接收和确认只有是当前网络一部分的那些设备可

49、以从APS子层发送帧,发送帧按帧格式描述构造该帧;否则,子层将丢弃该帧并告知上层发送错误;根据传送模式值采 用不同的传播方式,包含有源地址、目的地址(组地址)。对于绑定表存储在源设备的所有设备,源设备的APSDE确定绑定表条目是否包含一个单播地址或目标组地址。当包含单播地址且地址指向本身时,APSDE向上层发送APSDE-DATA.confirm 原语,并且不传输一个帧;否则。 APSDE产生 该帧并传输给对应于绑定表条目指明的目标地址的16位NWK地址,传送模式为0b00 ;当包含目标组地址且 newUseMulticast 为FALSE时,传送模式必须为 0b11 ,目标地址必须放在 APS头中,目标端点被忽略。然后使用NLD

温馨提示

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

评论

0/150

提交评论