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

USB 3.0 link command 定义

USB链路层的包比较难进入大家的关注,今天把都揪出来认识一遍:

LGOOD_n

n:Header Sequence Number(头部序列号)

当满足以下所有条件时,接收端端口会发送 LGOOD_n:

  • 接收到的头部包(Header Packet)结构有效,接收端能够识别。

  • CRC-5 和 CRC-16 校验均有效。

  • 接收到的头部包中的 Header Sequence Number 与接收端预期的 Rx Header Sequence Number 匹配。

  • 接收端有可用的 Rx Header Buffer 来存储接收到的头部包。

如果接收到的头部包中的 Header Sequence Number 与预期的 Rx Header Sequence Number 不匹配,端口将进入 Recovery 状态。

对于发送端口,接收到 LGOOD_n 表示链路伙伴已正确接收到序列号为 “n” 的头部包,这是一个确认信号。 如果接收到的 LGOOD_n 与预期的 ACK Tx Header Sequence Number 不匹配,端口也会进入 Recovery 状态。

此外,当端口进入 U0 状态时,会发送 LGOOD_n 作为 Header Sequence Number 广播,用于初始化两端口的 ACK Tx Header Sequence Number。

LBAD

当接收端口接收到 无效头部包 时,会发送 LBAD。 无效头部包指接收到的数据包 CRC-5 和/或 CRC-16 校验出错

接收到 LBAD 后,发送端口会 从最后一个被 LGOOD_n 确认的头部包开始,重发所有后续头部包

LCRD_x

LCRD1_x

LCRD2_x

LCRD_x、LCRD1_x、LCRD2_x(Rx Buffer Credit 指示)

  • LCRD_x:针对所有 SuperSpeed 头部包(Header Packet)的接收缓冲区信用索引,用于表示 一个 Rx Header Buffer Credit 已经可用

  • LCRD1_x:针对所有 SuperSpeedPlus Type 1 流量类别的接收缓冲区信用索引,用于表示 一个 Type 1 Rx Buffer Credit 已经可用

  • LCRD2_x:针对所有 SuperSpeedPlus Type 2 流量类别的接收缓冲区信用索引,用于表示 一个 Type 2 Rx Buffer Credit 已经可用

  • x(A、B、C、D、E、F、G):表示 Rx Header Buffer Credit 的索引。

发送条件

  • 对于 SuperSpeed USB,端口在接收到符合以下条件的头部包后发送 LCRD_x:

    • LGOOD_n 已发送或将要发送。

    • 头部包已被处理,并且有可用的 Rx Header Buffer Credit。

  • 对于 SuperSpeedPlus USB

    • LCRD1_x 在接收到 Type 1 数据包(HP 或 DP)且符合以下条件后发送:

      • LGOOD_n 已发送或将要发送。

      • 数据包已被处理,并且有可用的 Type 1 Rx Buffer Credit。

    • LCRD2_x 在接收到 Type 2 数据包(DP)且符合以下条件后发送:

      • LGOOD_n 已发送或将要发送。

      • 数据包已被处理,并且有可用的 Type 2 Rx Buffer Credit。

发送顺序

  • LCRD_x 或 LCRD1_x/LCRD2_x 必须按字母顺序发送(A、B、C、D,然后回到 A),不得跳过。

  • 在 Gen 2x2 模式下,顺序为 A、B、C、D、E、F、G,然后回到 A。

  • 如果缺失 LCRD_x 或 LCRD1_x/LCRD2_x,将导致链路进入 Recovery 状态。

LRTY

在收到 LBAD 后,为重发第一个头部包而由端口发送

LGO_U1

端口请求进入 U1 低功耗状态时发送

LGO_U2

端口请求进入 U2 低功耗状态时发送

LGO_U3

下行端口请求进入 U3(最深低功耗状态)时发送。上行端口应接受该请求

LAU

端口接受进入 U1、U2 或 U3 请求时发送,用于确认链路状态切换

LXU

端口拒绝进入 U1 或 U2 请求时发送,用于拒绝链路低功耗切换

LPMA

端口在收到 LAU 后发送。与 LGO_UxLAU 的握手配合使用,确保链路两端端口进入相同状态

LDN

下行端口处于 U0 活动状态时发送。下行端口在每 10 µs 发送一次,当没有数据包或其他链路命令需要传输时发送

LUP

设备处于 U0 活动状态时发送。上行端口在每 10 µs 发送一次,当没有数据包或其他链路命令需要传输时发送

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

相关文章:

  • 知识的本质
  • 数域筛法GNFS---C语言实现
  • 20道CSS相关前端面试题及答案
  • Elasticsearch:如何使用 Qwen3 来做向量搜索
  • css中container和media的用法和区别
  • SRWare Iron:隐私保护与高效浏览的完美结合
  • C++ mutex的实现源码分析
  • Xsens动作捕捉与AI驱动人形机器人训练革新
  • WVP和ZLM部署与接入NVR指南环境准备
  • 【React】hooks 中的闭包陷阱
  • 三轴云台之脉宽调制技术篇
  • Qt基本槽
  • 链游(GameFi)开发破局:如何平衡可玩性与经济模型可持续性?
  • GraphRAG:AI理解复杂知识的未知领域,开启探索之旅
  • 《Python函数:从入门到精通,一文掌握函数编程精髓》
  • MySQL主从原理
  • Linux 文件系统简介
  • 解析 TrueType/OpenType 格式的可变字体(Variable Font),提取其所有命名实例(Named Instances) 的名称信息
  • ESP32S3的LVGL配置参数解释、动画播放优化(更新中)
  • 4.1vue3的setup()
  • 《WebGL中FBO的底层运行逻辑》
  • 编程与数学 02-017 Python 面向对象编程 01课题、面向对象
  • 【会员专享数据】2000-2024年我国乡镇的逐日PM₁₀数据(Shp/Excel格式)
  • linux初始化配置
  • 计算机网络知识
  • 基于Java飞算AI的Spring Boot聊天室系统全流程实战
  • 【奔跑吧!Linux 内核(第二版)】第6章:简单的字符设备驱动(三)
  • CMake include_directories()使用指南
  • 从零开始的云计算生活——第四十三天,激流勇进,kubernetes模块之Pod资源对象
  • 莫队 Little Elephant and Array