前言
2002年ZigBee联盟(ZigBee Alliance)成立,该联盟以感测与控制做为应用a的方向,定义简单、成本低廉、容易实现、支持多种网络架构的无线通信标准。历经3年的发展,ZigBee 1.0(Revision 7)规格正式于2004年12月推出,各家的标准ZigBee应用纷纷推出,包括IC设计、家电、通信设备、IP服务提供、保全、建筑等各领域的厂商均加入推广ZigBee应用的行列,也因此ZigBee在无线感测网络(Wireless Sensor Network)应用的蓬勃发展中,打出了响亮的名号。
在各家相继提出ZigBee的应用后,渐渐发现安装与管理ZigBee网络并不是件简单的事情,网络从安装、设定到维护都必须要由专门的人员来负责执行,而且各家使用各自的机制来进行安装与设定,缺乏统一的管理规范与工具标准,导致各家装置间无法互相沟通,成本无法降低,也无法达到扩展ZigBee应用范围的目的。
为了解决这样的问题,ZigBee联盟的成员于2005年9月正式成立CTTG (Commissioning Tools Task Group),邀请各领域的应用厂商,搜集市场需求与经验,开始进行一系列的讨论,制定相关的规范。其目的在于提供一套可对ZigBee网络进行设定、管理及维护的机制,进而提供通用的管理规范与工具标准,落实让任何人在任何地点皆能轻松安装并使用ZigBee网络的概念。
CTTG的任务
在CTTG章程中描述,CTTG的任务在于定义ZigBee网络中进行安装与管理的机制,包含沟通的协议、安装的程序以及建议的实作,并提供各种应用开发的界面,但并不定义使用接口的呈现方式。所以Commissioning Tool(CT)并不是单指一个工具,而是定义该工具所必须提供的功能与操作程序。而在其范畴中提到,CT涵盖范围从初期的网络安装到运作中的网络维护与再次设定。所以CT必须提供网络安装、维护与重新配置的功能,并且能够以标准的程序来进行。
由此可知Commissioning Tool是指一套提供ZigBee网络安装、维护与重新配置的程序的标准,只要根据这套标准,任何的ZigBee装置与网络都能轻易进行安装与维护。CT存在于网络内的装置,也可以存在于网络外,仅在需要进行设定及管理时加入网络。
Commissioning Tool主要包含用来描述标准流程的ZigBee Commissioning Framework (ZCF)、描述在ZigBee装置间沟通的功能协议Commissioning Cluster及提供给各家厂商参考的Recommended Practices三大部分。
ZigBee Commissioning Framework
ZigBee Commissioning Framework (ZCF)主要定义这些Commissioning Procedures (CPs),一旦这些程序被ZigBee Stack所认可就会被当成给OEM厂商及系统安装者的Recommended Practices (RPs)作为安装时的依据,而这些RPs必须确保能被包含在其它的CPs之中,这样才能用通用的程序来设定及维护ZigBee装置及网络。ZCF提供相关的技术需求给ZigBee规格撰写者,也期望能影响其它的ZigBee工作群组,好让ZigBee Stack能够全力支持Commissioning Tool的功能。
ZCF由许多Commissioning Procedures (CPs)与每个程序相关的工作流程及支持每个程序的协议和规格所构成,目的在于使ZigBee装置与网络的设定及布建变得容易。接下来深入探讨下列这些部分:
Commissioning Procedures
ZCF允许许多的CP共存在Commissioning Tool中。CP是以一连串步骤用来设定ZigBee装置及其网络的程序。ZCF定义这些程序及其相关的操作流程及协议标准能够轻易的让使用者对ZigBee装置及网络进行布建、设定与维护,也期望每个CP能够兼容并且易于进行沟通。关于Commissioning Procedure的描述将在后面再来详细讨论。
Commissioning Workflow
每一个CP的工作步骤,有其标准的流程顺序,这样的工作流程便是Commissioning Workflow,用来将一堆刚出厂的ZigBee装置组成实际的网络,流程如下图:
工作流程中分成4个阶段,依序为System Planning、Activating Devices、Binding Devices及Application Configuration,装置经过这四个阶段的设定,重新起动后,便能形成实际使用的ZigBee网络。四个阶段分述如下:
1. System Planning:针对预定要安装网络的环境进行分析,决定适合布建的位置,可由建筑师、工程师、该区域的拥有者来进行。
2. Activating Devices:由安装者来设定ZigBee装置的参数,包含装置种类、使用频道、PANId、网络拓墣及保全验证等参数,并验证装置启动成功与否。
3. Binding Devices:每个ZigBee装置本身都会提供诸多不同的服务,在装置启动后,安装者要设定装置的关系,将相关的服务配对起来。如:灯光明灭服务配合开关服务。
4. Application Configuration(这一点目前并不在ZCF):配对程序结束后,系统整合商就可以对这些装置所提供的服务,进行适当的设定以符合使用者的需求。如:在家中安装警报装置,设定警报装置回报的频率或是警笛声音的大小。
在文中所提到的“安装者”,可以是专业的布建人员、系统整合商、工程师或个人。
Commissioning Procedure简介
Commissioning Procedure是以一连串步骤用来设定ZigBee装置及其网络的程序。一般来说安装装置的步骤包括启动装置、设定参数、储存设定、重新开机、读取设定,最后形成需要的网络。在CTTG中定义Commissioning Procedure包含两种网络形态:Commissioning Network及Operating Network,并且用重新开机的步骤来切换两种网络。相对关系请看图2:
ZigBee装置在出厂时,会被配置预设的参数,如频道等相关的参数及提供设定用的指令集。安装装置时,装置会依照预设的参数形成一个独立且专门用来设定用的ZigBee网络,就是Commissioning Network。在这个网络中,安装人员可以根据应用需求透过工具或步骤来对装置进行重新设定,设定的参数包含基本网络参数及应用程序的参数。在Commissioning Procedure中需要设定的参数包含:
(1) 所有的网络参数:包含Channel、PANId、Extended PANId及装置种类,如果需要变更拓扑,则包含MaxChildren、MaxRouters及MaxDepth。
(2) 应用程序的参数:包含Binding Table及应用程序所需要的参数,如传输的频率、休眠的时间等。另外也可能包含处理安装及传输问题的方法及测试指令,但仅限在同一个ZigBee网络中。
另外当安装一个大型网络时,安装者可以根据需求,将网络分成数个小型网络(如图3),并先在每个小型网络中,先解决安装及传输的问题,如此来降低在一整个大型网络中解决问题的难度。由于可能使用不同厂商的装置,故安装者可以透过其它的工具或步骤来设定装置,只要确保装置在重新启动后,能够加入实际操作的网络。
当Commissioning Network内的装置设定完成,经过重新启动的步骤后,就会依据新设定的参数形成实际操作的ZigBee网络,就是Operating Network。在网络中,安装者需要设定尚未设定的应用程序参数及必需要在此网络中设定的应用程序参数,这些参数在装置重新启动后就会被清空。
装置在进入Operating Network时会经过特定的步骤,根据装置种类及彼此的关系,而有不同的步骤,在图4中描述了这些步骤的顺序。
当装置为 Coordinator及Router时,安装者在组建网络的过程中必须要对其进行Permit Join控制,控制的结果,用以决定新加入的装置加入到网络的位置,当新装置加入到网络后,则将Permit Join关闭,避免其它装置加入到这个位置,最后再进行应用程序的设定。所以在 Commissioning Procedure中,如何让装置能顺利且正确的加入Operating Network的方法,则是一个不简单且很重要的议题,而这个议题目前仍持续在ZigBee各工作群组进行讨论,期望未来能达到Zero Configuration的目的。而当装置为End Device时,由于没有Permit Join控制的必要,所以只要注意加入网络的时机即可。
而装置要能正确的加入网络,除了步骤要正确外,也必须要搭配认证的机制,网络里面需要有认证中心(Trust Center)来协助认证装置的合法性,当新装置要求加入网络时,该要求将由被加入的装置向信任中心要求认证,不合法的装置便不能加入网络之中,而认证的依据数据以IEEE Address及认证金钥为主。
Commissioning Cluster 简介
为了让Commissioning Tool能够在所有的ZigBee装置上实现,CTTG根据ZigBee Cluster Library (ZCL)的架构制定了Commissioning Cluster。这个Cluster包含设定及管理ZigBee网络所需的参数、指令及传输格式,并且与ZCL中的 Group Cluster、Senses Cluster、Identity Cluster、Basic Cluster及ZigBee Device Profile (ZDP)中的机制共同对网络进行设定与管理。
Commissioning Cluster是从ZCL的架构产出,所以其架构是跟ZCL一致,均采用主从式架构(Client-Server ),主从式架构中的Server端是指要被控制的装置,能够接受Client端命令,本身亦包含设定及管理ZigBee网络所需的参数,这些参数可以由Client端透过命令来存取及设定。
而Client端则是具备Commissioning Tool功能的装置,透过Commissioning Cluster进行传输,架构如图5。
Commissioning Cluster包含八个Attribute Set,每个Attribute Set本身则有一到多个的Attribute,这些参数将对应到ZigBee Stack内的参数,再透过重新启动指令,完成装置设定及组建网络。下面将一一描述Commissioning Attribute Sets。
Startup Parameters
这个Attribute Set用来设定网络启动参数,设定的参数如下:
网络组建参数
●包含Short Address、Extended PANId、PANId、Channel Mask
系统参数
●Protocol Version:ZigBee 2004、2006 (含之后)
●Stack Profile:ZigBee Stack、Pro Stack
启动方式
●Startup Control:装置启动的根据装置种类及其加入网络方式,分成4种。
●设定装置加入网络,但不透过rejoin程序
●设定装置为PAN Coordinator
●设定装置透过rejoin加入网络
●设定装置透过association加入网络
认证相关参数
●包含Trust Center Address、Master Key、Network Key、Use Insecure Join、Preconfigured Link Key、Network Key SeqNum、Network Key Type。
Join Parameters
这个Attribute Set用来设定装置加入网络的程序。
●Scan Attempts:加入网络时Scan的次数。
●Time Between Scans:每次Scan间隔的秒数。
●Rejoin Interval:每次执行Rejoin的间隔。
●Max Rejoin Interval:每次执行Rejoin的间隔的最大值。
Network Security Parameters
这个Attribute Set用来设定安全机制的参数。
●Security Timeout Period:执行安全程序时等待的秒数(ms)。
End Device Parameters
这个Attribute Set用来设定End Device的应用设定。
●Indirect Poll Rate:设定End Device从睡眠中醒来等待父节点传送数据的频率。
Link Status Parameters
这个Attribute Set用来浏览网络上的装置状态。
●Link Status Period:浏览网络上的装置的间隔,以秒为单位。
●Router Age Limit:浏览网络装置的失败次数。
●Repair Threshold:设定Router启动Route Repair机制的条件。
●Updated Device:纪录装置加入(Joined)或离开(Leaved)网络的信息。
●Updated Device Alarm Mask:决定装置加入或离开网络,是否发出alarm。
Concentrator Parameters
这个Attribute Set用来设定many-to-one网络行为中的集线装置(Concentrator),参数包含Concentrator Flag、Concentrator Radius、Concentrator Discovery Time。
APS Transport Parameters
这个Attribute Set用来设定APS重传机制的参数。
●Max Frame Retries:重传的次数。
●Ack Wait Duration:重传的间隔。
Binding Parameters
这个Attribute Set用来设定Binding机制的参数。
●EndDeviceBindTimeout:装置执行Binding的等待Timeout秒数。
在Commissioning Cluster还有一个重要的指令,就是重新启动。因为在整个程序中,将装置从Commissioning Network切换到Operating Network的重要程序就是将装置重新启动。指令的格式根据ZCL的标准来制定,封包格式如图6。
一个标准的ZCL的封包由标头(ZCL Header)、制造者代号(Manufacturer code)、传输序号(Transaction sequence number)、命令代号(Command identifier)及欲传送的数据所组成,从Header可区分封包是Request还是Response,而ZCL Payload一次是包含数个Attributes,配合ZCL Header的命令代号,可以一次传送一个命令所需要的参数集合。
Commissioning Cluster目前支持的唯一指令为装置重新启动(Device Restart),分为Request及 Response,为了配合Commissioning Procedure的程序,Request的封包内除了上述8大的Attribute Sets外,还有三个参数,格式如图7。
这三个参数,分别是:
●Options:是否要储存设定的参数值。
●Delay:装置收到命令后多少秒,执行重新启动命令,0代表不延迟。
●Jitter:针对延迟进行微调,单位为微秒(μs),从0~2000。
Total Delay Time = Delay Time + Jitter Time
Client端收到Request后,便会回传Response给Server端,传输的内容为之前Request所要修改参数的处理结果,封包格式如图8。
Recommended Practices
在前面提到过,被ZigBee Stack所认可的Commissioning Procedures会被当成给OEM厂商及系统安装者的建议作法(Recommended Practices, RPs),这些作法则能作为安装时的依据。CTTG在接收到ZigBee Stack的同意后,便会依照制定的流程并以标准的格式公布这些建议作法,厂商再利用这些建议作法进行实作,当发现有需要修正或是不足之处时,便会将这些意见回馈给CTTG,不断重复这样的流程,直到Commissioning Procedure能够更确切的符合安装者的需求。
结论
ZigBee联盟制订Commissioning Tool 这套ZigBee网络的布建、安装与管理工具的用意,就是为了能让各类的厂商轻易的安装及管理网络,甚至拓展到个人的使用上,这样的产品才能更贴近使用者的需求。另外,ZigBee的产品已经开始多元化,各家的产品纷纷出笼,彼此不兼容的情形恐怕日益严重,ZigBee联盟当然不愿意见到这样的光景,因此更加速脚步制定新一代ZigBee标准,并在标准中融入Commissioning Tool的功能,希望未来ZigBee的产品都能拥有这种简易安装与管理的特性。笔者认为未来ZigBee若要怀抱更大的市场,势必会朝Zero Configuration的方向发展,相信这样的发展是Commissioning Tool的极致体现。