在USB 2.0协议中经常会看到以下术语:Chirp K、KJ序列、SE0。这里的状态是根据低速、全速/高速下设备D+和D-上不同的电平信号来决定的。
一、通俗解释
1、J态、K态、SE0
低速设备:
J态: D+ =“0”,D- =“1”
K态: D+ =“1”,D- =“0”
SE0态:D+ =“0”,D- =“0”
从J到K或者从K到J,信号翻转,说明发送的是信号0;
从J到J或者从K到K,信号保持不变,说明发送的是信号1。这就是差分信号0/1的发送。
高速设备的J和K相反。
低速下: D+为“0”,D-为“1”是为“J”状态,“K”状态相反;
全速/高速下:D+为“1”,D-为“0”是为“J”状态,“K”状态相反;
2、空闲状态
低速下空闲状态为“K”状态;
全速下空闲状态为“J”状态;
高速下空闲状态为“SE0”状态;
3、reset和suspend的区分
这一部分的内容可以参照USB 挂起和唤醒
对于这一部分的内容,将在我后续的文章中根据协议进行解释。
对于全速操作,SE0表示为复位和EOP,持续时间大于2.5us表示总线复位;
对于高速操作,SE0维持3ms~3.125ms,设备进入全速状态,全速后100us~875us内采样,如果继续维持SE0,则设备总线复位,开始高速握手;
若变为“J”状态,则进入挂起状态”suspend“。
4、高速握手条件
1.设备处于挂起状态,若出现SE0则立即开始高速握手;
2.设备处于全速,SE0持续2.5us,则开始高速握手;
3.设别处于高速,SE0持续3.0ms,切继续持续,则开始高速握手。
二、7.1.7.1 Low-/Full-speed Signaling Levels P.145
三、7.1.7.2 Full-/High-speed Signaling Levels P.147