基于ZigBee協議棧的無線傳感器網絡的設計
2 系統軟件設計
TI公司推出的ZigBee協議棧是基于優先級的輪轉查詢式操作系統,它是由稱為層的模塊組成,每一層為其上一層提供特定的服務。Zig Bee協議棧為各個層均分配的不同的任務編號,每一個任務中又包含若干個事件。對于開發者來說,一般只需關注應用層函數的設計即可。當然,若果硬件電路不同,則其硬件抽象層函數也是不同的。文中所采用的硬件電路為無線龍公司生產的CC2430無線通信模塊,共包括4個傳感器節點和一個協調器。每個傳感器節點為一個CC2430基本模塊和一個電池板;協調器模塊為一個CC2430基本模塊和一個擴展板,擴展板上帶有RS232串口,可用于和PC機進行通信。
2.1 協調器啟動及建立網絡
無線傳感網絡的建立是由網絡協調器來完成的。協調器節點啟動之后,首先完成系統的初始化,然后進入操作系統。在系統的初始化中,包括初始化系統時鐘、檢測芯片電壓、中斷系統、flash存儲器等,其中比較重要的是初始化端口描述符。兩個物理無線收發模塊的通信是通過兩個設備中編號相同的端點來實現的,這要求協調器所初始化的端點屬性要與在傳感器節點中所初始化的端點屬性相匹配。
進入操作系統以后,首先進入的是應用層任務函數,因為在應用中設置了進入事件。通過按鍵S1來設置其為協調器,并開始建立網絡。將設備設置為協調器之后,通過zb_StartRequest()函數調用ZDO層初始化設備函數ZDOInitDevice()。在該函數中,通過ZDO層中的網絡初始化函數ZDApp_NetworhInit()設置網絡初始化事件,送給啟動設備函數ZDO_StartDevice()處理。在該函數中,調用了網絡層的網絡形成請求函數NLME_NetworkFormationRequest()來形成網絡。由于ZigBee協議棧是半開源的,因此看不到該函數的內部程序。當ZDO層收到網絡形成確認信息之后,則設置網絡啟動事件,將設備的狀態改為啟動狀態。協調器建立網絡的過程如圖2所示。本文引用地址:http://www.104case.com/article/154688.htm
2.2 傳感器節點啟動及加入網絡
對于傳感器節點來說,啟動后首先要完成的也是設備的初始化。在本實驗中,傳感器節點向協調器發送本身的溫度信息,所以在傳感器節點中所初始化的端口的屬性應為輸出,而協調器中所定義的端口的屬性應為輸入。當初始化之后,進入操作系統執行應用層任務中的進入事件。這里直接將設備設置為傳感器節點。
評論