USB(Universal Serial Bus,通用串行总线)是计算机和外部设备通信的标准化接口协议。自1996年发布USB 1.0以来,已经发展出多个版本(USB 2.0、USB 3.x、USB4),并广泛应用于PC、移动设备、嵌入式系统等领域。
1. USB协议版本及关键特性
版本发布时间最大速率关键改进USB 1.019961.5 Mbps(Low Speed)
12 Mbps(Full Speed)首次标准化,支持热插拔USB 2.02000480 Mbps(High Speed)广泛兼容,支持OTGUSB 3.020085 Gbps(SuperSpeed)全双工传输,提高能效USB 3.1201310 Gbps(SuperSpeed+)引入Type-C接口USB 3.2201720 Gbps(SuperSpeed+ 2x2)多通道传输USB4201940 Gbps(基于Thunderbolt 3)兼容雷电3,支持DP Alt Mode
2. USB物理接口类型
USB接口形态多样,主要分为:
(1) 传统接口(USB-A / USB-B)
USB-A(Host端,如PC)
USB-B(Device端,如打印机)
Mini-USB / Micro-USB(旧款手机、移动设备)
(2) USB Type-C(现代标准)
对称设计(正反可插)
支持USB 3.1/3.2/USB4
支持Alternate Mode(如DisplayPort、Thunderbolt 3)
供电能力增强(USB PD,最高240W)
3. USB通信架构
(1) 拓扑结构
Host(主机):PC、手机(OTG模式下)
Device(设备):U盘、键盘、鼠标
Hub(集线器):扩展USB接口
(2) 数据传输模式
传输类型用途示例控制传输(Control)设备枚举、配置(Endpoint 0)USB设备初始化中断传输(Interrupt)低延迟、小数据量键盘、鼠标批量传输(Bulk)大数据量,无实时性要求U盘、打印机等时传输(Isochronous)实时流数据(无重传)摄像头、音频设备
4. USB协议栈
(1) 物理层(PHY)
负责信号调制(NRZI编码、差分信号D+/D-)
USB 2.0:单通道差分对(D+/D-)
USB 3.0+:增加超高速差分对(SSRX+/SSTX+等)
(2) 链路层(Link Layer)
数据包(Packet)封装:
SYNC(同步)
PID(包标识,如DATA0/DATA1)
CRC(校验)
(3) 协议层(Protocol Layer)
设备枚举(Enumeration):Host识别Device并分配地址。
事务(Transaction):IN(Host读)、OUT(Host写)、SETUP(控制命令)。
(4) 应用层
设备类(Class):标准化接口(如HID、CDC、MSC)。
示例:
- HID(Human Interface Device):键盘、鼠标
- CDC(Communication Device Class):虚拟串口
- MSC(Mass Storage Class):U盘
5. USB设备开发关键点
(1) 硬件设计
USB控制器(如STM32的USB OTG IP、FTDI的USB转串口芯片)。
ESD防护:TVS二极管防止静电损坏(如USBLC6-4SC6)。
阻抗匹配:USB 2.0差分线90Ω阻抗控制。
(2) 软件实现
设备描述符(Descriptor):定义设备类型、接口、端点。
// USB HID键盘描述符示例:
const uint8_t HID_ReportDescriptor[] = { 0x05, 0x01, // Usage Page (Generic Desktop) 0x09, 0x06, // Usage (Keyboard) 0xA1, 0x01, // Collection (Application) 0x05, 0x07, // Usage Page (Key Codes) 0x19, 0xE0, // Usage Minimum (0xE0) 0x29, 0xE7, // Usage Maximum (0xE7) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x75, 0x01, // Report Size (1) 0x95, 0x08, // Report Count (8) 0x81, 0x02, // Input (Data, Var, Abs) };
协议栈选择:
嵌入式:LibUSB、STM32 USB库。
Linux:usbcore内核模块 + Gadget驱动。
(3) 调试工具
USB协议分析仪(如TotalPhase Beagle、Wireshark + USB抓包)。
逻辑分析仪(解码USB 2.0低速/全速信号)。
6. USB常见问题
(1) 兼容性问题
供电不足:USB 2.0设备插在USB 3.0端口可能因电流限制无法工作。
协议版本混淆:USB 3.0线缆必须支持超高速信号,否则降级为USB 2.0。
(2) 信号完整性
长线衰减:USB 2.0建议线长<5m,USB 3.0<3m。
EMI干扰:差分线需平行走线,避免跨分割。
(3) 软件配置
驱动缺失:Windows需安装INF驱动(如自定义HID设备)。
枚举失败:描述符错误导致Host拒绝设备。
7.USB OTG(on-the-go)
USB OTG(On-The-Go)是USB标准的扩展,允许设备(如手机、平板、嵌入式设备)在**主机(Host)和外设(Device)**模式之间动态切换,从而无需依赖PC即可直接与其他USB设备通信。
7.1. USB OTG 核心概念
(1) 与传统USB的区别
特性传统USBUSB OTG角色固定主机(Host)或设备(Device)固定可在Host/Device间动态切换(Dual-Role)供电方式主机供电(5V/500mA)可协商供电(支持电池供电设备)典型应用PC连接U盘、键盘等手机读取U盘、相机连接打印机等
(2) 关键术语
A-device(默认Host):提供VBUS电源(如手机连接U盘时)。
B-device(默认Device):消耗VBUS电源(如U盘被手机读取时)。
HNP(Host Negotiation Protocol):允许设备动态切换Host/Device角色。
SRP(Session Request Protocol):用于唤醒或协商供电。
7.2. USB OTG 硬件设计
(1) ID 引脚识别
Micro-USB/Mini-USB接口的ID引脚决定初始角色:
ID接地(0V) → 设备作为A-device(Host)(如OTG手机连接U盘)。
ID悬空/接高电平 → 设备作为B-device(Device)(如手机连接PC)。
Type-C接口:通过CC(Configuration Channel)引脚协商角色,无需ID引脚。
(2) VBUS供电管理
A-device需提供5V VBUS电源(通常通过PMIC或专用OTG芯片如TPS65133)。
B-device检测VBUS电压(>4.4V)以确认连接。
(3) 典型电路设计
Micro-USB OTG 连接示例:
┌───────────────┐ ┌───────────────┐
│ OTG设备 │ │ 外设(U盘) │
│ │ │ │
│ VBUS ────────┼───────┼─► VBUS │
│ D+ ────────┼───────┼─► D+ │
│ D- ────────┼───────┼─► D- │
│ GND ────────┼───────┼─► GND │
│ ID ────┐ │ │ │
│ ˅ │ │ │
│ (接地) │ │ │
└───────────────┘ └───────────────┘
7.3. USB OTG 协议与软件支持
(1) 协议栈
USB 2.0 + OTG补充协议:支持HNP/SRP协商。
Linux/Android:通过dwc2/dwc3驱动支持OTG(如/sys/kernel/debug/usb/目录下的角色切换)。
嵌入式系统(STM32等):需启用USB OTG库(如STM32Cube的HAL_PCD和HAL_HCD)。
(2) 常见应用场景
场景角色切换示例手机读取U盘手机(Host) ↔ U盘(Device)通过OTG线连接FAT32格式U盘。两台手机互传文件动态切换Host/Device(需HNP支持)通过USB OTG + 文件传输协议(MTP)。嵌入式设备调试MCU(Host) ↔ PC(Device)STM32通过USB CDC虚拟串口输出日志。
7.4. USB OTG 常见问题
(1) 兼容性问题
电压不足:部分设备VBUS输出电流不足(如<500mA),导致外设无法工作。
解决方案:外接供电或使用带电源的USB Hub。
协议不支持:旧设备可能仅支持USB 2.0,无法触发OTG模式。
(2) 软件配置
Android设备:需内核启用OTG驱动,部分厂商可能禁用此功能。
嵌入式MCU:需正确配置USB时钟和引脚复用(如STM32的PA11/PA12)。
(3) 物理接口
Type-C替代Micro-USB:Type-C通过CC引脚实现更灵活的DRP(Dual-Role Power)模式。
8. 总结
USB协议是分层设计的复杂标准,涵盖物理接口、数据链路、协议栈和应用层。
关键设计点:
硬件:接口类型(Type-C/A/B)、ESD防护、阻抗控制。
软件:设备描述符、协议栈(HID/CDC/MSC)、Host/Device角色管理。
未来趋势:USB4/Thunderbolt 4统一高速接口,支持40Gbps + DP Alt Mode。