USB 全速/高速设备识别信号分析

时间:2024-03-19 16:23:09

以下的内容转载自USB chirp信号测试,在这篇文章中详细的解释了USB高速设备的握手过程,以及通过分析D+和D-上面的波形来进行说明。很赞的一篇文章。


一、Chirp K J信号说明

USB Chirp信号分为K信号和J信号。根据USB速率将Chirp信号做如下区别:
USB 全速/高速设备识别信号分析


二、USB全速高速识别过程分析

根据规范,全速(Full Speed)和低速(Low Speed)很好区分。因为在设备端有一个1.5k的上拉电阻,当设备插入hub或上电(固定线缆的USB设备)时,有上拉电阻的那根数据线就会被拉高,hub根据D+/D-上的电平判断所挂载的是全速设备还是低速设备。

USB全速/低速识别相当简单,因为USB1.x就一对数据线,在USB2.0不能像全速/低速那样仅依靠数据线上拉电阻位置就能识别USB第三种速度——高速。因此对于高速设备的识别就显得稍微复杂些。

高速设备初始是以一个全速设备的身份出现的,即和全速设备一样,D+线上有一个1.5k的上拉电阻。USB2.0的hub把它当作一个全速设备,之后,hub和设备通过一系列握手信号确认双方的身份。在这里对速度的检测是双向的,比如高速的hub需要检测所挂上来的设备是高速、全速还是低速,高速的设备需要检测所连上的hub是USB2.0的还是1.x的,如果是前者,就进行一系列动作切到高速模式工作,如果是后者,就以全速模式工作。

hub检测到有设备插入/上电时,向主机通报,主机发送Set_Port_Feature请求让hub复位新插入的设备。设备复位操作是hub通过驱动数据线到复位状态SE0(Single-ended 0,即D+和D-全为低电平),并持续至少10ms。

高速设备看到复位信号后,通过内部的电流源向D-线持续灌大小为17.78mA电流。因为此时高速设备的1.5k上拉电阻还未撤销,在hub端,全速/低速驱动器形成一个阻抗为45欧姆(Ohm)的终端电阻,2电阻并联后仍是45欧姆左右的阻抗,所以在hub端看到一个约800mV的电压(45欧姆*17.78mA),这就是Chirp K信号。Chirp K信号的持续时间是1ms~7ms。

在hub端,虽然下达了复位信号,并一直驱动着SE0,但USB2.0的高速接收器一直在检测Chirp K(D+位0,D-为1)信号,如果没有看到Chirp K信号,就继续复位操作,直到复位结束,之后就在全速模式下操作。如果只是一个全速的hub,不支持高速操作,那么该hub不理会设备发送的Chirp K信号,之后设备也不会切换到高速模式。

设备发送的Chirp K信号结束后100us内,hub必须开始回复一连串的KJKJKJ….序列,向设备表明这是一个USB2.0的hub。这里的KJ序列是连续的,中间不能间断,而且每个K或J的持续时间在40us~60us之间。KJ序列停止后的100~500us内结束复位操作。hub发送Chirp KJ序列的方式和设备一样,通过电流源向差分数据线交替灌17.78mA的电流实现。

再回到设备端来。设备检测到6个hub发出的Chirp 信号后(3对KJ序列),它必须在500us内切换到高速模式。切换动作有:

  • 断开1.5k的上拉电阻;
  • 连接D+/D-上的高速终端电阻(high-speed termination),实际上就是全速/低速差分驱动器;
  • 进入默认的高速状态。执行1,2两步后,USB信号线上看到的现象就发生变化了:hub发送出来的Chirp KJ序列幅值降到了原先的一半,400mV。这是因为设备端挂载新的终端电阻后,配上原先hub端的终端电阻,并联后的阻抗是22.5欧姆。400mV就是由17.78mA*22.5Ohm得来。以后高速操作的信号幅值就是400mV而不像全速/低速那样的3V。

至此,高速设备与USB2.0 hub握手完毕,进行后续的480Mbps高速信号通信。


三、信号测试及判断注意事项

  • 高速检测握手协商是在主机发出复位(reset)信号期间,由设备发起的,由主机响应的过程;

  • 主机使用SE0状态reset设备之后需要使用高速握手协商(chirp handshake)才可以再次正常通信;

  • 主机使用全速的idle状态suspend设备之后需要通过resume过程使设备进入工作状态,这个过程不需要高速握手协商;

  • 全速/低速模式时主机resume设备的是通过保持K状态20ms;高速下这20ms的K状态以转换成SE0状态后结束,然后主机和设备在两次低速位(2 low speed bit times)内必须保持在高速终端模式;

  • DEVICE_REMOTE_WAKEUP feature,该特性用来在设备被挂起(suspend)后,主机可以使用resume信号来唤醒设备。该特性是主机使用SET_FEATURECLEAR_FEATURE请求对进行设置和清除的。


四、USB Chirp信号测试表

实测过程中黄色波形为D+,绿色对应D-

1、基于高速传输的电路

USB 全速/高速设备识别信号分析


2、高速同步模式

USB 全速/高速设备识别信号分析

USB 全速/高速设备识别信号分析

同步模式为实测波形的后半部分红圈所示,为正常波形。


3、高速速度检测

USB 全速/高速设备识别信号分析


USB 全速/高速设备识别信号分析


USB 全速/高速设备识别信号分析

如实测波形图,上图为整体波形,下图为上图红圈的放大部分,可见:

  • 模块被退出idle(2.9V左右电平)模式1.5ms之后;
  • 首先D-上发出持续2ms左右的chirp K信号(800mV电平);
  • 主机回复chirp JK序列(800mV电平)
  • 设备收到之后断开1.5K上拉电阻,波形赋值降低一半(400mV电平);

上述第2步是设备通知主机自己是高速设备,第3步是主机响应设备的通知,第4步电平赋值减半表示协商成功,执行同步动作。


4、主机复位设备

USB 全速/高速设备识别信号分析