虛擬儀器驅(qū)動(dòng)器綜述
摘要:驅(qū)動(dòng)器是連接虛擬儀器物理硬件和測(cè)試應(yīng)用程序的橋梁和紐帶,回顧了虛擬儀器驅(qū)動(dòng)器技術(shù)規(guī)范的發(fā)展歷程。在分析規(guī)范的基礎(chǔ)上給出了兩種驅(qū)動(dòng)器設(shè)計(jì)類型,預(yù)測(cè)了其今后的發(fā)展趨勢(shì)。分析了驅(qū)動(dòng)器發(fā)展過程中的相關(guān)支撐技術(shù),論述了我國(guó)的研究現(xiàn)狀,指出基于組件技術(shù)的信號(hào)型驅(qū)動(dòng)器設(shè)計(jì)是虛擬儀器驅(qū)動(dòng)器的發(fā)展方向。
關(guān)鍵詞:虛擬儀器 驅(qū)動(dòng)器 信號(hào)接口 COM 軟件工程
計(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),開創(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ā)展階段。伴隨著這一過程,儀器驅(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)走過了艱辛而漫長(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沒有嚴(yán)格的語義定義,同樣的功能不同廠商要用不同的命令來實(shí)現(xiàn),而且這一標(biāo)準(zhǔn)儀適合于GPIB類儀器,通用性、互換性很差。
1.2 SCPI
IEEE-488.2沒有涉及為了提供測(cè)量和激勵(lì)所必需的命令。1990年,在IEEE-4888.2標(biāo)準(zhǔn)和IEEE-754標(biāo)準(zhǔn)之上,制定了SCPI標(biāo)準(zhǔn)。它通過指定一組通用控制命令來實(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)器接口仍沒有嚴(yán)格的語義標(biāo)準(zhǔn),儀器廠商可以根據(jù)自己的特長(zhǎng)進(jìn)行開發(fā),這使得驅(qū)動(dòng)器產(chǎn)品的接口不統(tǒng)一,儀器互換性仍沒有最終實(shí)現(xiàn)。
1.4 IVI
為了實(shí)現(xiàn)儀器互換和互操作,1998年成立了IVI(Interchangeable Virtual Instruments)基金會(huì),討論開發(fā)可互換儀器驅(qū)動(dòng)模型,旨在對(duì)硬件互換、運(yùn)行性能、發(fā)展彈性、質(zhì)量保證等驅(qū)動(dòng)器問題進(jìn)行規(guī)范。
IVI模型是IVI基金會(huì)在VPP技術(shù)規(guī)范基礎(chǔ)上制定的一種驅(qū)動(dòng)器設(shè)計(jì)標(biāo)準(zhǔn)。它通過定義類驅(qū)動(dòng)器和專用驅(qū)動(dòng)器(獨(dú)立的軟件層)并增加儀器儀真、狀態(tài)緩存、量程監(jiān)視等機(jī)制實(shí)現(xiàn)了部分通用儀器之間的互換,提高了測(cè)試程序的開發(fā)效率。
然而,面向儀器互換的虛擬儀器設(shè)計(jì)目標(biāo),IVI模型仍然存在以下不足:
(1)只適合同類儀器的互換,不能實(shí)現(xiàn)不同類儀器或某些具備兩類、多類儀器功能的綜合性儀器之間的互換。
(2)IVI類驅(qū)動(dòng)器只能統(tǒng)一某類儀器中80%的儀器功能,而其它20%功能只能通過專用驅(qū)動(dòng)器來實(shí)現(xiàn)。
(3)可用標(biāo)準(zhǔn)較少。目前只完成了示波器、萬用表、函數(shù)發(fā)生器、多路開關(guān)等九種儀器的類驅(qū)動(dòng)器的標(biāo)準(zhǔn)化。
(4)標(biāo)準(zhǔn)開放程度低。IVI模型只適合于通用儀器,比如萬用表等,而對(duì)某些專用儀器(如數(shù)據(jù)采集卡)不適用。
1.5 IVI-MSS
為了改進(jìn)IVI模型存在的不足,IVI基金會(huì)開始制定IVI-MSS和IVI-Signal Interface規(guī)范,它們是在IVI模型的基礎(chǔ)上發(fā)展起來的,分別實(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)境,它通過調(diào)用IVI-MSS Server提供的編程接口實(shí)現(xiàn)對(duì)儀器資源的訪問;IVI-MSS Server是獨(dú)立于測(cè)試儀器資源軟件層,它封裝了測(cè)試算法,對(duì)外提供面向測(cè)試功能需求的編程接口,該接口在被用戶應(yīng)用于程序調(diào)用時(shí)作為“角色”向用戶提供測(cè)試服務(wù);RCM是連接IVI-MSS Server和儀器Driver的軟件層,在RCM內(nèi)部封裝了儀器訪問細(xì)節(jié),對(duì)外提供RCM接口與IVI-MSS Server交互。RCM通過SCPI命令、VISA函數(shù)和IVI驅(qū)動(dòng)器等實(shí)現(xiàn)對(duì)物理儀器的訪問。
IVI-MSS中IVI-MSS Solution作為一個(gè)獨(dú)立的軟件層,為儀器互換提供了解決方案;RCM由開發(fā)人員根據(jù)需求來定義,對(duì)于不同的測(cè)試需求,即使是同一測(cè)試器平臺(tái),RCM也是不同的。在更換儀器后,只要提供與原始儀器功能相同或相當(dāng)?shù)腞CM,就可實(shí)現(xiàn)相同的測(cè)試功能,這樣大大拓展了儀器互換的空間。
1.6 IVI-Signal Interface
2000年,IVI基金會(huì)的Signal Interface工作組在TYX公司和HP公司的領(lǐng)域下開始制定IVI-Signal Interface標(biāo)準(zhǔn)。它基于COM(Component Object Model)技術(shù),是一系列COM組件的統(tǒng)稱。
在IVI-MSS模型基礎(chǔ)上發(fā)展起來的IVI-Signal Interface標(biāo)準(zhǔn)把原先的儀器控制命令轉(zhuǎn)化為測(cè)試信號(hào)的需求,把IVI-MSS Server功能接口進(jìn)一部封裝形成IVI-Signal Interface信號(hào)接口。這克服了“面向儀器”的TPS開發(fā)中存在的弊端,實(shí)現(xiàn)了更高層閃的儀器互換。信號(hào)接口的標(biāo)準(zhǔn)化增強(qiáng)了不同廠商儀器之間的互操作性,方便了代碼移植。同時(shí),為儀器驅(qū)動(dòng)器開發(fā)帶了巨大商機(jī),提高了IVI信號(hào)組件的開發(fā)效率和質(zhì)量,有很看好的應(yīng)用前景。
綜上,當(dāng)前占主導(dǎo)地位的驅(qū)動(dòng)器設(shè)計(jì)規(guī)范主要有兩種:VPP規(guī)范和IVI系列規(guī)范。兩種驅(qū)動(dòng)器開發(fā)規(guī)范的共同點(diǎn)是均建立在IEEE 488.2和SCPI命令以及VISA庫(kù)之上,都包括接口和內(nèi)部實(shí)現(xiàn)兩部分。不同點(diǎn)是前者已發(fā)展成熟,它以儀器本身的特征應(yīng)用于為中心,是功能驅(qū)動(dòng)的,多由儀器生產(chǎn)商朝代,接口沒有嚴(yán)格的語義標(biāo)準(zhǔn),實(shí)現(xiàn)了儀器的即插即用,沒有實(shí)現(xiàn)儀器互換和軟件移植等功能;而后者建立在VPP之上,正入在發(fā)展完善之中,它面向UUT的測(cè)試需求,是需求驅(qū)動(dòng)的,由測(cè)試系統(tǒng)集成人員或第三方軟件開發(fā)人員編寫,接口有嚴(yán)格的語義標(biāo)準(zhǔn),部分地實(shí)現(xiàn)了儀器互換性和軟件移植性,并最終向著完全實(shí)現(xiàn)而努力。目前VPP規(guī)范已被多數(shù)廠家所采納進(jìn)行自己產(chǎn)品的驅(qū)動(dòng)器開發(fā),因此將在未來很長(zhǎng)的一段時(shí)間內(nèi)占統(tǒng)治地位。但由于它在解決儀器互換性總題上無能為力,隨著IVI系列規(guī)范的進(jìn)一步完善,必將被其替代。
2 驅(qū)動(dòng)器開發(fā)
根據(jù)以上驅(qū)動(dòng)器設(shè)計(jì)規(guī)范發(fā)展回顧及分析可知,驅(qū)動(dòng)器開發(fā)也分為兩種類型:基于VPP規(guī)范的即插即用型驅(qū)動(dòng)器開發(fā)和基于IVI系列規(guī)范的互換型驅(qū)動(dòng)器開發(fā)。
2.1 即插即用型驅(qū)動(dòng)器開發(fā)
開發(fā)基于VPP規(guī)范的即插即用型驅(qū)動(dòng)器的過程分為兩步。第一是儀器驅(qū)動(dòng)器外部接口的設(shè)計(jì),它表示儀器驅(qū)動(dòng)器如何與外部軟件接口,通常提供兩種方式的接口:程序式開發(fā)接口和圖形軟面板。軟件開發(fā)者通過程序式開發(fā)接口可以理解每個(gè)儀器驅(qū)動(dòng)器函數(shù)的功能以及在應(yīng)用程序中如何調(diào)用每個(gè)函數(shù)、另一種接口方式是圖形化軟面板,通過這一軟面板可以直接操作控制物理儀器。第二是要完成儀器驅(qū)動(dòng)器的內(nèi)部模塊設(shè)計(jì),實(shí)現(xiàn)儀器的硬件功能。使用程序式開發(fā)接口的用戶了解了這一功能,可以在應(yīng)用程序中直接應(yīng)用這些模塊,而不必通過軟面板操作。
要完成第一項(xiàng)工作應(yīng)選用界面編輯功能較強(qiáng)的編程環(huán)境,減少儀器軟面板的開發(fā)時(shí)間;第二項(xiàng)工作通過調(diào)用VISA I/O庫(kù)中的函數(shù)來完成,編程語言按照VPP規(guī)程可以選用ANSI C、BASIC或者Ada等。選用合適的圖形軟件工具可以把這兩部分工作集成到一個(gè)環(huán)境下完成,省去兩部分的連接工作,例如NI公司的可視化軟件平臺(tái)LabWindows/CVI。CVI開發(fā)環(huán)境中兩部分組成:用戶界面設(shè)計(jì)器和源代碼編程器。
2.互換型驅(qū)動(dòng)器開發(fā)
與即插即用型驅(qū)動(dòng)器類似,基于IVI系列規(guī)范的互換型驅(qū)動(dòng)器開發(fā)也包括兩部分。第一是分析測(cè)試系統(tǒng)的功能需求,以功能或信號(hào)的形式分類定義驅(qū)動(dòng)器組件的接口。這些接口是對(duì)UUT測(cè)試需求的描述,有嚴(yán)格的主義標(biāo)準(zhǔn),將不隨儀器種類和軟件類型而改變,是標(biāo)準(zhǔn)的,通用的。第二是驅(qū)動(dòng)器組件接口的內(nèi)部實(shí)現(xiàn),它被封裝在組件內(nèi)部,可以根據(jù)具體的開發(fā)工具和編程人員特長(zhǎng)來開發(fā),是非標(biāo)準(zhǔn)的、特殊的。
對(duì)于基于IVI系列規(guī)范的驅(qū)動(dòng)器開發(fā),目前還沒有專業(yè)的、IVI基金會(huì)指定的開發(fā)工具。但由于其采用COM技術(shù),因此可以使用任何支持組件開發(fā)的編程平臺(tái)進(jìn)行開發(fā)。設(shè)計(jì)人員在理解技術(shù)規(guī)范的基礎(chǔ)上可以利用現(xiàn)有的圖形化編程工具(比如VC++、VB等)進(jìn)行設(shè)計(jì)。
需要說明的是,IVI是介于VPP和IVI-MSS之間的一個(gè)過渡性規(guī)范,它既有IVI-C的C語言形式,也有基于COM的IVI-COM組件形式,并且接口的嚴(yán)格語義標(biāo)準(zhǔn)目前只發(fā)布了八類儀器的技術(shù)規(guī)范,因此可以根據(jù)具體情況選用相應(yīng)工具進(jìn)行開發(fā)。
3 發(fā)展趨勢(shì)
(1)信號(hào)型驅(qū)動(dòng)器
由前面對(duì)IVI-Signal Interface標(biāo)準(zhǔn)的介紹可知,信號(hào)型驅(qū)動(dòng)面向UUT的測(cè)試需求,是需求驅(qū)動(dòng)的,符合當(dāng)前微型計(jì)算機(jī)體系結(jié)構(gòu)發(fā)展趨勢(shì),而且實(shí)現(xiàn)了更高層次的儀器互換和互操作,通用性好。隨著面向信號(hào)的商業(yè)化虛擬儀器和互操作,通用性好。隨著面向信號(hào)的商業(yè)化虛擬儀器軟件開發(fā)平臺(tái)的不斷涌現(xiàn),如PAWS、ATLAS 2K等,迫切需要給出標(biāo)準(zhǔn)化的軟件開發(fā)平臺(tái)與底層硬件模塊之間的接口,而信號(hào)型驅(qū)動(dòng)器恰好實(shí)現(xiàn)了面向信號(hào)的TPS開發(fā)平臺(tái)與底層硬件模塊的完美對(duì)接。基于以上分析,信號(hào)驅(qū)動(dòng)器將是虛擬儀器驅(qū)動(dòng)器設(shè)計(jì)標(biāo)準(zhǔn)發(fā)展的必然結(jié)果。
(2)網(wǎng)絡(luò)化驅(qū)動(dòng)器
網(wǎng)絡(luò)的普及給各個(gè)行業(yè)都帶來了巨大沖擊,測(cè)試領(lǐng)域也不例外,網(wǎng)絡(luò)化虛擬儀器和儀器網(wǎng)絡(luò)化現(xiàn)已成為當(dāng)前測(cè)試技術(shù)的一個(gè)研究熱點(diǎn)。而要想實(shí)現(xiàn)遠(yuǎn)程控制儀器就必須提供儀器設(shè)備的網(wǎng)絡(luò)化驅(qū)動(dòng)器或在現(xiàn)有儀器驅(qū)動(dòng)器的基礎(chǔ)上添加網(wǎng)絡(luò)化功能。基于此,VXI聯(lián)盟(VXI Consortium)提出了VXI-11規(guī)范,這個(gè)規(guī)范主要是對(duì)IEEE-488總線的擴(kuò)展,也就是通過TCP/IP發(fā)送IEEE-488總線命令。該擴(kuò)展的目的在于實(shí)現(xiàn)遠(yuǎn)端的客房端通過網(wǎng)絡(luò)與現(xiàn)場(chǎng)儀器通信并完成測(cè)試任務(wù),并且對(duì)用戶來講好像在本地使用儀器一樣。隨著虛擬儀器技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)化驅(qū)動(dòng)器將取得更大的發(fā)展空間。
(3)VISA兼容更多的接口類型
計(jì)算機(jī)接口技術(shù)不斷發(fā)展,涌現(xiàn)了許多商業(yè)化PC總線,如USB、Ethernet等,這也是影響虛擬儀器發(fā)展的關(guān)鍵技術(shù)之一。由于這些總線最初是為網(wǎng)絡(luò)PC和連接PC外設(shè)而設(shè)計(jì)的,要更方便地控制儀器,這些總線需要軟件構(gòu)架來簡(jiǎn)化通信并與其他一起控制標(biāo)準(zhǔn)兼容。因此,需要對(duì)虛擬儀器驅(qū)動(dòng)器標(biāo)準(zhǔn)框架VISA進(jìn)行擴(kuò)展。
(4)與商業(yè)TPS開發(fā)平臺(tái)“即插即用”
驅(qū)動(dòng)器是連接計(jì)算機(jī)和物理儀器的中間環(huán)節(jié),是虛擬儀器開發(fā)的重要資源,當(dāng)前的TPS開發(fā)平臺(tái)向著集成、高效、商家壟斷方向發(fā)展,如HP公司的VEE、NI公司的LabVIEW、LabWindows/CVI等。為了擴(kuò)展自己的市場(chǎng)空間和便于用戶開發(fā)使用,虛擬儀器硬件設(shè)計(jì)廠商或第三方軟件開發(fā)單位應(yīng)該提供與這些商業(yè)開發(fā)平臺(tái)“即插即用”的驅(qū)動(dòng)器。同時(shí),為了加強(qiáng)合作和簡(jiǎn)化集成,商業(yè)TPS開發(fā)商也應(yīng)該給出與自己平臺(tái)兼容的驅(qū)動(dòng)器設(shè)計(jì)標(biāo)準(zhǔn)并提供相關(guān)技術(shù)支持。
(5)源代碼級(jí)開放式結(jié)構(gòu)
當(dāng)前,從源代碼開放的角度來講,虛擬儀器設(shè)計(jì)領(lǐng)域存在三種驅(qū)動(dòng)器類型:封閉黑盒型,封裝型和開放源代碼型。其中封閉黑盒型不提供對(duì)源代碼的訪問,不具備擴(kuò)展和編寫儀器新功能的能力;封裝型驅(qū)動(dòng)可作為驅(qū)動(dòng)器二次開發(fā)的原始接口或封裝器;而開放源代碼型驅(qū)動(dòng)原生于相應(yīng)的開發(fā)環(huán)境,提供對(duì)源代碼的完全訪問權(quán)限,經(jīng)過優(yōu)化和改進(jìn)后能易于使用并具有集成的靈活性,能讓開發(fā)人員定制自己的功能需求,把開發(fā)觸解伸向了儀器設(shè)備的心臟地帶。
虛擬儀器的一個(gè)重要特點(diǎn)是硬件的功能由軟件來定制,而從某種層面上講,驅(qū)動(dòng)器是儀器功能的描述和表達(dá)。當(dāng)前多種儀器硬件模塊開發(fā)廠商在發(fā)布自己的產(chǎn)品時(shí),都把驅(qū)動(dòng)器作為“黑盒子”來發(fā)布,這不利于客戶定制自己需要的功能和進(jìn)行二次開發(fā)。另一方面,由于軟件開發(fā)換代相當(dāng)迅速,這也給驅(qū)動(dòng)器開發(fā)提供了新的要求,F(xiàn)在多數(shù)儀器驅(qū)動(dòng)在向.NET平臺(tái)移植時(shí)都存在各種各樣的困難,而驅(qū)動(dòng)器源代碼級(jí)開放是解決這些總是的前提,不僅如此,開放源代碼型驅(qū)動(dòng)還能簡(jiǎn)化與儀器硬件的連接,使開發(fā)人員不僅是驅(qū)動(dòng)器的使用者而且是擁有者,因此,儀器驅(qū)動(dòng)器采用開放源代碼式結(jié)構(gòu)將是一個(gè)重要的發(fā)展方向。
(6)可視化配置操作
可視化與完備的人機(jī)交互能力是現(xiàn)場(chǎng)代軟件開發(fā)的基本要求,作為虛擬儀器核心的驅(qū)動(dòng)器在這方面應(yīng)能滿足客房的更高的需求。把軟件開發(fā)人員從繁重的代碼編寫任務(wù)中解脫出來,而把主要精力放在測(cè)試功能的實(shí)現(xiàn)上是驅(qū)動(dòng)器設(shè)計(jì)迫切需要解決的問題。將儀器連接配置、編寫測(cè)試代碼、測(cè)試任務(wù)的組合設(shè)定等繁瑣工作轉(zhuǎn)變成好人機(jī)界面下的鼠標(biāo)操作,必將簡(jiǎn)化虛擬儀器系統(tǒng)的集成開發(fā)。為此,在驅(qū)動(dòng)器設(shè)計(jì)領(lǐng)域出現(xiàn)了虛擬資源、虛擬通道等概念。它們把物理資源和通道的信息(比如量程、端口配置等)進(jìn)行封裝,通過友好的界面與開發(fā)人員進(jìn)行信息互交,實(shí)現(xiàn)了儀器控制的可視化配置操作。
(7)拓展應(yīng)用空間
儀器驅(qū)動(dòng)器是計(jì)算機(jī)控制物理儀器設(shè)備的中間環(huán)節(jié),隨著虛擬儀器的不斷發(fā)展,這一思想也拓展了嶄新的發(fā)展空間。驅(qū)動(dòng)器越來越多地以“服務(wù)”的形式為測(cè)試程序提供功能調(diào)用。如IEEE 1451.4標(biāo)準(zhǔn)給模擬傳感器定義了電子數(shù)據(jù)表格并內(nèi)嵌于其中,測(cè)試系統(tǒng)或TPS開發(fā)平臺(tái)可以通過模擬傳感受器提供的數(shù)字接口讀取電子數(shù)據(jù)表中的數(shù)據(jù)并對(duì)其進(jìn)行配置,這在一定意義上也是驅(qū)動(dòng)器應(yīng)用的新領(lǐng)域。使用基于IEEE 1451.4設(shè)計(jì)的智能傳感器可以簡(jiǎn)化傳感器的連接過程,實(shí)現(xiàn)傳感器的“即插即用”和自動(dòng)配置。ISP(Programmable in-system)技術(shù)在電子設(shè)計(jì)自動(dòng)化領(lǐng)域得到了廣泛應(yīng)用,基于此,NI公司提出的RIO(Reconfiguration I/O)技術(shù)完成了物理儀器的在線可編程控制,實(shí)現(xiàn)了用戶自定義硬件,是儀器驅(qū)動(dòng)器概念的升華。
4 關(guān)鍵技術(shù)
(1)COM技術(shù)
COM技術(shù)的核心是組件,組件是可以明確辨識(shí)和管理、可以提供某項(xiàng)服務(wù)的自包含的軟件模塊。它封裝了一定的數(shù)據(jù)(屬性)和方法(函數(shù)),并提供特定接口。開發(fā)人員通過訪問這些特定接口來使用組件,與其它程序模塊通信、交互,實(shí)現(xiàn)預(yù)期功能。組件是實(shí)現(xiàn)儀器驅(qū)動(dòng)器語言、平臺(tái)無關(guān)和網(wǎng)絡(luò)位置透明的關(guān)鍵技術(shù)。
基于組件技術(shù)的驅(qū)動(dòng)器模塊通過標(biāo)準(zhǔn)接口與其它軟件模塊通信,各個(gè)組件就像掛在“中總線”上一樣通過公共通道傳遞信息;诖,編程人員可以象“搭積木”似的開發(fā)自己的測(cè)試程序。更換儀器后,只要驅(qū)動(dòng)器接口不變就不用更改測(cè)試程序。使用驅(qū)動(dòng)器組件得儀器模擬的互換性、測(cè)試軟件的開放性和可重用性得到了根本保證,同時(shí)實(shí)現(xiàn)了軟件開發(fā)和應(yīng)用的不斷“迭代和增量”過程。
(2)多線程技術(shù)
同步、觸發(fā)、時(shí)序操作是儀器控制的客觀要求,而多線程技術(shù)是滿足這一要求的關(guān)鍵技術(shù)。Windows操作系統(tǒng)是一個(gè)多任務(wù)、多線程操作系統(tǒng),實(shí)行的是搶先式、多任務(wù)工作模式。在Windows環(huán)境中,每一個(gè)測(cè)試項(xiàng)目可以由一個(gè)線程來代表,這意味著一個(gè)測(cè)試程序可以同時(shí)完成多個(gè)測(cè)試任務(wù)。在多線程招待中系統(tǒng)會(huì)根據(jù)線程的優(yōu)先級(jí)和同步要求分配時(shí)間單元用于執(zhí)行多個(gè)線程,這樣實(shí)現(xiàn)了多任務(wù)分時(shí)占用CPU,可在一個(gè)段時(shí)間內(nèi)并行完成多個(gè)測(cè)試任務(wù)。多任務(wù)、多線程之間通過同步、通信(如共享內(nèi)存映射文件、訪問共享數(shù)據(jù)以及使用同一消息隊(duì)列等)以實(shí)現(xiàn)復(fù)雜的測(cè)試、控制邏輯。
(3)引擎技術(shù)
測(cè)試程序的儀器操作過程是TPS利用驅(qū)動(dòng)器控制硬件儀器的過程。為了優(yōu)化這一控制過程,需要引擎技術(shù),把軟件代碼的控制需求轉(zhuǎn)變成實(shí)際的物理儀器操作。測(cè)試中用到的最多的同步、觸發(fā)功能,若有多個(gè)同步步驟需要連接、高速觸發(fā),在這樣的情況下,僅需要測(cè)試碼去控制是很難滿足需求的。為此,可以設(shè)計(jì)基于引擎技術(shù)的同步觸發(fā)引擎,把測(cè)試需求編程一定的序列輸入到相應(yīng)的同步觸發(fā)引擎中。依據(jù)測(cè)試程序的執(zhí)行自行觸發(fā)這一序列,將大大提高測(cè)試效率,滿足更高的測(cè)試速率要求,使測(cè)試程序具有自主觸發(fā)和時(shí)鐘路由能力。另外,隨著便攜式、模塊化、嵌入式實(shí)時(shí)環(huán)境對(duì)虛擬儀器的要求越來越迫切,還需要開發(fā)驅(qū)動(dòng)器在這些不同環(huán)境下的運(yùn)行時(shí)引擎,以滿足各種需求。綜上,引擎技術(shù)在測(cè)試領(lǐng)域中有很大的發(fā)展空間,應(yīng)倍加重視。
(4)軟件工程技術(shù)
儀器驅(qū)動(dòng)器是對(duì)物理儀器的功能描述,軟件工程技術(shù)將能保證驅(qū)動(dòng)器設(shè)計(jì)的功能完備性。1997年由OMG(Object Management Group)發(fā)布的統(tǒng)一建模語言(UML,unified modeling language)和統(tǒng)一軟件開發(fā)過程是軟件工程領(lǐng)域中的重要成果,標(biāo)示著面向?qū)ο蠹夹g(shù)走向第二代。UML支持從系統(tǒng)需求分析到詳細(xì)設(shè)計(jì)再到系統(tǒng)的驗(yàn)證測(cè)試的全部過程,當(dāng)出現(xiàn)問題時(shí)提供跟蹤機(jī)制。使用UML會(huì)幫助設(shè)計(jì)人員在建造驅(qū)動(dòng)器框架中理解模型,把握儀器的全貌和功能、部件之間的聯(lián)系,防止過早地陷入各個(gè)模塊細(xì)節(jié)中去,有利于提高驅(qū)動(dòng)器軟件的質(zhì)量,縮短研制周期,降低開發(fā)費(fèi)用。統(tǒng)一軟件開發(fā)過程是用戶驅(qū)動(dòng)、以架構(gòu)為中心、不斷迭代和增量過程。基于這一過程,可以設(shè)計(jì)出功能完備、接口標(biāo)準(zhǔn)、易于升級(jí)換代的驅(qū)動(dòng)器。
5 國(guó)內(nèi)現(xiàn)狀
我國(guó)在虛擬儀器驅(qū)動(dòng)器研究方面取得了一定的進(jìn)展:成都電子科技大學(xué)開發(fā)出了具有自主知識(shí)產(chǎn)權(quán)的VISA庫(kù);哈爾濱工業(yè)大學(xué)電氣工程系開發(fā)的虛擬儀器軟件開發(fā)平臺(tái)—ATS95可以實(shí)現(xiàn)對(duì)VXI、GPIB等總線接口的控制;成都市1所在引起PAWS平臺(tái)的同時(shí)也對(duì)面向信號(hào)的驅(qū)動(dòng)器設(shè)計(jì)和平臺(tái)開發(fā)做了一定研究等等。但由于我國(guó)介入虛擬儀器研究比較晚,在硬件模擬方面沒有自己上規(guī)模、成系列的產(chǎn)品,導(dǎo)致了測(cè)試軟件沒有全面發(fā)展,很多關(guān)鍵技術(shù)仍處于起步階段,在驅(qū)動(dòng)器設(shè)計(jì)方面沒有自己知識(shí)產(chǎn)權(quán)的技術(shù)規(guī)范和相關(guān)產(chǎn)品,仍需要很長(zhǎng)的路要走。鑒于此,我們應(yīng)該在以下方面進(jìn)行努力:(1)開發(fā)自己的總線控制器,占領(lǐng)域虛擬儀器技術(shù)的心臟地帶;(2)設(shè)計(jì)各種儀器模塊產(chǎn)品并形成系列化,降低虛擬儀器系統(tǒng)的集成成本;(3)設(shè)計(jì)完備成熟的VISA庫(kù),把握自己的知識(shí)產(chǎn)權(quán);(4)開展面向信號(hào)的驅(qū)動(dòng)器技術(shù)研究,與國(guó)際接軌,深入研究虛擬儀器核心技術(shù)。