USB 裝置 USB 驅動 USB 應用程式

2021-08-30 19:56:18 字數 982 閱讀 6766

usb 裝置、usb 驅動、usb 應用程式

1.usb 裝置硬體部分

a.這個硬體的標識是用的 vender id 和 product id, 即「廠家標識」和「產品標識」

b.這個硬體規定了各個 end point (端點) 的性質, 讀/寫 及 型別 (control/interrupt/bulk/isochronous)

c.這個硬體的韌體裡面有 deviceiocontrol 的實現部分, 規定了這個函式的具體引數和動作

2.usb 裝置驅動

①硬體介面

a.需要識別 vender id 和 product id

b.對每個 endpoint 的每個 i/o 分配乙個 pipe, 並且起乙個名字作為軟體介面

c.做 deviceiocontrol 的介面

②軟體介面

a.guid, 驅動程式的標識, 每個驅動程式使用不同的 guid, guid 是識別驅動的, 與硬體無關 (驅動程式公升級版本 guid 不能修改)

b.硬體介面裡面的 b: pipe 名字是軟體介面, 這個 pipe 名字純粹由驅動定義的, 和硬體無關, 公升級驅動不能改 pipe 的名字

c.硬體介面裡面的 c 的各個引數也是軟體的介面, 這些引數是由硬體帶來的, 不是驅動規定的, 當然也可以在驅動裡面轉義, 隱藏裝置的真實情況

③這個驅動程式是用 winddk 編譯的, 可以用文字編輯器或其他開發工具的編輯器程式設計序**, 然後呼叫 winddk 編譯

pid_產品標識\\驅動程式"

裡面的 classguid 就是驅動程式的 guid 標識, 例如

相當於程式的: define_guid(usb_driver_guid, 0x36fc9e60,0xc465,0x11cf,0x80,0x56,0x44,0x45,0x53,0x54,0x00,0x00);

另外在這個登錄檔鍵裡面還可找到有關裝置的其他描述, 例如 devicedesc = "usb mass storage device" 等

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...

USB驅動 USB列舉

一 列舉詳細過程 usb主機在檢測到usb裝置插入後,就要對裝置進行列舉了。為什麼要列舉呢?列舉就是主機host從裝置讀取一些資訊,知道裝置是什麼樣的裝置,如何進行通訊,這樣主機就可以根據這些資訊來載入合適的驅動程式。除錯usb裝置,很重要的一點就是usb的列舉過程,只要列舉成功了,那麼就已經成功大...