《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > USB總線數據采集設備驅動程序的設計
USB總線數據采集設備驅動程序的設計
摘要: 隨著計算機應用技術的發展,虛擬儀器、自動測試系統、自動控制等領域,均越來越多的應用計算機來進行數據處理。USB總線標準的提出,解決了計算機傳統I/O接口通用性差、不易擴展、易受計算機插槽數量、地址和中斷資源的限制等缺點,使計算機在測控領域的重要性與日俱增,也使USB總線在數采測控業界備受關注,并在各種測控設備中迅速發展,但專用的USB設備不能像鼠標、鍵盤等HID類設備一樣使用Windows系統提供的標準驅動程序,而是需要開發專用的驅動程序。
Abstract:
Key words :

 

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

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

 

 

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

 


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

    INF文件的編寫
    INF文件是一個文本文件,它含有安裝一個設備驅動程序需要的所有必需的安裝信息。包括要復制的文件列表,要創建的注冊表項等。用以告訴系統安裝哪一個驅動程序,INF文件由若干區段組成,下面列出幾個區段及其功用:
    1)Version區段是INF文件的開始,其Class和ClassGuid指出了驅動程序所屬的設備類別及設備的GUID。GUID(Global Unique Identi-fier)用以標識不同的驅動程序,它是全局且唯一的,系統就是通過GUID把應用程序的I/O請求傳達給相應的驅動程序的。
    2)Mantifacturer區段指明供應商及其對應Models字節的名稱。
    3)Install.AddReg/Install.Services指明注冊表添加內容及安裝驅動的詳細信息。
    該驅動程序應用于數據采集模塊采集電站的電壓信號,部分采集數據如表1所示:


    測量誤差主要來源于模塊的A/D,與驅動無關系,數據傳輸結果表明:數據可以在該驅動下及時正確的傳輸,模塊工作正常。

3 結束語
    該設備驅動程序用于電站檢測儀中USB數據采集模塊的效果良好,用這種方法提高了開發效率,縮短了開發周期,使開發者可將主要精力集中于實現設備功能上,為非軟件專業開發者開發基于USB總線的檢測儀驅動提供了很好的借鑒。也為USB總線在測控領域的應用開創了光明的前景。相信以計算機為數據處理核心,以USB總線為數據通信方法的測控儀器將成為測控業發展主流。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一区二区三区在线不卡| 亚洲毛片在线观看.| 欧美日韩国产精品专区| 免费视频一区| 免费观看亚洲视频大全| 久热精品视频在线免费观看| 欧美一区二区视频97| 亚洲综合成人在线| 亚洲一区二区高清视频| 一区二区免费在线观看| 亚洲色在线视频| 亚洲一区二区在线免费观看| 一区二区三区四区五区在线| 中文在线资源观看网站视频免费不卡| 亚洲精品资源美女情侣酒店| 亚洲精品免费在线播放| 亚洲日韩成人| 亚洲精选中文字幕| 亚洲免费观看| 亚洲最黄网站| 亚洲视频精选| 午夜精品久久久久久久白皮肤| 亚洲色图制服丝袜| 亚洲在线一区二区三区| 亚洲欧美日韩精品久久奇米色影视| 亚洲影院免费观看| 亚洲国产电影| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲卡通欧美制服中文| 日韩视频免费在线| 在线视频精品| 午夜视频久久久| 久久久噜噜噜久久中文字免| 久久综合99re88久久爱| 欧美国产综合一区二区| 欧美色图一区二区三区| 国产伦理精品不卡| 一区二区三区中文在线观看| 亚洲第一在线视频| 日韩视频永久免费| 亚洲欧美久久| 亚洲国产另类久久久精品极度| 亚洲美女在线看| 亚洲欧美日韩在线播放| 久久成人免费视频| 免费日本视频一区| 国产精品成人国产乱一区| 国产美女诱惑一区二区| 国产在线拍偷自揄拍精品| 亚洲国产精品ⅴa在线观看| 日韩视频免费观看| 性欧美超级视频| 亚洲精品日韩欧美| 亚洲欧美日本另类| 久久尤物视频| 欧美日韩免费一区二区三区| 国产毛片久久| 亚洲欧洲一区二区在线播放| 亚洲午夜av在线| 亚洲国产精品va在线看黑人动漫 | 亚洲品质自拍| 亚洲欧美日韩视频二区| 久久久之久亚州精品露出| 欧美日韩免费在线观看| 国产主播一区二区三区四区| 最近中文字幕mv在线一区二区三区四区 | 亚洲欧美福利一区二区| 午夜精品久久| 亚洲精品美女91| 午夜精品国产更新| 欧美成人黄色小视频| 国产精品网红福利| 亚洲国产高清在线观看视频| 一区二区三区四区五区在线| 亚洲国产一区二区三区高清 | 蜜桃久久精品乱码一区二区| 欧美三级电影网| 好看的亚洲午夜视频在线| 99国产精品久久久久久久成人热 | 国产精品一区二区在线| 亚洲第一中文字幕在线观看| 亚洲一区二区三区中文字幕在线 | 亚洲电影欧美电影有声小说| 亚洲一区二区三区视频播放| 久久一综合视频| 黑人极品videos精品欧美裸| 国产精品日韩久久久| 亚洲高清资源| 亚洲欧美精品在线| 一区二区精品| 欧美成人国产| 国产综合色产在线精品| 亚洲永久免费av| 夜夜夜久久久| 男男成人高潮片免费网站| 国产日韩一区二区三区在线播放| 日韩亚洲欧美在线观看| 亚洲国产精品久久久久久女王| 亚洲欧美综合| 欧美日韩一二三区| 亚洲国产日日夜夜| 亚洲国产欧美日韩另类综合| 久久大逼视频| 国产欧美日本一区二区三区| 亚洲午夜免费福利视频| 亚洲私人影院在线观看| 欧美日韩成人精品| 91久久国产综合久久蜜月精品| 亚洲福利免费| 久久久久久尹人网香蕉| 国产精品尤物福利片在线观看| 一个色综合导航| 夜夜嗨av一区二区三区中文字幕| 美女91精品| 精品51国产黑色丝袜高跟鞋| 欧美一级片一区| 亚洲三级视频| 欧美激情第10页| 曰本成人黄色| 亚洲国产成人一区| 麻豆国产va免费精品高清在线| 国产主播精品| 久久精品一区二区三区不卡| 久久精品日韩| 国产一区二区三区久久悠悠色av | 亚洲欧美国产毛片在线| 午夜精品理论片| 国产久一道中文一区| 亚洲一级二级| 午夜欧美不卡精品aaaaa| 国产精品免费区二区三区观看| 亚洲视频在线播放| 欧美亚洲一区在线| 国产在线欧美| 亚洲国产精品一区二区www在线| 久久久亚洲一区| **欧美日韩vr在线| 亚洲精品日韩在线观看| 欧美精品久久久久久久久老牛影院 | 久久免费视频在线| 黄色国产精品一区二区三区| 亚洲高清视频在线观看| 免费日韩av片| 亚洲精品日韩在线| 亚洲主播在线| 国产亚洲免费的视频看| 亚洲国产日韩在线| 欧美乱人伦中文字幕在线| 一区二区久久| 欧美一区二区三区视频在线 | 激情久久久久久久久久久久久久久久| 欧美在线视频全部完| 老鸭窝91久久精品色噜噜导演| 亚洲国产高清高潮精品美女| 99在线精品免费视频九九视| 欧美日韩一区二区欧美激情| 亚洲午夜视频| 久久婷婷久久| 亚洲精品中文字幕女同| 午夜精品视频在线观看一区二区 | 伊人久久亚洲热| 夜夜夜久久久| 国产日韩精品综合网站| 亚洲欧洲在线看| 国产精品久久久久久久久借妻| 亚洲欧美日韩精品综合在线观看| 久久在精品线影院精品国产| 日韩一区二区精品在线观看| 欧美在线免费观看亚洲| 亚洲高清在线观看一区| 亚洲午夜在线观看视频在线| 国产一二三精品| 国产精品99久久久久久久vr| 国产日本欧美一区二区| 亚洲欧洲日韩在线| 国产精品日本精品| 亚洲黄色免费| 欧美一区二区日韩| 亚洲福利专区| 欧美一区二区视频免费观看| 影音先锋一区| 欧美亚洲视频在线看网址| 在线观看日韩www视频免费| 亚洲午夜在线| 亚洲第一在线视频| 欧美一区亚洲二区| 亚洲精选在线| 久久综合给合久久狠狠色| 亚洲视频免费观看| 欧美韩日一区| 欧美中在线观看| 国产精品啊v在线| 亚洲精品1234| 国产一区二区三区丝袜| 亚洲一区在线直播| 亚洲第一中文字幕| 久久久久久久一区| 亚洲一区三区电影在线观看| 欧美精品三级| 91久久久久久国产精品|