一. USB2.0-HUB工作机理
1. USB2.0 HUB的结构
USB2.0支持低速(1.5Mbps)、全速(12Mbps)以及高速(480Mbps)三种外部设备。为了将全速/低速设备对高速设备可用带宽的影响降到最小,USB2.0提供了一种机制,该机制支持在HUB连接的是全/低速设备的情况下,主控制器与HUB之间以高速传输所有设备的数据。
USB2.0 HUB由三部分组成:HUB控制器、HUB中继器和事务转换器,如图1所示。HUB控制器提供主机到HUB的通信机制,主机可以使用HUB的专用状态和控制命令来配置一个HUB,并监视和控制其各个下行端口。HUB中继器是上行端口和下行端口之间的一个协议控制开关,它负责连接的建立和拆除,也支持异常处理,如总线错误检测和恢复、连接/断开检测,还对复位和挂起/恢复指令提供硬件支持。事务转换器提供了一种机制,在HUB连接的是全/低速设备的情况下,支持主控制器与HUB之间以高速传输所有设备的数据。
HUB中继器负责管理以相同速度操作的上行端口和下行端口之间的连接,它支持全速/低速连接和高速连接。当HUB的上行端口被连接到以全/低速操作的电气环境时,该HUB的高速功能被否决。HUB中继器必须作为一个全/低速中继器来操作,且路径逻辑将下行端口连接到HUB中继器。
当HUB的上行端口被连接到以高速操作的电气环境时,全/低速中继器不起作用,HUB必须以高速操作。此时,下行端口所连设备的操作速度决定了路径逻辑是将一个端口连接到事务转换器还是连到Hub中继器。当下行端口连接一高速设备时,路径逻辑将把该端口连接到HUB中继器,并且HUB中继器必须作为高速中继器来操作;当下行端口连接一全/低速设备时,路径逻辑必须将该端口连接到事务转换器,由事务转换器接受上行端口的高速Split事务,并将其转换成全/低速事务。
2. 事务转换器的工作机理
当HUB以高速操作,而它的下行端口连接全/低速设备时,它有一特殊任务,即必须将高速信令环境与全/低速信令环境隔离开,这个功能由HUB的事务转换器来实现。
图2所示为事务转换器的示意图。事务转换器(TT)由高速处理器、全/低速处理器和缓冲器(灰色方框部分)组成。缓冲器用来保存处理中的事务,并跟踪每个被缓冲事务的状态。TT高速处理器操作独立于全/低速处理器,两种处理器都使用本地事务缓冲器以交换所需的信息。
当全/低速设备提出传输请求时,主机将其转换成相应的高速Split事务送到设备所连的TT。在高速总线上从不使用低速导言包来指示低速事务,而是以Split事务令牌来译码低速事务。主机有一个单独的事务时间表,该时间表用来保存高速事务以及全/低速设备通信的高速Split事务。
当主控制器以高速发送一个Start-split事务时,Split事务寻址到相应设备的TT,该TT将接受这个事务并临时保存在TT事务缓冲器中。高速处理器以相应的握手响应通知主控制器这个事务已被接受。当下行全/低速总线为“下一个”事务做好准备时,全/低速处理器按序处理存在事务缓冲器中的Start-split事务时,全/低速事务被发送到下行端口所连的全/低速设备。
当全/低速设备完成全/低速事务后,全/低速处理器将该全/低速事务的结果信息积聚在本地缓冲器中,以便以后传送给主控制器。在将来的某个时间,主控制器发送一高速Complete-split事务,高速处理器检查这个高速Complete-split事务并响应之,主控制器从TT缓冲器中取回相应全/低速事务的状态/数据/结果。
当高速处理器接受Start-split事务时,该事务积聚在缓冲器中,以等待下游总线为其服务。TT有两类缓冲器,分别用来缓冲周期事务(等步/中断)和非周期事务(批量/控制)。主机对周期事务缓冲器的管理不同于非周期事务缓冲器。
3. 事务转换器的实现技术
USB2.0向下兼容USB1.1和USB1.0,当USB2.0 HUB下行端口连接USB2.0设备时,直接通过中继器与主机通讯;当下行端口连接USB1.0或USB1.1时,就需要事务转换器。
USB2.0 HUB事务转换器目前有两种方式:STT和MTT,两者区别如图3和图4所示。STT也称单事务翻译,4个下行端口共享1个事务转换器TT,每个端口的带宽为port1+port2+port3+port4=12Mbps;MTT,也称多事务翻译,每个端口各自对应一个事务转换器TT,每个端口的带宽为port1=port2=port3=port4=12Mbps。
目前市场上常用的汤铭品牌的HUB芯片,FE1.1采用的是MTT技术,而FE1.1s采用的是STT技术。
二. USB3.0 HUB 工作机理
1. USB3.0 HUB的实现技术
USB3.0 HUB向后兼容USB2.0,是通过直接增加了SS差分信号对来实现的。USB3.0 HUB实现的机制其实就是SS HUB+USB2.0 HUB。SS HUB是一个逻辑上的HUB,表明电路只工作在SS,向下行端口转发上行端口SS数据包。也就是说,USB3.0 HUB接上后,主机实际上是看到两个USB设备,分别是SS设备和HS设备。
因为480Mbps/5Gbps是可以同时工作的,如果若干个USB设备插在USB3.0 HUB上,其中USB3.0设备工作在SS,共享5Gbps带宽,USB2.0设备共享480Mbps,两个速度是可以同时工作的。
2. 最新的USB3.0 HUB技术
如前所述,如果下行端口接的是USB2.0设备,那么所有USB2.0设备共享的是480Mbps。无法利用USB3.0 HUB的SS通道。
好在采用新一代Super TT技术的USB3.0集线器,突破了这个限制。该技术能够对USB3.0和USB2.0的协议进行互相转换,从而使USB2.0设备共享USB3.0的高速带宽(5Gbps),每个USB2.0设备同时独享480Mbps的USB2.0带宽。
目前能查到的采用SuperTT技术的USB3.0 HUB,有EVERPRO公司的EPU3H01AR,感兴趣的朋友可以去了解一下。
三. 参考资料
USB-HUB带宽共享机制