找回密码
 立即注册
查看: 87|回复: 7

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

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:31
  • 最近打卡:2025-06-05 14:09:19

14

主题

31

回帖

256

积分

中级会员

积分
256
发表于 2025-6-3 13:56:18 | 显示全部楼层 |阅读模式
截图202506031351564939.jpg

使用官方给的USB-HID的范例,将程序烧录到STC32G12K128中后,
使用USB协议分析仪采样IN包的请求间隔,发现枚举过程给的是10ms中断请求,
但是实际测试下来请求间隔是8ms,有没有大佬知道这是为啥?
截图202506031354199236.jpg
这个是例程中的中断请求间隔
截图202506031354496429.jpg
这个是枚举过程中的数据
截图202506031355479551.jpg
枚举完成后,每一次IN请求间隔都是8ms



回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-06-16 08:41:37
已绑定手机

67

主题

1910

回帖

4291

积分

荣誉版主

无情的代码机器

积分
4291
发表于 2025-6-3 14:08:42 | 显示全部楼层
设置的是间隔最大值10ms

截图202506031408065530.jpg
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:31
  • 最近打卡:2025-06-05 14:09:19

14

主题

31

回帖

256

积分

中级会员

积分
256
发表于 2025-6-3 14:16:06 | 显示全部楼层
erci*** 发表于 2025-6-3 14:08
设置的是间隔最大值10ms

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

点评

这里要这么理解的话,可以看下5.7.4 Interrupt Transfer Bus Access Constraints章节描述... [attachimg]102486[/attachimg] 机器翻译: USB系统软件将在配置过程中使用此信息来确定可以持续的时期。 系统提供  详情 回复 发表于 2025-6-3 14:27
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-06-16 08:41:37
已绑定手机

67

主题

1910

回帖

4291

积分

荣誉版主

无情的代码机器

积分
4291
发表于 2025-6-3 14:27:49 | 显示全部楼层
Shot*** 发表于 2025-6-3 14:16
不是吧,这个指的是前面的FFH这个数据吧,中断传输允许的最大间隔是255ms


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

截图202506031424168764.jpg


机器翻译:

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

三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:31
  • 最近打卡:2025-06-05 14:09:19

14

主题

31

回帖

256

积分

中级会员

积分
256
发表于 2025-6-3 14:32:27 | 显示全部楼层
erci*** 发表于 2025-6-3 14:27
这里要这么理解的话,可以看下5.7.4 Interrupt Transfer Bus Access Constraints章节描述...

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

点评

按上面USB官方文档不超过设定值正常的。 多试几组?看我这个设置20ms,抓出来间隔16. [attachimg]102491[/attachimg]  详情 回复 发表于 2025-6-3 14:48
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-06-16 08:41:37
已绑定手机

67

主题

1910

回帖

4291

积分

荣誉版主

无情的代码机器

积分
4291
发表于 2025-6-3 14:48:09 | 显示全部楼层
Shot*** 发表于 2025-6-3 14:32
我的理解就是这个参数决定了HOST向DEVICE设备请求IN数据包的间隔频率,我刚刚也测了设置1ms、8ms、16m时 ...


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


截图202506031446409468.jpg

三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:31
  • 最近打卡:2025-06-05 14:09:19

14

主题

31

回帖

256

积分

中级会员

积分
256
发表于 2025-6-3 16:58:26 | 显示全部楼层
erci*** 发表于 2025-6-3 14:48
按上面USB官方文档不超过设定值正常的。
多试几组?看我这个设置20ms,抓出来间隔16.

好的,我多试几组看看
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:31
  • 最近打卡:2025-06-05 14:09:19

14

主题

31

回帖

256

积分

中级会员

积分
256
发表于 2025-6-3 17:27:14 | 显示全部楼层
erci*** 发表于 2025-6-3 14:48
按上面USB官方文档不超过设定值正常的。
多试几组?看我这个设置20ms,抓出来间隔16.

可能是我的理解有误了,我写255,IN包间隔是32ms,这个应该是一个最大的等待帧数,在255帧内主机必须安排一个中断传输事务,这个是应该是由主机来安排的,而不是从机说是多少就是多少。设置为10应该是说在10帧内必须要有一个中断事务传输。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-16 11:20 , Processed in 0.156415 second(s), 94 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表