上一节的文章【USB3.0协议学习】Topic2·USB3.0的LTSSM分析中我们详细分析了USB3.0协议中的链路训练状态机(LTSSM)的各状态和跳转条件,覆盖了所有LTSSM状态。本文我们将从Roothub port和Device Port的角度讨论其Port Connect 状态机。该状态机相比LTSSM,是更高层次的状态机,取决于具体的IP Vendor提供商是怎么设计的。以下只是一个简单的例子:

1. USB3.0 Roothub Port Connect State Machine

1.USB Vbus Valid,则从Power-off状态跳转到Attempt SS Connet状态,此时LTSSM进入Rx.Detect并开启链路训练过程。

2.若训练失败,则一直停留在Attempt SS connet状态

3.若LTSSM已跳转到U0状态,则该状态机跳转到Connet on SS状态

4.若LTSSM又进入了Rx.Detect或者链路训练超时(代表找不到对端设备了),则回到Attempt SS Connect状态。

5.该状态机仅仅是USB3.0 Port State状态机,USB2.0 Port又是一个单独的状态机。

2.Device Port Connect State Machine

上图过程和Roothub Port State的主要区别在于多了USB2.0状态的管理。所以,对于USB3.0设备来说,若USB3.0 训练失败,是会回退到USB2.0的。

3. 设备枚举过程

整个过程如上图所示,注意几点:

1.上图的hub可以是外置hub也可以是指的roothub

2.配置过程使用的Control Transfer,端点为EP0。配置完成后会分配一个独一无二的地址,这样在USB拓扑中就能通过该地址找到对应的Device了

【USB3.0协议学习】Topic4·USB3.0的Port Connect State Machine和设备枚举的更多相关文章

  1. USB2.0协议学习笔记---描述符

     USB设备描述符 字段名 长  度(字节)  地址偏移 含           义 bLenth   1  0  描述符长度 bDescriptorType   1  1 描述符类型 (这里为 1) ...

  2. USB2.0协议学习笔记---USB工作过程(类的方法)

    前面学习了那么多的概念,这里需要记住一点分层概念即设备 ---> 配置 ---> 接口 ---> 端点,这种分层的概念结构 . 也可以理解为端点构成接口,接口组成配置,配置组成设备. ...

  3. USB2.0协议学习笔记---基本概念

    概念  USB是一种串行通信总线(Universal Serial Bus),经历的版本有USB1.0,USB1.1.USB2.0等.USB是一种主从模式的结构,因此它无法在设备与设备.主机与主机之间 ...

  4. MQTT 协议学习:004-MQTT建立通信与 CONNECT 、CONNACK 报文

    背景 上一讲 MQTT 协议学习:通信报文的构成介绍了在MQTT通信中,各报文的通信流程:从本讲开始,我们开始介绍实际中使用的报文,以及它们的组成. CONNECT - 连接请求 报文 客户端到服务端 ...

  5. USB2.0协议学习笔记---USB数据包结构

    USB包类型和传输过程  USB是一种串行总线,因此数据都是一位一位传输的,如同串口那样,但是USB在真实物理电路上却不是TTL电平,而是一种差分信号采用NRZI编码,就是用变化表示0,不变表示1,同 ...

  6. 接口测试工具-Jmeter使用笔记(八:模拟OAuth2.0协议简化模式的请求)

    背景 博主的主要工作是测试API,目前已经用Jmeter+Jenkins实现了项目中的接口自动化测试流程.但是马上要接手的项目,API应用的是OAuth2.0协议授权,并且采用的是简化模式(impli ...

  7. 【HTTP】402- 深入理解http2.0协议,看这篇就够了!

    本文字数:3825字 预计阅读时间:20分钟 导读 http2.0是一种安全高效的下一代http传输协议.安全是因为http2.0建立在https协议的基础上,高效是因为它是通过二进制分帧来进行数据传 ...

  8. MQTT 协议学习: 总结 与 各种定义的速查表

    背景 经过几天的学习与实操,对于MQTT(主要针对 v3.1.1版本)的学习告一段落,为了方便日后的查阅 本文链接:<MQTT 协议学习: 总结 与 各种定义的速查表> 章节整理 MQTT ...

  9. USB 3.0规范中译本 第10章 集线器,主机下行口以及设备上行口规范

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章描述USB 3.0 集线器的体系结构要求.本章还描述主机下行口和集线器下行口之间功能性的不同之处,以及设 ...

  10. 接口与协议学习笔记-USB协议_USB2.0_USB3.0不同版本(三)

    USB(Universal Serial Bus)全称通用串口总线,USB为解决即插即用需求而诞生,支持热插拔.USB协议版本有USB1.0.USB1.1.USB2.0.USB3.1等,USB2.0目 ...

随机推荐

  1. centos7 最小化安装yum不能安装软件解决方案

    慕课网神思者老师课常资料带的布署工具中,自带的liunx 系统centos7 yum发现不能安装软件,比如docker   解决方案 首先我们安装好虚拟机启动系统centos7 尝试安装任何软件都会报 ...

  2. scratch编程作品-《滚动的物理小球》

    程序说明: <滚动的物理小球>是一款基于Scratch平台开发的小游戏.在这个游戏中,玩家通过按左右方向键来控制一个小球在屏幕上的左右移动.小球在移动过程中,完全遵循物理引擎的规则,如加速 ...

  3. golang轻量级的代码复制粘贴检查器 cpd

    golang轻量级的代码复制粘贴检查器 cpd 项目地址: https://github.com/dengjiawen8955/copy-paste-detector 快速开始 clone git c ...

  4. Java---杂记

    1. 当System.out.println()方法的参数是Object类型时,println()方法会自动调用Object对象的toString()方法,然后显示toString()方法返回的字符串 ...

  5. 【微信小程序】 使用NPM包与VantWeapp

    小程序对npm的支持与限制 目前,小程序中已经支持使用npm安装第三方包,从而来提高小程序的开发效率. 但是,在小程序中使用npm包有如下3个限制: ① 不支持依赖于Node.js内置库的包② 不支持 ...

  6. tcprewrite-man

    官网手册:https://tcpreplay.appneta.com/wiki/tcprewrite-man.html https://linux.die.net/man/1/tcpprep 中文:h ...

  7. Jax报错:Windows系统环境下WSL中运行Jax会导致nvidia-smi报错退出,无法使用nvidia-smi和gpustat

    环境: Window11下的WSL: 运行jax,导致nvidia-smi无法使用,不过经过测试发现虽然nvidia-smi报错无法使用,但是GPU已经可以正常使用,调用jax的GPU运行也保持正常, ...

  8. 个人17年购入的HP 暗影2pro笔记本开机掉电,电池无法充电,无法开机

    相关链接: https://www.cnblogs.com/devilmaycry812839668/p/15228316.html 机器问题: 1. 电池时而能充电时而不能充电,有时候使用7天后不能 ...

  9. [ZJOI2010] 基站选址 题解

    前言 题目链接:洛谷. 题意简述 [ZJOI2010] 基站选址. 有 \(N\) 个村庄坐落在一条直线上,第 \(i\) 个村庄距离第 \(1\) 个村庄的距离为 \(D_i\).需要在这些村庄中建 ...

  10. jQuery的基本操作总结

    什么是jquery? 就是一个用js的插件库   解决了原生dom的操作的兼容性和代码量 使用前需要引入它的js库 以下例子以 jQuery1.12.4.js  这个版本为例 一:jQuery入口函数 ...