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