USB接口的真实带宽到底有多宽?

如题所述

第1个回答  2022-07-24
关于不同版本的速度问题,理论上:

USB1.1的速度分为1.5Mbps,和12Mbps

USB2.0的速度为480Mbps

USB3.0的速度为5Gbps

USB3.1的的速度为10Gbps

USB3.2的速度为20Gbps

USB4.0的速度为40Gbps

但是实际上支持不同版本的硬件速度真的有这么快吗?

事实上并被如此。

首先以上所述的带宽是包含了协议开销的总带宽,也是理论计算上的最大值。

以批量传输为例。批量传输:协议规定在批量传输模式模式下可以不保留任何带宽。

在USB1.0和USB1.1的协议中,采用了 NRZI的编码方式。USB传输1frame的的时间是1ms,且同步传输的带宽是最大的1023x8=8.184Mbps。

USB1.0 单帧传输时间最大传输块Byte最大传送数总线占用率最大带宽

Byte

中断传输1ms8811%64Byte562Bps

控制传输1ms8329%24x1000 Byte0.192Mbps

同步传输1ms8811%64 Byte492Kbps

块传输1ms64195%1216Byte9728Kbps

USB1.1 单帧传输时间最大传输块最大传送数总线占用率 

最大带宽

中断传输1ms64195%1216Byte9728Kbps

控制传输1ms64Byte137%83.2x1000Byte0.665Mbps

同步传输1ms1023169%1023x1000Byte8.184Mbps

块传输1ms64195%1216Byte9728Kbps

USB2.0传输带宽更快,除了在时钟频率上有所提升,240Mhz,虽然仍然是1frame/1ms,但是USB2.0增加了微帧的功能:及把帧分成了8个微帧,每个微针的传输时间为0.125us。

USB2.0数据包长度

(Byte)

每微帧传输的最大次数最大带宽

中断传输643115.872(MB)127Mbps

控制传输1024324.576(MB)196Mbps

同步传输5121353.248(MB)426Mbps

块传输1024324.576(MB)196Mbps

USB3.0以后,由于采用了8/10 bit的编码方式,理论上总带宽为5Gbps,但是出去协议开销后理论上只剩下4Gbps的带宽。

对于USB3.1,USB3.2在考虑产品设计的时候,带宽同样要有限打八折,在考虑其他问题,实际上最好在8折的基础上再打个八折。

从以上数据我们可以看到:

USB1.1的最大数据理论带宽为8.184Mbps,达不到最高理论值12Mbps

USB2.0的最大数据理论带宽为426Mbps,达不到最高理论值480Mbps

USB3.0的最大数据理论带宽为4Gbps,达不到最高理论值5Gbps

这还只是理论值,实际上USB的带宽还受到线材、连接器、布线、CPU的速度、Memery的速度等各方面的影响。同时还有可能受到总线上其他设备的影响。

通过实际上的测试:

USB1.1最大的实际带宽在:不到1Mbps。

USB2.0最大的实际带宽在40MB左右,当然很多U盘的速度可能只有20MB左右,这还有可能受制于U里面存储芯片的速度。也有可能是Hub上的其他设备在工作,影响了U盘的读写速度,因为块传输的优先级是最低的。

USB3.0最大的实际带宽在460MB左右(实际设计出来的产品会受制于很多因素),比如一块USB3.0的机械硬盘的读速度应该在120MB以上,一块USB3.0接口的SSD移动硬盘应该在250MB读速度应该在以上。可以以此来判断你买的产品的质量的好坏,前提是用于测试的主机的USB3.0接口是OK的。同时,建议在使用台式PC的USB3.0接口的功能时,最好是使用后面直接连在主板上的接口,不要使用前面板飞线的接口,USB3.0带宽上不去,且高速状态下不稳定。