八通道串口數(shù)據(jù)采集與處理虛擬儀器系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
無(wú)線(xiàn)傳感器網(wǎng)絡(luò)是近幾年國(guó)際研究的熱點(diǎn)問(wèn)題,而數(shù)據(jù)采集又是無(wú)線(xiàn)傳感器網(wǎng)絡(luò)系統(tǒng)性能*估、應(yīng)用的基礎(chǔ)環(huán)節(jié)。在數(shù)據(jù)采集過(guò)程中應(yīng)用虛擬儀器可以盡可能地縮短數(shù)據(jù)采集的時(shí)間,同時(shí)降低實(shí)驗(yàn)成本,因此虛擬儀器在測(cè)控領(lǐng)域得到越來(lái)越廣泛的應(yīng)用。傳統(tǒng)的前端數(shù)據(jù)采集設(shè)備都是,TI公司的數(shù)據(jù)采集卡,成本高且維修不便。本系統(tǒng)下位機(jī)采用NXP公司LPC2378為依托的數(shù)據(jù)采集電路板,上位機(jī)操作系統(tǒng)基于La-bview8.5編寫(xiě),通過(guò)串口通信實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)采集,可以對(duì)采集信號(hào)進(jìn)行處理分析并顯示。
l 系統(tǒng)設(shè)計(jì)
數(shù)據(jù)采集系統(tǒng)分為下位機(jī)和上位機(jī)2部分,二者通過(guò)驅(qū)動(dòng)程序組成采集系統(tǒng)。下位機(jī)是指直接控制設(shè)備獲取設(shè)備狀況的計(jì)算機(jī),一般是PLC/單片機(jī)之類(lèi);上位機(jī)是可以直接發(fā)出操控命令的計(jì)算機(jī),一般是PC,屏幕上顯示各種信號(hào)變化,如圖l所示。圖中程序部分采用Labview來(lái)實(shí)現(xiàn)。在數(shù)據(jù)采集之前,先對(duì)下位機(jī)采集板卡進(jìn)行初始化,其中處理器Buffer是下位機(jī)采集存儲(chǔ)的重要環(huán)節(jié)??梢圆捎猛獠坑|發(fā)(比較精確),也可采用軟件觸發(fā)(容易實(shí)現(xiàn))。由于上位機(jī)數(shù)據(jù)處理階段要對(duì)采集到的一個(gè)周期的數(shù)據(jù)進(jìn)行處理,所以系統(tǒng)采用軟件觸發(fā),每個(gè)周期采樣l024點(diǎn)。
1.1 下位機(jī)系統(tǒng)
下位機(jī)系統(tǒng)為數(shù)據(jù)采集硬件平臺(tái),主要包括采集卡前端設(shè)備即傳感器電路、核心處理器(即算法實(shí)現(xiàn)電路)、電源模塊電路和通信模塊電路。
1.1.1 采集卡前端設(shè)備
前端傳感器采用飛思卡爾MMA7260加速度傳感器。相比于老式線(xiàn)圈式振動(dòng)傳感器,MEMS傳感器具有量程大、不易溢出、受外界氣候因素影響較小等優(yōu)點(diǎn)。采集原理圖如圖2所示,在采集信號(hào)放大之前進(jìn)行抗混疊濾波,有效濾除了高頻干擾。需要注意的是,探頭需要提供+5 V供電才能穩(wěn)定工作。本系統(tǒng)采集傳感器Z軸數(shù)據(jù),對(duì)探頭安裝位置沒(méi)有特殊要求;若要采集X軸數(shù)據(jù),必須注意探頭X軸方向與地面平行,否則信號(hào)會(huì)發(fā)生畸變。
1.1.2 核心處理器
從價(jià)格、操作系統(tǒng)、接口類(lèi)型、內(nèi)存大小等條件考慮,該系統(tǒng)設(shè)計(jì)的處理器采用LPC2378,它是一款基于ARM的微處理器,包含10/100 Ethernet MAC、USB 2.0全速接口、4個(gè)UART、2路CAN通道、1個(gè)SPI接口、2個(gè)同步串行端口(SSP)、3個(gè)I2C接口、1個(gè)I2S接口和MiniBus(8位數(shù)據(jù)/16位地址并行的總線(xiàn))。工作頻率為72 MHz,ARM局部總線(xiàn)上有32 KB的SRAM,可以進(jìn)行高性能CPU訪問(wèn)和簡(jiǎn)單的算法實(shí)現(xiàn)。
1.1.3 電源模塊
考慮到MEMS傳感器最佳工作電壓為5 V,所以系統(tǒng)采用ZY2405WHBD-3W型DC-DC變換器,輸入電壓9~36V,輸出電壓為5V。其他部分主要起穩(wěn)壓作用,其電源模塊電路如圖3所示。
1.1.4 通信模塊
系統(tǒng)采用串口通信。利用處理器內(nèi)部的10位D/A轉(zhuǎn)換器,將采集到的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),再經(jīng)過(guò)調(diào)理電路后送由MiniBus采用RS2-32協(xié)議送達(dá)上位機(jī)。另外采集板集成了一塊單CAN高速隔離收發(fā)器CTMl050,可以通過(guò)網(wǎng)口通信。串口通信需注意的問(wèn)題是轉(zhuǎn)換電平,數(shù)據(jù)采集端供電電平為+5 V,而處理器能接受的電平是+3.3 V,因此系統(tǒng)采用MAX3221電平轉(zhuǎn)換器,以達(dá)到處理器要求。另外系統(tǒng)上位機(jī)串口名稱(chēng)與下位機(jī)一定要設(shè)置為同一名稱(chēng),否則數(shù)據(jù)不能成功送到上位機(jī),如圖4所示。
1.2 上位機(jī)系統(tǒng)設(shè)計(jì)
數(shù)據(jù)流程如圖5所示,數(shù)據(jù)經(jīng)下位機(jī)采集處理后,由通信模塊通過(guò)串口發(fā)送到上位機(jī),上位機(jī)主要包括數(shù)據(jù)讀取、數(shù)據(jù)驗(yàn)證、數(shù)據(jù)處理及數(shù)據(jù)存儲(chǔ)4部分。
1.2.1 數(shù)據(jù)讀取
即虛擬儀器設(shè)備串口初始化,包括:串口名稱(chēng)設(shè)置、超時(shí)設(shè)置、波特率設(shè)置、數(shù)據(jù)位設(shè)置、奇偶校驗(yàn)設(shè)置,等等。本系統(tǒng)采用的設(shè)置為:超時(shí)l000 ms;波特率115200;數(shù)據(jù)位為8位;無(wú)奇偶校驗(yàn);其他采用默認(rèn)值。
1.2.2 數(shù)據(jù)驗(yàn)證
數(shù)據(jù)驗(yàn)證包括數(shù)據(jù)讀取、判斷是否是有效數(shù)據(jù)以及數(shù)據(jù)報(bào)頭是否正確。數(shù)據(jù)報(bào)頭為8個(gè)FE,然后緊跟數(shù)據(jù)包。程序判斷讀取8個(gè)FE時(shí)開(kāi)始讀數(shù)并顯示。
1.2.3 數(shù)據(jù)處理
系統(tǒng)為8通道,一次循環(huán)讀取16位的數(shù)組,將數(shù)組第O個(gè)元素作為第1通道的低位,第1個(gè)元素作為第l通道的高位……,第15個(gè)元素作為第八通道的高位,分別顯示:當(dāng)滿(mǎn)足采樣點(diǎn)位數(shù)時(shí),置位重新讀取數(shù)據(jù)。在顯示之前對(duì)數(shù)據(jù)進(jìn)行預(yù)處理:去直流、峰值計(jì)算、濾波等等,由于Labview程序框圖中有Matlab腳本文件,所以可以和Matlab混合編程,在Labview腳本框中直接寫(xiě)Matlab代碼。由于程序運(yùn)行時(shí)要調(diào)用Matlab控制臺(tái),所以混合編程要求控制機(jī)必須裝載Matlab軟件。
1.2.4 數(shù)據(jù)存儲(chǔ)
當(dāng)點(diǎn)擊采集數(shù)據(jù)按鈕時(shí),系統(tǒng)提示選擇存儲(chǔ)路徑,并存儲(chǔ)為后綴名為‘.lvm’的二進(jìn)制測(cè)量文件。上位機(jī)主程序如圖6所示。
2 用戶(hù)界面
將8個(gè)MEMS傳感器并排,然后拍擊桌面的信號(hào)波形圖。8個(gè)通道可獨(dú)立使用,如直接一路傳感器,其他通道數(shù)據(jù)都為0??墒謩?dòng)更改串口名稱(chēng)、波特率、停止位、奇偶校驗(yàn)、流控制、傳輸數(shù)據(jù)位和顯示信號(hào)線(xiàn)的線(xiàn)性、顏色,界面友好。可根據(jù)需求添加峰值顯示、頻譜顯示,傅里葉變換等復(fù)雜信號(hào)處理內(nèi)容。通道l至通道8信號(hào)波形分別用:紅、橙、黃、綠、藍(lán)、靛、紫、洋紅顯示。
3 系統(tǒng)特色
1)系統(tǒng)采用了雙緩沖技術(shù),即將計(jì)算機(jī)Buffer分為2個(gè)相同區(qū)域Bufferl和Buffer2,數(shù)據(jù)先存往Bufferl,當(dāng)Bufferl存滿(mǎn)時(shí),標(biāo)志位置位,數(shù)據(jù)繼續(xù)存往Buffer2,同時(shí)將Bufferl中的數(shù)據(jù)送往處理器進(jìn)行處理,完畢后,Bufferl存數(shù),Buffer2發(fā)送,如此循環(huán),注意正確設(shè)置存儲(chǔ)速度和處理速度之間的關(guān)系,以保證數(shù)據(jù)無(wú)遺漏。
2)Labview編程與Matlab編程相結(jié)合進(jìn)行數(shù)據(jù)處理分析。對(duì)于Labview中沒(méi)有的數(shù)據(jù)處理功能可直接調(diào)用Matlab腳本文件,功能更加強(qiáng)大。
3)上位機(jī)程序采用條件循環(huán)結(jié)構(gòu)和事件結(jié)構(gòu)設(shè)置,前面板和程序框圖同時(shí)執(zhí)行,最大程度地節(jié)省了CPU資源。界面友好,具有良好的可操作性。
4 結(jié)論
本系統(tǒng)主要用于實(shí)驗(yàn)數(shù)據(jù)的采集,由于采用串口通信,所以設(shè)備布設(shè)簡(jiǎn)便,方便操作。經(jīng)實(shí)際測(cè)試證明系統(tǒng)性能穩(wěn)定,信號(hào)失真度較小,很好替代了NI公司數(shù)據(jù)采集卡:同時(shí)可擴(kuò)展性強(qiáng),修改板子處理器ARM程序,采用CAN通信后,結(jié)合算法,即可用于工程需要,實(shí)時(shí)監(jiān)測(cè)待控領(lǐng)域。