




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于IVI-COM的可互換儀器驅動架構研究王 偉(北京航天測控技術開發(fā)公司,北京 100037)摘要:文章介紹了IVI儀器驅動的體系結構,說明了IVI-COM驅動程序的工作原理,并以VXI數字萬用表AMC2301和開關模塊AMC2616為典型實例,簡要說明了在VC環(huán)境下實現IVI-COM儀器類接口操作具體儀器的使用方法。關鍵詞:IVI-COM;儀器驅動程序;類接口1 IVI儀器驅動軟件是虛擬儀器的靈魂,而儀器驅動又是虛擬儀器軟件的核心,它以高級的抽象的儀器映像方式將用戶界面與儀器的硬件聯(lián)系起來。長期以來,出于設備廢行、升級而引起的硬件設備的變更常常迫使系統(tǒng)人員對現有測試系統(tǒng)軟件進行重復的修改和
2、編譯工作,系統(tǒng)的穩(wěn)定性很差,儀器的互換能力很弱。1998年8月,為了進一步提高儀器驅動程序的執(zhí)行性能,達到真正的儀器互換,由九個公司成立IVI(Interchangeable Virtual Instrumentation)基金會,在VPP的基礎上為儀器驅動程序制定新的編程結構標準,使應用程序可以實現完成獨立于硬件,而不管其是何種總線接口,并增加了儀器仿真、狀態(tài)緩存等機制,進而大大提高了儀器的執(zhí)行效率。圖1 IVI儀器驅動程序的結構模型1.1 IVI儀器驅動程序的結構 圖1是IVI儀器驅動程序的結構模型,該模型同VPP模型相比較,其主要區(qū)別在于:(1)函數體中增加了一組具有標準應用程序接口的屬
3、性函數和與屬性相對應的回調函數;(2)引入面向對象技術中的屬性管理機制,增加了一個對各屬性進行管理的IVI引擎。IVI引擎常以動態(tài)連接庫的形式提供,其運行對用戶是透明的。所有用于創(chuàng)建儀器驅動程序的函數以IVI庫或者IVI引擎導出函數的形式提供給儀器驅動程序開發(fā)者,同時函數庫也提供給用戶應用層用于分析和顯示儀器驅動程序信息函數。1.2 IVI儀器驅動程序的特點由于IVI提供了一種目前最先進的虛擬儀器驅動程序開發(fā)技術,因此基于IVI模型開發(fā)的驅動程序除具有VPP驅動程序所具有的特點外,還具有如下的特點:1)具有儀器級的可互換性。根據IVI類驅動器編寫的測試代碼,在儀器硬件被另外一個同類的儀器模塊代
4、替時,不必經過修改便可直接調用。2)高性能的具有狀態(tài)存儲機制的程序結構。IVI引入了面向對象的屬性管理機制,其模型中增加的IVI引擎可實現狀態(tài)存儲功能。對于VPP驅動程序來說,總是假設儀器狀態(tài)是未知的,因此,每個測量函數在進行測量操作之前都要對儀器進行設置,而不管儀器在此之前是否被配置過。而IVI中通過屬性模型,驅動程序能自動存儲儀器的當前狀態(tài)。一個IVI儀器驅動程序函數只有在儀器設置和函數所要求的不一致時,才執(zhí)行I/O操作,這樣IVI引擎通過跟蹤儀器的硬件設置,避免發(fā)送冗余的儀器配置命令,從而可以優(yōu)化程序運行時的性能,這是比VPP驅動程序性能優(yōu)越的一個突出特點。3)具有儀器的仿真能力。IVI
5、模型可以在沒有儀器硬件的情況下使用驅動程序建立應用程序。在這種仿真狀態(tài)下,驅動程序不執(zhí)行儀器I/O而僅利用軟拷貝來進行處理,它檢查輸入參數并且產生仿真的輸出結果。有了這些仿真數據,開發(fā)者在沒有儀器硬件的情況下也能為儀器開發(fā)應用代碼。4)具有多線程的安全性。5)具有范圍檢查、狀態(tài)緩存以及其它的調試和開發(fā)功能。2 用COM實現的IVIIVI基金會提出基于COM的IVI驅動程序,這并非想取代基于C的IVI驅動程序,而是作為一個必然的發(fā)展,以滿足ATE(自動測試環(huán)境)領域的各種要求。2.1 引入COM的技術依據COM接口是句法和語義上的組合,句法可由IDL(接口描述語言)來精確地獲取。語義上則需要有一
6、定的模糊性,以使多種對象能使用同一個接口。這樣COM接口是用于實現有精確句法、在類中可以構造各種儀器的IVI類定義的理想工具。在COM接口中,并不像C語言要求的,需要有一個前綴,COM并不需要類驅動程序就提供了句法上的可互換性。COM接口隱藏了執(zhí)行代碼和詳細的算法,這就意味著儀器生產商可以利用各種適合他們的方式來實現接口。COM接口是用COM類和實例化的COM對象來實現的。這使得COM驅動器可以在內部執(zhí)行實例的數據,從而克服了VPP和IVI中的一個缺陷。COM的封裝性也使版本問題變得簡單了,只要保持其接口不變就可以隨意替換COM對象,不需要進行編譯就可以把它集成到現存的客戶測試程序中去。2.2
7、 應用開發(fā)環(huán)境的要求IVI-COM驅動器必須可以在所有的比較流行的自動測試應用開發(fā)環(huán)境中使用,包括:LabView、HP VEE、VB、C、C+、VC+、LabWindows/CVI等。每種環(huán)境對于已經存在的COM的支持都有其自身的特點。值得注意的是,一些語言在數據類型方面存在很大限制,這在一般的應用中可能暴露出很多致命的缺陷,但是IVI-COM相對來說對數據類型要求要簡單一些。事實上,所有用于現有的IVI儀器的數據類型都可以用變量來代替。這樣就保證了IVI驅動器可以被任何應用程序開發(fā)環(huán)境所使用。3 IVI儀器驅動的使用3.1 儀器類標準儀器編程接口圖2 IVI儀器驅動體系結構圖因為所有的儀器
8、不可能具有相同的功能,因此不可能建立一個單一的編程接口。正因為如此,IVI基金會制定的儀器規(guī)范被分為基本能力和擴展屬性兩部分。前者定義了同類儀器中絕大部分儀器所共有的功能和屬性;后者著重體現了每類儀器的特殊功能和屬性。儀器類被定義成儀器屬性和對這些屬性編程的API的集合,這個類也包含了程序員設值屬性和從儀器上獲取數據的函數。圖2為IVI儀器驅動的體系結構圖。IVI技術通過定義通用儀器類的標準儀器驅動器的編程接口,提高了測試軟件的通用性,從而極大的降低了測試軟件的開發(fā)周期和研發(fā)成本。IVI技術規(guī)定了基本函數調用的標準化,并且標準化了一些設置以及允許數據,因而基于IVI技術的產品可以為測試系統(tǒng)的開
9、發(fā)節(jié)約大量的成本。一個特定的IVI儀器驅動器,包括一個特定儀器模塊信息,如命令字符串、解析代碼以及儀器設置的有效范圍。3.2 系統(tǒng)配置為了在測試程序中使用IVI類驅動程序就必須首先配置系統(tǒng)以便類驅動可以與具體的儀器驅動進行交互,這一步是通過IVI基金會提供的IVI共享組件Configuration Server來完成的。IVI Configuration Server為IVI應用程序提供系統(tǒng)數據庫服務,特別是它提供系統(tǒng)的初始化和配置信息。Configuration Server是由configuration store XML文件和一個可以訪問、存取操作XML文件的COM對象組成。圖3為con
10、figuration store XML文件內容片斷。MAX是所有硬件以及相關軟件的國際儀器標準配置工具,首先配置的是邏輯名,邏輯名是指在應用中所使用的虛擬儀器。一個虛擬儀器是物理儀器、儀器驅動器、選擇設置的組合。改變邏輯名所指的儀器,就可以改變儀器而不改變測試程序,這個機制是通過類驅動器中的初始化函數引發(fā)的。例如:當使用一個類驅動器初始化一個儀器時,并沒有將形如:“GPIB:2:INSTR”的標準資源字符串傳遞給驅動器,而是給出了一個“DMM1”這樣的邏輯名。configuration store XML文件中包含了儀器驅動器的位置以及初始化配置信息,其中:(1)邏輯名文件夾包含了用戶定義的
11、所有邏輯名,這些邏輯名用來區(qū)分儀器中用到的儀器,文件夾包含了驅動器屬性的初始化信息。如:State caching,simulation等等。(2)儀器驅動器文件夾包含了有關在哪里能找到每一個虛擬儀器文件夾中的儀器的圖3 configuration store XML片斷具體驅動器信息。文件夾包含的信息是以VISA資源形式描述的物理儀器地址。這些文件夾的信息隨著系統(tǒng)增加驅動器而更新,需要更換儀器,只要簡單的在邏輯名文件夾處改變具體的儀器對應的邏輯名即可。3.3 IVI-COM儀器驅動程序的工作過程圖4 IVI-COM儀器驅動程序調用過程體系結構圖圖4為IVI-COM儀器驅動程序調用過程的體系結
12、構圖。圖中虛線框中部分代表IVI儀器驅動,它既是一個儀器類驅動接口,也是一個儀器專用驅動接口。與IVI-C不同點在于,儀器類驅動接口和儀器專用接口都封裝在同一個儀器驅動COM對象中。因此應用程序對IVI-COM儀器驅動組件既可以使用類驅動接口進行儀器操作,也可以使用專用驅動接口進行操作。4 在VC+6.0中開發(fā)IVI-COM應用示例本示例通過訪問IVI-COM驅動程序的儀器類接口,來對具體測試儀器(測量模塊)進行操作,完成測試儀器(測量模塊)測量功能。開發(fā)步驟如下:圖5圖6(1) 創(chuàng)建一個基于對話框的MFC應用程序(2) 在窗體中添加兩個按鈕Read和Exit,并添加一個編輯框,如圖5。(3)
13、 在應用程序的InitInstance()函數中開頭部分添加代碼“AfxOleInit();”(4) 在對話框類頭文件中導入COM組件,如圖6。(5) 在對話框類中添加成員變量,代碼如下:IIviSessionFactoryPtr SessionFactoryPtr; /IVI共享組件SessionFactory智能指針I(yè)IviDmmPtr DmmPtr; /萬用表儀器類接口智能指針(6) 在對話框OnInitDialog()函數中添加代碼,如下:HRESULT hr;hr = SessionFactoryPtr.CreateInstance(_uuidof(IviSessionFactory
14、);if (SUCCEEDED(hr) try DmmPtr =SessionFactoryPtr->CreateDriver("AmcDmm");/AmcDmm為邏輯名稱DmmPtr->Initialize("AmcDmm",VARIANT_FALSE,VARIANT_FALSE,""); catch (_com_error er) BSTR Desc;er.ErrorInfo()->GetDescription(&Desc);CString ErrorString(Desc);AfxMessageBox(
15、ErrorString);exit(int)er.Error(); else AfxMessageBox("Failed to create session factory instance!");exit(hr);(7) 在按鈕Read點擊事件下添加代碼,如下:double dRead;CString strRead;tryDmmPtr->Configure(IviDmmFunctionDCVolts,IviDmmAutoRangeOn,0);dRead = DmmPtr->Measurement->Read(2500);strRead.Format("%lf",dRead);m_ctlDisplay.SetWindowText(strRead); catch (_com_error er) BSTR Desc;er.ErrorInfo()->GetDescription(&Desc);CString ErrorString(Desc);AfxMessageBox(ErrorString);exit(int)er.Error();(8) 在按鈕Exit點擊事件下添加代碼,如下:DmmPtr->Close();圖7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 風險監(jiān)測在公司戰(zhàn)略規(guī)劃中的意義試題及答案
- 公司戰(zhàn)略與文化建設試題及答案
- 2025年軟考知識關鍵點與試題及答案
- 行政法學對于青年法律人才培養(yǎng)的影響試題及答案
- 行政法學理論與實務試題及答案
- 操作系統(tǒng)原理解析試題及答案
- AI技術應用2025年考試試題及答案
- 2025屆阿拉善市重點中學八年級數學第二學期期末教學質量檢測試題含解析
- 河南省南陽市2025屆八年級數學第二學期期末復習檢測模擬試題含解析
- 法學概論重要考點試題及答案
- GB/T 2982-2024工業(yè)車輛充氣輪胎規(guī)格、尺寸、氣壓與負荷
- 史記人物課件教學課件
- 走進泰國-課件
- 一站到底課件
- 西安中建一局裝修合同模板
- 社會團體財務報表
- DB34∕T 3468-2019 民用建筑樓面保溫隔聲工程技術規(guī)程
- iso220002024食品安全管理體系標準
- 2024年秋新冀教版三年級上冊英語教學課件 U3L3
- 拔牙術后并發(fā)癥及處理對策
- 2024年山東省濟南市歷下區(qū)中考一模物理試題(解析版)
評論
0/150
提交評論