USB驅(qū)動(dòng)編程培訓(xùn)upload課件

上傳人:無*** 文檔編號(hào):253352234 上傳時(shí)間:2024-12-11 格式:PPT 頁數(shù):41 大?。?.37MB
收藏 版權(quán)申訴 舉報(bào) 下載
USB驅(qū)動(dòng)編程培訓(xùn)upload課件_第1頁
第1頁 / 共41頁
USB驅(qū)動(dòng)編程培訓(xùn)upload課件_第2頁
第2頁 / 共41頁
USB驅(qū)動(dòng)編程培訓(xùn)upload課件_第3頁
第3頁 / 共41頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《USB驅(qū)動(dòng)編程培訓(xùn)upload課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《USB驅(qū)動(dòng)編程培訓(xùn)upload課件(41頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,USB驅(qū)動(dòng)編程培訓(xùn)upload,*,USB驅(qū)動(dòng)編程培訓(xùn)upload,2024/12/11,USB驅(qū)動(dòng)編程培訓(xùn)upload,簡(jiǎn)介,USB編碼以及總線數(shù)據(jù)結(jié)構(gòu),USB數(shù)據(jù)流模型,USB的PNP管理,USB的電源管理,USB數(shù)據(jù)包與應(yīng)用程序,2024/12/11,2,USB驅(qū)動(dòng)編程培訓(xùn)upload,USB編碼以及總線數(shù)據(jù)結(jié)構(gòu),USB編碼,USB總線數(shù)據(jù)結(jié)構(gòu),包,傳輸事務(wù),幀結(jié)構(gòu),2024/12/11,3,USB驅(qū)動(dòng)編程培訓(xùn)upload,USB編碼,USB接口針腳結(jié)構(gòu):,同步時(shí)鐘+數(shù)據(jù):,采用了,NRZI(Non

2、Return to Zero Invert)反向非歸零編碼;,既能保證數(shù)據(jù)傳送的完整,也不需要獨(dú)立的時(shí)鐘信號(hào),2024/12/11,4,USB驅(qū)動(dòng)編程培訓(xùn)upload,包(Package),包的格式:令牌包,數(shù)據(jù)包,握手包,用7個(gè)0和1個(gè)1作為同步序列,2024/12/11,5,USB驅(qū)動(dòng)編程培訓(xùn)upload,USB傳輸事務(wù)(Transaction),每個(gè)傳輸事務(wù)由三個(gè)包組成。,2024/12/11,6,USB驅(qū)動(dòng)編程培訓(xùn)upload,幀結(jié)構(gòu)(Frame),每個(gè)幀內(nèi)數(shù)據(jù)由傳輸事務(wù)組合組成,2024/12/11,7,USB驅(qū)動(dòng)編程培訓(xùn)upload,USB總線數(shù)據(jù)結(jié)構(gòu),由于有許多設(shè)備都接到了USB

3、上,因此每1ms產(chǎn)生的傳輸幀是混合的。其中,中斷傳輸(Interrupt),和,同步傳輸(Isochronous),對(duì)時(shí)間要求高,因此占用了約90的總帶寬,,控制傳輸(Control),占用了約10的帶寬,而批量傳輸(Bulk)則使用剩下的可用帶寬,2024/12/11,8,USB驅(qū)動(dòng)編程培訓(xùn)upload,USB數(shù)據(jù)流模型,USB協(xié)議簡(jiǎn)介,USB外設(shè)與總線,數(shù)據(jù)流模型,模型整體框架,參與通信抽象對(duì)象,實(shí)際數(shù)據(jù)流向,驅(qū)動(dòng)程序與系統(tǒng)內(nèi)核之間的關(guān)系,USB驅(qū)動(dòng)例程中的一些回調(diào)接口,2024/12/11,9,USB驅(qū)動(dòng)編程培訓(xùn)upload,USB協(xié)議簡(jiǎn)介,USB協(xié)議:,USB采用輪詢的廣播機(jī)制傳輸數(shù)據(jù)

4、,即“令牌包,數(shù)據(jù)包,握手包”;,根據(jù)包標(biāo)識(shí)符PID字段,用于識(shí)別數(shù)據(jù)包類型;,字段-包-傳輸事務(wù)-幀;,不同傳輸模式是通過相應(yīng)的傳輸事務(wù)序列下實(shí)現(xiàn)的。,2024/12/11,10,USB驅(qū)動(dòng)編程培訓(xùn)upload,USB外設(shè)與總線,PC機(jī)上USB接口設(shè)備的連接拓?fù)浣Y(jié)構(gòu),2024/12/11,11,USB驅(qū)動(dòng)編程培訓(xùn)upload,數(shù)據(jù)流模型,USB必須分層理解:,用戶應(yīng)用程序;,IO管理器層;,驅(qū)動(dòng)程序;,硬件抽象層(HAL);,硬件外設(shè),2024/12/11,12,USB驅(qū)動(dòng)編程培訓(xùn)upload,模型整體框架,客戶軟件,:,對(duì)設(shè)備功能進(jìn)行操作軟件,它是針對(duì) 物理設(shè)備功能開發(fā)的。,USB系統(tǒng),:

5、它包括操作系統(tǒng)對(duì)USB支持,USB控制器總線驅(qū)動(dòng),既占硬件也占軟件,好比一個(gè)翻譯。,USB設(shè)備驅(qū)動(dòng),:客戶端軟件與USB系統(tǒng)的之間的接口。,USB控制器,將,IRP,譯碼成USB協(xié)議數(shù)據(jù)傳輸?shù)経SB總線上;,2024/12/11,13,USB驅(qū)動(dòng)編程培訓(xùn)upload,參與通信的抽象對(duì)象,通道(pipe),:就是主機(jī)與設(shè)備之間傳輸?shù)臄?shù)據(jù)的模型共有兩種類型的管道:,無格式的流管道(Stream Pipe),和,有格式的信息管道(Message Pipe),2024/12/11,14,USB驅(qū)動(dòng)編程培訓(xùn)upload,參與通信的抽象對(duì)象,邏輯設(shè)備(device):,驅(qū)動(dòng)程序?qū)?yīng)硬件實(shí)際功能暴露給操作系

6、統(tǒng)內(nèi)核接口的抽象對(duì)象;每個(gè)設(shè)備都有一個(gè)默認(rèn)的控制端點(diǎn),。,配置(Configuration):,用于設(shè)置一些結(jié)構(gòu)來設(shè)定設(shè)備功能接口。,接口(Interface):,邏輯設(shè)備中功能相近相同的一些端點(diǎn)的集合,。,端點(diǎn)(EndPonit):,位于USB設(shè)備或主機(jī)上的一個(gè)數(shù)據(jù)緩沖區(qū),用來存放和發(fā)送USB的各種數(shù)據(jù),每一個(gè)端點(diǎn)都有惟一的確定地址,有不同的傳輸特性(如輸入端點(diǎn)、輸出端點(diǎn)、配置端點(diǎn)、批量傳輸端點(diǎn)),2024/12/11,15,USB驅(qū)動(dòng)編程培訓(xùn)upload,實(shí)際數(shù)據(jù)流,如右圖所示,:,客戶軟件通過USB設(shè)備驅(qū)動(dòng)(USBD)發(fā)送IRQ請(qǐng)求請(qǐng)求傳送數(shù)據(jù);,主機(jī)控制器驅(qū)動(dòng)(HCD)將接收IRQ請(qǐng)求

7、解析成USB傳輸和傳輸事務(wù)。,主機(jī)控制器將這些USB傳輸和傳輸事務(wù)打包成USB協(xié)議數(shù)據(jù)包通過USB總線傳輸給USB設(shè)備交互,2024/12/11,16,USB驅(qū)動(dòng)編程培訓(xùn)upload,驅(qū)動(dòng)程序與操作系統(tǒng)之間的關(guān)系,USB總線的設(shè)備也屬于即插即用設(shè)備,由上一小節(jié)可知,USB驅(qū)動(dòng)程序主要還是通過IRP包進(jìn)行數(shù)據(jù)交換,操作系統(tǒng)主要就是通過PNP管理器與IO管理器與以及部分內(nèi)核對(duì)USB驅(qū)動(dòng)程序的中斷,內(nèi)存資源進(jìn)行管理;,操作系統(tǒng)用戶模式,IO管理器,即插即用PNP管理器,操作系統(tǒng)內(nèi)核,USB驅(qū)動(dòng)程序,硬件抽象層,USB硬件設(shè)備,2024/12/11,17,USB驅(qū)動(dòng)編程培訓(xùn)upload,USB驅(qū)動(dòng)程序

8、一些例程函數(shù)接口,在USB驅(qū)動(dòng)程序入口例程DriverEntry中,DRVER_OBJECT對(duì)象專門在majorFuction數(shù)組預(yù)留以下接口處理相對(duì)應(yīng)的IRP:,IRP_MJ_CREATE 以文件形式打開設(shè)備準(zhǔn)備讀寫,調(diào)用其做準(zhǔn)備;,IRP_MJ_CLOSE 當(dāng)前用戶關(guān)閉文件(closeHandle)時(shí),調(diào)用它清掃系統(tǒng);,IRP_MJ_PNP 處理即插即用的操作,IRP_MJ_READ 處理讀文件操作(Read File),IRP_MJ_WRITE 處理寫文件操作(Write File),IRP_MJ_DEVICE_CONTROL 處理來之硬件對(duì)操作系統(tǒng)的IO控制碼。,2024/12/11,

9、18,USB驅(qū)動(dòng)編程培訓(xùn)upload,IRP_MJ_CREAT,以文件形式打開設(shè)備,檢查設(shè)備狀態(tài),是否正常工作;,取消設(shè)備掛起,打開管道,并將此管道與文件的變量相關(guān)聯(lián),;,OpenHandleCount內(nèi)核對(duì)象計(jì)數(shù)加一;,這是creafile相關(guān)聯(lián)的;,2024/12/11,19,USB驅(qū)動(dòng)編程培訓(xùn)upload,IRP_MJ_READ和IRP_MJ_WRITE,單獨(dú)一個(gè)例程完成他們:,初始化URB,并判斷通道工作方式,并從文件中獲取管道信息。,檢查IRP的MDL(a memory descriptor list),根據(jù)讀寫變量設(shè)置URB標(biāo)志位。,根據(jù)MDL開辟內(nèi)存,上層用戶模式數(shù)據(jù)映像,構(gòu)造U

10、RB請(qǐng)求;,2024/12/11,20,USB驅(qū)動(dòng)編程培訓(xùn)upload,PNP即插即用管理器,PNP管理器概述以及相關(guān)組件,即插即用IRP,PNP管理器在USB驅(qū)動(dòng)程序的操作,2024/12/11,21,USB驅(qū)動(dòng)編程培訓(xùn)upload,PNP管理器概述,什么是PNP管理器呢?,PNP plug and play 即插即用設(shè)備管理,其主要有以下四個(gè)作用:,操作系統(tǒng)能檢測(cè)新設(shè)備插入,也能檢測(cè)得到設(shè)備的拔出;,如果總線接口允許,設(shè)備可以實(shí)現(xiàn)熱插拔,并保證操作系統(tǒng)正常工作;,設(shè)備允許軟件配置。,操作系統(tǒng)應(yīng)該知道哪些是正確的驅(qū)動(dòng)程序,并智能地加載。,2024/12/11,22,USB驅(qū)動(dòng)編程培訓(xùn)uplo

11、ad,PNP即插即用管理器相關(guān)組件,即插即用管理程序(用戶模式),用戶模式,內(nèi)核模式,注冊(cè)表,IO管理器,執(zhí)行體,即插即用管理程序,電源管理程序,設(shè)備wdm驅(qū)動(dòng)程序,總線驅(qū)動(dòng)程序,硬件抽象層HAL,2024/12/11,23,USB驅(qū)動(dòng)編程培訓(xùn)upload,即插即用IRP,即插即用IRP(IRP_MJ_PNP):,由即插即用管理器發(fā)送給設(shè)備驅(qū)動(dòng)程序的;,在驅(qū)動(dòng)對(duì)象的主功能函數(shù)內(nèi)有一個(gè)回調(diào)派遣函數(shù)用于處理PNP的IRP包;,不用的IRP代表不同的功能,如下表所示:,2024/12/11,24,USB驅(qū)動(dòng)編程培訓(xùn)upload,子功能代碼,描述,IRP_MN_START_DEVICE,配置并初始化設(shè)

12、備,IRP_MN_QUERY_REMOVE_DEVICE,設(shè)備可以被安全的刪除,IRP_MN_REMOVE_DEVICE,關(guān)閉并刪除設(shè)備,IRP_MN_CANCEL_REMOVE_DEVICE,忽略以前的QIERY_REMOVE,IRP_MN_STOP_DEVICE,關(guān)閉設(shè)備,IRP_MN_QUERY_STOP_DEVICE,詢問設(shè)備可以關(guān)閉了嗎,IRP_MN_CANCEL_STOP_DEVICE,忽略以前的QUERY_STOP,IRP_MN_DEVICE_RELATIONS,給出指定特征的設(shè)備列表,IRP_MN_QUERY_INTERFACE,獲得調(diào)用函數(shù)接口地址,IRP_MN_CAPABI

13、LITIES,取得設(shè)備能力,IRP_MN_QUERY_RESOURCES,取得引導(dǎo)配置,IRP_MN_QUERY_RESOURCES_REQUIREMENTS,取IO資源需求,IRP_MN_QUERY_DEVICE_TEXT,獲得描述信息或位置串,IRP_MN_QUERY_PNP_DEIVCE_STATE,獲取設(shè)備狀態(tài),IRP_MN_QUERY_BUS_INFORMATION*,獲取父總線類型,IRP_MN_SUPPRISE_REMOVE,通知設(shè)備意外被刪除,2024/12/11,25,USB驅(qū)動(dòng)編程培訓(xùn)upload,PNP管理器對(duì)USB總線的管理,2024/12/11,26,USB驅(qū)動(dòng)編程培

14、訓(xùn)upload,USB驅(qū)動(dòng)程序在完成即插即拔PNP整過所操作數(shù)據(jù)結(jié)構(gòu):,URP(USB Requst Package)USB請(qǐng)求包,這個(gè)數(shù)據(jù)結(jié)構(gòu)也是通過操作IRP的內(nèi)核函數(shù)傳送直總線驅(qū)動(dòng)層上。,通過操作URP進(jìn)行對(duì)USB設(shè)備熱插拔的枚舉,配置和刪除。,通過對(duì)URP的PNP管理操作我們可以得到來自硬件數(shù)據(jù)描述,如:設(shè)備描述符,配置描述符,接口描述符,端點(diǎn)描述符。,如圖可見這些數(shù)據(jù)的樹狀結(jié)構(gòu):,2024/12/11,27,USB驅(qū)動(dòng)編程培訓(xùn)upload,2024/12/11,28,USB驅(qū)動(dòng)編程培訓(xùn)upload,USB電源管理,WDM電源管理模型概述,基本概念,電源狀態(tài)和設(shè)備狀態(tài),關(guān)于USB電源管

15、理策略,USB處理電源管理的基本IRP規(guī)則,USB驅(qū)動(dòng)應(yīng)該響應(yīng)的電源管理器發(fā)出IRP,2024/12/11,29,USB驅(qū)動(dòng)編程培訓(xùn)upload,WDM電源管理模型,基本概念:,電源管理器:為了于減少系統(tǒng)不必要的功耗,基于ACPI(Advanced Configuration Power Interface)規(guī)范作為計(jì)算機(jī)全局電源策略,操作系統(tǒng)支持一些用戶接口,用戶可以通過這些接口控制最終的電源管理策略。,電源管理是操作系統(tǒng)通過處理驅(qū)動(dòng)程序來實(shí)現(xiàn)的。,支持PNP的驅(qū)動(dòng)必須支持電源管理,支持電源管理的驅(qū)動(dòng)程序必須支持PNP,兩者是被集成而相互依賴。,2024/12/11,30,USB驅(qū)動(dòng)編程培訓(xùn)

16、upload,電源狀態(tài)分以下六個(gè)狀態(tài):,系統(tǒng)電源狀態(tài),含義,SO(Working),CPU全功率運(yùn)行,S1(Sleeping1),CPU停止,RAM被刷新,S2(Sleeping2),CPU不通電,RAM被刷新,S3(Sleeping3),CPU不通電,RAM處于低速刷新模式,電源功率輸出降低,S4(Hibemate),系統(tǒng)停止,RAM被保存到磁盤,S5(Shutdown),系統(tǒng)停止并關(guān)閉,需要完全引導(dǎo)以恢復(fù)操作,2024/12/11,31,USB驅(qū)動(dòng)編程培訓(xùn)upload,設(shè)備電源狀態(tài):,操作系統(tǒng)不直接處理設(shè)備的電源狀態(tài),而是有驅(qū)動(dòng)程序?qū)iT處理。設(shè)備至少要支持D0與D3。,設(shè)備電源狀態(tài),含義,D0,設(shè)備全功率運(yùn)行,D1,設(shè)備運(yùn)行于低功耗模式,設(shè)備環(huán)境可能被保留,D2,設(shè)備運(yùn)行低功率模式,設(shè)環(huán)境可能無效,D3,設(shè)備沒有電,環(huán)境丟失,2024/12/11,32,USB驅(qū)動(dòng)編程培訓(xùn)upload,關(guān)于USB電源管理策略,USB電源管理策略:,USB處理電源管理的基本IRP規(guī)則,USB驅(qū)動(dòng)應(yīng)該響應(yīng)的電源管理器發(fā)出IRP,2024/12/11,33,USB驅(qū)動(dòng)編程培訓(xùn)upload,用戶模式的USB

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲