六、标准的USB描述符

  USB 设备第一次连接到主机上时 , 要接收主机的枚举( Enumeration)和配置( Configuration), 目的就是让主机知道该设备具有什么功能、是哪一类的USB设备、需要占用多少USB的资源、使用了哪些传输方式以及传输的数据量多大等等。

(1)、描述符

  描述符(Descriptor), 是一个完整的数据结构,可以通过C语言等编程实现,并存储在USB设备中, 用于描述一个USB设备的所有属性。

描述符类型:

设备描述符(Device Descriptor ) ;

配置描述符( Configuration Descriptor) ;

接口描述符( Interface Descriptor ) ;

端点描述符( Endpoint Descriptor ) ;

字符串描述符( String Descriptor , 可选)。

(2)、描述符之间的关系

设备描述符是最高级的描述符, 而端点描述符是最低级的描述符, 如下图所示。每一个设备只有一个设备描述符, 但设备描述符可以包含多个配置描述符; 而一个配置描述符又可包含多个接口描 述符; 一个接口使用了几个端点, 就有几个端点描述符。字符串描述符是可选的。

六、标准的USB描述符_第1张图片

每一个描述符都是一系列的字段(Field, 为了与组成包的域相区别, 这里叫做字段)所组成的, 每个字段都是一连串二进制数。其中设备描述符的bNumConfigurations 字段可设定配置描述符的个数; 配置描述符的bNumInterface字段用于设定接口描述符的个数; 而接口描述符的 bNumEndpoints 则表示了该接口所用到的端点数量, 也就是端点描述符的数量。

如有错误,请及时提出。万分感谢!

                  上一篇                                                                                 下一篇

你可能感兴趣的:(USB入门教程)