




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第2525章章 USBUSB驅動開發驅動開發USB是目前最流行的系統總線之一。隨著計算機周圍硬是目前最流行的系統總線之一。隨著計算機周圍硬件的不斷擴展,各種設備使用不同的總線接口,導致計算機件的不斷擴展,各種設備使用不同的總線接口,導致計算機外部總線種類繁多,管理困難。外部總線種類繁多,管理困難。USB總線正是因此而誕生的總線正是因此而誕生的。USB總線提供了所有外部設備的統一連接方式,并且支持總線提供了所有外部設備的統一連接方式,并且支持熱插拔,方便了廠商開發設備和用戶使用設備。本章詳細介熱插拔,方便了廠商開發設備和用戶使用設備。本章詳細介紹紹USB相關的知識,主要內容如下:相關的知識,主
2、要內容如下:USB總線體系結構介紹總線體系結構介紹USB體系工作流程體系工作流程Linux內核如何實現內核如何實現USB體系體系USB設備驅動開發實例設備驅動開發實例25.1 USB25.1 USB體系介紹體系介紹USB是英文是英文Universal Serial Bus的縮寫,中文稱為的縮寫,中文稱為“通通用串行總線用串行總線”。USB是一個總線協議標準,最初由是一個總線協議標準,最初由Intel、NEC、Compaq、DEC、IBM、Microsoft等公司聯合制定的等公司聯合制定的。到目前為止。到目前為止USB共有共有1.0、1.1和和2.0三個標準,主要區別是三個標準,主要區別是傳輸速
3、率不同,體系結構也有一定的差別。傳輸速率不同,體系結構也有一定的差別。25.1.1 USB25.1.1 USB設計目標設計目標USB的設計目標是對現有的的設計目標是對現有的PC機體系進行擴充,但是機體系進行擴充,但是目前不僅是目前不僅是PC機,許多的嵌入式系統都開始支持機,許多的嵌入式系統都開始支持USB總線總線和接口標準。和接口標準。USB設計主要遵循下面幾個原則。設計主要遵循下面幾個原則。易于擴充外部設備:易于擴充外部設備:靈活的傳輸協議:靈活的傳輸協議: 設備兼容性好:設備兼容性好: 接口標準統一:接口標準統一:USB接口標準具有下面幾個方面的特色:接口標準具有下面幾個方面的特色:1易用
4、性易用性2應用廣泛應用廣泛3健壯性健壯性25.1.1 USB25.1.1 USB設計目標設計目標分分類類傳輸率傳輸率應用應用特點特點低速設備10-20kbps鍵盤、鼠標等輸入設備易用、支持熱插拔、價格低中速設備500kbps-10Mbps寬帶網絡接入設備易用、支持熱插拔高速設備25-500Mbps音視頻設備、磁盤易用、帶寬高、支持熱插拔25.1.2 USB25.1.2 USB體系概述體系概述USB接口標準支持主機和外部設備之間進行數據傳輸。接口標準支持主機和外部設備之間進行數據傳輸。在在USB體系結構中,主機預定了各種類型外部設備使用的總體系結構中,主機預定了各種類型外部設備使用的總線帶寬。當
5、外部設備和主機在運行時,線帶寬。當外部設備和主機在運行時,USB總線允許添加、總線允許添加、設置、使用和拆除外設。設置、使用和拆除外設。在在USB體系結構中,一個體系結構中,一個USB系統可以分成系統可以分成USB互聯、互聯、USB設備和設備和USB主機三個部分。主機三個部分。USB互聯是互聯是USB設備和設備和USB主機之間進行連接通信的操作,主要包括:主機之間進行連接通信的操作,主要包括:總線拓撲結構:總線拓撲結構:數據流模式:數據流模式: USB調度調度:25.1.2 USB25.1.2 USB體系概述體系概述25.1.3 USB25.1.3 USB體系工作流程體系工作流程USB總線采用
6、輪詢方式控制,主機控制設置初始化所有總線采用輪詢方式控制,主機控制設置初始化所有的數據傳輸。的數據傳輸。USB總線每次執行傳輸動作最多可以傳輸三個總線每次執行傳輸動作最多可以傳輸三個數據包。每次開始傳輸時,主機控制器發送一個描述符描述數據包。每次開始傳輸時,主機控制器發送一個描述符描述傳輸動作的種類和方向,這個數據包稱作標志數據包(傳輸動作的種類和方向,這個數據包稱作標志數據包(Token Packet)。)。USB設備收到主機發送的標志數據包后解設備收到主機發送的標志數據包后解析出數據自己的數據。析出數據自己的數據。USB數據傳輸的方向只有兩種:主機到設備或者設備到數據傳輸的方向只有兩種:主
7、機到設備或者設備到主機。在一個數據傳輸開始時,由標志包標示數據的傳輸方主機。在一個數據傳輸開始時,由標志包標示數據的傳輸方向,然后發送端開始發送包含信息的數據。接收端發送一個向,然后發送端開始發送包含信息的數據。接收端發送一個握手的數據包表明數據是否傳送成功。在主機和設備之間的握手的數據包表明數據是否傳送成功。在主機和設備之間的USB數據傳輸可以看做一個通道。數據傳輸可以看做一個通道。USB數據傳輸有流和消息數據傳輸有流和消息兩種通道。消息是有格式的數據,而流是沒有數據格式的。兩種通道。消息是有格式的數據,而流是沒有數據格式的。USB有一個缺省的控制消息通道,在設備啟動的時候被創建有一個缺省的
8、控制消息通道,在設備啟動的時候被創建,因此設備的設置查詢和輸入控制信息都可以使用缺省消息,因此設備的設置查詢和輸入控制信息都可以使用缺省消息控制通道完成。控制通道完成。25.2 USB25.2 USB驅動程序框架驅動程序框架Linux內核提供了完整的內核提供了完整的USB驅動程序框架。驅動程序框架。USB總線總線采用樹形結構,在一條總線上只能有唯一的主機設備。采用樹形結構,在一條總線上只能有唯一的主機設備。Linux內核從主機和設備兩個角度觀察內核從主機和設備兩個角度觀察USB總線結構。本節總線結構。本節介紹介紹Linux內核內核USB驅動程序框架。驅動程序框架。25.2.1 Linux25.
9、2.1 Linux內核內核USBUSB驅動框架驅動框架在本節開始介紹了在本節開始介紹了Linux內核從主機和設備兩個角度觀內核從主機和設備兩個角度觀察察USB總線??偩€。25.2.2 25.2.2 主機驅動結構主機驅動結構USB主機控制器有三種類型:主機控制器有三種類型:OHCI,英文全稱是,英文全稱是Open Host Controller Interface。OHCI是用于是用于SiS和和Ali芯片組的芯片組的USB控制器??刂破?。UHCI,英文全稱是,英文全稱是Universal Host Controller Interface。UHCI用于用于Intel和和AMD芯片組的芯片組的US
10、B控制器??刂破?。UHCI類型類型的控制器比的控制器比OHCI控制器硬件結構要簡單,但是需要額外的控制器硬件結構要簡單,但是需要額外的驅動支持,因此從理論上說速度要慢。驅動支持,因此從理論上說速度要慢。EHCI是是USB2.0規范提出的一種控制器標準,可以兼容規范提出的一種控制器標準,可以兼容UHCI和和OHCI。1USB主機控制器驅動主機控制器驅動2OHCI控制器驅動控制器驅動25.2.3 25.2.3 設備驅動結構設備驅動結構USB協議規定了許多種協議規定了許多種USB設備類型。設備類型。Linux內核實現內核實現了音頻設備、通信設備、人機接口、存儲設備、電源設備、了音頻設備、通信設備、人
11、機接口、存儲設備、電源設備、打印設備等幾種打印設備等幾種USB設備類。設備類。1基本概念基本概念2設備驅動結構設備驅動結構3USB請求塊請求塊25.2.4 USB25.2.4 USB驅動程序框架驅動程序框架Linux內核代碼內核代碼driver/usb/usb-skeleton.c文件是一個標文件是一個標準的準的USB設備驅動程序。編寫一個設備驅動程序。編寫一個USB設備的驅動可以參考設備的驅動可以參考usb-skeleton.c文件,實際上,可以直接修改該文件驅動新的文件,實際上,可以直接修改該文件驅動新的USB設備。下面以設備。下面以usb-skeleton.c文件為例分析文件為例分析us
12、b-skel設備設備驅動框架。驅動框架。1基本數據結構基本數據結構2驅動程序初始化和注銷驅動程序初始化和注銷3設備初始化設備初始化4設備注銷設備注銷25.3 USB 25.3 USB 驅動實例剖析驅動實例剖析USB體系支持多種類型的設備。在體系支持多種類型的設備。在Linux內核,所有的內核,所有的USB設備都使用設備都使用usb_driver結構描述。對于不同類型的結構描述。對于不同類型的USB設備,內核使用傳統的設備驅動模型建立設備驅動描述,然設備,內核使用傳統的設備驅動模型建立設備驅動描述,然后映射到后映射到USB設備驅動,最終完成特定類型的設備驅動,最終完成特定類型的USB設備驅動設備
13、驅動。25.3.1 USB25.3.1 USB串口驅動串口驅動USB串口驅動關鍵是向內核注冊串口設備結構,并且設串口驅動關鍵是向內核注冊串口設備結構,并且設置串口的操作。下面是一個典型的置串口的操作。下面是一個典型的USB設備驅動分析。設備驅動分析。1驅動初始化函數驅動初始化函數2驅動釋放函數驅動釋放函數3串口操作函數串口操作函數25.3.2 USB25.3.2 USB鍵盤驅動鍵盤驅動USB鍵盤驅動與串口驅動結構類似,不同是的使用鍵盤驅動與串口驅動結構類似,不同是的使用USB設備核心提供的設備核心提供的usb_keyboard_driver結構作為設備核心結結構作為設備核心結構。下面講解構。下面講解USB鍵盤驅動重點部分。鍵盤驅動重點部分。1 驅動初始和注銷驅動初始和注銷2設備檢測函數設備檢測函數3設備斷開連接函數設備斷開連接函數25.4 25.4 小結小結本章講解了本章講解了Linux內核內核USB驅動體系結構、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025標準商業借款合同范本
- 2024年診斷用藥項目資金需求報告代可行性研究報告
- 2025年視覺識別設計合同范本
- 2025信托公司與銀行存款保管合同
- 2025解除勞動合同協議書樣本格式
- 2025商業店鋪租賃合同模板
- 2025年度合作合同貨車掛靠協議
- 2025華瑞科技產品銷售合同副本(修正版)
- 2025健身教練勞動合同范本
- 2025音樂演出取消、延遲保險合同
- 2024年1月福建省普通高中學業水平合格性考試地理試題(解析版)
- 下水疏通施工合同模板
- 酒店消防疏散應急預案
- 護理中醫院感染問題課件
- 五年級語文下冊期中復習課件
- 布置我們的家(課件)三年級下冊綜合實踐活動滬科黔科版
- 畢業論文(設計)多功能臺燈設計
- 跨境電子商務建設項目管理組織架構
- 三級動火安全技術措施方案
- 化工基礎知識題庫
- 前程無憂國企招聘筆試題庫
評論
0/150
提交評論