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