USB D12 SMART 开发套件 usb驱动程序的源代码和技术文档

源代码在线查看: usb100.h

软件大小: 11083 K
上传用户: li444255
关键词: SMART USB D12 usb
下载地址: 免注册下载 普通下载 VIP

相关代码

				/*
				   //*************************************************************************
				   //
				   //                  		ZLGMCU
				   //				www.zlgmcu.com
				   // File Name:	usb100.h
				   // Revision:		0.4(2002-07-08)
				   // Author:		Liu Ying Bin
				   // Use library:  USB51S.LIB
				   // Note:			USB51S.LIB不带DMA控制功能
				   //*************************************************************************
				   */
				
				#ifndef   __USB100_H__
				#define   __USB100_H__
				
				
				#define MAXIMUM_USB_STRING_LENGTH 255
				
				// values for the bits returned by the USB GET_STATUS command
				#define USB_GETSTATUS_SELF_POWERED                0x01
				#define USB_GETSTATUS_REMOTE_WAKEUP_ENABLED       0x02
				
				
				#define USB_DEVICE_DESCRIPTOR_TYPE                0x01
				#define USB_CONFIGURATION_DESCRIPTOR_TYPE         0x02
				#define USB_STRING_DESCRIPTOR_TYPE                0x03
				#define USB_INTERFACE_DESCRIPTOR_TYPE             0x04
				#define USB_ENDPOINT_DESCRIPTOR_TYPE              0x05
				#define USB_POWER_DESCRIPTOR_TYPE                 0x06
				
				#define USB_DESCRIPTOR_MAKE_TYPE_AND_INDEX(d, i) ((USHORT)((USHORT)d				
				//
				// Values for bmAttributes field of an
				// endpoint descriptor
				//
				
				#define USB_ENDPOINT_TYPE_MASK                    0x03
				
				#define USB_ENDPOINT_TYPE_CONTROL                 0x00
				#define USB_ENDPOINT_TYPE_ISOCHRONOUS             0x01
				#define USB_ENDPOINT_TYPE_BULK                    0x02
				#define USB_ENDPOINT_TYPE_INTERRUPT               0x03
				
				
				//
				// definitions for bits in the bmAttributes field of a 
				// configuration descriptor.
				//
				#define USB_CONFIG_POWERED_MASK                   0xc0
				
				#define USB_CONFIG_BUS_POWERED                    0x80
				#define USB_CONFIG_SELF_POWERED                   0x40
				#define USB_CONFIG_REMOTE_WAKEUP                  0x20
				
				//
				// Endpoint direction bit, stored in address
				//
				
				#define USB_ENDPOINT_DIRECTION_MASK               0x80
				
				// test direction bit in the bEndpointAddress field of
				// an endpoint descriptor.
				#define USB_ENDPOINT_DIRECTION_OUT(addr)          (!((addr) & USB_ENDPOINT_DIRECTION_MASK))
				#define USB_ENDPOINT_DIRECTION_IN(addr)           ((addr) & USB_ENDPOINT_DIRECTION_MASK)
				
				//
				// USB defined request codes
				// see chapter 9 of the USB 1.0 specifcation for
				// more information.
				//
				
				// These are the correct values based on the USB 1.0
				// specification
				
				#define USB_REQUEST_GET_STATUS                    0x00
				#define USB_REQUEST_CLEAR_FEATURE                 0x01
				
				#define USB_REQUEST_SET_FEATURE                   0x03
				
				#define USB_REQUEST_SET_ADDRESS                   0x05
				#define USB_REQUEST_GET_DESCRIPTOR                0x06
				#define USB_REQUEST_SET_DESCRIPTOR                0x07
				#define USB_REQUEST_GET_CONFIGURATION             0x08
				#define USB_REQUEST_SET_CONFIGURATION             0x09
				#define USB_REQUEST_GET_INTERFACE                 0x0A
				#define USB_REQUEST_SET_INTERFACE                 0x0B
				#define USB_REQUEST_SYNC_FRAME                    0x0C
				
				
				//
				// defined USB device classes
				//
				
				
				#define USB_DEVICE_CLASS_RESERVED           0x00
				#define USB_DEVICE_CLASS_AUDIO              0x01
				#define USB_DEVICE_CLASS_COMMUNICATIONS     0x02
				#define USB_DEVICE_CLASS_HUMAN_INTERFACE    0x03
				#define USB_DEVICE_CLASS_MONITOR            0x04
				#define USB_DEVICE_CLASS_PHYSICAL_INTERFACE 0x05
				#define USB_DEVICE_CLASS_POWER              0x06
				#define USB_DEVICE_CLASS_PRINTER            0x07
				#define USB_DEVICE_CLASS_STORAGE            0x08
				#define USB_DEVICE_CLASS_HUB                0x09
				#define USB_DEVICE_CLASS_VENDOR_SPECIFIC    0xFF
				
				//
				// USB defined Feature selectors
				//
				
				#define USB_FEATURE_ENDPOINT_STALL          0x0000
				#define USB_FEATURE_REMOTE_WAKEUP           0x0001
				#define USB_FEATURE_POWER_D0                0x0002
				#define USB_FEATURE_POWER_D1                0x0003
				#define USB_FEATURE_POWER_D2                0x0004
				#define USB_FEATURE_POWER_D3                0x0005
				
				typedef struct _USB_DEVICE_DESCRIPTOR {
				    UCHAR bLength;
				    UCHAR bDescriptorType;
				    USHORT bcdUSB;
				    UCHAR bDeviceClass;
				    UCHAR bDeviceSubClass;
				    UCHAR bDeviceProtocol;
				    UCHAR bMaxPacketSize0;
				    USHORT idVendor;
				    USHORT idProduct;
				    USHORT bcdDevice;
				    UCHAR iManufacturer;
				    UCHAR iProduct;
				    UCHAR iSerialNumber;
				    UCHAR bNumConfigurations;
				} USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR;
				
				typedef struct _USB_ENDPOINT_DESCRIPTOR {
				    UCHAR bLength;
				    UCHAR bDescriptorType;
				    UCHAR bEndpointAddress;
				    UCHAR bmAttributes;
				    USHORT wMaxPacketSize;
				    UCHAR bInterval;
				} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;
				
				//
				// values for bmAttributes Field in
				// USB_CONFIGURATION_DESCRIPTOR
				//
				
				#define BUS_POWERED                           0x80
				#define SELF_POWERED                          0x40
				#define REMOTE_WAKEUP                         0x20
				
				typedef struct _USB_CONFIGURATION_DESCRIPTOR {
				    UCHAR bLength;
				    UCHAR bDescriptorType;
				    USHORT wTotalLength;
				    UCHAR bNumInterfaces;
				    UCHAR bConfigurationValue;
				    UCHAR iConfiguration;
				    UCHAR bmAttributes;
				    UCHAR MaxPower;
				} USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR;
				
				typedef struct _USB_INTERFACE_DESCRIPTOR {
				    UCHAR bLength;
				    UCHAR bDescriptorType;
				    UCHAR bInterfaceNumber;
				    UCHAR bAlternateSetting;
				    UCHAR bNumEndpoints;
				    UCHAR bInterfaceClass;
				    UCHAR bInterfaceSubClass;
				    UCHAR bInterfaceProtocol;
				    UCHAR iInterface;
				} USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR;
				
				typedef struct _USB_STRING_DESCRIPTOR {
				    UCHAR bLength;
				    UCHAR bDescriptorType;
				    UCHAR bString[1];
				} USB_STRING_DESCRIPTOR, *PUSB_STRING_DESCRIPTOR;
				
				//
				// USB power descriptor added to core specification
				//
				
				#define USB_SUPPORT_D0_COMMAND      0x01
				#define USB_SUPPORT_D1_COMMAND      0x02
				#define USB_SUPPORT_D2_COMMAND      0x04
				#define USB_SUPPORT_D3_COMMAND      0x08
				
				#define USB_SUPPORT_D1_WAKEUP       0x10
				#define USB_SUPPORT_D2_WAKEUP       0x20
				
				
				typedef struct _USB_POWER_DESCRIPTOR {
				    UCHAR bLength;
				    UCHAR bDescriptorType;
				    UCHAR bCapabilitiesFlags;
				    USHORT EventNotification;
				    USHORT D1LatencyTime;
				    USHORT D2LatencyTime;
				    USHORT D3LatencyTime;
				    UCHAR PowerUnit;
				    USHORT D0PowerConsumption;
				    USHORT D1PowerConsumption;
				    USHORT D2PowerConsumption;
				} USB_POWER_DESCRIPTOR, *PUSB_POWER_DESCRIPTOR;
				
				
				typedef struct _USB_COMMON_DESCRIPTOR {
				    UCHAR bLength;
				    UCHAR bDescriptorType;
				} USB_COMMON_DESCRIPTOR, *PUSB_COMMON_DESCRIPTOR;
				
				
				//
				// Standard USB HUB definitions 
				//
				// See Chapter 11
				//
				
				typedef struct _USB_HUB_DESCRIPTOR {
				    UCHAR        bDescriptorLength;      // Length of this descriptor
				    UCHAR        bDescriptorType;        // Hub configuration type
				    UCHAR        bNumberOfPorts;         // number of ports on this hub
				    USHORT       wHubCharacteristics;    // Hub Charateristics
				    UCHAR        bPowerOnToPowerGood;    // port power on till power good in 2ms
				    UCHAR        bHubControlCurrent;     // max current in mA
				    //
				    // room for 255 ports power control and removable bitmask
				    UCHAR        bRemoveAndPowerMask[64];
				} USB_HUB_DESCRIPTOR, *PUSB_HUB_DESCRIPTOR;
				
				
				#endif   /* __USB100_H__ */
							

相关资源