ZigBee無線傳感器網(wǎng)絡(luò)在遠程環(huán)境監(jiān)測中的應(yīng)用設(shè)計
3 軟件程序設(shè)計
3.1 無線傳感器網(wǎng)絡(luò)層數(shù)據(jù)幀
傳感器節(jié)點、中心控制節(jié)點之間的數(shù)據(jù)傳輸必須遵循一定的數(shù)據(jù)格式,才能保證傳輸數(shù)據(jù)的正確性和有效性。一種有效的數(shù)據(jù)幀格式對于通信網(wǎng)絡(luò)中數(shù)據(jù)的準確傳輸能起到事半功倍的效果。數(shù)據(jù)幀的定義應(yīng)該滿足兩個條件:一是要具有很好的擴展性,以方便系統(tǒng)擴展其他服務(wù);二是要盡量簡潔,以減少通信網(wǎng)絡(luò)中的數(shù)據(jù)流量,使數(shù)據(jù)通信更通暢。
當傳感器節(jié)點向中心控制節(jié)點發(fā)送數(shù)據(jù)時,必須讓中心控制節(jié)點知道自己上傳數(shù)據(jù)的類型以及自己的設(shè)備特征,這樣,當出現(xiàn)異常時,監(jiān)測網(wǎng)絡(luò)就可以報告出現(xiàn)異常的區(qū)域以及異常的特征??紤]到這個需求,在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)就必須按照網(wǎng)絡(luò)約定的格式進行存儲。圖4所示是無線傳感器網(wǎng)絡(luò)層數(shù)據(jù)幀的格式定義。
其中OXAAH為幀頭,是一個數(shù)據(jù)幀開始的標志;
0XBBH為幀尾,是一個數(shù)據(jù)幀結(jié)束的標志;
校驗和用于表示通過校驗位來檢驗數(shù)據(jù)幀在傳輸過程中是不是發(fā)生了數(shù)據(jù)位的改變,通常從幀類型到數(shù)據(jù)域尾進行加和校驗;
通過幀類型域可以判斷此數(shù)據(jù)幀所攜帶的是哪一種數(shù)據(jù)。為了滿足系統(tǒng)需求,一般可設(shè)置周期采集數(shù)據(jù)和中斷數(shù)據(jù)兩種數(shù)據(jù)類型。其中
“0X01H”表示中斷數(shù)據(jù), “0X02H”表示周期采集數(shù)據(jù)。
利用設(shè)備標識,在無線傳感器網(wǎng)絡(luò)中,傳感器節(jié)點在此域中寫入自己的短地址的低字節(jié)作為自己的標志,上級網(wǎng)絡(luò)根據(jù)這個標志就可以知道是哪個設(shè)備的數(shù)據(jù)。
數(shù)據(jù)域是數(shù)據(jù)幀的主要部分。在無線傳感器網(wǎng)絡(luò)中,數(shù)據(jù)域包括系統(tǒng)定義的幾種參數(shù)測量值(3字節(jié)ASII碼)。在系統(tǒng)定義的數(shù)據(jù)幀格式中,各個參數(shù)的位置是固定不變的,順序依次為溫度值、濕度值、節(jié)點電池電壓值,因此,數(shù)據(jù)域的長度為固定的9字節(jié)。存放測量值的數(shù)據(jù)域每次都在傳感器點采集數(shù)據(jù)前都將民初始化為全0,這樣,如果某個參數(shù)沒有傳遞過來自己的測量值,上級設(shè)備就可以根據(jù)某段數(shù)據(jù)是否為全0來判斷數(shù)據(jù)是否成功采集。
3.2 中心控制節(jié)點程序設(shè)計
中心控制節(jié)點是無線傳感器網(wǎng)絡(luò)與監(jiān)控中心交互的關(guān)鍵部分。它作為無線傳感器網(wǎng)絡(luò)的協(xié)調(diào)器,可建立一個新的ZigBee無線通信網(wǎng)絡(luò),以負責網(wǎng)絡(luò)標識符的選取,并允許加入網(wǎng)絡(luò),實施節(jié)點綁定;接收傳感器節(jié)點的環(huán)境數(shù)據(jù),并進行預(yù)處理;同時,還通過RS232串口將數(shù)據(jù)傳輸?shù)奖O(jiān)控中心進行數(shù)據(jù)分析和處理。因此,中心控制節(jié)點應(yīng)該一直處于活躍的工作狀態(tài),時刻監(jiān)聽無線數(shù)據(jù)和串口數(shù)據(jù),其中心控制節(jié)點的設(shè)計流程如圖5所示。
中心控制節(jié)點在無線傳感器網(wǎng)絡(luò)中充當著協(xié)調(diào)器的角色,它應(yīng)該具有建立一個新的網(wǎng)絡(luò)并允許其他節(jié)點加入的能力;同時,中心控制節(jié)點還要實現(xiàn)無線傳感器網(wǎng)絡(luò)和監(jiān)控中心計算機的數(shù)據(jù)通信功能。中心控制節(jié)點工作時,首先用電源開關(guān)S1啟動監(jiān)測站網(wǎng)關(guān),以開始建立一個新的網(wǎng)絡(luò)過程,并進行串口初始化。監(jiān)測站網(wǎng)關(guān)的應(yīng)用程序應(yīng)通過應(yīng)用層接口與協(xié)議棧連接,從而建立網(wǎng)絡(luò)、允許加入網(wǎng)絡(luò)和綁定等,而且這些工作應(yīng)在協(xié)議棧內(nèi)自動完成。
評論