【问题标题】:How is it possible to send HID packets longer than 64 bytes?如何发送超过 64 字节的 HID 数据包?
【发布时间】:2021-04-06 23:21:16
【问题描述】:

在研究当前项目的 HID 规范时,我偶然发现了以下短语:

使用 USB 术语,设备可以在每个 USB 帧(1 毫秒)发送或接收事务。一个事务可能由多个数据包(令牌、数据、握手)组成,但大小限制为低速设备的 8 个字节和高速设备的 64 个字节。

这让我相信 HID 数据包的最大大小是 64 字节。

但是,在检查其他一些设备的报告描述符时,我发现正在使用超过 500 字节的数据包。这怎么可能?这些设备是否违反了 USB 规范?如果是这样,这对跨不同平台的兼容性意味着什么?

【问题讨论】:

    标签: usb microcontroller packet hid


    【解决方案1】:

    据我所知,最新的 HID 规范比最近的 USB 规范要早得多; IIRC 的最新版本是 1.11,可以追溯到 2001 年。

    现在有 low-speedfull-speedhigh-speed USB,我认为 HID 规范从未改变以反映这一点。

    high-speed 的最大数据包大小对于 控制传输 是 64 字节,对于 中断传输同步传输 是 1024 字节,以及 512 批量传输的字节数。请参阅USB in a NutShell,我认为它是最新的。当然还有其他来源。

    我不完全确定这一切是否也适用于 HID 设备,因为 HID 规范没有改变,但我假设现在存在使用更大数据包的高速 HID 设备,如较新的 USB 规范中所述.

    【讨论】:

    • 啊,有道理。为什么规格表没有更新超出了我的范围。谢谢。
    • 不客气。不要忘记接受答案(如果你接受的话),这样问题就不会保持开放。
    猜你喜欢
    • 2017-10-09
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    相关资源
    最近更新 更多