您的位置:首页 > 理论基础 > 数据结构算法

基于OHCI的USB主机 —— USB设备描述符数据结构

2010-02-03 17:24 459 查看
根据USB规范,定义各种描述符的数据结构如下:
[align=left]/**[/align]
[align=left] * 设备描述符[/align]
[align=left] */[/align]
[align=left]typedef struct _DEVICE_DESC[/align]
[align=left]{ BYTE bLength;[/align]
[align=left] BYTE bDescriptorType;[/align]
[align=left] WORD bcdUSB;[/align]
[align=left] BYTE bDeviceClass;[/align]
[align=left] BYTE bDeviceSubClass;[/align]
[align=left] BYTE bDeviceProtocol;[/align]
[align=left] BYTE bMaxPacketSize0;[/align]
[align=left] WORD idVendor;[/align]
[align=left] WORD idProduct;[/align]
[align=left] WORD bcdDevice;[/align]
[align=left] BYTE iManufacturer;[/align]
[align=left] BYTE iProduct;[/align]
[align=left] BYTE iSerialNumber;[/align]
[align=left] BYTE bNumConfigurations;[/align]
[align=left]} DEVICE_DESC, *pDevDesc;[/align]
[align=left] [/align]
[align=left]/**[/align]
[align=left] * 配置描述符[/align]
[align=left] */[/align]
[align=left]typedef struct _CFGDESC[/align]
[align=left]{ [/align]
[align=left] BYTE bLength; // Size of descriptor in Byte[/align]
[align=left] BYTE bType; // Configuration[/align]
[align=left] WORD wLength; // Total length[/align]
[align=left] BYTE bNumIntf; // Number of interface[/align]
[align=left] BYTE bCV; // bConfigurationValue[/align]
BYTE bIndex; //
iConfiguration
[align=left] BYTE bAttr; // Configuration Characteristic[/align]
[align=left] BYTE bMaxPower; // Power config[/align]
[align=left] BYTE rsvd;[/align]
[align=left]} CFG_DESC, *pCfgDesc;[/align]
[align=left] [/align]
[align=left]/**[/align]
[align=left] * 接口描述符[/align]
[align=left] */[/align]
[align=left]typedef struct _INTF_DESC[/align]
[align=left]{ BYTE bLength;[/align]
[align=left] BYTE bType;[/align]
[align=left] BYTE iNum;[/align]
[align=left] BYTE iAltString;[/align]
[align=left] BYTE bEndPoints;[/align]
[align=left] BYTE iClass;[/align]
[align=left] BYTE iSub; [/align]
[align=left] BYTE iProto;[/align]
[align=left] BYTE iIndex; [/align]
[align=left]} INTF_DESC, *pIntfDesc;[/align]
[align=left] [/align]
[align=left]/**[/align]
[align=left] * 端点描述符[/align]
[align=left] */[/align]
[align=left]typedef struct _ED_DESC[/align]
[align=left]{ BYTE bLength;[/align]
[align=left] BYTE bType;[/align]
[align=left] BYTE bEPAdd;[/align]
[align=left] BYTE bAttr;[/align]
[align=left] WORD wPayLoad; // low-speed this must be 0x08[/align]
[align=left] BYTE bInterval;[/align]
[align=left] BYTE rsvd;[/align]
[align=left]} ED_DESC, *pEPDesc;[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息