无论何时,当USB设备连接到USB总线时, USB子系统都会进行枚举 (Enumeration) 操作。
USB设备被分配到一个唯一的设备编号值 ( 1 ~ 127 ) , 然后设备描述符被读出。
USB设备描述符是一个包含有设备信息和属性的数据结构。
USB规范定义描述符的层次结构如下:
|
标准描述符:
- 设备描述符描述了一个USB设备的通用信息。它包含了全局适用于该设备的信息和该设备的全部配置(Configuration)。每个USB设备只有唯一的设备描述符。
- 配置描述符给出一个特定设备配置的信息。 每个USB设备含有一个或多个配置描述符。
- 每个配置含有一个或多个接口(Interface)。
- 每个接口含有一个或多个端点( Endpoint)。
- 接口描述符定义了一个给定配置内的特定接口。
- 端点描述符包含了带宽需求信息。主设备需要该信息来决定每个端点的带宽需求。一个端点表示USB设备的一个逻辑数据源或Sink。
- 端点0用于标准控制传输, 且没有端点描述符。 USB 规范也使用术语管道 (Pipe) 表示端点。
- 字符串描述符是可选的,其提供Unicode格式可读的额外信息。可以用于表示供应商名和设备名,以及序列号。
例如,一个带有microphone的可录像照相机可能具有如下可选设定。通过标准控制传输 set_interface 可以选择不同的设定,以次调整由总线分配的带宽。
- Camera activated
- Microphone activated
- 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