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 定义为使用终结点 1。

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

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

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