<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > USB的描述符及各種描述符之間的依賴關(guān)系

          USB的描述符及各種描述符之間的依賴關(guān)系

          作者: 時(shí)間:2016-12-15 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201612/330287.htm

          2.接口描述符

          //定義標(biāo)準(zhǔn)的接口描述符結(jié)構(gòu)

          typedef struct _INTERFACE_DESCRIPTOR_STRUCT
          {
          BYTE bLength;//接口描述符的字節(jié)數(shù)大小
          BYTE bDescriptorType;//接口描述符的類型編號(hào)
          BYTE bInterfaceNumber;//該接口的編號(hào)
          BYTE bAlternateSetting;//備用的接口描述符編號(hào)
          BYTE bNumEndpoints;//該接口使用的端點(diǎn)數(shù),不包括端點(diǎn)0
          BYTE bInterfaceClass;//接口類型
          BYTE bInterfaceSubClass;//接口子類型
          BYTE bInterfaceProtocol;//接口遵循的協(xié)議
          BYTE iInterface;//描述該接口的字符串索引值
          }
          INTERFACE_DESCRIPTOR_STRUCT, * pINTERFACE_DESCRIPTOR_STRUCT;

          4.端點(diǎn)描述符

          //定義標(biāo)準(zhǔn)的端點(diǎn)描述符結(jié)構(gòu)

          typedef struct _ENDPOINT_DESCRIPTOR_STRUCT
          {
          BYTE bLegth;//端點(diǎn)描述符字節(jié)數(shù)大小
          BYTE bDescriptorType;//端點(diǎn)描述符類型編號(hào)
          BYTE bEndpointAddress;//端點(diǎn)地址及輸入輸出屬性
          BYTE bmAttributes;//端點(diǎn)的傳輸類型屬性
          WORD wMaxPacketSize;//端點(diǎn)收、發(fā)的最大包大小
          BYTE bInterval;//主機(jī)查詢端點(diǎn)的時(shí)間間隔
          }
          ENDPOINT_DESCRIPTOR_STRUCT, * pENDPOINT_DESCRIPTOR_STRUCT;

          下面是一個(gè)配置描述符集合的定義
          typedef struct _CON_INT_ENDP_DESCRIPTOR_STRUCT
          {
          CONFIGURATION_DESCRIPTOR_STRUCT configuration_descriptor;
          INTERFACE_DESCRIPTOR_STRUCTinterface_descritor;
          ENDPOINT_DESCRIPTOR_STRUCTendpoint_descriptor[ENDPOINT_NUMBER];
          }CON_INT_ENDP_DESCRIPTOR_STRUCT;

          配置描述符集合的示例
          code CON_INT_ENDP_DESCRIPTOR_STRUCT con_int_endp_descriptor=//配置描述符集合
          {
          //configuration_descriptor//配置描述符
          {
          sizeof(CONFIGURATION_DESCRIPTOR_STRUCT),//配置描述符的字節(jié)數(shù)大小,這里為9
          CONFIGURATION_DESCRIPTOR,//配置描述符類型編號(hào),配置描述符為2
          (sizeof(CONFIGURATION_DESCRIPTOR_STRUCT)+
          sizeof(INTERFACE_DESCRIPTOR_STRUCT)+
          sizeof(ENDPOINT_DESCRIPTOR_STRUCT)*ENDPOINT_NUMBER)*256+
          (sizeof(CONFIGURATION_DESCRIPTOR_STRUCT)+
          sizeof(INTERFACE_DESCRIPTOR_STRUCT)+
          sizeof(ENDPOINT_DESCRIPTOR_STRUCT)*ENDPOINT_NUMBER)/256,//配置描述符集合的總大小
          0x01,//只包含一個(gè)接口
          0x01,//該配置的編號(hào)
          0x00,//iConfiguration字段
          0x80,//采用總線供電,不支持遠(yuǎn)程喚醒
          0xC8//從總線獲取最大電流400mA
          },
          //interface_descritor//接口描述符
          {
          sizeof(INTERFACE_DESCRIPTOR_STRUCT),//接口描述符的字節(jié)數(shù)大小,這里為9
          INTERFACE_DESCRIPTOR,//接口描述符類型編號(hào),接口描述符為3
          0x00,//接口編號(hào)為4
          0x00,//該接口描述符的編號(hào)為0
          ENDPOINT_NUMBER,//非0端點(diǎn)數(shù)量為2,只使用端點(diǎn)主端點(diǎn)輸入和輸出
          0x08,//定義為USB大容量存儲(chǔ)設(shè)備
          0x06,//使用的子類,為簡化塊命令
          0x50,//使用的協(xié)議,這里使用單批量傳輸協(xié)議
          0x00//接口描述符字符串索引,為0,表示沒有字符串
          },

          //endpoint_descriptor[]
          {
          {//主端點(diǎn)輸入描述
          sizeof(ENDPOINT_DESCRIPTOR_STRUCT),//端點(diǎn)描述符的字節(jié)數(shù)大小,這里為7
          ENDPOINT_DESCRIPTOR,//端點(diǎn)描述符類型編號(hào),端點(diǎn)描述符為5
          MAIN_POINT_IN,//端點(diǎn)號(hào),主輸入端點(diǎn)
          ENDPOINT_TYPE_BULK,//使用的傳輸類型,批量傳輸
          0x4000,//該端點(diǎn)支持的最大包尺寸,64字節(jié)
          0x00//中斷掃描時(shí)間,對批量傳輸無效
          },

          {//主端點(diǎn)輸出描述
          sizeof(ENDPOINT_DESCRIPTOR_STRUCT),//端點(diǎn)描述符的字節(jié)數(shù)大小,這里為7
          ENDPOINT_DESCRIPTOR,//端點(diǎn)描述符類型編號(hào),端點(diǎn)描述符為5
          MAIN_POINT_OUT,//端點(diǎn)號(hào),主輸出端點(diǎn)
          ENDPOINT_TYPE_BULK,//使用的傳輸類型,批量傳輸
          0x4000,//該端點(diǎn)支持的最大包尺寸,64字節(jié)
          0x00//中斷掃描時(shí)間,對批量傳輸無效
          }
          }
          };

          其中關(guān)于端點(diǎn)的類型定義如下
          //定義的端點(diǎn)類型
          #define ENDPOINT_TYPE_CONTROL0x00//控制傳輸
          #define ENDPOINT_TYPE_ISOCHRONOUS0x01//同步傳輸
          #define ENDPOINT_TYPE_BULK0x02//批量傳輸
          #define ENDPOINT_TYPE_INTERRUPT0x03//中斷傳輸

          端點(diǎn)號(hào)的定義如下
          #define MAIN_POINT_OUT0x02//2號(hào)輸出端點(diǎn)
          #define MAIN_POINT_IN0x82//2號(hào)輸入端點(diǎn)


          上一頁 1 2 下一頁

          關(guān)鍵詞: USB描述符依賴關(guān)

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();