USB 终结点及其管道
USB 设备具有用于数据传输的终结点。 在主机端,终结点由管道表示。 本主题区分这两个术语。
总结
- 终结点是设备上的硬件;pipe 是主机端的软件。
- 未配置终结点;管道配置为传输
- 主机向管道发送或接收数据。
USB 终结点
终结点是 USB 设备上的缓冲区。 终结点是一个与硬件本身相关的术语,独立于主机操作系统。 主机可以向该缓冲区发送和接收数据。 终结点可分为控制和数据终结点。
每个 USB 设备必须在地址 0 处提供至少一个控制终结点,称为默认终结点或 Endpoint0。 此终结点是双向的。 也就是说,主机可以将数据发送到终结点,并在一次传输中从终结点接收数据。 控制传输的目的是使主机能够获取设备信息、配置设备或执行特定于设备的控制操作。
数据终结点是可选的,用于传输数据。 它们是单向的,具有类型 (控制、中断、批量、常时等量) 和其他属性。 所有这些属性均在终结点描述符中介绍 (请参阅标准 USB 描述符) 。
在 USB 术语中,终结点的方向 ( 和传输) 基于主机。 因此,IN 始终是指从设备传输到主机,OUT 始终是指从主机传输到设备。 USB 设备还可以支持控制数据的双向传输。
设备上的终结点分组为功能接口,一组接口构成设备配置。 有关详细信息,请参阅 USB 设备布局。
主机软件可以在配置设备之前或在选择备用设置期间查看终结点信息。 你将循环访问所有接口,然后循环访问设置的每个接口列表,并查看设置中每个终结点或整个终结点集的属性。 查看终结点信息不会影响设备的配置状态。
USB 管道
数据通过称为 管道的抽象在 USB 设备和 USB 主机之间传输。 管道纯粹是一个软件术语。 管道与设备上的终结点通信,并且该终结点具有地址。 管道的另一端始终是主控制器。
通过选择配置和接口的备用设置来配置设备时,将打开终结点的管道。 因此,它们成为 I/O 操作的目标。 管道具有终结点的所有属性,但它处于活动状态,并用于与主机通信。
未配置的终结点称为终结点,而配置的终结点称为管道。