ZigBee無線傳感器網絡的振動數據采集系統設計
3 軟件設計
EM916x核心板預裝了Win CE實時多任務操作系統,支持包括MFC在內的各種典型的Windows應用程序框架,可以方便地使用Embedded Visual C++開發各種應用程序。CC2430開發套件自帶了完整的ZigBee協議棧,使用IAR集成開發環境對協議棧工程文件進行管理,可以查看并修改整個協議棧的任意層源代碼。因此,軟件設計分為兩部分:Win CE下的應用程序設計和ZigBee協議棧的添加與修改。
3.1 Win CE應用程序設計
應用程序駐留在EM916x核心板中,主要功能是負責打開連接協調器的串口,設置串口通信參數;初始化ZigBee無線網絡,查詢并返回網絡狀況,如是否建立成功、各種節點的狀態及數目等;監視串口接收協調器發來的數據幀;解碼數據幀讀取傳感器數值,并由EM916x核心板的調試串口打印出來。應用程序流程如圖4(a)所示。
3.2 ZigBee協議棧修改
ZigBee協議棧完成了無線網絡初始化的絕大部分功能,代碼修改應謹慎對待。使用IAR集成開發工具打開ZigBee2006協議棧工程,找到ZMain工程目錄。打開后可以看到這是協議棧的主函數目錄,包括入口函數和硬件配置文件,在這里便可以添加自定的應用函數。
無線網絡中三種節點的功能各不相同。協調器負責初始化無線網絡,等待子節點的入網,并接收子節點的數據幀,通過串口發送到主機,程序流程如圖4(b)所示。路由器與終端節點添加的應用函數功能相同,首先搜尋ZigBee網絡,并向網絡中的協調器或路由器申請加入網絡;初始化定時計數器,允許中斷,對振動傳感器的輸入方波進行計數,定時向父節點(即允許其入網的節點)發送計數值,圖4(c)為路由節點和終端節點的程序流程圖。路由器與終端節點只要在下載前選擇編譯即可。
4 系統仿真
仿真軟件使用Lab View編寫,仿真界面如圖5所示。左側用于選擇ZigBee網絡協調器與核心板相連接的串口號、波特率及控制按鈕;右上部顯示的是終端節點采集到的振動數值,包括節點發送數值時間、節點編號、當前發送振動計數值及上一次發送的計數值。右下方為某個終端節點在一定時段內振動計數的波形圖,節點選擇在左下方的“奶牛編號”(原項目名稱)。圖5所顯示的是將傳感器套掛在奶牛脖子上實地采集到的振動數據。
通過現場實驗證明,利用ZigBee無線網絡構建的數據采集系統具有非常好的準確性與實時性,而在擁有多個路由節點的網絡中,ZigBee網絡能夠得到非常大的延伸。通過實驗也發現了一個問題:當終端節點與地面的距離太近,大約小于30 cm時,節點與協調器之間的通信可靠性及通信距離大為降低,越接近地面,可靠通信距離就越短。后期采用的解決辦法是增大無線信號的發射功率,此時通信距離有所改觀,但這并不是一個好辦法,發射功率的增大意味著節點的電池壽命將縮短。
ZigBee是一種新興的短距離、低速率、低功耗無線網絡技術,其應用領域愈來愈廣泛,如數字家庭中的自動抄表系統、室內無線定位及動物遠程監控等。本文中無線振動數據采集系統的傳感器如果設計成諸如自動抄表器、無線定位引擎等,便可應用于各種不同的場合。
評論