更快的USB HID输出

时间:2012-01-07 22:39:40

标签: embedded usb hid

我正试图加速一个相当缓慢的引导加载程序。目前我正在单个USB HID输出端点上发送数据,因为它是一个低速设备,我显然每10 ms间隔限制一个8字节数据包,速度高达800字节/秒。

是否有可能以某种方式提高报告频率?或者在单个界面中使用多个输出端点或作为复合设备的一部分使用?或者可能滥用控制端点来发送其他数据?

我认为更好的压缩总是一种替代方案,但这是一个收益递减的领域,重新设计硬件以允许全速USB不是一种选择。

对于记录,我对仅使用Windows的解决方案感到满意。

4 个答案:

答案 0 :(得分:2)

  

或者可能滥用控制端点发送其他数据?

您可以使用“供应商特定请求”。 TI TUSB3410芯片以AFAIK的方式工作。许多USB堆栈已经为它们提供了挂钩。

但是,这需要主机端的驱动程序或libusb。

答案 1 :(得分:1)

谁说你每10毫秒限制一个8字节的数据包?我不知道我头顶的确切数字,但我知道你可以发送比这更大的数据包。我做了一个HID设备,并使用64字节数据包。我想我可以做得更大,但这个限制可能是硬件特定的。你用的是什么硬件?

另外,您咨询了USB in a NutShell吗?

答案 2 :(得分:0)

对于低速设备,实际限制为每10ms 8个字节,对于高速设备,每个基于中断的端点,每1ms有64个字节。

因此,如果硬件支持,首先要尝试切换到高速模式。列表中的下一件事是使用多个端点。如果你真的想要获得最高的传输速率,HID类是一个糟糕的选择。

答案 3 :(得分:0)

我能够通过在控制端点上使用SET_REPORT请求来加速上传数量级,而不是声明一个单独的中断输出端点。这样,您就可以获得所有可用于控制传输的带宽。

另外,将较大的报表拆分为多个段有助于减少所需的SETUP数据包数量。