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

USB總線數(shù)據(jù)采集設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)

發(fā)布時(shí)間:2010-3-24 16:42    發(fā)布者:李寬
結(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à)值。

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ā)展主流。

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

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 18av 在线| 无毒成人社区| 中文字幕乱码在线人视频| 欧洲一级黄色| 日本五级床片午夜视频| 五月天丁香婷婷综合久久| 四虎hu| 一区二区三区四区在线观看视频 | 欧美14videosex性欧美成人| 欧美中出在线| 婷婷快播| 亚洲天堂在线观看视频| 在健身器材上做a| 久久无码人妻AV精品一区| 亚洲电影成人 成人影院| 日本黄色免费观看| 天天躁夜夜躁狠狠躁2024| 天天曰天天干| 超碰98人人插| 甜性涩爱bt下载| 五月天福利| 性欧美人| 一级免费看| 啦啦啦 中文 中国 免费 高清在线 | 天天色狠狠干| 日韩欧美国产三级| 亚洲成在线| 在线观看男女爱视频网站| 国产中文视频无码成人精品| 无码天堂亚洲内射精品课堂| 日本三级影院| 亚洲三级欧美| 自拍偷拍片| 日本精油按摩| 欧美在线亚洲国产免m观看| 日日躁夜夜躁狠狠天天| 在线久色| 鱼神免费微密资源| 蜜桃色欲AV久久无码精品| 最近中文字幕高清中文字幕MV| 亚洲精品亚洲人成在线观看麻豆|