- 自動測試系統與虛擬儀器原理·開發·應用
- 劉思久 張禮勇編著
- 4260字
- 2018-12-28 22:37:42
1.2 虛擬儀器的基本概念
1.2.1 虛擬儀器的主要功能
什么是虛擬儀器?有人說:“虛擬儀器就是計算機。”也有人說:“虛擬儀器就是軟件。”在我們看來,所謂虛擬儀器,就是要盡可能地采用通用計算機及其軟件的功能來取代原先專用儀器的設備功能。對虛擬儀器來說,儀器與計算機之間的界限模糊了。由于充分發揮了通用計算機的功能,節省了大量的專用硬件設備和軟件開發成本,從而成為自動測試技術的一個重要發展方向。
注意,這里強調的是通用計算機及其軟件。因為即使是傳統的儀器設備,實際上也都含有一個、甚至多個微處理器,也都需要各種微處理器程序軟件(有時稱為固件)的支持。然而,那樣的計算機和軟件是專用的,是在特定用途下專門開發并實現特定功能的儀器設備,是不能兼做他用的。因此從整體上看,它們不是虛擬儀器,而是傳統意義下實實在在的儀器設備。
那么,什么是儀器設備的基本功能呢?又有哪些儀器的功能可以被通用計算機及其軟件實現呢?
首先,作為傳統的儀器設備,需要面板、機箱和電源。這里,面板用于人機交互,其顯示功能和操作功能分別與人的眼和手作用相當。常見的面板顯示元件包括指示燈、發光二極管、數碼管、指針儀表、字符及圖形顯示器等;常用的操作元件則包括各種按鈕、按鍵、扳鍵、旋鈕、拉桿、多路轉換開關等。而在虛擬儀器系統中,借助于通用的PC和Windows操作系統下強大的圖形功能,這些功能可以得到更好和更方便的實現。在圖1-5中,可以看到這種隨心所欲的面板安排。

圖1-5 用于人機對話的虛擬儀器控件
其次,作為現代儀器,不可避免地需要各種數據處理功能。例如,需要產生諸如脈沖、階躍、斜波、方波、正弦波、三角波、隨機波等激勵信號,對測量結果則往往需要進行頻譜分析、小波分析和包括高通、低通、帶通和帶阻等功能的各種數字濾波,也需要實現包括相關分析、回歸分析、方差分析等統計功能,以及曲線擬合、插值、積分、微分、卷積、求逆、分解等數值計算。顯然,通用計算機進行這些工作的能力要比傳統儀器中的微處理器強得多。
再次,近年來許多高檔儀器在原先專門儀器的基礎上加入了一些與信息技術相關的輔助功能,如語音報數、提示及報警的音響功能,圖文并茂的操作指導功能,測試數據轉儲和網絡通信的功能等。很明顯,通用PC強大的多媒體功能、數據庫功能、電子表格功能、TCP/IP網絡通信功能夠更方便和更圓滿地處理這類問題。
最后,也是最為重要的儀器功能是其本身的輸出激勵信號和測量輸入信號的功能。其核心是不同字長分辨率、不同轉換速度和不同抗干擾能力的模數轉換器和數模轉換器、相應的通道調理電路,以及專門的傳感器設備。顯然,通用計算機通常是不具備這些功能的。因此,要么需要在計算機內加裝專門為此設計的功能插件板,要么需要通過某種接口設備與那些具有這種基本測試功能的設備連接起來。
在當今國際市場上,GPIB通用接口總線系統和VXI儀用總線系統是兩種比較常見的選擇。前者建立在GPIB接口已為所有儀器廠家接受的基礎上,以至于用戶可以在世界范圍內不分廠家國別,從測試的角度出發選擇最理想的臺式儀器來組建系統。后者以VXI模件的形式出現在專用的VXI機箱中,儀器之間的總線連接是通過背板實現的,因此極大地提高了自動測試系統的工作速度。同時取消了傳統面板,共享了機箱電源,從而減少了公用開銷和所占空間。然而,由于這兩類系統的成本較高,在很大程度上限制了它們在民用和中小企業中的應用。對于計算機內加裝插件卡的虛擬儀器系統,其優勢在于它的價位普遍較低,因而引起很多用戶的注意。但是也確實存在不少問題,如加卡、換卡需要打開機箱,設備獨立性差;機箱內部結構限制及后面板出線方式容易引起電磁兼容性問題;臺式PC內部總線升級過快,難以穩定標準;筆記本PC空間條件下儀器的工作環境更差等。因此,人們一直希望找到一種更適于虛擬儀器系統使用的接口總線。現在看來,當前廣泛用于PC主機與其外設相互連接的通用串行總線USB就是一種不錯的選擇。
1.2.2 USB接口的基本概況
通用串行總線USB(Universal Serial Bus)最初是由Intel、DEC、IBM、康柏、微軟、NEC、北方電信等7家著名計算機和通信公司共同推出的新一代接口標準,其目的在于解決為數眾多的PC外設與有限的PC插槽之間日益增加的矛盾,于是設想用一條USB總線代替PC主板上多種復雜的接口。現在,所有PC都已配備了至少兩個USB接口,Windows 98、Windows 2000和Windows XP操作系統中也都提供了支持USB通信的驅動程序。特別是后來USB組織又增加了惠普、朗訊和飛利浦3個重要的新成員,從而為建立基于USB技術的自動測試系統奠定了基礎。
USB總線設備是如何使用呢?它又有哪些基本特點呢?
USB接口采用精心設計的4芯連結器,其中除了兩側的地線和電源線外,中間兩根信號線采用一種特別的差分電平編碼方式來實現數字信號的高速傳輸。傳輸通過3~5m的總線電纜將USB設備放到遠離PC、靠近被測對象的位置,從而可以提高系統的測試精度和電磁兼容性。如圖1-6所示,USB系統在主機內部提供一個根集線器,其后可以直接連接到各個USB設備,也可通過一級、一級的集線器以樹形方式擴充連接到多達127個設備。

圖1-6 USB虛擬儀器系統的樹形連接結構
圖1-7為在一臺筆記本電腦上連接USB集線器和USB數采設備的典型情況。這臺筆記本電腦有兩個USB外接口,其中一個直接連接到一個USB鼠標,而另一個則連接到一個USB集線器,然后通過這個集線器再分別連接到掃描儀和一個數據采集器模塊。

圖1-7 USB數據采集器實物照片
USB接口的連接可以帶電操作(熱插拔),并且具有即插即用的功能。這種帶電操作和即插即用的功能對虛擬儀器的工作具有明顯的實用意義,因為當代的微機操作系統,諸如Windows系統的啟動初始化過程十分費時。若無此功能,則對大多數用戶來說都將是無法忍受的。
USB集線器本身能為每個連接到它的設備提供500mA電流的5V電源,因此對于那些已經配備了根集線器的PC可以直接支持一些小型測試設備的工作。
數據傳輸的快速性也是USB的主要特點,在1998年推出的協議USB1.1中,規定的通信速率達到12Mbps,而在USB2.0規范中,最高的通信速率可以達到480Mbps。這樣的速率大約高于普通串口的100倍,足以滿足大多數自動測試的實際要求。
作為虛擬儀器系統中測試設備與PC主機之間的通信接口技術,USB的上述特點使其與其他計算機外設接口相比,占有十分明顯的優勢。表1-1就USB與微機的其他幾種主要接口在人們普遍關心的一些指標上進行了比較。
表1-1 常用PC接口比較

總之,面向未來的各種測試任務,基于USB總線通信的虛擬儀器提供了一種十分理想的工作方式,即將專門處理測試任務的硬件電路集中在一個離開主機、靠近測點的功能小盒(測試設備)中,而將現代儀器中的大多數工作任務留給PC主機的軟件完成。由于這種方式充分發揮了通用計算機在人機對話、分析計算、多媒體、數據庫、網絡通信等方面的巨大能力,往往產生事半功倍的效果。
1.2.3 虛擬儀器軟件開發工具
當今世界上最流行、也是公認比較成熟的自動測試系統軟件開發工具,當數美國NI公司的LabWindows/CVI、LabView、ComponentWorks和惠普公司的HP VEE等。
LabWindows/CVI是一個完整的軟件設計平臺,具有編輯、編譯、連接、調試、求助等功能,它以C語言為基礎(C for Virtual Instrument)。同時它具有交互式功能,即能夠像BASIC那樣解釋性地執行代碼,又能交互式地編寫程序。當單擊庫函數菜單的Liberary選項時會得到一個庫函數的樹形索引,沿著樹枝往下就會找到用戶需要的函數,這時出現的畫面可讓用戶添加函數所需的參數,確認后就會自動生成調用這一函數的代碼并加到源程序中,使用戶不必記住那些繁雜的函數名稱和各種參數的細節含義。從自動測試的角度看,LabWindows/CVI函數庫主要提供了以下幾方面的功能:
(1)用戶界面的設計,通過在面板上加控件的方法實現。
(2)總線接口控制,實際接口驅動庫函數隨硬件控制卡提供。
(3)數據分析、計算的函數集合。
(4)通過動態數據交換DDE方式同數據庫等其他軟件聯系,也支持TCP/IP網絡功能。
(5)支持儀器驅動器和儀器類驅動器。
LabView的面向自動測試的功能與LabWindows/CVI相似,但其開發應用系統的方法很不相同。如圖1-8所示LabView的程序不是以文本方式描述,而是所謂的“圖形編程”,用戶界面上的每一個控制都對應于框圖中的一個元件。通過連線把這些元件連接起來,以此表明信號的流程和走向,用戶也能加入一些邏輯或算術運算的元件或者濾波器等信號處理的元件,從而使測得的結果能夠被分析和計算。此外,對諸如條件分支、循環、跳轉等程序控制語句也采用圖形編程的方法,即用圖形框把判斷條件、循環體框起來,再加以不同的特性說明。有人認為這種編程方法可使從來沒有編程經驗的用戶避免學習編程語言的麻煩,并認為是編程語言發展的趨勢。但也有人認為,如果完全沒有編程經驗,要很好地理解那些條件、循環、嵌套過程以及處理出/入口參數也不比學習一種語言更容易。特別是對大型的應用程序,盡管可以分層設計,但考慮總體設計和分塊調試都還存在一些問題。惠普公司推出的HP VEE同NI的LabView很相似,它也是一種基于圖形的編程語言,它所提供的函數庫的功能和種類也同NI的軟件相似。

圖1-8 圖形編程軟件的開發工具
ComponentWorks是NI公司推出的另一種虛擬儀器工具,與上述軟件不同,它不是一個獨立的集成開發環境,而是提供一系列支持測試功能的控件集合,這些控件可以很方便地加入到VB等語言開發環境中,這樣用戶可以用熟悉的語言來開發自己的自動測試系統。
ATS98是在國家95科技攻關項目支持下建立的一種開發工具,它以Microsoft Windows下的ActiveX技術為基礎,通過標準的VB控件、Windows DLL動態連接庫函數和其他VB模塊,組成方便用戶使用的各種虛擬儀器功能,并通過一個編程指導器將其和VB開發環境有機地結合起來。ATS98軟件工具的使用分為3個層次,首先對從事自動測試工作的工程師,可以利用這種軟件工具提供的用戶接口虛擬儀器控件迅速建立起測試系統的計算機可控操作界面;利用其總線接口虛擬儀器庫函數操作GPIB和VXI儀器的硬件功能;利用其分析計算虛擬儀器庫函數實現數據的處理;同時也可在其虛擬儀器輔助函數的支持下,實現諸如多媒體操作、數據庫/電子表格處理、網絡通信等PC系統功能的自然調用。從而極大地提高了軟件開發的效率和程序運行水平。其次,對一般儀器使用者,可以利用這種軟件工具的典型虛擬儀器面板,像使用普通儀器那樣,在計算機屏幕上,通過操作鼠標器控制諸如數字儀表、示波器、信號發生器、頻譜分析儀、邏輯分析儀等虛擬儀器面板,讀取測試結果,并可直接存盤、打印、聯網,實現資源共享。最后,對專門行業的測試任務,可以利用這種軟件工具的上層專業框架功能,建立諸如數據采集、系統辨識、決策處理等以自動測試與信息處理為基礎的自動化專業系統。這里,數據采集器是現代測試工作的基礎,大多數測試任務都可以利用它來實現;系統辨識機將測試工作由對獨立參數的量值測量發展到對動態過程的特性測試;基于知識的決策器則把測試進一步與專家系統結合起來。