《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于LabVIEW 語(yǔ)言的信號(hào)采集與處理
基于LabVIEW 語(yǔ)言的信號(hào)采集與處理
電信快報(bào)
孫鵬
摘要: 基于虛擬儀器技術(shù),利用LabVIEW語(yǔ)言進(jìn)行信號(hào)采集系統(tǒng)的研制具有重要意義。文章介紹信號(hào)采集與處理系統(tǒng)的主要流程,。詳細(xì)介紹PCI-1714數(shù)據(jù)采集卡的原理及功能,通過(guò)數(shù)據(jù)采集程序?qū)嵗榻B基于LabVIEW語(yǔ)言實(shí)現(xiàn)PCI-1714采集卡的全過(guò)程,,利用LabVIEW語(yǔ)言編寫(xiě)的程序用于將存儲(chǔ)數(shù)據(jù)調(diào)出,,并對(duì)信號(hào)波形特點(diǎn)進(jìn)行分析。
Abstract:
Key words :

1 概述

實(shí)驗(yàn)室虛擬儀器工程平臺(tái)(LabVIEW)是一種專門(mén)用于數(shù)據(jù)采集,、分析及儀器控制的圖形化軟件,,它所開(kāi)發(fā)的虛擬儀器將計(jì)算機(jī)強(qiáng)大的數(shù)據(jù)處理能力與儀器的硬件測(cè)試控制能力很好地結(jié)合在一起。

LabVIEW 的圖形化開(kāi)發(fā)環(huán)境具有精確,、高效,、功能強(qiáng)大、開(kāi)發(fā)簡(jiǎn)易,、實(shí)時(shí)性強(qiáng),、界面友好等優(yōu)點(diǎn),為用戶提供了強(qiáng)大功能和使用的靈活性,,非常適合用于進(jìn)行仿真,、實(shí)時(shí)檢測(cè)和控制。目前,,LabVIEW 已經(jīng)成為測(cè)試領(lǐng)域應(yīng)用最廣泛和最有前途的軟件開(kāi)發(fā)平臺(tái)之一,,也是應(yīng)用最廣、發(fā)展最快,、功能最強(qiáng)的圖形化軟件開(kāi)發(fā)集成環(huán)境之一,。

虛擬儀器可以利用高性能的模塊化硬件, 結(jié)合高效靈活的軟件來(lái)完成各種測(cè)試,、測(cè)量和自動(dòng)化應(yīng)用,,與傳統(tǒng)的測(cè)量?jī)x器相比,具有成本低,、功能強(qiáng)大,、集成度高、質(zhì)量可靠,、維護(hù)方便等優(yōu)點(diǎn),,能很方便地組建測(cè)試系統(tǒng),滿足多種測(cè)量要求,。因此,,基于虛擬儀器技術(shù),,利用LabVIEW 語(yǔ)言進(jìn)行信號(hào)采集系統(tǒng)的研制具有重要意義,。

LabVIEW 虛擬儀器主要包括前面板,、框圖和圖標(biāo)/ 接口部件三部分,。

前面板是VI 的交互式用戶界面, 即用戶與程序代碼發(fā)生聯(lián)系的窗口,。VI 前面板是控件和指示器的組合,,控件仿真常規(guī)儀器上的輸入輸出設(shè)備類型,如旋鈕和開(kāi)關(guān),,并提供一種機(jī)制,,將輸入從前面板傳送到基本框圖。

信號(hào)采集與處理系統(tǒng)主要應(yīng)用的是數(shù)據(jù)采集卡的A / D(模/ 數(shù))轉(zhuǎn)換功能,,通過(guò)數(shù)據(jù)采集卡將采集端采集到的模擬電信號(hào)利用高速模數(shù)轉(zhuǎn)換電路轉(zhuǎn)換為數(shù)字信號(hào),,經(jīng)過(guò)數(shù)據(jù)采集卡板載緩存,最后利用計(jì)算機(jī)中的程序不斷從緩存中提取數(shù)據(jù),,存入計(jì)算機(jī)中,,并進(jìn)行相關(guān)處理,提取有用數(shù)據(jù)進(jìn)行硬盤(pán)存儲(chǔ),。

利用LabVIEW 語(yǔ)言編寫(xiě)數(shù)據(jù)采集卡的驅(qū)動(dòng)程序,,對(duì)信號(hào)分析處理及存儲(chǔ)流程如圖1 所示,。

 信號(hào)采集與處理系統(tǒng)總流程圖
圖1 信號(hào)采集與處理系統(tǒng)總流程圖,。

2 PCI-1714 數(shù)據(jù)采集卡

Advantech 公司的PCI-1714 是一款PCI 接口的高速4 通道同步數(shù)據(jù)采集卡, 可用于高速數(shù)據(jù)采集應(yīng)用,,性價(jià)比較高,,適用于儀器測(cè)試、圖像處理,、視頻數(shù)字化處理及聲音與振動(dòng)測(cè)試等領(lǐng)域,。

PCI-1714 是高速、高分辨力,、高容量的PCI 數(shù)據(jù)采集卡,, 配備4 組模擬輸入端, 具備同步采集功能,。其特性可歸納為:a)內(nèi)含4 個(gè)獨(dú)立ADC(模數(shù)轉(zhuǎn)換器),,可使4 個(gè)信道同步取樣,當(dāng)4 組模擬輸入同時(shí)使用時(shí),,采樣頻率理論最高可達(dá)30 MS/s,。b)每路ADC 內(nèi)建32 K FIFO 內(nèi)存,使用者在高速采樣時(shí)有足夠緩沖區(qū)可供暫存,, 以維持?jǐn)?shù)據(jù)采集速度及完整性,。c)提供多種輸入范圍,包含±5 V,、±2.5 V,、±1 V,、±0.5 V 等, 使用者通過(guò)工具程序即可輕松完成設(shè)定,。d) 高達(dá)6 種觸發(fā)模式,, 包含軟件觸發(fā)、Pacer,、Post-Trigger,、Pre-Trigger、Delay-Trigger 及About-Trigger 觸發(fā)方式,,方便客戶按需求自行設(shè)定,。

基于PCI-1714 的通用高速數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)如圖2 所示。

基于PCI-1714 的高速數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)框圖
圖2 基于PCI-1714 的高速數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)框圖,。

將需監(jiān)測(cè)的現(xiàn)場(chǎng)信號(hào)經(jīng)濾波器濾波后送入PCI-1714 板卡,,卡上A / D 轉(zhuǎn)換器對(duì)信號(hào)進(jìn)行高速模數(shù)轉(zhuǎn)換。轉(zhuǎn)換數(shù)據(jù)首先暫存在板卡的32 K 板載FIFO (先入先出) 中,, 當(dāng)FIFO 半滿或全滿時(shí),,向DMA(動(dòng)態(tài)內(nèi)存存取)控制器發(fā)送DMA 請(qǐng)求,,使用直接內(nèi)存存取方式,,經(jīng)PCI(外設(shè)組件互連)總線將數(shù)據(jù)從FIFO 輸出到內(nèi)部緩沖區(qū)中,PCI 總線傳輸帶寬很寬,, 可以滿足4 通道高速同步采樣時(shí)所帶來(lái)的高速數(shù)據(jù)傳輸要求,。

內(nèi)部緩沖區(qū)作為高速數(shù)據(jù)采集系統(tǒng)的海量緩存,它與用戶緩沖區(qū)一樣,,都是數(shù)據(jù)采集程序動(dòng)態(tài)分配給驅(qū)動(dòng)程序使用的兩塊內(nèi)存區(qū)域,,區(qū)別在于內(nèi)部緩沖區(qū)存放的是從FIFO 取來(lái)的原始值, 用戶緩沖區(qū)存放的是經(jīng)轉(zhuǎn)換之后的電壓值,。

在進(jìn)行長(zhǎng)時(shí)間高速數(shù)據(jù)采集時(shí),,PCI-1714 多采用循環(huán)方式。在此方式下,,啟動(dòng)一次采集過(guò)程能進(jìn)行無(wú)數(shù)次的A / D 轉(zhuǎn)換,。此時(shí)內(nèi)部緩沖區(qū)分成前后對(duì)等的兩個(gè)半?yún)^(qū)使用,當(dāng)前半?yún)^(qū)填滿后,,將此半?yún)^(qū)的數(shù)據(jù)向用戶緩沖區(qū)傳送,,同時(shí)將新轉(zhuǎn)換的數(shù)據(jù)放在內(nèi)部緩沖區(qū)的后半部分。當(dāng)后半?yún)^(qū)填滿后,,此半?yún)^(qū)數(shù)據(jù)向用戶緩沖區(qū)傳送,。同時(shí)自動(dòng)將新轉(zhuǎn)換的數(shù)據(jù)放到早已傳輸完畢的前半個(gè)緩沖區(qū)??赏ㄟ^(guò)查詢狀態(tài)寄存器的狀態(tài)來(lái)判斷FIFO 緩沖區(qū)的狀態(tài),,分別判斷空標(biāo)志位(Empty flag),、半滿標(biāo)志位(Half full flag)以及全滿標(biāo)志位(Full flag)。

內(nèi)部緩沖區(qū)和用戶緩沖區(qū)的數(shù)據(jù)可以在程序控制下以文件的形式保存至計(jì)算機(jī)中,, 實(shí)現(xiàn)采集數(shù)據(jù)永久性存儲(chǔ),,便于后期數(shù)據(jù)分析處理。

3 基于LabVIEW 語(yǔ)言實(shí)現(xiàn)的PCI-1714采集卡數(shù)據(jù)采集程序?qū)嵗?/p>

下面介紹用LabVIEW 語(yǔ)言編寫(xiě)的PCI-1714 采集卡數(shù)據(jù)采集驅(qū)動(dòng)程序,。該程序能夠?qū)崿F(xiàn)對(duì)傳感系統(tǒng)外界信號(hào)的數(shù)據(jù)進(jìn)行連續(xù)采集,, 并能根據(jù)需要對(duì)有用數(shù)據(jù)進(jìn)行存儲(chǔ)。

從功能上分,,該程序主要分為三部分:a)對(duì)采集卡進(jìn)行初始化,,完成采集卡重要工作參數(shù)的設(shè)置,如用戶緩存,、采樣速率(scan rate),、輸入限制等。b)進(jìn)行數(shù)據(jù)采集和有用數(shù)據(jù)的存儲(chǔ),, 就是將數(shù)據(jù)先放入采集卡的板載緩存FIFO 中,, 再由計(jì)算機(jī)讀取板載緩存中的數(shù)據(jù), 寫(xiě)入由計(jì)算機(jī)的內(nèi)存中分配出的用戶緩存,, 然后根據(jù)需要將有用數(shù)據(jù)從內(nèi)存中存入計(jì)算機(jī)硬盤(pán),。具體存儲(chǔ)格式可以為多種,該部分中包括的子VI 有讀取數(shù)據(jù)模塊,、數(shù)據(jù)存儲(chǔ)模塊以及顯示所采集信號(hào)的時(shí)域圖形的模塊,。c)在采集結(jié)束后關(guān)閉采集卡,。

為了使用PCI-1714 進(jìn)行連續(xù)高速的數(shù)據(jù)采集,,需要對(duì)采集速率、用戶緩存大小等重要參數(shù)進(jìn)行合理設(shè)置,。如前所述,,數(shù)據(jù)采集卡進(jìn)行A / D 轉(zhuǎn)換時(shí)是連續(xù)進(jìn)行的, 也就是說(shuō)采集卡往板載緩存中放入數(shù)據(jù)是連續(xù)進(jìn)行的,, 而計(jì)算機(jī)從板載緩存FIFO 中讀取數(shù)據(jù)放入用戶緩存時(shí)是在FIFO 半滿或全滿的狀態(tài)下批量讀取的,,同時(shí),如果要進(jìn)行數(shù)據(jù)的存儲(chǔ),,從用戶緩存再向硬盤(pán)中寫(xiě)入數(shù)據(jù)時(shí)也是批量進(jìn)行的,。

由于用戶緩存的大小受計(jì)算機(jī)內(nèi)存空間大小的限制,不可能無(wú)限大,,在使用過(guò)程中,,只能盡量設(shè)得比較大,一般可以設(shè)為內(nèi)存的十分之一左右,。在保持一定的數(shù)據(jù)采樣率并且用戶緩存確定的情況下,,如果存儲(chǔ)過(guò)程中,,單批量寫(xiě)入硬盤(pán)的數(shù)據(jù)過(guò)少,會(huì)出現(xiàn)不能及時(shí)將數(shù)據(jù)從用戶緩存中讀出,, 從而導(dǎo)致用戶緩存溢出的錯(cuò)誤,。而當(dāng)單批量寫(xiě)入硬盤(pán)的數(shù)據(jù)過(guò)多時(shí),又會(huì)出現(xiàn)從用戶緩存讀取數(shù)據(jù)過(guò)快,,可能會(huì)讀出空數(shù)據(jù)的錯(cuò)誤,,所以這幾個(gè)參數(shù)必須互相配合設(shè)定才能使采集卡獲得良好的采集和數(shù)據(jù)存儲(chǔ)的性能。

4 基于LabVIEW 的數(shù)據(jù)調(diào)用與處理

利用上述程序完成信號(hào)采集的同時(shí)可以將有用信號(hào)存儲(chǔ),,用于后續(xù)分析,,下面舉例說(shuō)明如何將存儲(chǔ)之后的波形數(shù)據(jù)重新調(diào)出并進(jìn)行分析。

將以TXT 格式存儲(chǔ)的數(shù)據(jù)從文件中調(diào)出并進(jìn)行頻譜分析的程序,。在程序前面板中可以同時(shí)將一段數(shù)據(jù)表示的信號(hào)時(shí)域波形及利用“FFT 功率譜”VI分析獲得功率譜波形顯示出來(lái),。

利用LabVIEW 語(yǔ)言編寫(xiě)一個(gè)用于將存儲(chǔ)數(shù)據(jù)調(diào)出并對(duì)信號(hào)波形特點(diǎn)進(jìn)行分析的程序,該程序可以將一個(gè)具有多信道的監(jiān)測(cè)信號(hào)從存儲(chǔ)文件中調(diào)出,,不同信道的監(jiān)測(cè)信號(hào)各不相同,,根據(jù)信號(hào)波形的特點(diǎn),可以選用相關(guān)方法進(jìn)行信號(hào)處理,,分析各信號(hào)對(duì)應(yīng)的監(jiān)測(cè)環(huán)境的變化,。利用LabVIEW 所提供的“調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)”模塊,可以很方便地把C 語(yǔ)言編寫(xiě)的程序嵌入LabVIEW 程序中,, 并且可以封裝成子VI,,供主程序調(diào)用。適用于一些LabVIEW 語(yǔ)言編程效率不高的應(yīng)用場(chǎng)合,,利用“調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)”模塊編寫(xiě)的子VI 程序,。

5 結(jié)束語(yǔ)

從以上分析可以看出, 利用LabVIEW 語(yǔ)言可以方便地解決信號(hào)采集與處理領(lǐng)域的相關(guān)問(wèn)題,,無(wú)論是對(duì)數(shù)據(jù)采集卡PCI1714 的驅(qū)動(dòng)編寫(xiě),、數(shù)據(jù)的存儲(chǔ), 還是對(duì)數(shù)據(jù)的調(diào)用與分析都可以充分的調(diào)用該語(yǔ)言提供的專用VI,, 并且在圖形化語(yǔ)言編寫(xiě)環(huán)境中,,獲得清晰的數(shù)據(jù)流程。而且LabVIEW 語(yǔ)言也支持用戶對(duì)VI 的二次開(kāi)發(fā),,并可以調(diào)用其他語(yǔ)言編寫(xiě)的程序,, 還可以將用戶自行編寫(xiě)的程序方便地封裝成標(biāo)準(zhǔn)VI,供后續(xù)程序調(diào)用,,為提高程序編寫(xiě)的效率及擴(kuò)展程序功能帶來(lái)極大方便,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。