趙翊杰, 董增壽, 楊 勇
(太原科技大學 智能網新技術研究所,山西 太原 030024)
據不完全統計,在所有機械設備故障中,起重機械故障占比高達20 %[1],是特種設備中事故發生率最高的一種,因此,加強對塔機工況數據的實時采集,對實現安全監控,減少事故的發生有著重大的意義。目前,有多種方法可以實現對塔機的安全監控:采用數據總線的方式進行數據傳輸[2],但布線復雜;采用通用分組無線業務(general packet radio service,GPRS)進行通信[3],但功耗和成本高;利用單片機進行數據處理[4],當數據量很大時會出現延時。
本文在已有研究的基礎上,結合ARM—STM32平臺,設計了基于ZigBee無線傳感器網絡的監控方案,即由安裝在塔機各個關鍵部位的傳感器對塔機的工況數據進行實時的采集,由單片機進行數據處理,通過ZigBee網絡將數據發送至協調器端,在ARM終端進行存儲和顯示。該系統具有實時監控、數據存儲、人機界面交互等功能,能及時有效地監控塔機的工作情況。
如圖1,基于ZigBee的塔機數據采集系統主要分三部分:采集端、協調器和ARM監控端。采用的傳感器類型為稱重傳感器、起升高度傳感器、回轉角度傳感器以及風速傳感器。數據經過采集模塊處理后由ZigBee模塊的射頻發送器發送。協調器是各個終端節點的匯聚點[5],將各節點采集到的信息通過UART口傳送給ARM端,ARM監控端將數據的存儲以及通過界面將各工況參數顯示出來。

圖1 數據采集系統整體結構
數據采集模塊由數據采集單元、信號處理單元以及數據發送單元組成,其硬件結構如圖2所示。數據采集單元主要為采集塔機工作參數的各類型傳感器;信號處理單元主要將采集到的信號進行A/D轉換,數據臨時存儲和任務調度[6];數據發送單元主要負責加入ZigBee網絡,將數據緩沖、加密發送給協調器。

圖2 數據采集終端結構
本文ZigBee[7]節點采用的芯片為德州儀器(TI)公司生產的CC2530F256芯片能夠以非常低的成本建立強大的網絡節點[8],完全滿足本系統設計對于ZigBee的要求。
本文選用意法半導體公司生產的STM32F103芯片[9]作為主控制器,能夠很好地滿足嵌入式領域對高性能、低功耗、實時性的要求。系統中,數據通過ZigBee協調器進行接收,協調器通過UART串口與ARM板進行連接,ARM上的LCD顯示屏實時顯示采集的工況參數,同時將數據存儲到SD卡中。監控終端的總體結構如圖3所示。

圖3 終端總體結構
ZigBee與ARM板連接時,協調器上的CC2530的P0口配置為外設I/O模式,P0口的2~5引腳分別映射為UART模式下的RX,TX腳,并分別連接ARM板子上UART1口的TXD,RXD引腳。UART 通信參數設定[10]為比特率為115 200 bit/s,數據位為8 bit,停止位為1 bit, 校驗位為無,硬件流控制為無。
ZigBee工作時會受到工作在該頻段的其他設備的干擾,其中,WiFi是最主要的干擾源。因此,在ZigBee工作過程中主要考慮如何避免或者減少WiFi的干擾。本文提出了一種基于多信道檢測干擾規避(multi-channel detection interference avoidance,MDIA)算法,該算法首先通過誤碼率(bit error rate,BER)和丟包率(packet loss rate,PLR)來判斷ZigBee網絡受到干擾的程度,設定門限值,當超過這個值時,系統會進行多信道的檢測,直到找到合適的信道為止。
針對ZigBee設備在工作中面臨的干擾問題,本文研究了原有的載波監聽多路訪問/沖突規避(carrier sense multiple access/contention avoidance,CSMA/CA)機制,并在此基礎上提出MDIA算法。圖4為MDIA算法流程。系統首先會判斷關鍵節點的BER值,如果值過高導致節點無法正常通信,此時設備會檢查數據包的丟包率,然后根據結果決定是否開啟鏈路質量檢測,若鏈路質量不佳,則對信道進行進一步掃描,根據接收信號強度指示(received signal strength indication,RSSI)的平均值來判斷設備是否正受到電磁干擾。

圖4 干擾檢測流程
通過研究對比ZigBee和WiFi子信道分布如圖5,可以看到,802.15.4下的ZigBee設備可以使用的信道為11~26共16個信道,每個子信道的帶寬為5 MHz,同時,WiFi工作在1,6,113個子信道,每個子信道帶寬為22 MHz。可以看到,一個WiFi信道與4個ZigBee信道重疊[11],因此,工作在這12個子信道內的ZigBee設備最容易受到WiFi干擾,丟包率也最為嚴重。但ZigBee子信道上的15,20,25和26信道,卻并沒有WiFi子信道分布,即這4個ZigBee子信道上的WiFi信號能量將會很弱,受到的干擾也較小[12]。如果ZigBee在檢測到干擾之后能夠優先檢測受WiFi影響最小的15,20,25,26信道,如果這4個信道不滿足條件再掃描其他信道,不但可以快速找到合適的信道,同時降低了干擾的影響。

圖5 WiFi與ZigBee子信道分布
對于剩余的信道,MDIA算法采用的是“左右輪詢”的方式,ZigBee的信道為11~26,除去第一步中優先檢測的15,20,25,264個信道,然后將信道11,26相連接,使得剩余的12個信道形成循環。算法會首先檢測當前信道左側的信道,若PLR的值低于門限值,則說明該信道可用,此時系統跳轉到該信道繼續工作。反之,算法會檢測當前信道右側的信道。算法檢測的原則為由近及遠,成對進行。系統的跳頻掃描在這個環上進行。假設當前系統使用的是信道13,當發生電磁干擾時,算法會首先掃描信道12,然后掃描信道14,如果信道都不可用,系統會緊接著掃描11,16信道(信道15在第一步中被優先掃描),假設此時還沒有合適的信道,系統就會檢測信道11左側的信道24,然后右側為信道17,以此類推,最后整個信道的檢測順序為:12,14;11,16;24,17;23,18;22,19;21。和傳統依次遞增檢測的方式相比,“左右輪詢”法能夠讓系統更快找到WiFi信號干擾較弱的頻段,從而可以快速轉換信道,提升系統性能。
在前文分析的基礎上,本文構建了系統模型,如圖6所示,采用MATLAB/Simulink搭建,模擬了1路ZigBee信號,默認信道為13,模擬了2路WiFi干擾信號,占用信道1和信道6,兩者信源都是由伯努利(Bernouli)信號發生器隨機產生。本文中算法主要通過MATLAB代碼實現,并通過代碼控制Simulink模型得出相應的結果。

圖6 系統模型
圖7所示為誤碼率的仿真結果,設定干擾時間開始于0.2 s,結束于0.7 s,ZigBee數據包的個數為2 048,每個數據包的大小為1 024 bit。通過圖中的對比可以看出,在初始的0.2 s內,由于沒有受到干擾,系統均可以正常運行。0.2 s出現干擾時,沒有MDIA算法的設備誤碼率迅速上升到接近為100 %,表明此時系統已經無法正常工作。而采用改進算法MDIA的設備,在受到干擾的0.1 s內,誤碼率會有上升,達到門限值之后,設備檢測到干擾并開始進行信道選擇,之后從0.3 s開始,誤碼率再次降到正常水平,表明此時設備已經找到合適的信道并實現轉換,繼續正常工作。

圖7 PLR分析
圖8所示為有無MDIA算法的設備在受到干擾時數據吞吐量的對比結果,干擾時間設為0.2~0.7 s??梢钥闯?,在WiFi干擾下,沒有MDIA算法的的設備吞吐量幾乎為0 kbps,此時設備已經不能正常工作。而采用MDIA算法的設備先進行干擾的檢測和信道的轉換,因而在一開始吞吐量也幾乎為0 kbps,在跳轉到新的信道之后,設備吞吐量回歸正常值。

圖8 吞吐量分析
本文根據塔機安全監控的需要,設計了一種基于ZigBee的數據采集系統。針對ZigBee設備在工作中面臨的WiFi干擾的問題,本文研究了原有的CSMA/CA算法,并在此基礎上,提出了MDIA算法。該系統具有組網方便、抗干擾能力強、成本低、功耗小的特點,具有重要的實際意義和一定的運用推廣價值。