USB 枚举和设备描述符之学习笔记
2014-03-26 14:00
204 查看
无论何时,当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
把设备或接口以组的形式分类,然后定义同一个组的特性,这样可以使管理多个实现的主机控制软件基于给定的组进行开发。
Human Interface Devices (HID)
HID 类主要由通过人控制计算机系统操作的设备组成。 典型地, HID 类保含如下设备:
键盘和触摸设备
前端控制面板
控制按钮,例如电话机,远程控制,游戏模拟等
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 |
HID 类主要由通过人控制计算机系统操作的设备组成。 典型地, HID 类保含如下设备:
键盘和触摸设备
前端控制面板
控制按钮,例如电话机,远程控制,游戏模拟等
相关文章推荐
- DirectSound学习笔记之 枚举音频设备
- USB学习系列之三——USB设备的枚举
- 基于STM32的USB枚举过程学习笔记(三)
- 基于STM32的USB枚举过程学习笔记(五)
- LINUX内核USB子系统学习笔记之初识USB (带枚举usb数据包)
- USB驱动程序之USB设备驱动程序2鼠标用作键盘学习笔记
- 【安全牛学习笔记】使用 USB 设备来安装系统
- 基于STM32的USB枚举过程学习笔记(四)
- 基于STM32的USB枚举过程学习笔记(三)
- 基于STM32的USB枚举过程学习笔记(二)
- 基于STM32的USB枚举过程学习笔记(一)
- 基于STM32的USB程序开发笔记(四)——USB设备的枚举(上)
- USB驱动程序之USB设备驱动程序2鼠标用作键盘学习笔记
- USB1.1协议学习经验之4---- USB设备的描述表
- Linux设备模型学习笔记——结构体描述
- 基于STM32的USB枚举过程学习笔记
- 学习笔记 --- LINUX USB设备驱动的编写
- 基于STM32的USB枚举过程学习笔记
- 基于STM32的USB枚举过程学习笔记(二)
- EZ-USB 68013学习笔记(一)——USB协议之描述符