999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于IVI規范的CPCI 422驅動程序設計

2010-06-22 03:41:08田書林
現代電子技術 2009年22期
關鍵詞:功能設計

楊 雪 田書林 李 力

摘 要:結合自研CPCI 422模塊,參照已經發布的IVI類驅動規范,探討422驅動函數的規劃方案。由于IVI有關422通信類儀器尚未制定類驅動規范,在此嘗試不借助NI公司提供的驅動向導開發422類驅動庫,制定一種較為簡單通用的422儀器類驅動規范,并針對自研模塊開發專用驅動庫,同時自己研制簡易的能代替NI公司配置引擎的程序,實現通過編輯配置文件鏈接類驅動和專用驅動,并且自動加載專用驅動庫的功能。該方法和規則對于其他虛擬儀器驅動程序的開發具有參考與推廣價值。

關鍵詞:CPCI 422;驅動設計;模塊互換;IVI規范

中圖分類號:TP311.11

0 引 言

可互換虛擬儀器(Interchangeable Virtual Instrument,IVI)驅動程序規范是由IVI基金會在VPP‐[1]基礎上為儀器驅動制定的編程接口規范。它擴展了VPP儀器驅動程序的標準,并增加了儀器的可互換性、仿真和狀態緩存等特點,從而實現不同型號儀器之間的互換,在測試系統硬件組成發生變化時,測試程序代碼可以重用。RS 422總線通常用于串行數據通信,采用平衡的差分數據傳輸方式,最大傳輸速率能達到10 Mb/s,最大傳輸距離為300 m。目前有關422的接口模塊種類很多,為了實現各種型號422模塊的互換,使用IVI標準進行驅動設計是很必要的。

1 IVI驅動程序的結構

IVI驅動程序體系結構主要包括IVI類驅動庫、IVI專用驅動庫、IVI引擎、IVI配置實用程序、IVI配置信息文件。其中,IVI 類驅動器是儀器的功能和屬性集,通過這些功能和屬性集實現對一種儀器類進行控制。它是一組接口函數,并不直接控制儀器工作。目前,已經發布了示波器、數字萬用表等8類儀器規范‐[2]。IVI專用驅動庫封裝了用于控制某一種儀器所需要的信息,能夠直接與儀器硬件通信。IVI 引擎主要完成狀態緩存、儀器屬性跟蹤、類驅動器到專用驅動器的映像功能,是實現 IVI 儀器驅動程序完成狀態緩存和其他增強性能的關鍵支持庫。IVI 配置實用程序用于配置儀器無關測試系統,創建和配置 IVI邏輯名稱,在測試程序中通過傳送邏輯名稱將操作映像到具體儀器驅動程序。具體IVI體系層次結構如圖1所示‐[3]。

[HT5”K][JZ]圖1 IVI體系結構[HT5]

目前,國內外只有NI公司,比較系統地提出了實現儀器互換的體系結構。該公司已經實現了8類儀器的IVI驅動開發,而且也提供一個名為“MAX”的IVI配置程序,用于配置儀器無關測試系統。同時也提供了一個專用驅動庫開發向導,用以開發專用驅動‐[4]。但該向導不能對已有驅動程序進行升級和IVI標準封裝,NI公司也沒有提供類驅動庫的開發向導,加上類驅動庫數量的局限性,導致部分模塊無法用NI公司提供的開發向導進行IVI驅動設計,比如文中所涉及的〤PCI 422基于IVI標準的驅動開發‐[5]。

2 CPCI 422驅動開發

在此,以自研CPCI 422模塊為例,介紹422驅動程序開發過程。CPCI 422模塊具有CPCI總線接口,能通過422總線發送數據,并且能接收被測設備通過422總線傳來的數據,并把數據傳送給上位機進行處理。該模塊具有8個通道,每個通道均能實現接收或者發送功能,通道能夠單獨工作也可一起工作,并且能對數據傳輸參數進行設置。

針對IVI體系結構,首先設計422類驅動函數庫。然后在類驅動函數庫基礎上開發專用驅動函數庫,驅動函數最后以.dll形式存在,采用 LabWindows/CVI,Visual Basic和 Visual C++等開發環境均可以開發。同時設計具備IVI引擎功能函數或者程序。對于IVI 配置信息文件可以通過專門的IVI配置實用軟件(如NI公司提供的MAX)或者其他文本編輯器進行編輯。

基于IVI標準的驅動程序配置引擎是整個IVI體系中的核心支柱。其主要功能就是實現類驅動庫到專用驅動庫的映射,使應用程序在調用類驅動庫時能自動加載相應配置的專用驅動庫。

該設計中,IVI配置引擎設計的主要思路是通過讀取配置信息文件,由配置文件中所設置的模塊邏輯名找到對應的專用驅動庫信息字段。此字段主要包括專用驅動庫路徑文件名、專用驅動庫函數前綴等,然后通過這些一一對應的映射關系,自動加載專用驅動庫。其工作流程如圖2所示。

該設計運用函數ivi422Class_SpecificDriver實現自動加載功能。下面為具體的函數設計:

該函數核心是以代表專用驅動庫文件名稱為形式參數,調用LoadLibrary( )函數加載專用驅動庫。應用程序只需通過類驅動庫及模塊的配置信息作為參數,調用ivi422Class_SpecificDrive()函數,即可實現專用驅動庫的自動加載。根據上面介紹可知,讀取配置文件以及根據配置文件自動加載專用驅動庫,即可實現配置引擎的功能。

類驅動庫是IVI體系的外觀框架,用來控制一個特定類型儀器的一系列功能和屬性。它是一組編程接口,而不對儀器進行直接操作。該設計中,為了實現422模塊的正常通信,作為連接虛擬儀器硬件和應用測試程序的紐帶,將422類驅動函數規劃如表1所示。序號函數功能描述

1Init打開并初始化儀器

2Close關閉儀器

3SerialRead開始接收數據

4SetClock設置每個通道波特率模式

5SetUART通道工作參數設置

6SetDivisor通道具體波特率設置

7ChannelControl設置每個通道的工作狀態

8SerialWriteData開始發送數據

9SpecificDriver動態加載專用驅動庫[HJ0][HJ][HT5SS]

根據IVI規范,類驅動函數由函數名前綴加具體函數名構成。在參數設置上均采用VISA數據類型。在該設計中,類驅動函數均采用ivi422Class作為函數前綴名。現舉例如下:

該函數的功能是提供儀器初始化函數接口,其中返回值定義為ViStatus型,具體表示形式,參照IVI標準,如IVI_SUCCESS。參數為ViSession型指針,用來返回儀器資源句柄。

根據前面介紹可知,類驅動函數只提供接口功能,不涉及具體儀器操作,現仍以初始化函數為例,介紹類驅動函數如何實現接口功能。其具體實現如下:

該函數的核心部分就是調用GetProcAddress(hDLL,FuncName)函數,獲取專用驅動庫函數對應函數地址。其中,hDLL為在配置引擎功能中調用ivi422Class_SpecificDriver()函數獲取的專用驅動庫句柄,FuncName為對應函數名稱。

對于專用驅動動態鏈接庫的開發,該設計未借助Labwindows/CVI中的專用驅動開發向導,而是直接在VC中進行編制。專用驅動庫函數的主體函數名和參數類型與類驅動是完全一致的,否則類驅動和專用驅動之間的參數傳遞會出錯‐[8]。為了與類驅動前綴名相區別,在該設計中,專用驅動函數前綴名一律為ivi422。舉例如下:

函數則具體針對儀器操作,完成模塊初始化功能。

對于上層應用程序,專用驅動函數隱藏了具體硬件工作細節,只以函數的形式提供了完成一項具體功能的接口。上層應用程序只需要通過類驅動庫間接調用專用驅動庫提供的函數,即可完成對硬件的操作控制。規劃表中已經列出了422操控的基本函數,如果需要再增加函數,只需要在類驅動的專用驅動中同時增加,便能實現功能擴展。

[BT3]2.3 CPCI 422模塊IVI驅動程序中配置文件編輯

對于IVI 配置信息文件,可以通過專門的IVI配置實用軟件(如NI公司提供的MAX)進行編輯。在該設計中,利用圖形化編程軟件自己設計以對話框為基礎的配置實用程序,通過此程序對配置文件進行編輯。圖3為此程序的主界面。

通過此程序,修改配置文件中的邏輯名字段、描述字段、驅動庫加載路徑字段,以及驅動函數前綴字段、仿真調試字段。然后通過配置引擎對于配置文件的讀操作,建立類驅動庫和專用驅動庫的正確映射。當改變模塊時,只需要改變模塊的邏輯名,以及模塊專用驅動庫的加載路徑和前綴,而不需要修改類驅動庫,也不會影響上層應用程序,從而實現了儀器的互換特性。

2.4 應用程序調用驅動工作流程

首先,應用程序通過一個邏輯名調用 IVI 類驅動庫,配置引擎,將該邏輯名與配置文件中的所有邏輯名進行匹配,得到實際的 IVI專用驅動庫指針,并實現該驅動器的動態加載;然后將 IVI 類驅動器中的函數和屬性與IVI 類專用驅動器的對應函數和屬性進行鏈接,使應用程序可以間接地訪問這些函數和屬性。在編制應用程序時,應同時包含類驅動庫的動態鏈接庫和頭文件,編制過程中,對開發人員只需調用類驅動函數。┩4為應用IVI體系基于422模塊的應用程序調用驅動工作流程。

3 結 語

在上述基于IVI規范的CPCI_422驅動程序設計的基礎上,討論了基于IVI標準的驅動體系結構,并且給出結合自研CPCI 422模塊的IVI驅動庫開發方法。重點討論了類驅動庫以及配置引擎的設計方案。目前,基于該驅動庫的應用程序已經研制成功,能夠通過類驅動庫提供的函數接口對各種CPCI 422模塊進行操作控制。隨著儀器設備標準化的推廣,以及虛擬儀器測試技

猜你喜歡
功能設計
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
關于非首都功能疏解的幾點思考
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 少妇人妻无码首页| JIZZ亚洲国产| 欧美综合激情| 亚洲精品午夜天堂网页| 亚洲天堂网2014| 青青草一区| 国产男女免费视频| 国产午夜无码专区喷水| 午夜爽爽视频| 亚洲伦理一区二区| 亚洲国产一区在线观看| 日韩一级毛一欧美一国产| 国产成人免费高清AⅤ| 国产呦视频免费视频在线观看| 青青网在线国产| 高清无码手机在线观看| 免费在线一区| 日韩视频免费| 欧美在线黄| 777国产精品永久免费观看| 永久成人无码激情视频免费| 久久人搡人人玩人妻精品一| 婷婷六月综合| 第九色区aⅴ天堂久久香| 浮力影院国产第一页| 国产综合另类小说色区色噜噜| 国产系列在线| 日本在线欧美在线| 国产亚洲精品无码专| 亚洲区第一页| 全裸无码专区| 国产综合另类小说色区色噜噜 | 久久精品国产国语对白| 天天做天天爱天天爽综合区| 亚洲欧美极品| 99热这里只有精品2| 97精品伊人久久大香线蕉| 无码国产偷倩在线播放老年人| 国产乱子伦视频三区| 国产视频久久久久| 性喷潮久久久久久久久| 538精品在线观看| 久久久久亚洲精品成人网| av在线手机播放| 夜夜高潮夜夜爽国产伦精品| 免费观看无遮挡www的小视频| 欧美中文字幕无线码视频| 亚洲国产成熟视频在线多多| 欧美日韩北条麻妃一区二区| 97一区二区在线播放| 亚洲国产精品日韩欧美一区| 亚洲人成人伊人成综合网无码| 国产国拍精品视频免费看| 日韩av手机在线| 狠狠色丁香婷婷| 无码精油按摩潮喷在线播放| 欧美激情网址| 深夜福利视频一区二区| 亚洲三级a| 国产微拍精品| 嫩草在线视频| 在线观看网站国产| 国产在线精彩视频论坛| 久久精品国产精品国产一区| 97精品伊人久久大香线蕉| 欧美黑人欧美精品刺激| 99人体免费视频| 欧美视频免费一区二区三区| 五月婷婷综合色| 欧美人人干| 国产精品林美惠子在线观看| 成人午夜视频免费看欧美| 人妻精品全国免费视频| 中文字幕人妻无码系列第三区| 国产精品美女自慰喷水| 人妻精品久久无码区| 手机在线国产精品| 91美女视频在线观看| 亚洲AV永久无码精品古装片| 国产精品综合久久久| 精品久久久无码专区中文字幕| 在线永久免费观看的毛片|