USB 3.0 概述:发展历史、应用场景与兼容性
大家好,这一章咱们先不急着聊枚举细节,而是把 USB 3.0 的来龙去脉理清楚。我在做嵌入式这行十几年,见过不少工程师一上来就折腾寄存器,结果被兼容性问题卡住好几天。说白了,搞懂 USB 3.0 的定位和它跟 USB 2.0 的关系,调试的时候能省一半时间。
1.1 USB 技术的发展简史
USB 这个标准从 1996 年 1.0 版本发布到现在,已经快三十年了。你想想看,一个接口标准能活这么久,还越来越强,确实不容易。我刚开始做硬件那会儿,主板后面还一堆串口并口,USB 只是个配角。后来 USB 2.0 出来,才真正把其他接口扫进了历史垃圾桶。
下表列出了几个关键版本的发布时间和速率,你可以快速感受一下这个演进节奏:
| 版本 | 发布时间 | 标称速率 | 编码方式 | 备注 |
|---|---|---|---|---|
| USB 1.0 / 1.1 | 1996 / 1998 | 1.5 Mbps / 12 Mbps | NRZI | Low-Speed / Full-Speed |
| USB 2.0 | 2000 | 480 Mbps | NRZI | High-Speed,半双工 |
| USB 3.0 | 2008 | 5 Gbps | 8b/10b | SuperSpeed,全双工 |
| USB 3.1 Gen 2 | 2013 | 10 Gbps | 128b/132b | SuperSpeed+ |
| USB 3.2 Gen 2×2 | 2017 | 20 Gbps | 128b/132b | 双通道 |
| USB4 | 2019 | 40 Gbps | 128b/132b | 基于 Thunderbolt 3 |
注意 USB 3.0 的速率是 5 Gbps,但实际有效载荷大概在 4 Gbps 左右,因为 8b/10b 编码有 20% 的开销。这个我在后面的枚举流程里会再提到。
1.2 USB 3.0 的核心特性
USB 3.0 相比 USB 2.0 不是简单的"提速",它从底层架构上做了好几个重要改动。我个人觉得,理解这些特性是后面分析枚举时序的基础。
- SuperSpeed 5 Gbps:物理层速率从 480 Mbps 跳到 5 Gbps,翻了 10 倍不止。编码从 NRZI 换成 8b/10b,虽然多了开销,但时钟恢复和误码率都更可控。
- 双总线架构:这是 USB 3.0 最核心的变化。芯片内部同时保留了 USB 3.0 和 USB 2.0 两条通路,互不干扰。后面我会用 SVG 图详细说明。
- 全双工通信:USB 2.0 是半双工,同一时刻只能收或发。USB 3.0 用了独立的发送和接收差分对,可以同时收发数据。这个对吞吐量的提升非常明显。
- 增强电源管理:引入了 U0/U1/U2/U3 四个链路电源状态,设备空闲时可以进入低功耗模式,唤醒也更快。我在做移动硬盘项目时,这个特性对电池续航帮助很大。
- 更高效的协议层:USB 3.0 改用包交换和乱序传输,不再像 USB 2.0 那样依赖轮询。端点可以异步发起请求,总线利用率更高。
1.3 应用场景
USB 3.0 出来之后,很多之前因带宽受限的应用一下子就通了。我举几个实际中常见的场景:
- 外置存储:机械硬盘能跑到 200 MB/s 以上,SSD 更是能接近 500 MB/s。USB 2.0 的 480 Mbps(约 60 MB/s)根本喂不饱。
- 视频采集与传输:1080p 60fps 的未压缩视频流需要约 3 Gbps 带宽,USB 3.0 刚好能扛住。工业相机和视频采集卡基本都转向 USB 3.0 了。
- 扩展坞:同时跑千兆网卡、外接显示器、USB 外设,USB 2.0 的带宽完全不够分。USB 3.0 的 5 Gbps 才能保证多设备不卡顿。
- 高速数据采集:比如示波器、逻辑分析仪的数据上传,以前用 USB 2.0 需要压缩或分段传输,USB 3.0 可以直接流式传输。
我建议大家在选型时,先估算一下实际需要的持续吞吐量。如果超过 200 Mbps,基本就得用 USB 3.0 了。
1.4 与 USB 2.0 的兼容性
这是本章的重头戏。USB 3.0 在设计时就定了一个硬指标:必须能插到 USB 2.0 的端口上用,反过来也要能用。实现方式就是前面提过的双总线架构。
下面这张图展示了 USB 3.0 主机、Hub 和设备内部的两条通路:
从图上可以看得很清楚:USB 3.0 主机内部有两个独立的控制器,分别接两条总线。USB 3.0 Hub 同时挂在两条总线上,它负责把下行端口的数据路由到正确的总线上。USB 3.0 设备只接 USB 3.0 总线,USB 2.0 设备只接 USB 2.0 总线,互不干扰。
在软件层面,USB 3.0 的枚举流程和 USB 2.0 有相似之处,但细节差异很大。比如 USB 3.0 在复位阶段会进行训练序列(Training Sequence),用来做收发器握手和时钟恢复。USB 2.0 则没有这个步骤。这些差异我会在后面的章节里逐个展开。
1.5 物理层变化速览
USB 3.0 的连接器外观最明显的特征就是蓝色舌片(通常为 Pantone 蓝色),而且内部多了 5 根引脚。标准的 USB 3.0 Type-A 连接器在原有 USB 2.0 四根引脚的后方新增了一排端子。
| 引脚编号 | 信号名称 | 功能说明 | 所属总线 |
|---|---|---|---|
| 1 | VBUS | +5V 电源 | 公共 |
| 2 | D- | USB 2.0 差分负 | USB 2.0 |
| 3 | D+ | USB 2.0 差分正 | USB 2.0 |
| 4 | GND | 电源地 | 公共 |
| 5 | SSTX- | SuperSpeed 发送差分负 | USB 3.0 |
| 6 | SSTX+ | SuperSpeed 发送差分正 | USB 3.0 |
| 7 | GND | 信号地 | 公共 |
| 8 | SSRX- | SuperSpeed 接收差分负 | USB 3.0 |
| 9 | SSRX+ | SuperSpeed 接收 |