USB2.0 High Speed 握手略解

USB (Universal Serial Bus) 是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,目前已经发布USB 4 协议规格,向下兼容USB 3.2 Gen 2、USB 3.2 Gen 1(USB 3.1) 和 USB 2.0。

USB 协议是 host 与 device 通过信号握手,来确认使用哪种速度来通信的。其中 SuperSpeed是通过码型来确认的,比较复杂;high-speed、full-speed 和 low-speed 是通过电平高低变化确认的,比较简单。通过了解 high-speed 握手波形,就可以举一反三了明白另外两个了。

USB 2.0 线材由 4条线组成,VBUS、D+、D- 和 GND。其中 D+、D- 是一对差分信号线,USB 2.0 的握手和数据传输都是依靠它的。具体线材要求可以查看 Specification 6.6 Cable Mechanical Configuration and Material Requirements

cable

下面是 high-speed 握手波形,在进入 high-speed握手前,会经过 full-speed握手前段。

HS握手

before a段:≤100ms,device插入 host,得电(功率足够)后,需要在 100ms内将 D+/D- 拉至 VIH或以上,VIH为 2V。7.1.7.3 Connect and Disconnect Signaling ∆t2 (T SIGATT )

a-b段:≥100ms,当 host controller通过中断通知软件(USB协议栈)当前 D+已经上拉后,软件将等待 至少 100ms,确保电气和机械连接都是稳定的,此时 D+ 幅值为 3.3V。

b-c段:2.5μs~3ms,在 b点软件等待 100ms后将会下发 port reset,将 D+拉低,总线进入 SE0状态。

c-d段:1ms~7ms,device检测到 SE0后必须等待不小于3ms,不大于3.125ms后,将回复一个 Chirp K,已表示自己是一个 high-speed设备,Chirp K必须持续 1~7ms,该 Chirp K幅度为 800mV。

d-e段:≤100μs,host检测到 device回复的 Chirp K后,将准备发送 Chirp KJ KJ KJ序列。

e-f 段:host 将发送 Chirp KJ KJ KJ序列,每个Chirp K、Chirp J的持续时间为 40~60μs,如果 device在 1ms~2.5ms未检测到 Chirp KJ KJ KJ序列则会回到 full-speed Default state并等待复位结束。

f-g 段:50ms,device 检测到 Chirp KJ KJ KJ序列后,将会在 ≤500μs内将自身 D+上拉电阻(terminal 电阻)断开,进入 high-speed Default state,即 device变为 45Ω,信号幅值变为 400mV。Chirp KJ序列会持续 50ms,直到软件会下发 port reset,停止发送Chirp KJ序列,完成 high-speed的握手。

after g段:进入 high-speed DATA阶段,第一个 packet是 SOF。

详细信息:7.1.7.5 Reset Signaling、Table 7-13. Hub Event Timings (Continued)、Table 7-14. Device Event Timings


USB2.0 High Speed 握手略解
http://xxxdk.xyz/xxx/2020/06/USB2-0-High-Speed-握手略解/
作者
sni
发布于
2020年6月7日
许可协议