Wordsworth 发表于 2025-5-4 07:17

USB HID传输间隔太大是哪里限制的?

用默认配置做键盘模拟,感觉按键延迟明显,是不是上位机限速?

Clyde011 发表于 2025-5-4 07:20

你有没有调过Endpoint大小?

公羊子丹 发表于 2025-5-4 07:20

HID默认就是慢,Interval值固定。

周半梅 发表于 2025-5-4 07:21

Win系统默认会限速传输,没办法。

帛灿灿 发表于 2025-5-4 07:22

是不是用了低速模式?

童雨竹 发表于 2025-5-4 07:23

描述符里设置的polling interval看看。

万图 发表于 2025-5-4 07:24

建议用自定义HID协议会快点。

Wordsworth 发表于 2025-5-4 07:25

实测1ms周期也常常有抖动。

Bblythe 发表于 2025-5-4 07:26

USB总线空闲时延迟会低些。

Pulitzer 发表于 2025-5-4 07:26

L072核心速度不高,响应慢。

Uriah 发表于 2025-5-4 07:27

用logic analyzer看传输间隔最清楚。

暖了夏天蓝了海 发表于 2025-5-14 14:55

主机轮询机制,HID设备采用主机轮询方式通信,主机按固定间隔查询设备,此间隔由HID类规范及主机驱动决定,设备无法主动调整。

别乱了阵脚 发表于 2025-5-14 15:30

HID协议对传输间隔有默认限制,如HID报告间隔通常为1ms至几十ms,具体间隔由主机端HID驱动设置,设备端仅能响应查询

夜阑风雨 发表于 2025-5-14 16:00

在USB描述符中,端点描述符的bInterval字段定义了中断端点的轮询间隔,该值影响主机查询频率。例如,bInterval设为10ms时,主机每10ms查询一次设备

淡漠安然 发表于 2025-5-14 17:00

最大包长度限制,HID设备单包最大传输64字节,若需传输大数据量,需分多包传输,间接影响传输效率,但不会直接导致间隔增大。

光辉梦境 发表于 2025-5-14 18:10

STM32L0作为低功耗MCU,若处理HID中断或数据拷贝耗时过长,可能无法及时响应主机查询,导致主机端感知的传输间隔增大

三生万物 发表于 2025-5-14 19:00

USB模块的中断优先级、缓冲区配置及双缓冲机制均可能影响传输效率。例如,未启用双缓冲时,数据处理不及时会导致主机重试,增加延迟。

冰春彩落下 发表于 2025-5-14 20:30

保端点描述符中wMaxPacketSize设为64字节(HID最大值),避免因包大小不足导致多次传输。

远山寻你 发表于 2025-5-14 20:57

启用双缓冲机制,通过交替使用两个缓冲区,确保USB模块与CPU可并行处理数据,减少数据拷贝时间对传输的影响

暖了夏天蓝了海 发表于 2025-5-14 22:48

修改bInterval值以缩短轮询间隔(需符合HID规范及主机兼容性)。例如,将bInterval设为1ms可提升响应速度,但可能增加CPU负载
页: [1]
查看完整版本: USB HID传输间隔太大是哪里限制的?