Usb 多个控制端点(非EP0)的用途是什么?

Usb 多个控制端点(非EP0)的用途是什么?,usb,Usb,我了解到端点0是默认的控制管道,允许双向控制传输。这用于设备配置,例如检索设备描述符。第5.5节“控制传输”中对此进行了更深入的解释 可用的端点数量也有限(2个用于低速设备,15个用于全高速设备)。在USB2.0规范的某个地方,我读到至少有一个控制管道。这意味着可能有多个控制端点,但它的用途是什么?您知道有任何特定的USB设备或类将EP配置为控制管道吗 后来,我在规范第10.1.2节“控制机制”中发现了这一点: 特定的USB设备可能允许使用额外的消息管道 传输特定于设备的控制信息。这些管道使用

我了解到端点0是默认的控制管道,允许双向控制传输。这用于设备配置,例如检索设备描述符。第5.5节“控制传输”中对此进行了更深入的解释

可用的端点数量也有限(2个用于低速设备,15个用于全高速设备)。在USB2.0规范的某个地方,我读到至少有一个控制管道。这意味着可能有多个控制端点,但它的用途是什么?您知道有任何特定的USB设备或类将EP配置为控制管道吗


后来,我在规范第10.1.2节“控制机制”中发现了这一点:

特定的USB设备可能允许使用额外的消息管道 传输特定于设备的控制信息。这些管道使用 与默认管道相同的通信协议,但信息 传输的是特定于USB设备的,不是标准化的 USB规范

如果我理解正确,这意味着非EP0不能用于配置设备(例如,标准请求,如
GET\u DESCRIPTOR
)。但是设置/数据/状态阶段似乎仍然可用(“[…]使用相同的通信协议[…]”)。这是正确的吗?或者非EP0是否禁止使用标准/类请求


背景:在QEMU中使用模拟USB设备时,出现了对USB监视器进行调试的需求。在检查QEMU核心USB代码时,我注意到它只处理EP0的控制命令。其他端点将被视为数据。有些虚拟设备(主机libusb)总是拒绝其他端点的控制传输。因此,问题是这是否是正确的行为(如果有效,是否存在真正实现此功能的设备)。

据我所知,非EP0控制端点没有用处。我已经开发了几种产品,它们使用端点0上的自定义控件传输作为发送特定于设备的请求的主要方式,并且在这样做时没有遇到任何基本问题


如果您确实做了一个非EP0控制端点,我认为您的理解是正确的;您不能将其用于标准请求,但可以将其用于自定义请求,并且交易顺序与EP0上的相同。

谢谢您的回答。我知道特定于供应商的控制权转让也适用于EP0。您知道在EP0以外的端点具有控制端点的设备的示例吗?我已经在问题中添加了一些背景信息,也许我的担忧会变得更清楚。