DSP

USB 枚举和设备描述符之学习笔记

2019-07-13 11:13发布

无论何时,当USB设备连接到USB总线时, USB子系统都会进行枚举 (Enumeration) 操作。 USB设备被分配到一个唯一的设备编号值 ( 1 ~ 127 ) , 然后设备描述符被读出。   USB设备描述符是一个包含有设备信息和属性的数据结构。 USB规范定义描述符的层次结构如下: includegraphics [width=linewidth]{descr} 标准描述符:
  • 设备描述符描述了一个USB设备的通用信息。它包含了全局适用于该设备的信息和该设备的全部配置(Configuration)。每个USB设备只有唯一的设备描述符。
  • 配置描述符给出一个特定设备配置的信息。 每个USB设备含有一个或多个配置描述符。
  • 每个配置含有一个或多个接口(Interface)。
  • 每个接口含有一个或多个端点( Endpoint)。
  • 接口描述符定义了一个给定配置内的特定接口。
  • 端点描述符包含了带宽需求信息。主设备需要该信息来决定每个端点的带宽需求。一个端点表示USB设备的一个逻辑数据源或Sink。
  • 端点0用于标准控制传输, 且没有端点描述符。 USB 规范也使用术语管道 (Pipe) 表示端点。
  • 字符串描述符是可选的,其提供Unicode格式可读的额外信息。可以用于表示供应商名和设备名,以及序列号。
例如,一个带有microphone的可录像照相机可能具有如下可选设定。通过标准控制传输 set_interface 可以选择不同的设定,以次调整由总线分配的带宽。
  1. Camera activated
  2. Microphone activated
  3. Camera and microphone activated
  Device Class 把设备或接口以组的形式分类,然后定义同一个组的特性,这样可以使管理多个实现的主机控制软件基于给定的组进行开发。   Device Class Example Device Display Monitor Communication Modem Audio Speakers Mass storage Hard drive Human interface Data glove   Human Interface Devices (HID) HID 类主要由通过人控制计算机系统操作的设备组成。 典型地, HID 类保含如下设备:
  • 键盘和触摸设备
  • 前端控制面板
  • 控制按钮,例如电话机,远程控制,游戏模拟等
  原:http://blog.csdn.net/cfy_phonex/article/details/22155311