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