ZigBee的应用层

上传人:仙*** 文档编号:46411818 上传时间:2021-12-13 格式:DOC 页数:24 大小:885.50KB
收藏 版权申诉 举报 下载
ZigBee的应用层_第1页
第1页 / 共24页
ZigBee的应用层_第2页
第2页 / 共24页
ZigBee的应用层_第3页
第3页 / 共24页
资源描述:

《ZigBee的应用层》由会员分享,可在线阅读,更多相关《ZigBee的应用层(24页珍藏版)》请在装配图网上搜索。

1、.目录1、概述31.1、应用支持子层(APS)41.2、ZigBee设备对象(ZDO)41.2.1、设备发现41.2.2、服务发现41.2.3、制造商所定义的应用对象52、应用支持子层(APS)52.1、概述52.2、APS数据实体APSDE52.3、APS管理实体APSME52.4、服务规范62.4.1、APS数据服务62.4.2、APS管理服务112.4.2.1、绑定原语122.4.2.2、信息库维护132.4.2.3、组管理152.5、帧格式172.5.1、通用的APDU帧格式172.5.2、不同帧类型的格式182.6、功能描述192.6.1、永久数据19精品.2.6.2、绑定192.6

2、.3、组寻址202.6.4、重传212.6.5、分段的传输212.7、应用支持子层状态值21参考书籍22ZigBee的应用层协议格式本篇内容l ZigBee协议应用层的概述;l 主讲应用层(APL)下的应用支持子层(APS)规范;1、概述ZigeBee协议栈结构是在IEEE802.15.4标准基础上建立的,而该标准定义了协议的MAC和PHY层。ZigBee设备应该包括IEEE802.15.4的PHY层和MAC层、以及ZigBee堆栈层:网络层(NWK)、应用(APL)层和安全服务管理。图1给出这些组件的关系结构。图1 ZigBee协议结构体系精品. 应用层ZigBee设备对象(ZDO)应用对象

3、1应用对象240ZDO公共接口 MAC层 (物理) PHY层ZDO管理端点1APSDE-SAP端点240APSDE-SAP端点0APSDE-SAPAPS安全管理APS信息中间响应信息MLDE-SAPMLDE-SAPNWK层网络层数据实体SAP网络安全管理网络层信息中间路由管理网络管理MLDE-SAPMLDE-SAPPD-SAPPD-SAP2.4GHz868 / 915Hz安全管理更高层实体网络层实体应用支持子层数据实体APSDE应用支持子层管理实体APSME应用支持子层数据实体-服务接入点应用支持子层管理实体-服务接入点网络层数据实体-服务接入点介质访问控制子层管理实体-服务接入点应用支持子层

4、信息库每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备简通信的串(或称簇).公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。设备是由模板定义的,并以应用对象(Application Objects)的形式实现。每个应用对象通过一个端口连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件。从应用的角度看,通信的本质就是端口到端口的连接(例如,一个带开关组件的设备与带一个或多个灯组件的设备进行通信,目的是点亮这些灯)。端口之间的通信是通过簇的数据结构实现的。这些簇是应用对象之间共享信息所需要的全部属性的容器,

5、特殊应用中的簇在模板中有定义。每个接口都能接收或发送簇格式的数据,一共有两个特殊的端口,即端口0和端口255.端口0用于整个ZigBee设备的配置和管理。应用程序可以通过端口0与ZigBee堆栈的其他层通信,从而实现对这些层的初始化和配置。附属在端口0的对象被称为ZigBee设备对象(ZDO)。端口255用于向所有端口的广播。端口241254是保留端口。所有端口都使用应用支持子层(APS)提供的服务。APS通过网络层和安全服务提供层与端口相连接,并为数据传送、安全和绑定提供服务,因此能够适配不同单兼容的设备,如带灯的开关。APS使用网络(NWK)层提供的服务。NWK负责设备到设备的通信,并负责

6、网络中设备初始化所包含的活动、消息路由和网络发现。应用层可以通过ZigBee设备对象(ZDO)对网络层参数进行配置和访问。再从图1中观察可以发现,ZigBee应用层框架包括应用支持子层(APS)、ZigBee设备对象(ZDO)和制造商所定义的应用对象。精品.1.1、应用支持子层(APS)ZigBee协议栈中应用层(APL)的APS提供了在NWK层和APL层之间及从ZDO到供应商的应用对象的通用服务集的接口。这种服务由两个实体APSDE和APSME实现。1.2、ZigBee设备对象(ZDO)ZDO代表着一个基本的功能函数类,这个功能在应用对象、设备模式与APS之间提供了一个接口。ZDO位于应用框

7、架与应用支持子层之间,它满足所有在ZigBee协议栈中应用操作的一般需要,具有以下作用:l 初始化应用支持子层(APS)、网络层(NWK)、安全服务规范(SSS);l 从终端应用中集合配置信息来确定和执行发现、安全管理、网络管理和绑定管理。ZDO描述了应用框架层应用对象的公用接口以控制设备和应用对象的网络功能。在终端端口0,ZDO提供了与协议栈中低一层相接的接口,如果是数据,则通过APSDE-SAP;如果是控制信息,则通过APSME-SAP。在ZigBee协议栈的应用框架中,ZDO公用接口提供设备、发现、绑定、安全等功能的地址管理。1.2.1、设备发现设备发现,是一个ZigBee设备发现其他Z

8、igBee设备的过程。有两种形式的设备发送请求:IEEE地址请求和网络地址请求。IEEE地址请求是单播到一个特定的设备且假定网络地址已知;网络地址请求是广播且携带一个已知的IEEE地址作为数据负载。1.2.2、服务发现服务发现是一个已知设备被其他设备发现的过程。服务发现通过在一个已知设备的每个端口发送查询或通过使用一个匹配服务功能(广播或单播)。服务发现可方便定义和使用各种描述来概述一个设备的能力。服务发现信息在网络中也许被隐藏,在这种情况下,设备提供的某种服务可能不好在发现操作时到达,致使服务可能无法访问。1.2.3、制造商所定义的应用对象运行在ZigBee协议栈上的应用程序实际就是厂商自定

9、义的应用对象。这些应用程序使用ZigBee联盟给出的并且批准的规范(Profile)进行开发并运行在端点1-240上。精品.2、应用支持子层(APS)2.1、概述ZigBee协议栈中应用层(APL)的APS提供了在NWK层和APL层之间及从ZDO到供应商的应用对象的通用服务集的接口。这种服务由两个实体实现:l APS数据实体(APSDE):通过APSDE服务接入点(APSDE-SAP)实现;l APS管理实体(APSME):通过APSME服务接入点(APSME-SAP)实现。2.2、APS数据实体APSDEAPSDE提供在同一个网络中的两个或者多个应用实体之间的数据通信,为NWK、ZDO和应用

10、对象提供一个数据服务,使得应用程序的PDU在两个或多个设备之间传输,设备本身必须位于同一个网络。APSDE提供的服务:l 发出应用层PDU(APDU):APSDE会接收应用PDU,并通过增加合适协议开销发出一个APS PDU;l 绑定:一旦两个设备绑定,APSDE就可以从一个绑定设备传输一个信息给第二个设备;l 组地址过滤:提供了根据是否是终端组的成员过滤组地址信息的功能;l 可靠传输:在NWK层采用端到端重试,增加了事件的可靠性;l 重复拒绝:传输所提供的信息将不会被多次接收;l 分裂:可以分裂和重组长于一个NWK层负载的信息。2.3、APS管理实体APSMEAPSME提供的功能包括维持绑定

11、表及在绑定的设备之间传送消息。绑定指的是基于两台设备的服务和需求将它们匹配地连接起来。APSME提供的服务:l 绑定管理:根据服务和需求一起匹配两个设备的功能;l AIB管理:在设备的AIB中获取并设置属性的功能;l 安全:通过使用安全密钥与其他设备建立可信关系的功能;l 组管理:提供了宣布多个设备共享一个地址,增加设备到组以及从组中移除设备的功能;2.4、服务规范APS子层提供了上层实体(NHLE)和NWK层之间的一个接口。APS子层的APSME通过激发子层管理功能提供了服务接口,它还负责维护一个管理有关APS子层对象的数据库(AIB) 。图2描绘了APS子层的组件和接口。精品.图2 应用支

12、持子层参考模型APS子层的两种服务通过NLDE-SAP和(在有限范围内)NLME-SAP,提供了NHLE和NWK层之间的接口。NWK层和APS子层之间的NLME-SAP接口只支持NLME-GET和NLME-SET原语;所有其它NLME-SAP原语只能通过ZDO访问。除这些外部的接口,在APSME和APSDE之间还有一个隐藏接口,它允许APSME使用APS数据服务。层与层间的通信方式如图3 IndicationRequestRequestConfirmConfirm图3 request-confirm-indication2.4.1、APS数据服务APS子层数据实体SAP(APSDE-SAP)支

13、持应用协议数据单元在对等应用实体之间的传输,表1列出了APSDE-SAP支持的原语。表1 APSDE-SAP 原语APSDE-SAP原语请求确认指示APSDE-DATAAPSDE-DATA.requestAPSDE-DATA.confirmAPSDE-DATA.indicationRequest-confirm原语执行的流程示意图见图4,各原语详细内容如下描述; 图4 req-con流程精品.2.4.1.1、APSDE-DATA.request原语该原语请求一个从本地NHLE到一个或多个对等NHLE实体传输一个NHLE PDU(ASDU);每当一个数据PDU(ASDU)要被传输给一个对等的NH

14、LE时,该原语由一个本地的NHLE生成,并根据其参数进行不同形式的传输。参数见表2表2指明APSDE-DATA.request原语参数名称类型有效范围描述精品.DstAddrModeInteger0x00-0xff使用目的地址以及传输APDU的寻址模式0x00:DstAddress和DstEndpoint不存在0x01:DstAddress16位组地址;DstEndpoint不存在;0x02:DstAddress和 DstEndpoint都存在,是16位组地址;0x03:DstAddress16和 DstEndpoint都存在,是64位扩展地址;0x04-0xff 保留;DstAddressA

15、ddress通过DstAddrMode参数指定ASDU要被传输到的实体的单独的设备地址或者组地址DstEndpointInteger0x00-0xf0,0xff当且仅当DstAddrMode参数的值为0x02/0x03时,该参数才存在,此时该参数或者ASDU要被传输到的实体的单独个端点的编号,或者是广播端点(0xff)ProfiledInteger0x0000-0xffff帧要被送到的profilede标识符ClusterIdInteger0x0000-0xffff帧要被送到的对象的标识符SrcEndpointInteger0x00-0xf0被传输的ASDU来自的实体的单个端点ASDULeng

16、thInteger0x00-256*(NSDULength-apscMinHeaderOverhead)构成被传输的ASDU的字节数,单负载的最大长度由NSDULength-apscMinheaderOverhead给定。如果分段,用256个这样的块组成单个最大的ASDUASDUSet of octets-组成被传输的ASDU的字节集合TxOptionBitmap0000 0xxx(x为0/1)被传输的ASDU的传输选项:0x01:启用安全传输0x02:使用密钥传输0x04:确认传输0x08:允许分段RadiusUnsigned integer0x00-0xff允许一个被传输的帧通过网络进行传

17、输的距离量,以跳为单位2.4.1.2、APSDE-DATA.confirm原语该原语报告请求从一个本地NHLE传输一个数据PDU(ASDU)到一个对等NHLE的结果。它由本地APS子层实体在响应一个 APSDE-DATA.request原语时产生。 当返回的状态参数值为SUCCESS,表明请求传输成功,或者为错误代码NO_SHORT_ADDRESS ,NO_BOUND_DEVICE 或SECURITY_FAIL或者为任何NLDE-DATA.confirm原语返回的状态值。参数见表3表3 APSDE-DATA.confirm原语的参数名称类型有效范围描述精品.DstAddrModeInteger

18、0x00-0xff使用目的地址以及传输APDU的寻址模式0x00:DstAddress和DstEndpoint不存在0x01:DstAddress16位组地址;DstEndpoint不存在;0x02:DstAddress和 DstEndpoint都存在,是16位组地址;0x03:DstAddress16和 DstEndpoint都存在,是64位扩展地址;0x04-0xff 保留;DstAddressAddress通过DstAddrMode参数来指定ASDU要被传输到实体的单个设备的地址或组地址DstEndpointInteger0x00-0xf0,0xff当且仅当DstAddrMode参数的值

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

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

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

22、UCCESS,APSDE设置ASDULength参数为0,ASDU参数为空字节集合。APS子层实体必须通过使用NIB中的属性nwkAddressMap把接收到的帧的源地址映射为相应的扩展的64位IEEE地址。如果能找到相应的64为IEEE地址,则APSDE发出该原语,其参数SrcAddrMode设为0x03,SrcAddress参数设为相应的64位IEEE地址。如果找不到相应的64位IEEE地址,APSDE将发出该原语,其参数SrcAddrMode设为0x02,参数SrcAddress设为接收帧包含的16位源地址。表4 APSDE-DATA.indication原语参数名称类型有效范围描述Ds

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

24、、0x01、0x04-0xff:保留0x02:DstAddress和 DstEndpoint都存在,是16位组地址;0x03:SrcAddress和SrcEndpoint都存在,是64位扩展地址SrcAddressAddress通过SrcAddrMode指定来自收到的ASDU的实体的单个设备的地址或组地址SrcEndpointInteger0x00-0xf0来自被传输的ASDU的实体的单个端点ProfiledInteger0x0000-0xffff发起该帧的profilede标识符 ClusterIdInteger0x0000-0xffff接收对象的标识符ASDULengthInteger通过

25、APSDE表示的ASDU包含的字节数ASDUSet of octets-通过APSDE表示的ASDU包含的字节集合StatusEnumerationSUCCESS,DEFRAG_DEFERREDDEFRAG_UNSUPPORTED或者帧安全处理返回的任何状态输入帧处理的状态SecurityStatusEnumerationUNSECURED,SECURED_NWK_KEYSECURED_LINK_KEY如果在没有任何安全情况下接收ASDU,返回UNSECURED如果接收到的ASDU用网络密钥加密,返回SECURED_NWK_KEY如果ASDU使用一个链接密钥加密,返回SECURED_LINK_

26、KEYLinkQualityInteger0x00-0xffNLDE传送的链路质量指示RxTimeInteger具体执行对基于本地时钟的传输包的时间指示,如NWK层所提供的那样2.4.2、APS管理服务APSME支持上层和APSME之间的管理命令的传输。表5为 APSME-SAP接口支持的原语。并在下面的内容逐一介绍各原语。精品.表5 APSME-SAP原语名称请求指示响应确认APSME-BIND.request.confirmAPSME-UNBIND.request.confirmAPSME-GET.request.confirmAPSME-SET.request.confirmAPSME-

27、ADD-GROUP.request.confirmAPSME-REMOVE-GROUP.request.confirmAPSME-REMOVE-ALL-GROUP.request.confirm2.4.2.1、绑定原语这两组原语定义了设备的上层如何往其本地绑定表中增加/移除一个绑定记录。原语执行的流程示意图见图6;绑定:APSME-BIND.request & APSME-BIND.confirm移除绑定:APSME-UNBIND.request & APSME-UNBIND.confirm只有支持绑定表或绑定表缓存的设备可以处理这些原语,如果任何其他设备从其上层接收到这些原语,原语将会被丢弃

28、。 图6 BIND&UNBIND原语流程(1)、APSME-BIND.request原语本原语允许上层通过在其本地绑定表中创建一个实体,请求把两个设备绑定到一起,或绑定一个设备到某个组中。由上层实体生成,发给APS子层,目的是在一个支持绑定表的设备上发起绑定操作。参数说明见表6表6 APSME-BIND.request原语参数精品.名称类型有效范围描述SrcAddrIEEEAddress有效的64位IEEE地址绑定目录的源IEEE地址SrcEndpointInteger0x00-0xff绑定目录的源端点ClusterIdInteger0x0000-0xffff将要绑定到目的设备上的cluste

29、r标识符DstAddrModeInteger0x00-0xff使用目的地址以及传输APDU的寻址模式0x00、0x02、0x04-0xff:保留0x01:DstAddress16位组地址;DstEndpoint不存在;0x03:DstAddress和 DstEndpoint都存在,是64位扩展地址;DstAddrAddress通过DstAddrMode参数指定绑定目录的目的地址DstEndpointInteger0x00-0xf0,0xff当DstAddrMode参数为0x03时存在,此时参数为绑定目录的目标端点(2)、APSME-BIND.confirm原语本原语允许上层被通知其直接或代理请

30、求绑定两个设备,或绑定一个设备到某个组。它由APSME生成,发给其NHLE以响应一个APSME-BIND.Request原语。参数说明见表7表7 APSME-BIND.confirm原语参数名称类型有效范围描述StatusEnumerationSUCCESSILLEGAL_DEVICEILLEGAL_REQUESTTABLE_FULLNOT_SUPPORTED绑定请求结果其余参数见表6(3)、APSME-UNBIND.request原语与APSME-BIND.request原语比较操作基本相同,参数说明见表;(4)、APSME-UNBIND.confirm原语与APSME-BIND.confi

31、rm原语比较不同在于返回的状态参数,参数说明见表;表8 APSME-UNBIND.confirm原语参数名称类型有效范围描述StatusEnumerationSUCCESSILLEGAL_DEVICEILLEGAL_REQUESTILLEGAL_BINDING取消绑定请求的结果其余参数参见表6精品.2.4.2.2、信息库维护这两组原语定义了设备上层如何读取和写入AIB中的属性。原语执行的流程示意图见图7图7 SET-GET原语流程图(1)、APSME-GET.Request原语该原语允许设备上层从AIB中读取。由上层生成,发给其APSME,目的是从AIB中读取一个属性,APSME-GET.Re

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

33、地址0x0ApsGroupTable0xc5Set可变组表目录的当前集合空集(2)、APSME-GET.confirm原语该原语返回尝试从AIB中读取一个属性值的结果。它由APSME产生,发送给上层作为对APSME-GET.request原语的响应。 该原语返回状态SUCCESS,表明请求读取AIB属性请求成功,或者返回错误码UNSUPPORTED_ATTRIBUTE.参数说明见表10;精品.表10 APSME-GET.confirm原语参数名称类型有效范围描述StatusEnumerationSUCCESS、UNSUPPORTED_ATTRIBUTE请求读取AIB属性值的结果AIBAttri

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

35、节长度AIBAttributeValueVarious参见表被读取的AIB属性值APSME-SET.confirm原语该原语报告尝试为一个AIB属性写入一个值得结果。该原语由APSME生成,发给上层以响应一个APSME-SET.request原语,返回状态值SUCCESS,表示该请求值被写入指明的AIB属性或一个UNSUPPORTED_ATTRIBUTE /INVALID_ATTRIBUTE的错误代码。参数见表12;表12 APSME-SET.confirm原语参数名称类型有效范围描述StatusEnumerationSUCCESS,INVALID_PARAMETER或 UNSUPPORTED

36、_ATTRIBUTE写AIB属性请求的结果AIBAttributeInteger见表92.4.2.3、组管理这组原语允许上层在当前设备中通过在组表中添加和移除入口来管理每个端点的组关系。这三组原语执行的流程示意图见图8;图8 ADD-REMOVE-REMOVEALL 原语流程精品.(1)、APSME-ADD-GROUP.request原语该原语允许上层为某个特定端点请求网某个特定的组增加组成员。当上层给一个端点的某个组增加组成员时产生, 设置了组地址的帧将被传送给该端点。参数见表13;表13 APSME-ADD-GROUP.request原语参数名称类型有效范围描述GroupAddress16

37、bit组地址0x0000-0xfff7将要添加的16位组地址EndpointInteger0x01-0xf0将要添加的特定组的端点(2)、APSME-ADD-GROUP.confirm原语该原语使得设备得知其将一个组添加到端点的请求结果。它由APSME产生并发送给上层作为对APSME-ADD-GROUP.request原语的响应。如果APSME-ADD-GROUP.request成功,那么状态参数值为SUCCESS。如果APSME-ADD-GROUP.request中的参数为无效值,那么状态产生设置为INVALID_PARAMETER。如果APSME试图加入一个组表入口,但表中已没有加入其它入

38、口的空间,状态参数设置为TABLE_FULL。参数见表14;表14 APSME-ADD-GROUP.confirm原语参数名称类型有效范围描述StatusEnumerationSUCCESS,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)、

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

40、节的域被送往NWK层,按照从编号最低的8位字节到编号最高的8位字节的顺序。传输时所有标记为保留的域都设置为0,接收时必须检查本规范版本中所有标记为保留的域是否为0。2.5.1、通用的APDU帧格式表15 通用APS帧格式字节:10/10/20/20/20/110/变量变量帧控制目标端点组地址Cluster标识符Profile标识符源端点APS计数器扩展头帧负载 寻址域APS头APS负载2.5.1.1、帧控制域:域长为8位,包括定义帧类型的信息、寻址域和其他控制标志,格式如下表16表16帧控制域格式位0-12-34567帧类型传送模式ACK格式安全ACK请求扩展头存在2.5.1.2、帧类型子域:

41、长度2位,设置为表17的非保留值之一。表17 帧类型子域值帧类型值(b1b0)00011011帧类型名称数据命令确认保留2.5.1.3、传送模式子域:长度2位,值为下表非保留值之一。表18 传送模式子域值传送模式值(b1b0)00011011传送模式名称正常单播传送间接寻址广播组寻址2.5.1.4、ACK格式域:1位长度,表示目标端点、cluster标识符、profile标识符和源端点域在确认帧中是否存在,对于数据帧确认设置为0,对于APS命令帧确认设置为1。2.5.1.5、安全子域:参见安全服务供应商管理-安全子域;2.5.1.6、确认请求子域:1位长度,指明接收者在接收该帧有效时,当前传输

42、是否需要发起者发送一个确认帧。如果设置为1,给发起者发送一个确认帧,否则不发送;对于所有广播或多播,该值为0;精品.2.5.1.7、扩展头存在:1位长度,1位长度,规定扩展头是否包含在此帧内。该值为1时,包含在内,否则,不包含;2.5.1.8、目标端点域:8位长度,指明最终接收该帧的端点。该值为0x00时, 发送到每个设备的ZDO。该值为0x01-0xf0,帧目的地址为操作的端点。该值为0xff,发送到除了端点0x00的所有活跃端点。端点(0xf1-0xfe)保留;2.5.1.9、组地址域:16位长度,对应传送模式子域为0b11时存在。传送时,根据目标地址发送到该组中对应的端点。2.5.1.1

43、0、Cluster标识符域:16位长度,指定由请求中SrcAddr所指示的用于设备绑定操作的簇标识符。帧控制域的帧类型子域指定簇标识符域是否存在。该域只用于数据帧或确认帧,不用于命令帧。2.5.1.11、Profile标识符域:16位长度,指定在传输帧的过程中,用于设备过滤消息和帧的Profile标识符。仅用于数据帧和确认帧。2.5.1.12、源端点域:8位长度,指定发起者帧的端点。该值为0x00时,表明从每个设备的ZDO发起。值为0x01-0xf0时,表明帧从应用操作的端点发起。其它的端点(0xf1-0xfe)保留。2.5.1.13、APS计数器:8位长度,防止接收重复帧,每次新的传输加1操

44、作。2.5.1.14、扩展头子域:见表19;表19 扩展头子域字节:10/10/1扩展帧控制块数ACK bitfiled扩展帧控制域:8位长度,包含定义使用分段信息。位0-1:分段,位2-7保留;其分段子域见表20表20 分段子域的值分段值(b1b0)00011011描述传输不分段帧是分段传输的第一段帧是分段传输的部分但不是第一部分保留块数:如果分段子域指示不分段,则块数域不包含在子帧内;如果分段子域设置为01,则包含在内且指示分段传输的块数;如果分段子域设置为10,则包含在内且指示当前帧传输哪个块,第二段取值为0x01,第三段设置为0x02等;ACK bitfield:用于分段传输的APS确

45、认,指示一个分段的ASDU的哪一块已经接收成功。该域只有在帧类型子域指示一个确认帧且为分段传输时才存在。2.5.1.15、帧负载域:长度可变,包含指明不同帧类型的信息。2.5.2、不同帧类型的格式数据、APS命令、APS确认2.5.2.1.1、数据帧格式:见表15数据帧的APS头域包含帧控制、Cluster标识符、Profile标识符、源端点、APS帧控制域传送模式和扩展头存在子域,目标端点、组地址和扩展头域包含在一个数据帧中。在帧控制域中,帧类型子域应包含指明一个数据帧的值见表17,所有其他子域应根据数据帧的预定用途作合适的调整。2.5.2.1.2、数据负载域:对于输出的数据帧,该值应包含部

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

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

48、值;所有其它子域则根据使用确认帧的目的进行适当的设置;确认帧源端点的值反映了要求进行确认的帧的目的端点的值;同样,确认帧目的端点的值反映了要求进行确认的帧的源端点的值;APS计数器域包含与确认的帧相一致的值;如果扩展头域存在,其帧控制域的分段域应包含与确认的帧一致的值。如果该帧使用分段,那么应包含块序号和请求域。如果传输的使分段的第一个帧,那么块序号应为0,否则应包含与确认的帧一致的值。2.5.2.4、命令帧该规范中没有定义命令帧。2.6、功能描述2.6.1、永久数据要求APS在永久存储器中维护尽量少的数据。这组数据应该能够经受住掉电、设备复位或其他处理事件。如apsBindingTable、

49、apsDesignatedCoordinator、apsChannelMask、apsUseExtendedPANID、apsUseInsecureJoin、apsGroupTable等。2.6.2、绑定APS维护可以一个绑定表,允许ZigBee设备为来自给定源端点并带有一个给定ClusterIDea的帧建立一个指定的目的地。每个指定的目标代表具体设备上的一个具体端点或一个组地址。2.6.2.1、绑定表格精品.绑定表格函数形式:(as,es,cs)= (ad1 |, ed1) , , , (and |, edn) as = 绑定源设备地址;es=绑定源设备EP的标识符;cs=绑定连接的串标识符

50、adi=i绑定分配的目的地址或目的组地址;edi=i绑定分配的EP标识符2.6.2.2、绑定/移除绑定请求:通过调用函数ZDP_BindReq()/ZDP_UnbindReq()发送一个绑定/移除请求。目标设备将调用函数ZDApp_BindRsq()/ZDApp_UnbindRsq()反馈请求的响应,返回状态参数ZDP_SUCCESS,ZDP_TABLE_FULL等。如图9 绑定简化过程。图9 支持绑定设备上的绑定过程应用层应用支持子层NWK在绑定表中创建一个新的入口或删除一个已存在的入口APSME-(UN)BIND.confirmAPSME-(UN)BIND.request2.6.3、组寻址

51、APS子层应该维护一个组表,允许端点与组联系在一起,允许组寻址的帧有选择的传输到那些在表中与特定一个组相联系的端点。APS子层组表的组地址列表必须与NWk层组表的组ID列表(存储在newGroupIDTable属性中)一致。传输、接收和确认2.6.3.1、传输只有是当前网络一部分的那些设备可以从APS子层发送帧,发送帧按帧格式描述构造该帧;否则,子层将丢弃该帧并告知上层发送错误;根据传送模式值采用不同的传播方式,包含有源地址、目的地址(组地址)。对于绑定表存储在源设备的所有设备,源设备的APSDE确定绑定表条目是否包含一个单播地址或目标组地址。当包含单播地址且地址指向本身时,APSDE向上层发

52、送APSDE-DATA.confirm原语,并且不传输一个帧;否则。APSDE产生该帧并传输给对应于绑定表条目指明的目标地址的16位NWK地址,传送模式为0b00;当包含目标组地址且newUseMulticast为FALSE时,传送模式必须为0b11,目标地址必须放在APS头中,目标端点被忽略。然后使用NLDE-DATA.request原语广播该帧,使用广播地址0xffff;当包含目标组地址且newUseMulticast为TRUE时,传送模式必须为0b10,目标地址必须为0xff。然后使用NLDE-DATA.request原语单播该帧,使用绑定表条目提供的组地址;如果要求安全,该帧按安全管理

53、描述处理;如果要求分段,按分段描述处理;2.6.3.2、接收和拒绝APS子层应该可以通过NWK层数据服务过滤到达的帧,最终只列出NHLE感兴趣的帧;如果APSDE接收到一个加密帧,应该按安全管理描述移除安全;如果APSDE收到包含目标端点域的帧时,将直接传递给目标端点提供的NHLE,除非它是一个不完整的分段传输帧或被确定为重复帧;然后按照NLDE-DATA.indication中DstAddrMode参数进行单播或广播发送到NHLE支持的对应的端点处;精品.同样地检测判断方式,保留有效的帧后依据组地址传输模式发送对应的帧;APSDE应该保持一个重复拒绝表,能够有效确定多次传输的帧为重复,只传输

54、一次给NHLE,表的大小至少是apsMinDuplicateRejectionTableSize。确认的使用一个数据或APS命令帧发送时,应该为该帧设置合适的确认请求子域。一个确认帧发送时,应该总是把确认请求子域设置为0,同样,任何广播或多播的帧发送时应该把确认请求子域设置为0;没有确认 :当帧被预定接收者接收时,确认请求AR=0,此时不应该有确认。发出设备假定帧传输成功; 2.6.3.3、确认:当帧被预定接收者接收时,确认请求AR=1,此时返回确认。若被确认有效,则帧传输开始;2.6.4、重传AR设置为0的帧,应该假定接收成功,并应该不再执行重传;AR设置为1 的帧,为接收相应地确认帧,应该

55、最多等待apsAckWaitDuration秒。如果在等待时间内接收到一个确认帧,并且各参数对应,则认为传输成功,设备不作下一步行动;如果等待时间内未接收到确认帧,则执行重传,知道达到最大重传次数apscMaxFrameRetrise限制,此时认为传输失败;2.6.5、分段的传输当一个ASDU太大而不能用一个MAC数据帧传输,则请求一个有确认帧的单播,且该帧允许分段。此时,ASDU将被分成多个块,每个块在帧里传输。一个传输窗口用来安排一个有序的事务。窗口的大小有栈profile设置,最多8块;以下协议指明,在窗口可以移动之前,必须接收和确认一个传输窗口中所有的块。当所有块已经被成功接收后,就发

56、送一个确认。不使用APS确认的事务不能分段。2.7、应用支持子层状态值应用支持子层确认原语通常包括报告一个适用确认的请求状态参数,表22 给出APS状态参数;表22 APS子层状态值名称值描述SUCCESS0x00一个请求被成功执行ASDU_TOO_LONG0xa0因为ASDU太大且不支持分段,所以一个传输请求失败DEFRAG_DEFERRED0xa1一个收到的分段帧在当前不能重组精品.DEFRAG_UNSUPPORTED0xa2因设备不支持重组所以,一个收到的分段帧不能重组ILLEGA_REQUEST0xa3一个参数超出范围INVALID_BINDING0xa4因请求的绑定连接不存在于绑定表

57、中,一个UNBIND.request失败INVALID_GROUP0xa5发出了组标识符不存在于组表中的一个REMOVE-GROUP.requestINVALID_PARAMETER0xa6一个参数无效或超出范围NO_ACK0xa7因为没有收到确认,请求被确认的一个APSDE-DATA.request传输失败NO_BAUND_DEVICE0xa8因为没有设备绑定到这个该设备,目标寻址模式设置为0x00的一个APSDE-DATA.request失败NO_SHORT_ADDRESS0xa9因为地址映射表中没有找到相应的短地址,目标寻址模式设置为0x03的一个APSDE-DATA.request失败

58、NOT_SUPPORTED0xaa因为设备不支持绑定表,目标寻址模式设置为0x00的一个APSDE-DATA.request失败SECURED_LINK_KEY0xab收到一个使用连接密钥加密的ASDUSECURED_NWK_KEY0xac收到一个使用网络密钥的ASDUSECURITY_FAIL0xad相应的安全处理期间,请求加密的一个APSDE-DATA.request导致一个错误TABLE_FULL0xae当绑定表或组表分别为满时,发出一个APSDE-BIND.request或APSDE-ADDGROUP.requestUNSECURED0xaf收到一个没有任何加密的ASDUUNSUPPORTED_ATTRIBUTE0xb0发出带有一个未知的属性标识符的一个APSDE-GET.request或APSDE-SET.request参考书籍Zigbee2007/PRO协议栈实验与实践- 李文仲 段朝玉 等Z-Stack协议栈应用层规范- TI公司ZigBee wireless networking- drew gislason 著如有侵权请联系告知删除,感谢你们的配合!精品

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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