USB 终结点及其管道

USB 设备具有用于数据传输的终结点。 在主机端,管道表示终结点。 本文区分这两个术语。

概要

  • 终结点是设备上的硬件;管道是主机端的软件。
  • 终结点尚未配置;管道已配置为用于传输
  • 主机向管道发送或接收数据。

USB 终结点

终结点是 USB 设备上的缓冲区。 终结点是一个术语,指的是硬件本身,与主机操作系统无关。 主机可以向该缓冲区或从该缓冲区发送和接收数据。 可将终结点分类为控制终结点和数据终结点。

每个 USB 设备必须在地址 0 上至少提供一个控制终结点,称为默认终结点或 Endpoint0。 此终结点是双向的。 也就是说,主机可以将数据发送到终结点,并在一次传输中接收数据。 控制传输的目的是使主机能够获取设备信息、配置设备或执行特定于设备的控制操作。

数据终结点是可选的,用于传输数据。 它们是单向的,具有类型(控制、中断、批量、时序)和其他属性。 所有这些属性都在终结点描述符中描述(请参阅标准 USB 描述符)。

在 USB 术语中,终结点及其数据传输的方向是基于主机来确定的。 因此,IN 始终指从设备传输到主机,OUT 始终指从主机传输到设备。 USB 设备还可以支持控制数据的双向传输。

设备上的终结点分为功能接口,一组接口构成设备配置。 有关详细信息,请参阅 USB 设备布局。

主机软件可以在配置设备之前或在选择备用设置期间查看终结点信息。 循环访问所有接口,然后循环访问设置的每个接口列表,并查看设置中每个终结点或整个终结点集的属性。 查看终结点信息不会影响设备的配置状态。

USB 管道

数据通过称为 管道的抽象在 USB 设备和 USB 主机之间传输。 管道纯粹是软件术语。 管道与设备上的终结点通信,该终结点具有地址。 管道的另一端始终是主机控制器。

配置设备时,通过选择一种配置和接口的替代设置来打开终结点的管道。 因此,它们成为 I/O操作的目标。 管道具有终结点的所有属性,但它处于活动状态,用于与主机通信。

未配置的终结点称为终结点,而配置的终结点称为管道。

usb 管道和终结点。