USB传输规范发展历史
1998年USB 1.1规范正式发布,主要用于将PC和电话连接起来实现计算机设备和通讯设备的完美融合,实现移动领域内的人机数据的交互,成为新的廉价而且方便的通讯连接方案。
很快由于传输速率的限制,2000年4月份USB-IF组织制定出了新的USB 2.0传输规范,数据传输速率提升至480Mbps。由于方便的热插拔和快速的数据交换速度,这一标准被广泛采用。
时值今日USB 3.0已经得到大面积的推广。这个建立在2008年的规范在经历了长达四年的风雨后,已经展现出强大的竞争力,Intel和AMD基于原生USB 3.0的芯片组控制器已经成为主流用户的标配,留给第三方芯片厂商机会已经不多。
而在USB 2.0到USB 3.0过渡的过程中,很多人由于种种原因坚守在USB 2.0阵线上,理论上高达60MB/s的传输速度本可以满足绝大部分数据传输需求,不过糟糕的协议和编码方式使得长期以来USB 2.0最高实际速度被局限在30MB/s组左右。本文将从USB 2.0数据传输底层分析传输原理和编码方式,找出一条提升USB 2.0传输速度的途径,最大限度缩短传输时间。
USB 2.0:不能并行的BOT
虽然USB 3.0普及之路有了很大的起色,不过目前在用的USB主控和终端设备大部分依然基于USB 2.0规范,这也直接导致很多高速设备无法享受到5Gbps的高速带宽。
我们知道,USB 2.0的理论传输速率为480Mbps,也就是60MB/s的数据传输带宽,而在实际应用中这一速率受到传输协议(Bulk-Only Transport(BOT)协议)、编码方式的影响被限制在35MB/s以下,理论带宽利用率只有一半左右。
正是基于此,USB 3.0的设计在USB 2.0的基础上新增了两组数据总线,而为了保证向下兼容,USB 3.0保留了USB 2.0的一组传输总线。在传输协议方面,USB 3.0除了支持传统的BOT协议,还新增了USB Attached SCSI Protocol(USAP),可以完全发挥出5Gbps的高速带宽优势,虽然目前只有很少的设备能达到这一传输速率。
传统BOT协议早在1999年USB 1.1规范时就诞生,USB设备在同一时间只能接收或处理一个命令,而到USB 2.0时代,虽然设备传输速率得到了极大的提升,但BOT协议并没有改善,此时BOT协议限制USB传输速率已经显现出来,于是大容量数据交换就迫切需要新的传输协议,因此USB-IF组织就将SCSI和USB相结合推出了新的USAP,支持多命令并发执行和NCQ队列功能,极大的提高的传输效率,另外由于支持USAP的主控设备都具备独立的计算内存模块,USB数据传输对CPU的依赖将会大幅降低。
按照USB-IF组织的计划,USAP除了支持USB 3.0,还向下对USB 2.0开放,不过USB 2.0方面还没有任何音讯,另外受到USB 2.0传输编码方式和匮乏的D+、D-总线限制,USAP要在USB 2.0上展开并不是很容易。