在各式新興應用的帶動下,近期短距無線網路發展頗受矚目。不過,相關業者除了戮力研發射頻晶片、感測器與微控制器之外,無線網路分析儀由於可以順利破除協定複雜度的迷霧,為設計人員找到正確的道路,因此也成為業界值得關注的方向之一。
近年來,短距無線網路市場呈現爆炸性成長,如市調機構In-Stat就表示,在ZigBee和其他專屬協定帶動下,2009年IEEE 802.15.4之無線個人區域網路(PAN)將可實現巨幅成長,年底出貨單位將突破一億五千萬大關。
對於無線應用設計人員而言,目前有許多射頻(RF)收發器和ZigBee協定堆疊可協助在應用中實現ZigBee協定功能。無論選擇何種收發器和協定堆疊,設計工程人員都應致力於尋找能夠快速評估和開發ZigBee協定應用的設備和工具;更由於ZigBee協定的複雜度,設計人員須要使用適合的開發工具幫助設計及除錯。
在開始進行無線應用開發時,無線網路分析儀(Sniffer)將是一項必要投資。有些分析儀具備圖形介面、有些則提供文字,但不論哪種,分析儀都應具備容易理解的介面。以下將採用微芯(Microchip)具備圖形介面的ZENA無線網路分析儀為例,為讀者介紹ZigBee協定的關鍵解碼,以協助設計人員有效開發並為系統除錯。
裝置訊息透露關鍵資訊 網路組成一目了然
當裝置加入ZigBee協定網路時,通常會出現訊息,顯示關於相關網路的資訊。當裝置嘗試加入網路時,首先會發出信標要求(Beacon Request),鄰近的協調器或路由器也透過發出信標來回應。新裝置將選擇一個信標並發送關聯請求(Association Request),請求加入網路。在短暫延遲後,新裝置又發送一個數據請求(Data Request)請求回應。網路設備則發送一個關聯請求幀(Association Response),回應該裝置是否已被網路接受。這些訊息如圖1。
|
圖1 新裝置加入ZigBee網路時出現的信標 |
通常第一則訊息為新裝置發出的信標要求;後兩則訊息是信標。從這些信標中可以知道更進一步的資訊:首先可以看出第二則信標來自協調器,因為其來源位址(Source Address)為0×0000,且信標負載內容(Beacon Payload)中指定的深度為0;也可由此推論,第一則信標來自路由器,因為其來源位址並非零。此外,也可以知道該路由器透過協調器加入網路,因為路由器和協調器在同一網路上(來源PAN相同),且信標負載內容「深度(Depth)」為1。
值得一提的是,因為超碼訊框欄位(Superframe Specification)的Assoc顯示為Y,因此從上述訊息中可以知道,在應用層這兩個裝置都將接受新裝置加入網路。但是,如果再仔細查看信標負載內容,可以發現協調器無法接受其他路由器或終端設備加入網路,因為RtrCap和DevCap欄位均為0(顯示為N);但在此同時,路由器仍可接受其他路由器和終端設備。
第四則訊息顯示,新裝置嘗試加入網路。透過檢查關聯請求的目標位址,可以知道新裝置正試圖加入的網路設備,也就是路由器。關聯請求包含關於新裝置的許多資訊,重點是觀察Dev和R×On欄位。Dev欄位表示裝置正試圖做為終端裝置加入網路;而且,可以知道該裝置的收發器保持開啟狀態,因此其本體不必為其緩衝訊息。
R×On欄位對於之後的通訊很重要。如果R×On 顯示為Off,本體將假定該裝置的收發器保持關閉,並為新裝置緩衝訊息。如果新裝置沒有主動要求訊息,那麼本體也不會協助傳遞訊息。
最後觀察最下方的訊息,可以發現關聯請求的狀態顯示成功;表示一個新的全功能終端裝置已經加入網路,其位址為0×1AF9。
精確訊息傳送 即時回報系統瓶頸
另外,由於ZigBee屬於高度要求訊息精確傳送的協定,因此具有三個訊息回應層級︰媒體存取控制(Media Access Control, MAC)、應用程式支援子層(Application Sub-support, APS)和應用程式框架(Application Framework, AF),此三層級不但協助提升系統的可靠性,也在發生問題時能夠判斷問題所在。在圖2,裝置0×0001正告知裝置0×0000透過這三種層級分別將屬性設為指定值。
|
圖2 ZigBee協定的可靠性仰賴強大的訊息回應功能,而藉訊息回應的三種層級可對ZigBee協定網路進行疑難排解。 |
第一則訊息是發送給裝置0×0000、要求設定屬性的指令。接下來是一則簡短MAC回應,表示接收裝置的收發器正確接收了指令。這些訊息通常由收發器自動產生,ZigBee協定規範了所有訊息皆須通過MAC回應。
在第一則訊息的APS訊框控制(APS Frame-control)欄位中,可以看出是否需要APS回應,若該值為Y,則接收端ZigBee堆疊的APS層將自動產生一則APS回應,如第三則訊息所示。該回應表示目標設備的堆疊接收到訊息,APS回應還將產生另外一則MAC回應,如第四則訊息所示。
觀察並分析第一則訊息中Transaction 1部分,可以看到Cmd顯示SetAck--表示發出Set With Acknowledge指令。這是一則發送到應用層的指令,應用層必須發出Set Response指令回應,如第五則訊息所示(顯示為SetRsp)。該回應表示應用層確實接收了訊息,如果在將屬性設定為請求值的時候發生任何問題,也將發送錯誤代碼表示。AF回應將產生另外一則MAC回應,如第六則訊息所示。此外,AF回應隨要求的APS回應發送,也將生成第七和第八則訊息。
這些層層相疊的回應將會產生極大的資料流量,但也幫助設計人員在訊息流出現問題時能輕易找出問題所在(表1)。
表1 確定ZigBee協定問題之根本原因分析 |
遺失的訊息 |
可能問題 |
1. |
原始命令 |
來源裝置不在網路中
來源裝置的堆疊超出其處理能力
來源裝置收發器的發送問題
如果目標裝置為來源裝置的子設備,而該子設備的收發器在閒置時關閉,子設備將不能進行訊息請求
來源裝置和分析儀在不同的通道操作
|
2. |
MAC回應 |
使用了錯誤的目標PAN ID或位址
目標裝置不在範圍內
目標裝置沒電
目標裝置上的射頻干擾收發器溢位 |
3. |
APS回應 |
目標裝置堆疊超出其處理能力 |
4. |
MAC回應 |
與2. MAC回應同 |
5. |
AF回應 |
應用程式沒有回應功能
指令出錯,而應用程式未能完成錯誤處理;例如,不正確的端點以及無效的屬性ID、資料類型或值 |
6. |
MAC回應 |
與2. MAC回應同 |
7. |
APS回應 |
與3. APS回應同 |
8. |
MAC回應 |
與2. MAC回應同 |
拓撲問題難解 無線網路分析儀適時伸援手
當無線網路系統被成功開發之後,無線網路分析儀即可協助進行安裝和拓撲分析。目前有部分無線網路分析儀能夠圖形化表示訊息傳遞的方式和方向:裝置以圓形節點表示,而訊息則以連接到節點的線表示。此外,如果同時提供載明實體布局的點陣圖,拓撲問題將更清楚。
以包含四個裝置、一個協調器、兩個路由器和一個FFD終端裝置的網路為例,儘管所有裝置都是全功能裝置,但還是可以從封包分析中看出,FFD終端裝置和任一路由器之間的訊息是透過另一路由器發送的。這可以從打開網路設定視窗(Network Configuration Display)讀取點陣圖後了解。
圖3為網路設定視窗,顯示其中的網路流量發生問題。從圖3可以看出,有兩個設備彼此不在對方的射頻範圍內,很有可能是建物造成的干擾。訊息必須透過另一個裝置才能到達其目標設備。因此,儘管這種情況有些令人擔心,還是可以掌握系統的運作。
|
圖3 無線網路分析儀的網路設定視窗顯示了網路流向,說明兩個裝置不在對方的射頻範圍內;也代表了訊息必須透過其他裝置傳送到其目標設備。 |
值得注意的是,一個分析儀無法兼顧網路上所有節點;因此為了掌握整體網路流量,仍需要來自不同位置的訊息來源,或者使用位於不同位置的多個分析儀。
總結來說,雖然ZigBee協定較其他無線協定簡單,但是仍須使用正確的工具才能有效開發應用。從確認正在發送正確的資料值到理解網路行為(Network Behavior),無線網路分析儀仍是協助進行無線網路開發的基本工具。
(本文作者為微芯高階微控制器架構部門首席應用工程師)
參考資料 |
‧ZigBee Protocol Specification,http://www.zigbee.org
‧PICDEM Z Demonstration Kit User's Guide(DS51524) http://www.microchip.com/zigbee
‧IEEE 802.15.4 Specification,http://www.ieee.org
‧ZENA Wireless Network Analyzer User's Guide(DS51506) http://www.microchip.com/zigbee |