USB3.0 枚举过程

news/2024/10/10 10:31:11/文章来源:https://www.cnblogs.com/linhaostudy/p/18455807

USB 3.0 枚举是指主机和设备之间通过USB协议进行初始化和通信配置的过程。在USB 3.0中,枚举过程的主要步骤包括电气连接建立、链路训练(LTSSM)、设备描述符读取等。以下是USB 3.0枚举的详细过程:

1 设备连接与电源管理

当USB设备插入USB 3.0端口时,以下步骤会开始:

供电:主机通过VBUS线为设备供电,设备检测到电压时开始工作并准备初始化。

检测拉电阻:主机通过检测USB引脚(USB 3.0使用D+/D-和SS_TX/SS_RX)上的上拉或下拉电阻,判断插入的设备是USB 2.0还是USB 3.0设备。USB 3.0设备会在其SS_RX线上保持一个特定的电压状态,以表明它是SuperSpeed设备。

2. SuperSpeed链路训练与状态管理(LTSSM)

USB 3.0使用LTSSM(Link Training and Status State Machine)来完成主机与设备之间的通信链路建立。LTSSM会经历多个状态,确保链路稳定。

  1. Rx.Detect:主机与设备互相检测差分信号对(SS_TX/SS_RX),如果检测到设备,主机进入Polling状态。

  2. Polling:主机与设备交换训练序列(TS1和TS2),并校准信号质量(如摆幅、抖动等)。当链路成功通过这些测试时,双方进入U0状态(即SuperSpeed链路激活)。

  3. U0状态:链路准备就绪,设备可以进行后续的通信。

  4. 设备复位(Reset)

在链路建立后,主机会通过发出USB总线复位信号,将设备复位到默认状态。此时设备开始准备响应主机的枚举请求。

  1. 获取设备描述符

复位之后,主机进入设备描述符读取阶段:

  1. 设置地址:主机首先通过地址0向设备发送获取设备描述符(Get Device Descriptor)请求,设备响应其基本信息,包括设备的总线类型、最大包大小等。

  2. 分配地址:主机接着会分配一个唯一的设备地址,供后续通信使用。设备接收并确认这个地址。

  3. 配置描述符读取

主机通过新的设备地址继续向设备发送请求,以获取更多信息:

  1. 获取配置描述符:主机会读取设备的配置描述符,它描述了设备的配置选项(包括接口和端点的数量及类型)。

  2. 获取接口和端点描述符:主机读取设备每个接口的详细信息,包括端点类型、方向、传输类型(如控制、批量、等时等)。

  3. 设备配置

一旦主机获取到所有的描述符,它将通过向设备发送Set Configuration请求,配置设备进入特定的工作状态。设备在此时进入完全工作的状态,主机可以使用端点进行数据传输。

  1. 正常通信

在设备被成功枚举并配置后,USB 3.0设备就准备好接受主机的各种数据传输请求。正常通信过程中可能使用批量、控制、等时或中断传输。

3. LTSSM中的其他状态

除了上面提到的关键状态,LTSSM还包含多个电源管理状态,如:

U1/U2:低功耗状态,允许链路降低能耗。设备和主机可以根据空闲时间自动进入这些状态。

U3:设备可以完全进入Suspend(挂起)模式,在这种模式下几乎不会消耗功耗,直到主机重新发出唤醒信号。

枚举中的错误检测

主机在枚举过程中还会检查各种可能的错误,包括:

超时错误:如果设备在规定时间内没有响应,主机将重新尝试或者标记枚举失败。

描述符错误:如果设备提供的描述符信息不完整或不符合规范,主机可能无法正确配置设备。

4. 总结

USB 3.0的枚举过程不仅包括基本的电气连接和设备描述符读取,还涉及到链路训练和状态管理。这个过程确保了主机和设备之间可以建立稳定的SuperSpeed链路,并配置好所有必要的通信参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/810955.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据存储计算平台EasyMR:多集群统一管理助力企业高效运维

随着全球企业进入数字化转型的快车道,数据已成为企业运营、决策和增长的核心驱动力。为了处理海量数据,同时应对数据处理的复杂性和确保系统的高可用性,企业往往选择部署多个Hadoop集群,这样的策略可以将生产环境、测试环境和灾备恢复环境分开管理,从而提高数据处理的效率…

题解:P7353 [2020-2021 集训队作业] Tom Jerry

Problem Link 思考 Tom 怎么获胜,有以下两种情况:Tom 不断限制 Jerry 的活动范围,直到困死。 ~Tom 瞎走都可以赢~,有一个点能让 Tom 必胜。对于(1),显然 Tom 需要不断走割点,由此想到圆方树。假设 Tom 在 \(a\),Jerry 在 \(d\),Jerry 能在 \(a\) 的子树里任意走,所以…

利用大模型设计测试用例

安装python 依赖 pip install torch transformers accelerate sentencepiece python代码,设计一个测试用例from transformers import AutoTokenizer, AutoModelForCausalLM import os import torch # 导入 torch 库# 设置 HTTP 和 HTTPS 代理(如果需要) os.environ[http_pr…

测试流程必须严格执行吗?

技术交流群有同学问了这样一个问题:公司有较为严格的测试流程和项目交付规范,但目前工期紧张且资源严重不足,是否还需要严格遵守流程规范。如果严格遵守流程规范则可能要延期交付,或者项目组的同学需要大量加班,有什么解决办法?该说不说,这确实是很头疼的问题。对项目管…

Semaphore源码简单解读

Semaphore源码解读 注意,阅读本文需要了解AQS,AQS采用了模板设计模式。后续本人会完善这篇文章 Semaphore的方法acquire() 阻塞获得一个许可,会阻塞,直到得到一个可用许可或被中断 重载版本 acquire(n) :尝试获取n个许可 acquireUninterruptibly() 类acquire,但不可中断 …

捕鱼船识别检测预警系统

捕鱼船识别检测预警系统通过图像识别和数据分析技术,捕鱼船识别检测预警系统实时监测水域中的捕鱼船活动,系统利用河道两岸的摄像头,对捕鱼船的外形、大小、航行轨迹等进行检测和识别。捕鱼船识别检测预警系统一旦系统识别到违规捕捞行为,立即发出预警信号,并通知相关部门…

加油站抽烟烟火智能识别系统

加油站抽烟烟火智能识别系统利用摄像头和智能分析技术,加油站抽烟烟火智能识别系统实时监测加油站内的加油人员行为,加油站抽烟烟火智能识别系统通过图像识别和行为分析,识别出抽烟和燃放烟火的情况,并发出预警信号以提醒相关人员。加油站抽烟烟火智能识别系统能够实时监测…

希音面试:Redis脑裂,如何预防?你能解决吗?(看这篇就够了)

文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 实现技术自由,…

稀疏促进动态模态分解(SPDMD)详细介绍以及应用

在数据驱动分析领域,从复杂流体流动中提取有意义的模式一直是一个重大挑战。稀疏促进动态模态分解(Sparsity Promoting Dynamic Mode Decomposition, SPDMD)提供了一种有效方法,能够揭示最主要的特征,同时去除冗余信息,从而实现更高效和更具洞察力的分解。这种方法将动态…

CSP2024 前集训:多校A层冲刺NOIP2024模拟赛04

前言T1 签了。 T2 一眼后缀数组板子,但是复杂度是 \(O(nq\log(n))\) 的,极限数据本地 \(4\) 秒,但如果您会 \(O(n)\) 求后缀数组的话就直接过掉了,但赛时数据貌似纯随机,遂可以直接过掉,可以优化成 \(O(n^2\log(n)+nq)\) 或 \(O(n^2\log(n)+q)\) 的,赛时想打这个但是怕常…

抽象函数中图象变换的应用

一 问题引入 在高一学函数性质时,我们会遇到一些抽象函数的问题,先看两道例题: 【例1】已知函数\(f\left(2x+1\right)\)的定义域为\(\left[1,2\right]\),则函数\(f\left(4x+1\right)\)的定义域是 . 【例2】已知函数\(f\left(x\right)\)的定义域为\(\mathrm{R}\)…

P7394 「TOCO Round 1」History

操作树加二分,目前题解区没有这种做法。 发现操作一可逆,可以用操作树,操作三解决。 操作一单点修改没什么好说的。 接下来看操作二。令 \(fa_{x,k}\) 为 \(x\) 的 \(k\) 级祖先。 发现对于每个询问中,如果 \(y\) 为奇数那么答案为 \(0\)。如果 \(y\) 为偶数,那么答案就是…