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