?? usb_descriptor.h
字號:
#ifndef _H_USB_DESCRIPTOR_
#define _H_USB_DESCRIPTOR_
/*USB 各種描述定義頭文件*/
/*USB2.0 設備描述符 */
const UINT8 Device_Descriptor[18] =
{
0x12, //設備描述符的長度:18字節
0x01, //設備描述符類型
0x00,0x02, //符合USB2.0規范
0x00, //群組碼
0x00, //設備次群組
0x00, //設備協議(0表示無群組特定協議)
0x40, //對高速USB2.0來說的最大封包大小
0x25,0x04, //制造商ID=0X0425
0x0e,0x05, //產品號
0x03,0x00, //設備發行號
0x01, //制造商的字符串描述符索引
0x02, //產品的字符串描述符索引
0x00, //設備序號的字符串描述符索引
0x01 //配置數目為:1
};
/*設備匹配描述符*/
const UINT8 Device_Qualifier[10] = {
0x0a, //設備描述符的長度:10字節
0x06, //設備描述符類型
0x00,0x02, //符合USB2.0規范
0xff, //自定義的類型,不是標準類型
0x02, //設備次群組
0xff, //設備協議
0x40, //對高速USB2.0來說的最大封包大小
0x01, //配置數目為1
0x00 //保留
};
/*其它配置描述符*/
const UINT8 Other_Speed_Descriptor[] = {
0x09, //設備描述符的長度
0x07, //設備描述符類型
0x27,0x00, //配置描述符的總長度
};
/*高速批傳輸方式的標準配置描述符*/
const UINT8 Configuration_DescriptorHS[32] = {
0x09, //配置描述符的長度:9字節
0x02, //配置描述符類型
0x20,0x00, //描述符的總長度,包括接口和端點
0x01, //用來配置的接口的數目,至少一個數據接口
0x01, //配置值
0x00, //配置的字符串描述符索引
0x80, //配置的屬性(具有總線供電、自供電及過程喚醒的特性)
// bit 7-總線供電
// bit 6-自供電
// bit 5-遠程喚醒
// bit 4-0-reserved
0x32, //最大電流以2mA為單位 該例中:50*2mA=100mA
//標準接口描述符--3個端點(包括默認的控制端點、批量IN和OUT端點)
//const muint8 interface_descriptor[9] = {
0x09, //接口描述符長度:9
0x04, //接口描述類型
0x00, //接口描述符以0為基值
0x00, //交互設置值為0
0x02, //端點數目設置為:2
0xff, //接口群組,自定義
0x02, //
0xff, //接口群組,自定義
0x00, //接口字符串描述符的索引
//批量IN端點描述符
//const muint8 endpoint_descriptor1[7] = {
0x07, //端點描述符長度
0x05, //端點描述符類型
0x81, //端點地址(0x80=IN,0=OUT),端點地址為1且為IN端點
// bit 3..0 端點數目
// bit 6..4 為0
// bit 7 0-OUT, 1-IN
0x02, //傳輸類型為BULK
0x00,0x02, //最大封包大小的設置:64字節
0x00, //輪詢間隔,以ms為單位。批量傳輸是一種非周期的特性,因此不需設置輪詢間隔
//批量OUT端點描述符
//const muint8 endpoint_descriptor2[7] = {
0x07, //端點描述符長度
0x05, //端點描述符類型
0x01, //端點地址(0x80=IN,0=OUT),端點地址為1且為OUT端點
// bit 3..0 端點數目
// bit 6..4 為0
// bit 7 0-OUT, 1-IN
0x02, //傳輸類型為BULK
0x00,0x02, //最大封包大小的設置:64字節
0x00, //輪詢間隔,以ms為單位。批量傳輸是一種非周期的特性,因此不需設置輪詢間隔
};
//全速批傳輸方式的標準配置描述符
const UINT8 Configuration_DescriptorFS[32] = {
0x09, //配置描述符的長度:9字節
0x02, //配置描述符類型
0x20,0x00, //描述符的總長度,包括接口和端點
0x01, //用來配置的接口的數目,至少一個數據接口
0x01, //配置值
0x00, //配置的字符串描述符索引
0x80, //配置的屬性(具有總線供電、自供電及過程喚醒的特性)
// bit 7-總線供電
// bit 6-自供電
// bit 5-遠程喚醒
// bit 4-0-reserved
0x32, //最大電流以2mA為單位 該例中:50*2mA=100mA
//標準接口描述符--用于大容量存儲器的數據接口 3個端點(包括默認的控制端點、批量IN和OUT端點)
// const muint8 interface_descriptor[9] = {
0x09, //接口描述符長度:9
0x04, //接口描述類型
0x00, //接口描述符以0為基值
0x00, //交互設置值為0
0x02, //端點數目設置為:2
0xff, //接口群組,自定義
0x02, //
0xff, //接口協議:自定義
0x00, //接口字符串描述符的索引
//批量IN端點描述符
// const muint8 endpoint_descriptor1[7] = {
0x07, //端點描述符長度
0x05, //端點描述符類型
0x81, //端點地址(0x80=IN,0=OUT),端點地址為1且為IN端點
// bit 3..0 端點數目
// bit 6..4 為0
// bit 7 0-OUT, 1-IN
0x02, //批量傳輸
0x40,0x00, //最大封包大小的設置:64字節
0x00, //輪詢間隔,以ms為單位。批量傳輸是一種非周期的特性,因此不需設置輪詢間隔
//批量OUT端點描述符
//const muint8 endpoint_descriptor2[7] = {
0x07, //端點描述符長度
0x05, //端點描述符類型
0x01, //端點地址(0x80=IN,0=OUT),端點地址為1且為OUT端點
// bit 3..0 端點數目
// bit 6..4 為0
// bit 7 0-OUT, 1-IN
0x02, //批量傳輸
0x40,0x00, //最大封包大小的設置:64字節
0x00, //輪詢間隔,以ms為單位。批量傳輸是一種非周期的特性,因此不需設置輪詢間隔
};
//字符串描述0
const UINT8 string_descriptor0[4] = {
0x04, //字符串描述符0長度
0x03, //字符串類型
0x09,0x04, //wLANDID0 - English (American)
};
//字符串描述1
const UINT8 string_descriptor1[] = {
18, //字符串描述符1長度
0x03, //字符串類型
'M',0x00, //"M"
'o',0x00, //"o"
't',0x00, //"t"
'o',0x00, //"o"
'r',0x00, //"r"
'o',0x00, //"o"
'l',0x00, //"l"
'a',0x00 //"a"
};
//字符串描述2
const UINT8 string_descriptor2[] = {
20, //字符串描述符2長度
0x03, //字符串類型
'S',0x00,
'I',0x00,
'C',0x00,
'M',0x00,
' ',0x00,
'S',0x00,
'U',0x00,
'D',0x00,
'A',0x00,
};
/*描述符表*/
/*配置描述符表*/
const UINT8* Configuration_Table[][2] =
{
{Configuration_DescriptorHS,Configuration_DescriptorHS},
{Configuration_DescriptorFS,Configuration_DescriptorFS}
};
/*接口描述符表*/
const UINT8* Interface_Table[1] =
{
&Configuration_DescriptorHS[9] // Interface #1
};
/*端點描述符表*/
const UINT8* Endpoint_Table[][2] = {
{&Configuration_DescriptorHS[18],&Configuration_DescriptorHS[25]},
{&Configuration_DescriptorFS[18],&Configuration_DescriptorFS[25]} // Endpoint #1
};
/*字符串描述符表*/
const UINT8* String_Table[4] = {
string_descriptor0, // 字符串0
string_descriptor1, // 字符串1
string_descriptor2, // 字符串2
string_descriptor1
};
#endif _H_USB_DESCRIPTOR_
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -