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

简介:
根据 USB 规范,定义各种描述符的数据结构如下:
/**

  设备描述符

 */

typedef   struct  _DEVICE_DESC

{    BYTE   bLength ;

     BYTE   bDescriptorType ;

     WORD   bcdUSB ;

     BYTE   bDeviceClass ;

     BYTE   bDeviceSubClass ;

     BYTE   bDeviceProtocol ;

     BYTE   bMaxPacketSize0 ;

     WORD   idVendor ;

     WORD   idProduct ;

     WORD   bcdDevice ;

     BYTE   iManufacturer ;

     BYTE   iProduct ;

     BYTE   iSerialNumber ;

     BYTE   bNumConfigurations ;

DEVICE_DESC , * pDevDesc ;

 

/**

  配置描述符

 */

typedef   struct  _CFGDESC

{  

     BYTE   bLength ;               // Size of descriptor in Byte

     BYTE   bType ;               // Configuration

     WORD   wLength ;               // Total length

     BYTE   bNumIntf ;            // Number of interface

     BYTE   bCV ;                    // bConfigurationValue

     BYTE   bIndex ;                // iConfiguration

     BYTE   bAttr ;                 // Configuration Characteristic

     BYTE   bMaxPower ;           // Power config

     BYTE   rsvd ;

CFG_DESC , * pCfgDesc ;

 

/**

  接口描述符

 */

typedef   struct  _INTF_DESC

{    BYTE   bLength ;

     BYTE   bType ;

     BYTE   iNum ;

     BYTE   iAltString ;

     BYTE   bEndPoints ;

     BYTE   iClass ;

     BYTE   iSub ;

     BYTE   iProto ;

     BYTE   iIndex ;

INTF_DESC , * pIntfDesc ;

 

/**

  端点描述符

 */

typedef   struct  _ED_DESC

{    BYTE   bLength ;

     BYTE   bType ;

     BYTE   bEPAdd ;

     BYTE   bAttr ;

     WORD   wPayLoad ;                // low-speed this must be 0x08

     BYTE   bInterval ;

     BYTE   rsvd ;

ED_DESC , * pEPDesc ;





本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/274087,如需转载请自行联系原作者
目录
相关文章
|
6天前
|
存储 JavaScript 前端开发
什么是堆?什么是栈?他们之间从区别和联系
什么是堆?什么是栈?他们之间从区别和联系
21 0
|
2天前
|
存储
栈与队列练习题
栈与队列练习题
|
2天前
|
存储 索引
操作数栈的字节码指令执行分析
操作数栈的字节码指令执行分析
|
2天前
|
算法 C++
D1. Range Sorting (Easy Version)(单调栈+思维)
D1. Range Sorting (Easy Version)(单调栈+思维)
|
2天前
|
人工智能
线段树最大连续子段板子😂单调栈
线段树最大连续子段板子😂单调栈