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

📄 gfd_usb_protocol.h

📁 基于一款32位嵌入式微处理器的USB接口的测试代码
💻 H
字号:
/*************************************************************
 *
 * (c) 2004  ASIC , All rights reserved
 * 
 * This  source code and any compilation or derivative thereof is the
 * proprietary information of National ASIC center,
 * and is confidential in nature.
 * Under no circumstances is this software to be exposed to or placed
 * under an Open Source License of any type without the expressed
 * written permission of National ASIC center.
 *
 * File Name:	pdc_protocol.h
 *
 * History:	
 *
 *	Version		Date			Author		Comments
 * -------------------------------------------------
 * 	1.0		  2004.9.24			lmq		Initial Creation
 *
 * Note: use tab space 4
 *************************************************************/
#ifndef __PDC_PROTOCOL_H__
#define __PDC_PROTOCOL_H__

#define PDC_DEFAULT                 0x00    /* No descriptor read */
#define PDC_DESCRIPTOR_READ         0x01    /* Descriptor read, Addr not assigned */
#define PDC_ADDRESS_ASSIGNED        0x02    /* Descriptor Read, Addr assigned*/
#define PDC_CONFIGURED              0x03

/* GLOBAL STATUS VALUES */
#define STD_COMMAND                 0x00
#define SETUP_COMMAND_PHASE         0x40
#define FUNCTION_ERROR              0x7F  /* Used when we are stalling the
					     function EP0 */
#define HUB_ERROR                   0xFF  /* Used when we are stalling the
					     HUB EP0 */

/*
 * bmRequestType Values
 */

#define STANDARD_REQUEST			0x00
#define CLASS_REQUEST				0x20
#define VENDOR_REQUEST				0x40

/*
 * bmRequestType Recipient
 */
#define	RECIP_DEVICE				0x00
#define	RECIP_INTERFACE				0x01
#define	RECIP_ENDPOINT				0x02
#define	RECIP_OTHER					0x03

/*
 * bmRequestType Dir mask
 */
#define	PDC_REQTYPE_DIR_MASK		0x80

#define	PDC_BUS_NUM_CONFIG		0x01
#define	PDC_BUS_NUM_INTF		0x01
#define	PDC_BUS_NUM_STRINGS		0x03

#define	PDC_CONFIG_PIPE_MPS		0x40
					
/* 
 * Set Feature values
 */
#define PDC_FEATURE_B_HNP_ENABLE    0x0003
#define PDC_FEATURE_A_HNP_SUPPORT   0x0004
#define PDC_FEATURE_A_ALTHNP_SUPPORT	0x0005


/*
 * Recipient Selectors/Masks
 */

#define PDC_RECIPIENT_MASK			0x1F
#define PDC_DEVICE_RECIPIENT        0x00
#define PDC_INTERFACE_RECIPIENT     0x01
#define PDC_ENDPOINT_RECIPIENT      0x02
#define PDC_OTHER_RECIPIENT         0x03

/*
 * Feature Selectors
 */

#define DEVICE_REMOTE_WAKEUP   		0x01
#define ENDPOINT_STALL         		0x00

#define PDC_MAX_STRING_DESC_LEN		255

// values for the bits returned by the USB GET_STATUS command
#define PDC_GETSTATUS_SELF_POWERED                0x01
#define PDC_GETSTATUS_REMOTE_WAKEUP_ENABLED       0x02

#define PDC_DESC_MAKE_TYPE_AND_INDEX(d, i) ((USHORT)((USHORT)d<<8 | i))

/*
 * Descriptor Types
 */
#define	PDC_DEV_DESC_TYPE			0x01
#define	PDC_CONFIG_DESC_TYPE		0x02
#define	PDC_STRING_DESC_TYPE		0x03
#define	PDC_INTF_DESC_TYPE			0x04
#define	PDC_EP_DESC_TYPE			0x05
#define	PDC_OTG_DESC_TYPE			0x09

#define	PDC_DEV_DESC_LEN			0x12
#define	PDC_CONFIG_DESC_LEN			0x09
#define	PDC_INTF_DESC_LEN			0x09
#define	PDC_EP_DESC_LEN				0x07
#define	PDC_OTG_DESC_LEN			0x03

/*
 * Values for bmAttributes field of an
 * endpoint descriptor
 */

#define PDC_EP_TYPE_MASK            0x03

#define PDC_EP_TYPE_CONTROL         0x00
#define PDC_EP_TYPE_ISOCHRONOUS     0x01
#define PDC_EP_TYPE_BULK            0x02
#define PDC_EP_TYPE_INTERRUPT       0x03


/*
 * definitions for bits in the bmAttributes field of a 
 * configuration descriptor.
 */
#define PDC_CONFIG_POWERED_MASK     0xc0
#define PDC_CONFIG_BUS_POWERED      0x80
#define PDC_CONFIG_SELF_POWERED     0x40
#define PDC_CONFIG_REMOTE_WAKEUP    0x20

#define PDC_SETUP_COMMAND			0x0008

#define PDC_CTRL_MPS				0x08 //0x40changed

/*
 * Endpoint direction bit, stored in address
 */

#define PDC_EP_DIR_MASK             0x80


/*
 * USB defined request codes
 * see chapter 9 of the USB 1.1 specifcation for
 * more information.
 */

/* 
 * These are the correct values based on the USB 1.1
 * specification
 */

#define PDC_REQ_GET_STATUS          0x00
#define PDC_REQ_CLEAR_FEATURE       0x01
#define PDC_REQ_SET_FEATURE         0x03
#define PDC_REQ_SET_ADDRESS         0x05
#define PDC_REQ_GET_DESCRIPTOR      0x06
#define PDC_REQ_SET_DESCRIPTOR      0x07
#define PDC_REQ_GET_CONFIGURATION   0x08
#define PDC_REQ_SET_CONFIGURATION   0x09
#define PDC_REQ_GET_INTERFACE 		0x0A
#define PDC_REQ_SET_INTERFACE		0x0B
#define PDC_REQ_SYNC_FRAME			0x0C


/*
 * defined USB device classes --定义USB 设备类
 */


#define PDC_DC_RESERVED           	0x00
#define PDC_DC_AUDIO              	0x01
#define PDC_DC_COMMUNICATIONS     	0x02
#define PDC_DC_HUMAN_INTERFACE    	0x03
#define PDC_DC_MONITOR            	0x04
#define PDC_DC_PHYSICAL_INTERFACE 	0x05
#define PDC_DC_POWER              	0x06
#define PDC_DC_PRINTER            	0x07
#define PDC_DC_STORAGE            	0x08
#define PDC_DC_HUB                	0x09
#define PDC_DC_VENDOR_SPECIFIC    	0xFF

/*
 * USB defined Feature selectors--USB特性描述
 */

#define PDC_FEATURE_ENDPOINT_STALL  0x0000
#define PDC_FEATURE_REMOTE_WAKEUP   0x0001
#define PDC_FEATURE_POWER_D0        0x0002
#define PDC_FEATURE_POWER_D1        0x0003
#define PDC_FEATURE_POWER_D2        0x0004
#define PDC_FEATURE_POWER_D3        0x0005

#define BUS_POWERED                 0x80
#define SELF_POWERED                0x40
#define REMOTE_WAKEUP               0x20

/*
 * USB power descriptor added to core specification--USB供电描述
 */

#define PDC_SUPPORT_D0_COMMAND		0x01
#define PDC_SUPPORT_D1_COMMAND      0x02
#define PDC_SUPPORT_D2_COMMAND     	0x04
#define PDC_SUPPORT_D3_COMMAND      0x08

#define PDC_SUPPORT_D1_WAKEUP       0x10
#define PDC_SUPPORT_D2_WAKEUP       0x20


#endif /* __PDC_PROTOCOL_H__ */

/*******************************UFI 命令描述*******************/
#define INQUIRY					0X12
#define READ						0X28
#define READ_CAPACITY			0X25
#define READ_FORMAT_CAPACITY	0X23
#define REQUEST_SENSE			0X03
#define CODE_1A					0X1A
#define CODE_15					0X15
#define WRITE2                 			0X2A
#define TESTUNITREADY           		0X00
#define PREVENT					0X1E

⌨️ 快捷键说明

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