USB2.0是99年发布的标准。USB3.0是2008年发布的标准。最先出USB3.0的时候只有USB3.0一种说法 但到2013年,USB联盟又发布了USB3.1标准,并分了两代。USB3.1Gen1就是原来USB3.0的马甲,换一个名称而已,推出USB3.1的主要更新就是增加USB3.1 Gen2,可以实现10Gbps的带宽。由于带宽的增大,可以实现更大的数据量承载。但是很多主板基本没有Gen2的接口,或者只有一等个Gen2的接口,因为USB3.1 Gen2的控制器需要单独做。如下图,发展到了USB3.1Gen2,主板上的母口就不局限于TYPE-A了,可能还有TYPE-C的母口。
2017年有推出了USB3.2,用来实现2倍于USB3.1Gen2的带宽,也就是20Gbps。而且在接口形态上,完全淘汰了TYPE-A、micro等这些接口,只用TYPE-C。但由于种种原因,难以市场化。所以即使推出到现在,也很难看到相关的设备。而USB3.2也分两代,USB3.1Gen2=USB3.2Gen2,USB3.0=USB3.1Gen1=USB3.2 Gen1,而最大带宽的USB3.2不是叫“USB3.2Gen3”而是USB3.2Gen2 x2。
目前最新的标准是USB4.0。理论带宽达到和雷电相同的40Gbps,所以要和雷电整合了。从此通过主机上一个Type-C接口,外接显示器(DP1.2带宽21.6Gbps、HDMI2.0带宽18Gbps),外接独立显卡(PCI-E x8 2.0带宽32Gbps)都可以满足数据承载。
USB随着传输速率提高,逐步向Type-C接口统一,而Type-C也逐渐演进出独立的标准,包括传输,显示,PD供电规范,Type-C接口也给设备供电带来了更多的可能性…
一个USB系统只能存在一个主机,而为USB器件连接主机系统提供主机接口的部件被称为USB主机控制器。USB主机控制器是一个由硬件,软件和固件组成的复合体。所谓固件,通常是指承担着一个系统最基础,最底层工作的软件。这些软件与硬件紧密联系,保存在非易失性存储器中,无法被用户直接读出或者修改。
USB系统是属于分层的星状拓扑结构,主机控制器中心。主控制器通过USB ROOT HUB(根集线器)对外通信,它为主机提供一到多个可以连接其他USB外设的USB扩展接口,总线上最多可连接127个设备。Hub串联数量最多5个。
USB器件可以分为两种:USB HUB和USB功能器件。USB功能器件通过USB HUB挂接在USB总线上。USB HUB 由两部分硬件组成:HUB Repeater和HUB Controller。HUB应答器负责响应主机对USB外设的设置以及对连接到它下行端口的USB功能部件的连接和移除进行检测,分类,并将其端口信息传送给主机。而HUB控制器则提供主机到HUB之间数据传输的物理机制。每个HUB上有一个向主机表明身份的“BIOS”系统。每一个USB HUB 挂接在总线上后,主机都会对它进行配置,并监控它的每一个插口。当USB HUB的插口内插入USB功能器件时,USB HUB会测到新出现的USB功能器件,并将信息发送给主机。主机收到有新器件的信息后,对新器件进行配置。USB HUB下面可以连接其他的USB HUB,以便连接更多的USB功能组件。
USB总线上的所有通信都是由USB主控制器发起,由主控制器来读取保存在USB功能器件内某些寄存器内的数据。如果USB功能器件需要向主控制器请求数据传输,也只能是将请求信号发送到USB功能器件的中断端点。而主控制器会自动巡检USB总线上所有设备的中断端点,如果有中断请求,则由软件对中断请求进行处理。
简单来说,USB总线的工作模式类似于一个轮训系统,一切通信都由主控制器控制,在主控制器与USB功能器件之间进行,USB功能器件之间不能通信。