喻波

【摘 要】虛擬儀器的驅動技術對虛擬儀器能否正常運行至關重要,是虛擬儀器中最關鍵的技術。虛擬儀器的驅動技術就是通過模塊化編程的方法,把對儀器的一系列操作集合在一起形成儀器驅動程序,如初始化儀器、配置儀器、讀取測試結果等,避免了程序員在對同樣儀器開發新的應用時進行重復工作。本文簡單介紹了虛擬儀器的驅動技術的概況和發展歷程,詳細論述了主要的儀器驅動器技術規范SCPI、VPP和IVI的基本原理和層次結構。
【關鍵詞】虛擬儀器 SCPI VPP IVI
1概述
虛擬儀器的驅動技術對虛擬儀器能否正常運行至關重要,是虛擬儀器中最關鍵的技術。它一方面與具體儀器通信,一方面與更高層的軟件或使用儀器驅動程序的用戶通信。
為了降低開發成本,減小開發難度,縮短研發周期,提高系統穩定性,自動測試系統中大量采用了商用貨架產品COTS。
而商用產品更新換代很快,為了延長測試系統的壽命,往往需要進行儀器更換;另一方面,當被測對象測試需求發生變化時,也可能要求對儀器進行更新換代,這就存在兼容性問題。
2 主要的虛擬儀器驅動技術
隨著測試系統的不斷發展,儀器驅動器技術規范也經歷了從 IEEE488.2、SCPI、VPP儀器驅動器到 IVI儀器驅動器的發展。
下面對SCPI、VPP和IVI分別加以論述:
2.1 SCPI
SCPI(Standard Commands for Programmable Instruments)即可編程儀器標準命令,是建立在IEEE488.2提出的標準代碼和格式之上的,包含了IEEE488.2通用命令和SCPI儀器特定控制命令。
IEEE488.2通用命令規定了儀器必須執行的命令,它與測量無關,用來實現重設(reset),自測試(self-test),狀態查詢(status byte query)等。SCPI儀器特定控制命令用以執行測量,儀器狀態查詢,獲取測試數據等,包括所有的測試函數和一些特殊的功能函數。不同的儀器具有不同控制命令。但命令的格式相同,都是采取層次化結構,每個根命令層次下可能有許多低層次命令,呈樹狀向下伸展,只有指定完整的路徑才能執行較低層次的命令。SCPI與過去的儀器命令最大的區別是:描述的是試圖測量的信號而不是用測量該信號所用的儀器。
2.2 VPP
眾所周知,在設計、組建自動測試系統中,儀器的編程是一個系統中最費時費力的部分。系統中的儀器可能由各個儀器供應廠家提供,而且系統設計人員對所有的儀器既需要完成底層的儀器I/O操作,又需要高層的儀器互換能力,這大大增加了系統設計人員的負擔,因此儀器用戶總是想方設法將儀器編程結構化、模塊化以便控制特定儀器的程序能反復使用。因此,一方面對儀器編程語言推出了標準化要求;另一方面,需要定義一層具有獨立性的模塊化儀器驅動程序,亦即具有相對獨立性的儀器驅動程序。
基于以上原因,VXI即插即用聯盟制定了VPP(VXI Plug &Play)儀器驅動規范標準,它詳細地規定了VXI總線即插即用風格的虛擬儀器系統的儀器驅動程序的結構和設計。
VPP規范的一個重要結果就是將儀器驅動器作為儀器的一部分,由儀器廠家提供。 VPP儀器驅動程序封裝了為完成儀器操作和控制所必需的所有底層操作,無論是消息基還是寄存器基的儀器。這就使得測試系統開發人員不必從最基礎的VISA語句寫起,也無需了解儀器的具體命令,只要調用儀器驅動程序模塊即可完成應用程序的開發工作,大大提高了測試開發的效率。
2.3 IVI
雖然HP VEE、LabVIEW、Lab Windows/ CVI 及中文VPP 等跨平臺開發環境,通過不同的API 接口保證了改變操作系統和編程語言無需修改測試程序,而通過VISA 規范標準,不同廠家的儀器在這些平臺上實現了互操作性。但是,如果更換硬件設備,則必須修改測試程序,換句話說,也就是虛擬儀器不具有可互換性,這是由于不同硬件廠商提供的儀器驅動程序(或I/O 接口程序) 之間缺乏統一的編程接口而引起的。這一情況限制了測試系統開發周期的進一步縮短和系統成本的進一步降低。特別是對于軍用測試系統,壽命一般長達20~30 年。在很多時候,儀器硬件不是過時就是需要更新,而且軍用測試軟件工具和標準化需要巨額投資。隨著技術的更新,這些軟件和標準的維護費用昂貴,又難以升級。所以,更加迫切地需要一種無需改動程序代碼就可用新的儀器硬件改進系統方法及儀器可互換性。
以上原因導致了IVI的出現。IVI(Interchangeable Virtual Instrument)即可互換虛擬儀器技術規范是由IVI基金會于1998年發布的,旨在提高可互換性、提供更好的性能、減少開發和維護的費用。目前仍在不斷完善中。IVI規范為在儀器級別上實現軟件互換,盡可能實現儀器驅動程序和測試程序代碼的可重用性作出了巨大的貢獻。
IVI驅動程序類型如圖5所示,可以看到,IVI規范把儀器驅動分為IVI類驅動器(Class Driver)和IVI特定驅動器(Specific Driver),而IVI特定驅動器又由IVI類兼容(Class-compliant)特定驅動器和IVI定制特定驅動器組成。
IVI規范引入了儀器類的概念,完整定義了某個已定義類儀器的所用特性和一致的編程接口。IVI類驅動器對于實現儀器互換是必需的。目前已定義的類驅動規范有8種:直流電源,數字萬用表,函數發生器,開關,示波器,功率計,射頻信號發生器,頻譜分析儀,成熟的只有5種。
IVI內部模型與VPP內部模型最大的區別在于它的引擎機制。IVI 引擎將決定哪個特定驅動器和儀器建立通話鏈路,同時也包含如何去獲取、確認和更新儀器屬性的方法。建立在由IVI引擎驅動的屬性機制的基礎上,IVI實現了狀態緩存、范圍檢測、狀態檢測及儀器仿真功能。
IVI驅動器的互換性體現在由類驅動器向特定驅動器的映射機制上。不用更改測試程序,只通過更改配置文件就可實現驅動器的互換。特定驅動器按照IVI規范實現外部接口,內部采用VPP系統聯盟的驅動器結構和底層VISA I/O庫來實現。可以說,IVI驅動器在結構上是VPP驅動器的超集。
3結語
由于具有便攜性好、可靠性高、環境適應性強、能進行快速組合以滿足多種檢測方案的要求等顯著優點,虛擬儀器測試技術的應用越來越廣泛,而作為最重要組成的驅動技術也必將隨著虛擬儀器測試技術的飛速發展而日新月異。