USB2.0物理层的电信号
+ -

USB 2.0 协议中J、K、SE0状态的定义

2021-05-11 11759 13

在USB 2.0协议中经常会看到以下术语:Chirp K、KJ序列、SE0。这里的状态是根据低速、全速/高速下设备D+和D-上不同的电平信号来决定的。

1、J态、K态、SE0,SE1

信号 转换状态 状态 Low speed (D+ pull-up) Low speed (D− pull-up) Full speed (D+ pull-up) Full speed (D+ pull-up)
D+ D− D+ D−
J 空闲线路状态相同 这是出现在传输线转换期间。或者,它正在等待一个新的数据包。 0 1 1 0
K J相反状态 这是出现在传输线转换期间。 1 0 0 1
SE0 Single-ended zero D+和D− 为低。指示一个包的结束或USB设备和移除 0 0 0 0
SE1 Single-ended one 非法的状态,不应该出现。标示为错误 1 1 1 1

从J到K或者从K到J,信号翻转,说明发送的是信号0;
从J到J或者从K到K,信号保持不变,说明发送的是信号1。这就是差分信号0/1的发送。

  • 差分信号1: D+ > VOH (2.8V)and D- < VOL(0.3V)
  • 差分信号0: D- > VOH and D+ < VOL
  • 复位信号(Reset): D+ and D- < VOL for >= 10ms
  • IDLE状态: J状态
  • 恢复信号(Resume): K 状态
  • SOP:从IDLE状态切换到K状态
  • EOP:持续2位时间的SE0信号,后跟随1位时间的J状态
  • SYNC: 3个重复的KJ状态切换,后跟随2位时间的K状态

高速设备的J和K相反。

低速下: D+为“0”,D-为“1”是为“J”状态,“K”状态相反;
全速/高速下:D+为“1”,D-为“0”是为“J”状态,“K”状态相反;

JK状态

全速设备的传输示例

当没有更多数据要读取时,由USB 1.1全速设备传输的否定应答数据包的示例。 它由以下字段组成:时钟同步字节,数据包类型和数据包结束。 数据分组将在分组的类型和分组的末尾之间具有更多的信息。
全速设备的传输示例

2、空闲状态

低速下空闲状态为“J”状态;
全速下空闲状态为“K”状态;
高速下空闲状态为“SE0”状态;

3、reset和suspend的区分

我们知道,在USB系统中,正常状态下hub或root hub会一直周期性地发送SOF包(Start Of Frame,全速USB每1ms发送一个,高速USB则是125µs发送一个)。根据USB协议,如果USB线上一直处于空闲(Idle)状态超过3ms,设备应该把它当作一个挂起(Suspended)信号,要求设备在10ms内进入挂起状态,并把设备所需的电流大小降到规定的值(对于low-power设备,要求是500µA,而对于high-power或支持远程唤醒(remote wakeup)功能的设备是2.5mA【Section 7.2.3, Pg176】)。
在挂起状态中,设备必须继续向数据项D+/D-的上拉电阻提供电压以维持Idle状态。而对于USB2.0高速设备,还有些额外的要求:

  • 高速设备在收到挂起信号(3ms空闲)后,应在0.125ms内切换到全速状态,也就是说要把终端电阻移除,并在D+数据线上重新挂上1.5k上拉电阻。

  • 设备在随后的100-875µs内检测数据线上的状态。如果该状态是一个Full speed J,那么说明host发下来的是一个挂起信号;如果此时该状态是SE0,说明是host drive数据线D+到0,这是一个复位信号(复位信号会持续至少10ms时间)。

要注意的是高速设备在挂起状态时处于高速模式,只是所用的是全速信号。一旦从挂起状态恢复回来,会马上进入高速工作状态而无需进行复位操作。

对于全速操作,SE0表示为复位和EOP,持续时间大于2.5us表示总线复位;
对于高速操作,SE0维持3ms~3.125ms,设备进入全速状态,全速后100us~875us内采样,如果继续维持SE0,则设备总线复位,开始高速握手;
若变为“J”状态,则进入挂起状态”suspend“。

4、高速握手条件

1.设备处于挂起状态,若出现SE0则立即开始高速握手;
2.设备处于全速,SE0持续2.5us,则开始高速握手;
3.设备处于高速,SE0持续3.0ms,切继续持续,则开始高速握手。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

USB 2.0 协议中J、K、SE0状态的定义
在USB 2.0协议中经常会看到以下术语:Chirp K、KJ序列、SE0。这里的状态是根据低速、全速/高速下设备D+和D-上不同的电平信号来决定的。1、J态、K态、SE0,SE1信号转换状态状态Low speed (D+ pull-up)Low speed (D− pull-up)......
USB硬件编码格式NRZI
我们知道USB3.0以前采用的是两根数据线D+和D-所对应的数据传输,采用的是数据编码方式是NRZI(Non-Return-to-Zero Inverted),而USB3.0以后采用的是8/10bit编码。USB使用NRZI编码方式:当数据为0时,电平翻转;数据为1时,电平不翻转。为了防止出现过长......
USB接口类型大全
在介绍插头和插座之前,先多解释一下,基本的叫法。插头,plug,对应的也叫公口,即插别人的;插座,receptacle,对应也叫做母口,即被插的;USB的接口类型,根据接口形状不同,主要可以分为三大类:TYPE类型:普通的硬件直接叫做TypeMini类型:小型版本的叫Mini迷你的Micr......
USB状态错误码USBD_STATUS对照表
USBDI.H定义了一组USB_STATUS_XXX的值. 这些值是从URB的状态字段是对IRP_MJ_INTERNAL_DEVICE_CONTROL调用的USB传输状态返回标识。USBD将URB状态码映射到有效的NTSTATUS码中(但具体详情还得看USBD_STAUTS_XXX的值),在完成IR......
USB2.0 D+和D-的差分信号J、K状态和Chirp J和Chirp K状态
J、K信号状态表示D+和D-两根差分信号数据线的数据发送状态。J、K状态在全速或者低速的模式下,当接收端收检测到D+信号线的电压比D-信号线的电压高出200mV时,表示差分信号“1”,当当接收端收检测到D-信号线的电压比D+信号线的电压高出200mV时,表示差分信号“0”.在高速的模式下,当接收......
驱动级细述USB状态码USBD_STATUS_STALL_PID
USBD_STATUS_STALL_PID错误经常出现在USB抓包过程中。特别是以BUSHOUND为代表的Windows抓包工具。如: 31.1 RESET 31.1 ......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!