USB3.2链路训练及状态机解析

news2025/1/13 13:28:55

1.简介

LTSSM(Link Training and Status State Machine)定义了USB3.2总线链路层连接性及链路层电源管理。LTSSM由12种不同的链路状态组成,可以根据它们的功能对其进行表征。

LTSSM有4个可操作的link状态,分别为U0、U1、U2及U3。U0是使能Enhanced SuperSpeed链路的状态,此使总线上可以传输数据包,也可以处于空闲状态。U1是低功耗的link状态,此时总线上没有数据传输,且Enhanced SuperSpeed总线链路层连接性被关闭。U2也是低功耗的link状态,相比U1功耗更低,但增加了状态退出时的延时。功耗最低的是U3状态,此时总线处于suspend状态,退出U3状态的延时也是最大的。

链路层初始化和训练引入了4个状态,分别是Rx.Detect、Polling,、Recovery及Hot Reset。Rx.Detect是上电的初始Link状态,用来确定对端是否有link partner(根据阻抗判断,具体参考USB3.2 Spec 6.11),一旦确定对方存在,则链路训练过程随即开始。Polling是为两个link partner定义的link状态,目的是使它们的Enhanced SuperSpeed发送器和接收器接受训练、同步并为数据包传输做好准备。Recovery定义了两个link partner从低功耗状态退出时重新训练链路的状态,或者某一个link partner探测到link不处于U0状态时,重新训练链路的状态。Hot Reset定义下行端口复位上行端口的状态。

为了测试误码情况和发送器兼容性,引入了Loopback和Compliance状态。最后,还定义了eSS.Inactive和eSS.Disabled状态。eSS.Inactive状态表示link出错,此使链路处于一种不可操作状态,需要软件进行干预恢复。eSS.Disabled状态表示Enhanced SuperSpeed链路的连接性处于禁止状态,链路可能会进入USB 2.0模式。

LTSSM定义的12中模式如下表所示:

NameDescription
U0接收和发送数据包的正常状态
U1无数据包发送的状态,PHY的电源状态处于P1
U2无数据包发送的状态,PHY的电源状态处于P2
U3无数据包发送的状态,PHY的电源状态处于P3
eSS.Disabledconnectivity disabled
Rx.DetectWarm reset, Receiver detection
eSS.Inactive链路失败
Polling链路训练
Recovery重新训练链路,可直接切换到Hot Reset或Loopback状态
Hot Reset使用已经训练好的参数进行复位
Compliance测试发送器是否符合电压和时间规范
Loopback用于测试和故障分析

2.超时时间

LTSSM为了确保状态切换成功,给每种状态都定义了超时时间,超时时间如下表所示。

NameInitial StateTimeout to Next StateTimeout Values
teSSInactiveQuietTimeouteSS.Inactive.QuieteSS.Inactive.Disconnect.Detect12ms
tRxDetectQuietTimeoutDFPRx.Detect.QuietRx.Detect.Active120ms(max) 120ms(max)
tRxDetectQuietTimeoutUFPRx.Detect.QuietRx.Detect.Active12ms
tPollingLFPSTimeoutPolling.LFPS/Polling.LFPSPlusCompliance/Rx.Detect/eSS.Disabled/eSS.Inactive360ms
tPollingSCDLFPSTimeout(SuperSpeedPlus operation)Polling.LFPS or Polling.LFPSPlusPolling.RxEQ60us
tPollingLBPMLFPSTimeout(SuperSpeedPlus operation)Polling.PortConfig or Polling.PortConfigRx.Detect/eSS.Disabled/eSS.Inactive12ms
tPollingActiveTimeoutPolling.ActiveRx.Detect/Polling.PortMatch/eSS.Disabled/eSS.Inactive12ms(x1) 24ms(x2)
tPollingConfigurationTimeoutPolling.ConfigurationRx.Detect/Polling.PortMatch/eSS.Disabled/eSS.Inactive12ms(x1) 24ms(x2)
tPollingIdleTimeoutPolling.IdleRx.Detect/Polling.PortMatch/eSS.Disabled/eSS.Inactive2ms
tU0RecoveryTimeoutU0Recovery1ms
tU0LTimeoutU0U010us
tNoLFPSResponseTimeoutU1eSS.Inactive2ms
PORT_U2_TIMEOUTU1U2U2 Inactivity field set in LMP (refer to Section 8.4 for details)
tU1PingTimeoutU1Rx.Detect300ms
tNoLFPSResponseTimeoutU2eSS.Inactive2ms
tNoLFPSResponseTimeoutU3U310ms
tRecoveryActiveTimeoutRecovery.ActiveeSS.Inactive, Rx.Detect12ms
tRecoveryConfigurationTimeoutRecovery.ConfigurationeSS.Inactive, Rx.Detect6ms
tRecoveryIdleTimeoutRecovery.IdleeSS.Inactive2ms
tLoopbackExitTimeoutLoopback.ExiteSS.Inactive2ms
tHotResetActiveTimeoutHot Reset.ActiveeSS.Inactive12ms
tHotResetExitTimeoutHot Reset.ExiteSS.Inactive, Rx.Detect6ms
tU3WakeupRetryDelayU3U3100ms
tU2RxdetDelayU2U2100ms
tU3RxdetDelayU3U3100ms

3.状态切换

LTSSM状态切换过程.jpg

3.1.Rx.Detect

Rx.Detect主要用于探测对端是否有设备接入。Rx.Detect是上行port和下行port上电的初始状态。同时也是下行port发出warm reset之后和上行port检测到(上行port除了在eSS.Disabled状态之外,若收到下行port发出的warm reset,则必须切换到Rx.Detect)warm reset之后的状态。Rx.Detect状态的目的是探测对端接收器对地的阻抗。Rx.Detect有3个子状态,分别为Rx.Detect.Reset、Rx.Detect.Active、Rx.Detect.Quiet。Rx.Detect.Reset是默认的复位状态,用于同步warm reset之后两个port的操作,当warm reset结束之后,Rx.Detect.Reset状态会很快退出。Rx.Detect.Active用于探测对端接收器。Rx.Detect.Quiet是一种省电状态,在这种状态下,将会关闭探测对端接收器的功能。

Rx.Detect 3个子状态的转换过程如下图所示。

Rx.Detect_Substate_Machine.png

3.2.Polling

Polling状态用于port能力协商和链路训练。在链路训练开始之前,SuperSpeed总线中两个port会先进行Polling.LFPS握手,SuperSpeedPlus总线类似,基于SCD1/SCD2握手信号的Polling.LFPS、基于LBPM(SuperSpeedPlus LFPS Based PWM Message)的port能力协商和匹配和随后的port配置都在链路训练开始之前进行。SuperSpeedPlus总线的Bit lock和block alignment以及symbol lock、lane polarity inversion、Rx equalization trainings都通过使用TSEQ, SYNC, TS1, and TS2训练集合完成。

Polling状态有8个子状态,分别为Polling.LFPS、Polling.LFPSPlus、Polling.PortMatch、Polling.PortConfig、Polling.RxEQ、Polling.Active、Polling.Configuration和Polling.Idle。Polling.LFPS子状态用于建立PHY的直流操作点和同步两个退出Rx.Detect状态的link partners。Polling.LFPSPlus子状态和Polling.LFPS子状态类似,只出现与SuperSpeedPlus总线。Polling.PortMatch是SuperSpeedPlus操作中的两个端口执行LBPM握手的子状态,用于宣布、匹配和决定两个link partners之间最高公共能力的操作。Polling.PortConfig子状态根据Polling.PortMatch状态获取的PHY的能力设置port。Polling.RxEQ子状态用于接收器均衡训练。Polling.Active子状态是接收器训练的延续。Polling.Configuration子状态表示两个link partners完成了Enhanced SuperSpeed训练。Polling.Idle子状态对port接收到的TS2有序集合进行解码,并决定是否转换到下一个状态。8个子状态的转换过程如下图所示。

Polling_Substate_Machine.png

  • LFPS
    低频周期性信令(LFPS,Low frequency periodic signaling)用于处于低功率链路状态的链路上两个端口之间的边带通信,同时也可用于链路训练和下行端口发出Warm Reset复位链路。对于多lane的物理层,LFPS信号只在配置lane上传输。

3.3.Recovery

Recovery状态的目的是重新训练链路或执行Hot Reset或切换到Loopback模式。为了重新训练链路和减少Recovery状态的延迟,Recovery状态的link partners不会进行接收器均衡性训练。Recovery状态包含三个子状态,分别是Recovery.Active、Recovery.Configuration和Recovery.Idle。Recovery.Active子状态通过发送TS1有序集合训练链路。Recovery.Configuration子状态通过交换TS2有序集合实现两个link partners之间的握手。Recovery.Idle子状态对port接收到的TS2有序集合进行解码,并决定是否转换到下一个状态

3.4.U0

U0是总线正常工作时的状态,可以发送和接收数据包。U0状态无任何子状态。

3.4.1.U0 Requirements

  1. port应符合发送器的规范(电气参数),规范定义在表6-18中。

发送器标准电气参数.png

  1. port应保持表6-22中定义的低阻抗接收器终端特性。

接收器标准电气参数1.png
接收器标准电气参数2.png

  1. 必须使能LFPS接收器
    低频周期性信令(LFPS,Low frequency periodic signaling)用于处于低功率链路状态的链路上两个端口之间的边带通信,同时也可用于链路训练和下行端口发出Warm Reset复位链路。对于多lane的物理层,LFPS信号只在配置lane上传输。
  2. port必须使能1ms定时器(tU0RecoveryTimeout)。1ms定时器测量两个连需不断的link命令之间的时间间隔,当接收到link命令后,定时器被复位及重新开始计时。
  3. port必须使能10us定时器(tU0LTimeout)。10us定时器用于测量U0状态时总线的空闲时间,第一个link命令符号或数据包被发送时,定时器复位,最后一个link命令符号或数据包被发送时定时器开始计时。当链路处于逻辑空闲状态时,该定时器处于激活状态。
  4. 当10us定时器(tU0LTimeout)到期时,下行port必须发送single LDN(LDN link命令,表示下行port处于U0状态,当10us周期内没有数据包或者link命令传输时,下行端点会发送LUP)。

link命令结构:

link命令结构

link命令位定义:

link命令位定义1.png
link命令位定义2.png

  1. 当10us定时器(tU0LTimeout)到期时,上行port必须发送single LUP(LUP为link命令,表示设备处于U0状态,当10us周期内没有数据包或者link命令传输时,上行端点会发送LUP)。
  2. port必须在HP响应时间(tDHPResponse)之内,用LGOOD_n(Header Sequence Number)或LBAD(Bad header packet)响应接收到的header packet。tDHPResponse是在端口连接器处测量,计时的时间范围为接收HP的第一位到发送LGOOD_n或LBAD的第一位。
    1. Gen 1x1:tDHPResponse必须小于2540ns。
    2. Gen 2x1:tDHPResponse必须小于1610ns。
    3. Gen 1x2:tDHPResponse必须小于2270ns。
    4. Gen 2x2:tDHPResponse必须小于1355ns。
  3. port应根据tDHPResponse定义的时间,用LAU(当port接收到进入U1、U2、U3状态的请求,同意时发送)或LXU(当port接收到进入U1、U2、U3状态的请求,拒绝时发送)确认接收到的LGO_Ux(LGO_U1、LGO_U2、LGO_U3为请求进入低功耗的link命令,LGO_U1和LGO_U2由请求port发送,LGO_U3由下行port发送,上行port必须接收该命令)。

3.4.2.Exit from U0

  1. 当成功的执行完LGO_U1 link命令后,port状态从U0切换为U1。
  2. 当成功的执行完LGO_U2 link命令后,port状态从U0切换为U2。
  3. 当成功的执行完LGO_U3 link命令后,port状态从U0切换为U3。
  4. 当下行端口连续3次尝试进入U3失败时,port状态从U0切换为eSS.Inactive。
  5. 当7.3节描述的将link状态切换到Recovery的错误状态发生时,port状态从U0切换为Recovery。7.3节描述的错误类型如下。
Error TypeDescription/ExampleError Recovery PathUpdate Link Error Count?Update Soft Error Count? (SuperSpeedPlus USB)
Missing Header Packet FramingOnly a valid packet framing ordered set will be declared in the receiver side.Delayed transition to RecoveryYesNO
Header Packet ErrorAny header packet CRC is bad.Header packet retry processNOYes
Rx Header Sequence Number ErrorThe Header Sequence Number in the received header packet does not match the Rx Header Sequence Number.RecoveryYesNO
ACK Tx Header Sequence Number ErrorThe Header Sequence Number in the received LGOOD_n (not Header Sequence Number Advertisement) does not match ACK Tx Header Sequence Number.RecoveryYesNO
Header Sequence Number Advertisement ErrorLGOOD_n not received upon PENDING_HP_TIMER timeout. A header packet received before sending LGOOD_n. LCRD_x or LCRD1_x/LCRD2_x or LGO_Ux received before receiving LGOOD_n.RecoveryYesNO
Rx Header Buffer Credit Advertisement Error (SuperSpeed USB)LCRD_x not received upon CREDIT_HP_TIMER timeout. A header packet received before sending LCRD_x. LGO_Ux received before receiving LCRD_x.RecoveryYesNO
Type 1/Type 2 Rx Buffer Credit Advertisement Error (SuperSpeedPlus USB)LCRD1_x/LCRD2_x not received upon Type 1/Type 2 CREDIT_HP_TIMER timeout. A packet received before sending LCRD1_x/LCRD2_x. LGO_Ux received before receiving LCRD1_x/LCRD2_x.RecoveryYesNO
Training Sequence ErrorTimeout from Polling to Rx.Detect or eSS.Disabled without reaching U0. Timeout from Recovery to eSS.Inactive without reaching U0. Timeout from Recovery to Rx.Detect without reaching U0. Timeout from Polling.Active or Polling.Configuration to Polling.PortMatch (SuperSpeedPlus USB only)Timeout from Recovery to eSS.Inactive requires software intervention.NONO
Invalid link commandValid link command framing but invalid link command word. LGO_Ux received before receiving LCRD_x.IgnoredNOYes
Missing link commandNo valid link command framing is detected.Delayed transition to Recovery if missing LGOOD_n or LCRD_x or LCRD1_x/LCRD2_xYesNO
8b/10b Error (Gen 1)Detected in the PHY layer.N.A.NON.A.
Gen 2x1 Block Header Single-bit ErrorDetected and corrected in PHY layer.CorrectableNOYes
Gen 2x1 Block Header Two-bit ErrorDetectableRecoveryYesNO
Single Bit SKP/SKPEND Error (Gen 2)DetectableCorrectableNOYes
Gen 2x2 Block Header Two-bit ErrorCorrectable with BH0/BH1 association (optional)CorrectableNOYes
Gen 2x2 Block Header Multi-bit ErrorDetectable with BH0/BH1 association (optional)RecoveryYesNO
  1. 在任何协商lane上,检测到TS1 ordered set,port状态从U0切换为Recovery。
    链路训练时,Training sequences(TS)用于链路的配置和初始化、Bit-lock and symbol lock、Bit-lock and symbol lock和Lane极性反转。

  2. port可以直接从U0状态设置到Recovery状态。

  3. 当PENDING_HP_TIMER定时器连需4次超时,port从U0状态切换为eSS.Inactive状态。
    PENDING_HP_TIMER定时器从header packet发送开始计时,到link partner响应header packet为止。PENDING_HP_TIMER定时器的目的是允许port检测其链路伙伴发送的header packet是否丢失或损坏。前三次PENDING_HP_TIMER定时器超时,port状态连续切换到Recovery状态,当第四次PENDING_HP_TIMER定时器超时,port从Recovery状态切换到eSS.Inactive状态。

  4. 当被指示时(when directed,这里不知道怎么翻译合适,是由上行port指示还是port的控制器设置,或者说是port自己进入,待考证)下行port切换到eSS.Disabled状态。

  5. 当被指示时下行port可以切换到eSS.Inactive状态。

  6. 当被指示时上行port可以切换到eSS.Disabled状态。
    一对link port进入U0和成功完成链路训练、初始化之后,需要在tPortConfiguration定义的时间内,通过Link Management Packet交换port特性信息,port特性信息定义在8.4.5节。上述过程包含下面几个场景:

    1. 从Polling状态直接进入U0状态。
    2. 通过Hot Reset间接从Polling状态进去U0状态。
    3. 从Recovery进入U0,并且从Polling退出后没有成功完成port配置。在这种情况下,link port必须继续执行port配置流程。
  7. 如果port在tPortConfiguration定义的时间内,没收到port特性LMP数据包,下行port可以直接进入eSS.Inactive状态,上行port可以直接进入eSS.Disabled。

  8. 下行port如果在1ms(tU0RecoveryTimeout)之内没有收到任何link命令,则可进入Recovery状态。

  9. 上行port如果在1ms(tU0RecoveryTimeout)之内没有收到任何link命令或数据包(定义在7.2.4.1.4节),则可进入Recovery状态。

  10. 当下行port主动发出Warm Reset后可以切换到Rx.Detect状态。

  11. 当上行port检测到下行port发出的Warm Reset后,可以切换到Rx.Detect状态。

  12. 当上行port检测到VBUS off,可以切换到eSS.Disabled状态(这种情况只会出现在自供电的上行port中。对于自供电的上行port,eSS.Disabled状态是一种逻辑掉电状态)。

3.5.U1

U1是一种低功耗状态,此时总线上没有数据包传送且上行port和下行port都进入了该状态,同时PHY也处于低功耗状态。

3.5.1.U1 Requirements

  1. 在每条协商lane上,发送器的直流共模电压(DC common mode voltage)必须符合表6-19定义的规范(VTX-CM-DC-ACTIVE-IDLE-DELTA)。

VTX-CM-DC-ACTIVE-IDLE-DELTA.png

  1. port应保持表6-22中定义的低阻抗接收器终端特性,对于x2 lane,则需要在每条协商lane上保持低阻抗接收器终端特性。
  2. port必须使能U1状态退出检测功能,对于x2 lane,必须在配置lane上使能U1状态退出检测功能。
    LFPS握手信号用于退出U1、U2状态和唤醒U3状态。LFPS低频周期性信号(LFPS,Low frequency periodic signaling)用于处于低功率链路状态的链路上两个端口之间的边带通信,同时也可用于链路训练和下行端口发出Warm Reset复位链路。对于多lane的物理层,LFPS信号只在配置lane上传输。

FIgure-6-33-U1-Exit-U2-Exit-U3-Wakeup-LFPS-Handshake-Timing-Diagram.png

  1. 当port发起从U1退出时,应使能其LFPS发送器。对于x2 lane,必须在配置lane上使能LFPS发送器。
  2. 如果U2的inactivity timer超时值不为零,则port在进入U1状态时应使能其U2 inactivity timer。
  3. 下行port应该使能Ping.LFPS探测。对于x2 lane,必须在配置lane上使能Ping.LFPS探测。
  4. 下行port必须使能300ms定时器(tU1PingTimeout),当收到Ping.LFPS时300ms定时器复位并重新开始计时。
  5. 上行端口必须按照表6-30的定义发送Ping.LFPS。对于x2 lane,必须在配置lane上发送Ping.LFPS。

Talbe_6-30_LFPS_Transmitter_Timing_for_SuperSpeed_Designs.png

3.5.2.Exit from U1

  1. 当被指示时,下行port应该切换到eSS.Disabled状态。
  2. 当300ms定时器(tU1PingTimeout)超时后,port应该切换到U1状态。
  3. 当下行port发出warm reset后,应该切换到Rx.Detect状态。
  4. 自供电的上行port未检测到有效的VBUS(11.4.5节定义的有效Vbus),应该切换到eSS.Disabled状态
    11.4.5节定义的VBUS电气特性如下:

Table_11_2_DC_Electrical_Characteristics.png

  1. U2状态的inactivity timer定时器超时后,port应该切换到U2状态。
  2. 在符合第6.9.2节中U1 LFPS退出握手信令的LFPS握手成功完成后,port应该切换到Recovery状态。
  3. 当2ms LFPS握手定时器(tNoLFPSResponseTimeout)超时且符合第6.9.2节中U1 LFPS退出握手信令的LFPS握手未完成,port应该却换到eSS.Inactive。
    下图总结了port从U1状态切换到其他状态的路径。

U1.png

3.6.Hot Reset

只有下行port可以发起Hot Reset。下行port通过在每个协商lane上传输TS2有序集合发起Hot Reset。上行port收到Hot Reset信息后,必须在每个协商lane上使用TS2有序集合响应Hot Reset。一旦完成Hot Reset,上行port通过发送TS2有序集合通知下行port,同时下行port也要响应上行port的完成Hot Reset的信号。两个port完成Hot Reset且进行了空闲符号握手,则他们会进入U0状态。

参考资料

  1. USB 3.0 Technology-comprehensive guide to superspeed usb
  2. usb-complete_5
  3. Universal Serial Bus 3.2 Specification
  4. Universal Serial Bus Specification evision 2.0

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring框架中JavaBean的生命周期及单例模式与多列模式

Spring框架中JavaBean的生命周期及单例模式与多列模式 1. Spring框架中JavaBean的管理过程1.1 #定义Bean1.2 Bean的实例化1.3 属性注入1.4 初始化方法1.5 Bean的使用和引用1.6 销毁方法 2. 单例模式与原型模式在JavaBean管理中的应用1.在Spring管理JavaBean的过程中&#xff0c…

STM32 CubeMX (第三步Freertos中断管理和软件定时)

STM32 CubeMX STM32 CubeMX (第三步Freertos中断管理和软件定时) STM32 CubeMX一、STM32 CubeMX设置时钟配置HAL时基选择TIM1(不要选择滴答定时器;滴答定时器留给OS系统做时基)使用STM32 CubeMX 库,配置Fre…

Java请求Http接口-hutool的HttpUtil(超详细-附带工具类)

概述 HttpUtil是应对简单场景下Http请求的工具类封装&#xff0c;此工具封装了HttpRequest对象常用操作&#xff0c;可以保证在一个方法之内完成Http请求。 此模块基于JDK的HttpUrlConnection封装完成&#xff0c;完整支持https、代理和文件上传。 导包 <dependency>&…

第二章MyBatis入门程序

入门程序 创建maven程序 导入MyBatis依赖。pom.xml下导入如下依赖 <dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><dependen…

vue3 简易用对话框实现点击头像放大查看

设置头像悬停手势 img:hover{cursor: pointer;}效果&#xff1a; 编写对话框 <el-dialog class"bigAvatar"style"border-radius: 4px;"v-model"deleteDialogVisible"title"查看头像"top"5px"><div><img src&…

[python] Kmeans文本聚类算法+PAC降维+Matplotlib显示聚类图像

0 前言 本文主要讲述以下几点&#xff1a; 1.通过scikit-learn计算文本内容的tfidf并构造N*M矩阵(N个文档 M个特征词)&#xff1b; 2.调用scikit-learn中的K-means进行文本聚类&#xff1b; 3.使用PAC进行降维处理&#xff0c;每行文本表示成两维数据&…

vscode 安装勾选项解释

1、通过code 打开“操作添加到windows资源管理器文件上下文菜单 &#xff1a;把这个两个勾选上&#xff0c;可以对文件使用鼠标右键&#xff0c;选择VSCode 打开。 2、将code注册为受支持的文件类型的编辑器&#xff1a;不建议勾选&#xff0c;这样会默认使用VSCode打开支持的相…

opencv简单使用

cv2库安装&#xff0c; conda install opencv-python注意cv2使用时&#xff0c;路径不能有中文。&#xff08;不然会一直’None’ _ update # 处理中文路径问题 def cv_imread(file_path): #使用之前需要导入numpy、cv2库&#xff0c;file_path为包含中文的路径return cv2.imd…

使用sklearn函数对模型进行交叉验证

使用sklearn函数对模型进行交叉验证 交叉验证用来做什么sklearn 中的函数 交叉验证用来做什么 交叉验证&#xff08;Cross-Validatio&#xff09;&#xff0c;是用于在驯良过程中对训练模型的性能和参数进行评估选择的技术。 它的意义在于能够充分利用优先的数据集&#xff0…

08-信息收集-架构、搭建、WAF等

信息收集-架构、搭建、WAF等 信息收集-架构、搭建、WAF等一、前言说明二、CMS识别技术三、源码获取技术四、架构信息获取技术五、站点搭建分析1、搭建习惯-目录型站点2、搭建习惯-端口类站点3、搭建习惯-子域名站点4、搭建习惯-类似域名站点5、搭建习惯-旁注&#xff0c;c段站点…

汽车OTA活动高质量发展的“常”与“新”

伴随着车主的频繁崔更&#xff0c;车企除了卷硬件、拼价格&#xff0c;逐渐将精力转移到汽车全生命周期的常用常新。时至下半年&#xff0c;车企OTA圈愈发热闹&#xff0c;以新势力、新实力为代表新一代车企&#xff0c;OTA运营活动逐渐进入高质量发展期。 所谓高质量&#xf…

K8S应用笔记 —— 部署Dolphinscheduler及简单应用(二)告警通知

一、本章目标 演示Dolphinscheduler的告警通知功能&#xff0c;将SQL任务组件查询返回结果集指定为邮件通知内容&#xff08;支持为&#xff1a;表格、附件或表格附件三种模板&#xff09;。 二、 前提条件 已完成Dolphinscheduler部署 K8S集群部署&#xff0c;可参考文章&a…

2023年05月 C/C++(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:数字放大 给定一个整数序列以及放大倍数x,将序列中每个整数放大x倍后输出。 时间限制:1000 内存限制:65536 输入 包含三行: 第一行为N,表示整数序列的长度(N ≤ 100); 第二行为N个整数(不超过整型范围),整数之间以一个空格分开; 第三行包含一个整数(不超过整…

负载均衡下的webshell

文章目录 1.场景描述2.在蚁剑里添加 Shell3.因为负载均衡而出现的问题4.问题解决方案4.1 方案14.2 方案24.3 方案3 1.场景描述 当前手里有一个以docker部署的Tomcat负载均衡环境。主机对外ip和端口为192.168.100.130:18080 我们假设其为一个真实的业务系统&#xff0c;存在一…

QT的布局与间隔器介绍

布局与间隔器 1、概述 QT中使用绝对定位的布局方式&#xff0c;无法适用窗口的变化&#xff0c;但是&#xff0c;也可以通过尺寸策略来进行 调整&#xff0c;使得 可以适用窗口变化。 布局管理器作用最主要用来在qt设计师中进行控件的排列&#xff0c;另外&#xff0c;布局管理…

Newsprk Newspaper新闻报纸WordPress主题

Newsprk Newspaper新闻报纸WordPress主题对于任何使用 WordPress 技术构建的新闻和杂志网站来说都是一个有吸引力且时尚的主题。Newsprk – 报纸 WordPress 主题非常适合任何新闻/杂志或与以下类别匹配的任何特定业务&#xff0c;如博客、体育、时尚、科学、足球、政治、视频、…

足部IMU在复杂场景中行走定位

随着微机电系统&#xff08;MEMS&#xff09;技术的快速发展&#xff0c;基于MEMS的惯性导航系统&#xff08;INS&#xff09;在任意环境的基站定位方面发挥着至关重要的作用。惯性导航具有自主性强、定位频率高、功耗低、实时性强等特点。因此更适合单兵作战、反恐行动、应急救…

基于LSTM深度学习网络的时间序列分析matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 % 随机打乱数据集并划分训练集和测试集 index_list randperm(size(wdata, 1)); ind …

SpringBoot + Vue 微人事 项目 (第八天)

基础信息设置 在该页面添加一个大div&#xff0c;然后添加一个tab选项卡&#xff0c;Element UI里面有 把代码复制到大div里面&#xff0c;把里面的label和name属性改成我们想要的&#xff0c;再把tab-click"handleClick"去掉 <div><el-tabs v-model"a…

vue中实现文字检索时候将搜索内容标红

实现结果 html&#xff1a; <div class"searchBox"><span class"bt">标&#8195&#8195题</span><div class"search"><div class"shuru"><!-- <span class"title">生产经营<…