Z
Z
Z
Z igbee
igbee
igbee
igbee 协议栈中文说明
1.
1.
1.
1. 概述
1.1
1.1
1.1
1.1 解析 ZigBee
ZigBee
ZigBee
ZigBee 堆栈架构
ZigBee 堆栈是在 IEEE 802.15.4 标准基础上建立的,定义了协议的 MAC 和 PHY
层。
ZigBee 设备应该包括 IEEE802.15.4( 该标准定义了 RF 射频以及与相邻设备之间的通信 ) 的
PHY 和 MAC 层,以及 ZigBee 堆栈层:网络层 (NWK) 、应用层和安全服务提供层。图 1 -1
给出了这些组件的概况。
1.1.1
1.1.1
1.1.1
1.1.1 ZigBee
ZigBee
ZigBee
ZigBee 堆栈层
每个 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
1.1.2
1.1.2
1.1.2 802.15.4
802.15.4
802.15.4
802.15.4 MAC
MAC
MAC
MAC 层
IEEE 802.15.4 标准为低速率无线个人域网 (LR-WPAN) 定义了 OSI 模型开始的两层。
PHY 层定义了无线射频应该具备的特征, 它支持二种不同的射频信号, 分别位于 2450MH z
波段和 868/915MHz 波段。 2450MHz 波段射频可以提供 250kbps 的数据速率和 16 个不 同
的信道。 868/915MHz 波段中, 868MHz 支持 1 个数据速率为 20kbps 的信道, 915MHz 支
持 10 个数据速率为 40kbps 的信道。
MAC 层负责相邻设备间的单跳数据通信。 它负责建立与网络的同步, 支持关联和去关 联
以及 MAC 层安全:它能提供二个设备之间的可靠链接。
1.1.3
1.1.3
1.1.3
1.1.3 关于服务接入点
ZigBee 堆栈的不同层与 802.15.4 MAC 通过服务接入点 (SAP) 进行通信。 SAP 是某一
特定层提供的服务与上层之间的接口。
ZigBee 堆栈的大多数层有两个接口:数据实体接口和管理实体接口。数据实体接口的
目标是向上层提供所需的常规数据服务。管理实体接口的目标是向上层提供访问内部层参
数、配置和管理数据的机制。
1.1.4
1.1.4
1.1.4
1.1.4 ZigBee
ZigBee
ZigBee
ZigBee 的安全性
安全机制由安全服务提供层提供。 然而值得注意的是, 系统的整体安全性是在模板级 定
义的,这意味着模板应该定义某一特定网络中应该实现何种类型的安全。
每一层 (MAC 、 网络或应用层 ) 都能被保护, 为了降低存储要求, 它们可以分享安全钥
匙。
SSP 是通过 ZD0 进行初始化和配置的,要求实现高级加密标准 (AES)
。
ZigBee 规范定义 了
信任中心的用途。信任中心是在网络中分配安全钥匙的一种令人信任的设备。
1.1.5
1.1.5
1.1.5
1.1.5 ZigBee
ZigBee
ZigBee
ZigBee 堆栈容量和 ZigBee
ZigBee
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.APL
2.APL
2.APL 应用层介绍
2.1.1
2.1.1
2.1.1
2.1.1 应用层简介
如图 2-1 所示, ZigBee 应用层由三个部分组成, APS 子层、 ZDO (包含 ZDO 管理平
台)和制造商定义的应用对象。
图 2-1 zigbee 协议堆栈分层结构
2.1.2
2.1.2
2.1.2
2.1.2 应用层框架
ZigBee 中的应用框架是为驻扎在 ZigBee 设备中的应用对象提供活动的环境。
最多可以定义 240 个相对独立的应用程序对象,且任何一个对象的端点编号都是从 1
到 240 。此外 还有两个附加的终端节点
,
为了 APSDE-SAP 的使用 :端点号 0 固定 用
于 ZDO 数据接口;另外一个端点 255 固定用于所有应用对象广播数据的数据接口功能。 端
点 241-254 保留(留给未来扩展使用) 。
2.1.2.1
2.1.2.1
2.1.2.1
2.1.2.1 应用 Profiles
Profiles
Profiles
Profiles
应用 profiles 是一组统一的消息,消息格式和处理方法,允许开发者建立一个可以
共同使用的分布式应用程序,这些应用是利用驻扎在独立设备中的应用实体来实现的。
这些应用 profiles 允许应用程序发送命令、请求数据和处理命令的请求。
2.1.2.2
2.1.2.2
2.1.2.2
2.1.2.2 簇
簇标识符可用来区分不同的簇, 簇标识符联系着从设备流出和向设备流入的数据。 在 特
殊的应用 profiles 范围内,簇标识符是唯一的。
2.1.3ZigBee
2.1.3ZigBee
2.1.3ZigBee
2.1.3ZigBee 设备对象
ZigBee
设备对象 (
ZDO
) , 描述了一个基本的功能函数, 这个功能在应用对象、 设备
p rofile
和 APS
之间提供了一个接口。
ZDO 位于应用框架和应用支持子层之间。 它满足所有在 Zig Bee
协议栈中应用操作的一般需要。此外 ZDO 还有以下作用:
( 1 )初始化应用支持子层( APS
) ,网络层(
NWK
) ,安全服务规范(
SSS
) 。
( 2 ) 从终端应用集合中配置 的 信息来确定和执行安全管理、发现、网络管理 、 以及绑
定管理。
ZDO 描述了应用框架层 中 应用对象的公用接口以 及 控制设备和应用对象的网络功能。
在终端节点 0, ZDO 提供了与协议栈中 与 低一层 连接 的接口,如果 是 数据 则 通过 APSDE-
SAP ,如果是控制信息则通过 APSME-SAP 。 ZDO的具体描述在 2.5 节。
2.1.3.1
2.1.3.1
2.1.3.1
2.1.3.1 设备发现
设备发现是 ZigBee 设备为什么能发现其他设备的过程。 这有两种形式的设备发现请求
:
IEEE 地址请求和网络地址请求。 IEEE 地址请求是单播到一个特殊的设备且假定网络地址 已
经知道。网络地址请求是广播且携带一个已知的 IEEE 地址作为负载。
2.1.3.2
2.1.3.2
2.1.3.2
2.1.3.2 服务发现
服务发现是为什么一个已知设备被其他设备发现的能力的过程。 服务发现通过在 一
个已知设备的每一个端点发送询问或通过使用一个匹配服务(广播或者单播)。服务 发
现方便定义和使用各种描述来概述一个设备的能力。
服务发现信息在网络中也许被隐藏,在这种情况下, 设备提供的特殊服务便可能 不
在操作发生的时候到达。
2.2
2.2
2.2
2.2 ZigBee
ZigBee
ZigBee
ZigBee 应用支持子层 APS
APS
APS
APS
APS 提供了这样的接口: 在 NWK 层和 APL 层之间, 从 ZDO 到供应商的应用对象的 通
用服务集。这服务由两个实体实现: APS 数据实体( APSDE )和 APS 管理实体( APSME
) 。
(1)APSDE 提供在同一个网络中的两个或者更多的应用实体之间的数据通信。通过
APSDE 服务接入点 (APSDE-SAP) ;
( 2
)
APSME 提供多种服务给应用对象,这些服务包含安全服务和绑定设备,并维 护
管理对象的数据库,也就是我们常说的 AIB 。 通过 APSME 服务接入点( APSME-SAP
)。
2.2.1
2.2.1
2.2.1
2.2.1 范围
这一小节描述了应用层部分提供的服务规范和生产商定义的应用对象与 ZigBee 设备
对象之间的接口。规范定义了允许应用对象传输数据的数据服务和提供绑定机制的管理服
务。另外,它还定义了应用支持子层的帧格式和帧类型。如图 2-2