linux裝置驅動 USB

2021-06-25 09:35:22 字數 642 閱讀 9356

系統核心中有usb匯流排驅動程式,作用是識別裝置,查詢並安裝裝置驅動程式,提供讀寫函式

當乙個usb裝置插入時,會有以下操作:

1.某條線被拉低,硬體感知有裝置接入

2.usb匯流排驅動程式為裝置分配新位址,並告訴usb裝置

3.獲取描述符

4.根據獲取的裝置描述符中的資訊在usb匯流排中新增device,此時如果匯流排中有同名的driver就會呼叫driver中的probe函式

usb描述符在usb.h中定義,有很多

struct usb_device

等......

裝置驅動程式

1. 分配/設定usb_driver

2.註冊usb_driver

在usb_driver的probe函式中我們可以做想做的事情,比如說註冊乙個字元裝置驅動程式,,或者直接用輸入子系統做一些事情。不同的地方在於,以前用輸入子系統的時候是在中斷函式中讀暫存器,根據暫存器中的資料來上報事件。usb是沒有的中斷,也讀不了暫存器,那怎麼辦???usb匯流排驅動程式中有讀數的函式,會定時去讀資料,讀完會呼叫乙個完成函式相當於中斷函式。那麼怎麼使用usb匯流排驅動中那些現成的東西???

1. 分配usb_buffers

2. 分配urb

3. 設定urb

4. 提交urb

USB裝置驅動

1.linux usb架構 usb通訊都是由host端發起的。usb裝置驅動程式分配並初始化乙個urb發給usb core,usb core改一改,發給usb主機控制器驅動,usb主機控制器驅動把它解析成包,在匯流排上進行傳送。usb core是由核心實現的,其實也就是把host control d...

USB裝置驅動

把usb裝置接到pc 右下角彈出 發現android phone 跳出乙個對話方塊,提示你安裝驅動程式 問1.既然還沒有 驅動程式 為何能知道是 android phone 答1.windows裡已經有了usb的匯流排驅動程式,接入usb裝置後,是 匯流排驅動程式 知道你是 android phon...

Linux下的USB裝置驅動

usb是我們常用的介面,它有四條引腳線 5v d d gnd。pc的usb口的d d 接有下拉電阻,平時處於低電平狀態。usb裝置的usb口內部,d 或d 接有1.5k的上拉電阻 它一接入pc,就會把pc的usb口的d 或d 拉高,從硬體的角度通知pc有新裝置接入。所以usb能夠自動監測裝置。簡單來...