USB定义的各种描述符有那些功能
2021-01-22
11876
9
在日常的工作生活中,我们对于USB的概念可能仅停留在U盘,U口,USB手机充电线这些日常所见的实物上。
但对于一个从事USB开发的程序员来说,对于USB描述符的认知就是迈向USB设备开发的第一步,也是很重要的一步。因为USB的描述符撑开了USB这一领域的一片蓝天,也是USB协议规范的基础。
那么USB描述符都有那些功能呢?
- 其实所有的描述符都是USB设备用来描述自己属性及用途的,所以必须在设备端实现对应的描述符,主机会在枚举此设备的时候根据设备实现的描述符去确定设备到底是一个什么样的设备、设备需要的总线资源、和设备的通讯方式等等。
- 每一个USB设备只有一个设备描述符,主要向主机说明设备类型、端点0最大包长、设备版本、配置数量等等。
- 每一个USB设备至少有一个或者多个配置描述符,但是主机同一时间只能选择某一种配置,标准配置描述符主要向主机描述当前配置下的设备属性、所需电流、支持的接口数、配置描述符集合长度等等。
- 主机在获取配置描述符集合的时候会先获取一次标准配置描述符,然后根据里面的配置描述符集合长度属性值获取配置描述符集合的所有描述符信息,配置描述符集合有标准配置描述符、接口描述符、端点描述符、HID描述符。
- 每一个USB配置下至少有一个或者多个接口描述符,接口描述符主要说明设备类型、此接口下使用的端点数(不包括0号号端点),一个接口就是实现一种功能,实现这种功能可能需要端点0就够了,可能还需要其它的端点配合。
- 每一个USB接口下至少有0个或者多个端点描述符,端点描述符用来描述符端点的各种属性。
- 端点是实现USB设备功能的物理缓冲区实体,USB主机和设备是通过端点进行数据交互的。
- 一个USB设备有一个或多个配置描述符。每个配置有一个或多个接口,每个接口有零个或多个端点。
- 字符串描述符就是用字符串描述一个设备的一些属性,描述的属性包括设备厂商名字、产品名字、产品序列号、各个配置名字、各个接口名字。
- HID描述符只有HID设备才会存在。
- HID设备至少有一个报告描述符。
- 报告描述符主要作用就是描述主机和HID设备交互的数据,向主机说明这些数据中哪些位是用来做什么用的。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936