首页 文章

如何在非零 endpoints (libusb)上发送USB控制事务?

提问于
浏览
2

我正在编写代码来了解飞思卡尔Kinetis微控制器上的USB外设 . 我已经设法通过Linux主机上的枚举,我可以使用EP0上的供应商自定义代码发送和接收数据包,与libusb测试程序进行交互 .

看起来我可以在微控制器上配置额外的控制 endpoints (非零 endpoints 号),但我没有看到让libusb发送/接收控制传输到这些 endpoints 的方法 . ( libusb_control_transfer 不需要 endpoints 号,但 libusb_bulk_transferlibusb_interrupt_transfer 确实如此 . )

非零控制 endpoints 是如此不常见或不必要,以至于不值得为它们烦恼吗?有没有办法让libusb执行控制事务到非零 endpoints ?

1 回答

  • 2

    有没有办法让libusb执行控制事务到非零 endpoints ?

    您可以尝试修改异步I / O API的 libusb_transfer 结构中的 endpoint 字段 .

    但如果您的微控制器实际上可以支持非零控制 endpoints ,那将会让我感到惊讶 - 不是那么多 .

    实际上,您宁愿使用中断或批量 endpoints . 两者都具有较少的开销 - 允许通过批量传输获得更高的吞吐量(参见例如USB 2.0 SPEC表5-2与表5-9) .

相关问题