USB2.0集线器上游端状态机
2023-04-16
本文链接为:http://www.usbzh.com/article/detail-1171.html ,欢迎转载,转载请附上本文链接。
集线器上游端口用于连接根集线器或者连接其上游集线器的下游端口。
上行端口组成
上行端口包含四部分:发送器、发送器状态机、接收器、接收器状态机。
收发器可随集线器配置,工作在高速/全速模式。
上行端口状态:
接收器状态机持续监测上行总线,识别:总线复位、唤醒、挂起等长时序事件,对应设备基础状态(默认 / 地址 / 配置 / 挂起)。
端口状态
- ReceivingIS(高速空闲接收)高速下检测到 SE0、唤醒结束、复位结束后进入;3ms 定时状态。
- ReceivingHJ / ReceivingHK高速下检测到 HJ / HK 高速差分电平,进入对应接收态。
- ReceivingJ(全速空闲接收)全速下检测到空闲 / SE1;3ms 定时,仅发送器非激活时计时才推进。
- Suspend 挂起态ReceivingJ / ReceivingIS 的 3ms 计时溢出后进入;同时启动 Hub 控制器 2ms 定时器,超时则控制器进入挂起,可响应唤醒。
- ReceivingK全速检测到 SK 唤醒电平进入;定时范围:2.5μs~100μs。
- Resume 唤醒态ReceivingK 计时结束、或挂起态检测到 K 信号进入;时钟不稳时可短暂停留,时钟稳定后正常转发上行信号。
- ReceivingSE0全速下检测到 SE0 进入;最小定时 2.5μs,作用:抗噪声、防止误复位,保证 10ms 内可正常进入总线复位流程。
- Bus_Reset 总线复位ReceivingSE0 计时溢出、上电复位 POR、高速降级后持续 SE0 都会进入;高速端口在此完成 Chirp 握手与高速复位时序。
接收器

| 信号/事件名称 | 来源 | 释义 |
|---|---|---|
| HS | 内部信号 | 端口工作在高速模式 |
| Tx_active | 发送器 | 发送器处于 Active 激活转发状态 |
| J | 内部信号 | 上行端口检测到 J(空闲态)或 SE1 信号 |
| HJ | 内部信号 | 上行端口检测到高速 J 信号 |
| EOI(End of Interval) | 内部信号 | 定时周期结束、计时超时 |
| EOITR | 内部信号 | 唤醒尾声 K→SE0 电平切换后,延迟24个全速位时间产生的内部时序信号 |
| HK, K | 内部信号 | 上行端口检测到 高速HK 信号 / 全速K唤醒信号 |
| Tx_resume | 发送器 | 发送器处于 Sresume 发送唤醒状态 |
| HS_Idle | 内部信号 | 高速上行端口处于高速空闲状态 |
| SE0 | 内部信号 | 全速上行端口检测到 SE0 差分归零信号 |
| EOR | 内部信号 | 上行复位信号时序结束 |
| POR | 硬件自定义 | 上电复位(Power-On Reset) |
发送器(Transmitter)
该状态机用于上行端口链路连通时持续监控上行信号。
核心作用:隔离下游错误,防止下游端口的错误信号、数据泛滥(babble)、断连异常向上游转发,避免上级集线器误判,导致本集线器被上级禁用或断连。提升总线稳定性。

| 状态 | 功能 |
|---|---|
| Inactive | 发送电路高阻关闭,静默待机; |
| Active | 正常工作,透传下游上行数据; |
| RepeatingSE0 | 短时转发SE0,带23bit定时; |
| SendJ | 输出单端J空闲电平,收尾SE0; |
| GEOPTU | 帧末尾发两段SE0,标识数据包结束; |
| Sresume | 上行唤醒专用,发K信号、重启时钟、同步下游唤醒,严格限制1~15ms。 |
Inactive 非激活态:
由发送J态、唤醒发送态、接收器总线复位态进入;
高速模式下,帧结束点EOF1或收到下游HEOP包结束信号,也会切为此状态。
此状态下:差分+单端发送电路全部禁用、高阻态,无任何驱动输出。
Active 激活转发态
中继器进入 WFEOP 状态时,从非激活态切入;
若SE0转发后首个电平不是J,也会从SE0转发态切回此态。
功能:原样转发下游端口数据至上行总线。
RepeatingSE0 SE0转发态
激活态下向上行发出1bit时间的SE0后进入;
仍保持发送器工作、持续转发下游信号;
定时时长:23个全速位时间。
SendJ 发送J空闲态
SE0转发态计时满23位、或信号从SE0切为J/SE1时进入;
GEOPTU 结束也会进入;
持续1个全速位时间,向端口驱动单端SJ空闲信号。
GEOPTU 向上生成包结束信号
帧计时器到达EOF1帧结束点时,从激活态/SE0转发态进入;
连续发送 2个全速位时长的SE0,作为上行包结束标识。
Sresume 唤醒发送态
接收器处于挂起、且中继器进入WFEOP时,从非激活态进入;
代表下游设备/集线器内部产生唤醒请求,需要建立上行唤醒链路。
- 进入该状态:重启挂起期间关闭的时钟;
- 持续向上行驱动K唤醒信号;
- 锁定接收器为唤醒态,同时让所有正常工作的下游端口进入
TransmitR唤醒转发态; - 时长约束:最少1ms、最大15ms。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936 USB技术交流3:1031974172
USB2.0集线器HUB





