USB協(xié)議深入分析 設置USB地址
00 05 01 00 00 00 00 00
由USB_SETUP_PACKET定義具體地分析這個數(shù)據(jù),就可以知道應做什么樣的響應了。下面就來解釋這個操作。
先取得bmRequestType的類型,也就是第一個字節(jié),它是00。從USB協(xié)議里查看,它的方向位是主控器發(fā)送給設備,由D6D5位就知道它是USB協(xié)議里定義的標準請求,由D4-D0位知道它是USB設備接收這個包數(shù)據(jù)。
bRequest是05,從前面已經(jīng)介紹的類型,就知道它是設置地址,如下:
SET_ADDRESS 5
所以這個包需要按設置地址的格式去解釋后面的數(shù)據(jù)。
由于USB協(xié)議可以知道,USB的設備地址放在字段wValue里,因它的值是01 00,按小端格式解釋就是0x0001了。其它相應的字段wIndex和wLength應都是0,如果是其它非0的數(shù)據(jù),是沒有定義的。
USB的串行引擎通過這個地址來判斷是否接收總線上的數(shù)據(jù),如果發(fā)送的地址跟它一致,就會接收主控器發(fā)過來的數(shù)據(jù),當然從這個設備發(fā)送出去的數(shù)據(jù)也帶有這個地址,因此就可以讓主控器識別不同的USB設備數(shù)據(jù)了。
評論