USB-基礎概念

_______  ______
|\     /|(  ____ \(  ___ \
| )   ( || (    \/| (   ) )
| |   | || (_____ | (__/ /
| |   | |(_____  )|  __ (
| |   | |      ) || (  \ \
| (___) |/\____) || )___) )
(_______)\_______)|/ \___/

1.USB特性

  • 不一樣設備類型,統一接口
  • 支持熱插拔
  • 靈活的供電方式
  • 多級速率支持

2.分類

  • OHCI主要爲非PC系統上以及帶有SiShe ALi芯片組的PC主板上的USB芯片
  • UHCI大多爲Intel和Via主板上的USB控制器芯片。UHCI的硬件電路比OHCI簡單,成本第,但驅動複雜。但他們都是由USB1.1規格的。
  • EHCI是有Intel等幾個廠商研發,兼容OHCI UHCI 遵循USB2.0規範

3.層次

設備  :設備即咱們所理解的設備,如一個鍵盤是一個設備,一個U盤是一個設備
配置  :配置是功能的集合,如一個USB耳麥能錄音和播放,那麼就能夠存在三種配置
接口  :如上,就分爲錄音接口,播放接口
端點  :好比播放接口會存在兩個端點,一個是左聲道,一個是右聲道
  • 端點是通訊的基本單位,而且方向是肯定的
  • 管道表明着端點與端點之間通訊的能力

4.傳輸單位

*事務:事務通常由令牌包、數據包(可選)、握手包組成。算法

  • 令牌包:用來啓動一個事務,老是由主機發送。
  • 數據包:能夠從主機到設備,也能夠由設備到主機,方向由令牌包決定。
  • 握手包:一般狀況,數據的接收者發送握手包(ACK或者NAK)。

事務通常由令牌包、數據包(可選)、握手包組成。架構

  • USB協議規定了四種傳輸類型:控制傳輸、批量傳輸、同步傳輸、中斷傳輸源碼分析

    • 控制傳輸:控制傳輸事負責向USB設置一些控制信息,傳送這種事務的管道是控制管道。控制管道在USB設備中是必須的。控制傳送也分爲三個階段,即令牌階段、數據傳送階段、握手階段。
    • 中斷傳輸:中斷事物的數據量很小,通常用於通知Host某個事件的來臨,例如USB鼠標,鼠標移動或者鼠標單擊等操做都會經過中斷管道來向Host傳送事件。也分3個階段,令牌階段、數據傳輸階段、握手階段。
    • 同步傳輸:這是種能保證傳輸的同步性的事務。如在USB攝像頭中傳輸視頻數據的時候會採用這種事務,這種事務能保證每秒有固定的傳輸量,與Bulk傳輸不一樣的是他容許有必定的誤碼率。同步傳輸事務只有兩個階段,令牌階段、數據階段,由於不關心數據的正確性,因此沒有握手階段。
    • 批量傳輸:用來傳輸大量數據,確保沒有數據丟失,但不保證在特定時間內完場,U盤使用的就是批量傳輸。

5.命名

  • sysfs USB命名

2-1:1.0 設備-端口:配置.接口code

第二個設備的第一個端口,使用配置0 的接口1視頻

6.驅動架構

USB Core接口

USB Core提供一些核心算法,爲別的設備驅動程序提供服務,提供一個用於訪問和控制USB硬件的接口,而不用考慮系統當前是那種主機控制器,事件

USB Core、USB主機控制器 USB設備驅動三者的關係以下:事務

Block層 : Net層 : Char層 : ---
-------------------------------
  USB設備驅動程序
-------------------------------
  USB Core
-------------------------------
  USB主機控制器(HCD)
-------------------------------
  硬件

HCD提供主機控制器硬件的抽象,隱藏硬件的細節,HCD只對 USB Core負責。這也就意味着咱們寫USB驅動,是在調用USB Core接口的基礎上進行的。同步

咱們接下來的源碼分析就從HCD開始。源碼

相關文章
相關標籤/搜索