本文介紹了虛擬儀器的構(gòu)成及其特點(diǎn),分析了如何從軟件和硬件方面構(gòu)造具體的虛擬儀器;提出了一種虛擬儀器技術(shù)在數(shù)據(jù)采集中新的應(yīng)用方法,該方法利用虛擬儀器制作數(shù)據(jù)采集器" title="數(shù)據(jù)采集器">數(shù)據(jù)采集器,分別從硬件設(shè)計(jì)、軟件設(shè)計(jì)兩個(gè)角度闡述了數(shù)據(jù)采集器的具體制作方法。實(shí)際應(yīng)用證明是 行之可靠的,可供技術(shù)人員在組建基于虛擬儀器技術(shù)的數(shù)據(jù)采集器時(shí)參考使用。
虛擬儀器是以一種全新的理念來設(shè)計(jì)和發(fā)展的儀器,他是90年代發(fā)展起來的一項(xiàng)新技術(shù),主要用于自動(dòng)測(cè)試、過程控制、儀器設(shè)計(jì)和數(shù)據(jù)分析等領(lǐng)域,其基本思想是在儀器設(shè)計(jì)或測(cè)試系統(tǒng)中盡可能用軟件代替硬件,即“軟件就是儀器”,他是在通用計(jì)算機(jī)平臺(tái)上,根據(jù)用戶需求來定義和設(shè)計(jì)儀器的測(cè)試功能,其實(shí)質(zhì)是充分利用計(jì)算機(jī)的最新技術(shù)來實(shí)現(xiàn)和擴(kuò)展傳統(tǒng)儀器的功能。
1、虛擬儀器的特點(diǎn)和構(gòu)成
1.1 虛擬儀器的特點(diǎn)
與傳統(tǒng)儀器相比,虛擬儀器具有高效、開放、易用靈活、功能強(qiáng)大、性價(jià)比高、可操作性 好等明顯優(yōu)點(diǎn),具體表現(xiàn)為:
智能化程度高,處理能力強(qiáng) 虛擬儀器的處理能力和智能化程度主要取決于儀器軟件水平。用戶完全可以根據(jù)實(shí)際應(yīng)用需求,將先進(jìn)的信號(hào)處理算法、人工智能技術(shù)和專家系統(tǒng)應(yīng)用于儀器設(shè)計(jì)與集成,從而將智能儀器水平提高到一個(gè)新的層次。
復(fù)用性強(qiáng),系統(tǒng)費(fèi)用低 應(yīng)用虛擬儀器思想,用相同的基本硬件可構(gòu)造多種不同功能的測(cè)試分析儀器,如同一個(gè)高 速數(shù)字采樣器,可設(shè)計(jì)出數(shù)字示波器、邏輯分析儀、計(jì)數(shù)器等多種儀器。這樣形成的測(cè)試儀 器系統(tǒng)功能更靈活、更高效、更開放、系統(tǒng)費(fèi)用更低。通過與計(jì)算機(jī)網(wǎng)絡(luò)連接,還可實(shí)現(xiàn)虛 擬儀器的分布式共享,更好地發(fā)揮儀器的使用價(jià)值。
可操作性強(qiáng),易用靈活 虛擬儀器面板可由用戶定義,針對(duì)不同應(yīng)用可以設(shè)計(jì)不同的操作顯示界面。使用計(jì)算機(jī)的 多媒體處理能力可以使儀器操作變得更加直觀、簡便、易于理解,測(cè)量結(jié)果可以直接進(jìn)入數(shù) 據(jù)庫系統(tǒng)或通過網(wǎng)絡(luò)發(fā)送。測(cè)量完后還可打印、顯示所需的報(bào)表或曲線,這些都使得儀器的 可操作性大大提高而且易用、靈活。
1.2 虛擬儀器的構(gòu)成
虛擬儀器的構(gòu)建主要從硬件電路的設(shè)計(jì)、軟件開發(fā)與設(shè)計(jì)2個(gè)方面考慮。
硬件電路的設(shè)計(jì)主要根據(jù)用戶所面對(duì)的任務(wù)決定,其中接口設(shè)計(jì)可選用的接口總線標(biāo)準(zhǔn)包 括GP IB總線、VXI總線等。推薦選用VXI總線。因?yàn)樗哂型ㄓ眯詮?qiáng)、可擴(kuò)充性好、傳輸速 率高、抗干擾能力強(qiáng)以及良好的開放性能等優(yōu)點(diǎn),因此自1987被首次推出后迅速得到各大儀 器生產(chǎn)廠家的認(rèn)可,目前 VXI模塊化儀器被認(rèn)為是虛擬儀器的最理想平臺(tái),是儀器硬件的發(fā) 展方向。由于VXI虛擬儀器的硬件平臺(tái)的基本組成是一些通用模塊和專用接口。因此硬件電 路的設(shè)計(jì)一般可以選擇用現(xiàn)有的各種不同的功能模塊來搭建。通用模塊包括:信號(hào)調(diào) 理和高速數(shù)據(jù)采集;信號(hào)輸出與控制;數(shù)據(jù)實(shí)時(shí)處理。這3部分概括了數(shù)字化儀 器的基本組成。將具有一種或多種功能的通用模塊組建起來,就能構(gòu)成任何一種虛擬儀器。 例如使用高速數(shù)據(jù)采集模塊和高速實(shí)時(shí)數(shù)據(jù)處理模塊就能構(gòu)成 1臺(tái)示波器、1臺(tái)數(shù)字化儀或 1臺(tái)頻譜分析儀;使用信號(hào)輸出與控制模塊和實(shí)時(shí)數(shù)據(jù)處理模塊就能構(gòu)成1臺(tái)函數(shù)發(fā)生器、1臺(tái)信號(hào)源或1臺(tái)控制器。專用接口是針對(duì)特定用途儀器需要的設(shè)計(jì),也包括一些現(xiàn)場(chǎng)總線 接口和各類傳感器接口。系統(tǒng)的主要硬件包括控制器、主機(jī)箱和儀器模塊。常用的控制方案 有GPIB總線控制方式的硬件方案、MXI總線控制方式的硬件方案、嵌入式計(jì)算機(jī)控制方式的硬件方案3種。VXI儀器模塊又稱為器件(devices)。VXI有4種器件:寄存器基器件、消 息基器件、存儲(chǔ)器器件和擴(kuò)展器件。存儲(chǔ)器器件不過是專用寄存器基器件,用來保存和傳輸 大量數(shù)據(jù)。擴(kuò)展器目前是備用件,為今后新型器件提供發(fā)展通道。將VXI儀器制作成寄存器 基器件,還是消息基器件是首先要做出的決策。寄存器基器件的通信情況極像VME總線器件 ,是在低層用二進(jìn)制信息編制程序。他的明顯優(yōu)點(diǎn)在于速度寄存器基器件完全是在 直接 硬件控制這一層次上進(jìn)行通信的。這種高速通信可以使測(cè)試系統(tǒng)吞吐量大大提高。因此,寄 存器基器件適用于虛擬儀器中信號(hào)/輸出部分的模塊(如開關(guān)、多路復(fù)用器、數(shù)/模轉(zhuǎn)換輸出 卡、模/數(shù)轉(zhuǎn)換輸入卡、信號(hào)調(diào)理等)。消息基器件與寄存器基器件不同,他在高層次上用A SCII字符進(jìn)行通信,與這種器件十分相似是獨(dú)立HPIB儀器。消息基器件用一組意義 明確的 “字串行協(xié)議”相互進(jìn)行通信,這種異步協(xié)議定義了在器件之間傳送命令和數(shù)據(jù)所需的掛鉤 要求。消息基器件必須有CPU(或DSP)進(jìn)行管理與控制。因此,消息基器件適用于虛擬儀器 中數(shù)字信號(hào)處理部分的模塊。
軟件的開發(fā)與設(shè)計(jì)包括3部分:VXI總線接口軟件、儀器驅(qū)動(dòng)軟件和應(yīng)用軟件(軟面板) 。軟件結(jié)構(gòu)如圖1所示。
VXI總線接口軟件由零槽控制器提供,包括資源管理器、資源編輯程序、交互式控制程序和 編程函數(shù)庫等。該軟件在編程語言和VXI總線之間建立連接,提供對(duì)VXI背板總線的控制和支 持,是實(shí)現(xiàn)VXI系統(tǒng)集成的基礎(chǔ)。
儀器驅(qū)動(dòng)程序是完成對(duì)某一特定儀器的控制與通信的軟件程序,也即模塊的驅(qū)動(dòng)軟件,他 的設(shè)計(jì)必須符合VPP的2個(gè)規(guī)范,即VPP3.1《儀器驅(qū)動(dòng)程序結(jié)構(gòu)和模型》和VPP3.2《儀器 驅(qū)動(dòng)程序設(shè)計(jì)規(guī)范》。
“軟面板”設(shè)計(jì)就是設(shè)計(jì)具有可變性、多層性、自助性、人性化的面板,這個(gè)面板應(yīng)不 僅同傳統(tǒng)儀器面板一樣具有顯示器、LED、指針式表頭、旋鈕、滑動(dòng)條、開關(guān)按鈕、報(bào)警裝 置等功能部件,而且應(yīng)還具有多個(gè)連貫操作面板、在線幫助功能等。
2、虛擬儀器在數(shù)據(jù)采集中的應(yīng)用
利用虛擬儀器制作數(shù)據(jù)采集器可以按照硬件設(shè)計(jì)、軟件設(shè)計(jì)兩個(gè)步驟來完成。
2.1 硬件設(shè)計(jì)
硬件設(shè)計(jì)要完成以下內(nèi)容:
(1) 模/數(shù)轉(zhuǎn)換及數(shù)據(jù)存儲(chǔ)
設(shè)置具有通用性的數(shù)據(jù)自動(dòng)采集系統(tǒng),一般應(yīng)滿足能對(duì)多路信號(hào)盡可能同步地進(jìn)行采集,為了使所采集到的數(shù)據(jù)不但能夠在數(shù)據(jù)采集器上進(jìn)行存儲(chǔ),而且還能及時(shí)地在采集過程中 將數(shù)據(jù)傳送到上位機(jī),選用存儲(chǔ)量比較適中的先進(jìn)先出存儲(chǔ)器,這樣既能滿足少量數(shù)據(jù)存儲(chǔ) 的需要,又能在需要實(shí)時(shí)傳送數(shù)據(jù)時(shí),在 A/D轉(zhuǎn)換的同時(shí)進(jìn)行數(shù)據(jù)傳送,不丟失任何數(shù)據(jù)。
(2) VXI總線接口
VXI總線數(shù)據(jù)采集器通??梢岳脙煞NVXI總線通用接口消息基接口和寄存器基接口。消 息基接口的作用是通過總線傳送命令,從而控制儀器硬件的操作。通用寄存器基接口是由寄存器簡單的讀寫來控制儀器硬件的操作。利用消息基接口進(jìn)行設(shè)計(jì),具體消息基接口的框圖見圖2。
(3) 采樣通道控制
為了滿足幾種典型系統(tǒng)通道控制的要求,使通道的數(shù)量足夠多,通道的選取比較靈活,可以利用寄存器電路、可預(yù)置計(jì)數(shù)器電路以及一些其他邏輯電路的配合,將采樣通道設(shè)計(jì)成最多64路、最少2路可以任意選擇,而且可以從任意一路開始采樣,也可以到任意一路結(jié)束采樣,只要截止通道號(hào)大于起始通道號(hào)就可以了。整個(gè)控制在虛擬儀器軟面板上進(jìn)行操作,通過消息基接口將命令寫在這部分的控制寄存器中,從而設(shè)置計(jì)數(shù)器的初值以及采樣的通道總數(shù)。
(4) 定時(shí)采樣控制
由于不同的自動(dòng)測(cè)試系統(tǒng)" title="自動(dòng)測(cè)試系統(tǒng)">自動(dòng)測(cè)試系統(tǒng)對(duì)采樣時(shí)間間隔的要求不同,以及同一系統(tǒng)在不同的試驗(yàn)中 需要的采樣時(shí)間間隔也不盡相同,故可以采用程控的方式將采樣時(shí)間間隔設(shè)置在2 μs~13. 0 ms之間任意選擇,可以增加或減少的最小單位是2 μs。所有這些選擇設(shè)置可以在虛擬儀器軟面板上進(jìn)行。
(5) 采樣點(diǎn)數(shù)控制
根據(jù)不同測(cè)試系統(tǒng)的需求,將采樣點(diǎn)數(shù)設(shè)計(jì)成可在一個(gè)比較大的范圍中任意選擇,該選擇同樣是在軟面板上進(jìn)行。
(6) 采樣方式控制
總結(jié)各種自動(dòng)測(cè)試系統(tǒng)的采樣方式不外乎軟件觸發(fā)采樣和硬件 觸發(fā)采樣。在硬件觸發(fā)采樣中又包括同步整周期采樣和非同步整周期采樣,這2種采樣又可 以是定時(shí)進(jìn)行的或等轉(zhuǎn)速差進(jìn)行的。所有這些采樣方式,對(duì)于數(shù)據(jù)采集器來說都可以在軟面 板上進(jìn)行選擇。
2.2 軟件設(shè)計(jì)
軟件是虛擬儀器的關(guān)鍵,為使VI系統(tǒng)結(jié)構(gòu)清晰簡潔,一般可采用組件化設(shè)計(jì)思想,將各部分彼此獨(dú)立的軟件單元分別制成標(biāo)準(zhǔn)的組件,然后按照系統(tǒng)的總體要求組成完整的應(yīng)用系統(tǒng),一個(gè)標(biāo)準(zhǔn)的組件化的虛擬儀器軟件系統(tǒng),如圖3所示。
應(yīng)用軟件為用戶提供了建立虛擬儀器和擴(kuò)展其功能的必要工具,以及利用PC機(jī)、工作站的 強(qiáng)大功能。同時(shí)VPP聯(lián)盟提出了建立虛擬儀器標(biāo)準(zhǔn)結(jié)構(gòu)庫(VISA)的建議,為虛擬儀器的研 制與開發(fā)提供了標(biāo)準(zhǔn)。這也進(jìn)一步使由通用的VXI數(shù)據(jù)采集模塊、CPU/DSP模塊來構(gòu)成虛擬儀器成為可能。
基于虛擬儀器的數(shù)據(jù)采集器的軟件包括系統(tǒng)管理軟件、應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序、儀器驅(qū)動(dòng)軟件和I/O接 口 軟件。以往這4部分需要用戶自己組織或開發(fā),往往很困難,但現(xiàn)在NI公司提供了所有這 四部分軟件,使應(yīng)用開發(fā)比以往容易得多。
下面簡單介紹以NI公司的Lab Windows/CVI為開發(fā)環(huán)境,來進(jìn)行VXI虛擬儀器的驅(qū)動(dòng)程序開發(fā)的方法。
第一步:生成儀器模塊的用戶接口資源文件(UIR)。用戶接口資源、文件是儀器模塊 開 發(fā)者利用Lab Windows/CVI的用戶界面編輯器為儀器模塊設(shè)計(jì)的一個(gè)圖形用戶界面(GUI)。 一個(gè)Lab Windows/CVI的GUI由面板、命令按鈕、圖標(biāo)、下拉菜單、曲線、旋鈕、指示表以及 許多其他控制項(xiàng)和說明項(xiàng)構(gòu)成。
第二步:Lab Windows/CVI事件驅(qū)動(dòng)編程。應(yīng)用程序開發(fā)環(huán)境Lab Windows/CVI中設(shè)計(jì)一個(gè) 用戶接口,實(shí)際上是在用戶計(jì)算機(jī)屏幕上定義一個(gè)面板,他由各種控制項(xiàng)(如命令按鈕、菜 單、曲線等)構(gòu)成。用戶選中這些控制項(xiàng)就可以產(chǎn)生一系列用戶接口事件(events)。例如 ,當(dāng)用戶單擊一個(gè)命令按鈕,這個(gè)按鈕產(chǎn)生一個(gè)用戶接口事件,并傳遞給開發(fā)者編寫的C語 言驅(qū)動(dòng)程序。這是運(yùn)用了Windows編程的事件驅(qū)動(dòng)機(jī)制。 Lab Windows/CVI中使用不同類型的 控制項(xiàng),在界面編輯器中將顯示不同類型的信息,并產(chǎn)生不同操作的接口事件。在Lab Wind ows /CVI的開發(fā)平臺(tái)中,對(duì)事件驅(qū)動(dòng)進(jìn)行C程序編程時(shí)可采用2種基本的方法:回調(diào)函數(shù)法和 事件循環(huán)處理法。
回調(diào)函數(shù)法是開發(fā)者為每一個(gè)用戶界面的控制項(xiàng)寫一個(gè)獨(dú)立的用戶界面的控制函數(shù) ,當(dāng)選中某個(gè)控制項(xiàng),就調(diào)用相應(yīng)的函數(shù)進(jìn)行事件處理。在循環(huán)處理法中,只處理GUI控制 項(xiàng)所產(chǎn)生的COMMIT事件。通過Get User Event函數(shù)過濾,將所有的COMMIT事件區(qū)分開,識(shí)別 出是由哪個(gè)控制項(xiàng)所產(chǎn)生的事件,并執(zhí)行相應(yīng)的處理。
第三步:應(yīng)用函數(shù)/VI集與應(yīng)用程序軟件包編寫。應(yīng)用函數(shù)/VI集需針對(duì)具體儀器模塊 功能進(jìn)行編程,應(yīng)用程序軟件包只是一些功能強(qiáng)大、需要完善的數(shù)據(jù)處理能力的模塊才需要 提供,如波形分析儀模塊、DSP模塊等。
圖4是基于虛擬儀器的系統(tǒng)測(cè)試流程。
3、結(jié)語
本文探討了虛擬儀器的基本組成,以及實(shí)際的虛擬儀器軟硬件設(shè)計(jì)的一般方法,這些方法經(jīng)過實(shí)際設(shè)計(jì)工作運(yùn)用證明是可靠的,可供系統(tǒng)工程技術(shù)人員在組建具體的基于VXI總線的虛擬儀器數(shù)據(jù)采集、測(cè)試時(shí)參考使用。
參考文獻(xiàn)
[1] 趙勇.虛擬儀器軟件平臺(tái)和發(fā)展趨勢(shì)[J].國外電子測(cè)量技術(shù),2002,(1)
[2] 陳光禹.VXI總線測(cè)試平臺(tái)[M].北京:電子科技大學(xué)出版社,1996
[3] 孫昕,張忠亭,薛長斌.集成VXI總線自動(dòng)測(cè)試系統(tǒng)的方法[J].測(cè)控技術(shù),1996,15(4)
[4] 張毅剛,彭喜元,姜寧達(dá),等.自動(dòng)測(cè)試系統(tǒng)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2001
[5] 汪紅.基于組件的虛擬儀器軟件系統(tǒng)[J].微型計(jì)算機(jī)信息,2001,( 1):76-77