本文介紹了虛擬儀器的構(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í)參考使用,。
虛擬儀器是以一種全新的理念來(lái)設(shè)計(jì)和發(fā)展的儀器,,他是90年代發(fā)展起來(lái)的一項(xiàng)新技術(shù),主要用于自動(dòng)測(cè)試,、過(guò)程控制,、儀器設(shè)計(jì)和數(shù)據(jù)分析等領(lǐng)域,其基本思想是在儀器設(shè)計(jì)或測(cè)試系統(tǒng)中盡可能用軟件代替硬件,,即“軟件就是儀器”,,他是在通用計(jì)算機(jī)平臺(tái)上,根據(jù)用戶需求來(lái)定義和設(shè)計(jì)儀器的測(cè)試功能,,其實(shí)質(zhì)是充分利用計(jì)算機(jī)的最新技術(shù)來(lái)實(shí)現(xiàn)和擴(kuò)展傳統(tǒng)儀器的功能,。
1、虛擬儀器的特點(diǎn)和構(gòu)成
1.1 虛擬儀器的特點(diǎn)
與傳統(tǒng)儀器相比,,虛擬儀器具有高效,、開(kāi)放、易用靈活,、功能強(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)功能更靈活、更高效,、更開(kāi)放,、系統(tǒng)費(fèi)用更低。通過(guò)與計(jì)算機(jī)網(wǎng)絡(luò)連接,,還可實(shí)現(xiàn)虛 擬儀器的分布式共享,,更好地發(fā)揮儀器的使用價(jià)值,。
可操作性強(qiáng),易用靈活 虛擬儀器面板可由用戶定義,,針對(duì)不同應(yīng)用可以設(shè)計(jì)不同的操作顯示界面,。使用計(jì)算機(jī)的 多媒體處理能力可以使儀器操作變得更加直觀、簡(jiǎn)便,、易于理解,,測(cè)量結(jié)果可以直接進(jìn)入數(shù) 據(jù)庫(kù)系統(tǒng)或通過(guò)網(wǎng)絡(luò)發(fā)送,。測(cè)量完后還可打印,、顯示所需的報(bào)表或曲線,這些都使得儀器的 可操作性大大提高而且易用,、靈活,。
1.2 虛擬儀器的構(gòu)成
虛擬儀器的構(gòu)建主要從硬件電路的設(shè)計(jì)、軟件開(kāi)發(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)以及良好的開(kāi)放性能等優(yōu)點(diǎn),因此自1987被首次推出后迅速得到各大儀 器生產(chǎn)廠家的認(rèn)可,,目前 VXI模塊化儀器被認(rèn)為是虛擬儀器的最理想平臺(tái),,是儀器硬件的發(fā) 展方向。由于VXI虛擬儀器的硬件平臺(tái)的基本組成是一些通用模塊和專用接口,。因此硬件電 路的設(shè)計(jì)一般可以選擇用現(xiàn)有的各種不同的功能模塊來(lái)搭建,。通用模塊包括:信號(hào)調(diào) 理和高速數(shù)據(jù)采集;信號(hào)輸出與控制,;數(shù)據(jù)實(shí)時(shí)處理,。這3部分概括了數(shù)字化儀 器的基本組成。將具有一種或多種功能的通用模塊組建起來(lái),,就能構(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ǔ)器器件不過(guò)是專用寄存器基器件,,用來(lái)保存和傳輸 大量數(shù)據(jù)。擴(kuò)展器目前是備用件,,為今后新型器件提供發(fā)展通道,。將VXI儀器制作成寄存器 基器件,還是消息基器件是首先要做出的決策,。寄存器基器件的通信情況極像VME總線器件 ,,是在低層用二進(jìn)制信息編制程序。他的明顯優(yōu)點(diǎn)在于速度寄存器基器件完全是在 直接 硬件控制這一層次上進(jìn)行通信的,。這種高速通信可以使測(cè)試系統(tǒng)吞吐量大大提高,。因此,寄 存器基器件適用于虛擬儀器中信號(hào)/輸出部分的模塊(如開(kāi)關(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)處理部分的模塊,。
軟件的開(kāi)發(fā)與設(shè)計(jì)包括3部分:VXI總線接口軟件,、儀器驅(qū)動(dòng)軟件和應(yīng)用軟件(軟面板) 。軟件結(jié)構(gòu)如圖1所示,。
VXI總線接口軟件由零槽控制器提供,,包括資源管理器、資源編輯程序,、交互式控制程序和 編程函數(shù)庫(kù)等,。該軟件在編程語(yǔ)言和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)條、開(kāi)關(guān)按鈕,、報(bào)警裝 置等功能部件,,而且應(yīng)還具有多個(gè)連貫操作面板、在線幫助功能等,。
2,、虛擬儀器在數(shù)據(jù)采集中的應(yīng)用
利用虛擬儀器制作數(shù)據(jù)采集器可以按照硬件設(shè)計(jì)、軟件設(shè)計(jì)兩個(gè)步驟來(lái)完成,。
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í)地在采集過(guò)程中 將數(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總線通用接口消息基接口和寄存器基接口。消 息基接口的作用是通過(guò)總線傳送命令,,從而控制儀器硬件的操作,。通用寄存器基接口是由寄存器簡(jiǎn)單的讀寫(xiě)來(lái)控制儀器硬件的操作。利用消息基接口進(jìn)行設(shè)計(jì),,具體消息基接口的框圖見(jiàn)圖2,。
(3) 采樣通道控制
為了滿足幾種典型系統(tǒng)通道控制的要求,,使通道的數(shù)量足夠多,通道的選取比較靈活,,可以利用寄存器電路,、可預(yù)置計(jì)數(shù)器電路以及一些其他邏輯電路的配合,將采樣通道設(shè)計(jì)成最多64路,、最少2路可以任意選擇,,而且可以從任意一路開(kāi)始采樣,也可以到任意一路結(jié)束采樣,,只要截止通道號(hào)大于起始通道號(hào)就可以了,。整個(gè)控制在虛擬儀器軟面板上進(jìn)行操作,通過(guò)消息基接口將命令寫(xiě)在這部分的控制寄存器中,,從而設(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ù)采集器來(lái)說(shuō)都可以在軟面 板上進(jìn)行選擇。
2.2 軟件設(shè)計(jì)
軟件是虛擬儀器的關(guān)鍵,,為使VI系統(tǒng)結(jié)構(gòu)清晰簡(jiǎn)潔,,一般可采用組件化設(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)庫(kù)(VISA)的建議,,為虛擬儀器的研 制與開(kāi)發(fā)提供了標(biāo)準(zhǔn)。這也進(jìn)一步使由通用的VXI數(shù)據(jù)采集模塊,、CPU/DSP模塊來(lái)構(gòu)成虛擬儀器成為可能,。
基于虛擬儀器的數(shù)據(jù)采集器的軟件包括系統(tǒng)管理軟件,、應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序、儀器驅(qū)動(dòng)軟件和I/O接 口 軟件,。以往這4部分需要用戶自己組織或開(kāi)發(fā),,往往很困難,但現(xiàn)在NI公司提供了所有這 四部分軟件,,使應(yīng)用開(kāi)發(fā)比以往容易得多,。
下面簡(jiǎn)單介紹以NI公司的Lab Windows/CVI為開(kāi)發(fā)環(huán)境,來(lái)進(jìn)行VXI虛擬儀器的驅(qū)動(dòng)程序開(kāi)發(fā)的方法,。
第一步:生成儀器模塊的用戶接口資源文件(UIR),。用戶接口資源、文件是儀器模塊 開(kāi) 發(fā)者利用Lab Windows/CVI的用戶界面編輯器為儀器模塊設(shè)計(jì)的一個(gè)圖形用戶界面(GUI),。 一個(gè)Lab Windows/CVI的GUI由面板,、命令按鈕、圖標(biāo),、下拉菜單,、曲線、旋鈕,、指示表以及 許多其他控制項(xiàng)和說(shuō)明項(xiàng)構(gòu)成,。
第二步:Lab Windows/CVI事件驅(qū)動(dòng)編程。應(yīng)用程序開(kāi)發(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è)用戶接口事件,,并傳遞給開(kāi)發(fā)者編寫(xiě)的C語(yǔ) 言驅(qū)動(dòng)程序,。這是運(yùn)用了Windows編程的事件驅(qū)動(dòng)機(jī)制。 Lab Windows/CVI中使用不同類型的 控制項(xiàng),,在界面編輯器中將顯示不同類型的信息,,并產(chǎn)生不同操作的接口事件。在Lab Wind ows /CVI的開(kāi)發(fā)平臺(tái)中,,對(duì)事件驅(qū)動(dòng)進(jìn)行C程序編程時(shí)可采用2種基本的方法:回調(diào)函數(shù)法和 事件循環(huán)處理法,。
回調(diào)函數(shù)法是開(kāi)發(fā)者為每一個(gè)用戶界面的控制項(xiàng)寫(xiě)一個(gè)獨(dú)立的用戶界面的控制函數(shù) ,當(dāng)選中某個(gè)控制項(xiàng),,就調(diào)用相應(yīng)的函數(shù)進(jìn)行事件處理,。在循環(huán)處理法中,,只處理GUI控制 項(xiàng)所產(chǎn)生的COMMIT事件。通過(guò)Get User Event函數(shù)過(guò)濾,,將所有的COMMIT事件區(qū)分開(kāi),,識(shí)別 出是由哪個(gè)控制項(xiàng)所產(chǎn)生的事件,并執(zhí)行相應(yīng)的處理,。
第三步:應(yīng)用函數(shù)/VI集與應(yīng)用程序軟件包編寫(xiě),。應(yīng)用函數(shù)/VI集需針對(duì)具體儀器模塊 功能進(jìn)行編程,應(yīng)用程序軟件包只是一些功能強(qiáng)大,、需要完善的數(shù)據(jù)處理能力的模塊才需要 提供,,如波形分析儀模塊、DSP模塊等,。
圖4是基于虛擬儀器的系統(tǒng)測(cè)試流程,。
3、結(jié)語(yǔ)
本文探討了虛擬儀器的基本組成,,以及實(shí)際的虛擬儀器軟硬件設(shè)計(jì)的一般方法,,這些方法經(jīng)過(guò)實(shí)際設(shè)計(jì)工作運(yùn)用證明是可靠的,可供系統(tǒng)工程技術(shù)人員在組建具體的基于VXI總線的虛擬儀器數(shù)據(jù)采集,、測(cè)試時(shí)參考使用,。
參考文獻(xiàn)
[1] 趙勇.虛擬儀器軟件平臺(tái)和發(fā)展趨勢(shì)[J].國(guó)外電子測(cè)量技術(shù),2002,(1)
[2] 陳光禹.VXI總線測(cè)試平臺(tái)[M].北京:電子科技大學(xué)出版社,1996
[3] 孫昕,張忠亭,,薛長(zhǎng)斌.集成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