<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > USB的描述符及各種描述符之間的依賴(lài)關(guān)系

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

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

本文引用地址:http://dyxdggzs.com/article/201612/330287.htm

2.接口描述符

//定義標準的接口描述符結構

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

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

//定義標準的端點(diǎn)描述符結構

typedef struct _ENDPOINT_DESCRIPTOR_STRUCT
{
BYTE bLegth;//端點(diǎn)描述符字節數大小
BYTE bDescriptorType;//端點(diǎn)描述符類(lèi)型編號
BYTE bEndpointAddress;//端點(diǎn)地址及輸入輸出屬性
BYTE bmAttributes;//端點(diǎn)的傳輸類(lèi)型屬性
WORD wMaxPacketSize;//端點(diǎn)收、發(fā)的最大包大小
BYTE bInterval;//主機查詢(xún)端點(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),//配置描述符的字節數大小,這里為9
CONFIGURATION_DESCRIPTOR,//配置描述符類(lèi)型編號,配置描述符為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,//該配置的編號
0x00,//iConfiguration字段
0x80,//采用總線(xiàn)供電,不支持遠程喚醒
0xC8//從總線(xiàn)獲取最大電流400mA
},
//interface_descritor//接口描述符
{
sizeof(INTERFACE_DESCRIPTOR_STRUCT),//接口描述符的字節數大小,這里為9
INTERFACE_DESCRIPTOR,//接口描述符類(lèi)型編號,接口描述符為3
0x00,//接口編號為4
0x00,//該接口描述符的編號為0
ENDPOINT_NUMBER,//非0端點(diǎn)數量為2,只使用端點(diǎn)主端點(diǎn)輸入和輸出
0x08,//定義為USB大容量存儲設備
0x06,//使用的子類(lèi),為簡(jiǎn)化塊命令
0x50,//使用的協(xié)議,這里使用單批量傳輸協(xié)議
0x00//接口描述符字符串索引,為0,表示沒(méi)有字符串
},

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

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

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

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


上一頁(yè) 1 2 下一頁(yè)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>