IVI技術(shù)規(guī)范及其工作原理_第1頁(yè)
IVI技術(shù)規(guī)范及其工作原理_第2頁(yè)
IVI技術(shù)規(guī)范及其工作原理_第3頁(yè)
IVI技術(shù)規(guī)范及其工作原理_第4頁(yè)
IVI技術(shù)規(guī)范及其工作原理_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1.1 IVI技術(shù)規(guī)范及其工作原理1.1.1 IVI技術(shù)的特點(diǎn)為了進(jìn)一步提高儀器的可互換性和測(cè)試代碼的可重用性,降低系統(tǒng)升級(jí)的難度和成本,由NI公司、GEC馬可尼公司、朗訊技術(shù)公司、GDE系統(tǒng)公司等十幾家儀器生產(chǎn)廠商成立了IVI基金會(huì)并發(fā)布了IVI技術(shù)規(guī)范。IVI技術(shù)規(guī)范是IVI基金會(huì)在VPP規(guī)范的基礎(chǔ)上定義儀器 的標(biāo)準(zhǔn)接口、通用結(jié)構(gòu)和實(shí)現(xiàn)方法,用于開發(fā)一種可互換、高性能、 更易于開發(fā)維護(hù)的儀器的編程模型。IVI技術(shù)主要具有以下特點(diǎn)。1)通過儀器的可互換性,節(jié)省測(cè)試系統(tǒng)的開發(fā)和維護(hù)費(fèi)用IVI技術(shù)提升了儀器驅(qū)動(dòng)器的標(biāo)準(zhǔn)化程度,使儀器驅(qū)動(dòng)器從基本 的互操作性提升到了儀器類的互操作性。 通過為各儀器

2、類定義明確的API,測(cè)試系統(tǒng)開發(fā)者在編寫軟件時(shí)可以做到最大程度的與硬件無關(guān), 當(dāng)替換過時(shí)的儀器或采用更高性能的新儀器進(jìn)行系統(tǒng)升級(jí)時(shí),測(cè)試程序源代碼可以不用做任何更改或重新編譯,這大大提高了代碼的可重用性,同時(shí)也縮短了測(cè)試系統(tǒng)開發(fā)周期以及系統(tǒng)維護(hù)費(fèi)用。2)通過狀態(tài)緩存,改善測(cè)試性能IVI引入了屬性管理機(jī)制,其模型中的IVI弓I擎可實(shí)現(xiàn)狀態(tài)存儲(chǔ) 功能。VPP驅(qū)動(dòng)程序總是假設(shè)儀器狀態(tài)是未知的,因此,每個(gè)測(cè)量函 數(shù)在進(jìn)行測(cè)量操作之前都要對(duì)儀器進(jìn)行設(shè)置,而不管儀器在此之前是 否被配置過。而IVI驅(qū)動(dòng)器通過狀態(tài)緩存能白動(dòng)存儲(chǔ)儀器的當(dāng)前狀態(tài)。一個(gè)IVI儀器驅(qū)動(dòng)程序函數(shù)只有在儀器當(dāng)前設(shè)置和函數(shù)所要求的值不 一

3、致時(shí),才執(zhí)行I/O操作,而不是每次都對(duì)儀器的所有參數(shù)進(jìn)行重新 配置,這樣IVI引擎可以避免發(fā)送冗余的儀器配置命令,從而優(yōu)化程 序運(yùn)行時(shí)的性能,極大的縮短測(cè)試時(shí)間。3)通過仿真,使測(cè)試開發(fā)更容易、更經(jīng)濟(jì)利用IVI儀器驅(qū)動(dòng)器的仿真功能,用戶可以在儀器還不能用的條 件下,使用驅(qū)動(dòng)程序建立應(yīng)用程序,這種情況下,驅(qū)動(dòng)程序不執(zhí)行儀 器I/O而僅利用軟拷貝來進(jìn)行處理,它檢查輸入?yún)?shù)并且產(chǎn)生仿真的 輸出結(jié)果。有了這些仿真數(shù)據(jù),開發(fā)者在沒有儀器硬件的情況下也能 為儀器開發(fā)應(yīng)用程序代碼。1.1.2 IVI驅(qū)動(dòng)器的類型及互換性的實(shí)現(xiàn)原理如圖4所示,IVI驅(qū)動(dòng)器分為IVI類驅(qū)動(dòng)器和IVI專用驅(qū)動(dòng)器兩大 類型。IVI類

4、驅(qū)動(dòng)器提供符合已定義IVI儀器類規(guī)范的儀器驅(qū)動(dòng)器API,通過IVI類兼容專用驅(qū)動(dòng)器間接實(shí)現(xiàn)與儀器硬件的通信連接。 實(shí)際上, 可以將IVI類驅(qū)動(dòng)器理解為一種抽象的、具有過渡性質(zhì)的儀器驅(qū)動(dòng)器, 類似于面向?qū)ο缶幊碳夹g(shù)中的虛擬基類,而IVI類兼容專用驅(qū)動(dòng)器則 是它的派生類。IVI專用驅(qū)動(dòng)器封裝了用于控制某一類或某一種儀器所需的信息和函數(shù),能夠直接與底層硬件通信,它又包括IVI類兼容專用驅(qū)動(dòng)器 和IVI定制專用驅(qū)動(dòng)器。IVI類兼容專用驅(qū)動(dòng)器與某一類已定義的IVI儀器類兼容,使用已定義儀器類的標(biāo)準(zhǔn)API,但同時(shí)又增加了一些其 他特性,以滿足用戶對(duì)儀器互換性的要求;IVI定制專用驅(qū)動(dòng)器使用 用戶化的API

5、,不與任何已定義的儀器類標(biāo)準(zhǔn)兼容,不能實(shí)現(xiàn)硬件的 互換性,主要用于一些特殊場(chǎng)合。圖1 IVI驅(qū)動(dòng)器分類IVI規(guī)范把儀器驅(qū)動(dòng)器分成類驅(qū)動(dòng)器和專用驅(qū)動(dòng)器的目的是為了實(shí)現(xiàn)儀器的互換性。為了確保在進(jìn)行儀器替換時(shí)不修改測(cè)試代碼,不再做重新編譯或鏈接,做到完全的互換性,IVI規(guī)范規(guī)定用戶需要直 接用儀器類API編程而不是用特定的IVI類兼容專用驅(qū)動(dòng)器編程,與 特定儀器相關(guān)的驅(qū)動(dòng)器和硬件資源配置不能在測(cè)試程序中完成,于是IVI技術(shù)規(guī)范提出了一種被稱為 配置倉(cāng)”的軟件結(jié)構(gòu)。IVI配置倉(cāng)是用來實(shí)現(xiàn)儀器互換性的外部軟件,具有動(dòng)態(tài)加載特 定儀器驅(qū)動(dòng)器的能力,通過建立類驅(qū)動(dòng)器和特定儀器驅(qū)動(dòng)器的映射關(guān) 系來實(shí)現(xiàn)儀器的互

6、換和測(cè)試程序的代碼重用。圖5解釋了儀器互換性 的實(shí)現(xiàn)方法。IVI配置倉(cāng)中包括了一系列邏輯名以及與各邏輯名一一 對(duì)應(yīng)的驅(qū)動(dòng)器通話配置器,在應(yīng)用程序通過某個(gè)邏輯名來訪問IVI類驅(qū)動(dòng)器時(shí),IVI類驅(qū)動(dòng)器通過邏輯名的匹配得到實(shí)際的IVI類兼容專用驅(qū)動(dòng)器通話配置器,并實(shí)現(xiàn)該驅(qū)動(dòng)器的動(dòng)態(tài)加載,然后通話配置器 建立與專用驅(qū)動(dòng)器和儀器的通話鏈路,同時(shí)也決定一些可配置屬性的 配置,如仿真、狀態(tài)緩存狀態(tài)檢查等,當(dāng)用戶更換儀器時(shí),只需將IVI配置倉(cāng)中對(duì)應(yīng)的邏輯名重新定位到另一個(gè)通話配置器,從而實(shí)現(xiàn)儀器 的互換。1.1.3 IVI驅(qū)動(dòng)器的工作原理用 戶GUI圖2IVI儀器驅(qū)動(dòng)器互換性原理圖IVI驅(qū)動(dòng)器的工作機(jī)制如圖6

7、所示。IVI模型中把每一個(gè)可讀寫的儀器設(shè)置定義為一個(gè)屬性。IVI引擎與驅(qū)動(dòng)程序一起參與對(duì)圖3IVI儀器驅(qū)動(dòng)器工作機(jī)制儀器屬性的管理,主要包括記憶和跟蹤屬性值、屬性范圍檢查和 強(qiáng)制設(shè)定、控制屬性值的讀寫等。組成IVI儀器驅(qū)動(dòng)程序的高層函數(shù) 主要包括以下四個(gè)部分:(1)用于讀寫某個(gè)儀器屬性的IVI標(biāo)準(zhǔn)屬性 函數(shù);(2)用于規(guī)定每一個(gè)儀器屬性有效范圍的范圍表;(3)屬性回調(diào)函數(shù)(讀回調(diào)函數(shù)、寫回調(diào)函數(shù)、范圍檢查回調(diào)函數(shù)等 );(4)全局通道回調(diào)函數(shù)(如狀態(tài)檢查回調(diào)函數(shù)等 )。當(dāng)驅(qū)動(dòng)程序在高層函 數(shù)中設(shè)置屬性時(shí),IVI引擎被激活并訪問屬性范圍表進(jìn)行范圍檢查和強(qiáng)制設(shè)定值,在設(shè)置值與緩存值不同時(shí)激活屬性回

8、調(diào)函數(shù),執(zhí)行儀器I/O操作,否則直接返回成功。如果執(zhí)行了I/O操作,則高層函數(shù)還IVI 引擎設(shè)置儀器屬性范圍檢查和強(qiáng)制設(shè)定與緩存值比較屬性回調(diào)函數(shù)(讀、存儲(chǔ)當(dāng)前屬性值檢查儀器狀態(tài)用戶應(yīng)用程序要在驅(qū)動(dòng)程序中調(diào)用狀態(tài)檢查回調(diào)函數(shù),查看是否有錯(cuò)誤發(fā)生。由于IVI引擎運(yùn)行在計(jì)算機(jī)內(nèi)部,而驅(qū)動(dòng)程序只有在對(duì)儀器進(jìn)行硬件操作 時(shí)才花費(fèi)較多時(shí)間,因此,通過在高層函數(shù)和低層I/O操作之間引入 屬性管理機(jī)制,可以在不影響儀器工作的條件下增強(qiáng)對(duì)儀器操作的靈 活性和安全性,并大大提高驅(qū)動(dòng)程序的效率。以通道配置函數(shù)dsoes1452_ConfigureChannel配置垂直靈敏度為5V/div為例,IVI驅(qū)動(dòng)器和IVI

9、引擎將執(zhí)行以下幾步:函 數(shù)dsoes1452_ConfigureChannel中 調(diào) 用 標(biāo) 準(zhǔn)IVI屬 性 設(shè) 置 函 數(shù)Ivi_SetAttributeViReal64(),將屬性DSOES1452_ATTR_VERTICAL_RANGE值設(shè)置為5.0。如果IVI內(nèi)置屬性IVI_ATTR_RANGE_CHECK范圍檢查)的值為 真VI_TRUE, IVI引擎調(diào)用屬性范圍檢查回調(diào)函數(shù),判斷5.0是否超 出了垂直靈敏度屬性范圍表。如果超出了有效范圍,屬性設(shè)置函數(shù)返 回一個(gè)錯(cuò)誤代碼,或者調(diào)用強(qiáng)制回調(diào)函數(shù)強(qiáng)制設(shè)定為有效范圍內(nèi)的數(shù) 值。如果IVI內(nèi)置屬性IVI_ATTR_CACHE(狀態(tài)緩存)為真V

10、I_TRUIVI引擎比較5.0與當(dāng)前緩存中的值是否相等,如果相等,屬性設(shè)置 函數(shù)直接返回執(zhí)行成功代碼。如果IVI內(nèi)置屬性IVI_ATTR_CACHE(仿真)為真VI_TRUE,屬性設(shè)置函數(shù)直接返回執(zhí)行成功代碼。如果5.0與緩存值不等且不是執(zhí)行的仿真,則調(diào)用垂直靈敏度屬 性寫回調(diào)函數(shù)dsoes1452AttrVerticalRange_WriteCallback(),通過VISA I/O函數(shù)訪問底層硬件,寫入5.0對(duì)應(yīng)的命令,并更新當(dāng)前緩存 值為5.0。如果屬性IVI_ATTR_QUERY_INSTR_STATUS器狀態(tài)檢查)為 真VI_TRUE,同 時(shí)IVI弓 | 擎 調(diào) 用 了 寫 回 調(diào)

11、函 數(shù) , 則 函 數(shù)dsoes1452_ConfigureChannel調(diào)用狀態(tài)檢查回調(diào)函數(shù),該回調(diào)函數(shù) 讀取儀器的狀態(tài)寄存器信息,以檢查是否有錯(cuò)誤發(fā)生。1.1.4 IVI儀器驅(qū)動(dòng)器的開發(fā)流程考慮到IVI規(guī)范是在VPP規(guī)范基礎(chǔ)上提出來的,IVI儀器驅(qū)動(dòng)器 與VPP驅(qū)動(dòng)器的區(qū)別就在于IVI驅(qū)動(dòng)器多了IVI引擎,IVI弓I擎通過 屬性管理來控制硬件,而VPP驅(qū)動(dòng)器是直接調(diào)用VISA函數(shù)訪問儀器, 所以我們的開發(fā)是直接用LabWindows/CVI的開發(fā)向?qū)ч_發(fā)IVI驅(qū)動(dòng) 器,同時(shí)就可以實(shí)現(xiàn)VPP儀器驅(qū)動(dòng)器的開發(fā)。IVI儀器驅(qū)動(dòng)器的開發(fā)流程大致如下:?jiǎn)?dòng)IVI驅(qū)動(dòng)程序開發(fā)向?qū)?,按照向?qū)У奶崾驹O(shè)置儀

12、器驅(qū)動(dòng)器的 相關(guān)信息,生成驅(qū)動(dòng)程序框架代碼,生成的框架代碼中,包含了符合IVI規(guī)范的示波器類驅(qū)動(dòng)器的大部分標(biāo)準(zhǔn)函數(shù)。分析生成的各個(gè)屬性,對(duì)相應(yīng)屬性進(jìn)行編輯、刪除或新建;對(duì)獨(dú)立屬性實(shí)現(xiàn)屬性回調(diào)函數(shù),這些屬性可用來設(shè)置和訪問硬件, 寫回調(diào) 函數(shù)用來設(shè)置硬件屬性值,在狀態(tài)存儲(chǔ)機(jī)制無效時(shí),寫回調(diào)函數(shù)總是 被調(diào)用,此時(shí)IVI驅(qū)動(dòng)的工作過程與VPP驅(qū)動(dòng)類似,讀回調(diào)函數(shù)用來 獲取屬性值。明確屬性的無效值,IVI引擎采用屬性無效列表作為保持狀態(tài)存儲(chǔ)完整性的一種技術(shù),它用來解決高級(jí)屬性之間的相關(guān)性問題, 例如 某一屬性的無效列表中可以包含受其影響的屬性, 當(dāng)這一屬性的值改 變而導(dǎo)致被其影響的屬性無效時(shí),IVI引

13、擎就可以修改它們的屬性值。分析驅(qū)動(dòng)程序的各組成文件,編輯和修改函數(shù)樹與函數(shù)面板、刪除不用的擴(kuò)展代碼,根據(jù)本模塊的實(shí)際需要修改生成的函數(shù)代 碼,添加本模塊所需要的特殊函數(shù)代碼。設(shè)計(jì)軟面板程序,對(duì)IVI驅(qū)動(dòng)程序的各函數(shù)進(jìn)行測(cè)試并調(diào)試,在 確保正確性的前提下生成安裝文件。1.1.5儀器驅(qū)動(dòng)器屬性的設(shè)置運(yùn)行LabWindows/CVI的IVI儀器驅(qū)動(dòng)器開發(fā)向?qū)В凑障驅(qū)У?提示,輸入所需要的本模塊的相應(yīng)信息,最后點(diǎn)擊Generate按鈕即可生成IVI儀器驅(qū)動(dòng)器所需的基本文件,包括函數(shù)面板文件PREFIX.fp,源代碼文件PREFIX.G頭文件PREFIX.G儀器屬性文件PREFIX.sutx這里PRE

14、FIX代表在向?qū)е休斎氲膬x器驅(qū)動(dòng)器前綴名稱,生成的所有驅(qū)動(dòng)器函數(shù)和屬性名稱都以此前綴開頭,以 表明 此驅(qū) 動(dòng)器是某一型號(hào)特定儀器的特定驅(qū)動(dòng)器。打開屬性編輯器,可以看到白動(dòng)生成的IVI驅(qū)動(dòng)器的所有屬性列 表,其中有一些屬性是IVI固有屬性,即不管是什么類型的儀器都必 須要有的屬性,在CVI中這些屬性不能被用戶隨意更改, 開發(fā)者不能 對(duì)這些屬性做任何編輯。其余大部分屬性需要我們根據(jù)儀器的實(shí)際需 要,進(jìn)行重新編輯修改,刪除不需要的屬性,增加本模塊所特有的設(shè) 置屬性。圖7所示為本信號(hào)采集模塊的部分屬性列表。 整個(gè)系統(tǒng)分為 信號(hào)采集、通道、水平、觸發(fā)、參數(shù)測(cè)量以及時(shí)鐘同步六個(gè)子系統(tǒng), 在開發(fā)過程中,無論

15、哪個(gè)階段我們都是按照這六個(gè)子系統(tǒng)分別進(jìn)行開 發(fā),這是IVI驅(qū)動(dòng)器在橫向上的模塊化體現(xiàn),而在縱向上,IVI驅(qū)動(dòng) 器的體系結(jié)構(gòu)從底層的VISA接口庫(kù)到上層的測(cè)試軟件也是模塊化的 結(jié)構(gòu),這種多重模塊化的結(jié)構(gòu)正是IVI規(guī)范的一大特點(diǎn),既簡(jiǎn)化了整 個(gè)系統(tǒng)的復(fù)雜性也大大降低開發(fā)難度。屬性列表中每一個(gè)屬性代表一種可以配置的儀器設(shè)置或參數(shù),屬性的編輯對(duì)象主要包括數(shù)據(jù)類型、屬性范圍表、默認(rèn)值、屬性描述、 回調(diào)函數(shù)選擇、屬性標(biāo)志以及屬性無效列表等,其中屬性范圍表和屬 性無效列表的設(shè)置是重點(diǎn)和難點(diǎn),屬性范圍表決定了屬性的取值范圍 和數(shù)值類型,是范圍檢查和強(qiáng)制設(shè)定回調(diào)函數(shù)的依據(jù),也是讀、寫回 調(diào)函數(shù)進(jìn)行數(shù)值和命令字符串轉(zhuǎn)化的依據(jù)。 而屬性無效

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論