IVI技術(shù)研究發(fā)布: 2010-10-21 00:01 | 作者: | 來(lái)源: | 字體: 小 中 大 方案綜述: 引言 長(zhǎng)期以來(lái),互換性成為許多工程師建造測(cè)試系統(tǒng)的目標(biāo)。因?yàn)樵诤芏嗲闆r下,儀器硬件不是過(guò)時(shí)就是需要更換,因此迫切需要一種無(wú)需改變測(cè)試程序代碼就可用新的儀器硬件改進(jìn)系統(tǒng)的方法。針對(duì)這一問(wèn)題,在1998年9月成立了IVI(Interchangeable Virtual Instrument)基金會(huì)。IVI基金會(huì)是最終用戶、系統(tǒng)集成商和儀器制造商的一個(gè)開放的聯(lián)盟。目前,該組織已經(jīng)制訂了五類儀器的規(guī)范一一示波器/數(shù)字化儀(IVIScope)、數(shù)字萬(wàn)用表(IVIDmm)、任意波形發(fā)生器/函數(shù)發(fā)生器(IVIFGen)、開關(guān)/多路復(fù)用器/矩陣(IVISwitch)及電源(IVIPower)。美國(guó)國(guó)家儀器公司(簡(jiǎn)稱NI)作為IVI的系統(tǒng)聯(lián)盟之一,積極響應(yīng)IVI的號(hào)召,開發(fā)了基于虛擬儀器軟件平臺(tái)的IVI驅(qū)動(dòng)程序庫(kù)。 IVI基金會(huì)成員經(jīng)常召開系統(tǒng)聯(lián)盟會(huì)議,來(lái)討論儀器類的規(guī)范和制訂新儀器類規(guī)范。在適當(dāng)?shù)臅r(shí)候,將會(huì)成立專門的工作組來(lái)處理特殊技術(shù)問(wèn)題,如: 為新儀器類建立規(guī)范; 結(jié)合儀器規(guī)范,模括應(yīng)用程序的標(biāo)準(zhǔn)(如設(shè)立標(biāo)準(zhǔn)波形的文件格式和幫助文件); 定義儀器驅(qū)動(dòng)程序的測(cè)試步驟; 建立故障報(bào)告和分布式更新機(jī)制; 調(diào)查計(jì)算機(jī)的工業(yè)標(biāo)準(zhǔn),為軟件通信、軟件封裝制訂規(guī)范 IVI基金會(huì)努力從基本的互操作性(Interoperability)到可互換性(Interchangeability),為儀器驅(qū)動(dòng)程序提升了標(biāo)準(zhǔn)化水平。通過(guò)為儀器類制訂一個(gè)統(tǒng)一的規(guī)范,使測(cè)試工程師獲得更大的硬件獨(dú)立性,減少了軟件維護(hù)和支持費(fèi)用、縮短了儀器編程時(shí)間、提高了運(yùn)行性能。運(yùn)用IVI技術(shù)可以使許多部門獲益。例如使用IVI技術(shù)的事務(wù)處理系統(tǒng)可以把不同的儀器用在其系統(tǒng)中,當(dāng)儀器陳舊或者有升級(jí)的、高性能或低造價(jià)的儀器時(shí),可以任意更換,而不需要改變測(cè)試程序的源代碼;在電信和電子消費(fèi)產(chǎn)品中,當(dāng)儀器出現(xiàn)故障或者需要修復(fù)時(shí),可以保持他們的生產(chǎn)線正常運(yùn)行;各種大的制造公司可以很容易地在部門和設(shè)備之間復(fù)用及共享測(cè)試代碼,而沒(méi)有必要強(qiáng)迫用同樣的儀器硬件。 IVI規(guī)范及體系結(jié)構(gòu) 因?yàn)樗械膬x器不可能具有相同的功能,因此不可能建立一個(gè)單一的編程接口。正因?yàn)槿绱耍琁VI基金會(huì)制訂的儀器類規(guī)范被分成基本能力和擴(kuò)展屬性兩部分。前者定義了同類儀器中絕大多數(shù)儀器所共有的能力和屬性(IVI基金會(huì)的目標(biāo)是支持某一確定類儀器中95%的儀器);后者則更多地體現(xiàn)了每類儀器的許多特殊功能和屬性。以下簡(jiǎn)要地把這五類規(guī)范作一介紹: IVI示波器類把示波器視為一個(gè)通用的、可以采集變化電壓波形的儀器來(lái)使用。用基本能力來(lái)設(shè)置示波器,例如設(shè)置典型的波形采集(包括設(shè)置水平范圍、垂直范圍和觸發(fā))、波形采集的初始化及波形讀取;灸芰H僅支持沿觸發(fā)和正常的采集;除了基本能力外,IVI示波器類定義了它的擴(kuò)展屬性:自動(dòng)配置、求平均值、包絡(luò)值和峰值、設(shè)置高級(jí)觸發(fā)(如視頻、毛刺和寬度等觸發(fā)方式)、執(zhí)行波形測(cè)量(如求上升時(shí)間、下降時(shí)間和電壓的峰,峰值等)。 IVI電源類把電源視為儀器,并可以作為電壓源或電流源,其應(yīng)用領(lǐng)域非常寬廣。IVI電源類支持用戶自定義波形電壓和瞬時(shí)現(xiàn)象產(chǎn)生的電壓。用基本能力來(lái)設(shè)置供電電壓及電流的極限、打開或者關(guān)閉輸出;用擴(kuò)展屬性來(lái)產(chǎn)生交、直流電壓、電流及用戶自定義的波形、瞬時(shí)波形、觸發(fā)電壓和電流等。 IVI函數(shù)發(fā)生器類定義了產(chǎn)生典型函數(shù)的規(guī)范。輸出信號(hào)支持任意波形序列的產(chǎn)生,包括用戶自定義的波形。用基本能力來(lái)設(shè)置基本的信號(hào)輸出函數(shù),包括設(shè)置輸出阻抗、參考時(shí)鐘源、打開或者關(guān)閉輸出通道、對(duì)信號(hào)的初始化及停止產(chǎn)生信號(hào):用擴(kuò)展屬性來(lái)產(chǎn)生一個(gè)標(biāo)準(zhǔn)的周期波形或者特殊類型的波形,并可以通過(guò)設(shè)置幅值、偏移量、頻率和初相位來(lái)控制波形。 IVI開關(guān)類規(guī)范是由廠商定義的一系列VO通道。這些通道通過(guò)內(nèi)部的開關(guān)模塊連接在一起。用基本能力來(lái)建立或斷開通道間的相互連接,并判斷在兩個(gè)通道之間是否有可能建立連接;用擴(kuò)展屬性可以等待觸發(fā),來(lái)建立連接。 IVI萬(wàn)用表類支持典型的數(shù)字萬(wàn)用表。用基本能力來(lái)設(shè)置典型的測(cè)量參數(shù)(包括設(shè)置測(cè)量函數(shù)、測(cè)量范圍、分辨率、觸發(fā)源、測(cè)量初始化及讀取測(cè)量值);用擴(kuò)展屬性來(lái)配置高級(jí)屬性,如自動(dòng)范圍設(shè)置及回零。萬(wàn)用表類定義了兩個(gè)擴(kuò)展的屬性:IVIDmmMultipoint擴(kuò)展屬性對(duì)每一個(gè)觸發(fā)采集多個(gè)測(cè)量值;IVIDmmDeviceinfo查詢各種屬性。 NI開發(fā)的IVI驅(qū)動(dòng)程序庫(kù)包括IVI基金會(huì)定義的五類儀器的標(biāo)準(zhǔn)Class Driver 、仿真驅(qū)動(dòng)程序和軟面板。該軟件包為儀器的交換做了一個(gè)標(biāo)準(zhǔn)的接口,通過(guò)定義一個(gè)可互換性虛擬儀器的驅(qū)動(dòng)模型來(lái)實(shí)現(xiàn)儀器的互換性, IVI驅(qū)動(dòng)程序比VXIPlug&Play(簡(jiǎn)稱VPP)聯(lián)盟制訂的VISA規(guī)范更高一層。它擴(kuò)展了VPP儀器驅(qū)動(dòng)程序的標(biāo)準(zhǔn),并加上了儀器的可互換性、仿真和狀態(tài)緩存等特點(diǎn),使得儀器廠商以繼續(xù)用他們的儀器特征和新增功能。因此,IVI基金會(huì)是對(duì)VPP系統(tǒng)聯(lián)盟的一個(gè)很好的補(bǔ)充。 測(cè)試程序可以直接調(diào)用儀器Spmile Driver,也可通過(guò)Class Driver來(lái)調(diào)用SpmikDriver。采用直接調(diào)用方式時(shí),可以執(zhí)行狀態(tài)緩存、范圍檢查及簡(jiǎn)單的仿真。但是如果更換儀器,需要修改測(cè)試程序;采用間接調(diào)用方式時(shí),應(yīng)用程序通過(guò)調(diào)用IVI Configuration UtiIIty中的WIDEnEEl-Configure函數(shù),來(lái)調(diào)用儀器的Specific Driver,因此不用修改測(cè)試代碼。例如在圖1中,測(cè)試程序可以不用直接調(diào)用Fluke 45-Configure或者HP34401-Configure。這樣,當(dāng)系統(tǒng)中使用的是Fluke 45Dmm時(shí),程序在運(yùn)行中會(huì)動(dòng)態(tài)地自動(dòng)裝載到Fluke 45-Configure。如果以后將測(cè)試系統(tǒng)中的Fluke 45Dmm換成了HP34401Dmm,IVIDmm驅(qū)動(dòng)程序自動(dòng)定向到調(diào)用HP34401-Configure。按照這種“虛擬”方式把同一類儀器中的不同儀器的特性差異“封裝”起來(lái),保證應(yīng)用程序完全獨(dú)立于硬件儀器,也就同時(shí)保證了儀器的可互換性。 對(duì)于一個(gè)標(biāo)準(zhǔn)的儀器驅(qū)動(dòng)程序,狀態(tài)跟蹤或者緩存是其最重要的特點(diǎn)。狀態(tài)緩存命令可以以IVI的狀態(tài)緩存特性在Spedile Driver下執(zhí)行,因此不會(huì)影響Class Driver的運(yùn)行。IVI Engine通過(guò)控制儀器的讀寫屬性,來(lái)監(jiān)測(cè)IVI驅(qū)動(dòng)程序。通過(guò)狀態(tài)緩存,存儲(chǔ)了儀器當(dāng)前狀態(tài)的每一個(gè)屬性設(shè)置值,消除了送到儀器的多余命令,當(dāng)試著設(shè)置一個(gè)儀器已經(jīng)有了的屬性值,IVI引擎將會(huì)跳過(guò)這個(gè)命令,從而提高了程序運(yùn)行速度。 因?yàn)镮VI仿真驅(qū)動(dòng)程序有內(nèi)置的許多仿真數(shù)據(jù)產(chǎn)生算法,因此可以對(duì)儀器硬件進(jìn)行仿真。當(dāng)程序員在儀器不能運(yùn)行或者不完整時(shí),可以用軟件仿真前端儀器的采集、計(jì)算和驗(yàn)證。同時(shí),仿真驅(qū)動(dòng)程序也可以對(duì)儀器的屬性值進(jìn)行范圍檢查。即當(dāng)寫測(cè)試代碼而沒(méi)接儀器時(shí),IVI仿真驅(qū)動(dòng)程序自動(dòng)識(shí)別所發(fā)送的值是否有效。同時(shí),當(dāng)輸入?yún)?shù)超過(guò)范圍時(shí),強(qiáng)迫給一個(gè)正確值。仿真功能在Spmile Driver的控制下發(fā)生,有沒(méi)有Class Driver,都可以用這個(gè)特性。因此通過(guò)仿真,降低了測(cè)試的開發(fā)成本,縮短了儀器的編程時(shí)間。 軟面板檢查所用的儀器是否正常工作,并保證簡(jiǎn)單、交互式測(cè)量。IVI驅(qū)動(dòng)程序庫(kù)已經(jīng)有五類儀器的軟面板。 開發(fā)IVI的Specific Driver 由于NI開發(fā)的IVI驅(qū)動(dòng)程序庫(kù)已經(jīng)包含了儀器的Class Driver,因此,程序員只要按照IVI的規(guī)范開發(fā)自己儀器的Specific Driver,就可以實(shí)現(xiàn)儀器的互換性。IVI驅(qū)動(dòng)程序庫(kù),可以在任何能夠產(chǎn)生32位DLLs的環(huán)境下運(yùn)行,如Lab Windows/CVI、Visual Basic和Visual C等。不過(guò),在LabWindows/CVI環(huán)境下開發(fā)比較容易,因?yàn)檫@個(gè)軟件包容納了開發(fā)驅(qū)動(dòng)程序的許多工具,并有一個(gè)自動(dòng)的開發(fā)向?qū)Э梢詣?chuàng)建一個(gè)包含大多數(shù)驅(qū)動(dòng)程序代碼的模板,這樣,開發(fā)和測(cè)試驅(qū)動(dòng)程序代碼就很容易了。 在開發(fā)儀器的Specific Driver以前,首先要熟悉儀器的有關(guān)命令,然后根據(jù)其功能進(jìn)行分類。在Lab Windows/CVI下創(chuàng)建儀器的Specific Driver,需要按以下步驟進(jìn)行程序開發(fā)。下面針對(duì)ACMELXYZ示被器做一詳細(xì)介紹。 1.創(chuàng)建一個(gè)驅(qū)動(dòng)程序模板 Lab Windows/CVI有一個(gè)內(nèi)置的開發(fā)向?qū)崾境绦騿T輸入有關(guān)的信息,根據(jù)輸入的信息,自動(dòng)地創(chuàng)建一個(gè)代碼模板和函數(shù)目錄。代碼模板包含了許多修改指令以及實(shí)現(xiàn)各種屬性的例子;函數(shù)目錄包含了每一個(gè)函數(shù)、控制和指示的規(guī)范。 2.移走不用的擴(kuò)展屬性 根據(jù)IVI的規(guī)范,ACME-XYZ示波器應(yīng)該支持IVI示波器類的基本屬性,擴(kuò)展屬性僅僅支持沿觸發(fā),因此與別的觸發(fā)類型有關(guān)的擴(kuò)展屬性就必須從驅(qū)動(dòng)程序的代碼文件和頭文件中移走。 3.確定獨(dú)立屬性 獨(dú)立的屬性就是指不受別的屬性設(shè)置影響的屬性,如采集類型、輸入阻抗、觸發(fā)類型、觸發(fā)藕合等。 4.調(diào)用指定的屬性 就采集類型來(lái)說(shuō),ACME-XYZ示波器支持正常采集模式、峰值檢測(cè)以及高分辨率等模式。表1列出了其具有的各種模式,范圍表為存儲(chǔ)有效的硬件設(shè)置,提供了一個(gè)簡(jiǎn)單和方便的方式。用屬性編輯器可以編輯范圍表或者寄存器的值。完成了范圍表的編輯,接著就可以進(jìn)行讀、寫操作以設(shè)置或讀取硬件屬性值。 5.確定屬性的失效規(guī)則 IVI引擎用一個(gè)相對(duì)簡(jiǎn)單的機(jī)制來(lái)維護(hù)狀態(tài)緩存的完整性。在許多情況下,一個(gè)屬性的值有可能影響另一個(gè)屬性值,例如示波器的垂直范圍和偏移量依賴于探頭對(duì)輸入信號(hào)的衰減。改變探頭衰減的同時(shí)也就改變了垂直范圍和偏移量。這意味著當(dāng)探頭的衰減改變時(shí),必須給垂直范圍和偏移量的緩存值一個(gè)失效值或者更新值。這個(gè)問(wèn)題很容易解決,只要在屬性的失效目錄中,為探頭的衰減屬性選擇其衰減值。
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
![]() |
本周熱點(diǎn)本月熱點(diǎn)
最熱通信招聘
業(yè)界最新資訊最新招聘信息
最新技術(shù)文章
最新論壇貼子
|