logo资料库

ZigBee协议栈说明书(中文版).pdf

第1页 / 共148页
第2页 / 共148页
第3页 / 共148页
第4页 / 共148页
第5页 / 共148页
第6页 / 共148页
第7页 / 共148页
第8页 / 共148页
资料共148页,剩余部分请下载后查看
Zigbee 协议栈中文说明 协议栈中文说明 协议栈中文说明 协议栈中文说明 1.概述概述概述概述 1.1 解析解析解析解析 ZigBee 堆栈架构 堆栈架构 堆栈架构堆栈架构 ZigBee 堆栈是在 IEEE 802.15.4 标准基础上建立的,定义了协议的 MAC 和 PHY 层。 ZigBee 设备应该包括 IEEE802.15.4(该标准定义了 RF 射频以及与相邻设备之间的通信)的 PHY 和 MAC 层,以及 ZigBee 堆栈层:网络层(NWK)、应用层和安全服务提供层。图 1-1 给出了这些组件的概况。 1.1.1ZigBee 堆栈层堆栈层堆栈层堆栈层 每个 ZigBee 设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义 了设备的应用环境、设备类型以及用于设备间通信的簇。公共模板可以确保不同供应商的设 备在相同应用领域中的互操作性。 设备是由模板定义的,并以应用对象(Application Objects)的形式实现(见图 1-1)。每个 应用对象通过一个端点连接到 ZigBee 堆栈的余下部分,它们都是器件中可寻址的组件 图 1-1 zigbe 堆栈框架
从应用角度看,通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一 个或多个灯组件的远端设备进行通信,目的是将这些灯点亮)。 端点之间的通信是通过称之为簇的数据结构实现的。这些簇是应用对象之间共享信息所 需的全部属性的容器,在特殊应用中使用的簇在模板中有定义。图 1-1-2 就是设备及其接口 的一个例子: 图 1-1-2 每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。一共有二个特殊的端点, 即端点 0 和端点 255。端点 0 用于整个 ZigBee 设备的配置和管理。应用程序可以通过端点 0 与 ZigBee 堆栈的其它层通信,从而实现对这些层的初始化和配置。附属在端点 0 的对象 被称为 ZigBee 设备对象(ZD0)。端点 255 用于向所有端点的广播。端点 241 到 254 是保留 端点。 所有端点都使用应用支持子层(APS)提供的服务。APS 通过网络层和安全服务提供层与 端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,比如带 灯的开关。 APS 使用网络层(NWK)提供的服务。NWK 负责设备到设备的通信,并负责网络中设备 初始化所包含的活动、消息路由和网络发现。应用层可以通过 ZigBee 设备对象(ZD0)对网 络层参数进行配置和访问。 1.1.2 802.15.4 MAC 层层层层 IEEE 802.15.4 标准为低速率无线个人域网(LR-WPAN)定义了 OSI 模型开始的两层。 PHY 层定义了无线射频应该具备的特征,它支持二种不同的射频信号,分别位于 2450MHz 波段和 868/915MHz 波段。2450MHz 波段射频可以提供 250kbps 的数据速率和 16 个不同 的信道。868/915MHz 波段中,868MHz 支持 1 个数据速率为 20kbps 的信道,915MHz 支 持 10 个数据速率为 40kbps 的信道。 MAC 层负责相邻设备间的单跳数据通信。它负责建立与网络的同步,支持关联和去关联 以及 MAC 层安全:它能提供二个设备之间的可靠链接。
1.1.3 关于服务接入点 关于服务接入点 关于服务接入点 关于服务接入点 ZigBee 堆栈的不同层与 802.15.4 MAC 通过服务接入点(SAP)进行通信。SAP 是某一 特定层提供的服务与上层之间的接口。 ZigBee 堆栈的大多数层有两个接口:数据实体接口和管理实体接口。数据实体接口的 目标是向上层提供所需的常规数据服务。管理实体接口的目标是向上层提供访问内部层参 数、配置和管理数据的机制。 1.1.4 ZigBee 的安全性 的安全性 的安全性的安全性 安全机制由安全服务提供层提供。然而值得注意的是,系统的整体安全性是在模板级定 义的,这意味着模板应该定义某一特定网络中应该实现何种类型的安全。 每一层(MAC、网络或应用层)都能被保护,为了降低存储要求,它们可以分享安全钥匙。 SSP 是通过 ZD0 进行初始化和配置的,要求实现高级加密标准(AES)。ZigBee 规范定义了 信任中心的用途。信任中心是在网络中分配安全钥匙的一种令人信任的设备。 1.1.5 ZigBee 堆栈容量和 堆栈容量和 ZigBee 设备设备设备设备 堆栈容量和 堆栈容量和 根据 ZigBee 堆栈规定的所有功能和支持,我们很容易推测 ZigBee 堆栈实现需要用到 设备中的大量存储器资源。 不过 ZigBee 规范定义了三种类型的设备,每种都有自己的功 能要求:ZigBee 协调器是启动和配置网络的一种设备。协调器可以保持间接寻址用的绑定 表格,支持关联,同时还能设计信任中心和执行其它活动。一个 ZigBee 网络只允许有一个 ZigBee 协调器。 ZigBee 路由器是一种支持关联的设备,能够将消息转发到其它设备。ZigBee 网格或树 型网络可以有多个 ZigBee 路由器。ZigBee 星型网络不支持 ZigBee 路由器。 ZigBee 端终设备可以执行它的相关功能,并使用 ZigBee 网络到达其它需要与其通信 的设备。它的存储器容量要求最少。然而需要特别注意的是,网络的特定架构会戏剧性地影 响设备所需的资源。NWK 支持的网络拓扑有星型、树型和网格型。在这几种网络拓扑中, 星型网络对资源的要求最低。 ZigBee 堆栈应该可以提供 ZigBee 规范要求的所有功能,因此制造商的重点工作是开发 实际的应用。为了更加容易实现,如果制造商使用某种公共模板,那么可用大多数现成的配 置。如果没有合适的公共模板,则可以充分利用其它模板已经做过的工作创建自己的模板。 ZigBee 协议栈体系包含一系列的层元件,其中有 IEEE802.15.4 2003 标准中的 MAC 层 和 PHY 层,当然也包括 ZigBee 组织设计的 NWK 层。每个层的元件有其特定的服务功能。 本说明描述内容涉及 ZigBee 协议栈的各层元件,但侧重于描述最具实际和理论探讨性的 APL 应用层和 NWK 网络层。图 1-1 为 ZigBee 栈结构框图。
2.APL 应用层介绍 应用层介绍 应用层介绍 应用层介绍 2.1.1 应用应用应用应用层层层层简简简简介介介介 如图 2-1 所示,ZigBee 应用层由三个部分组成,APS 子层、ZDO(包含 ZDO 管理平 台)和制造商定义的应用对象。 图 2-1 zigbee 协议堆栈分层结构 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.3ZigBee 设备对象 设备对象 设备对象 设备对象 ZigBee 设备对象(ZDO),描述了一个基本的功能函数,这个功能在应用对象、设备 profile 和 APS 之间提供了一个接口。ZDO 位于应用框架和应用支持子层之间。它满足所有在 ZigBee 协议栈中应用操作的一般需要。此外 ZDO 还有以下作用: (1)初始化应用支持子层(APS),网络层(NWK),安全服务规范(SSS)。 (2)从终端应用集合中配置的信息来确定和执行安全管理、发现、网络管理、以及绑 定管理。 ZDO 描述了应用框架层中应用对象的公用接口以及控制设备和应用对象的网络功能。 在 终 端 节 点 0, ZDO 提 供 了 与 协 议 栈 中 与 低 一 层 连 接 的 接 口 , 如 果 是 数 据 则 通 过 APSDE-SAP,如果是控制信息则通过 APSME-SAP。ZDO的具体描述在 2.5 节。 2.1.3.1 设备发现 设备发现 设备发现设备发现 设备发现是 ZigBee 设备为什么能发现其他设备的过程。这有两种形式的设备发现请求: IEEE 地址请求和网络地址请求。IEEE 地址请求是单播到一个特殊的设备且假定网络地址已 经知道。网络地址请求是广播且携带一个已知的 IEEE 地址作为负载。 2.1.3.2 服务服务服务服务发现发现发现发现 服务发现是为什么一个已知设备被其他设备发现的能力的过程。服务发现通过在一 个已知设备的每一个端点发送询问或通过使用一个匹配服务(广播或者单播)。服务发 现方便定义和使用各种描述来概述一个设备的能力。 服务发现信息在网络中也许被隐藏,在这种情况下,设备提供的特殊服务便可能不 在操作发生的时候到达。 2.2 ZigBee 应用支持子层 应用支持子层 APS 应用支持子层 应用支持子层 APS 提供了这样的接口:在 NWK 层和 APL 层之间,从 ZDO 到供应商的应用对象的通 用服务集。这服务由两个实体实现:APS 数据实体(APSDE)和 APS 管理实体(APSME)。 (1)APSDE 提供在同一个网络中的两个或者更多的应用实体之间的数据通信。通过 APSDE 服务接入点(APSDE-SAP); (2)APSME 提供多种服务给应用对象,这些服务包含安全服务和绑定设备,并维护 管理对象的数据库,也就是我们常说的 AIB。通过 APSME 服务接入点(APSME-SAP)。 2.2.1 范围范围范围范围 这一小节描述了应用层部分提供的服务规范和生产商定义的应用对象与 ZigBee 设备 对象之间的接口。规范定义了允许应用对象传输数据的数据服务和提供绑定机制的管理服 务。另外,它还定义了应用支持子层的帧格式和帧类型。如图 2-2
图 2-2 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 服务规范 服务规范 服务规范 服务规范 应用支持子层为上层实体(NHLE)与网络层提供了一个接口。APS 层理论上包含一个管 理实体称为 APS 层,管理实体(APSME)。这个实体通过调用子层的管理函数来提供服务接口。 APSME 还负责维护一个关于 APS 子层管理实体的数据库。这是一个关于 APS 子层信息库(AIB) 的数据库.图 2-3 描述了 APS 子层的构成和接口。 APS子层通过两个服务指针(SAPs)提供两种服务。APS数据服务通过APS子层数据实体 服务指针SAP(APSDE-SAP),APS管理服务通过APS则层管理实体服务指针SAP(APSME-SAP). 图 2-3 应用支持之层参考模型
这两个服务通过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 服务原语的语法 服务原语的语法 服务原语的语法 服务原语的语法 该原语的语法如下: APSDE-DATA_request { DstAddrMode DSTAddress DstEndpoint Profiled Clusterld SrcEndpoint asduLength asdu TxOpionts RadiusCounter } 表2.2详细说明了APSDE-DATA.request原语的参数。
分享到:
收藏