《USB驅(qū)動開發(fā)》PPT課件

《USB驅(qū)動開發(fā)》PPT課件

ID:46949787

大?。?67.81 KB

頁數(shù):16頁

時間:2019-12-01

《USB驅(qū)動開發(fā)》PPT課件_第1頁
《USB驅(qū)動開發(fā)》PPT課件_第2頁
《USB驅(qū)動開發(fā)》PPT課件_第3頁
《USB驅(qū)動開發(fā)》PPT課件_第4頁
《USB驅(qū)動開發(fā)》PPT課件_第5頁
資源描述:

《《USB驅(qū)動開發(fā)》PPT課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、第25章USB驅(qū)動開發(fā)USB是目前最流行的系統(tǒng)總線之一。隨著計算機(jī)周圍硬件的不斷擴(kuò)展,各種設(shè)備使用不同的總線接口,導(dǎo)致計算機(jī)外部總線種類繁多,管理困難。USB總線正是因此而誕生的。USB總線提供了所有外部設(shè)備的統(tǒng)一連接方式,并且支持熱插拔,方便了廠商開發(fā)設(shè)備和用戶使用設(shè)備。本章詳細(xì)介紹USB相關(guān)的知識,主要內(nèi)容如下:USB總線體系結(jié)構(gòu)介紹USB體系工作流程Linux內(nèi)核如何實現(xiàn)USB體系USB設(shè)備驅(qū)動開發(fā)實例25.1USB體系介紹USB是英文UniversalSerialBus的縮寫,中文稱為“通用串行總線”。US

2、B是一個總線協(xié)議標(biāo)準(zhǔn),最初由Intel、NEC、Compaq、DEC、IBM、Microsoft等公司聯(lián)合制定的。到目前為止USB共有1.0、1.1和2.0三個標(biāo)準(zhǔn),主要區(qū)別是傳輸速率不同,體系結(jié)構(gòu)也有一定的差別。25.1.1USB設(shè)計目標(biāo)USB的設(shè)計目標(biāo)是對現(xiàn)有的PC機(jī)體系進(jìn)行擴(kuò)充,但是目前不僅是PC機(jī),許多的嵌入式系統(tǒng)都開始支持USB總線和接口標(biāo)準(zhǔn)。USB設(shè)計主要遵循下面幾個原則。易于擴(kuò)充外部設(shè)備:靈活的傳輸協(xié)議:設(shè)備兼容性好:接口標(biāo)準(zhǔn)統(tǒng)一:USB接口標(biāo)準(zhǔn)具有下面幾個方面的特色:1.易用性2.應(yīng)用廣泛3.健壯性

3、25.1.1USB設(shè)計目標(biāo)分類傳輸率應(yīng)用特點低速設(shè)備10-20kbps鍵盤、鼠標(biāo)等輸入設(shè)備易用、支持熱插拔、價格低中速設(shè)備500kbps-10Mbps寬帶網(wǎng)絡(luò)接入設(shè)備易用、支持熱插拔高速設(shè)備25-500Mbps音視頻設(shè)備、磁盤易用、帶寬高、支持熱插拔25.1.2USB體系概述USB接口標(biāo)準(zhǔn)支持主機(jī)和外部設(shè)備之間進(jìn)行數(shù)據(jù)傳輸。在USB體系結(jié)構(gòu)中,主機(jī)預(yù)定了各種類型外部設(shè)備使用的總線帶寬。當(dāng)外部設(shè)備和主機(jī)在運行時,USB總線允許添加、設(shè)置、使用和拆除外設(shè)。在USB體系結(jié)構(gòu)中,一個USB系統(tǒng)可以分成USB互聯(lián)、USB設(shè)備

4、和USB主機(jī)三個部分。USB互聯(lián)是USB設(shè)備和USB主機(jī)之間進(jìn)行連接通信的操作,主要包括:總線拓?fù)浣Y(jié)構(gòu):數(shù)據(jù)流模式:USB調(diào)度:25.1.2USB體系概述25.1.3USB體系工作流程USB總線采用輪詢方式控制,主機(jī)控制設(shè)置初始化所有的數(shù)據(jù)傳輸。USB總線每次執(zhí)行傳輸動作最多可以傳輸三個數(shù)據(jù)包。每次開始傳輸時,主機(jī)控制器發(fā)送一個描述符描述傳輸動作的種類和方向,這個數(shù)據(jù)包稱作標(biāo)志數(shù)據(jù)包(TokenPacket)。USB設(shè)備收到主機(jī)發(fā)送的標(biāo)志數(shù)據(jù)包后解析出數(shù)據(jù)自己的數(shù)據(jù)。USB數(shù)據(jù)傳輸?shù)姆较蛑挥袃煞N:主機(jī)到設(shè)備或者設(shè)備

5、到主機(jī)。在一個數(shù)據(jù)傳輸開始時,由標(biāo)志包標(biāo)示數(shù)據(jù)的傳輸方向,然后發(fā)送端開始發(fā)送包含信息的數(shù)據(jù)。接收端發(fā)送一個握手的數(shù)據(jù)包表明數(shù)據(jù)是否傳送成功。在主機(jī)和設(shè)備之間的USB數(shù)據(jù)傳輸可以看做一個通道。USB數(shù)據(jù)傳輸有流和消息兩種通道。消息是有格式的數(shù)據(jù),而流是沒有數(shù)據(jù)格式的。USB有一個缺省的控制消息通道,在設(shè)備啟動的時候被創(chuàng)建,因此設(shè)備的設(shè)置查詢和輸入控制信息都可以使用缺省消息控制通道完成。25.2USB驅(qū)動程序框架Linux內(nèi)核提供了完整的USB驅(qū)動程序框架。USB總線采用樹形結(jié)構(gòu),在一條總線上只能有唯一的主機(jī)設(shè)備。Li

6、nux內(nèi)核從主機(jī)和設(shè)備兩個角度觀察USB總線結(jié)構(gòu)。本節(jié)介紹Linux內(nèi)核USB驅(qū)動程序框架。25.2.1Linux內(nèi)核USB驅(qū)動框架在本節(jié)開始介紹了Linux內(nèi)核從主機(jī)和設(shè)備兩個角度觀察USB總線。25.2.2主機(jī)驅(qū)動結(jié)構(gòu)USB主機(jī)控制器有三種類型:OHCI,英文全稱是OpenHostControllerInterface。OHCI是用于SiS和Ali芯片組的USB控制器。UHCI,英文全稱是UniversalHostControllerInterface。UHCI用于Intel和AMD芯片組的USB控制器。UHC

7、I類型的控制器比OHCI控制器硬件結(jié)構(gòu)要簡單,但是需要額外的驅(qū)動支持,因此從理論上說速度要慢。EHCI是USB2.0規(guī)范提出的一種控制器標(biāo)準(zhǔn),可以兼容UHCI和OHCI。1.USB主機(jī)控制器驅(qū)動2.OHCI控制器驅(qū)動25.2.3設(shè)備驅(qū)動結(jié)構(gòu)USB協(xié)議規(guī)定了許多種USB設(shè)備類型。Linux內(nèi)核實現(xiàn)了音頻設(shè)備、通信設(shè)備、人機(jī)接口、存儲設(shè)備、電源設(shè)備、打印設(shè)備等幾種USB設(shè)備類。1.基本概念2.設(shè)備驅(qū)動結(jié)構(gòu)3.USB請求塊25.2.4USB驅(qū)動程序框架Linux內(nèi)核代碼driver/usb/usb-skeleton.c文

8、件是一個標(biāo)準(zhǔn)的USB設(shè)備驅(qū)動程序。編寫一個USB設(shè)備的驅(qū)動可以參考usb-skeleton.c文件,實際上,可以直接修改該文件驅(qū)動新的USB設(shè)備。下面以usb-skeleton.c文件為例分析usb-skel設(shè)備驅(qū)動框架。1.基本數(shù)據(jù)結(jié)構(gòu)2.驅(qū)動程序初始化和注銷3.設(shè)備初始化4.設(shè)備注銷25.3USB驅(qū)動實例剖析USB體系支持多種類型的設(shè)備。在Linux內(nèi)核

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。