輕鬆安裝ZigBee網路:Commissioning Tool

本文作者:admin       點擊: 2007-09-12 00:00
前言:
前言
2002年ZigBee聯盟(ZigBee Alliance)成立,該聯盟以感測與控制做為應用的方向,定義簡單、成本低廉、容易實現、支援多種網路架構的無線通訊標準。歷經三年的發展,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裝置組成實際的網路。

工作流程中分成四個階段,依序為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,並且用重新開機的步驟來切換兩種網路。相對關係請看下圖:

圖二、Commissioning Procedure 

(圖片來源:ZigBee Alliance)

ZigBee裝置在出廠時,會被配置預設的參數,如頻道等相關的參數及提供設定用的指令集。安裝裝置時,裝置會依照預設的參數形成一個獨立且專門用來設定用的ZigBee網路,就是Commissioning Network。在這個網路中,安裝人員可以根據應用需求透過工具或步驟來對裝置進行重新設定,設定的參數包含基本網路參數及應用程式的參數。在Commissioning Procedure中需要設定的參數包含:

(1) 所有的網路參數:包含Channel、PANId、Extended PANId及裝置種類,如果需要變更拓墣,則包含MaxChildren、MaxRouters及MaxDepth。
 
(2) 應用程式的參數:包含Binding Table及應用程式所需要的參數,如傳輸的頻率、休眠的時間等。另外也可能包含處理安裝及傳輸問題的方法及測試指令,但僅限在同一個ZigBee網路中。

另外當安裝一個大型網路時,安裝者可以根據需求,將網路分成數個小型網路,並先在每個小型網路中,先解決安裝及傳輸的問題,如此來降低在一整個大型網路中解決問題的難度。由於可能使用不同廠商的裝置,故安裝者可以透過其他的工具或步驟來設定裝置,只要確保裝置在重新啟動後,能夠加入實際操作的網路。

當Commissioning Network內的裝置設定完成,經過重新啟動的步驟後,就會依據新設定的參數形成實際操作的ZigBee網路,就是Operating Network。在網路中,安裝者需要設定尚未設定的應用程式參數及必需要在此網路中設定的應用程式參數,這些參數在裝置重新啟動後就會被清空。

裝置在進入Operating Network時會經過特定的步驟,根據裝置種類及彼此的關係,而有不同的步驟,在圖四中描述了這些步驟的順序。

當裝置為Coordinator及Router時,安裝者在組建網路的過程中必須要對其進行Permit Join控制,控制的結果,用以決定新加入的裝置加入到網路的位置,當新裝置加入到網路後,則將Permit Join關閉,避免其他裝置加入到這個位置,最後再進行應用程式的設定。所以在Commissioning Procedure中,如何讓裝置能順利且正確的加入Operating Network的方法,則是一個不簡單且很重要的議題,而這個議題目前仍持續在ZigBee各工作群組進行討論,期望未來能達到Zero Configuration的目的。而當裝置為End Device時,由於沒有Permit Join控制的必要,所以只要注意加入網路的時機即可。

而裝置要能正確的加入網路,除了步驟要正確外,也必須要搭配認證的機制,網路裡面需要有認證中心(rust Center)協助認證裝置的合法性,當新裝置要求加入網路時,該要求將由被加入的裝置向信任中心要求認證,不合法的裝置便不能加入網路之中,而認證的依據資料以IEEE Address及認證金鑰為主。

Commissioning Cluster簡介
為了讓Commissioning Tool能夠在所有的ZigBee裝置上實現,CTTG根據ZigBee Cluster Library(CL)架構制定了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進行傳輸。

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:裝置啟動的根據裝置種類及其加入網路方式,分成四種。
* 設定裝置加入網路,但不透過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的標準來制定,封包格式。

一個標準的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外,還有三個參數。

這三個參數,分別是:
* Options:是否要儲存設定的參數值。
* Delay:裝置收到命令後多少秒,執行重新啟動命令,0代表不延遲。
* Jitter:針對延遲進行微調,單位為微秒(ms),從0~2000。
※Total Delay Time = Delay Time + Jitter Time

Client端收到Request後,便會回傳Response給Server端,傳輸的內容為之前Request所要修改參數的處理結果。

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的極致體現。

電子郵件:look@compotechasia.com

聯繫電話:886-2-27201789       分機請撥:11