bmrequesttype 的d6~d5為00的請求,usb協議定義了11個標準請求(brequest),其名字與相應的brequest的值如下表:
表3.5.3是各個標準請求的結構及需要傳輸的資料,常用的幾個請求有:get_descriptor、set_address和set_configuration。下面詳細介紹這幾個請求:
需要注意的是 wvalue, windex, wlength 這三個域都是兩位元組的,在usb協議中規定,使用的是小段結構,即第位元組在先,高位元組在後。
對於全速和低速模式 ,獲取描述符的標準請求只有三種:獲取裝置、配置、字串的描述符,另外的介面和端點描述符是跟隨配置描述符一併返回的,不能單獨請求返回。
當裝置復位後,都使用預設位址0。主機從位址0的裝置獲取裝置描述符,一旦收到第一次裝置描述符之後,主機就會傳送設定位址的請求,以儘量減少裝置使用公共位址0的時間。
set_configuration和set_address請求很類似,區別是wvalue的意義:set_address中,wvalue的第一位元組(低位元組)表示裝置的位址;set_configuration則為配置的值。該值與配置描述符的配置編號一致時,表示選中該配置,通常為1,因為大多數usb裝置只有一種設定;若為0,則裝置進入位址設定狀態。
獲取描述符請求是在列舉過程中用得最多的乙個請求,舉乙個主機的例子:
0x80, 0x06, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00它是乙個請求裝置描述符的標準請求,請求的資料長度64位元組。
每個裝置必須有且僅有乙個裝置描述符,結構如表3.6.1所示。
**如下:
/*usb standard device descriptor,裝置描述符
usb滑鼠屬於hid類,hid類的裝置在配置描述時還需要乙個hid描述符,它是乙個類描述符,應該跟在介面描述符後面。
2 USB傳輸型別
上次說了usb有四種傳輸型別,這次對具體的傳輸做乙個分析。這個是所有的usb裝置都會用到的傳輸了,在列舉過程中使用的就是控制傳輸。控制傳輸分為三個過程。其中,每乙個過程都是transaction.用一次列舉過程中的資料來舉例.2.1.1 建立過程 首先上面說過,每個transaction都由2 3個...
USB標準請求命令
標準的usb裝置請求命令是用在控制傳輸中的 初始設定步驟 裡的資料報階段 即data0,由八個位元組構成 標準usb裝置請求命令共有 11個,大小都是8個位元組,具有相同的結構,由5 個字段構成 欄位是標準請求命令的資料部分 結構如下 括號中的數字表示位元組數,首字 母bm,b,w分別表示位圖 位元...
PCB設計(2) USB系統研究
由圖可知,這塊開發板的usb系統採用的microusb,而與usb系統直接相連的是ttl轉rs232,這其中的部分必然包括著ttl轉232通訊協議,如果說想將usb系統microusb進行調換的話,則必然應該從原理圖中的引腳定義下手 下面我整理了microusb的引腳定義,方便大家學習 dm是usb...