在 USB host 或者 hub 的每个下行端口(downstream facing port)的 D+ 和 D- 上分别接了一个 15KΩ 的下拉电阻到地,这样,当端口空闲时 (没有设备插入),输入端就被两个下拉电阻拉到了低电平。而在 USB 设备端的上行接口 (upstream facing port),D+ 或者 D- 上接了一个 1.5KΩ 的上拉电阻到 3.3V 电源
模式 | 上拉电阻位置 (1.5KΩ) | 速度 |
---|---|---|
LS | D- | 1.5Mbits/s |
FS | D+ | 12Mbits/s |
HS | D+ | 480Mbits/s |
对于 HS 设备,先被识别为 FS 设备,通过集线器和设备两者的确认,再切换到高速模式下。
所以高速设备连接模型和全速设备保持一致
在高速模式下,是电流传输模式,这时要将 D+ 上的上拉电阻断开。
并且在 D+ 和 D- 线上,不管是 USB 主机还是 USB 设备都有一个 45 Ω 的等效对地电阻
USB 设备连接到主机后,主机必须在第一时间对 USB 设备进行复位,复位信号必须至少持续 10ms
其中 VOL(max) 电平为 0.3V。也就是说,复位是 D+ 和 D- 必须保持低电平 10ms 以上的时间。
需要注意的是,高速模式的握手协议是在复位过程中完成的,且在复位信号结束之前完成。
USB 主机和 USB 设备在复位结束后,都必须确定自己的速度模式。
在开始握手协议前,设备确保其 D+ 线上的上拉电阻已经挂载,并且 45Ω 等效对地电阻没有挂载。
之后,设备端向 D- 输入 17.78mA 的电流,主机端 D- 45Ω 的等效对地电阻与主机下拉电阻 15K 并联,并联后电阻大约还是 45Ω,总线上就会产生一个 800mV(17.78*45) 的电压,这就是 Chirp K
信号。Chirp K 信号至少持续 1ms ,并且在复位信号开始后的 7ms 内结束。
设备的 Chirp K 信号结束之后,总线回到 SE0 状态(D+ D- 均为低)。
该 SE0 信号表示设备的 Chirp K 信号结束,主机检测到 SE0 信号,就认为设备的 Chirp K 结束,然后主机会发送连续的 KJ 序列。
在设备端检测到 3 对有效的 KJ 序列后,在 500us 内,必须移除 D+ 的上拉电阻,并挂载高速 45Ω 等效对地电阻,进入高速模式。此时,USB 设备高速 45Ω 等效对地电阻与原来主机端的 45Ω 等效对地电阻并联后,其等效电阻变为 22.5Ω,此时 D+ 和 D- 线上的电平大概为 400mv(17.78*22.5)。此后主机发送的后续信号序列的幅值 为 400mV 左右,变为正常的 JK 信号。至此,整个高速模式握手协议完成。
如果 USB 设备检测不到 3 对 KJ 信号,则在 USB 设备完成自己的 Chirp K 信号后的 1ms 到 2.5ms 内,该设备要恢复到全速模式的默认状态,知道复位信号结束。最终 USB 主机和 USB 设备都将工作在全速模式下。
在 USB host 或者 hub 的每个下游端口(downstream faceing port)的 D+ 和 D- 上分别接了一个 15KΩ 的下拉电阻到地,这样,当 USB 设备连接到 USB 主机或集线器上,且数据线没有被驱动时,由于数据线上拉电阻的存在使得相应的数据线电压高于 2.8V,而另外一根没有挂上拉电阻的数据线上的电压接近 0 V
这种状态就是低速 / 全速下的静止状态,也称为空闲态
在低速设备上,闲置状态是指 D+ 为低电平、 D- 为高电平
在全速设备上,闲置状态是指 D+ 为高电平、 D- 为低电平
在高速模式下,由于驱动方式是电流驱动,使得 USB 的数据线在没有任何驱动情况下,D+ 和 D- 均会保持低电平状态。
single ended 0(SE0):在 D+ 和 D- 同时均为逻辑低电平时所发生的状态。该状态表示一个复位、断连或数据包的结束。
single ended 1(SE1): 在 D+ 和 D- 同时均为逻辑高电平时所发生的状态。USB 协议规范中并未使用该状态。