资讯事件

usb hub的工作原理是什么

浏览次数 : 491
作者 : PURPLELEC
更新时间 : 2023-08-14 11:15:46
  USB HUB用于设备扩展连接,所有USB DEVICE都连接在USB HUB的端口上。一个USB HOST总与一个根HUB (USB ROOT HUB)相连。USB HUB为其每个端口提供100mA电流供设备使用。
  同时,USB HUB可以通过端口的电气变化诊断出设备的插拔操作,并通过响应USB HOST的数据包把端口状态汇报给USB HOST。
  一般来说,USB设备与USB HUB间的连线长度不超过5m,USB系统的级联不能超过5级(包括ROOT HUB)。
  USB Hub的下游各个接口会平分上游接口带宽,加上USB Hub本身也需要传输控制信号,所以下游各个设备的带宽是必然要小于上游设备的总带宽。
  实际情况是,现在主流的USB 3.0设备都很难占满总带宽(5Gbps),比如主流的3.0 U盘大概只有100MB~200MB/s的传输速度,折合带宽也不到2Gbps,所以实际情况是不一定。
USB Hub
  USB Hub的原理比较复杂,USB协议规范里最复杂的部分就是Hub的章节,USB Hub与网络设备(以太网)的Hub原理相差很多,如果真要类比的话,复杂度大概相当于网络的设备里的路由器。
  USB协议中有控制传输、Bulk传输、中断传输、同步传输四种模式,其中:
  控制传输用于传输控制设备一级的指令;
  Bulk传输(中文名可能叫批传输)主要用于传输USB各种大块数据,比如U盘读写的数据;
  中断传输,用于传输小块数据,鼠标键盘主要使用中断传输;
  同步传输,用于传输实时性不够强的数据,也就是说不保证可靠性,部分USB音频设备使用这种传输;
  USB Hub负责整合下游设备的各种传输信号,其中同步传输有一定限制,如果超过总带宽的某个比例(记忆中是20%),那么超出比例的同步传输将被丢弃;中断传输和控制传输占用的是保留带宽,不允许丢弃;Bulk传输占用剩下的带宽,如果没有同步传输,那么Bulk传输大概能占到90%以上的总带宽。
  USB Hub整合数据以后向上游设备发送,如果上游还有USB Hub,那么上游的设备还会继续做同样的操作。另外,需要说明的是,通常来说主机上的USB接口,本身就是一个Root Hub,如果一个PC上有多个接口,可能是多个接口共用一个控制器,每个控制器上有一个Root Hub。
  所以USB Hub相当于重新封装了各种数据包,类似于网络设备里的路由器,而不像交换机或者集线器(Hub)那么简单。
  同时USB Hub自身还是一个USB设备,负责向上级汇报自己的下级有多少个设备,它本身也要占用一些带宽周期性汇报自己的状态。
USB Hub
  由于以太网等很多网络(常见共享HUB连接的内部网)是基于总线方式,物理上是广播的,就是当一个机器发给另一个机器的数据,共享HUB先收到然后把它接收到的数据再发给其他的(来的那个口不发了)每一个口,所以在共享HUB下面同一网段的所有机器的网卡都能接收到数据。
  交换式HUB的内部单片程序能记住每个口的MAC地址,以后就该哪个机器接收就发往哪个口,而不是像共享HUB那样发给所有的口,所以交换HUB下只有该接收数据的机器的网卡能接收到数据,当然广播包还是发往所有口。
  显然共享HUB的工作模式使得两个机器传输数据的时候其他机器别的口也占用了,所以共享HUB决定了同一网段同一时间只能有两个机器进行数据通信,而交换HUB两个机器传输数据的时候别的口没有占用,所以别的口之间也可以同时传输。
  这就是共享HUB与交换HUB不同的两个地方,共享HUB是同一时间只能一个机器发数据并且所有机器都可以接收,只要不是广播数据交换HUB同一时间可以有对机器进行数据传输并且数据是私有的。