使用無線網(wǎng)絡(luò)分析器調(diào)試ZigBee協(xié)議系統(tǒng)
摘要: 本文詳細探討了使用無線網(wǎng)絡(luò)分析器調(diào)試ZigBee協(xié)議系統(tǒng)的基本方法,從而便于更好地確保網(wǎng)絡(luò)的可靠性。
關(guān)鍵詞: 無線網(wǎng)絡(luò)分析器;ZigBee;802.15.4
短距離無線網(wǎng)絡(luò)市場正呈爆炸性增長。In-Stat稱,通過ZigBee協(xié)議規(guī)范和其他專有協(xié)議,到2009年IEEE 802.15.4無線個人局域網(wǎng)(PAN)的市場可實現(xiàn)200%的增長,年發(fā)貨量將超過1,5000萬單位。
對于無線設(shè)計人員而言,目前有許多射頻(RF)收發(fā)器和ZigBee協(xié)議棧可用來在應(yīng)用中實現(xiàn)ZigBee協(xié)議功能。無論選擇了哪種收發(fā)器和協(xié)議棧,設(shè)計工程師都應(yīng)該查找能夠幫助他們快速評估和開發(fā)ZigBee協(xié)議應(yīng)用的設(shè)備和工具。若已確定ZigBee協(xié)議的復(fù)雜度,那么設(shè)計人員也需要使用合適的開發(fā)工具來幫助他們設(shè)計和調(diào)試應(yīng)用程序。
有多個無線網(wǎng)絡(luò)分析器或“嗅探器”可供使用。在您首次開始無線開發(fā)時,獲取一個無線網(wǎng)絡(luò)分析器是一項關(guān)鍵性投資,可為您免去許多麻煩。有些分析器具有圖形界面,而有些分析器則具有更為基于文本的界面。請確保選擇的分析器具有易于閱讀的界面。在以下示例中,我們將使用Microchip的ZENA無線網(wǎng)絡(luò)分析器,它采用圖形的格式顯示消息。但是不管您選擇了哪種分析器,能夠快速解密ZigBee協(xié)議消息的密鑰部分將有助于您高效地開發(fā)和調(diào)試系統(tǒng)。
網(wǎng)絡(luò)構(gòu)成
設(shè)備加入 ZigBee協(xié)議網(wǎng)絡(luò)時出現(xiàn)的消息會告訴我們許多關(guān)于網(wǎng)絡(luò)的信息。當設(shè)備試圖加入一個網(wǎng)絡(luò)時,它會發(fā)出一個信標(beacon)請求。鄰近的協(xié)調(diào)器或路由器通過發(fā)出信標作出響應(yīng)。新設(shè)備將選擇一個信標,然后向該設(shè)備發(fā)送一個關(guān)聯(lián)請求,請求加入網(wǎng)絡(luò)。在一段短暫延時后,新設(shè)備發(fā)送一個數(shù)據(jù)請求,請求響應(yīng)。網(wǎng)絡(luò)設(shè)備則發(fā)送一個關(guān)聯(lián)響應(yīng),指示該新設(shè)備是否已被網(wǎng)絡(luò)接受。這些消息顯示如圖1。
圖1 網(wǎng)絡(luò)構(gòu)成(如果您采用了ZENA無線網(wǎng)絡(luò)分析器,那么在設(shè)備加入網(wǎng)絡(luò)時
應(yīng)顯示與此類似的消息。此工具的快照顯示了有關(guān)網(wǎng)絡(luò)狀態(tài)的許多信息)
第一條消息來自于新設(shè)備,用于請求信標。后兩條消息是信標。我們可以從這些信標中知道一些關(guān)于設(shè)備的有用信息。首先,我們可以知道第二條信標來自于協(xié)調(diào)器,因為其源地址為0x0000且信標有效負載中指定的深度為0。第一條信標來自于路由器,因為其源地址非零。我們也可以知道此路由器會通過該協(xié)調(diào)器加入網(wǎng)絡(luò),因為它在同一個網(wǎng)絡(luò)上(源PAN是相同的)且信標有效負載“深度”為1。我們還可以知道在應(yīng)用層,這兩個設(shè)備都將接受新設(shè)備加入網(wǎng)絡(luò),因為超幀規(guī)范“Assoc”位被置1。但是,如果我們查看信標有效負載,我們可以看到協(xié)調(diào)器不能接受任何其他路由器或終端設(shè)備加入網(wǎng)絡(luò),因為“RtrCap”和“DevCap”位均為0。同時,路由器仍然可以接受路由器和終端設(shè)備。
在第四條消息中,新設(shè)備已決定試圖加入網(wǎng)絡(luò)。通過檢查關(guān)聯(lián)請求的目標地址,我們可以知道新設(shè)備正試圖加入哪個網(wǎng)絡(luò)設(shè)備——路由器。關(guān)聯(lián)請求可告訴我們關(guān)于新設(shè)備的許多信息。其關(guān)鍵元素是“Dev”和“RxOn”位。“Dev”位指示設(shè)備正試圖作為終端設(shè)備加入。而且,可以知道此設(shè)備將總是保持其收發(fā)器開啟,因此其父設(shè)備不必為其緩沖消息。 此位對于以后的通信很重要。如果“RxOn”設(shè)置為關(guān)閉,那么其父設(shè)備將認為新設(shè)備保持其收發(fā)器關(guān)閉,它將為新設(shè)備緩沖消息。如果新設(shè)備從未請求消息,那么父設(shè)備也從不會發(fā)送消息給它!
最后,我們可以看到關(guān)聯(lián)請求成功。現(xiàn)在我們在網(wǎng)絡(luò)上有了一個新的FFD (全功能設(shè)備)終端設(shè)備,其短地址為0x1AF9。
應(yīng)答的發(fā)送
ZigBee協(xié)議是一個高度應(yīng)答的協(xié)議。有三個應(yīng)答級別:MAC(介質(zhì)訪問控制)、APS(應(yīng)用子層支持)和AF(應(yīng)用框架)。這不但提高了系統(tǒng)的可靠性,也使我們在發(fā)生問題時能夠識別故障所在。在圖2中,設(shè)備0x0001正告知設(shè)備0x0000來使用應(yīng)答的所有三種級別將屬性設(shè)置為指定值。
圖2 消息應(yīng)答(ZigBee協(xié)議的可靠性大多來自于擴展的應(yīng)答功能。
可使用應(yīng)答的三種級別來對ZigBee協(xié)議網(wǎng)絡(luò)進行故障診斷)
第一條消息是發(fā)送給設(shè)備0x0000、要求設(shè)置屬性的命令。接下來是一條短MAC應(yīng)答,指示接收設(shè)備的收發(fā)器正確接收消息,通常可由收發(fā)器自動生成。ZigBee協(xié)議指定所有消息必須請求MAC應(yīng)答。在第一條消息的APS幀控制字段中,有一個位指示是否請求了APS應(yīng)答。如果該位置1,那么接收方ZigBee協(xié)議棧的APS層將自動生成一條APS應(yīng)答,如第三條消息所示。此應(yīng)答指示目標設(shè)備的協(xié)議棧接收到了消息。APS應(yīng)答還將生成另外一條MAC應(yīng)答,如第四條消息所示。
評論