设备还未连接时-DP、DM为0
设备刚插入时
若设备是HS或FS
由于FS设备的D+有1.5K上拉,插入时会将D+拉到 3.3V,再总线上形成一个全速J
协议规定,所有的握手都需要从FS开始,即使设备是HS设备,这是因为HS模式下,即使插入了,总线上也不会产生任何变化,无法完成识别
若设备是LS
由于LS设备的D-有1.5K上拉,插入时会将D-拉到 3.3V
为了统一,对于LS,将D+:0 D-:1认为是J
当设备检测到总线上复位(SE0)
HS设备看到复位信号后,通过内部的电流源向D-线持续灌大小为17.78mA电流。因为此时HS设备的1.5k上拉电阻还未撤销,在hub端,LS/FS驱动器形成一个阻抗为45欧姆(Ohm)的终端电阻,2电阻并联后仍是45欧姆左右的阻抗,所以在hub端看到一个约800mV的电压(45欧姆*17.78mA),这就是Chirp K信号。Chirp K信号的持续时间是1ms~7ms。
LS/FS设备无法驱动D-产生CHIRP K,当主机在复位阶段没有检查到CHIRP K,将会进入FS模式
当主机检测到CHIRPK
设备发送的Chirp K信号结束后100us内,hub必须开始回复一连串的KJKJKJ….序列,向设备表明这是一个USB2.0的hub。这里的KJ序列是连续的,中间不能间断,而且每个K或J的持续时间在40us~60us之间。KJ序列停止后的100~500us内结束复位操作。hub发送Chirp KJ序列的方式和设备一样,通过电流源向差分数据线交替灌17.78mA的电流实现。
当设备检测到3对JK对后
设备检测到6个hub发出的Chirp 信号后(3对KJ序列),它必须在500us内切换到高速模式。切换动作有:
l设备断开1.5k的上拉电阻;
l连接D+/D-上的高速终端电阻(high-speed termination),实际上就是全速/低速驱动器;
l进入默认的高速状态。执行1,2两步后,USB信号线上看到的现象就发生变化了:hub发送出来的Chirp KJ序列幅值降到了原先的一半,400mV。这是因为设备端挂载新的终端电阻后,配上原先hub端的终端电阻,并联后的阻抗是22.5欧姆。400mV就是由17.78mA*22.5Ohm得来。以后高速操作的信号幅值就是400mV而不像全速/低速那样的3V。
l至此,高速设备与USB2.0 hub握手完毕,进行后续的480Mbps高速信号通信。