⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb.h

📁 VXWORKS 源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* 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 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -