徐曉東,吳乃優,韓慧蓮,張 倫
1 引言
虛擬儀器(VI-Virtual Instrument)是指通過應用程序將通用計算機與功能化硬件結合起來,用戶可通過友好的圖形界面來操作這臺計算機,就像在操作自己定義、設計的一臺單個儀器,從而完成對被測試量的采集、分析、判斷、顯示、數據存儲等功能。虛擬儀器是由用戶定義、自由組合計算機平臺、硬件、軟件以及組成系統所需的附件。而這在由供應商定義、功能固定、獨立的傳統儀器上是做不到的。
2 虛擬儀器的構成
虛擬儀器由硬件和軟件兩部分組成。從構成要素講,虛擬儀器系統是由計算機、應用軟件和儀器硬件組成的。為計算機配置的電子測量儀器硬件模塊是各種傳感器、信號調理器、模擬數字/轉換器(ADC)、數字/模擬轉換器(DAC)、數據采集器(DAQ)等。計算機及其配置的測量儀器硬件模塊組成了虛擬儀器測試硬件平臺的基礎。從構成方式講,有以DAQ板和信號調理部分為硬件來組成的PC-DAQ測試系統,以GPIB、VXI、串行總線為基礎的現場總線系統等。系統構成如圖1所示。
圖1 虛擬儀器體系結構圖
無論哪種虛擬儀器系統,都是將硬件儀器搭載到筆記本電腦、臺式計算機或工作站等各種計算機平臺上,再加上應用軟件而構成的。因而,虛擬儀器的發展已經與計算機技術的發展完全同步。與傳統儀器相比,虛擬儀器在智能化程度、處理能力、性價比、可操作性等方面都具有明顯的優勢。儀器技術和計算機技術的深層次的結合創造了虛擬儀器的概念,將計算機資源(處理器、存儲器、顯示器等)和通用儀器硬件(A/D、D/A變換器、數字輸入/輸出、定時和信號處理器等)與用于數據分析、過程通訊及用戶圖形界面的軟件有效地結合起來。由此提出了“軟件就是儀器”的口號。虛擬儀器應用軟件主要有三個目的:① 提供一個集成的開發環境;② 一個與儀器硬件的高級接口;③ 一個與虛擬儀器用戶的接口。在虛擬儀器系統中,計算機可成為一部多功能的智能化的測試系統,除保持計算機原有的一切功能外,還可兼有數字存儲示波器、FFT頻譜分析儀、集成在線測試儀、智能信號發生器、邏輯分析儀及高精度頻率計等功能,使計算機在時域、頻域、數據域、IC測試及信號產生、信號分析方面的功能大大擴展,其測試功能已非傳統儀器所能比。
本虛擬儀器系統主要用來實現數字存儲式示波器和頻譜分析儀等功能。系統的基本工作原理是對模擬信號進行數據采集后存入數據文件,根據使用者的不同要求由軟件對數據進行相應分析、處理,最終在屏幕上顯示處理結果。
3 通用測試系統工作原理
本套系統的數據采集系統結構如圖2所示。傳感器(或前端采集設備)把物理信號轉換成電信號(電壓或電流),例如熱電偶(溫度/電壓)、微音器(壓強/電壓)等。信號調理裝置能夠對微弱信號進行放大、光電隔離、濾波等處理,以便更精確和更安全的測量,同時它還能夠激發和線性化某些傳感器及其信號。當輸入信號被適當調理后,即可輸給插入式數據采集卡進行數字化。同時它也能產生控制信號。數據采集卡的程序設計依靠驅動軟件進行了簡化,因而可以運用傳統語言來設計(本系統運用VC++6.0直接控制數據采集卡采集數據)。計算機的性能決定了整個采集過程的速度。高速的處理器和協處理器或插入式輔助處理器,如DSP(Data Signal Process)芯片,對于實時采集系統是非常重要的。
圖2 基于PC-DAQ的數據采集系統結構圖
3.1 硬件部分
系統硬件部分主要由數據采集系統組成。本系統是一個基于PCI總線的數據采集與處理系統。在軟件界面中設置好增益倍數、采樣頻率、采樣深度等參數后,可以輸入兩路模擬信號,信號經過增益控制電路后,送入低通濾波電路,對高頻噪聲進行抑制,再經過采樣保持電路和相互獨立的同步的A/D轉換電路,輸出8bit/Sample的數據且自動存入FIFO RAM中,直到采樣結束,FIFO RAM發出結束信號,通知計算機停止A/D轉換并進行讀數據操作。
(1) 前端預處理電路 前端預處理電路包括增益控制電路、低通濾波電路。低通濾波電路起抑制高頻噪聲及對信號預處理功能。因為時域采樣引起頻譜的周期延拓,當輸入信號頻譜中有高于1/2倍采樣頻率的成分,將引起信號頻譜的混迭,所以要先濾去信號中高于1/2倍采樣頻率的成分。這樣雖然會產生一定的波形失真,但有助于后續的信號分析和處理。
(2) 同步采樣轉換系統 要精確取得信號的幅度值和相位值,就必須采用兩個相互獨立的通道進行采樣,而不能采用普通的多通道ADC芯片,因為這種芯片內部一般只有一組AD轉換核心,而用分時采樣的辦法使其具有多通道的功能,每個通道之間必然存在相位差。本系統中每個通道用一片ADC芯片,兩個芯片的啟動端由同一采樣信號控制,采用軟件啟動,采樣頻率可調。
(3) 數據存儲模塊 若采用軟件查詢的方式進行每個樣點的采集,速度上可能達不到要求,所以采用硬件控制采樣過程,軟件提供采樣啟動及結束信號。
(4) 時鐘發生模塊 本部分包括20MHz的振蕩電路及可編程分頻器,以產生一定范圍的采樣頻率。由于最低采樣頻率要求為幾K,分頻器的分頻數N最大要達到約幾萬,這里使用一個16位的分頻器,可由四個4位計數器級聯而成。這樣最低采樣頻率可達20M/216=0.3KHz,而且能得到2~65536之間可預置的任意分頻采樣時鐘。
(5) 計算機接口模塊 為通用計算機開發的插卡在工業控制領域主要采用STD總線以及VME總線,應用于數據處理及一般用途的設計主要采用 ISA 或PCI總線。在PC機方面,從低檔機到高檔機一般都配有ISA總線,而PCI總線一般應用于486以上的機型。相比之下PCI總線的優勢主要體現在傳輸速率上,可以達到33Mbps,所以本測試系統接口采用了PCI總線。
3.2 軟件部分
軟件的功能除了設計儀器面板外,最主要的就是進行數據分析和處理,并在面板上顯示處理結果。系統軟件部分主要由數據采集模塊、數據分析模塊和數據顯示模塊三部分構成。
數據采集模塊 負責驅動儀器采集模擬信號并進行模數轉化,并實時監控數據的采集過程。
數據分析模塊 對數據采集模塊采集來的數據進行專業處理,如計算波峰和面積、分析入流和出流時間等,并能將結果輸出??商峁┑墓δ苓€有頻譜分析功能(幅頻譜、相頻譜、功率譜等)及各種濾波功能。在測量結果的數據處理、表達模式及其變換方面也做了許多函數庫,建立了數據處理的高級分析庫和開發工具庫,因此本系統可以組建極為復雜的自動測試系統。此外,如果輸入模擬信號是一隨機信號的話,可以用軟件實現各種相關性分析功能,比如計算信號的自相關、互相關、自協方差、互協方差等函數。只要適當增加軟件的功能,系統還可以成為瞬態信號捕捉儀、波形仿真器等一系列信號分析儀器。對采樣數據進行數字濾波處理,采用的濾波方法有程序判斷法中的限速濾波和限幅濾波、中值濾波、算術平均濾波、滑動濾波等。
數據顯示模塊 完成數據分析后的顯示,顯示面板可提供用戶直觀的曲線圖表等。
由于測試儀器完成的數據處理功能繁雜,要求運算速度要快,所以本軟件系統采用可視化編程語言VC++并配合Matlab軟件仿真,同時也利用VC++自己開發了一些動態鏈接庫(.dll)和ActiveX控件,增強了軟件系統的可重復使用性。同時也易于組建、修改及管理。
4 結語
本文運用計算機軟硬件技術來組建虛擬儀器,開發了基于PCI總線的虛擬儀器硬件板卡,并運用VC++語言開發了相關ActiveX控件及數據分析功能動態鏈接庫,最后利用這些自己設計的軟硬件實現了任意信號發生器、虛擬示波器、頻譜分析儀等功能,從而證實了這種開發方法的優越性及其實現途徑的可行性。
參考文獻:
[1] Ning Jim Q. A component-based software development model[C]. 1996 IEEE, Annual International Computer Software & Applications Conference, 1996,389~394.
[2] Pasquarette John. Building virtual instruments with OLE controls[J]. Evaluation Engineering, 1996,(2):22~25.
[3] LabVIEW User Manual.National Instruments Corporation,1996.
[4] 林正盛. 虛擬儀器技術及其發展[J]. 國外電子測量技術, 1997,(2)