当前位置: 代码迷 >> 综合 >> USB2.0 reset 的几种情况
  详细解决方案

USB2.0 reset 的几种情况

热度:6   发布时间:2024-02-28 20:15:06.0

USB2.0 reset 的几种情况

1、USB2.0 Reset

USB2.0 reset, 是将D+ 和 D- 同时拉低, 进入SE0 状态。

reset 时间:按照spec 规定7.1.75 正常是10-20ms, 需要注意的是如果是root hub 时间则规定为最少50ms(这50ms 可以不连续,但是如果不连续,每个reset 信号之间的间隔时间应该小于3ms)

HUB 如果收到host 发送的setFeature (portreset), 可以对device发送reset 信号。
在这里插入图片描述

2、 Reset 的规范

1、FS/LS mode
device 如果是在FS/LS mode 下, 当host 将D+/D- driver 成SE0 后, spec 规定Device 应该在检测到SE0 超过2.5us 后,将这个信号识别为Reset 信号。

2、HS mode

  1. hub 需要先check device 确保其不会是 LS device(Spec 规定LS device 不会支持HS)。这一点很好理解, HS 进入suspend是需要切换到FS mode, 而 LS device D+/D- 和FS device相反,所以无法实现切到FS mode。

  2. hub 收到host 发送的setFeature (portreset),将D+/D- drives SE0。

  3. device 去检测到SE0。

这里需要分几种情况考虑:1) device 在suspend 的情况下, hub 发送reset。device 检测到SE0, 到进行 HS handshake, 时间间隔不少于2.5us(就是device检测到SE0 到打chirp K 的时间)2) device 在FS mode下且是non-suspend 的情况下, hub 发送reset。device 检测到SE0, 到进行 HS handshake, 时间间隔不少于2.5us 且不长于3ms (就是device检测到SE0 到打chirp K 的时间)3) device 在HS mode下且是non-suspend 的情况下, hub 发送reset。1. 高速设备在收到挂起信号(3ms空闲,这3ms不会打SOF)后,应在0.125ms内切换到全速状态,也就是说要把终端电阻移除,并在D+数据线上重新挂上1.5k上拉电阻。2. 设备在随后的100-875?s内检测数据线上的状态。如果该状态是一个Full speed J(D+ =1, D- =0),那么说明host发下来的是一个挂起信号;如果此时该状态是SE0(D+ =0,D- =0),说明是host drive数据线D+到0,这是一个复位信号(复位信号会持续至少 10ms 时间)。
  1. Device 进行HS handshake
    device 检测到Reset 后, 在2.5us(最少) 后,开始打chirp K (电压幅度800mv) 持续时间最短1ms, spec 规定 chirp K 结束时间不能晚于7ms(即从RESET 开始检测到SE0 到打完ChirpK 要小于7ms)
    在这里插入图片描述

  2. Hub 检测到Chirp K 后,开始打3 组chirp KJ。

  相关解决方案