0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

USB3.0中SS链路训练的来龙去脉

星星科技指导员 来源:synopsys 作者:Hari Balisetty,Broa 2023-05-29 09:56 次阅读

Hari Balisetty,Broadcom

如您所知,USB3.0 有一个名为 LTSSM(链路训练和状态状态机)的状态机,它负责

  1. 初始化和链路训练
  2. 电源管理转换
  3. 链路错误恢复和其他连接问题。

在这里,您可以找到有关我们验证 IP 的更多信息

LTSSM 有 12 个高级状态,如下所示。在这篇博客中,我们将检查链接训练中涉及的状态,并了解链接伙伴如何移动到实际传输开始的状态 U0

pYYBAGR0BiuADioZAACaaP33lOw707.png

链路训练是在上电复位后或热复位时在链路初始化期间发生的一系列事件。这基本上是为了检测链路伙伴并在开始对链路进行任何类型的传输之前训练链路。如上图所示,链路训练序列从 Rx.Detect(上游端口和下游端口的开机状态)开始,以出口到 U0 结束,这是发送和接收数据包的正常操作状态。在链路训练之前,上游和下游端口都将处于 SS 状态。禁用状态(删除端口的超高速连接的状态)。在轮询状态下,通过 LFPS(低频周期信号)握手启用链路训练,该握手用于在没有 SS 信令的情况下传达信息

下图显示了链接训练状态及其子状态。

poYBAGR0BieAeKiaAACcC2LP0YE504.png

如何配置验证 IP 以与 DUT 同步完成超高速链路训练序列?Synopsys 的 USB 3.0 和 3.1 验证 IP 定义了多个具有适当默认值的计时器和参数,这使得实现这一目标变得简单。其中一些参数映射到 USB 规范,添加一些参数是为了帮助验证 DUT 在正常或错误条件下的运行情况。默认值可确保您可以启用链接训练序列,而无需覆盖任何参数值。

在某些情况下,您可能需要调整参数以尝试不同的极端情况或进一步减慢链接训练所需的时间。在这里,我们将专门查看链路训练序列(由于热复位或上电复位),并将关联 VIP 中影响该序列的参数。

斜体中提到的所有名称都是 USB VIP 中svt_usb_configuration类中的变量,方括号 [] 中的名称/值是 USB 规范名称/值。如果未提及端口方向,则将其视为上游(主机)和下游(设备)端口。

Rx.检测.重置

进入此状态可能是由于热复位或开机复位。当物理电源进入 P2 状态时,请注意以下参数。根据以前的物理电源状态,VIP 使用以下一个(或多个)计时器值。

  • p0_to_p2_transition_time
  • p3_to_p2_transition_time
  • p3_to_p0_transition_time
  • allow_p2_p3_direct_transition

如果该条目不是由于热重置,则它直接移动到 Rx.Detect.Active。如果条目是由于热重置,则转换取决于端口 VIP 配置为的类型。

  • 如果将 VIP 配置为下游端口(主机),则它会在 t_reset_timeout[tReset] 时间内传输 LFPS。这称为热复位序列。一旦计时器到期,VIP 就会停止发送 LFPS 并移动到 Rx.Detect.Active。
  • 如果将 VIP 配置为上游端口(设备),则在主机(连接到 VIP 的 DUT)完成发送 LFPS 热复位信号后,将转换为 Rx.Detect.Active。

Rx.Detect.Active

此状态用于检测另一端的链路伙伴。在此状态下,如果检测到“接收器终止”,VIP 将执行“接收器终止”检测 (receiver_detect_time) 并移动到 Polling.LFPS。如果未检测到接收器终止,则执行以下操作。

  • 如果VIP是下游端口(主机),则它将移动到Rx.Detect.Quiet。
  • 如果VIP是上游端口(设备),则它会移动到Rx.Detect.Quiet rx_detect_termination_detect_count[8]次。如果即使在此之后仍未检测到低阻抗端接,则移至SS。禁用。

注:串行与PIPE3接口中检测的“接收器终止”不同。

Rx.Detect.Quiet

在这里等到rx_detect_quiet_timeout[12ms计时器]到期,然后移回Rx.Detect.Active。

pYYBAGR0Be-AZMj3AACfBrDyYLA471.png

图 1:轮询中的 LFPS 信令。

Polling.LFPS

一旦检测到链路伙伴处于 Rx.Detect 状态,两个(上游和下游)端口都将进入轮询状态以训练链路。在此状态下,VIP 将传输 LFPS,直到突发计时器 polling_lfps_burst_time) 过期。它还计算收到的突发次数,并检查是否满足退出条件(检查下面的退出标准)。如果不满足退出条件,则VIP将等待“重复计时器”(polling_lfps_repeat_time)过期,然后再次启动上述过程(传输LFPS)。

退出到 Polling.RxEq 的退出条件。

  • polling_lfps_sent_count(发送的LFPS突发数量)[16]
  • polling_lfps_received_count (收到LFPS数量) [2]
  • polling_lfps_sent_after_received_count(从链路伙伴接收到第一个 LFPS 后发送的 LFPS 突发数)[4]

[360ms 计时器] 到期之前满足退出条件非常重要polling_lfps_timeout。如果超时过期,则 VIP 根据端口的方向执行以下操作之一

  • 如果下游端口(主机),则移动到 Rx.Detect
  • 如果上游端口(设备),则它移动到SS。禁用
poYBAGR0BfOATIBeAAC3KdeqQaU029.png

图 2:在轮询期间交换 TSEQ。

Polling.RxEq

此状态用于通过交换 TSEQ(均衡训练序列)有序集来训练均衡逻辑。可以通过启用ltssm_skip_polling_rxeq来跳过此状态。传输polling_rxeq_tseq_count [65,536] 个 TSEQ 订购集 VIP 的数量将移动到轮询活动。

轮询.活动

在此状态下,VIP 将继续发送 TS1,直到连续收到polling_active_received_ts_count数量的 TS1/TS2。每次收到不同的序列时,VIP 都会重置计数器。因此,它确保连续接收 TS1 或 TS2 polling_active_received_ts_count [8] 次。

请务必在 [12ms 计时器] 到期之前满足退出条件polling_active_timeout。如果此超时过期,则 VIP 将执行以下操作之一:

  • 如果它是下游端口(主机),它将移动到 Rx.Detect
  • 如果它是上游端口(设备),那么它将移动到 SS。禁用。
pYYBAGR0BfiAYgl4AADbHCiV_Gw115.png

图 3:在轮询中交换 TS1 和 TS2。活动和轮询。配置

轮询.配置

在此状态下,VIP 将开始发送 TS2,但只有在从链路伙伴收到第一个 TS2 后才会开始计数。

退出条件:满足以下计数后,将退出此状态。

  • polling_configuration_received_ts2_count [8] //收到 TS2 的编号
  • polling_configuration_sent_ts2_count [16] //从链路伙伴处收到第一个 TS2 后发送的 TS2 编号

[12ms 计时器] 到期之前满足退出条件非常重要polling_configuration_timeout。如果超时过期,则 VIP 执行以下操作之一

  • 如果是下游端口(主机),则移至 Rx.Detect
  • 如果它是上游端口(设备),它将移动到 SS。禁用。

轮询.空闲

在此状态下,VIP 要做的第一件事是检查在轮询配置中接收的 TS2 中是否设置了复位位,以及端口方向是否在上游(设备)。如果检测到这两种情况,VIP 将直接进入 LTSSM 的热重置状态。

如果上述条件为假,则在达到以下“计数”时退出 U0。

  • polling_idle_received_idle_count [8] // 收到的闲置数
  • polling_idle_sent_idle_count [16] // 从链接伙伴收到第一个空闲后发送的空闲编号。

这里重要的一点是在 [2ms 计时器] 到期之前满足polling_idle_timeout退出条件。如果超时过期,则 VIP 执行以下操作之一

  • 如果下游端口(主机),则移至 Rx.Detect
  • 如果上游端口(设备),则移至SS。禁用。
poYBAGR0Bf2AEeTFAADLeAe2HEI574.png

图 4:链路训练结束时的 U0 状态

完成轮询.空闲后,链路将变为 U0 状态,此时物理功率更改为 P0,实际传输开始。在任何给定时间点通过此序列,上游端口(设备)移动到 Rx.Detect 在热复位时。大多数VIP可以选择从U0状态(usb_ss_initial_ltssm_state)开始,以便用户可以跳过整个初始链路训练,并且可以从模拟开始就开始传输。有时连接到VIP的DUT可能没有跳过链路训练的选项,在这种情况下,我们建议使用本博客中提到的配置参数,以尽量减少链路训练中的模拟时间。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • usb
    usb
    +关注

    关注

    60

    文章

    7892

    浏览量

    263979
  • 计时器
    +关注

    关注

    1

    文章

    418

    浏览量

    32634
  • DUT
    DUT
    +关注

    关注

    0

    文章

    189

    浏览量

    12338
收藏 人收藏

    评论

    相关推荐

    USB3.0USB2.0的差别

    USB3.0是由Intel、微软、惠普、德州仪器、NEC、ST-NXP等业界巨头组成的USB3.0推广小组于2008年11月18日宣布已经正式完成并公开发布USB3.0标准。
    发表于 11-22 14:46 8149次阅读

    274 USB3.0为什么会变慢

    USB3.0usbUSB 3.0USB 3.0端口U
    车同轨,书同文,行同伦
    发布于 :2022年08月09日 23:07:25

    USB3.0的连接问题

    `现在遇到这个问题,用RTL8153的时候,USB3.0部分出现了问题,按照如图所示的接法后,电脑只能在USB2.0的口上识别出来,3.0识别不出。用买的USB3.0的U盘测试了下,确
    发表于 09-29 14:49

    面向USB3.0的高效静电防护解决方案

    USB接口演进历史USB3.0系统概述USB3.0超高速度USB2.0
    发表于 01-06 06:20

    请问USB3.0HS和SS信号什么情况下可以分开使用?

    USB3.0信号,包含USB2.0D+/D-USB3.0的TX+/TX-、RX+/RX-,什么情况下可以将USB2.0D+/D-接一个设备
    发表于 09-28 07:02

    USB3.0 Host Controller

    USB3.0 Hos
    发表于 05-22 11:27 3768次阅读

    祥硕科技USB3.0 to SATA控制芯片获得USB3.0

    祥硕科技USB3.0 to SATA控制芯片获得USB3.0 Certificate认证 USB3.0 在国内外各家厂商的推波助澜下,已成为近期内国内IC产业的热门话题。国内IC设计公司莫不摩肩擦踵相继投入
    发表于 01-12 08:53 1864次阅读

    USB3.0USB2.0

    USB3.0是最新的USB规范,该规范由英特尔等大公司发起。USB3.0接口理论带宽提升至5Gbps,而USB2.0的理论带宽是480Mbps。所有的高速
    发表于 11-22 12:13
    <b class='flag-5'>USB3.0</b>和<b class='flag-5'>USB</b>2.0

    USB3.0系统的ESD防护设计方案

    2008年11月,USB3.0规范发布。USB3.0不仅包含USB2.0的全部功能(HS、FS和LS),而且可提供名为超高速(SuperSpeed)的单独的全新超高速数据
    发表于 11-25 16:10 3693次阅读
    <b class='flag-5'>USB3.0</b>系统的ESD防护设计方案

    FPGA和USB3.0通信-USB3.0 PHY简介

    可以和FPGA搭配使用的USB3.0 PHY芯片 通过之前的介绍FPGA和USB3.0通信-USB3.0协议介绍,我们大致了解到USB3.0整个协议异常复杂,就连物理层都需要SerDe
    的头像 发表于 11-09 09:36 8662次阅读
    FPGA和<b class='flag-5'>USB3.0</b>通信-<b class='flag-5'>USB3.0</b> PHY简介

    USB3.0 HUB的资料

    USB3.0 HUB的资料
    发表于 11-16 17:31 137次下载

    FPGA和USB3.0通信-USB3.0 PHY介绍

    可以和FPGA搭配使用的USB3.0 PHY芯片通过之前的介绍
    发表于 12-20 19:11 34次下载
    FPGA和<b class='flag-5'>USB3.0</b>通信-<b class='flag-5'>USB3.0</b> PHY介绍

    什么是USB3.0usb3.0usb2.0有什么区别?

    什么是USB3.0usb3.0usb2.0有什么区别 USB3.0是指“超级速度USB”,它是一种高速数据传输技术,是
    的头像 发表于 10-27 14:31 8709次阅读

    USB3.0如何辨别

    泛的还是USB3.0,本篇也是主要介绍USB3.0。它是超高速传输接口,可以提供最高5.0Gbit/s的传输速率,并且相比与USB2.0,增加了新的电源管理功能,支持待机,睡眠等,更加省电。并且也从半双工
    的头像 发表于 11-07 11:01 1656次阅读
    <b class='flag-5'>USB3.0</b>如何辨别

    USB3.0 /TYPE-C接口静电保护六器件

    USB3.0 /TYPE-C接口静电保护六器件
    的头像 发表于 11-01 08:02 139次阅读
    <b class='flag-5'>USB3.0</b> /TYPE-C接口静电保护六<b class='flag-5'>路</b>器件