作者|锐志创新

前言:之前在公众号中提到了USB2.0的协议,其中涉及到Chirp的部分,有的小伙伴后台问了下什么是Chirp,现在特地将这部分的知识整理汇总了一下。

所谓的Chirp,其中文意思即是啁啾,Chirp的主要作用就是在高速模式下去切换握手协议的一个信号,首先我们可以看下USB的接口电路部分:

信号尺度变换公式_chirp信号_信号持续时间是什么意思

上图是USB接口的收发器的结构chirp信号,众所周知USB2.0的模式有3种:

(1)低速——速度为1.5Mb/s

(2)全速——速度为12Mb/s

(3)高速——速度为480Mb/s

根据USB2.0协议的相关规范,全速、低速很好区分,因为设备端有1.5K的上拉电阻,当设备插入HUB或者上电时,有上拉电阻的那根数据线就会被拉高,HUB就会根据D+/D-上的电平判断所挂载的是高速设备还是低速设备。

信号尺度变换公式_chirp信号_信号持续时间是什么意思

但是在上述的识别过程中,高速设备是通过扮演全速设备的角色和低速设备进行区分的,在USB2.0的协议中是如何将全速设备和高速设备进行区分的呢?

首先我们要知道,当端检测到有设备插入或者上电的时候,就会向主机通报,主机接收到通报后就会发送请求让hub复位插入的设备,该复位信号是SE0(即DP/DM全为低电平),持续时间至少为10ms。

当高速设备看到复位信号后,就会通过设备端内部的电流源向D-持续灌大小为17.78mA的电流,然后此时高速设备上的1.5K上拉电阻还没有撤消,在hub端,全速/低速驱动器形成了一个45欧姆的终端电阻,17.78mA的电流源与1.5K的上拉电阻和45欧姆的终端下拉电阻如下图所示:

信号尺度变换公式_chirp信号_信号持续时间是什么意思

此时hub端看到的是一个大约17.78*45大约800mV的电压,这个信号就是信号,信号的持续时间是1到7ms。

信号尺度变换公式_chirp信号_信号持续时间是什么意思

在hub端,虽然下达了复位信号,并一直在驱动SE0,但是USB2.0接口的高速接收器一直在检测着信号,如果一直没有检测到信号,主机就会一直持续进行复位操作,直到复位结束后,就会一直在全速模式下操作。通过上述操作就能理解USB2.0是如何识别USB2.0和USB1.X的了,因为如果HUB或者说主机是1.x的chirp信号,那么HUB就不会去理会设备端发送回来的K信号,所以说USB接口的速度识别是双向的,不仅仅判断设备端,还需要针对HUB&HOST端进行判别。

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

HUB端连续发送的chirp(6个KJ序列)被设备端检测到之后,那么此时设备就必须在500us内切换到高速模式,相应的切换动作有:

在执行上述操作的第一步和第二步之后,我们就可以看到HUB端发送的序列的幅值降低到了原来的一半即400mV,这个是因为设备端的挂载新的终端电阻后,配上原先的Hub端的终端电阻,并联后的阻抗为22.5ohm。至此,进入高速传输模式。

下面针对实际的传输波形进行阐述:

信号持续时间是什么意思_chirp信号_信号尺度变换公式

1、数据线的DP在T点之前挂上1.5K的电阻,在T点被host拉成SE0状态;

2、在SE0近2ms左右,设备端开始发送(a到b)信号,持续2.12ms,向HUB端通知自己是一个高速设备;

3、如果HOST是一个USB2.0的接口,就会回应6组KJ序列,发送给设备表明自己是USB2.0接口,设备端接收到KJ序列后就会进入高速模式,若HOST是一个USB1.X接口,则无法响应,带SE0复位时间结束后,就会进入到全速模式。

下图显示了HOST发出的信号的幅度。在全速切高速时,由于高速480Mb/s对干扰、阻抗的要求都较为严格,如果上述的信号状态不好,在切换的过程偶尔会出现异常。

信号尺度变换公式_信号持续时间是什么意思_chirp信号

技术专家

基带、RF、结构、驱动等专业知识分享

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注