📄 descriptor.c
字号:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: Descriptor.c
** Last modified Date: 2005-8-6
** Last Version: V1.0
** Descriptions: USB 设备描述符
** USB device descriptor
**------------------------------------------------------------------------------------------------------
** Created by: 郑明远 MingYuan Zheng
** Created date: 2005-8-6
** Version: V1.0
** Descriptions: 初始版本 The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#include "USBConfig.h"
#include "Descriptor.h"
/* device descriptor: test device type */
#define USB_CLASS_CODE_TEST_CLASS_DEVICE 0xdc /* 设备描述符: 测试设备类型 */
/* interface descriptor: subclass code */
#define USB_SUBCLASS_CODE_TEST_CLASS_D12 0xA0 /* 接口描述符: 子类代码 */
/* interface descriptor: protocol code */
#define USB_PROTOCOL_CODE_TEST_CLASS_D12 0xB0 /* 接口描述符: 协议代码 */
/* device descriptor */
const USB_DEVICE_DESCRIPTOR DeviceDescr =
{
sizeof(USB_DEVICE_DESCRIPTOR), // 设备描述符长度,= 12H device descriptor length = 12H
USB_DEVICE_DESCRIPTOR_TYPE, // 设备描述符类型,= 01H device descriptor type = 01H
0x00,0x01, // 协议版本,= 1.10 protocol version = 1.10
USB_CLASS_CODE_TEST_CLASS_DEVICE, // 测试设备类型, = 0DCH Class code = 0DCH
0, 0, // 设备子类,设备协议 Subclass code, Protocol code
EP0_PACKET_SIZE, // 端点0最大数据包大小,= 40H Maximum packet size for endpoint 0, = 40H
0x71,0x04, // PHILIPS公司的设备ID Vendor ID = PHILIPS Semiconductor,Inc.
0x99,0x09, // 设备制造商定的产品ID Product ID
0x00,0x01, // 设备系列号 Device release number in binary-coded decimal
0, 0, 0, // 索引 Index
1 // 可能的配置数 Number of possible configurations
};
const USB_DESCRIPTOR usb_descr =
{
//configuration descriptor // 配置描述符
{
sizeof(USB_CONFIGURATION_DESCRIPTOR), // 配置描述符长度,= 09H Size of this descriptor in bytes = 09H
USB_CONFIGURATION_DESCRIPTOR_TYPE, // 配置描述符类型,= 02H configuration descriptor type = 02H
CONFIG_DESCRIPTOR_LENGTH,0x00, // 描述符总长度, = 002EH Total length of data returned for this configuration, = 002EH
1, // 只支持1个接口 only support a interface
1, // 配置值 configuration value
0, // 字符串描述符指针(无) Index of string descriptor describing this configuration(no)
0x60, // 自供电,支持远程唤醒 Configuration characteristics: support Self-powered, Remote Wakeup
0x32 // 最大功耗(100mA) Maximum power consumption(100mA)
},
//interface descriptor // 接口描述符
{
sizeof(USB_INTERFACE_DESCRIPTOR), // 接口描述符长度,= 09H Size of this descriptor in bytes = 09H
USB_INTERFACE_DESCRIPTOR_TYPE, // 接口描述符类型,= 04H interface descriptor type = 04H
0, // 接口数,只有1个 Number of this interface, only one
0, // 可选配置,只有1个 optional configuration, only one
NUM_ENDPOINTS, // 除端点0的端点索引数目,=04H Number of endpoints used by this interface (excluding endpoint zero) = 04H
USB_CLASS_CODE_TEST_CLASS_DEVICE, // 测试设备类型,= 0DCH Class code = 0DCH
USB_SUBCLASS_CODE_TEST_CLASS_D12, // 子类代码,= 0A0H Subclass code = 0A0H
USB_PROTOCOL_CODE_TEST_CLASS_D12, // 协议代码,= 0B0H Protocol code = 0B0H
0 // 字符串描述符索引 Index of string descriptor describing this interface
},
//endpoint descriptor, logic endpoint 1 IN // 逻辑端点 1 输入
{
sizeof(USB_ENDPOINT_DESCRIPTOR), // 端点描述符长度,= 07H endpoint descriptor length = 07H
USB_ENDPOINT_DESCRIPTOR_TYPE, // 端点描述符类型,= 05H endpoint descriptor type = 05H
0x81, // 端点1 IN endpoint 1 IN
USB_ENDPOINT_TYPE_INTERRUPT, // 中断传输, = 03H interrupt transfer = 03H
EP1_PACKET_SIZE,0x00, // 端点最大包的大小,= 0010H endpoint max packet size = 0010H
1 // 传输间隔时间,= 10ms Interval for polling endpoint for data transfers = 1ms
},
//endpoint descriptor, logic endpoint 1 OUT // 逻辑端点 1 输出
{
sizeof(USB_ENDPOINT_DESCRIPTOR), // 端点描述符长度,= 07H endpoint descriptor length = 07H
USB_ENDPOINT_DESCRIPTOR_TYPE, // 端点描述符类型,= 05H endpoint descriptor type = 05H
0x1, // 端点1 OUT endpoint 1 OUT
USB_ENDPOINT_TYPE_INTERRUPT, // 中断传输,= 03H interrupt transfer = 03H
EP1_PACKET_SIZE,0x00, // 端点最大包的大小,= 0010H endpoint max packet size = 0010H
1 // 传输间隔时间,= 10ms Interval for polling endpoint for data transfers = 1ms
},
//endpoint descriptor, logic endpoint 2 IN // 逻辑端点 2 输入
{
sizeof(USB_ENDPOINT_DESCRIPTOR), // 端点描述符长度,= 07H endpoint descriptor length = 07H
USB_ENDPOINT_DESCRIPTOR_TYPE, // 端点描述符类型,= 05H endpoint descriptor type = 05H
0x82, // 端点2 IN endpoint 2 IN
USB_ENDPOINT_TYPE_BULK, // 批量传输,= 02H bulk transfer = 02H
EP2_PACKET_SIZE,0x00, // 端点最大包的大小,= 0040H endpoint max packet size = 0040H
10 // 批量传输时该值无效 the value is invalid when bulk transfer
},
//endpoint descriptor, logic endpoint 2 OUT // 逻辑端点 2 输出
{
sizeof(USB_ENDPOINT_DESCRIPTOR), // 端点描述符长度,= 07H endpoint descriptor length = 07H
USB_ENDPOINT_DESCRIPTOR_TYPE, // 端点描述符类型,= 05H endpoint descriptor type = 05H
0x2, // 端点2 OUT endpoint 2 OUT
USB_ENDPOINT_TYPE_BULK, // 批量传输,= 02H bulk transfer = 02H
EP2_PACKET_SIZE,0x00, // 端点最大包的大小,= 0040H endpoint max packet size = 0040H
10 // 批量传输时该值无效 the value is invalid when bulk transfer
}
};
/*******************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -