日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

USB基础---Linux USB驱动层次

發布時間:2025/4/16 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 USB基础---Linux USB驱动层次 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Linux系統中,提供主機側和設備側視角的USB驅動框架,從主機側看到的USB主機控制器和設備驅動,以及從設備側看到的設備控制器和Gadget驅動。

  • Linux系統中USB驅動的整體視圖
  • 圖1

    (1)?? Mass storage

    USB Mass Storage Device ,USB大容量設備,比如我們的移動硬盤,或者是我們手機連接PC時作為一個大容量設備。

    (2)?? CDC

    CDC(Communication Device Class)類是USB2.0標準下的一個子類,定義了通信相關設備的抽象集合。它與USB2.0標準以及其下的子類的相互關系如下圖所示:

    圖2

    (3)?? HID

    人機接口設備Human Interface Device的縮寫,由其名稱可以了解HID設備是直接與人交互的設備,例如鍵盤、鼠標與游戲桿等。不過HID設備并不一定要有人機接口,只要符合HID類別規范的設備都是HID設備。

    (4)?? UDC(USB device controller)

    圖3

    ?

  • 主機側與設備側USB驅動
  • 2.1?? 主機側

    從主機側的角度看,需要編寫的USB驅動包括USB主機控制器驅動和USB設備驅動兩類,USB主機控制器驅動程序控制插入其中的USB設備,而USB設備驅動程序控制該設備如何作為從設備與主機通信,比如圖3右邊,Android設備作為主機,USB主機控制器驅動程序控制插入其中的USB鍵盤,而USB設備驅動此時對應HID(包括USB鍵盤)的驅動。

    每條總線上只有一個主機控制器,負責協調主機和設備間的通信,而設備不能主動向主機發生任何消息。

    USB核心負責USB驅動管理和協議處理的主要工作。其功能包括:通過定義一些數據結構、宏、功能函數,向上為設備驅動提供編程接口,向下為USB主機控制器驅動提供編程接口;維護整個系統的USB設備信息;完成設備熱拔插控制、總線數據傳輸控制等。

    2.2?? 設備側

    Linux內核的USB設備側驅動程序分為3個層次:UDC驅動程序、Gadget(小配件) Function API和Gadget Function驅動 。

    UDC驅動程序直接訪問硬件,控制USB設備和主機間的底層通信,向上層提供與硬件相關操作的回調函數。Gadget Function API是UDC驅動程序回調函數的簡單封裝。Gadget Function驅動具體控制USB設備功能的實現,使設備表現為“網絡鏈接”、“打印機”或“USB Mass Storage”等特性,它使用Gadget Function API控制UDC實現這些功能。Gadget Function API把下層的UDC驅動和上層到Gadget Function驅動隔離開,是的在linux系統中編寫USB設備側驅動時能夠把功能的實現和底層通信分離。

    ?

    ?

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的USB基础---Linux USB驱动层次的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。