USB发展历程
USB 简介
USB最初是由英特尔与微软倡导发起,最大的特点是尽可能得实现热插拔和即插即用。当设备插入时,主机枚举到此设备并加载所需的驱动程序,因此其在使用上远比PCI和ISA等总线方便。
USB在速度上远比并行端口(例如EPP、LPT)与串行接口(例如RS-232)等传统电脑用标准总线快上许多。USB 1.1(USB 2.0 FullSpeed)的最大传输速率为12Mbps,USB 2.0(USB 2.0 HiSpeed)为480Mbps,USB 3.0(USB 3.2 Gen1x1) 为 5Gbps,USB 3.1(USB 3.2 Gen2x1) 为 10Gbps,而USB 3.2(USB 3.2 Gen2x2)更达20Gbps。
USB的设计为非对称式的,它由一个主机控制器和若干通过集线器设备以树形连接的设备组成。一个控制器下最多可以有5级Hub,包括Hub在内,最多可以连接128个设备,因为在设计时是使用7比特定址字段,二的七次方就等于128,一般人说USB连接127个是指连接(某一设备)时需扣除一个连接主机的USB接头,而一台计算机可以同时有多个控制器。和SPI-SCSI等标准不同,USB集线器不需要终结器。
USB 版本
USB 版本 | Speed | type |
---|---|---|
USB1.0 | 1.5Mbps | Low speed |
USB1.1 | 12Mbps | full speed |
USB2.0 | 480Mbps | High speed |
USB3.0 | 5Gbps | Supper speed |
USB3.1 | 10Gbps | Enhanced Supper speed |
USB3.2 | 20Gbps | Enhanced Supper speed |
USB类型
Mini-USB (A)
Mini-USB (B)
Micro-USB
Micro-USB(B)
USB Type A
USB Type B
USB2.0(TypeB)
USB3.0(TypeB)
USB Type C
USB传输协议
BOT 传输协议
BOT传输属于串行传输,以USB3.0为例,使用BOT传输速率是240MB/s, USB3.0 理论速度是500MB/s。
BOT 全称是 Bulk-Only Transport,诞生于 1999 年,专为 USB 1.1 所设计,至今最快的 USB 3.2 都可向下兼容这个基本的 BOT 传输协议。
BOT 传输协议属于「半双工传输模式」,即在传输数据作业开始时,外接 USB 3.0 设备与计算机主板(USB 3.0 扩展卡)之间,在同一时间单位内,每次只传输单一指令,所以速度较 UASP 慢。
传输形式如下:
host发送一笔CBW 下去等待Device 接收, 再发送Data 等待Device 接收,最后在等待Device会CSW上来。
UASP 传输协议
UASP极大的改善了BOT的缺点,以USB3.0为例,使用UASP传输速率大于400MB/s, USB3.0 理论速度是500MB/s。
UASP (USB Attached SCSI Protocol),与USB 3.0一同诞生于2008年,USB应用者论坛(USB-IF)为改良BOT传输协议过慢的缺点,将SCSI架构改进并推出UASP,包括多命令平行处理能力、任务管理与控制等机制,也支持NCQ(原生指令排序),速度比BOT传输模式快上许多,属于“全双工传输模式”。引导UASP虽然能提升传输性能,但也有许多限制,电脑用户必须具备支持UASP的外接USB 3.0设备内部的设备端控制器、主板上的主机端控制器、驱动程序,三者缺一不可(有的还额外需要安装软体)。
如图所示,UASP 引入queue的概念, 采用了4个EndPoint使得command、 data和status独立开来(BOT使用两个Endpoint)。这种结构不再需要等待上一笔数据传输了,可以一次性发下N笔Command,在此过程中如果有Data的话就开始传输Data, Device还可以再接收Data的过程中开始发送Status给host, 双方通过TAG来保证CMD 、DATA、STATUS的一一对应。