新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > USB協議深入分析 設置USB地址

        USB協議深入分析 設置USB地址

        作者: 時間:2016-11-28 來源:網絡 收藏
        前面已經解釋主控器怎么樣發送設備描述符下來,然后設備返回相應的設備描述符。下一步主控器的動作是做什么呢?由于在USB總線上的設備有很多,為了區分不同的設備通訊,就需要給每個設備分配一個地址,這跟網絡中的IP地址是一樣的,或者跟MAC地址也是一樣的。因而,接著下來就是主控器分配地址給設備,USB的設備地址是從1開始到127。下面就是接收到主控器發下來的數據包:
        00 05 01 00 00 00 00 00
        由USB_SETUP_PACKET定義具體地分析這個數據,就可以知道應做什么樣的響應了。下面就來解釋這個操作。
        先取得bmRequestType的類型,也就是第一個字節,它是00。從USB協議里查看,它的方向位是主控器發送給設備,由D6D5位就知道它是USB協議里定義的標準請求,由D4-D0位知道它是USB設備接收這個包數據。
        bRequest是05,從前面已經介紹的類型,就知道它是設置地址,如下:
        SET_ADDRESS 5
        所以這個包需要按設置地址的格式去解釋后面的數據。
        由于USB協議可以知道,USB的設備地址放在字段wValue里,因它的值是01 00,按小端格式解釋就是0x0001了。其它相應的字段wIndex和wLength應都是0,如果是其它非0的數據,是沒有定義的。
        USB的串行引擎通過這個地址來判斷是否接收總線上的數據,如果發送的地址跟它一致,就會接收主控器發過來的數據,當然從這個設備發送出去的數據也帶有這個地址,因此就可以讓主控器識別不同的USB設備數據了。


        關鍵詞: USB協議USB地

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 襄城县| 东丽区| 绍兴县| 嘉义县| 加查县| 宝应县| 榆林市| 洪泽县| 南雄市| 新津县| 乌拉特中旗| 瑞金市| 闽侯县| 宁明县| 桑日县| 澄迈县| 汉阴县| 昆山市| 周宁县| 盐亭县| 潮州市| 郧西县| 平罗县| 晴隆县| 商水县| 宜兰县| 衡阳市| 搜索| 多伦县| 太保市| 安徽省| 福泉市| 阿合奇县| 商河县| 鄂州市| 皮山县| 乌什县| 教育| 天镇县| 大庆市| 汤阴县|