国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種IVI-COM儀器驅(qū)動程序的設(shè)計方法

2020-03-27 17:02:10朱建剛
儀器儀表用戶 2020年4期
關(guān)鍵詞:互換性驅(qū)動程序專用

朱建剛

(中電科儀器儀表有限公司,山東 青島 266555)

在測試領(lǐng)域,虛擬儀器技術(shù)是最新的自動測試技術(shù)之一。IVI儀器驅(qū)動程序在虛擬儀器驅(qū)動程序?qū)用嫔隙x了全新的規(guī)范和架構(gòu),使同一類儀器實現(xiàn)了一定的互換性,降低了開發(fā)測試系統(tǒng)過程的成本。本文將介紹應(yīng)用Nimbus Driver Studio開發(fā)IVI-COM驅(qū)動程序的過程,并在上位機(jī)編寫控制程序調(diào)用儀器驅(qū)動,實現(xiàn)對儀器的遠(yuǎn)程控制。

1 IVI-COM儀器驅(qū)動程序介紹

IVI儀器驅(qū)動程序定義了儀器的編程接口,使儀器的硬件接口與測試系統(tǒng)的應(yīng)用程序?qū)崿F(xiàn)了分離,不僅將測試系統(tǒng)的開發(fā)變得更加高效,還使儀器具備了一定的可互換特性[1]。IVI規(guī)范主要定義了IVI類驅(qū)動器和IVI專用驅(qū)動器。IVI類驅(qū)動程序介于應(yīng)用程序和IVI專用驅(qū)動程序之間,實現(xiàn)應(yīng)用程序?qū)S抿?qū)動程序的調(diào)用。IVI專用驅(qū)動程序是實現(xiàn)儀器控制的主要驅(qū)動程序,包括類兼容專用驅(qū)動程序和定制專用驅(qū)動程序[2]。

圖1 IVI驅(qū)動結(jié)構(gòu)圖Fig.1 IVI Drive structure diagram

COM是一種以組件為發(fā)布單元的對象模型,它定義了不同組件之間的交互規(guī)范。1個組件的形式是1個動態(tài)鏈接庫(dll)或1個可執(zhí)行文件(exe)。COM組件在提供組件接口標(biāo)準(zhǔn)的同時,還引入了面向?qū)ο蟮乃枷?,每個COM組件對應(yīng)1個或多個COM對象,每個對象包含多個接口,每個接口又由多個用來實現(xiàn)用戶應(yīng)用程序功能的函數(shù)組成[3]。

IVI-COM儀器驅(qū)動程序是應(yīng)用了COM API的IVI驅(qū)動程序,而僅是IVI-COM驅(qū)動程序中的API并不能實現(xiàn)儀器的互換性,IVI基金會為此定義了IVI-COM會話工廠(IVICOM Session Factory)組件。應(yīng)用程序通過邏輯名訪問IVICOM會話工廠,會話工廠通過該邏輯名與IVI配置文件中的邏輯名匹配,得到實際的IVI-COM驅(qū)動器指針,從而實現(xiàn)動態(tài)加載IVI-COM驅(qū)動器的動態(tài)庫[4]。驅(qū)動程序包含儀器通用功能對應(yīng)的操作函數(shù),通過操作函數(shù)實現(xiàn)對儀器的控制[5],IVI驅(qū)動結(jié)構(gòu)如圖1所示。

2 IVI-COM儀器驅(qū)動程序設(shè)計開發(fā)

Nimbus Driver Studio軟件集成在Microsoft Visual Studio開發(fā)環(huán)境下,可以完成IVI-COM以及IVI-C儀器驅(qū)動程序的開發(fā)工作。接下來,以IviRFSigGen射頻信號發(fā)生器類規(guī)范的儀器驅(qū)動程序“Ceyear1435RfSigGen”為例,設(shè)計某款信號發(fā)生器的IVI-COM儀器驅(qū)動程序。

2.1 搭建開發(fā)環(huán)境

本次開發(fā)基于Microsoft Windows 7操作系統(tǒng),首先安裝Microsoft Visual Studio 2010軟件包;之后安裝Nimbus開發(fā)組件。其中,Nimbus組件集成在Visual Studio 2010開發(fā)環(huán)境下。

2.2 創(chuàng)建IVI-COM儀器驅(qū)動框架

啟動Visual Studio 2010,在新建項目對話框中選擇IVI-COM Projects下的IVI-COM Driver模板。根據(jù)生成向?qū)В来翁砑禹椖康拿Q、儀器類(IviRFSigGen類)、LXI類型以及屬性等,生成IVI-COM驅(qū)動解決方案,并建立驅(qū)動框架。解決方案中各工程之間的關(guān)系如圖2所示。

圖2 驅(qū)動解決方案包含工程之間關(guān)系Fig.2 Relationship between projects in driving solutions

IVI-COM儀器驅(qū)動程序包含3個根接口,分別是IIviDriver、IIviRFSigGen及ICeyear1435RfSigGen。 其中,IIviDriver是儀器固有功能根接口,該接口下包含IiviComponentIdentity、IIviDriver、IiviDriverIdentity、IiviDriverOperation及IiviDriverUtility共5個子接口,該接口具有可互換性;IIviRFSigGen是儀器類兼容根接口,該接口是射頻信號發(fā)生器類儀器基本功能的實現(xiàn)接口,包含的功能子接口有ALC、AnalogModulation(包含AM、FM及PM)、DigitalModulation( 包 含Arb及Base)、IQ、LFGenerator、PulseGenerator、PulseModulation、ReferenceOscillator、RF、Sweep等[6],該接口具有可互換性;ICeyear1435RfSigGen是儀器專用功能根接口,該接口是開發(fā)者基于儀器的功能而添加的專用接口,包含的具體接口由儀器本身功能決定,儀器的全部功能都能在該接口下實現(xiàn),該接口不具備可互換性。

2.3 設(shè)計開發(fā)IVI-COM驅(qū)動

在IVI-COM驅(qū)動程序中,每個功能都被設(shè)計成1個包含屬性或者方法的接口,各個接口之間可以相互調(diào)用。其中,屬性一般只包含1個參數(shù),1個屬性的讀取以及設(shè)置分別由1個前綴為“get_”和“put_”的函數(shù)實現(xiàn)。方法包含的參數(shù)不受限制,設(shè)置方式靈活多變,能實現(xiàn)更為復(fù)雜的儀器功能。屬性和方法的實現(xiàn)方式類似,如果實現(xiàn)方式簡單,直接在Instrument command選項中設(shè)置程控命令即可,但要是單獨的程控命令不能很好地實現(xiàn)所要添加的功能,則需要在CoCeyear435RfSigGen中詳細(xì)設(shè)計實現(xiàn)的源代碼。

IIviDriver根接口與IIviRFSigGen根接口下的功能是信號發(fā)生器類儀器的通用接口,這類接口下的功能是確定的。IIviDriver根接口下的功能接口控制函數(shù)源代碼在驅(qū)動框架建立時已自動生成。IIviRFSigGen根接口支持IVI規(guī)范“IVI-4.10_RfSigGen”中對射頻信號發(fā)生器類儀器所定義的屬性和方法,該根接口下的大部分功能在專用接口中已經(jīng)實現(xiàn),可直接調(diào)用專用接口下相應(yīng)的功能接口函數(shù)即可。ICeyear1435RfSigGen根接口包含儀器全部功能,在該根接口下按儀器功能分類添加子功能接口,各子功能接口就可以通過添加屬性或方法來實現(xiàn)儀器的具體功能。屬性的添加過程如圖3所示,方法的添加過程與屬性類似。

圖3 屬性添加流程圖Fig.3 Add property flowchart

依照上述步驟將信號發(fā)生器的全部功能,以屬性或方法的形式添加到對應(yīng)的子功能接口下,并設(shè)計好實現(xiàn)的程序代碼。

2.4 生成IVI-COM驅(qū)動幫助文檔與安裝包

在解決方案“Ceyear1435RfSigGen”屬性頁中配置屬性,選擇需要生成的項目配置后編譯驅(qū)動程序。在驅(qū)動程序各項編譯成功后,儀器的幫助文檔在解決方案***Helpin下生成,儀器驅(qū)動的安裝包在***Setupin下生成。

3 驗證IVI-COM驅(qū)動程序

在上位機(jī)上安裝IVI-COM儀器驅(qū)動之前,需要確保IVI Shared Components組件已成功安裝。驅(qū)動安裝目錄為C:Program FilesIVI FoundationIVI。驅(qū)動安裝成功后,需要設(shè)置IVI配置倉,這里應(yīng)用NI-MAX軟件完成該設(shè)置。MAX會自動識別已安裝的驅(qū)動,通過設(shè)置邏輯名關(guān)聯(lián)到驅(qū)動并對驅(qū)動進(jìn)行管理。在MAX軟件里添加邏輯名“Ceyear1435”,將之關(guān)聯(lián)驅(qū)動“Ceyear1435RfSigGen”,配置好資源描述、資源地址等信息,最后通過“Save IVI Configuration”保存設(shè)置。MAX軟件配置界面如圖4所示。

通過邏輯名調(diào)用IVI-COM驅(qū)動的控制程序主要代碼為:

#import “GlobMgr.dll” no_namespace

#import “IviDriverTypeLib.dll” no_namespace

圖4 儀器驅(qū)動程序配置界面Fig.4 Instrument driver configuration interface

#import “IviRFSigGenTypeLib.dll” no_namespace

IIviDriverPtr spDriver(_uuidof(Ceyear1435RfSigGen));

spDriver->Initialize((“Ceyear1435”), VARIANT_FALSE,VARIANT_FALSE, _T(“”));

IIviRFSigGenPtr spSS(spDriver);

spSS->RF->Frequency = XXX; //設(shè)置頻率

spSS->RF->Level = XXX; //設(shè)置功率

……

spDriver->Close();

通過網(wǎng)線連接儀器與上位機(jī)后,在上位機(jī)上運(yùn)行測試程序,此時信號發(fā)生器前面板顯示“遠(yuǎn)控”狀態(tài),且儀器的頻率及功率等均按要求進(jìn)行了設(shè)置,證明了本文設(shè)計的IVI-COM儀器驅(qū)動的有效性。將連接的信號發(fā)生器替換為另外某款信號發(fā)生器,只需在MAX軟件中對儀器驅(qū)動進(jìn)行重新配置,并修改測試程序中的邏輯名與之相對應(yīng)即可,其他部分無需改動。經(jīng)過實際測試,測試程序可通過切換邏輯名測試不同的儀器,證明了IVI-COM儀器驅(qū)動具有良好的可互換性。

4 結(jié)束語

本文設(shè)計并實現(xiàn)了某款信號發(fā)生器的IVI-COM儀器驅(qū)動程序,經(jīng)驗證該驅(qū)動能有效的對儀器進(jìn)行控制;同時通過試驗證明IVI-COM儀器驅(qū)動程序具有一定的可互換性,降低了開發(fā)人員的測試時間,具有顯著的實用價值,已成功應(yīng)用于數(shù)款信號發(fā)生器。

猜你喜歡
互換性驅(qū)動程序專用
體能測試專用鞋
體能測試專用鞋
體能測試專用鞋
氫氣與城鎮(zhèn)天然氣摻混的互換性分析
煤氣與熱力(2021年9期)2021-11-06 05:22:54
愛它就給它專用的設(shè)備
探討數(shù)控車刀與普通車刀的互換性及區(qū)別
以LDH為例來探討具有溯源性和互換性的校準(zhǔn)品在臨床生化應(yīng)用中的重要性
天津市引進(jìn)多種天然氣氣源后居民灶具互換性問題探討
驅(qū)動程序更新與推薦
驅(qū)動程序更新與推薦
黎平县| 大石桥市| 巧家县| 肃北| 东明县| 高平市| 自治县| 吉安县| 新竹县| 德化县| 南充市| 昔阳县| 天峨县| 崇文区| 上杭县| 加查县| 柳河县| 沈丘县| 蓬莱市| 什邡市| 仪陇县| 项城市| 孙吴县| 新绛县| 鲁甸县| 涪陵区| 嘉祥县| 湖口县| 新巴尔虎右旗| 邵东县| 郓城县| 双城市| 中卫市| 旌德县| 勐海县| 麻阳| 翁源县| 酉阳| 阿瓦提县| 滦南县| 邮箱|