當(dāng)前位置:首頁(yè) > 測(cè)試測(cè)量 > 測(cè)試測(cè)量
[導(dǎo)讀]摘要:結(jié)合基于USB總線的數(shù)據(jù)采集設(shè)備,介紹了WDM驅(qū)動(dòng)程序的工作原理,設(shè)計(jì)原則和設(shè)計(jì)方法,并給出一個(gè)實(shí)現(xiàn)塊傳輸?shù)腢SB設(shè)備驅(qū)動(dòng)程序例程,詳細(xì)的介紹了該例程的各個(gè)功能模塊。該例程性能穩(wěn)定,傳輸可靠,已應(yīng)用于數(shù)據(jù)

摘要:結(jié)合基于USB總線數(shù)據(jù)采集設(shè)備,介紹了WDM驅(qū)動(dòng)程序的工作原理,設(shè)計(jì)原則和設(shè)計(jì)方法,并給出一個(gè)實(shí)現(xiàn)塊傳輸?shù)腢SB設(shè)備驅(qū)動(dòng)程序例程,詳細(xì)的介紹了該例程的各個(gè)功能模塊。該例程性能穩(wěn)定,傳輸可靠,已應(yīng)用于數(shù)據(jù)采集設(shè)備中。對(duì)系統(tǒng)的性能進(jìn)行測(cè)試的結(jié)果表明:數(shù)據(jù)的傳輸過程達(dá)到了設(shè)計(jì)的要求。驅(qū)動(dòng)程序設(shè)計(jì)過程的詳細(xì)介紹對(duì)USB專用設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)和開發(fā)具有良好的參考應(yīng)用價(jià)值。
關(guān)鍵詞:USB2.0協(xié)議;數(shù)據(jù)采集;WDM驅(qū)動(dòng)程序

0 引言
    隨著計(jì)算機(jī)應(yīng)用技術(shù)的發(fā)展,虛擬儀器、自動(dòng)測(cè)試系統(tǒng)、自動(dòng)控制等領(lǐng)域,均越來越多的應(yīng)用計(jì)算機(jī)來進(jìn)行數(shù)據(jù)處理。USB總線標(biāo)準(zhǔn)的提出,解決了計(jì)算機(jī)傳統(tǒng)I/O接口通用性差、不易擴(kuò)展、易受計(jì)算機(jī)插槽數(shù)量、地址和中斷資源的限制等缺點(diǎn),使計(jì)算機(jī)在測(cè)控領(lǐng)域的重要性與日俱增,也使USB總線在數(shù)采測(cè)控業(yè)界備受關(guān)注,并在各種測(cè)控設(shè)備中迅速發(fā)展,但專用的USB設(shè)備不能像鼠標(biāo)、鍵盤等HID類設(shè)備一樣使用Windows系統(tǒng)提供的標(biāo)準(zhǔn)驅(qū)動(dòng)程序,而是需要開發(fā)專用的驅(qū)動(dòng)程序。開發(fā)驅(qū)動(dòng)程序與開發(fā)Windows應(yīng)用程序完全不同,驅(qū)動(dòng)程序以系統(tǒng)的內(nèi)核模式運(yùn)行,任何細(xì)小的錯(cuò)誤都可能引起操作系統(tǒng)的崩潰。因此,專用設(shè)備驅(qū)動(dòng)程序開發(fā)的復(fù)雜性,成為了USB總線在該領(lǐng)域發(fā)展的瓶頸。隨著軍事裝備自動(dòng)化、數(shù)字化、智能化程度越來越高,一種更為簡(jiǎn)便的驅(qū)動(dòng)程序開發(fā)方法的探討十分有益。基于軍用電站檢測(cè)儀中USB數(shù)據(jù)采集模塊的開發(fā),介紹了USB專用設(shè)備驅(qū)動(dòng)程序開發(fā)的一般過程。

1 WDM驅(qū)動(dòng)程序概述
    WDM(windows driver mode)是微軟推出的一種驅(qū)動(dòng)程序模型,以簡(jiǎn)化驅(qū)動(dòng)程序的開發(fā)。它采用分層驅(qū)動(dòng)的方式,即在應(yīng)用程序和物理設(shè)備之間存在著幾個(gè)不同層次的驅(qū)動(dòng)程序,且各層驅(qū)動(dòng)程序有不同的優(yōu)先級(jí),每個(gè)驅(qū)動(dòng)程序?qū)?yīng)一層,不同層上的驅(qū)動(dòng)程序可以相互調(diào)用。USB系統(tǒng)的組成如圖1所示:應(yīng)用程序通過API函數(shù)調(diào)用Win32系統(tǒng)子函數(shù),驅(qū)動(dòng)程序分為設(shè)備驅(qū)動(dòng)程序,總線驅(qū)動(dòng)程序(USBD)和主控制器驅(qū)動(dòng)程序(HCD)三層,它們均運(yùn)行在系統(tǒng)的內(nèi)核模式。設(shè)備驅(qū)動(dòng)程序使用IRP(I/ORequest Packet)通過總線驅(qū)動(dòng)程序提供的軟件接口(USBDI,USB Driver Interface)向總線驅(qū)動(dòng)程序發(fā)出I/O請(qǐng)求,并根據(jù)數(shù)據(jù)傳輸方向提供一個(gè)或空或滿的內(nèi)存緩沖區(qū);USBD負(fù)責(zé)管理數(shù)據(jù)的總線傳輸,也有設(shè)備驅(qū)動(dòng)程序與其他軟件接口的功能單元進(jìn)行通信,沒有直接調(diào)用USBD,但總有一個(gè)更低層的驅(qū)動(dòng)軟件發(fā)生USBD調(diào)用。主控制器驅(qū)動(dòng)程序處在USB系統(tǒng)軟件的最底層,直接與主控制器的硬件通信,它提供了只有總線驅(qū)動(dòng)程序才能訪問的主控制器驅(qū)動(dòng)程序軟件接口HCDI(Host Control Driver Interface)。其中,總線驅(qū)動(dòng)程序和主控制器驅(qū)動(dòng)程序是系統(tǒng)的底層驅(qū)動(dòng)程序。設(shè)備驅(qū)動(dòng)程序是針對(duì)某一USB設(shè)備的專用驅(qū)動(dòng)程序。


2 數(shù)據(jù)采集設(shè)備驅(qū)動(dòng)程序的開發(fā)
    Windows為USB設(shè)備提供了底層驅(qū)動(dòng)程序,與底層驅(qū)動(dòng)程序接口的是I/O請(qǐng)求包(IRP),Windows為應(yīng)用程序提供的接口則是API函數(shù)。因此必須在它們之間建立一個(gè)驅(qū)動(dòng)程序,在底層驅(qū)動(dòng)與Win32應(yīng)用程序之間傳遞消息,即設(shè)備驅(qū)動(dòng)程序。VC++、VB等軟件開發(fā)的應(yīng)用程序,在設(shè)備驅(qū)動(dòng)程序的支持下,都可以調(diào)用ReadFile()、WriteFile()、DeviceIoControl()等API函數(shù)向設(shè)備傳遞主機(jī)請(qǐng)求。Windows系統(tǒng)自動(dòng)將API調(diào)用轉(zhuǎn)化為IRP,設(shè)備驅(qū)動(dòng)程序把它向下層驅(qū)動(dòng)傳遞。直到完成其所指定的功能再沿驅(qū)動(dòng)程序棧返回主機(jī)。
    設(shè)備驅(qū)動(dòng)程序的開發(fā)
    開發(fā)設(shè)備驅(qū)動(dòng)程序一般采用以下幾種方法:1)直接使用Windows DDK,這種方法開發(fā)難度較大,設(shè)計(jì)者必須對(duì)整個(gè)體系結(jié)構(gòu)有很好的理解和把握。2)使用Driver Studio,該工具軟件可為設(shè)計(jì)者提供驅(qū)動(dòng)程序的整體框架,設(shè)計(jì)者只需要專心于功能代碼設(shè)計(jì)。3)使用win Driver,這種方法開發(fā)驅(qū)動(dòng)程序很容易,但工作效率不是很高。這里采用第二種方法。
    Driver Studio生成驅(qū)動(dòng)程序框架主要由兩個(gè)類組成,一個(gè)是Driver類,另一個(gè)是Device類Driver類。
    1)Driver類用于初始化驅(qū)動(dòng)程序,它包括:入口函數(shù)Driver Entry和Add Device函數(shù)。當(dāng)設(shè)備驅(qū)動(dòng)程序被加載時(shí),操作系統(tǒng)調(diào)用Driver Entry函數(shù);當(dāng)創(chuàng)建設(shè)備對(duì)象并把它連接到設(shè)備堆棧時(shí)調(diào)用Add Device函數(shù)。函數(shù)代碼如下:


    2)Device類是設(shè)備類KDvice的派生類,這個(gè)類包含了電源管理、設(shè)備讀寫、設(shè)備控制等具有特定功能的例程。限于篇幅只介紹批量讀寫端點(diǎn)函數(shù)。

    INF文件的編寫
    INF文件是一個(gè)文本文件,它含有安裝一個(gè)設(shè)備驅(qū)動(dòng)程序需要的所有必需的安裝信息。包括要復(fù)制的文件列表,要?jiǎng)?chuàng)建的注冊(cè)表項(xiàng)等。用以告訴系統(tǒng)安裝哪一個(gè)驅(qū)動(dòng)程序,INF文件由若干區(qū)段組成,下面列出幾個(gè)區(qū)段及其功用:
    1)Version區(qū)段是INF文件的開始,其Class和ClassGuid指出了驅(qū)動(dòng)程序所屬的設(shè)備類別及設(shè)備的GUID。GUID(Global Unique Identi-fier)用以標(biāo)識(shí)不同的驅(qū)動(dòng)程序,它是全局且唯一的,系統(tǒng)就是通過GUID把應(yīng)用程序的I/O請(qǐng)求傳達(dá)給相應(yīng)的驅(qū)動(dòng)程序的。
    2)Mantifacturer區(qū)段指明供應(yīng)商及其對(duì)應(yīng)Models字節(jié)的名稱。
    3)Install.AddReg/Install.Services指明注冊(cè)表添加內(nèi)容及安裝驅(qū)動(dòng)的詳細(xì)信息。
    該驅(qū)動(dòng)程序應(yīng)用于數(shù)據(jù)采集模塊采集電站的電壓信號(hào),部分采集數(shù)據(jù)如表1所示:


    測(cè)量誤差主要來源于模塊的A/D,與驅(qū)動(dòng)無關(guān)系,數(shù)據(jù)傳輸結(jié)果表明:數(shù)據(jù)可以在該驅(qū)動(dòng)下及時(shí)正確的傳輸,模塊工作正常。

3 結(jié)束語
    該設(shè)備驅(qū)動(dòng)程序用于電站檢測(cè)儀中USB數(shù)據(jù)采集模塊的效果良好,用這種方法提高了開發(fā)效率,縮短了開發(fā)周期,使開發(fā)者可將主要精力集中于實(shí)現(xiàn)設(shè)備功能上,為非軟件專業(yè)開發(fā)者開發(fā)基于USB總線的檢測(cè)儀驅(qū)動(dòng)提供了很好的借鑒。也為USB總線在測(cè)控領(lǐng)域的應(yīng)用開創(chuàng)了光明的前景。相信以計(jì)算機(jī)為數(shù)據(jù)處理核心,以USB總線為數(shù)據(jù)通信方法的測(cè)控儀器將成為測(cè)控業(yè)發(fā)展主流。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉