一、总线标准
- USB1.1:支持12Mbps全速率(FullSpeed)和1.5Mbps低速率( HalfSpeed)
- USB2.0:支持480Mbps高速率(High Speed),兼容1.1
- USB3.0:支持5Gbps超高速率(超速传输),兼容2.0
二、硬件结构
- USB2.0工作模式分为低速(1.5Mb/s)、全速(12Mb/s)、高速(480Mb/s);
低速和全速是电压驱动型,高速是电流驱动型 - USB2.0 物理层为 4 根线,差分线:D+、D- 电源线:VCC、GND
其中 D+ 与 D- 共有 4 种状态:
Chirp J State:D+ = 1, D- = 0
Chirp K State:D+ = 0, D- =1
SE0:D+ = D- = 0
SE1:D+ = D- = 1 -
usb低速设备,D- 端口上拉1.5K电阻至VCC,空闲状态(D+、D-)显示为01(Chirp J);
usb全速设备,D+端口上拉1.5K电阻至VCC,空闲状态(D+、D-)显示为10(Chirp K);
Chirp J 和 Chirp K 状态只出现在高速模式的速度检测握手协议中,即设备从全速识别为高速设备的状态转换过程中。 - Chirp J / K(⭐)
高速模式是电流驱动,其 J / K 信号是由一个 17.78uA 的电流源向 D+ 和 D- 数据线产生
当 USB主机进入高速模式后,主机和设备两端的 D- 和 D+ 全部断开 D+ 数据线上的上拉 1.5K 电阻,并挂载 45Ω 的等效终端电阻(这两个电阻并联之后为约为22.5Ω),因而可以在D+ 或者D- 数据线上形成约为 400mV 的高速 J / K 信号。
高速设备在连接到 USB主机时默认为全速模式,因而此时USB设备端还未挂接 45Ω 终端电阻,而是挂载了1.5K的上拉电阻,此时USB设备端的1.5K上拉电阻和主机端的 45Ω 并联后约45Ω,因此会在 D+ 和 D- 上会形成 800mV(17.78x45)的差分信号
三、握手过程
- usb设备接入USB主机后,usb设备检测到 VBUS 电源后就会挂载上拉1.5K电阻;
usb设备检测到 D+或者D-上有高电平产生,便认为已接入主机
USB主机检测到D+或D-上电压从0V变化到2V以上,便确定usb设备已经连接主机
USB主机确认usb设备连接后,发出一个复位信号,使设备进入初始状态
复位信号(SE0状态)持续时间在10ms以上,在此时间内,系统完成整个高速握手协议 -
usb设备检测到复位信号后,在 ≥2.5us且≤3ms 的时间内开始发起高速握手协议,确保本身1.5K的上拉电阻已经挂载,且45R 的等效对地电阻没有挂载,之后usb设备端向 D- 流入17.78mA的电流,然后USB主机端的45R 的等效对地电阻和下拉电阻15K 并联,总线上产生一个大约为800mV的电压,持续至少1ms,这就是Chirp K 信号,信号结束后,USB主机恢复SE0 状态
-
USB主机检测到信号变化,便认为usb设备的Chirp K 信号结束
如果主机检测到Chirp K 的信号没有持续2.5us以上,则认为检测不到,并会一直驱动总线为SE0 状态 直至复位信号结束,高速信号握手协议结束,主机和设备都会工作在全速模式。
如果主机检测到Chirp K 信号持续2.5us以上,则认为是有效状态,开始发送 三对K/J 序列,发送的时间必须是在Chirp K信号结束后的100us内,每个单独发送的Chirp K和Chirp J状态都必须是连续的且持续时间是40~60us,如果中间USB总线持续3ms没有任何的状态,设备就会进入挂起模式,Chirp K/J信号需要持续发送直到复位信号结束前的100us~500us为止。主机端完成了三对K/J信号发送,设备端检测到三对K/J信号后,在500us内,将D+上的1.5K的电阻移除,并挂载高速的45R 的等效对地电阻,进入高速模式,此时与主机的45R并联等效电阻变成了22.5R,D+ 和D- 的电压变成400mV。