鄭秋晨,吳銀川
(西安石油大學 陜西省油氣井測控技術重點實驗室,陜西西安,710065)
振動是各種機械系統工作過程中經常發生的現象,振動信號可以反映系統的工作狀態以及系統的健康水平[1~2],發現系統故障以及時處理。在儀器機械設備工作過程中,對振動信號進行實時的檢測和分析對提高系統的生產力和安全維護都十分重要。
振動信號相關的物理量包括加速度、速度和位移等,由于測量加速度具有方便、經濟的優勢,工程上通常通過測量加速度測量振動信號[3~4]。目前常用的加速度傳感器有壓電式、壓阻式和電容式[5]。壓電式加速度傳感器和壓阻式加速度傳感器都屬于慣性式傳感器,慣性式加速度傳感器電路復雜且成本較高,而電容式加速度傳感器具備高阻抗、小功率、結構簡單、穩定性好、可以實現非接觸性測量等優點[6~7]。本設計選擇的MEMS 三軸加速度傳感器ADXL345 是電容式加速度傳感器,同時,ADXL345 采用了MEMS 工藝,還具備體積小、精度高、性能穩定、使用方便等優點[8]。
本文基于MEMS 傳感技術,設計了一種針對微弱振動信號的檢測與處理系統。闡述了系統實現微弱振動信號檢測的原理,介紹了系統的硬件設計和軟件設計,測試并分析了在全分辨率模式下的微弱振動信號的檢測結果,基于上位機檢測結果,總結并分析了系統的性能和可擴展性。
整個系統由MEMS 傳感器模塊,單片機模塊,串口/USB 通信模塊,上位機,系統電源模塊構成,其結構框圖如圖1 所示。其中單片機是整個系統的核心,單片機一方面接收上位機的命令實現MEMS 數據控制,另一方面將接收來自MEMS 傳感器的振動數據上傳至上位機;MEMS 傳感器一方面通過SPI 數字接口接收單片機的指令,另一方面根據上位機的指令配置寄存器進行振動數據測量;上位機通過串口/USB 通信模塊實現對MEMS 傳感器的在線參數配置、命令下發、振動數據接收以及波形繪制等功能;系統電源模塊分別對串口/USB 通信電路、單片機、MEMS 傳感器提供+5V、+3.3V、+3.3V 的電源進行供電。

圖1 系統結構框圖
MEMS 傳感器模塊使用ADXL345,該傳感器分辨率高,加速度測量范圍有±2g,±4g,±8g,±16g。傳感器內部集成A/D 轉換電路和數字濾波器,模擬量轉換為數字量后進行數字濾波存儲在FIFO 中,輸出數據為16 位二進制補碼格式,可通過的標準SPI 數字接口和外部設備通信。傳感器設有多種功能寄存器,數據以十六進制形式存儲,通過讀寫寄存器內的存儲值對系統的功能參數進行調整。傳感器采樣速度在6.25~3200Hz 之間可調,低采樣速率可以降低噪聲干擾,本設計將采樣速度設定在100Hz。
本系統中單片機模塊使用STM32F407,利用四線SPI實現單片機和MEMS 傳感器的全雙工數據通信,系統中配置單片機為主設備,配置ADXL345 為從設備。MEMS 傳感器的接口設計如圖2 所示,其中SCLK 為主設備提供的時鐘,/CS 為主設備提供的選擇的使能信號,MISO 為主設備輸入從設備輸出數據,MOSI 為主設備輸出從設備輸入數據,INT1 引腳會向單片機提供中斷信號。當/CS 為低電平時,主從設備之間才能進行全雙工通信。

圖2 MEMS 傳感器接口設計
數據通信模塊通過串口/USB 實現加速度數據測量和采集系統與計算機的通信,將單片機存儲器內采集的振動數據讀取到計算機中[9]。如圖3 所示,系統使用異步串口UART連接標準,計算機通過CH340 芯片進行USB 轉串口,與單片機的串口相連,實現數據通信,三者之間的數據通信速率統一配置為115200bps。

圖3 串口轉USB 接口設計
本系統軟件設計主要分為下位機軟件設計和上位機軟件設計。下位機使用C 語言編程,主要圍繞振動數據的測量和采集功能進行設計,上位機使用軟件Visual studio 進行C#語言編程,主要對MEMS 數據接收、MEMS 命令下發、振動數據處理、波形繪制等功能進行設計。
系統軟件總體流程如圖4 所示。首先系統上電后進行下位機的初始化,包括單片機初始化和MEMS 傳感器初始化;初始化完成之后單片機通過串口與上位機建立通信,上位機在檢測到串口打開后成功與下位機建立連接,此時上位機界面不會接收振動數據;接著上位機下發數據采集指令,單片機接收到指令后上傳振動數據,上位機界面才會出現振動數據和波形;最后通過上位機對數據和波形做進一步處理。

圖4 系統軟件總體流程圖
3.2.1 主程序流程設計
單片機的一次上傳數據的主程序流程如圖5 所示。單片機上電后首先完成單片機和ADXL345 的初始化,當 MEMS 數據在FIFO 中更新完成時,讀取中斷標志位,INT1 會產生一個下降沿的中斷,此時單片機會讀取MEMS 數據并發出指令將FIFO 數據清除等待下一次數據的更新,接著等待上位機發送采集指令,單片機接收到指令后開始上傳數據。

圖5 單片機主程序流程圖
3.2.2 SPI 接口程序設計
單片機通過SPI 接口讀寫MEMS 數據的基本流程如圖6 和圖7 所示。當/CS 拉低時單片機和傳感器的通信開始,接著單片機通過狀態寄存器來判斷緩沖區是否有數據,等待緩沖區沒有數據時執行讀、寫操作,讀、寫操作同時進行,向寄存器寫入數據的同時會接收到數據,當/CS 拉高時,通信結束。

圖6 寫MEMS 配置流程圖

圖7 讀MEMS 數據流程圖
3.3.1 軟件界面設計
本文主要使用C#語言在Windows 系統下配合Visual Studio 開發環境,開發Winform 桌面應用程序,實現微弱振動信號檢測系統軟件部分的開發[10]。上位機軟件界面設計框圖如圖8 所示。根據系統所需要的功能將軟件界面的區域劃分為串口配置區域、參數配置區域、數據接收區域以及波形繪制區域等。
3.3.2 軟件流程與功能設計
上位機軟件流程如圖9 所示。首先通過上位機打開串口,打開成功后和下位機建立聯系,接著上位機下發數據采集指令進行數據接收,最終顯示振動數據和振動波形。同時,軟件還可以實現數據保存、數據回放、圖像縮放等功能。

圖9 上位機軟件流程圖
根據系統硬件設計完成硬件平臺的搭建,打開Visual studio 繪制的軟件界面,硬件平臺與上位機軟件連通成功后進行測試。令三軸加速度分別為ax、ay、az,則合成加速度,同時繪制出合成加速度波形。打開串口后在下拉框中選擇系統的感應加速度范圍為±2g,系統的測試結果如圖10 所示。

圖10 系統測試結果
圖10 中,數據接收框從左至右依次是x 軸、y 軸、z 軸加速度值,在21 時14 分06 秒時,系統檢測到z 軸振動的負方向最大值1.9968g,其峰值接近2g,表明系統可以檢測到±2g 范圍內三個軸的振動信號,并且此時系統的感應精度為3.9mg/LSB,在21 時13 分39 秒時,系統檢測到x 軸振動負方向的最小值為0.0039g。傳感器的量程為-2g~+2g,輸出數據位數為10 位,2 的10 次方共1024個LSB。感應精度的計算過程如式(1)所示:
此時系統對微弱振動信號的檢測能力最強,接收靈敏度最高。在實際應用中,可以對機械設備的振動狀況進行多次測試,來配置合適的加速度感應范圍,從而達到不同級別的微弱振動信號檢測的目的。
本文設計了一種基于MEMS 傳感器的微弱振動信號檢測與處理系統,完成了振動數據接收、振動波形繪制、振動波形回放等功能,經測試表明,系統可以檢測到±2g 范圍的振動信號,最小精度達到3.9mg/LSB,滿足機械設備振動檢測的工程要求。同時,本設計利用上位機軟件可以對振動數據和振動波形進行存儲、再現以及波形的縮放,為進一步機械設備振動的分析與處理提供基礎。