usb禁止重定向_USB虚拟化与重定向(一)
Ⅰ. Foundation
在介紹USB虛擬化之前,我們先了解下關于USB的基礎知識。
USB,即通用串行總線。作為一種計算機外設,是一種外部總線的標準,用于規范主機與設備之間的通信與連接。USB系統架構分為三個部分,USB主機控制器/根集線器(又名,USB總線接口),USB集線器,USB設備。
USB主機控制器接在PCI/PCIe 總線
Ⅱ. USB的枚舉和傳輸
主機通過USB設備枚舉的過程來判斷和管理設備的連接和斷開。1、USB設備連接至集線器的USB端口后,即就是我們筆記本上面的USB接口,集線器會使用其中斷IN管道向主機報告設備的插入事件。
2、主機知道設備接入集線器后,向集線器發出查詢請求以了解更多信息。當確認有設備接入總線,主機發出查詢請求復位設備,在這期間集線器會確定設備的傳輸速率并向主機報告。復位結束后USB設備進入缺省狀態,并可使用缺省設各地址對管道0的控制事務做出響應。
3、主機向設備發送USB協議規定的請求描述符命令,讀取該描述符的前8個字節,以取得卻缺省控制管道所支持的最大數據包長度。
4、主機發送配置地址命令分配一個唯一的地址給設備。設備讀取這個請求,返回一個確認,并保存新的地址。從此開始所有通信都使用這個新地址。
5、主機向新地址設備重新發送請求描述符命令,讀取其設備描述符,以了解該設備的總體信息。
6、主機向設備循環發送請求配置命令,以讀取全部配置信息。獲得字符串描述比如廠商、產品描述、型號等。
7、主機根據Device 和應答信息,為設備選擇一個合適的USB設備驅動程序。
8、加載USB設備驅動后,主機將發出SetConfiguration(x)請求為該設備選擇配置。如果配置成功,USB設備進入設備配置狀態,可以和主機進行數據通信。
當USB設備連接到USB總線后,設備便可以和主機進行通信。通信的過程中,自上而下要經過四個部分:主機應用程序
USB總線驅動程序(Bus Driver)
USB主控制器驅動程序(Host Driver)
USB功能設備(Device Driver)
主機應用程序--->發送數據傳輸請求(IRP)--->USB總線驅動程序--->響應IRP,數據轉化具有USB協議格式的事務處理--->USB主控制器驅動程序--->將這些事務處理建立成事務列表,同時要求不能超過USB帶寬--->USB主控制器讀取到事務列表并將事務轉化為信息包,發送到USB總線接口--->根集線器--->USB設備收到這些信息后,由USB的SIE引擎自動解碼信息包--->將其解包后放入指定端點的接收緩沖區內,由芯片固件對其進行處理。
參考^PCI總線有獨立的地址空間,它與處理器地址空間是隔離的
總結
以上是生活随笔為你收集整理的usb禁止重定向_USB虚拟化与重定向(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经典卷积神经网络---VGG16网络
- 下一篇: C语言基础入门教程