Shoteen 发表于 2025-6-3 13:56:18

USB-HID数据请求间隔不一致问题



使用官方给的USB-HID的范例,将程序烧录到STC32G12K128中后,
使用USB协议分析仪采样IN包的请求间隔,发现枚举过程给的是10ms中断请求,
但是实际测试下来请求间隔是8ms,有没有大佬知道这是为啥?

这个是例程中的中断请求间隔

这个是枚举过程中的数据

枚举完成后,每一次IN请求间隔都是8ms



ercircle 发表于 2025-6-3 14:08:42

设置的是间隔最大值10ms


Shoteen 发表于 2025-6-3 14:16:06

ercircle 发表于 2025-6-3 14:08
设置的是间隔最大值10ms

不是吧,这个指的是前面的FFH这个数据吧,中断传输允许的最大间隔是255ms

ercircle 发表于 2025-6-3 14:27:49

Shoteen 发表于 2025-6-3 14:16
不是吧,这个指的是前面的FFH这个数据吧,中断传输允许的最大间隔是255ms


这里要这么理解的话,可以看下5.7.4 Interrupt Transfer Bus Access Constraints章节描述...




机器翻译:

USB系统软件将在配置过程中使用此信息来确定可以持续的时期。
系统提供的时间段可能短于USB定义的最短时间段内的设备(125µs微帧或1ms帧)。
客户软件和设备只能取决于主机将确保两者之间的持续时间与端点的事务尝试不会超过所需的时间段。

Shoteen 发表于 2025-6-3 14:32:27

ercircle 发表于 2025-6-3 14:27
这里要这么理解的话,可以看下5.7.4 Interrupt Transfer Bus Access Constraints章节描述...




我的理解就是这个参数决定了HOST向DEVICE设备请求IN数据包的间隔频率,我刚刚也测了设置1ms、8ms、16m时间都能对上,但是10ms这个时间间隔我不理解为什么对应不上。

ercircle 发表于 2025-6-3 14:48:09

Shoteen 发表于 2025-6-3 14:32
我的理解就是这个参数决定了HOST向DEVICE设备请求IN数据包的间隔频率,我刚刚也测了设置1ms、8ms、16m时 ...


按上面USB官方文档不超过设定值正常的。
多试几组?看我这个设置20ms,抓出来间隔16.




Shoteen 发表于 2025-6-3 16:58:26

ercircle 发表于 2025-6-3 14:48
按上面USB官方文档不超过设定值正常的。
多试几组?看我这个设置20ms,抓出来间隔16.



好的,我多试几组看看

Shoteen 发表于 2025-6-3 17:27:14

ercircle 发表于 2025-6-3 14:48
按上面USB官方文档不超过设定值正常的。
多试几组?看我这个设置20ms,抓出来间隔16.



可能是我的理解有误了,我写255,IN包间隔是32ms,这个应该是一个最大的等待帧数,在255帧内主机必须安排一个中断传输事务,这个是应该是由主机来安排的,而不是从机说是多少就是多少。设置为10应该是说在10帧内必须要有一个中断事务传输。
页: [1]
查看完整版本: USB-HID数据请求间隔不一致问题