基于MSP430F149與Si4432的無線傳感器網絡的實現
4 系統軟件設計
本文引用地址:http://www.104case.com/article/161572.htm本系統軟件設計注重低功耗、數據采集實時性、系統穩健性及可靠性, 在低功耗設計中采用智能控制策略, 讓系統需要工作時處于全速工作模式, 其他時刻處于低功耗模式。數據采集實時性設計中關鍵是路由選擇, 主要依據是跳數最少路徑最短原則( 兼顧能量優先原則)。系統穩健性設計部分, 當傳感器節點因能量耗盡或其他原因不能工作或者有新的傳感器節點請求加入網絡時, 整個網絡會馬上重新組網, 形成新的網絡拓撲結構。在系統可靠性設計中采用看門狗等技術增強系統抗干擾能力。系統軟件框圖如圖4 所示。
圖4 系統軟件結構
4.1 基站軟件
基站節點通過上位機USB 供電所以一直工作在全速狀態, 加快了對外部的響應速度。上電初始化后, 根據中斷程序中的標志位值對獲得的信息進行相應處理, 處理完后把標志位置零, 循環執行此操作。基站節點通過串口與上位機相連; 因此外部事件包括串口中斷事件和接收到數據中斷事件。
為了防止串口通信過程中丟失數據, 軟件設計上加了握手協議。當基站節點每發送一個數據包給上位機時, 上位機都會向基站節點發送應答信號, 直到數據包發送給上位機。上位機接收到數據包后, 馬上進入中斷處理, 處理完后把相應標志位置1, 通過主程序做進一步處理。
4.2 傳感器節點軟件
傳感器節點主程序主要是實現組網, 當節點上電初始化后設定發射功率為最小,請求入網。如果入網不成功則加大發射功率,繼續請求入網。經試驗證實,發射功率越小,電池的使用壽命就越長。入網成功后,保存入網信息, 并馬上進入低功耗狀態, 同時使用兩個中斷, 一個外部接收數據中斷,一個定時器采集中斷。程序流程圖分別如圖5、圖6 所示。數據發送放在定時中斷程序里完成。
圖5 接收數據中斷
圖6 串口中斷流程
當多個傳感器節點同時發送數據時, 則會出現掙搶信道的現象。為了避免多個傳感器節點同時與某個傳感器節點通信造成數據丟失, 軟件上采用一定的退避機制。一方面, 利用射頻芯片Si4432 的載波偵聽信號來產生隨機延時, 以避免同時發送信號; 另一方面, 當一個傳感器節點與某個傳感器節點建立了通信通道時, 其他發送數據的節點會增加發射數據的次數。
4.3 上位機軟件
上位機主要功能有發送重組網命令、向任意傳感器節點發送采集信息命令、建立良好的人機界面用于觀察傳感器采集來的信息、幫助基站節點處理數據減輕基站的負擔等。人機界面采用Visual Basic(VB) 來設計, 利用VB 的MSComm 控件實現上、下位機的串口通信。利用其他控件實現對無線傳感器網絡的分析、顯示和操作, 在此不再詳細說明。
Si4432 的緩沖寄存器為64 KB, 一次性可發送接收信息量可多達62 KB。基站節點通過串口跟上位機相連, 在上位機建立良好的人機界面可以觀察每個傳感器采集來的信息, 并且可以控制每個節點的工作狀態。本系統已在實際中成功應用。
評論