当前位置: 首页 > news >正文

USB2.0 和 USB3.0 枚举对比

USB2.0 和 USB3.0 的枚举流程整体类似,但在速度协商、总线结构、设备描述符、端点配置、供电能力等方面存在本质区别。下面我们分阶段详细对比 USB2.0 和 USB3.0 枚举的异同点。


🌐 总览对比表

项目USB2.0USB3.0
接口类型D+/D- 差分线D+/D-(USB 2.0) + SSTX/SSRX(USB 3.0 超速通道)
最大速率High-Speed:480 MbpsSuperSpeed:5 Gbps
枚举开始时速率全部以 低速/全速/高速 开始以 USB2.0 协议开始,然后进行 USB3.0 协议握手
设备识别通过上拉 D+(全速/高速)通过 USB 2.0 检测 D+/D-,然后 SuperSpeed 通过 RxTerm
描述符结构标准 Device/Configuration/Interface/Endpoint增加 BOS、Device Capability、SuperSpeed Endpoint
供电能力默认最大 500mA默认最大 900mA(初始阶段仍为 USB2.0 的 100mA)
枚举后传输速率USB2.0 支持 low/full/high-speed若支持,则升级到 SuperSpeed
多端点支持最多 16 个 IN/OUT 端点最多 32 个端点,支持 Streams

🧩 枚举流程对比详解

1. 物理连接与上电检测

阶段USB2.0USB3.0
电缆连接主机检测 D+/D- 上拉,判断为 USB 设备主机检测 D+/D-(2.0) 和 RxTerm(SuperSpeed Rx 检测终端电阻)
上电默认提供 100mA 电流同上,但可后续协商至 900mA

2. Reset & Speed Negotiation

  • USB2.0:

    • 主机对 D+/D- 拉低 10ms,产生 Reset 信号
    • 设备响应 Chirp K-J-K-J… 协议,升级为 High-Speed
  • USB3.0:

    • 同样使用 USB2.0 Reset
    • 然后进行 Link Training and Status State Machine (LTSSM) 操作,建立 SuperSpeed 连接(8b10b 编码)

3. 基础描述符读取流程(控制传输)

两者都通过 EP0 端点(控制端点)传输:

  • 获取 Device Descriptor
  • 设置设备地址(SET_ADDRESS)
  • 获取 Configuration Descriptor
  • 设置配置(SET_CONFIGURATION)
区别点USB2.0USB3.0
描述符版本字段 bcdUSB0x02000x0300
增加 BOS 描述符✅,包含设备功能,如 USB2.0扩展、SuperSpeed、容器ID等
SuperSpeed 端点描述符✅,包含 burst size, streams 等字段

4. BOS(Binary Object Store)描述符(USB3.0 新增)

  • **作用:**让主机知道设备支持哪些 USB3.0 新功能(比如:LPM、SuperSpeed、USB2.0扩展)
  • **结构:**包含一个 BOS Header + 一个或多个 Device Capability 描述符

5. 配置与功能确认

USB3.0 设备可能通过 BOS 描述符告知主机其 SuperSpeed 能力,主机会根据支持情况:

  • 保持在 USB2.0 模式(兼容)
  • 或切换到 USB3.0 模式

📌 示例流程对比(简化版)

USB2.0 枚举流程:

  1. 设备插入,上拉 D+,主机检测
  2. 主机发出 Reset 信号
  3. 若设备支持 High-Speed,则 Chirp 信号协商
  4. 主机发送 GET_DESCRIPTOR(Device)
  5. 设置地址
  6. 读取更多描述符(Configuration)
  7. 设置配置
  8. 完成,设备进入工作状态

USB3.0 枚举流程:

  1. 设备插入,上拉 D+,主机检测为 USB2.0 设备
  2. 同时通过 RxTerm 检测 SSTX 接线,确认支持 USB3.0
  3. 主机发出 Reset 信号
  4. USB3.0 进行 Link Training 建立 SuperSpeed 连接(LTSSM)
  5. 主机读取 Device Descriptor(包含 bcdUSB = 0x0300)
  6. 读取 BOS 描述符
  7. 设置地址
  8. 读取 Configuration 和 SuperSpeed Endpoint 描述符
  9. 设置配置
  10. 升级到 SuperSpeed 模式,完成枚举

🎯 重点区别总结

项目USB2.0USB3.0
初始化过程全程 USB2.0 协议初始 USB2.0,后升级为 USB3.0
支持描述符标准 + Class 描述符增加 BOS、Device Capability、SuperSpeed Endpoint
通信端口EP0EP0 + Streams
功耗管理基本供电管理增加 LPM(Link Power Management)能力
传输方式控制、中断、批量、等时同上,但支持 Streams(批量的改进)

如你在设计 USB3.0 设备(如你提到的深度相机 + DTOF 激光雷达系统),需特别关注:

  • BOS 描述符的正确编写
  • SuperSpeed Endpoint 属性设置(Burst、Streams)
  • LTSSM 状态机初始化
  • 多接口/多配置支持

需要我给你画个图来展示 USB3.0 枚举流程图吗?还是要示例代码(如 FunctionFS + USB3.0 描述符)?

http://www.dtcms.com/a/320139.html

相关文章:

  • 数据标注之数据集的类型与如何标注
  • Ubuntu24.04的“errors from xkbcomp are not fatal to the X server”终极修复方案
  • 【驱动】RK3576-Debian系统使用ping报错:socket operation not permitted
  • 3_steels_detect_CSDN_20250807_165405
  • spring cache(二)核心接口
  • Claude Code MCP 网络搜索配置命令
  • Qwen3-235B-A22B-Instruct-2507模型介绍
  • 【更新被拒绝,因为推送的一个分支的最新提交落后于其对应的远程分支。】
  • 【网络编程】一请求一线程
  • 【洛谷题单】--分支结构(一)
  • 《网络空间测绘技术白皮书》
  • Docker容器强制删除及文件系统修复完整指南
  • 8. 字符串转换整数 (atoi)
  • 大模型LL04 微调prompt-Tuning方法入门(背景与发展)
  • 【自动驾驶】《Sparse4Dv3》代码学习笔记
  • Redis的五个基本类型(2)
  • 单页面应用(SPA)和多页面应用(MPA)
  • RP2040下的I2S Slave Out,PIO状态机(三)
  • pybind11 的应用
  • (Python)Python爬虫入门教程:从零开始学习网页抓取(爬虫教学)(Python教学)
  • 腾讯iOA技术指南:实现数据防泄漏与高级威胁防护
  • Spark Memory 内存设计的核心组件、对比Flink内存配置
  • langchain入门笔记02:几个实际应用
  • 生信分析进阶16 - 可准确有效地检测血浆 ccf-mtDNA 突变的分析方法
  • DrissionPage实战案例:小红书旅游数据爬取
  • 串口转ADC/PWM 串口转I2C 串口转GPIO工具
  • c++20--std::format
  • 工业相机使用 YOLOv8深度学习模型 及 OpenCV 实现目标检测简单介绍
  • 计算机视觉CS231n学习(4)
  • jmeter要如何做接口测试?