Linux 裝置驅動開發詳解之20章usb主機與裝置驅動

來源:互聯網
上載者:User

一、Linux USB 驅動層次

1、裝置、配置、介面、端點
在 USB 裝置的邏輯組織中,包含裝置、配置、介面和端點 4 個層次

裝置通常具有一個或者更多的配置:

每個 USB 裝置都提供了不同層級的配置資訊,可以包含一個或多個配置,不同的配置使裝置表現出不同的功能組合(在探測/串連期間需從其中選定一個),配置由多個介面組成。

配置經常具有一個或者更多的介面 :

介面通常 具有一個或者多個的設定:

在 USB 協議中,介面由多個端點組成,代表一個基本的功能,是 USB 裝置驅動程式控制的對象,一個功能複雜的 USB 裝置可以具有多個介面。每個配置中可以有多個介面,而裝置介面是端點的彙集(collection)。例如 USB 擴音器可以包含一個音頻介面以及對旋鈕和按鈕的介面。一個配置中的所有介面可以同時有效,並可被不同的驅動程式串連。每個介面可以有備用介面,以提供不同品質的服務參數

介面沒有或者有一個以上的端點:

端點是 USB 通訊的最基本形式,每一個 USB 裝置介面在主機看來就是一個端點的集合。主機只能通過端點與裝置進行通訊,以使用裝置的功能。在 USB 系統中每一個端點都有惟一的地址,這是由裝置地址和端點號給出的。每個端點都有一定的屬性,其中包括傳輸方式、匯流排訪問頻率、頻寬、端點號和資料包的最大容量等。一個USB 端點只能在一個方向承載資料,或者從主機到裝置(稱為輸出端點),或者從裝置到主機(稱為輸入端點),因此端點可看作一個單向的管道。端點 0 通常為控制端點,用於裝置初始化參數等。只要裝置串連到 USB 上並且上電端點
0 就可以被訪問。端點 1、2 等一般用作資料端點,存放主機與裝置間往來的資料。

2、

 裝置描述符:關於裝置的通用資訊,如供應商 ID、產品識別碼 和修訂 ID,支援的裝置類、子類和適用的協議以及預設端點的最大包大小等。在 Linux 核心中 , USB 設 備 用 usb_device 結 構 體 來 描述 , USB 設 備 描 述符 定 義為usb_device_descriptor 結構體

配置描述符:此配置中的介面數、支援的掛起和恢複能力以及功率要求。USB配置在核心中使用 usb_host_config 結構體描述,USB 配置描述符定義為結構體usb_config_descriptor

介面描述符:介面類、子類和適用的協議,介面備用配置的數目和端點數目。USB介面在核心中使用 usb_interface 結構體描述,USB 介面描述符定義為結構體usb_interface_descriptor

端點描述符:端點地址、方向和類型,支援的最大包大小,如果是中斷類 型 的 端 點 則 還 包 括 輪 詢 頻 率 。 在 Linux 內 核 中 , USB 端 點 使 用usb_host_endpoint 結 構 體 來 描 述 , USB 端 點 描 述 符 定 義 為usb_endpoint_descriptor 結構體

字串描述符:在其他描述符中會為某些欄位提供字串索引,它們可被用來檢索描述性字串,可以以多種語言形式提供。字串描述符是可選的,有的裝置有,有的裝置沒有,字串描述符對應於usb_string_descriptor 結構體

二、USB 主機驅動的整體結構
USB 主機控制器有 3 種規格:OHCI (Open Host Controller Interface)、UHCI(Universal Host Controller Interface) 和 EHCI (Enhanced Host Controller Interface)。OHCI 驅動程式用來為非 PC 系統上以及帶有 SiS 和 ALi 晶片集的 PC 主板上的 USB晶片提供支援。UHCI 驅動程式多用來為大多數其他 PC 主板(包括 Intel 和 Via)上的 USB 晶片提供支援。EHCI
由 USB 2.0 規範所提出,它相容於 OHCI 和 UHCI。UHCI的硬體線路比 OHCI 簡單,所以成本較低,但需要較複雜的驅動程式,CPU 負荷稍重

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.