基于ZigBee協議棧的無線傳感器網絡的設計
傳感器節點啟動后,開始初始化網絡。在ZDO層調用網絡層的網絡發現函數NLME_NetworkDiscoveryRequest(),嘗試發現是否已經存在的網絡可以加入。當發現協調器所建立的網絡時,傳感器節點的ZDO層會收到網絡發現確認信息。這時,傳感器節點通過調用網絡層的網絡加入請求函數NLME_JionRequest(),向協調器發送加入網絡請求。如果協調器允許其他節點加入網絡,則該傳感器節點會接收到協調器發送來的加入確認信息。這里的網絡發現函數NLME_NetworkDiscoveryRequest()和網絡加入請求函數NLME_JionRequest(),與協調器中所調用的網絡形成函數NLME NetworkFormationReouest()一樣,均為ZigBee協議棧所封裝起來的函數,只能由開發人員編程時調用,不能看到其內部程序。傳感器節點加入網絡的流程如圖3所示。本文引用地址:http://www.104case.com/article/154688.htm
2.3 傳感器節點與協調器的綁定
為了讓傳感器節點與協調器能相互傳送數據,兩者之間必須建立綁定關系。綁定是兩個(或多個)應用設備之間信息傳輸的控制機制,在ZigBee2006及以后的協議棧中,所有的設備都必須執行綁定機制。
協調器通過執行zb_AllowBind()函數,開啟允許綁定功能。在該函數中,可以設置允許綁定的時間,即在某一段時間內,協調器接收其他設備發來的綁定請求,超過這段時間,則關閉該功能。傳感器節點通過執行綁定設備函數zb_BindDevice(),向協調器發送綁定請求。協調器接收到傳感器節點發送來的綁定請求,并進行解析,綁定請求信息中包含了傳感器節點中的端點信息,然后協調器在自身所注冊過的端點中尋找與之相匹配的端點。找到之后,則處理綁定請求信息,并向傳感器節點發送綁定響應信息。傳感器節點接收到綁定響應信息之后,通過調用應用支持子層的綁定請求函數APSME_BindRequest()來建立綁定表,并將向自己的應用層發送綁定確認信息。傳感器節點與協調器建立綁定的流程如圖4所示。
評論