USB 设备布局

通用串行总线(USB)设备通过配置、接口、备用设置和终结点定义其功能和功能。 本文简要概述了这些概念。

USB 配置定义设备的功能和功能,主要是其电源功能和接口。 设备可以有多个配置,但一次只有一个配置处于活动状态。 未由 USB 驱动程序堆栈选择活动配置,但可能由应用程序、驱动程序、设备驱动程序启动。 设备驱动程序选择活动配置。

配置可以有一个或多个 用于定义设备功能的 USB 接口 。 通常,函数和接口之间存在一对一关联。 但是,某些设备公开多个与一个函数相关的接口。 在这种情况下,设备可以具有接口关联描述符(IAD)。 IAD 将属于特定函数的接口组合在一起。

每个接口都包含一个或多个 终结点,这些终结点用于向/从设备传输数据。 此外,接口还包含 用于定义与接口关联的函数的带宽要求的备用设置 。 总之,一组终结点构成接口,一组接口构成设备中的配置。

那么,选择活动配置意味着什么? 在设备初始化期间,USB 设备的设备驱动程序必须选择配置、该配置中的一个或多个接口以及每个接口的备用设置。 大多数 USB 设备不提供多个接口或多个备用设置。 例如,OSR USB FX2 学习工具包设备有一个接口,其中包含一个备用设置和三个终结点。 有关学习工具包的详细信息,请参阅 OSR Online

单接口设备

此图显示了具有单个接口的设备配置:

单个接口设备的 USB 设备布局示意图。

在此示例中,关系图显示终结点 0,称为 默认终结点。 所有 USB 设备都必须具有用于控制传输的默认终结点(请参阅 USB 控制传输)。 配置 0 有一个接口:具有一个备用设置的接口 0。 备用设置 0 使用接口中的所有三个终结点。

多接口设备

对于多功能设备,设备具有多个接口。 若要使用特定函数或接口,客户端驱动程序选择接口和关联的备用设置。 请考虑使用多功能 USB 设备,例如网络摄像头。 设备具有两个功能:视频捕获(相机)和音频输入(麦克风)。 设备在流式传输视频的视频接口中定义终结点。 设备在单独的接口中具有另一个终结点,该接口通过麦克风获取音频输入。 设备的配置包括这两个接口。

此图显示了网络摄像头设备的配置:

多接口设备的设备布局示意图。

在此示例中,关系图显示了默认终结点。 配置 0 有两个接口:接口 0 和接口 1。 接口 0 有三个备用设置。 在任何给定时间,只有一个备用设置处于活动状态。 请注意,备用设置 0 不使用终结点,而备用设置 1 和 2 使用终结点 1。 通常,摄像机使用 时空终结点 进行流式处理。 对于该类型的终结点,当终结点正在使用时,带宽将保留在总线上。 当相机未流式传输视频时,客户端驱动程序可以选择备用设置 0 以节省带宽。 当网络摄像头流式传输视频时,客户端驱动程序可以切换到备用设置 1 或备用设置 2,该设置提供提高质量级别并消耗增加的总线带宽。 接口 1 有两个备用设置。 与接口 0 类似,备用设置 0 不使用终结点。 备用设置 1 定义为使用 Endpoint 4。

不能在配置中的两个接口之间共享终结点。 设备使用终结点地址来确定数据传输或终结点操作的目标终结点,例如管道重置。 所有这些操作都由主机启动。

开始使用设备之前,请获取有关设备布局的信息。 USBView 是一个应用程序,可用于浏览连接到它们的所有 USB 控制器和 USB 设备。 对于每个连接的设备,可以查看设备、配置、接口和终结点描述符,了解设备的功能。

接下来,请参阅 标准 USB 描述符