首页 文章

带报告ID的USB数据包长度

提问于
浏览
0

我问这个问题,因为USB HID文档对此并不十分明确 . 我的问题是关于全速USB HID设备及其各自的报告描述符 . 我有一个报告ID为2的设备 . 报告描述符中的报告计数设置为64.现在,我现在的理解是,传输USB数据包时报告计数前面是报告ID . 含义... USB数据包的大小将是报告计数中指定的大小加上报告ID的一个字节,总传输的总大小为65字节 . 我试过这个并且它正在工作 .

我的问题是,这是对USB规范的正确理解,还是我正在利用可以在以后通过Windows更新或Mac更新等修补的东西......?

根据USB HID规范, a USB transaction is limited to 64 bytes for high speed devices . 但是,这是过时的信息,因为高速设备每次传输可达到1024字节 . 现在指定全速设备每次传输最多64字节 . 它还指定了 Report Count refers to the amount of data fields in a report transfer . 它没有说 USB transaction ,只是 Report Transfer .

对于报告ID,USB HID规范说明, "Report ID items are used to indicate which data fields are represented in each report structure. A Report ID item tag assigns a 1-byte identification prefix to each report transfer."

这让我相信,尽管它表示全速设备限制为每个USB事务64字节,但该限制不考虑报告ID . 它是否正确?

1 回答

  • 0

    不,报告ID计为数据 . 使用报告ID,剩余的报告数据不得超过63个字节 .

    请注意,此限制仅在全速模式下由硬件强制执行 . 高速中断 endpoints 每次传输最多可达1024个字节 .

    目前的HID规范版本1.11是从2001年开始的,因此比USB 2.0高速要早一点 . 中断传输超过64字节,不可用 .

    一旦连接到旧的USB 1.1(全速)集线器,您可能需要检查设备的行为 .

相关问题