基於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 ;
相關文章
相關標籤/搜索