Descriptor描述符解释

 

  在标准的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; //可能的配置数量

  }

  

  • Descriptor描述符解释已关闭评论
    A+
发布日期:2019年07月14日  所属分类:电子百科