?? usb.h
字號:
/* usb.h - Basic USB (Universal Serial Bus) definitions *//* Copyright 2000-2002 Wind River Systems, Inc. *//*Modification history--------------------01i,28mar02,h_k removed #if (CPU==SH7700)&&(_BYTE_ORDER==_BIG_ENDIAN) and set USB_MAX_DESCR_LEN 255 for SH7700 (SPR #73896).01h,16nov11,wef Pack ENDPOINT_DESCRIPTOR structure.01g,08nov11,wef add provisions for SH - pack structures and conditionally make USB_MAX_DESCR_LEN a multiple of 401f,18sep01,wef merge from wrs.tor2_0.usb1_1-f for veloce01e,25jul01,rcb fixed spr #6928701d,26jan00,rcb Add "dataBlockSize" field to USB_IRP to give application greater control over isochronous transfer sizes. Change USB_BFR_LIST "bfrLen" and "actLen" fields to UINT32.01c,12jan00,rcb Add definition for USB_CLASS_AUDIO. Add typedef for USB_DESCR_HDR_SUBHDR.01b,07sep99,rcb Add definition for USB_TIME_RESUME.01a,03jun99,rcb First.*//*DESCRIPTIONThis file defines constants and structures related to the USB (UniversalSerial Bus).NOTE: The USB specification defines that multi-byte fields will be storedin little-endian format.*/#ifndef __INCusbh#define __INCusbh#ifdef __cplusplusextern "C" {#endif/* includes */#include "usb/usbListLib.h"#include "usb/usbHandleLib.h"/* Defined by the USB *//* defines */#define USB_MAX_DEVICES 127#define USB_MAX_TOPOLOGY_DEPTH 6#define USB_MAX_DESCR_LEN 255/* USB class codes */#define USB_CLASS_AUDIO 0x01#define USB_CLASS_HID 0x03#define USB_CLASS_PRINTER 0x07#define USB_CLASS_HUB 0x09/* USB requestType (bmRequestType) bit fields */#define USB_RT_DIRECTION_MASK 0x80#define USB_RT_HOST_TO_DEV 0x00#define USB_RT_DEV_TO_HOST 0x80#define USB_RT_CATEGORY_MASK 0x60#define USB_RT_STANDARD 0x00#define USB_RT_CLASS 0x20#define USB_RT_VENDOR 0x40#define USB_RT_RECIPIENT_MASK 0x03#define USB_RT_DEVICE 0x00#define USB_RT_INTERFACE 0x01#define USB_RT_ENDPOINT 0x02#define USB_RT_OTHER 0x03/* USB requests (bRequest) */#define USB_REQ_GET_STATUS 0#define USB_REQ_CLEAR_FEATURE 1#define USB_REQ_GET_STATE 2#define USB_REQ_SET_FEATURE 3#define USB_REQ_SET_ADDRESS 5#define USB_REQ_GET_DESCRIPTOR 6#define USB_REQ_SET_DESCRIPTOR 7#define USB_REQ_GET_CONFIGURATION 8#define USB_REQ_SET_CONFIGURATION 9#define USB_REQ_GET_INTERFACE 10#define USB_REQ_SET_INTERFACE 11#define USB_REQ_GET_SYNCH_FRAME 12/* USB descriptor types */#define USB_DESCR_DEVICE 0x01#define USB_DESCR_CONFIGURATION 0x02#define USB_DESCR_STRING 0x03#define USB_DESCR_INTERFACE 0x04#define USB_DESCR_ENDPOINT 0x05#define USB_DESCR_HID 0x21#define USB_DESCR_REPORT 0x22 /* HID report descriptor */#define USB_DESCR_PHYSICAL 0x23 /* HID physical descriptor */#define USB_DESCR_HUB 0x29/* configuration descriptor attributes values */#define USB_ATTR_SELF_POWERED 0x40#define USB_ATTR_REMOTE_WAKEUP 0x20/* Max power available from a hub port */#define USB_POWER_SELF_POWERED 500 /* 500 mA */#define USB_POWER_BUS_POWERED 100 /* 100 mA *//* power requirements as reported in configuration descriptors */#define USB_POWER_MA_PER_UNIT 2 /* 2 mA per unit *//* endpoint descriptor attributes values */#define USB_ATTR_EPTYPE_MASK 0x03#define USB_ATTR_CONTROL 0x00#define USB_ATTR_ISOCH 0x01#define USB_ATTR_BULK 0x02#define USB_ATTR_INTERRUPT 0x03/* standard USB feature selectors */#define USB_FSEL_DEV_REMOTE_WAKEUP 1#define USB_FSEL_DEV_ENDPOINT_HALT 0/* hub feature selections */#define USB_HUB_FSEL_C_HUB_LOCAL_POWER 0#define USB_HUB_FSEL_C_HUB_OVER_CURRENT 1#define USB_HUB_FSEL_PORT_CONNECTION 0#define USB_HUB_FSEL_PORT_ENABLE 1#define USB_HUB_FSEL_PORT_SUSPEND 2#define USB_HUB_FSEL_PORT_OVER_CURRENT 3#define USB_HUB_FSEL_PORT_RESET 4#define USB_HUB_FSEL_PORT_POWER 8#define USB_HUB_FSEL_PORT_LOW_SPEED 9#define USB_HUB_FSEL_C_PORT_CONNECTION 16#define USB_HUB_FSEL_C_PORT_ENABLE 17#define USB_HUB_FSEL_C_PORT_SUSPEND 18#define USB_HUB_FSEL_C_PORT_OVER_CURRENT 19#define USB_HUB_FSEL_C_PORT_RESET 20/* endpoint direction mask */#define USB_ENDPOINT_DIR_MASK 0x80#define USB_ENDPOINT_OUT 0x00#define USB_ENDPOINT_IN 0x80/* standard endpoints */#define USB_MAX_ENDPOINT_NUM 15#define USB_ENDPOINT_MASK 0xf#define USB_ENDPOINT_DEFAULT_CONTROL 0/* hub characteristics */#define USB_HUB_GANGED_POWER 0x0000#define USB_HUB_INDIVIDUAL_POWER 0x0001#define USB_HUB_NOT_COMPOUND 0x0000#define USB_HUB_COMPOUND 0x0004#define USB_HUB_GLOBAL_OVERCURRENT 0x0000#define USB_HUB_INDIVIDUAL_OVERCURRENT 0x0008/* standard device status */#define USB_DEV_STS_LOCAL_POWER 0x0001#define USB_DEV_STS_REMOTE_WAKEUP 0x0002/* standard endpoint status */#define USB_ENDPOINT_STS_HALT 0x0001/* hub status & change */#define USB_HUB_STS_LOCAL_POWER 0x0001#define USB_HUB_STS_OVER_CURRENT 0x0002#define USB_HUB_C_LOCAL_POWER 0x0001#define USB_HUB_C_OVER_CURRENT 0x0002/* hub port status & change */#define USB_HUB_STS_PORT_CONNECTION 0x0001#define USB_HUB_STS_PORT_ENABLE 0x0002#define USB_HUB_STS_PORT_SUSPEND 0x0004#define USB_HUB_STS_PORT_OVER_CURRENT 0x0008#define USB_HUB_STS_PORT_RESET 0x0010#define USB_HUB_STS_PORT_POWER 0x0100#define USB_HUB_STS_PORT_LOW_SPEED 0x0200#define USB_HUB_C_PORT_CONNECTION 0x0001#define USB_HUB_C_PORT_ENABLE 0x0002#define USB_HUB_C_PORT_SUSPEND 0x0004#define USB_HUB_C_PORT_OVER_CURRENT 0x0008#define USB_HUB_C_PORT_RESET 0x0010/* hub status endpoint */#define USB_HUB_ENDPOINT_STS_HUB 0x01#define USB_HUB_ENDPOINT_STS_PORT0 0x02/* USB timing */#define USB_TIME_POWER_ON 100 /* 100 msec */#define USB_TIME_RESET 50 /* 50 msec */#define USB_TIME_RESET_RECOVERY 10 /* 10 msec */#define USB_TIME_SET_ADDRESS 2 /* 2 msec */#define USB_TIME_REQUEST 5000 /* 5 seconds */#define USB_TIME_RESUME 20 /* 20 msec *//* USB packet identifiers */#define USB_PID_SETUP 0x2d#define USB_PID_OUT 0xe1#define USB_PID_IN 0x69/* packet size range */#define USB_MIN_CTRL_PACKET_SIZE 8 /* min for control pipe */#define USB_MAX_CTRL_PACKET_SIZE 64 /* max for control pipe *//* maximum bandwidth (expressed as nanoseconds per frame) which may be * allocated for various purposes. */#define USB_LIMIT_ISOCH_INT ((UINT32) 900000L) /* 900 usec */#define USB_LIMIT_ALL ((UINT32) 999000L) /* 999 usec *//* Typedefs *//* * USB_SETUP */typedef struct usb_setup { UINT8 requestType; /* bmRequestType */ UINT8 request; /* bRequest */ UINT16 value; /* wValue */ UINT16 index; /* wIndex */ UINT16 length; /* wLength */ } USB_SETUP, *pUSB_SETUP;/* * USB_DESCR_HDR * * header common to all USB descriptors */typedef struct usb_descr_hdr { UINT8 length; /* bLength */ UINT8 descriptorType; /* bDescriptorType */ } USB_DESCR_HDR, *pUSB_DESCR_HDR;#define USB_DESCR_HDR_LEN 2/* * USB_DESCR_HDR_SUBHDR * * Some classes of USB devices (e.g., audio) use descriptors with a * header and a subheader. */typedef struct usb_descr_hdr_subhdr { UINT8 length; /* bLength */ UINT8 descriptorType; /* bDescriptorType */ UINT8 descriptorSubType; /* bDescriptorSubType */ } USB_DESCR_HDR_SUBHDR, *pUSB_DESCR_HDR_SUBHDR;/* * USB_DEVICE_DESCR */typedef struct usb_device_descr { UINT8 length; /* bLength */ UINT8 descriptorType; /* bDescriptorType */ UINT16 bcdUsb; /* bcdUSB - USB release in BCD */ UINT8 deviceClass; /* bDeviceClass */ UINT8 deviceSubClass; /* bDeviceSubClass */ UINT8 deviceProtocol; /* bDeviceProtocol */ UINT8 maxPacketSize0; /* bMaxPacketSize0 */ UINT16 vendor; /* idVendor */ UINT16 product; /* idProduct */ UINT16 bcdDevice; /* bcdDevice - dev release in BCD */ UINT8 manufacturerIndex; /* iManufacturer */ UINT8 productIndex; /* iProduct */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -