java endpoint作用_多个控制 endpoints (非EP0)的用途是什么?

我在OSDev wiki上了解到Endpoint 0是默认的控制管道,允许双向控制传输 . 这用于设备配置,例如检索设备描述符 . USB 2.0 spec在第5.5节“控制转移”中解释了这一点 .

还有可用的 endpoints 数量有限(2个用于低速,15个用于全速和高速设备) . 在USB 2.0规范的某处,我已经读过必须至少有一个控制管道 . 这意味着可能存在多个控制 endpoints ,但它的用途是什么?您是否知道任何特定的USB设备或具有EP配置为控制管道的类?

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

特定USB设备可允许使用附加消息管道来传输特定于设备的控制信息 . 这些管道使用与默认管道相同的通信协议,但传输的信息特定于USB设备,并且未通过USB规范标准化 .

如果我理解正确,这意味着非EP0不能用于配置设备(例如,标准请求,如 GET_DESCRIPTOR ) . 但是设置/数据/状态阶段似乎仍然可用("[..] use the same communications protocol [..]") . 它是否正确?或者是否禁止非EP0使用标准/类别请求?

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值