新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于ZigBee協(xié)議棧的無線傳感器網(wǎng)絡(luò)的設(shè)計(jì)

基于ZigBee協(xié)議棧的無線傳感器網(wǎng)絡(luò)的設(shè)計(jì)

作者: 時(shí)間:2012-06-08 來源:網(wǎng)絡(luò) 收藏


2 系統(tǒng)軟件
TI公司推出的棧是優(yōu)先級的輪轉(zhuǎn)查詢式操作系統(tǒng),它是由稱為層的模塊組成,每一層為其上一層提供特定的服務(wù)。Zig Bee棧為各個(gè)層均分配的不同的任務(wù)編號,每一個(gè)任務(wù)中又包含若干個(gè)事件。對于開發(fā)者來說,一般只需關(guān)注應(yīng)用層函數(shù)的即可。當(dāng)然,若果硬件電路不同,則其硬件抽象層函數(shù)也是不同的。文中所采用的硬件電路為龍公司生產(chǎn)的CC2430通信模塊,共包括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)器啟動及建立
傳感的建立是由協(xié)調(diào)器來完成的。協(xié)調(diào)器節(jié)點(diǎn)啟動之后,首先完成系統(tǒng)的初始化,然后進(jìn)入操作系統(tǒng)。在系統(tǒng)的初始化中,包括初始化系統(tǒng)時(shí)鐘、檢測芯片電壓、中斷系統(tǒng)、flash存儲器等,其中比較重要的是初始化端口描述符。兩個(gè)物理無線收發(fā)模塊的通信是通過兩個(gè)設(shè)備中編號相同的端點(diǎn)來實(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)入事件。通過按鍵S1來設(shè)置其為協(xié)調(diào)器,并開始建立網(wǎng)絡(luò)。將設(shè)備設(shè)置為協(xié)調(diào)器之后,通過zb_StartRequest()函數(shù)調(diào)用ZDO層初始化設(shè)備函數(shù)ZDOInitDevice()。在該函數(shù)中,通過ZDO層中的網(wǎng)絡(luò)初始化函數(shù)ZDApp_NetworhInit()設(shè)置網(wǎng)絡(luò)初始化事件,送給啟動設(shè)備函數(shù)ZDO_StartDevice()處理。在該函數(shù)中,調(diào)用了網(wǎng)絡(luò)層的網(wǎng)絡(luò)形成請求函數(shù)NLME_NetworkFormationRequest()來形成網(wǎng)絡(luò)。由于棧是半開源的,因此看不到該函數(shù)的內(nèi)部程序。當(dāng)ZDO層收到網(wǎng)絡(luò)形成確認(rèn)信息之后,則設(shè)置網(wǎng)絡(luò)啟動事件,將設(shè)備的狀態(tài)改為啟動狀態(tài)。協(xié)調(diào)器建立網(wǎng)絡(luò)的過程如圖2所示。

本文引用地址:http://butianyuan.cn/article/154688.htm

b.JPG


2.2 傳感器節(jié)點(diǎn)啟動及加入網(wǎng)絡(luò)
對于傳感器節(jié)點(diǎn)來說,啟動后首先要完成的也是設(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)。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉