虛擬儀器概述
計算機在測試和自動化領(lǐng)域中的應(yīng)用,導(dǎo)致了儀器“驅(qū)動器”概念的誕生,驅(qū)動器又稱驅(qū)動程序。儀器驅(qū)動器是介于計算機與儀器硬件設(shè)備之間的軟件中間層,由函數(shù)庫、實用程序、工具套件等組成,是一系列軟件代碼模塊的統(tǒng)稱。它駐留在計算機中,是連接計算機和儀器的橋梁和紐帶。采用驅(qū)動器可以使計算機有能力控制物理儀器設(shè)備,隨著VXI、PXI等標(biāo)準(zhǔn)總線的出現(xiàn),開創(chuàng)了測試系統(tǒng)發(fā)展的嶄新空間——虛擬儀器(Virtual Instruments)。虛擬儀器代表著從傳統(tǒng)硬件為主的測試系統(tǒng)到以軟件為中心的測試系統(tǒng)的根本性轉(zhuǎn)變。
1 技術(shù)規(guī)范回顧
計算機在測試領(lǐng)域的應(yīng)用經(jīng)歷了總線型儀器、PC儀器、虛擬儀器等不同的發(fā)展階段。伴隨著這一過程,儀器驅(qū)動器技術(shù)規(guī)范以通用性為基本出發(fā)點,儀器互換性和互操作規(guī)程性以及軟件移植性為根本指導(dǎo)原因,從最初的IEEE-488.2、SCPI(Standard Command for Programming Instrument)發(fā)展到現(xiàn)在的IVI-MSS(Measurement and Stimulus Subsystem)、IVI-Signal Interface,已經(jīng)走過了艱辛而漫長的歷程。它們建立在Windows操作系統(tǒng)驅(qū)動程序設(shè)計模式VxD和WDM(Windows Driver Model)之上,并融入了儀器操作的具體內(nèi)容。
1.1 IEEE 488.2
IEEE-488是1975年由IEEE發(fā)布的一個重要的儀器控制總線標(biāo)準(zhǔn)。IEEE-488.1定義了計算機和儀器之間的硬件接口規(guī)范;IEEE-488.2定義了TPS(Test Program Set)和儀器之間的軟件接口規(guī)范。IEEE-488.2規(guī)定了數(shù)據(jù)代碼和格式,用一組公用命令和協(xié)議定義了測試系統(tǒng)中控制器和儀器之間的通信標(biāo)準(zhǔn),共有39條,這些命令提供了儀器的內(nèi)部管理功能。IEEE-488.2沒有嚴(yán)格的語義定義,同樣的功能不同廠商要用不同的命令來實現(xiàn),而且這一標(biāo)準(zhǔn)儀適合于GPIB類儀器,通用性、互換性很差。
1.2 SCPI
IEEE-488.2沒有涉及為了提供測量和激勵所必需的命令。1990年,在IEEE-4888.2標(biāo)準(zhǔn)和IEEE-754標(biāo)準(zhǔn)之上,制定了SCPI標(biāo)準(zhǔn)。它通過指定一組通用控制命令來實現(xiàn)對多類儀器的相同控制。在儀器功能嚴(yán)格匹配(如具有相同的精確度、測量范圍等)的前提下,可實現(xiàn)互換,擴展了儀器互換的空間。然而,這種互換性限制了儀器生產(chǎn)廠家對儀器功能的擴展,實用性差,加上SCPI編程的復(fù)雜性,通用性、互換性水平較低。
1.3 VPP
1993年,VPP(VXI Plug & Play)系統(tǒng)聯(lián)盟發(fā)布了VPP規(guī)范,該規(guī)范定義了系統(tǒng)的框架、軟件接口、軟件環(huán)境和儀器驅(qū)動器模型。它把與儀器的底層通信封裝成一些高層函數(shù),執(zhí)行儀器的控制功能。VISA(Virtual Instrument Software Architecture)作為底層I/O庫,是這一時期的主要成果。它不區(qū)分儀器的種類,用一組通用函數(shù)實現(xiàn)驅(qū)動器功能,通用性得到了很大加強。然而,跟IEEE-488.2類似,VPP驅(qū)動器接口仍沒有嚴(yán)格的語義標(biāo)準(zhǔn),儀器廠商可以根據(jù)自己的特長進行開發(fā),這使得驅(qū)動器產(chǎn)品的接口不統(tǒng)一,儀器互換性仍沒有最終實現(xiàn)。
1.4 IVI
為了實現(xiàn)儀器互換和互操作,1998年成立了IVI(Interchangeable Virtual Instruments)基金會,討論開發(fā)可互換儀器驅(qū)動模型,旨在對硬件互換、運行性能、發(fā)展彈性、質(zhì)量保證等驅(qū)動器問題進行規(guī)范。
IVI模型是IVI基金會在VPP技術(shù)規(guī)范基礎(chǔ)上制定的一種驅(qū)動器設(shè)計標(biāo)準(zhǔn)。它通過定義類驅(qū)動器和專用驅(qū)動器(獨立的軟件層)并增加儀器儀真、狀態(tài)緩存、量程監(jiān)視等機制實現(xiàn)了部分通用儀器之間的互換,提高了測試程序的開發(fā)效率。
然而,面向儀器互換的虛擬儀器設(shè)計目標(biāo),IVI模型仍然存在以下不足:
(1)只適合同類儀器的互換,不能實現(xiàn)不同類儀器或某些具備兩類、多類儀器功能的綜合性儀器之間的互換。
(2)IVI類驅(qū)動器只能統(tǒng)一某類儀器中80%的儀器功能,而其它20%功能只能通過專用驅(qū)動器來實現(xiàn)。
(3)可用標(biāo)準(zhǔn)較少。目前只完成了示波器、萬用表、函數(shù)發(fā)生器、多路開關(guān)等九種儀器的類驅(qū)動器的標(biāo)準(zhǔn)化。
(4)標(biāo)準(zhǔn)開放程度低。IVI模型只適合于通用儀器,比如萬用表等,而對某些專用儀器(如數(shù)據(jù)采集卡)不適用。
1.5 IVI-MSS
為了改進IVI模型存在的不足,IVI基金會開始制定IVI-MSS和IVI-Signal Interface規(guī)范,它們是在IVI模型的基礎(chǔ)上發(fā)展起來的,分別實現(xiàn)基于功能和信號的儀器互換操作。其中IVI-MSS于2001年2月發(fā)布,現(xiàn)已經(jīng)是成熟的規(guī)范,而IVI-Signal Interface尚待發(fā)布。
如圖1所示,基于IVI-MSS規(guī)范的虛擬儀器測試軟件共包括五部分。用戶應(yīng)用程序是IVI-MSS Solution的運行環(huán)境,它通過調(diào)用IVI-MSS Server提供的編程接口實現(xiàn)對儀器資源的訪問;IVI-MSS Server是獨立于測試儀器資源軟件層,它封裝了測試算法,對外提供面向測試功能需求的編程接口,該接口在被用戶應(yīng)用于程序調(diào)用時作為“角色”向用戶提供測試服務(wù);RCM是連接IVI-MSS Server和儀器Driver的軟件層,在RCM內(nèi)部封裝了儀器訪問細節(jié),對外提供RCM接口與IVI-MSS Server交互。RCM通過SCPI命令、VISA函數(shù)和IVI驅(qū)動器等實現(xiàn)對物理儀器的訪問。
IVI-MSS中IVI-MSS Solution作為一個獨立的軟件層,為儀器互換提供了解決方案;RCM由開發(fā)人員根據(jù)需求來定義,對于不同的測試需求,即使是同一測試器平臺,RCM也是不同的。在更換儀器后,只要提供與原始儀器功能相同或相當(dāng)?shù)腞CM,就可實現(xiàn)相同的測試功能,這樣大大拓展了儀器互換的空間。