USB總線(xiàn)數據采集設備驅動(dòng)程序的設計
摘要:結合基于USB總線(xiàn)的數據采集設備,介紹了WDM驅動(dòng)程序的工作原理,設計原則和設計方法,并給出一個(gè)實(shí)現塊傳輸的USB設備驅動(dòng)程序例程,詳細的介紹了該例程的各個(gè)功能模塊。該例程性能穩定,傳輸可靠,已應用于數據采集設備中。對系統的性能進(jìn)行測試的結果表明:數據的傳輸過(guò)程達到了設計的要求。驅動(dòng)程序設計過(guò)程的詳細介紹對USB專(zhuān)用設備驅動(dòng)程序的設計和開(kāi)發(fā)具有良好的參考應用價(jià)值。
關(guān)鍵詞:USB2.0協(xié)議;數據采集;WDM驅動(dòng)程序
0 引言
隨著(zhù)計算機應用技術(shù)的發(fā)展,虛擬儀器、自動(dòng)測試系統、自動(dòng)控制等領(lǐng)域,均越來(lái)越多的應用計算機來(lái)進(jìn)行數據處理。USB總線(xiàn)標準的提出,解決了計算機傳統I/O接口通用性差、不易擴展、易受計算機插槽數量、地址和中斷資源的限制等缺點(diǎn),使計算機在測控領(lǐng)域的重要性與日俱增,也使USB總線(xiàn)在數采測控業(yè)界備受關(guān)注,并在各種測控設備中迅速發(fā)展,但專(zhuān)用的USB設備不能像鼠標、鍵盤(pán)等HID類(lèi)設備一樣使用Windows系統提供的標準驅動(dòng)程序,而是需要開(kāi)發(fā)專(zhuān)用的驅動(dòng)程序。開(kāi)發(fā)驅動(dòng)程序與開(kāi)發(fā)Windows應用程序完全不同,驅動(dòng)程序以系統的內核模式運行,任何細小的錯誤都可能引起操作系統的崩潰。因此,專(zhuān)用設備驅動(dòng)程序開(kāi)發(fā)的復雜性,成為了USB總線(xiàn)在該領(lǐng)域發(fā)展的瓶頸。隨著(zhù)軍事裝備自動(dòng)化、數字化、智能化程度越來(lái)越高,一種更為簡(jiǎn)便的驅動(dòng)程序開(kāi)發(fā)方法的探討十分有益?;谲娪秒娬緳z測儀中USB數據采集模塊的開(kāi)發(fā),介紹了USB專(zhuān)用設備驅動(dòng)程序開(kāi)發(fā)的一般過(guò)程。
1 WDM驅動(dòng)程序概述
WDM(windows driver mode)是微軟推出的一種驅動(dòng)程序模型,以簡(jiǎn)化驅動(dòng)程序的開(kāi)發(fā)。它采用分層驅動(dòng)的方式,即在應用程序和物理設備之間存在著(zhù)幾個(gè)不同層次的驅動(dòng)程序,且各層驅動(dòng)程序有不同的優(yōu)先級,每個(gè)驅動(dòng)程序對應一層,不同層上的驅動(dòng)程序可以相互調用。USB系統的組成如圖1所示:應用程序通過(guò)API函數調用Win32系統子函數,驅動(dòng)程序分為設備驅動(dòng)程序,總線(xiàn)驅動(dòng)程序(USBD)和主控制器驅動(dòng)程序(HCD)三層,它們均運行在系統的內核模式。設備驅動(dòng)程序使用IRP(I/ORequest Packet)通過(guò)總線(xiàn)驅動(dòng)程序提供的軟件接口(USBDI,USB Driver Interface)向總線(xiàn)驅動(dòng)程序發(fā)出I/O請求,并根據數據傳輸方向提供一個(gè)或空或滿(mǎn)的內存緩沖區;USBD負責管理數據的總線(xiàn)傳輸,也有設備驅動(dòng)程序與其他軟件接口的功能單元進(jìn)行通信,沒(méi)有直接調用USBD,但總有一個(gè)更低層的驅動(dòng)軟件發(fā)生USBD調用。主控制器驅動(dòng)程序處在USB系統軟件的最底層,直接與主控制器的硬件通信,它提供了只有總線(xiàn)驅動(dòng)程序才能訪(fǎng)問(wèn)的主控制器驅動(dòng)程序軟件接口HCDI(Host Control Driver Interface)。其中,總線(xiàn)驅動(dòng)程序和主控制器驅動(dòng)程序是系統的底層驅動(dòng)程序。設備驅動(dòng)程序是針對某一USB設備的專(zhuān)用驅動(dòng)程序。
評論