USB2.0 HUB

一、USB2.0 HUB的架构

USB2.0 HUB 需要支持的功能:
1、连接行为
2、电源管理
3、设备的连接/移除检测
4、总线错误检测和恢复
5、HS/FS/LS 设备的支持

从结构上看,hub 主要由三个部分组成,分别是:
HUB Repeater、Hub Controller、Transcation Translator。

USB2.0 HUB_第1张图片

二、数据转发

往Downstream 方向:
Upstream Port 的数据,会通过广播的方式,发给所有使能的工作的Downstream port, 需要注意的是,这种方式只涉及通过Repeater 的传输(即Upstream Port 和Downstream port速度相同)

往UpStream 方向:
Downstream port 的数据直接传给Upstream Port , 不需要再广播给其他Downstream port。
USB2.0 HUB_第2张图片

三、Resume 信号的转发

Resume 信号无论是往Downstream 方向还是往UpStream 方向都是通过广播的方式传输。
USB2.0 HUB_第3张图片

四、Hub frame 同步和EOF Advancement

USB2.0 的传输是以SOF 来进行同步的, SOF(Start-of-Frame)到 EOF(End-of-Frame),我们称之为Frame。
Hub 要与Host 保持同步就是要保证 Frame 是同步的。
USB2.0 HUB_第4张图片Hub 通过内部的两个计时器和一个寄存器来实现同步:

  (micro)frame timer (down counter),
  current (micro)frame (upcounter),
  next (micro)frame (register)。

current (micro)frame: 用来向上计数, 记录UpStream Port 连续发送的两个SOF的时间间隔,保存到 next (micro)frame 寄存器中,有新的SOF来会不停的更新。

(micro)frame timer:用来向下计数,计到0 则认为是新的SOF 开始,这个时候Hub 会向DownStream port 发SOF,当 (micro)frame timer为 0 时,next (micro)frame寄存器会给它赋值 。

需要注意的是:HUB 检测到SOF需要时间, HUb 实际发现SOF开始计时的时间要比Bus 上SOF 的时间要晚, 因此Hub 上Frame 的时间要比BuS 上Frame 的时间整体delay 一段时间。
USB2.0 HUB_第5张图片
为了解决这个整体Delay 的问题,Hub 采用了 EOF Advancement的方式,即在向下计时还没等于0前, 提前认为Frame 结束了。提前的时间应该和HUb 检测SOF的时间一致这样可以抵消整体Delay。

如图所示,HUb 检测 SOF的时间为T2,而EOF 提前的时间也为T2,因此抵消了。由于所有的EOF 都提前了,所以Frame 的时间(SOF 到EOF的时间)也还是T1。(注意:这边主要抵消SOF 检测的时间, USB 线长导致的传播延迟和Reapter 导致的延迟是可以Spec 可以接收的这边不考虑。)
USB2.0 HUB_第6张图片

五、EOF1 和EOF2的概念

简单来说,就是为了防止Device 和HUB 干扰到Host 发下来的SOF,
为了确保Host 在发SOF 时,HUb 和接到Hub下面的device,在这个时间不会发任何数据,因此定义了EOF1 和EOF2 的概念。
EOF1 比EOF2 要早,EOF2 比EOF要早。
USB2.0 HUB_第7张图片

你可能感兴趣的:(USB)