USB標準請求命令

2021-06-20 00:56:20 字數 2418 閱讀 5484

標準的usb裝置請求命令是用在控制傳輸中的「初始設定步驟」裡的資料報階段(即data0,由八個位元組構成)。標準usb裝置請求命令共有

11個,大小都是8個位元組,具有相同的結構,由5 個字段構成(欄位是標準請求命令的資料部分),結構如下(括號中的數字表示位元組數,首字

母bm,b,w分別表示位圖、位元組,雙位元組):

bmrequesttype(1)+brequest(1)+wvalue(2)+windex(2)+wlength(2)

各字段的意義如下:

1、bmrequesttype:d7d6d5d4d3d2d1d0

d7=0主機到裝置

=1裝置到主機;

d6d5=00標準請求命令

=01 類請求命令

=10使用者定義的命令

=11保留值

d4d3d2d1d0=00000 接收者為裝置

=00001 接收者為裝置

=00010 接收者為端點

=00011 接收者為其他接收者

=其他 其他值保留

2、brequest:請求命令**,在標準的usb命令中,每乙個命令都定義了編號,編號的值就為字段的值,編號與命令名稱如下(要注意這裡的命令**要與其他字段結合使用,可以說命令**是標準請求命令**的核心,正是因為這些命令**而決定了11個usb標準請求命令):

1.獲取狀態 get status (00h)

a:[to device]獲取裝置的狀態:

*.位0:自供電(0表示匯流排供電;1表示自供電).

*.位1:遠端喚醒(0表示不支援遠端喚醒;1表示遠端喚醒).

*.位2~15:保留.

*.一般選擇匯流排供電,不支援遠端喚醒,所以返回資料就是0x0000.

b:[to inte***ce]獲取介面的狀態:

*.介面狀態的16位位元組全部保留,所以返回資料就是0x0000.

c:[to endpoint]獲取端點的狀態:

*.位0:halt(0表示端點允許;1表示端點禁止).

*.位1~15:保留(復位為0).

2.清除特性 clear feature (01h)

a:[to device]清除裝置的遠端喚醒功能,並返回乙個空包.

b:[to endpoint]解禁端點.

3.設定特性 set feature (03h)

a:[to device]設定裝置的遠端喚醒功能,並返回乙個空包.

b:[to endpoint]禁止端點.

4.設定位址 set address (05h)

a:設定裝置位址.

5.獲取描述符 get descriptor (06h)

a:[to device]獲取裝置描述符:

*.描述當前usb協議的版本號.裝置端點0的fifo大小.usb裝置的id號等.

b:[to configuration]獲取配置描述符:

*.描述usb裝置介面個數及是否有自供電能力等.

c:[to inte***ce]獲取介面描述符:

*.描述端點0以外的物理端點個數等資訊.

d:[to endpoint]獲取端點描述符:

*.描述端點0各端點的傳輸型別和最大資訊包大小和端點的傳輸方向(in/out).

6.設定描述符(可選,無法更新) set descriptor (07h)

7.獲取配置資訊 get configuration (08h)

8.設定配置 set configuration (09h)

a:[to configuration]設定配置描述符.

b:[to inte***ce]設定介面描述符.

c:[to endpoint]設定端點描述符.

9.獲取介面資訊 get inte***ce (0ah)     

10.設定介面 set inte***ce (0bh)

11.synch_frame(0ch)

用於裝置設定和報告乙個端點的同步幀.

標準的usb請求命令中的descriptor

descriptor即描述符,是乙個完整的資料結構,可以通過c語言等程式設計實現,並儲存在usb裝置中,用於描述乙個usb裝置的所有屬性,usb主機是通過一系列命令來要求裝置傳送這些資訊的。它的作用就是通過問答節中的命令get descriptor作來給主機傳遞資訊,從而讓主機知道裝置具有什麼功能、屬於哪一類裝置、要占用多少頻寬、使用哪類傳輸方式及資料量的大小,只有主機確定了這些資訊之後,裝置才能真正開始工作,所以描述符也是十分重要的部分,要好好掌握。標準的描述符有5種,usb為這些描述符定義了編號:

1——裝置描述符

2——配置描述符

3——字元描述符

4——介面描述符

5——端點描述符

上面的描述符之間有一定的關係,乙個裝置只有乙個裝置描述符,而乙個裝置描述符可以包含多個配置描述符,而乙個配置描述符可以包含多個介面描述符,乙個介面使用了幾個端點,就有幾個端點描述符。這間描述符是用一定的字段構成的

5 標準的USB請求

5 usb device requests 所有的usb裝置都會響應來自於主機預設控制管道的請求的,這些請求是使用控制傳輸傳送的,請求和請求的引數在setup packet包含,每個setup packet都有8個位元組.著重說一下windex和wlength,前面兩個根據上表可以很容易理解.當bm...

2 USB標準請求

bmrequesttype 的d6 d5為00的請求,usb協議定義了11個標準請求 brequest 其名字與相應的brequest的值如下表 表3.5.3是各個標準請求的結構及需要傳輸的資料,常用的幾個請求有 get descriptor set address和set configuratio...

USB規範標準再更新

2月26日訊息 相信大家早已經熟悉了usb插口和標準的大命名,包括usb 3.0以及usb 3.1,只不過對於下屬的usb標準,或許十分地不解,畢竟大一統之後理論上大家都叫usb 3.1。例如在2013年7月份,usb 3.1發布之後,usb if將所有的usb 3.x都叫usb 3.1,包括usb...