📄 usb.h
字号:
/*
* Copyright (c) 2004,成都港顺科技发展有限公司
* All rights reserved.
*
* 编 译 器:Keil:C Compiler:7.20;Assembler:7.10
* 工程名称:POS-Test.UV2
* 文件名称:USB.H
* 摘 要:USB数据结构、宏定义
*
* 单 片 机:uPSD3254
* 当前版本:0.4
* 作 者:林云
* 完成日期:2004-10-25 14:45
*/
#ifndef USB_H
#define USB_H
// iword - Intel word structure.
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
typedef struct
{
uchar lo;
uchar hi;
}
iword;
// USB 1.1 device descriptor
typedef struct
{
uchar bLength; // Size of this Descriptor in Bytes
uchar bDescriptorType; // Descriptor Type (=1)
iword bcdUSB; // USB Spec Release Number in BCD
uchar bDeviceClass; // Device Class Code
uchar bDeviceSubClass; // Device Subclass Code
uchar bDeviceProtocol; // Device Protocol Code
uchar bMaxPacketSize0; // Maximum Packet Size for EP0
iword idVendor; // Vendor ID
iword idProduct; // Product ID
iword bcdDevice; // Device Release Number in BCD
uchar iManufacturer; // Index of String Desc for Manufacturer
uchar iProduct; // Index of String Desc for Product
uchar iSerialNumber; // Index of String Desc for SerNo
uchar bNumConfigurations; // Number of possible Configurations
}
device_descriptor;
// USB 1.1 configuration descriptor
typedef struct
{
uchar bLength; // Size of this Descriptor in Bytes
uchar bDescriptorType; // Descriptor Type (=2)
iword wTotalLength; // Total Length of Data for this Conf
uchar bNumInterfaces; // No of Interfaces supported by this Conf
uchar bConfigurationValue; // Designator Value for *this* Configuration
uchar iConfiguration; // Index of String Desc for this Conf
uchar bmAttributes; // Configuration Characteristics (see below)
uchar bMaxPower; // Max. Power Consumption in this Conf (*2mA)
}
configuration_descriptor;
// USB 1.1 interface descriptor
typedef struct
{
uchar bLength; // Size of this Descriptor in Bytes
uchar bDescriptorType; // Descriptor Type (=4)
uchar bInterfaceNumber; // Number of *this* Interface (0..)
uchar bAlternateSetting; // Alternative for this Interface (if any)
uchar bNumEndpoints; // No of EPs used by this IF (excl. EP0)
uchar bInterfaceClass; // Interface Class Code
uchar bInterfaceSubClass; // Interface Subclass Code
uchar bInterfaceProtocol; // Interface Protocol Code
uchar iInterface; // Index of String Desc for this Interface
}
interface_descriptor;
// USB 1.1 endpoint descriptor
typedef struct
{
uchar bLength; // Size of this Descriptor in Bytes
uchar bDescriptorType; // Descriptor Type (=5)
uchar bEndpointAddress; // Endpoint Address (Number + Direction)
uchar bmAttributes; // Endpoint Attributes (Transfer Type)
iword wMaxPacketSize; // Max. Endpoint Packet Size
uchar bInterval; // Polling Interval (Interrupt) in ms
}
endpoint_descriptor;
// USB SETUP packet
typedef struct
{
uchar bmRequestType; // Characteristics (Direction,Type,Recipient)
uchar bRequest; // Standard Request Code
iword wValue; // Value Field
iword wIndex; // Index or Offset Field
iword wLength; // Number of Bytes to transfer (Data Stage)
}
setup_buffer;
// USB Status Codes
#define US_ATTACHED 0x00
#define US_POWERED 0x01
#define US_DEFAULT 0x02
#define US_ADDRESSED 0x03
#define US_CONFIGURED 0x04
#define US_SUSPENDED 0x80
//added the following on April 30, 2004
//EP1 state VERA
#define US_EP1DEFAULT 0x00
#define US_EP1STALL 0x01
// USB Standard Device Request Codes
#define GET_STATUS 0x00
#define CLEAR_FEATURE 0x01
#define SET_FEATURE 0x03
#define SET_ADDRESS 0x05
#define GET_DESCRIPTOR 0x06
#define SET_DESCRIPTOR 0x07 // optional
#define GET_CONFIGURATION 0x08
#define SET_CONFIGURATION 0x09
#define GET_INTERFACE 0x0A
#define SET_INTERFACE 0x0B
#define SYNCH_FRAME 0x0C // optional
// SETUP packet request types
#define CLASS_INTERFACE_TO_DEVICE 0x21
#define CLASS_INTERFACE_TO_HOST 0xA1
// HID class specific requests
#define HID_GET_REPORT 0x01
#define HID_GET_IDLE 0x02
#define HID_SET_REPORT 0x09
#define HID_SET_IDLE 0x0A
#define REQUEST_COMPLETE 0xff // not part of the Standard - just
// a Flag to indicate that the recent
// request has been finished
// Descriptor Types
#define DT_DEVICE 1
#define DT_CONFIGURATION 2
#define DT_STRING 3
#define DT_INTERFACE 4
#define DT_ENDPOINT 5
#define DT_HID_CLASS 0x21
#define DT_HID_REPORT 0x22
#define DT_HID_PHYSICALD 0x23
#endif
/* *************************************************************************
*** ***
** *** End of File *** **
*** ***
************************************************************************* */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -