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