You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于FPGA实现USB1.0的HID键盘中断包传输超时问题求助

USB1.0中断IN事务超时问题排查

先拆解你提供的令牌包结构:

< SYNC >< IN > EP1 CRC5
00000001100101100000000100000101
< 0 8 >< 9 6 >< 0 ><1 >

从包字段来看,首先存在一个明显异常:

  • 地址字段为ADR0(地址0),但你已经完成SET Configuration 1操作,说明设备应该已经通过SET_ADDRESS请求获得了非0地址,主机后续的所有请求都会使用分配的地址,若设备仍以地址0响应,主机将无法识别,直接导致超时。

除此之外,再梳理几个核心排查方向:

  • 端点配置未正确生效:确认配置描述符中EP1中断端点的参数是否与罗技K120匹配(通常是EP1 IN、数据包大小8字节、中断间隔1ms)。如果FPGA未正确加载配置参数,会无法响应主机的IN请求。
  • 设备状态机异常:完成SET_CONFIGURATION后,设备必须进入配置状态才能处理中断事务。若FPGA状态机停留在默认/地址状态,会直接忽略主机的中断请求。
  • 响应时序不达标:USB1.0规范中,主机发送IN令牌包后,设备需在规定的响应窗口内返回数据。如果FPGA的响应延迟超过规范超时阈值(通常为几个帧周期),主机会判定超时。
  • 物理层位错误:虽然SETUP包正常,但中断事务的位填充(NRZI编码)、差分信号时序(建立/保持时间)若出现偏差,会导致主机无法正确接收设备响应,触发超时。
  • CRC校验错误:令牌包的CRC5是针对地址+端点字段计算的,若CRC值不正确,主机将丢弃该令牌包,后续无响应自然超时。

内容的提问来源于stack exchange,提问作者MOP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 12:06:29