USB 速度识别

文章目录

  • USB 速度识别
    • 低速设备
    • 全速设备
    • 高速设备
    • 复位
    • 高速模式握手过程
      • 全速 J 状态
      • SE0 状态
      • 设备产生 Chirp K
      • 主机产生 KJ 序列
      • 设备挂载高速终端电阻
    • 空闲状态
      • 低速 / 全速设备
      • 高速设备
    • SE0
    • SE1

USB 速度识别

在 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
  • 速度快的,上拉电阻接在 D+ 上
  • 速度慢的,上拉电阻接在 D- 上

低速设备

USB 速度识别_第1张图片

全速设备

USB 速度识别_第2张图片

高速设备

对于 HS 设备,先被识别为 FS 设备,通过集线器和设备两者的确认,再切换到高速模式下。
所以高速设备连接模型和全速设备保持一致

USB 速度识别_第3张图片

在高速模式下,是电流传输模式,这时要将 D+ 上的上拉电阻断开。

并且在 D+ 和 D- 线上,不管是 USB 主机还是 USB 设备都有一个 45 Ω 的等效对地电阻

  • 高速设备在初始连接时,是以全速模式连接到主机的,即高速设备的 D+ 上挂载了上拉电阻,主机检测到全速模式的设备连接后,会对该设备进行复位(D+ 和 D- 均为低电平,时间 > 10ms)。工作在全速模式下的 USB 设备收到复位信号后,会主动发起高速模式握手协议进行速度识别。
    • 如果主机支持高速设备,会和该设备交互完成高速模式握手协议,此时 USB 主机和 USB 设备都工作在高速模式下;
    • 如果主机不支持高速设备,握手协议会失败,该设备也不会切换到告诉模式,此时 USB 主机和 USB 设备都工作在全速模式下
  • 全速设备初始连接时,由于设备无法发起高速模式握手协议,最终主机和设备都会工作在全速模式下。

复位

USB 设备连接到主机后,主机必须在第一时间对 USB 设备进行复位,复位信号必须至少持续 10ms

在这里插入图片描述

其中 VOL(max) 电平为 0.3V。也就是说,复位是 D+ 和 D- 必须保持低电平 10ms 以上的时间。

需要注意的是,高速模式的握手协议是在复位过程中完成的,且在复位信号结束之前完成。

USB 主机和 USB 设备在复位结束后,都必须确定自己的速度模式。

高速模式握手过程

全速 J 状态

  • 高速 USB 设备连接到 USB 主机时,由于一开始上拉电阻的存在,使得 D+ 为高电平,因此总线状态处于全速 J 状态。这是主机会检测到全速设备连接。

SE0 状态

  • 主机连接检测完成后, USB 主机发出复位信号,使总线处于 SE0 状态(D+ D- 均为低)。USB 设备必须在检测到 SE0 状态后不少于 0.5us 且不超过 3ms 的时间内发起高速模式握手协议。

设备产生 Chirp K

在开始握手协议前,设备确保其 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 序列。

主机产生 KJ 序列

  • 如果主机检测到的 Chirp K 信号持续时间不少于 2.5us,则主机认为该 Chirp K 有效。
  • 如果主机检测不到设备的 Chirp K 信号,则主机一直驱动总线为 SE0,直到复位信号结束。高速模式握手协议结束后,主机和设备都将工作在全速模式。

设备挂载高速终端电阻

在设备端检测到 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- 均会保持低电平状态。

SE0

single ended 0(SE0):在 D+ 和 D- 同时均为逻辑低电平时所发生的状态。该状态表示一个复位、断连或数据包的结束。

  • 对于低速 / 全速设备,SE0 状态是 D+ 和 D- 同时均为逻辑低电平时所发生的状态,空闲状态是 D+ 和 D- 一个为 2.8V 一个为 0V 的状态,这两个状态电平是不同的
  • 对于高速设备,SE0 是 D+ 和 D- 同时均为逻辑低电平时所发生的状态,空闲状态也是 D+ 和 D- 均保持低电平状态,这两个电平是一样的

SE1

single ended 1(SE1): 在 D+ 和 D- 同时均为逻辑高电平时所发生的状态。USB 协议规范中并未使用该状态。

你可能感兴趣的:(USB,USB速度识别,低速设备,高速设备,全速设备)