在规范的USB恳求指令中,常常会看到Descriptor,这是什么来的呢?
Descriptor即描绘符,是一个完好的数据结构,能够经过C言语等编程完成,并存储在USB设备中,用于描绘一个USB设备的一切特点,USB主机是经过一系列指令来要求设备发送这些信息的。它的效果便是经过如问答节中的指令***作来给主机传递信息,然后让主机知道设备具有什么功用、归于哪一类设备、要占用多少带宽、运用哪类传输方法及数据量的巨细,只要主机确认了这些信息之后,设备才干真实开端作业,所以描绘符也是十分重要的部分,要好好把握。规范的描绘符有5种,USB为这些描绘符界说了编号:
1——设备描绘符
2——装备描绘符
3——字符描绘符
4——接口描绘符
5——端点描绘符
上面的描绘符之间有必定的联系,一个设备只要一个设备描绘符,而一个设备描绘符能够包括多个装备描绘符,而一个装备描绘符能够包括多个接口描绘符,一个接口运用了几个端点,就有几个端点描绘符。这间描绘符是用必定的字段构成的,别离如下阐明:
1、设备描绘符
struct _DEVICE_DEscriptOR_STRUCT
{
BYTE bLength; //设备描绘符的字节数巨细,为0x12
BYTE bDescriptorType; //描绘符类型编号,为0x01
WORD bcdUSB; //USB版本号
BYTE bDeviceClass; //USB分配的设备类代码,0x01~0xfe为规范设备类,0xff为厂商自界说类型
//0x00不是在设备描绘符中界说的,如HID
BYTE bDeviceSubClass; //usb分配的子类代码,同上,值由USB规则和分配的
BYTE bDeviceProtocl; //USB分配的设备协议代码,同上
BYTE bMaxPacketSize0; //端点0的最大包的巨细
WORD idVendor; //厂商编号
WORD idProduct; //产品编号
WORD bcdDevice; //设备出厂编号
BYTE iManufacturer; //描绘厂商字符串的索引
BYTE iProduct; //描绘产品字符串的索引
BYTE iSerialNumber; //描绘设备序列号字符串的索引
BYTE bNumConfiguraTIon; //或许的装备数量
}