USB2.0集线器HUB
+ -

USB2.0集线器上游端状态机

2023-04-16 本文链接为:http://www.usbzh.com/article/detail-1171.html ,欢迎转载,转载请附上本文链接。

集线器上游端口用于连接根集线器或者连接其上游集线器的下游端口。

上行端口组成

上行端口包含四部分:发送器、发送器状态机、接收器、接收器状态机。
收发器可随集线器配置,工作在高速/全速模式。

上行端口状态:

接收器状态机持续监测上行总线,识别:总线复位、唤醒、挂起等长时序事件,对应设备基础状态(默认 / 地址 / 配置 / 挂起)。

  • 全速模式专属状态:挂起、唤醒、ReceivingSE0
  • 高速模式专属状态:ReceivingIS / ReceivingHJ / ReceivingHK

端口状态

  • 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 握手与高速复位时序。

接收器

 USB2.0集线器上游端状态机

信号/事件名称 来源 释义
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
本文链接为:http://www.usbzh.com/article/detail-1171.html ,欢迎转载,转载请附上本文链接。

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

0 篇笔记 写笔记

USB设备和USB集线器HUB的数据传输
USB高速集线器与USB根集线器之间只通过USB使用USB高速通讯讯方式,而对于低速或全速的数据通讯的转换是由其挂接的最近的USB-HUB负责完成转换。如下图:对于USB高速设备和USB高速HUB,使用高速通讯。对于连接到高速HUB上的低速或全速USB-HUB,使用低速或全速通讯方式。对于连接到高速......
USB 集线器HUB
通过USB集线器,可以很简单的实现主机扩展USB设备的数量。在USB协议规范中,USB集线器作为了一种特殊的设备在存在,USB规范专门为其定义了一种设备类。基本定位USB 集线器:将1 个上行口扩展为多个下行口,工作在物理层,仅做信号转发,非交换机/路由器。USB3 集线器 = 盒内集成USB2......
USB主机端控制器集线器与USB设备类型分类
USB根据设备功能及类型,可以分USB主机端,USB设备端。USB主机端-USB hostUSB主机端也叫USB控制器,包括两大部分,分别为与系统总线进行数据交互的USB控制器和USB总线的根集线器。一个USB主机端就是一个独立的USB总线,其按USB版本可分为OHCI,UHCI,EHCI,xHC......
USB设备与集线器最大可以级联多少层
在USB2.0规范中,定义了USB设备与集线器最大可以级联7层(包括根集线器),即根集线器之设备之间最多有5个继集线器。注意:有一个USB复合(compound)设备,其本身是一个USB集线器并接连1个或多个USB功能设备,这里需要将这个USB集线器算在内。......
USB集线器HUB的枚举过程及集线器状态
USB集线器和其他USB设备一样,都需要在上电时进行配置。在USB协议中,使用默认的端0点。进行上电初期的通信。USB集线器除了配置其自身外,还需要对下行端口连接的其他USB设备进行识别。USB集线器HUB枚举过程USB集线器的上电配置过程如下:USB集线器连接到USB主机的根集线器上。USB......
USB HUB集线器芯片选型
型号TT模式过流检测工作温度封装 CH334GSTT--40~85℃SOP16 CH334RMTT--40~85℃QSOP16 CH334U/FMTTGANG模式-40~85℃QSOP28/QFN24_4x4 CH334S/Q......
USBIP虚拟控制器和根集线器HUB的设备信息分析
USBIP是一套可以实现USB远程设备的本机映射,这样就像在本地操作目标USB设备一样。其原理是在本地端通过安装一个虚拟的USB根控制器,根集线器,同时虚拟出4个USB端口,当远程USB设备连接到远程机器时,可以把远程设备的USB信息通过网络传输到本地,在本地的虚拟USB端口虚拟一个相同的设备,这样......
USBIP 设备树层次分析
通过前面知道,usbip_vhci工程实现的是pnp管理器虚拟出来的PDO的FDO,但同样也是这个FDO创建的PDO虚拟根USB控制器和其子设备HUB的驱动程序。USBIP设备硬件ID名称sys文件inf文件硬件IDusbip-win VHIC Rootusbip_vhic......
USBIP 集线器PDO(VDEV_HPDO)的初始化过程
USB集线器其实也是USB设备的一类,其设备分类分类为0x09。和USBIP虚拟的控制器(VDEV_CPDO)类似,USB控制器创建了其PDO之后,会通过IRP_MN_QUERY_DEVICE_RELATIONS返回USB集线器HUB的PDO设备列表。PNP管理器收到有新的设备之后,会开始收集这个P......
USBIP 虚拟集线器FDO子设备的管理
IRP_MN_QUERY_DEVICE_RELATIONS这得从IRP_MN_QUERY_DEVICE_RELATIONS来谈起,好像有点看的不是很明白。先把上一节的代码复制过来,看一下:static PAGEABLE NTSTATUSget_bus_relations_vhub(pvhub_d......
USBIP 虚拟集线器FDO(VDEV_VHUB )的初始化
AddDevice执行vhci_add_device,返回的设备类型为VDEV_VHUB,集线器HUB的FDO类型。然后初始化HUB的FDO,使用init_dev_vhub(vdev);函数实现static PAGEABLE voidinit_dev_vhub(pvdev_t vdev){ ......
一台电脑上最多可以连接多少台USB设备?
从理论上来讲,一个USB控制器下最多可以连接127个USB设备,不过这也只是理论。实际上由于INTER硬件设计上的缺陷,根本达不到这么多。每个USB设备最多可以定义32个端点(16个输入和16个输出,但必须是一对控制端点),但大多数设备只定义2或3个端点(例如数据输入、数据输出和一个控制端点)。集......
USB3.2集线器设备描述符
USB集线器设备描述符的定义和USB设备的描述符定义一致,详见:http://www.usbzh.com/article/detail-104.html =========================== USB Port20 ===========================......
USB2.0集线器功能模块及设备连接路由
USB集线器HUB用于在USB设备与主机之间建立起连接的桥梁。所以USB设备都是通过USB集线器连接到USB主机。为了让用户更加方便简洁地使用USB设备,USB集线器和USB主机实现了很多复杂的幕后工作,从而大大提高了USB设备的使用和开发的友好性。USB集线器必须支持的功能如下:连接行为C......
USB2.0集线器的连接行为
USB2.0集线器的连接行为Connectivity behavior表现出的各种不同的连接行为,决于它们是否在传输数据包、恢复信号或者空闲状态。一个USB集线器包含一个上游端口(用于连接上级HUB或USB控制器)和多个下游端口(用于连接下游设备)。上游连接定义为朝向主机,下游连接定义为朝向设备。......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • USB资源
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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