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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、范的儀器驅動器API,通過IVI類兼容專用驅動器間接實現與儀器硬件的通信連接。實際上,可以將IVI類驅動器理解為一種抽象的、具有過渡性質的儀器驅動器,類似于面向對象編程技術中的虛擬基類,而IVI類兼容專用驅動器則是它的派生類。IVI專用驅動器封裝了用于控制某一類或某一種儀器所需的信息和函數,能夠直接與底層硬件通信,它又包括IVI類兼容專用驅動器和IVI定制專用驅動器。IVI類兼容專用驅動器與某一類已定義的IVI儀器類兼容,使用已定義儀器類的標準API,但同時又增加了一些其他特性,以滿足用戶對儀器互換性的要求;IVI定制專用驅動器使用用戶化的API,不與任何已定義的儀器類標準兼容,不能實現硬件的

5、互換性,主要用于一些特殊場合。圖1IVI驅動器分類IVI規(guī)范把儀器驅動器分成類驅動器和專用驅動器的目的是為了實現儀器的互換性。為了確保在進行儀器替換時不修改測試代碼,不再做重新編譯或鏈接,做到完全的互換性,IVI規(guī)范規(guī)定用戶需要直接用儀器類API編程而不是用特定的IVI類兼容專用驅動器編程,與特定儀器相關的驅動器和硬件資源配置不能在測試程序中完成,于是IVI技術規(guī)范提出了一種被稱為配置倉”的軟件結構。圖2IVI儀器驅動器互換性原理圖IVI配置倉是用來實現儀器互換性的外部軟件,具有動態(tài)加載特定儀器驅動器的能力,通過建立類驅動器和特定儀器驅動器的映射關系來實現儀器的互換和測試程序的代碼重用。圖5解

6、釋了儀器互換性的實現方法。IVI配置倉中包括了一系列邏輯名以及與各邏輯名對應的驅動器通話配置器,在應用程序通過某個邏輯名來訪問IVI類驅動器時,IVI類驅動器通過邏輯名的匹配得到實際的IVI類兼容專用驅動器通話配置器,并實現該驅動器的動態(tài)加載,然后通話配置器建立與專用驅動器和儀器的通話鏈路,同時也決定一些可配置屬性的配置,如仿真、狀態(tài)緩存狀態(tài)檢查等,當用戶更換儀器時,只需將IVI配置倉中對應的邏輯名重新定位到另一個通話配置器,從而實現儀器的互換。1.1.3 IVI驅動器的工作原理IVI驅動器的工作機制如圖6所示。IVI模型中把每一個可讀寫的儀器設置定義為一個屬性。IVI引擎與驅動程序一起參與對

7、圖3IVI儀器驅動器工作機制儀器屬性的管理,主要包括記憶和跟蹤屬性值、屬性范圍檢查和強制設定、控制屬性值的讀寫等。組成IVI儀器驅動程序的高層函數主要包括以下四個部分:(1)用于讀寫某個儀器屬性的IVI標準屬性函數;(2)用于規(guī)定每一個儀器屬性有效范圍的范圍表;(3)屬性回調函數(讀回調函數、寫回調函數、范圍檢查回調函數等);(4)全局通道回調函數(如狀態(tài)檢查回調函數等)。當驅動程序在高層函數中設置屬性時,IVI引擎被激活并訪問屬性范圍表進行范圍檢查和強制設定值,在設置值與緩存值不同時激活屬性回調函數,執(zhí)行儀器I/O操作,否則直接返回成功。如果執(zhí)行了I/O操作,則高層函數還要在驅動程序中調用狀

8、態(tài)檢查回調函數,查看是否有錯誤發(fā)生。由于IVI引擎運行在計算機內部,而驅動程序只有在對儀器進行硬件操作時才花費較多時間,因此,通過在高層函數和低層I/O操作之間引入屬性管理機制,可以在不影響儀器工作的條件下增強對儀器操作的靈活性和安全性,并大大提高驅動程序的效率。以通道配置函數dsoes1452_ConfigureChannel配置垂直靈敏度為5V/div為例,IVI驅動器和IVI引擎將執(zhí)行以下幾步:函數dsoes1452_ConfigureChannel中調用標準IVI屬性設置函數Ivi_SetAttributeViReal64(),將屬性DSOES1452_ATTR_VERTICAL_RA

9、NG的值設置為5.0。如果IVI內置屬性IVI_ATTR_RANGE_CHECK范圍檢查)的值為真VI_TRUE,IVI引擎調用屬性范圍檢查回調函數,判斷5.0是否超出了垂直靈敏度屬性范圍表。如果超出了有效范圍,屬性設置函數返回一個錯誤代碼,或者調用強制回調函數強制設定為有效范圍內的數值。如果IVI內置屬性IVI_ATTR_CACHE(狀態(tài)緩存)為真VI_TRUEIVI引擎比較5.0與當前緩存中的值是否相等,如果相等,屬性設置函數直接返回執(zhí)行成功代碼。如果IVI內置屬性IVI_ATTR_CACHE(仿真)為真VI_TRUE,屬性設置函數直接返回執(zhí)行成功代碼。如果5.0與緩存值不等且不是執(zhí)行的仿

10、真,則調用垂直靈敏度屬性寫回調函數dsoes1452AttrVerticalRange_WriteCallback(),通過VISAI/O函數訪問底層硬件,寫入5.0對應的命令,并更新當前緩存值為5.0。如果屬性IVI_ATTR_QUERY_INSTR_STATU限器狀態(tài)檢查)為真VI_TRUE,同時IVI引擎調用了寫回調函數,則函數dsoes1452_ConfigureChannel調用狀態(tài)檢查回調函數,該回調函數讀取儀器的狀態(tài)寄存器信息,以檢查是否有錯誤發(fā)生。1.1.4 IVI儀器驅動器的開發(fā)流程考慮到IVI規(guī)范是在VPP規(guī)范基礎上提出來的,IVI儀器驅動器與VPP驅動器的區(qū)別就在于IVI

11、驅動器多了IVI引擎,IVI引擎通過屬性管理來控制硬件,而VPP驅動器是直接調用VISA函數訪問儀器,所以我們的開發(fā)是直接用LabWindows/CVI的開發(fā)向導開發(fā)IVI驅動器,同時就可以實現VPP儀器驅動器的開發(fā)。IVI儀器驅動器的開發(fā)流程大致如下:啟動IVI驅動程序開發(fā)向導,按照向導的提示設置儀器驅動器的相關信息,生成驅動程序框架代碼,生成的框架代碼中,包含了符合IVI規(guī)范的示波器類驅動器的大部分標準函數。分析生成的各個屬性,對相應屬性進行編輯、刪除或新建;對獨立屬性實現屬性回調函數,這些屬性可用來設置和訪問硬件,寫回調函數用來設置硬件屬性值,在狀態(tài)存儲機制無效時,寫回調函數總是被調用,

12、此時IVI驅動的工作過程與VPP驅動類似,讀回調函數用來獲取屬性值。明確屬性的無效值,IVI引擎采用屬性無效列表作為保持狀態(tài)存儲完整性的一種技術,它用來解決高級屬性之間的相關性問題,例如某一屬性的無效列表中可以包含受其影響的屬性,當這一屬性的值改變而導致被其影響的屬性無效時,IVI引擎就可以修改它們的屬性值。分析驅動程序的各組成文件,編輯和修改函數樹與函數面板、刪除不用的擴展代碼,根據本模塊的實際需要修改生成的函數代碼,添加本模塊所需要的特殊函數代碼。設計軟面板程序,對IVI驅動程序的各函數進行測試并調試,在確保正確性的前提下生成安裝文件。1.1.5 儀器驅動器屬性的設置運行LabWindow

13、s/CVI的IVI儀器驅動器開發(fā)向導,按照向導的提示,輸入所需要的本模塊的相應信息,最后點擊Generate按鈕即可生成IVI儀器驅動器所需的基本文件,包括函數面板文件PREFIX.fp,源代碼文件PREFIX。頭文件PREFIX.J儀器屬性文件PREFIX.sub這里PREFIX代表在向導中輸入的儀器驅動器前綴名稱,生成的所有驅動器函數和屬性名稱都以此前綴開頭,以表明此驅動器是某一型號特定儀器的特定驅動器。打開屬性編輯器,可以看到自動生成的IVI驅動器的所有屬性列表,其中有一些屬性是IVI固有屬性,即不管是什么類型的儀器都必須要有的屬性,在CVI中這些屬性不能被用戶隨意更改,開發(fā)者不能對這些

14、屬性做任何編輯。其余大部分屬性需要我們根據儀器的實際需要,進行重新編輯修改,刪除不需要的屬性,增加本模塊所特有的設置屬性。圖7所示為本信號采集模塊的部分屬性列表。整個系統(tǒng)分為信號采集、通道、水平、觸發(fā)、參數測量以及時鐘同步六個子系統(tǒng),在開發(fā)過程中,無論哪個階段我們都是按照這六個子系統(tǒng)分別進行開發(fā),這是IVI驅動器在橫向上的模塊化體現,而在縱向上,IVI驅動器的體系結構從底層的VISA接口庫到上層的測試軟件也是模塊化的結構,這種多重模塊化的結構正是IVI規(guī)范的一大特點,既簡化了整個系統(tǒng)的復雜性也大大降低開發(fā)難度。屬性列表中每一個屬性代表一種可以配置的儀器設置或參數,屬性的編輯對象主要包括數據類型、屬性范圍表、默認值、屬性描述、回調函數選擇、屬性標志以及屬性無效列表等,其中屬性范圍表和屬性無效列表的設置是重點和難點,屬性范圍表決定了屬性的取值范圍和數值類型,是范圍檢查和強制設定回調函數的依據,也是讀、寫回調函數進行數值和命令字符串轉化的依據。而屬性無效列表的編

溫馨提示

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

評論

0/150

提交評論