在使用zigbee协议的时候经常看到应用程序、zigbee设备对象(ZDO)、节点、设备、端点、群集、属性、绑定、寻址等一下zigbee术语,它们表示什么,是如何定义的,如何区分的,以及他们之间有什么联系,这一切都因为中英文的翻译局限性而无法让初学者迅速理解。这里摘抄了一些术语比较容易理解的资料,以方便用户迅速掌握和使用ZigBee模块以及ZCL。

一、属性

属性Attribute是一个反映物理数量或状态的数据值,比如开关值(On/Off)、灯的状态值(On/Off)、温度值、百分比等等

二、群集,或称为簇

一个Cluster群集实际上是一组属性和命令的集合,是两类设备之间的一个通信接口。它不是附着于单独某一个设备之上,而是联系两个设备的一条纽带,Cluster就是纽带本身。每个Cluster都被分配一个唯一ID且每个Cluster最多有65536个属性。比如一个群集包含了不同情况下的开关、不同情况下的灯、不同情况下的温度值、不同情况下的百分比等等。一个cluster包括两端,server 端和client端。由于cluster中包含的大部分attributes是存在于server端的,因此有时通过描述server端设备具有的attributes和接收的commands,就可以展示一个完整的cluster。

三、设备描述

设备描述Device Description是指一个大型目标应用的一部分,包括一个或多个群集

四、端点

端点EndPoint是协议栈应用层的入口,即入口地址,也可以理解应用对象(Application Object)存在的地方,它是为实现一个设备描述而定义的一组群集。每个Zigbee设备可以最多支持240这样的端点,端口0用于整个Zigbee设备的配置和管理,应用程序可以通过端点0与Zigbee堆栈的其他层通信,从而实现对这些层的初始化和配置。附属在端点0的对象被称为Zigbee设备对象(ZDO)。端点255用于向所有端点的广播,端点241~254是保留端点。

五、应用规范Profile

规范Profile可以理解为某一行业应用的设备描述以及其所支持属性和群集定义。ZigBee网络中数据的收发是建立应用规范(Application Profile)的基础上的。每个应用规范都有 一个ID;应用规范可分为公共规范(Public profile)和制造商特定规范(Manufacturer Specific Profile)。比如智能家居就是一种公共规范,而智能厨房就是一种制造商的特定行业规范。

六、节点

节点Node也可以理解为一个容器,包含一组zigbee设备,分享一个无线信道。每个节点有且只有一个无线信道。一个节点除了64位的IEEE地址,16位的网络地址,每个节点还提供了8位应用层入口地址(端点:EndPoint),对应于用户应用对象。

七、ZigBee设备对象ZDO

ZDO是一个驻留在所有ZigBee节点中特殊应用对象,任何一个ZigBee设备都必须首先具有ZDO功能,然后才有其它功能。ZigBee规定端点0是分配给ZDO使用的。ZDO主要功能集中在网络管理和维护上,可以通过 ZDO提供的功能来获取网络或者是其他节点的信息,包括网络的拓扑结构、其它节点的网络地址和状态,类型,链路质量和提供的服务等信息。

八、绑定(Bindling)

Zigbee定义了一个称为端点绑定的特殊过程。绑定即在源节点的某个端点(EndPoint)和目标节点的某个端点之间创建一条逻辑链路。绑定可以发生在两个或多个设备之间。协调器节点维护一个基本上包括两个或多个端点之间的逻辑链路的绑定表。

在绑定表中,包含如下信息,源节点和目标节点的IEEE地址、端点号、群集号。对于可以建立绑定关系的两个节点,它们的群集的属性必须一个选择“输入”,另一个选择“输出”,而且群集号必须相等,只有这样,它们彼此才能建立绑定。如果目标设备的扩展地址是已知的,则调用zb_BindDeviceRequest()函数可以创建一个绑定条目。

九、寻址(Addressing)

在Zigbee网络中,使用两种地址:一种是64位的IEEE地址,也叫物理地址,64位地址在所有zigbee设备之中是唯一的,其中包含一个由IEEE分配、也是全球唯一的24位制造商特定组织标识符OUI(Organizationally Uqique Identifier)。另一种是16位的网络地址(NWK Address),当设备加入zigbee网络时,从允许其加入的父设备上获取16位网络地址。该地址在zigbee网络中唯一,用于数据传输和数据包路由。在zigbee中,数据包可以单点传送(unicast),多点传送(multicast)或者广播传输(broadcast),所以必须有地址模式参数。一个单点传送数据包只发送给一个设备,多点传送数据包则要传送个一组设备,而广播数据则要发送给整个网络的所有节点。当应用程序需要将数据包发送给网络上的一组设备时,还可以使用组寻址方式(Group Addrssing)。

ZigBee Cluster Library是一个由ZigBee联盟定义的Cluster群集仓库。一个cluster可以包含多个属性和命令。不同的规范中定义的设备可能支持多个Cluster,开发者在开发应用时需要用到对应ZCL API,去操作或控制对应的cluster。ZCL提供一个机制来让cluster报告属性值的变化,它也提供命令来配置相应的属性值。在建立这种报告制度之前,客户端的cluster必须相同服务端绑定。

ZCL分为client和server。一个cluster保存属性的实体一般称为server,而操作这些属性的实体称为client。当然,如果需要,client中也是可以存在属性的。clinet去操作属性是通过命令进行,比如读、写等,一般情况下这些操作命令,都是由client发出,由server接收并处理。