USB2.0集线器的连接行为
USB2.0集线器的连接行为Connectivity behavior表现出的各种不同的连接行为,决于它们是否在传输数据包、恢复信号或者空闲状态。
一个USB集线器包含一个上游端口(用于连接上级HUB或USB控制器)和多个下游端口(用于连接下游设备)。上游连接定义为朝向主机,下游连接定义为朝向设备。
这里的朝向指的是数据流动方向。
当然,USB集线器如果没有任何连接时表现为空闲态。处于是空闲态时,所以的USB集线器端口都处于接收接收模式,等待下一个数据包的开始。
USB2.0集线器的上游和下游连接
如果面向下游端口使能即可以通过USB集线器传播信号,同时USB集线器检测到该端口上的数据包开始,则在上游方向与该HUB面向上游的端口建立连接。这意味着一个USB设备或者HUB传输一个向上传输的包时,则在此链路上的所有HUB和主机都能收到引包。
上游数据非广播工,由底层向上层冒泡传输,不经过其它子节点。
在下游方向,集线器以广播模式运行。当集线器在其面向上游的端口上检测到数据包的开始时,它将建立到所有启用的面向下游的端口的连接。如果端口未启用,则它不会向下游传播数据包信令。
如上图最左边的上游连接,数据由上游端口经过HUB,广播到下游所有可用(未禁用的)的端口。而上游连接直接由设备经HUB的下游端口和上游端口进行传输,而并不会广播到其它相层次级别的HUB或者端口。
由于USB2.0下游连接的这种广播方式,效率比较低,在USB3.0规范中改进了数据路由,提高了效率。
USB2.0集线器的恢复连接(Resume Connectivity)
USB集线器对于上游和下游恢复信号表现出不同的连接行为。
挂起的集线器反映从其上游面向端口到其所有启用的下游面向端口的恢复信号。
从HUB上游来的恢复信号会发送给HUB的所有没有被禁用的下游端口。
挂起的集线器检测到来自选择性挂起或启用面向下游端口的恢复信号,则集线器将该信号反映到上游及其所有启用的面向下游的端口,包括启动恢复序列的端口。恢复信号不会反映到禁用或挂起的端口。
不仅上游,还有下游。但不包括禁用的端口,但包括已经挂起的下游端口。
USB2.0集线器故障恢复机制
集线器是在主机和其他设备之间建立连接的基本USB组件。它必须检测到任何连接故障,尤其是可能导致死锁的连接故障,并防止发生。集线器只有在处于中继器模式时才需要处理连接故障。
集线器还必须能够检测并从发送到集线器控制器的丢失或损坏的数据包中恢复。因为集线器控制器实际上是另一个USB设备,所以它必须遵守与其他USB设备一样的超时规则。