logo资料库

ZigBee应用层规范(中文详解).pdf

第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
资料共48页,剩余部分请下载后查看
西安达泰电子(http://www.dataie.com )携手 Zigbee 开发网(http://www.zigbee123.com)共同推出 基于 CC2430 的经济实用型 Zigbee 开发套件! Zigbee 应用层规范 2.1 概述 ZigBee 栈体系包含一系列的层元件,包含 IEEE802.15.4 2003 标准 MAC 层和 PHY 层, 当然也包括 ZigBee 的 NWK 层。每个层的元件提供相关的服务功能。虽然本节描述了 ZigBee 栈的其他部分但主要描述图 1.1 中的 APL 层。图 1 为 ZigBee 栈结构框图。 如图 1.1 所示,ZigBee 应用层由三个部分组成,APS 子层、ZDO(包含 ZDO 管理平台) 和制造商定义的应用对象。 2.1.1 应用支持子层 APS 提供了这样的接口:在 NWK 层和 APL 层之间,从 ZDO 到供应商的应用对象的通 用服务集。这服务由两个实体实现:APS 数据实体(APSDE)和 APS 管理实体(APSME)。 (1) APSDE 通过 APSDE 服务接入点(APSDE-SAP); (2)APSME 通过 APSME 服务接入点(APSME-SAP)。 APSDE 提供在同一个网络中的两个或者更多的应用实体之间的数据通信。 APSME提供多种服务给应用对象,这些服务包含安全服务和绑定设备,并维护管 理对象的数据库,也就是我们常说的AIB。 2.1.2 应用层框架 ZigBee 中的应用框架是为驻扎在 ZigBee 设备中的应用对象提供活动的环境。 最多可以定义 240 个相对独立的应用程序对象,任何一个对象的端点编号从 1 到 240。 还有两个附加的终端节点为了 APSDE-SAP 的使用:端点号 0 固定用于 ZDO 数据接 口;另外一个端点 255 固定用于所有应用对象广播数据的数据接口功能。端点 241-254 保留 (给为了扩展使用)。 2.1.2.1 应用 Profiles 应用 profiles 是一组统一的消息,消息格式和处理方法,允许开发者建立一个可以 共同使用的、分布式应用程序,这些应用是使用驻扎在独立设备中的应用实体。这些应 用 profiles 允许应用程序发送命令、请求数据和处理命令和请求。 2.1.2.2 簇 簇标识符可用来区分不同的簇,簇标识符联系着数据从设备流出,和向设备流入。在特 殊的应用 profiles 范围内,簇标识符是唯一的。 2.1.3 ZigBee 设备对象 ZigBee 设备对象(ZDO),描述了一个基本的功能函数,这个功能在应用对象、设备 profile 和 APS 之间的提供了一个接口。ZDO 位于应用框架和应用支持子层之间。它满足所有在 ZigBee 协议栈中应用操作的一般需要。ZDO 还有以下作用: (1)初始化应用支持子层(APS),网络层(NWK),安全服务规范(SSS)。 (2)从终端应用中集合配置信息来确定和执行发现、安全管理、网络管理、以及绑定 管理。 ZDO 描述了应用框架层的应用对象的公用接口以控制设备和应用对象的网络功能。在 终端节点 0, ZDO 提供了与协议栈中低一层相接的接口,如果是数据是通过 APSDE-SAP, 如果是控制信息则通过 APSME-SAP。在 ZigBee 协议栈的应用框架中,ZDO 公用接口提供 设备、发现、绑定、以及安全等功能的地址管理。ZDO的具体描述在 2.5 节。 2.1.3 设备发现 设备发现是 ZigBee 设备为什么能发现其他设备的过程。这有两种形式的设备发现请求: IEEE 地址请求和网络地址请求。IEEE 地址请求是单播到一个特殊的设备且假定网络地址已 经知道。网络地址请求是广播且携带一个已知的 IEEE 地址作为负载。 技术支持:029-85272421 85277568 QQ 476968247 http://www.dataie.com
西安达泰电子(http://www.dataie.com )携手 Zigbee 开发网(http://www.zigbee123.com)共同推出 基于 CC2430 的经济实用型 Zigbee 开发套件! 2.1.3.2服务发现 服务发现是为什么一个已给设备被其他设备发现的能力的过程。服务发现通过在一 个已给设备的每一个端点发送询问或通过使用一个匹配服务性质(广播或者单播)。服 务发现方便定义和使用各种描述来概述一个设备的能力。 服务发现信息在网络中也许被隐藏,在这种情况下,设备提供的特殊服务可能不好 到达在发现操作发生的时候。 2.2 ZigBee 应用支持子层 2.2.1 范围 这一小节描述了应用层部分提供的服务规范和生产商定义的应用对象与 ZigBee 设备对象之 间的接口。规范定义了允许应用对象传输数据的数据服务和提供绑定机制的管理服务。另外, 它还定义了应用支持子层的帧格式和帧类型。 2.2.2 目的 这小节的目的是定义 ZigBee 应用支持子层的功能。该功能建立在两个基础之上,一是正确 运行 ZigBee 网络层的驱动功能,二是制造商定义的应用对象所需要的功能。 2.2.3 应用支持子层简介 应用支持子层给网络层和应用层通过 ZigBee 设备对象和制造商定义的应用对象使用的一组 服务提供了接口,该接口提供了 ZigBee 设备对象和制造商定义的应用对象使用的一组服务。 通过两个实体提供这些服务:数据服务和管理服务。APS 数据实体(APSDE)通过与之连接的 SAP,即 APSDE-SAP 提供数据传输服务。APS 管理实体(APSME)通过与之连接的 SAP,即 APSME-SAP 提供管理服务,并且维护一个管理实体数据库,即 APS 信息库(NIB)。 2.2.3.1 应用支持子层的数据实体(APSDE) APSDE 向网络层提供数据服务,并且为 ZDO 和应用对象提供服务,完成两个或多个设备之间 传输应用层 PDU。这些设备本身必须在同一个网络。 APSDU 将提供如下服务: 生成应用层的协议数据单元(APDU):APSDE 将应用层协议数据单元(PDU)加上适当的协议 帧头生成应用子层的协议数据单元(PDU)。 绑定:两个设备服务和需求相匹配的能力。一旦两个设备绑定了,APSDE 将可以把从一个绑 定设备接受到的信息传送给另一个设备。 组地址过滤:提供了基于终点组成员的过滤组地址信息的能力。 可靠传输:比从网络层仅仅通过端对端的传输增加了可靠性 拒绝重复:提供传送的信息不会被重复接收 支持大批量的传输:提供两个设备间顺序传输大批量的数据的能力。 碎片:当消息的长度大于单个网络层帧时,可以分割并重组消息。 流控制:APS 提供避免传输消息淹没接收者的措施。 阻塞控制:APS 层使用“尽力”原则,提供措施避免传输消息淹没中间网络。 2.2.3.2 应用支持子层的管理实体(APSME) APSME 应提供管理服务支持应用程序符合堆栈。 APSME 应具有基于两个设备的服务和需求向匹配的能力。该服务称为绑定服务,APSME 应具有能力来构建和维护绑定表来存储这些信息。 另外,APSME 应提供如下服务: 1 应用层信息库管理:读取与设置设备应用层信息库属性的能力 2 安全:与其他设备通过使用安全密钥建立可信关系的能力 2.2.4 服务规范 技术支持:029-85272421 85277568 QQ 476968247 http://www.dataie.com
西安达泰电子(http://www.dataie.com )携手 Zigbee 开发网(http://www.zigbee123.com)共同推出 基于 CC2430 的经济实用型 Zigbee 开发套件! 应用支持子层为上层实体(NHLE)与网络层提供了一个接口。APS 层理论上包含一个管 理实体称为 APS 层管理实体(APSME)。这个实体通过调用子层的管理函数来提供服务接口。 APSME 还负责维护一个关于 APS 子层管理实体的数据库。这个数据库关于 APS 子层信息库 (AIB).图 2.1 描述了 APS 子层的构成和接口。 APS子层通过两个服务指针(SAPs)提供两种服务。APS数据服务通过APS子层数据实体 服务指针SAP(APSDE-SAP),APS管理服务通过APS则层管理实体服务指针SAP(APSME-SAP). 这两个服务通过NLDE-SAP和NLME-SAP 接口 (见3.2小节)提供了NHLE和网络层之间的接口。 网络层和APS子层之间的NLME-SAP接口只支持NLME-GET 和 NLME-SET原语,其他的NLME-SAP 原语只可以通过ZDO实现(见2.5小节)。除了这些外部接口以外,在APSME和APSDE之间还有 一个内部的接口,支持APSME使用APS数据服务。 2.2.4.1 APS 数据服务 APS子层数据实体SAP(APSDE-SAP)支持在两个同等的应用实体之间传输应用协议数据 单元。表2.1列出了APSDE-SAP支持的原语。每一个原语将在下面的小节论述。 2.2.4.1.1 APSDE-DATA.request 该原语请求从本地NHLE向一个同等的NHLE实体传输NHLE PDU(ASDU)。 2.2.4.1.1.1 服务原语的语法 该原语的语法如下: 技术支持:029-85272421 85277568 QQ 476968247 http://www.dataie.com
西安达泰电子(http://www.dataie.com )携手 Zigbee 开发网(http://www.zigbee123.com)共同推出 基于 CC2430 的经济实用型 Zigbee 开发套件! 表2.2详细说明了APSDE-DATA.request原语的参数。 技术支持:029-85272421 85277568 QQ 476968247 http://www.dataie.com
西安达泰电子(http://www.dataie.com )携手 Zigbee 开发网(http://www.zigbee123.com)共同推出 基于 CC2430 的经济实用型 Zigbee 开发套件! 技术支持:029-85272421 85277568 QQ 476968247 http://www.dataie.com
西安达泰电子(http://www.dataie.com )携手 Zigbee 开发网(http://www.zigbee123.com)共同推出 基于 CC2430 的经济实用型 Zigbee 开发套件! 2.2.4.1.1.2 产生 当有一个数据PDU(ASDU)由本地NHLE向一个同等的NHLE传输时,由本地NHLE生成该原语。 2.2.4.1.1.3 2 当APS子层实体接收到该原语时,便开始传输提供的ASDU。 如果DstAddrMode参数为0x00,并且接收该原语的设备的APSDE支持绑定表,那么在绑定 表中根据参数SrcEndpoint和ClusterId所指定的endpoint和cluster identifiers寻找相关 联的绑定表入口。如果没有绑定表入口,APSDE将发送状态参数为NO_BOUND_DEVICE 的语 APSDE-DATA.confirm原语。如果找到了一个或多个绑定表入口,APSDE将构建APDU,其 endpoint信息从绑定表入口获得,当通过网络层传输信息帧时,其destination address信 息从绑定表入口获得。如果存在多于一个绑定表入口,当接收到相应的NLDE-DATA.confirm 原语,按上面描述的,APSDE将构建并向下一个绑定表入口传输APDU,直到没有绑定表入口 剩余。如果接收到该原语设备的APSDE不支持绑定表,那么APSDE将发送状态参数为 NOT_SUPPORTED的APSDE-DATA.confirm原语。 如果DstAddrMode参数为0x02,DstAddress参数包含扩展的64位IEEE地址,首次必须使 用NIB(见表2.24)属性中的nwkAddressMap映射相应的16位网络地址。如果找不到相应的16 位网络地址,那么APSDE将发送状态参数为NO_SHORT_ADDRESS的APSDE-DATA.confirm原语。 如果找到了相应的16位网络地址,其值将被用在NLDE-DATA.request原语中,参数 DstEndpoint将被置在作为结果的APDU中。如果DstAddrMode参数为0x01,表明为群地址,参 数DstAddress将被解释为16位的全地址。这个地址将被放置在APS头中的群地址域,参数 DstEndpoint将被忽略,APS头中的destination endpoint域将被省略。APS头中的帧控制域 的delivery mode子域值在这种情况下为0x03. 如果DstAddrMode参数为0x02,DstAddress参数包含16位的网络地址,并且提供参数 DstEndpoint,当目的网络地址用于应用响应,并且网络地址部位后面的数据传输请求保留 时,上层只能使用DstAddrMode为0x02. 应用程序可以通过使用参数RadiusCounter来限制在网络中传输数据帧的跳数。如果参 数RadiusCounter为0x00,网络层在网络中传输信息帧没有约束。如果参数RadiusCounter 为非零,则网络层将允许信息帧在网络中传输存在最多RadiusCounter跳。 如果DstAddrMode参数为0x01,表明为群地址,或者DstAddrMode参数为0x00,并且相应 的绑定表入口包含哪一个群地址,那么APSME将检查NIB(见表3.42)中的属性 技术支持:029-85272421 85277568 QQ 476968247 http://www.dataie.com
西安达泰电子(http://www.dataie.com )携手 Zigbee 开发网(http://www.zigbee123.com)共同推出 基于 CC2430 的经济实用型 Zigbee 开发套件! nwkUseMulticast值。如果属性值为FALSE,那么输出帧的帧控制域中的delivery mode子域 设为0b11,16位的目的群地址将设置输出帧APS头中的group address域,该帧将以广播方式 传输。传输该帧的原语NLDE-DATA.request的DstAddr参数设置为值0xfffd,广播给所有 RxOnWhenIdle=TRUE的设备。如果属性nwkUseMulticast值为TRUE,那么该帧将使用网络层多 点传送方式传输,群地址不用放置在输出帧的APS头中。 如果参数TxOptions指定使用安全传输,则APS子层将使用安全服务为ASDU提供安全(见 4.2.4小节)。如果安全处理失败,则APSDE发送状态参数为SECURITY_FAIL的 APSDE-DATA.confirm原语。 APSDE使用NLDE-DATA.request原语向网络层传输构造帧。当接收到NLDE-DATA.confirm 原语,APSDE则发送APSDE-DATA.confirm原语,其状态参数值域从网络层接收到的一致。 APSDE通过每次发送使NLDE-DATA.request原语的DiscoverRoute参数值为0x01确保网络 层中的路由发现始终激活。 如果传输的ASDU大于合适的单个帧,当没有请求确认传输或者在TxOptions域的 fragmentation permitted标志位设为0时,则放弃传输ASDU,APSDE将发送状态参数为 INVALID_REQUEST的APSDE-DATA.confirm原语。 如果传输的ASDU大于合适的单个帧,当请求确认传输并且在TxOptions域的 fragmentation permitted标志位设为1时,ASDU将按照2.2.8.3.5小节所述分裂为多个APDU。 如果请求传输和安全处理,那么每一个APDU都要进行处理。注意不要使用分裂处理,除非相 应的上层文件或者相互明确表明帧的传输允许分裂处理,并且说明了块的数量和总共传输的 大小。 2.2.4.1.2 APSDE-DATA.confirm 该原语报告从本地NHLE向一个同等的NHLE传输PDU数据的结果。 2.2.4.1.2.1 服务原语的语法 该原语的语法如下: 表2.3详细介绍了APSDE-DATA.confirm原语的参数。 技术支持:029-85272421 85277568 QQ 476968247 http://www.dataie.com
西安达泰电子(http://www.dataie.com )携手 Zigbee 开发网(http://www.zigbee123.com)共同推出 基于 CC2430 的经济实用型 Zigbee 开发套件! 2.2.4.1.2.2 产生 该原语有本地APS子层产生作为对APSDE-DATA.request原语的响应。该原语返回的状态 参数值为SUCCESS,表明请求传输成功,或者为错误代码NO_SHORT_ADDRESS , NO_BOUND_DEVICE 或SECURITY_FAIL或者为任何NLDE-DATA.confirm原语返回 的状态值。这些状态值的路由在2.2.4.1.2小节中进行了详细的描述。 2.2.4.1.2.3 接收 接收到该原语,发起设备的上层被通报请求传输的结果。如果传输成功,状态参数值设 技术支持:029-85272421 85277568 QQ 476968247 http://www.dataie.com
分享到:
收藏