国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

USB總線數據采集設備驅動程序的設計

發布時間:2010-3-24 16:42    發布者:李寬
關鍵詞: USB , 程序 , 設備 , 數據采集 , 總線
結合基于USB總線的數據采集設備,介紹了WDM驅動程序的工作原理,設計原則和設計方法,并給出一個實現塊傳輸的USB設備驅動程序例程,詳細的介紹了該例程的各個功能模塊。該例程性能穩定,傳輸可靠,已應用于數據采集設備中。對系統的性能進行測試的結果表明:數據的傳輸過程達到了設計的要求。驅動程序設計過程的詳細介紹對USB專用設備驅動程序的設計和開發具有良好的參考應用價值。

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總線為數據通信方法的測控儀器將成為測控業發展主流。

作者:臧巨輪 朱長青 王川川 姜少飛 軍械工程學院電氣工程系
來源:國外電子測量技術
本文地址:http://m.qingdxww.cn/thread-9828-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本草逼视频| 视频一区亚洲| 一二三四日本动漫在线观看视频| 国产传媒在线播放| 精品蜜臀AV在线天堂| 怡春院欧美一区二区三区免费| 日韩城人免费| 亚洲免费视频播放| 羞羞影视| 99久久精品国产自免费| 久久久久久久久女黄9999| 亚洲地址一地址二地址三| 桃花岛亚洲精品tv自拍网站| 天天色天天综合网| 亚洲色图150p| 俄罗斯老妇女BBXX| 欧美午夜精品一区区电影| 日本 片 成人 在线| 欧美性猛交乱大交xxxx| 亚洲第一欧美| 在线成年人视频| 免费高清国产| 热久久中文字幕| 日本免费专区| 外出在线播放| 国产精品美女久久久久浪潮AV| 日本久久久| 亚综合| 欧美视频网站在线观看| 中文一区在线| 优优色票院| 国产亚洲精品久久久闺蜜| 一受多攻高h| 热e国产| 五月天婷婷亚洲| writeas雷狮直播| 欧美亚洲日本日韩在线| 午夜影院美女| 午夜视频在线免费| 亚洲欧美日韩在线观看播放| 寂寞护士中文字幕 mp4|