1.ZigBee协议
在进行ZigBee应用开发时,往往还需要理解下面几个基本术语:节点、群集、端点、属性。如果不能很好地区分这些术语之间的关系,就不能够很好地使用ZigBee协议进行应用开发。在ZigBee网络中,节点是最大的集合。一个网络节点可以包含多个设备,每一个设备可以包含多个端点。设备的端点可以为1~240,对应于240种不同的网络应用。设备中的每一个端点可以有多个群集,按照群集的接口方向来划分,可以分为输入群集和输出群集两种。在ZigBee的一个端点中,既可以有输入群集也可以有输出群集。一个端点中的输出群集要能够控制另外一个端点中的输入群集,必须要求这两个群集具有相同的群集标识符(ClusterID)。群集可以看作是属性的集合,一个群集中可以包含一个或多个属性。例如在家庭照明控制灯规范中,ZigBee为遥控开关控制器(开关)定义了一个必要的输出群集:On-OffSRC。它也为开关负载控制器(灯)定义了一个必要的输入群集:OnOffSRC。这两个群集的ClusterID都是OnOffSRC,因此开关便可以通过这个群集来对灯进行控制。ZigBee在OnOffSRC群集中定义了一个属性OnOff。为它定义了3种不同的属性值,分别是0xFF表示On,0x00表示Off,OxF0表示Toggle(切换)。当需要打开照明灯时,遥控开关便通过应用层键值对(KVP)消息,发送Set命令将照明灯OnOffSRC群集中OnOff属性设置为On。同样,如果需要关闭照明灯时,也可以通过Set命令将照明灯OnOffSRC群集中OnOff设置为Off。Toggle属性值的意义是,如果电灯处于点亮状态,设置这个值,将会把电灯熄灭;如果电灯处于熄灭状态,通过设定这个属性值,则又会把电灯点亮。
2.ZigBee绑定操作
在ZigBee协议中,定义了一种特殊的操作,叫做绑定操作。它能够通过使用ClusterID为不同节点上的独立端点建立一个逻辑上的连接。ZigBee网络中的两个节点分别为Z1和Z2,其中Z1节点中包含两个独立端点分别是EP3和EP21,它们分别表示开关1和开关2。Z2节点中有EP5、EP7、EP8,EP17四个端点分别表示1~4这四盏灯。在网络中,通过建立ZigBee绑定操作,可以将EP3和EP5、EP7、EP8进行绑定,将EP21和EP17进行绑定。这样,开关1便可以同时控制电灯1、2、3,开关2便可以控制电灯4。利用绑定操作,还可以更改开关和电灯之间的绑定关系,从而形成不同的控制关系。从这个例子可以看出,绑定操作能够使用户的应用变得更加方便灵活。要实现绑定操作,端点必须向协调器发送绑定请求,协调器在有限的时间间隔内接收到两个端点的绑定请求后,便通过建立端点之间的绑定表在这两个不同的端点之间形成了一个逻辑链路。在绑定后的两个端点之间进行传送过程属于消息的间接传送。其中一个端点首先会将信息发送到ZigBee协调器中,协调器在接收到消息后会通过查找绑定表,将消息发送到与这个端点相绑定的所有端点中,从而实现了绑定端点之间的通信。
3.应用层消息类型
应用框架(AF)提供了两种标准服务:一种是键值对(Key Value Pair,KVP)服务类型;另一种是报文(Message,MSG)服务类型。KVP服务用于传输规范所定义的特殊数据。它定义了属性(Attribute)、属性值(Value)以及用于KVP操作的命令,即Set、Get、Event。其中,Set用于设置一个属性值;Get用于获取一个属性值;Event用于通知一个属性已经发生改变。KVP消息主要用于传输一些较为简单的变量格式。由于在很多应用领域中的消息较为复杂,并不适用于KVP格式,因此ZigBee协议规范定义了MSG服务类型。对MSG服务对数据格式不作要求,适合任何格式的数据传输。因此可以用于传送数据量大的消息。KVP命令帧的格式见表3-2,MSG命令帧格式见表3-3。
表3-2 KVP命令帧格式(www.xing528.com)
表3-3 MSG命令帧格式
4.应用开发规范
应用开发规范是对逻辑设备及其接口描述的集合,是面向某个具体应用类别的公约、准则。它在消息、消息格式、请求数据或请求创建一个共同的分布式应用程序的处理行为上达成了共识。这意味着,在ZigBee标准的范围内,各个厂商共同合作形成统一的技术解决方案。
由于ZigBee技术是一项较新的技术,各厂商都有各不相同的解决方案,并向ZigBee联盟提交希望得到推广。因为ZigBee联盟将会对各种方案进行综合考虑,最终决定采用这些方案中的某一个为标准方案。一旦被定为标准规范,其他设备制造厂商、方案提供商需按照这个规范进行产品开发,以期望能同其他厂商开发出的ZigBee设备进行互操作,赢得更多的客户。在ZigBee协议栈中,任何通信数据都是利用帧的格式来组织的,协议栈的每一层都有特定的帧结构。当应用程序需要发送数据时,它将通过APS数据实体发送数据请求到APS。随后在它下面的每一层都会为数据附加相应的帧头,组成要发送的帧信息。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。