1. USB协议概述:从USB 1.0到USB4的演进之路

大家好,我是你们的嵌入式系统讲师。今天咱们聊聊USB协议——这个几乎每个工程师都打过交道的接口标准。

说实话,我最早接触USB还是在大学做单片机项目的时候。那时候用USB转串口线调试,经常遇到设备不识别的问题,折腾得我够呛。后来做了十几年嵌入式开发,从USB 1.1一路干到USB4,踩过的坑能写本书了。

嗯,咱们先从最基础的开始。

1.1 USB发展历史:一个接口统一天下的故事

USB的全称是Universal Serial Bus,通用串行总线。1994年,Intel、微软、IBM等七家公司联合推出了这个标准。为什么要搞USB?说白了,就是想把电脑后面那一堆乱七八糟的接口统一起来。

我记得1996年USB 1.0刚出来的时候,速度只有1.5 Mbps。说实话,那时候连鼠标键盘都嫌慢。但到了1998年的USB 1.1,速度提升到12 Mbps,这才开始真正普及。

真正让USB火起来的,是2000年的USB 2.0。480 Mbps的速度,一下子让U盘、移动硬盘成了可能。我那时候做的一个数据采集卡,就是用USB 2.0跟PC通信的。

2008年USB 3.0发布,速度飙到5 Gbps。这个提升太猛了,我印象特别深——第一次用USB 3.0拷贝高清视频,那速度简直爽翻了。

之后就是USB 3.1(10 Gbps)、USB 3.2(20 Gbps),再到2019年的USB4(40 Gbps)。你看这个发展轨迹,每代速度基本翻倍,但背后的技术复杂度也在指数级增长。

1.2 USB 2.0/3.0/3.1/3.2/4.0标准演进

咱们用表格对比一下各代标准的关键参数,这样更直观:

标准版本 发布时间 理论带宽 编码方式 信号线数量
USB 2.0 2000年 480 Mbps NRZI 4根(D+、D-、VBUS、GND)
USB 3.0 2008年 5 Gbps 8b/10b 9根(新增SSTX、SSRX差分对)
USB 3.1 Gen 2 2013年 10 Gbps 128b/132b 9根
USB 3.2 2017年 20 Gbps 128b/132b 双通道
USB4 2019年 40 Gbps 基于Thunderbolt 3 Type-C接口

这里有个坑我要提醒大家。USB 3.0、3.1、3.2的命名曾经非常混乱。USB-IF组织后来统一了命名规则:USB 3.2 Gen 1就是原来的USB 3.0,USB 3.2 Gen 2是原来的USB 3.1,USB 3.2 Gen 2x2才是真正的20 Gbps版本。

避坑指南: 我在项目中遇到过好几次,采购的USB芯片标注的是"USB 3.1",结果实际只能跑5 Gbps。后来才搞清楚,很多厂商还在用老命名。所以选型时一定要看具体速率,别光看版本号。

1.3 USB Type-C接口特性

Type-C接口的出现,可以说是USB历史上最大的变革之一。为什么这么说?

首先,它正反可插。你想想看,以前插USB-A口,总要试两三次才能插对。Type-C一次搞定,用户体验提升太多了。

其次,Type-C支持多种协议。除了USB数据,还能跑DisplayPort视频、PCIe数据、甚至最高100W的电力传输。我做过一个项目,用Type-C同时给设备充电和传输4K视频,一根线搞定所有。

Type-C的引脚定义是这样的:

Type-C母座引脚(从设备端看):
A1: GND    A2: SSTXp1   A3: SSTXn1   A4: VBUS   A5: CC1
A6: Dp1    A7: Dn1      A8: SBU1     A9: VBUS   A10: SSRXn2
A11: SSRXp2 A12: GND

B1: GND    B2: SSTXp2   B3: SSTXn2   B4: VBUS   B5: CC2
B6: Dp2    B7: Dn2      B8: SBU2     B9: VBUS   B10: SSRXn1
B11: SSRXp1 B12: GND

注意看,Type-C有24个引脚,比传统USB多得多。其中CC引脚是关键,它负责检测插入方向、协商供电、识别设备角色。

核心要点: Type-C的CC逻辑芯片(CC Logic)是实现正反插检测和角色协商的核心。设计Type-C产品时,CC逻辑的处理是重中之重。我建议新手先用现成的CC控制器芯片,比如TI的TUSB320系列,别自己折腾分立电路。

1.4 USB OTG概念

USB OTG,全称USB On-The-Go。这个概念最早出现在USB 2.0时代,目的是让移动设备既能当主机(Host),也能当外设(Device)。

你想想看,手机能不能直接插U盘?能。手机能不能当U盘插电脑?也能。这就是OTG的功劳。

OTG引入了一个新的角色——双角色设备(DRD,Dual Role Device)。通过ID引脚的电平来切换角色:ID接地就是Host模式,ID悬空就是Device模式。

到了Type-C时代,OTG的概念被进一步扩展。Type-C通过CC引脚上的电压和通信来协商角色,不再需要专门的ID引脚。这就是所谓的USB Type-C DRP(Dual Role Port)。

实战经验: 我在做一款便携式数据采集仪时,用了USB OTG功能。设备平时插电脑当U盘用,需要时又能接键盘鼠标独立工作。这里有个关键点:OTG切换时,必须重新枚举USB总线。我一开始没处理好,导致切换后设备不识别。后来加了延时和复位逻辑才搞定。

1.5 小结与思考

好了,这一章的内容就这些。咱们回顾一下重点:

  • USB从1.0到USB4,速度从1.5 Mbps提升到40 Gbps,背后是编码方式、信号完整性、协议栈的全面升级
  • Type-C接口是革命性的,正反插、多协议支持、大功率供电,但设计复杂度也更高
  • OTG让设备角色灵活切换,Type-C时代通过CC逻辑实现更智能的角色协商

最后留个思考题:为什么USB 3.0之后,传输距离反而变短了?USB 2.0能传5米,USB 3.0只能传3米,USB4更是建议1米以内。这个问题咱们下一章讲信号完整性时会详细分析。

下一章,咱们深入USB物理层,聊聊D+、D-差分信号的那些事儿。到时候我会分享一个因为PCB走线没做好导致USB 2.0设备间歇性断连的案例,挺有意思的。

公众号:蓝海资料掘金营,微信deep3321