面向環境監測的無線傳感器網絡節點的軟件設計
數據中轉器通過串口向匯聚節點發送的休眠設置命令的數據幀格式如表1所列。

Sleeping_Time表示節點要休眠的時間;Collecting_Time表示節點在休眠過程中的采集時間間隔;Current_Time是當前的校準時間;Sensor_Flag表示傳感器開關的標志。休眠過程中到達采集時刻,進行環境數據的采集、采樣和存儲。向采集節點發送當前的校準時間,保證節點采集時刻精確和時間的同步。同時,傳感器的開關標志位可以控制打開或關閉哪幾路傳感器,采集用戶感興趣的環境數據。到達休眠時刻,節點醒來,連接網絡。
3.5充 電
為保證鎳氫電池對節點長期供電,節點硬件電路設計了1個充電控制電路對其進行充電管理。CC2430專門提供1個I/O口對供電電壓進行A/D采樣。當供電的電源電壓不足時(即低于設定的值),在軟件上會通過切換先讓另一組電源對節點進行供電,再打開太陽能的充電電路對電源充電。節點在通信和采集數據時功耗很大,因此在每一次通信和采集數據完成之后都會檢測當前供電電壓值和當前的充電電壓值,根據2個電壓值決定要不要進行電源切換、是否對電源進行供電以及充電是否完成。
3.6 異常處理
網絡中節點在工作時可能出現一些異常,因此要對這些異常作糾錯處理,以保證節點的正常工作。
(1)新加入節點的異步
在全網節點處于休眠狀態時,若有新的節點加入網絡,為保證其網絡狀態和其他節點同步,新加入的節點在搜索不到網絡時會按照默認的休眠設置進行休眠。休眠醒來繼續搜索網絡。以此循環直到搜索到網絡。
(2)數據出錯
數據中轉器通過串口獲得的數據都要進行校驗處理,若校驗出錯,則拋棄該數據包,命令匯聚節點重發數據。
(3)無應答
匯聚節點對某一采集節點發送上傳數據的請求命令,若該節點在規定時間內沒有作出響應,匯聚節點會默認該節點被拋棄,它將向下一個節點發送上傳數據的請求。
(4)無確認
匯聚節點收到采集節點的數據后都會向該節點發送一個確認的消息,表示數據已經收到。而采集節點會根據有沒有接收到確認消息決定數據要不要重發。
結 語
無線傳感器網絡節點的軟件設計很大程度上決定了整個系統的穩定性和長久性。任務調度機制和異常處理決定系統在工作時處于穩定的狀態,而節點的充電管理系統保證了節點長期工作的能源供應。系統可以按照用戶需要,在野外大量、準確地采集數據。本設計可用于在無人值守情況下長期監測某一區域的環境信息,有著廣闊的應用前景。
評論