亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于IVI規(guī)范的CPCI 422驅(qū)動(dòng)程序設(shè)計(jì)

        2010-06-22 03:41:08田書林
        現(xiàn)代電子技術(shù) 2009年22期
        關(guān)鍵詞:配置文件驅(qū)動(dòng)程序專用

        楊 雪 田書林 李 力

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

        關(guān)鍵詞:CPCI 422;驅(qū)動(dòng)設(shè)計(jì);模塊互換;IVI規(guī)范

        中圖分類號(hào):TP311.11

        0 引 言

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

        1 IVI驅(qū)動(dòng)程序的結(jié)構(gòu)

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

        [HT5”K][JZ]圖1 IVI體系結(jié)構(gòu)[HT5]

        目前,國內(nèi)外只有NI公司,比較系統(tǒng)地提出了實(shí)現(xiàn)儀器互換的體系結(jié)構(gòu)。該公司已經(jīng)實(shí)現(xiàn)了8類儀器的IVI驅(qū)動(dòng)開發(fā),而且也提供一個(gè)名為“MAX”的IVI配置程序,用于配置儀器無關(guān)測試系統(tǒng)。同時(shí)也提供了一個(gè)專用驅(qū)動(dòng)庫開發(fā)向?qū)?用以開發(fā)專用驅(qū)動(dòng)‐[4]。但該向?qū)Р荒軐?duì)已有驅(qū)動(dòng)程序進(jìn)行升級(jí)和IVI標(biāo)準(zhǔn)封裝,NI公司也沒有提供類驅(qū)動(dòng)庫的開發(fā)向?qū)?加上類驅(qū)動(dòng)庫數(shù)量的局限性,導(dǎo)致部分模塊無法用NI公司提供的開發(fā)向?qū)нM(jìn)行IVI驅(qū)動(dòng)設(shè)計(jì),比如文中所涉及的〤PCI 422基于IVI標(biāo)準(zhǔn)的驅(qū)動(dòng)開發(fā)‐[5]。

        2 CPCI 422驅(qū)動(dòng)開發(fā)

        在此,以自研CPCI 422模塊為例,介紹422驅(qū)動(dòng)程序開發(fā)過程。CPCI 422模塊具有CPCI總線接口,能通過422總線發(fā)送數(shù)據(jù),并且能接收被測設(shè)備通過422總線傳來的數(shù)據(jù),并把數(shù)據(jù)傳送給上位機(jī)進(jìn)行處理。該模塊具有8個(gè)通道,每個(gè)通道均能實(shí)現(xiàn)接收或者發(fā)送功能,通道能夠單獨(dú)工作也可一起工作,并且能對(duì)數(shù)據(jù)傳輸參數(shù)進(jìn)行設(shè)置。

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

        基于IVI標(biāo)準(zhǔn)的驅(qū)動(dòng)程序配置引擎是整個(gè)IVI體系中的核心支柱。其主要功能就是實(shí)現(xiàn)類驅(qū)動(dòng)庫到專用驅(qū)動(dòng)庫的映射,使應(yīng)用程序在調(diào)用類驅(qū)動(dòng)庫時(shí)能自動(dòng)加載相應(yīng)配置的專用驅(qū)動(dòng)庫。

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

        該設(shè)計(jì)運(yùn)用函數(shù)ivi422Class_SpecificDriver實(shí)現(xiàn)自動(dòng)加載功能。下面為具體的函數(shù)設(shè)計(jì):

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

        類驅(qū)動(dòng)庫是IVI體系的外觀框架,用來控制一個(gè)特定類型儀器的一系列功能和屬性。它是一組編程接口,而不對(duì)儀器進(jìn)行直接操作。該設(shè)計(jì)中,為了實(shí)現(xiàn)422模塊的正常通信,作為連接虛擬儀器硬件和應(yīng)用測試程序的紐帶,將422類驅(qū)動(dòng)函數(shù)規(guī)劃如表1所示。序號(hào)函數(shù)功能描述

        1Init打開并初始化儀器

        2Close關(guān)閉儀器

        3SerialRead開始接收數(shù)據(jù)

        4SetClock設(shè)置每個(gè)通道波特率模式

        5SetUART通道工作參數(shù)設(shè)置

        6SetDivisor通道具體波特率設(shè)置

        7ChannelControl設(shè)置每個(gè)通道的工作狀態(tài)

        8SerialWriteData開始發(fā)送數(shù)據(jù)

        9SpecificDriver動(dòng)態(tài)加載專用驅(qū)動(dòng)庫[HJ0][HJ][HT5SS]

        根據(jù)IVI規(guī)范,類驅(qū)動(dòng)函數(shù)由函數(shù)名前綴加具體函數(shù)名構(gòu)成。在參數(shù)設(shè)置上均采用VISA數(shù)據(jù)類型。在該設(shè)計(jì)中,類驅(qū)動(dòng)函數(shù)均采用ivi422Class作為函數(shù)前綴名?,F(xiàn)舉例如下:

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

        根據(jù)前面介紹可知,類驅(qū)動(dòng)函數(shù)只提供接口功能,不涉及具體儀器操作,現(xiàn)仍以初始化函數(shù)為例,介紹類驅(qū)動(dòng)函數(shù)如何實(shí)現(xiàn)接口功能。其具體實(shí)現(xiàn)如下:

        該函數(shù)的核心部分就是調(diào)用GetProcAddress(hDLL,FuncName)函數(shù),獲取專用驅(qū)動(dòng)庫函數(shù)對(duì)應(yīng)函數(shù)地址。其中,hDLL為在配置引擎功能中調(diào)用ivi422Class_SpecificDriver()函數(shù)獲取的專用驅(qū)動(dòng)庫句柄,FuncName為對(duì)應(yīng)函數(shù)名稱。

        對(duì)于專用驅(qū)動(dòng)動(dòng)態(tài)鏈接庫的開發(fā),該設(shè)計(jì)未借助Labwindows/CVI中的專用驅(qū)動(dòng)開發(fā)向?qū)?而是直接在VC中進(jìn)行編制。專用驅(qū)動(dòng)庫函數(shù)的主體函數(shù)名和參數(shù)類型與類驅(qū)動(dòng)是完全一致的,否則類驅(qū)動(dòng)和專用驅(qū)動(dòng)之間的參數(shù)傳遞會(huì)出錯(cuò)‐[8]。為了與類驅(qū)動(dòng)前綴名相區(qū)別,在該設(shè)計(jì)中,專用驅(qū)動(dòng)函數(shù)前綴名一律為ivi422。舉例如下:

        函數(shù)則具體針對(duì)儀器操作,完成模塊初始化功能。

        對(duì)于上層應(yīng)用程序,專用驅(qū)動(dòng)函數(shù)隱藏了具體硬件工作細(xì)節(jié),只以函數(shù)的形式提供了完成一項(xiàng)具體功能的接口。上層應(yīng)用程序只需要通過類驅(qū)動(dòng)庫間接調(diào)用專用驅(qū)動(dòng)庫提供的函數(shù),即可完成對(duì)硬件的操作控制。規(guī)劃表中已經(jīng)列出了422操控的基本函數(shù),如果需要再增加函數(shù),只需要在類驅(qū)動(dòng)的專用驅(qū)動(dòng)中同時(shí)增加,便能實(shí)現(xiàn)功能擴(kuò)展。

        [BT3]2.3 CPCI 422模塊IVI驅(qū)動(dòng)程序中配置文件編輯

        對(duì)于IVI 配置信息文件,可以通過專門的IVI配置實(shí)用軟件(如NI公司提供的MAX)進(jìn)行編輯。在該設(shè)計(jì)中,利用圖形化編程軟件自己設(shè)計(jì)以對(duì)話框?yàn)榛A(chǔ)的配置實(shí)用程序,通過此程序?qū)ε渲梦募M(jìn)行編輯。圖3為此程序的主界面。

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

        2.4 應(yīng)用程序調(diào)用驅(qū)動(dòng)工作流程

        首先,應(yīng)用程序通過一個(gè)邏輯名調(diào)用 IVI 類驅(qū)動(dòng)庫,配置引擎,將該邏輯名與配置文件中的所有邏輯名進(jìn)行匹配,得到實(shí)際的 IVI專用驅(qū)動(dòng)庫指針,并實(shí)現(xiàn)該驅(qū)動(dòng)器的動(dòng)態(tài)加載;然后將 IVI 類驅(qū)動(dòng)器中的函數(shù)和屬性與IVI 類專用驅(qū)動(dòng)器的對(duì)應(yīng)函數(shù)和屬性進(jìn)行鏈接,使應(yīng)用程序可以間接地訪問這些函數(shù)和屬性。在編制應(yīng)用程序時(shí),應(yīng)同時(shí)包含類驅(qū)動(dòng)庫的動(dòng)態(tài)鏈接庫和頭文件,編制過程中,對(duì)開發(fā)人員只需調(diào)用類驅(qū)動(dòng)函數(shù)。┩4為應(yīng)用IVI體系基于422模塊的應(yīng)用程序調(diào)用驅(qū)動(dòng)工作流程。

        3 結(jié) 語

        在上述基于IVI規(guī)范的CPCI_422驅(qū)動(dòng)程序設(shè)計(jì)的基礎(chǔ)上,討論了基于IVI標(biāo)準(zhǔn)的驅(qū)動(dòng)體系結(jié)構(gòu),并且給出結(jié)合自研CPCI 422模塊的IVI驅(qū)動(dòng)庫開發(fā)方法。重點(diǎn)討論了類驅(qū)動(dòng)庫以及配置引擎的設(shè)計(jì)方案。目前,基于該驅(qū)動(dòng)庫的應(yīng)用程序已經(jīng)研制成功,能夠通過類驅(qū)動(dòng)庫提供的函數(shù)接口對(duì)各種CPCI 422模塊進(jìn)行操作控制。隨著儀器設(shè)備標(biāo)準(zhǔn)化的推廣,以及虛擬儀器測試技

        猜你喜歡
        配置文件驅(qū)動(dòng)程序專用
        提示用戶配置文件錯(cuò)誤 這樣解決
        體能測試專用鞋
        體能測試專用鞋
        體能測試專用鞋
        搭建簡單的Kubernetes集群
        互不干涉混用Chromium Edge
        忘記ESXi主機(jī)root密碼怎么辦
        愛它就給它專用的設(shè)備
        驅(qū)動(dòng)程序更新與推薦
        驅(qū)動(dòng)程序更新與推薦
        人妻熟女妇av北条麻记三级| 亚洲高清国产一区二区| 亚洲国产综合久久天堂| 亚洲色图片区| 波多野结衣爽到高潮大喷| 成 人 免费 在线电影| 少妇饥渴xxhd麻豆xxhd骆驼| 美女胸又www又黄的网站| 人妻系列影片无码专区| 国产成人美涵人妖视频在线观看 | 无码人妻丰满熟妇啪啪网站 | 美女高潮无遮挡免费视频| 尤物AV无码色AV无码麻豆| 一区二区av日韩免费| 国产日韩精品视频一区二区三区 | 粉嫩av最新在线高清观看| 久久婷婷五月综合色欧美| 精品无码国产一区二区三区av | 国产午夜福利100集发布| 亚洲国产一区在线二区三区| 久久久2019精品视频中文字幕| 久久精品国产亚洲av四区| 国产三级精品三级在线专区2| 深夜爽爽动态图无遮无挡| 情侣黄网站免费看| 国产精品美女久久久久久久| 国产精品女同久久久久久| 亚洲一区二区三区一区| 久久久精品国产三级精品| 国产乱码人妻一区二区三区| 18禁裸男晨勃露j毛网站| 超清精品丝袜国产自在线拍| 狠狠躁天天躁无码中文字幕图| 熟女少妇丰满一区二区| 大香蕉视频在线青青草| 亚洲国产精品区在线观看| 奇米影视7777久久精品| 久久人妻少妇嫩草av蜜桃| 亚洲va中文字幕欧美不卡| 精品亚洲国产日韩av一二三四区| 欲香欲色天天综合和网|