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