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

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

2013-10-25 17:46 357 查看
原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。/article/4321877.html

根据USB规范,定义各种描述符的数据结构如下:
[align=left]/**[/align]
*
设备描述符
[align=left] */[/align]
[align=left]typedefstruct _DEVICE_DESC[/align]
[align=left]{ BYTEbLength;[/align]
[align=left] BYTEbDescriptorType;[/align]
[align=left] WORDbcdUSB;[/align]
[align=left] BYTEbDeviceClass;[/align]
[align=left] BYTEbDeviceSubClass;[/align]
[align=left] BYTEbDeviceProtocol;[/align]
[align=left] BYTEbMaxPacketSize0;[/align]
[align=left] WORDidVendor;[/align]
[align=left] WORDidProduct;[/align]
[align=left] WORDbcdDevice;[/align]
[align=left] BYTEiManufacturer;[/align]
[align=left] BYTEiProduct;[/align]
[align=left] BYTEiSerialNumber;[/align]
[align=left] BYTEbNumConfigurations;[/align]
[align=left]} DEVICE_DESC, *pDevDesc;[/align]
[align=left] [/align]
[align=left]/**[/align]
*
配置描述符
[align=left] */[/align]
[align=left]typedefstruct _CFGDESC[/align]
[align=left]{ [/align]
BYTEbLength;
// Size of descriptor in Byte
BYTEbType;
// Configuration
WORDwLength;
// Total length
BYTEbNumIntf;
// Number of interface
BYTEbCV;
// bConfigurationValue
BYTEbIndex;
// iConfiguration
BYTEbAttr;
// Configuration Characteristic
BYTEbMaxPower;
// Power config
[align=left] BYTErsvd;[/align]
[align=left]} CFG_DESC, *pCfgDesc;[/align]
[align=left] [/align]
[align=left]/**[/align]
*
接口描述符
[align=left] */[/align]
[align=left]typedefstruct _INTF_DESC[/align]
[align=left]{ BYTEbLength;[/align]
[align=left] BYTEbType;[/align]
[align=left] BYTEiNum;[/align]
[align=left] BYTEiAltString;[/align]
[align=left] BYTEbEndPoints;[/align]
[align=left] BYTEiClass;[/align]
BYTEiSub;

[align=left] BYTEiProto;[/align]
BYTEiIndex;

[align=left]} INTF_DESC, *pIntfDesc;[/align]
[align=left] [/align]
[align=left]/**[/align]
*
端点描述符
[align=left] */[/align]
[align=left]typedefstruct _ED_DESC[/align]
[align=left]{ BYTEbLength;[/align]
[align=left] BYTEbType;[/align]
[align=left] BYTEbEPAdd;[/align]
[align=left] BYTEbAttr;[/align]
WORDwPayLoad;
// low-speed this must be 0x08
[align=left] BYTEbInterval;[/align]
[align=left] BYTErsvd;[/align]
[align=left]} ED_DESC, *pEPDesc;[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: