我问这个问题,因为USB HID文档对此并不十分明确。我的问题是关于全速USB HID设备及其各自的报告描述符。我有一个报告ID为2的设备。报告描述符中的报告计数设置为64.现在,我现在的理解是,传输USB数据包时报告计数前面是报告ID。含义... USB数据包的大小将是报告计数中指定的大小加上报告ID的一个字节,总传输的总大小为65字节。我试过这个并且它正在工作。
我的问题是,这是对USB规范的正确理解,还是我正在利用可以在以后通过Windows更新或Mac更新等修补的内容......?
根据USB HID规范,高速设备的USB事务限制为64字节。但是,这是过时的信息,因为高速设备每次传输可达到1024字节。现在指定全速设备每次传输最多64字节。它还指定报表计数是指报表传输中的数据字段数量。它没有说 USB交易,只是报告传输。
对于报告ID,USB HID规范声明,“报告ID项目用于指示在每个报告结构中表示哪些数据字段。报告ID项目标记为每个报告传输分配1字节标识前缀。“
这让我相信,尽管它表示全速设备限制为每个USB事务64字节,但该限制不考虑报告ID。这是对的吗?
答案 0 :(得分:0)
不,报告ID计为数据。使用报告ID,剩余的报告数据不得超过63个字节。
请注意,此限制仅由全速模式下的硬件强制执行。 高速中断端点每次传输最多可达1024个字节。
当前的HID规范版本1.11是从2001开始的,因此在USB 2.0高速之前相当多。中断传输超过64字节(如果不可用)。
您可能需要检查设备连接到旧USB 1.1(全速)集线器后的行为。