USB2.0 reset 的几种情况
1、USB2.0 ResetUSB2.0 reset, 是将D+ 和 D- 同时拉低, 进入SE0 状态。
reset 时间:按照spec 规定7.1.75 正常是10-20ms, 需要注意的是如果是root hub时间则规定为少50ms(这50ms 可以不连续,但是如果不连续,每个reset 信号之间的间隔时间应该小于3ms)
HUB 如果收到host 发送的setFeature (portreset), 可以对device发送reset信号。
1、FS/LS mode
device 如果是在FS/LS mode 下, 当host 将D+/D- driver 成SE0 后, spec 规定Device应该在检测到SE0 超过2.5us 后,将这个信号识别为Reset 信号。
2、HS mode
hub 需要先check device 确保其不会是 LS device(Spec 规定LS device不会支持HS)。这一点很好理解, HS 进入suspend是需要切换到FS mode, 而 LS device D+/D- 和FSdevice相反,所以无法实现切到FS mode。
hub 收到host 发送的setFeature (portreset),将D+/D- drives SE0。
device 去检测到SE0。
Device 进行HS handshake
device 检测到Reset 后, 在2.5us(少) 后,开始打chirp K (电压幅度800mv) 持续时间短1ms,spec 规定 chirp K 结束时间不能晚于7ms(即从RESET 开始检测到SE0 到打完ChirpK要小于7ms)Hub 检测到Chirp K 后,开始打3 组chirp KJ。
spec 规定, 在Device chirp K 打完之后,100us 内hub 必须开始打chirp KJ,3组 chirp KJ必须在500us 内打完 (单个chirp K 或者 J 持续时间>=40us 且<=60us)。Device 打完chirpK 后会去检测 hub 的chirp K-J-K-J-K-J。
1、如果检测到chirp K-J-K-J-K-J ,需要在500us 内,将FS 的上拉电阻移除,进入HS mode。
2、Device 如果在(1~2.5)ms内没有检测到chirp K-J-K-J-K-J ,则留在FS mode 等待reset结束。