ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:667.25KB ,
资源ID:10439848      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10439848.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ZigBee的应用层.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ZigBee的应用层.docx

1、ZigBee的应用层ZigBee的应用层协议格式本篇内容 ZigBee协议应用层的概述; 主讲应用层(APL)下的应用支持子层(APS)规范;1、概述ZigeBee协议栈结构是在IEEE802.15.4标准基础上建立的,而该标准定义了协议的MAC和PHY层。ZigBee设备应该包括IEEE802.15.4的PHY层和MAC层、以及ZigBee堆栈层:网络层(NWK)、应用(APL)层和安全服务管理。图1给出这些组件的关系结构。图1 ZigBee协议结构体系每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备简通信的串(或称簇).

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

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

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

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

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

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

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

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

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

11、DATA.indicationRequest-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原语参数名称类型有效范围描述DstAddrModeInteger0x00-0xff使用目的地址以及传输APDU的寻址模式0x00:D

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

13、输到的实体的单独个端点的编号,或者是广播端点(0xff)ProfiledInteger0x0000-0xffff帧要被送到的profilede标识符ClusterIdInteger0x0000-0xffff帧要被送到的对象的标识符SrcEndpointInteger0x00-0xf0被传输的ASDU来自的实体的单个端点ASDULengthInteger0x00-256*(NSDULength-apscMinHeaderOverhead)构成被传输的ASDU的字节数,单负载的最大长度由NSDULength-apscMinheaderOverhead给定。如果分段,用256个这样的块组成单个最大的

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

15、数值为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和 DstEndpoint都存在,是16位组地址;

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

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

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

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

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

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

22、体的单个设备的地址或组地址SrcEndpointInteger0x00-0xf0来自被传输的ASDU的实体的单个端点ProfiledInteger0x0000-0xffff发起该帧的profilede标识符 ClusterIdInteger0x0000-0xffff接收对象的标识符ASDULengthInteger通过APSDE表示的ASDU包含的字节数ASDUSet of octets-通过APSDE表示的ASDU包含的字节集合StatusEnumerationSUCCESS,DEFRAG_DEFERREDDEFRAG_UNSUPPORTED或者帧安全处理返回的任何状态输入帧处理的状态Sec

23、urityStatusEnumerationUNSECURED,SECURED_NWK_KEYSECURED_LINK_KEY如果在没有任何安全情况下接收ASDU,返回UNSECURED如果接收到的ASDU用网络密钥加密,返回SECURED_NWK_KEY如果ASDU使用一个链接密钥加密,返回SECURED_LINK_KEYLinkQualityInteger0x00-0xffNLDE传送的链路质量指示RxTimeInteger具体执行对基于本地时钟的传输包的时间指示,如NWK层所提供的那样2.4.2、APS管理服务 APSME支持上层和APSME之间的管理命令的传输。表5为 APSME-SA

24、P接口支持的原语。并在下面的内容逐一介绍各原语。表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-ALL-GROUP.request.confirm2.4.2.1、绑定原语这两组原语定义了设备的上层如何往其本地绑定表中增加/移除一个绑定记

25、录。原语执行的流程示意图见图6;绑定:APSME-BIND.request & APSME-BIND.confirm移除绑定:APSME-UNBIND.request & APSME-UNBIND.confirm只有支持绑定表或绑定表缓存的设备可以处理这些原语,如果任何其他设备从其上层接收到这些原语,原语将会被丢弃。 图6 BIND&UNBIND原语流程(1)、APSME-BIND.request原语本原语允许上层通过在其本地绑定表中创建一个实体,请求把两个设备绑定到一起,或绑定一个设备到某个组中。由上层实体生成,发给APS子层,目的是在一个支持绑定表的设备上发起绑定操作。参数说明见表6表6

26、APSME-BIND.request原语参数名称类型有效范围描述SrcAddrIEEEAddress有效的64位IEEE地址绑定目录的源IEEE地址SrcEndpointInteger0x00-0xff绑定目录的源端点ClusterIdInteger0x0000-0xffff将要绑定到目的设备上的cluster标识符DstAddrModeInteger0x00-0xff使用目的地址以及传输APDU的寻址模式0x00、0x02、0x04-0xff:保留0x01:DstAddress16位组地址;DstEndpoint不存在;0x03:DstAddress和 DstEndpoint都存在,是64位

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

28、LLEGAL_REQUESTTABLE_FULLNOT_SUPPORTED绑定请求结果其余参数见表6(3)、APSME-UNBIND.request原语 与APSME-BIND.request原语比较操作基本相同,参数说明见表;(4)、APSME-UNBIND.confirm原语 与APSME-BIND.confirm原语比较不同在于返回的状态参数,参数说明见表;表8 APSME-UNBIND.confirm原语参数名称类型有效范围描述StatusEnumerationSUCCESSILLEGAL_DEVICEILLEGAL_REQUESTILLEGAL_BINDING取消绑定请求的结果其余参

29、数参见表62.4.2.2、信息库维护这两组原语定义了设备上层如何读取和写入AIB中的属性。原语执行的流程示意图见图7图7 SET-GET原语流程图(1)、APSME-GET.Request原语该原语允许设备上层从AIB中读取。由上层生成,发给其APSME,目的是从AIB中读取一个属性,APSME-GET.Request AIBAttribute /参数说明见表;表9 信息库包含管理设备的APS层所要求的属性属性标识符类型有效范围描述DefaultapsBindingTable0xc1Set可变设备绑定表目录当前集合空集apsDesignatedCoordinator0xc2BoolTRUE/F

30、ALSE设备为协调器时为TRUEFALSEapsChannelMask0xc3IEEE802.15.4信道掩码任何对于PHY有效的掩码英语这个设备网络操作的允许信道掩码所有信道apsUseExtendedPANID0xc464bit扩展地址0x0-0xfffffffffffffffe形成或加入网络的64bit地址0x0ApsGroupTable0xc5Set可变组表目录的当前集合空集(2)、APSME-GET.confirm原语该原语返回尝试从AIB中读取一个属性值的结果。它由APSME产生,发送给上层作为对APSME-GET.request原语的响应。 该原语返回状态SUCCESS,表明请求读取AIB属性请求成功,或者返回错误码UNSUPPORTED_ATTRIBUT

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1