Play Open
Loading Please wait Loading Please wait Loading Please wait Loading Please wait Loading Please wait Loading Please wait

USB接口&协议详解

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。

Copyright © 2088 神之降临者-硬核动作游戏门户 All Rights Reserved.
友情链接