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