USB裝置請求命令

來源:互聯網
上載者:User

USB裝置請求命令 :bmRequestType + bRequest + wValue + wIndex + wLength

 編號 值  名稱

(0) 0  GET_STATUS:用來返回特定接收者的狀態
(1) 1  CLEAR_FEATURE:用來清除或禁止接收者的某些特性

(x) 2 為將來保留
(2) 3  SET_FEATURE:用來啟用或啟用命令接收者的某些特性

(x) 2 為將來保留
(3) 5  SET_ADDRESS:用來給裝置分配地址
(4) 6  GET_DESCRIPTOR:用於主機擷取裝置的特定描述符
(5) 7  SET_DESCRIPTOR:修改裝置中有關的描述符,或者增加新的描述符
(6) 8  GET_CONFIGURATION:用於主機擷取裝置當前裝置的配置值(注同上面的不同)  
(7) 9  SET_CONFIGURATION:用於主機指示裝置採用的要求的配置
(8) 10  GET_INTERFACE:用於擷取當前某個介面描述符編號
(9) 11  SET_INTERFACE:用於主機要求裝置用某個描述符來描述介面
(10)12 SYNCH_FRAME:用於裝置設定和報告一個端點的同步幀

下表列出了標準裝置請求:

下表為標準請求代碼: 

下表為描述符種類:

USB裝置必須響應標準裝置請求,不管裝置是否被分配地址或者是否被配置。

裝置特性選擇符是在設定特性時候使用,如下表

如果有個未支援或未定義的對USB裝置的請求,裝置將在Data或Status階段返回一個STALL。如果裝置在SETUP階段就發現一個錯誤,那麼裝置優先在Data或Stauts之前就返回一個STALL。非法請求不會使得裝置HALT。如果因為某個原因,裝置因為某個錯誤無法通過預設控制管道來與主機通訊,裝置必須被reset來清除錯誤狀態並重啟預設狀態。

以下描述參考圖9-3

1,Clear Feature。這個請求用來清除或使否某個指定的屬性。

wValue必鬚根據接收者來選擇特定的值。接收者是裝置就用裝置描述符,是介面就用介面描述符,是連接埠就用連接埠描述符。一個Clear Feature請求一個不能被清除或不存在的特性,或指的是一個不存在的介面或連接埠的時候,將返回一個Request Error。如果wLength不為0,則裝置響應無定義。

預設狀態下,此時對請求的響應無定義。

地址狀態下,此時對請求的響應有定義,但是不能是對介面或者連接埠的請求,只能是連接埠0,否則響應為Request Error。

配置狀態下,此時對請求的響應有定義。

2,Get Configuration。這個請求用來得到當前裝置的配置值。如果wValue,wIndex,wLength不是預設值,那麼裝置響應無定義。

預設狀態下,裝置響應無定義。

地址狀態下,返回0值。

配置狀態下,非0的bConfiguration值被返回。

3,Get Descriptor。這個請求返回存在的描述符。wValue中高位給出描述符種類,低位給出描述符索引。描述索引符用來給出特定的描述符。wIndex給出0或者Language ID。wLength給出要返回的byte數目。如果描述表長度大於wLegnth,那麼只有描述表的初始部分被返回;否則發送一個短包來描述中斷傳輸的完成。在3種狀態下,請求都是合法的。

4,Get Interface。這個請求返回選定介面的可選配置。有些USB有介面間互斥設定的配置。這個請求使得主機決定設定。wValue和wLength不是預設數值,裝置響應無定義。如果所指的借口不存在,就會返回請求錯誤。

預設狀態下,此時裝置對此請求響應無定義。

地址狀態下,裝置返回請求錯誤。

配置狀態下,請求合法。

5,Get Status。這個請求返回選定接收者的狀態。bmRequestType中的Recipient位指明接收者。傳回值是指定接收者的狀態。如果wValue和wLength不是預設值或者wIndex在取狀態時,裝置響應無定義。

預設狀態下,裝置響應無定義。

地址狀態下,如果所指的是介面或者一個非0的連接埠,裝置返回請求出錯。

配置狀態下,如果所指的介面或連接埠不存在,返回請求錯誤。

6,Set Address。這個請求為將來的裝置存取設定裝置地址。USB裝置只有在status階段後成功完成後才能改變裝置地址。如果裝置地址大於127,或者wIndex或者wLength非0,裝置響應無定義。裝置對SetAddress(0)無響應。

預設狀態下,如果地址值非0,那麼裝置進入地址態,否則仍位於預設態。

地址狀態下,如果新地址為0,那麼裝置進入預設態,否則仍位於地址態。

配置狀態下,裝置對此請求的響應無定義。

7,Set Configuration。設定配置值。此請求設定裝置配置值。wValue的低位元組指出指定的配置。這個配置值必須為0或者和配置描述表中的一個配置相配。如果配置值為0,裝置為地址狀態。wValue的高位元組保留。如果wIndex,wLength,wValue的高位元組非0,那麼裝置對此請求響應未定義。

預設狀態下,對此請求響應未定義。

地址狀態下,如果指定的配置值為0,那麼裝置仍然在地址態下。如果所指的配置和配置表中相符,那麼就轉到相應配置。否則返回請求錯誤。

配置狀態下,如果指定的配置值為0,那麼裝置進入地址狀態下。如果所指的配置和配置表中相符,那麼就轉到相應配置。否則返回請求錯誤。

8,Set Descriptor。 設定描述符。此請求可選,以用於添加或更新新的描述表。wValue的高位元組指明描述符種類,低位元組指明描述符索引。描述符索引用來給出正確的描述符。因為一個裝置可以有不同的描述符。對於可以通過SetDescriptor()設定描述表的,其描述符索引一定為0。描述符索引的範圍從0到描述元範圍值減1。wIndex指出字串描述符Language ID,對於其他描述符設定為0。wLength指明傳輸資料長度。裝置支援的描述符有裝置,配置和字串這3種描述符。如果裝置不支援該請求,返回一個請求錯誤。

預設狀態下,裝置對請求響應無定義。

地址狀態下,如果支援要求,則合法。

配置狀態下,如果支援要求,則合法。

9,Set Feature。設定特性生效。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.