八通道串口數據采集與處理虛擬儀器系統設計
系統采用串口通信。利用處理器內部的10位D/A轉換器,將采集到的模擬信號轉換成數字信號,再經過調理電路后送由MiniBus采用RS2-32協議送達上位機。另外采集板集成了一塊單CAN高速隔離收發器CTMl050,可以通過網口通信。串口通信需注意的問題是轉換電平,數據采集端供電電平為+5 V,而處理器能接受的電平是+3.3 V,因此系統采用MAX3221電平轉換器,以達到處理器要求。另外系統上位機串口名稱與下位機一定要設置為同一名稱,否則數據不能成功送到上位機,如圖4所示。
1.2 上位機系統設計
數據流程如圖5所示,數據經下位機采集處理后,由通信模塊通過串口發送到上位機,上位機主要包括數據讀取、數據驗證、數據處理及數據存儲4部分。
1.2.1 數據讀取
即虛擬儀器設備串口初始化,包括:串口名稱設置、超時設置、波特率設置、數據位設置、奇偶校驗設置,等等。本系統采用的設置為:超時l000 ms;波特率115200;數據位為8位;無奇偶校驗;其他采用默認值。
1.2.2 數據驗證
數據驗證包括數據讀取、判斷是否是有效數據以及數據報頭是否正確。數據報頭為8個FE,然后緊跟數據包。程序判斷讀取8個FE時開始讀數并顯示。
1.2.3 數據處理
系統為8通道,一次循環讀取16位的數組,將數組第O個元素作為第1通道的低位,第1個元素作為第l通道的高位……,第15個元素作為第八通道的高位,分別顯示:當滿足采樣點位數時,置位重新讀取數據。在顯示之前對數據進行預處理:去直流、峰值計算、濾波等等,由于Labview程序框圖中有Matlab腳本文件,所以可以和Matlab混合編程,在Labview腳本框中直接寫Matlab代碼。由于程序運行時要調用Matlab控制臺,所以混合編程要求控制機必須裝載Matlab軟件。
1.2.4 數據存儲
當點擊采集數據按鈕時,系統提示選擇存儲路徑,并存儲為后綴名為‘.lvm’的二進制測量文件。上位機主程序如圖6所示。
2 用戶界面
將8個MEMS傳感器并排,然后拍擊桌面的信號波形圖。8個通道可獨立使用,如直接一路傳感器,其他通道數據都為0。可手動更改串口名稱、波特率、停止位、奇偶校驗、流控制、傳輸數據位和顯示信號線的線性、顏色,界面友好。可根據需求添加峰值顯示、頻譜顯示,傅里葉變換等復雜信號處理內容。通道l至通道8信號波形分別用:紅、橙、黃、綠、藍、靛、紫、洋紅顯示。
3 系統特色
1)系統采用了雙緩沖技術,即將計算機Buffer分為2個相同區域Bufferl和Buffer2,數據先存往Bufferl,當Bufferl存滿時,標志位置位,數據繼續存往Buffer2,同時將Bufferl中的數據送往處理器進行處理,完畢后,Bufferl存數,Buffer2發送,如此循環,注意正確設置存儲速度和處理速度之間的關系,以保證數據無遺漏。
2)Labview編程與Matlab編程相結合進行數據處理分析。對于Labview中沒有的數據處理功能可直接調用Matlab腳本文件,功能更加強大。
3)上位機程序采用條件循環結構和事件結構設置,前面板和程序框圖同時執行,最大程度地節省了CPU資源。界面友好,具有良好的可操作性。
4 結論
本系統主要用于實驗數據的采集,由于采用串口通信,所以設備布設簡便,方便操作。經實際測試證明系統性能穩定,信號失真度較小,很好替代了NI公司數據采集卡:同時可擴展性強,修改板子處理器ARM程序,采用CAN通信后,結合算法,即可用于工程需要,實時監測待控領域。
評論