新聞中心

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

        USB協議深入分析 配置

        作者: 時間:2016-11-28 來源:網絡 收藏
        前面已經介紹設置USB的設備地址,接著下來是做什么呢?其實有了設備地址后,主控器還會再次發送獲取上面已經讀取的設備描述符下來,如下:
        80 06 00 01 00 00 12 00
        然后USB設備也再次回應它,但這次發送的長度是0x0012了,不再是第一次64個字節長度了。
        接著USB設備就返回下面的描述符給主控器,也就是第一次已經發送的設備描述符,如下:
        12 01 10 01 00 00 00 40 00 80 00 80 00 01 04 2C 4A 01
        這樣分配地址之后,再次獲取設備描述符成功了,接著下來就是主控器獲取配置描述符。下面就是收到的配置描述符數據:
        80 06 00 02 00 00 09 00
        分析上面的數據如下:
        bmRequestType是80,表示方向USB設備發送給主控器,接收設備是USB設備。
        bRequest是06,表示這是獲取描述符。GET_DESCRIPTOR 6
        wValue是00 02。低字節表示偏移地址00,高字節表示描述符的類型。如下:
        CONFIGURATION2
        所以這里的返回的設備描述符是配置描述符。
        wIndex是00 00。
        wLength是09 00。它表示返回描述符的長度。這里是9個字節。
        接著下來,就是設備返回配置描述符給主控器,發送的數據如下:
        09 02 22 00 01 01 00 01 32
        發送的數據是按下面的結構來定義,這也是在USB協議里定義的格式。如下:
        typedefstruct_USB_CONFIGURATION_DESCRIPTOR{
        BYTEbLength;
        BYTEbDescriptorType;
        WORDwTotalLength;
        BYTEbNumInterfaces;
        BYTEbConfigurationValue;
        BYTEiConfiguration;
        BYTEbmAttributes;
        BYTEMaxPower;
        }USB_CONFIGURATION_DESCRIPTOR;
        bLength是配置的長度,也就是配置結構的整個長度。在這里9個字節。
        bDescriptorType是描述符的類型,這里配置描述符,所以設置為02。
        wTotalLength是所有配置設置的結構長度。包括配置描述符、接口描述符、HID或者其它描述符和端點描述符的長度。這里是22 00,也就是0x0022個字節。
        bNumInterfaces是接口個數,這里一個。
        bConfigurationValue是配置的個數,當設置配置時發送的值。這時設置為1個配置。
        iConfiguration是說明配置的字符的偏移值。這里是0。
        bmAttributes是配置特性,D7位保留。D6位是說明是否自供電。D5位是否支持遠程喚醒。D4—D0是保留,設置為0。
        MaxPower是使用的功率,它采用電流來表示。每2mA為單位,比如它的值是50時就表示是100mA的電流消耗。
        通過這樣說明,主控器就知道這個設備是什么樣的設備,有多少功能。


        關鍵詞: USB協議配

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 黎城县| 长春市| 色达县| 海盐县| 宾川县| 儋州市| 建平县| 镇雄县| 京山县| 三原县| 宣武区| 永定县| 德安县| 邛崃市| 永胜县| 碌曲县| 收藏| 灵台县| 西安市| 青海省| 安泽县| 星子县| 清原| 竹北市| 资兴市| 宿松县| 巴里| 镇安县| 西华县| 呼图壁县| 托克逊县| 上饶市| 文安县| 玉溪市| 抚顺市| 临沭县| 桐梓县| 青海省| 顺义区| 察隅县| 循化|