文章目录
- 1 CRCReceiveTimer
- 2 SenderResponseTimer
- 3 Capability Timers
- 4 Wait Timers and Times
- 5 Power Supply Timers
- 6 NoResponseTimer
- 7 BIST相关请看原文档
- 8 Power Role Swap Timers
- 9 Soft Reset Timers
- 10 Data Reset Timers
- 11 Hard Reset Timers
- 12 Structured VDM Timers
- 13 VCONN Timers
- 14 tCableMessage
- 15 DiscoverIdentityTimer
- 16 Collision Avoidance Timers
- 17 Fast Role Swap Timers
- 18 Chunking Timers
- 19 Programmable Power Supply Timers
- 20 tEnterUSB
- 21 EPR Timers
- 22 Time Values and Timers(所有定时器的值)
timers(定时器)在USB PD(Power Delivery)中的作用主要是管理和控制协议中的各个时间段。以下是定时器在USB PD中的一些具体应用:
- 协议定时器:用于管理和控制协议中各种交互的超时和时序。这有助于确保协议的正确执行,防止因超时或时序问题导致的通信失败。
- 充电定时器:在充电过程中,定时器可以用于控制充电周期、充电速率等参数,确保电池安全、有效地充电。
- 故障恢复定时器:当检测到故障或异常时,故障恢复定时器可以触发相应的恢复流程,如重试、断开连接等,以确保系统的稳定性和安全性。
- 状态机转换定时器:在复杂的状态机交互中,定时器可以用于控制状态转换的时序和条件,确保系统按照预期的逻辑进行操作。
这些定时器通过精确控制时间,有助于提高USB PD系统的可靠性和稳定性。同时,为了满足不同的应用需求,定时器的参数和配置通常是可调的,以便根据实际情况进行优化和调整。需要注意的是,具体的定时器实现和使用可能因不同的USB PD方案而有所差异,因此在实际开发和应用中,需要参考相关文档和规范进行设计和配置。
以下所有定时器都是根据总线上的位来定义的,而不管它们在逻辑体系结构的何处实现。这是为了确保定时器的启动和停止有一个固定的参考。由实现者来确保在实际系统中遵守这个时间安排。
1 CRCReceiveTimer
CRCRReceiveTimer应由发送方的协议层使用,以确保消息不会丢失。当CRCRReceiveTimer到期时,检测到未能接收到消息的确认(GoodCRC消息),无论是由接收端的坏CRC还是由tReceive内的乱码消息引起的。
CRCRReceiveTimer到期时,发送方的协议层响应应为重试重试次数。请注意,电缆插头不会重试消息,未阻塞的大型扩展消息不会重试(请参阅第6.7.2节“重试计数器”)。与重试消息相对应的前导码的发送应在CRCRReceiveTimer到期的tRetry内开始。
CRCRReceiveTimer应在物理层传输消息EOP的最后一位时启动。当物理层接收到与GoodCRC消息对应的EOP的最后一位时,CRCReceiveTimer应停止。
接收消息的协议层应在t传输内用GoodCRC消息进行响应,以确保发送方的CRCReceiveTimer不会过期。tTransmit应从物理层接收到消息EOP的最后一位开始测量,直到物理层发送了GoodCRC消息的前导码的第一位为止。
2 SenderResponseTimer
发送方的策略引擎应使用SenderResponseTimer来确保请求响应的消息(例如Get_Source_Cap消息)在tSenderResponse的限定时间内得到响应。SenderResponseTimer到期时,检测到无法接收预期响应。
对于作为Chunks接收的扩展消息,SenderResponseTimer也将由Chunking Rx状态机启动和停止。有关SenderResponseTimer操作的更多详细信息,请参见第8.3.3.1.1节“SenderRespinseTimer状态图”。
SenderResponseTimer到期时策略引擎的响应应取决于发送的消息(见第8.3节“策略引擎”)。
SenderResponseTimer应从物理层接收到GoodCRC消息EOP的最后一位(对应于请求响应的消息)开始。
当GoodCRC消息的EOP的最后一位(对应于预期响应消息)已由物理层发送时,SenderResponseTimer应停止。
需要响应的消息的接收方应在tReceiverResponse内做出响应,以确保发送方的SenderResponseTimer不会过期。
tReceiverResponse 时间应从GoodCRC消息EOP的最后一位(对应于预期请求消息)由物理层发送到响应消息前导的第一位为止进行测量。
3 Capability Timers
Source和Sink使用Capability Timers来确定具有PD能力的设备的连接。通过定期发送或请求能力,可以在收到响应时确定PD设备附件。
3.1 SourceCapabilityTimer
在成功协商之前,Source应使用SourceCapabilityTimer每隔tTypeCSendSourceCap定期发送Source_Cabilities消息,同时:
- 端口已连接。
- Source与PDSink端口未处于活动连接中。
每当出现SourceCapabilityTimer超时时,Source应发送Source_Cabilities消息。它将重新初始化并重新启动SourceCapabilityTimer。自建立PD连接以来,当物理层接收到与GoodCRC消息相对应的EOP的最后一位时,应停止SourceCapabilityTimer。此时,Source将等待请求消息或响应超时。
有关何时传输Source_Cabilities消息的更多详细信息,请参阅第8.3.3.2节“策略引擎源端口状态图”。
3.2 SinkWaitCapTimer
Sink应支持SinkWaitCapTimer。
在默认合约或隐式合约中,当Sink观察到没有Source_Capabilities消息时,在VBUS存在后,在tTypeCSinkWaitCap的持续时间内,Sink可能会发出硬重置信号,以重新启动源发送Source_Capability消息(见第6.7.4节“能力计数器”)或继续以USB Type-C电流操作。
当进入EPR模式的Sink观察到没有EPR_Source_Capabilities消息时,在GoodCRCMessage确认EPR_Mode消息(Action字段设置为3(“Successed”))之后,在tTypeCSinkWaitCap的持续时间内,Sink应发出硬重置信号以退出EPR模式(见第6.4.10节“EPR_Mode Message”)。
当退出EPR模式的Sink在确认操作字段设置为5(“退出”)的EPR_Mode消息的良好CRC消息之后,在tTypeCSinkWaitCapthe Sink Shallissue Hard Reset Signaling的持续时间内,观察到Source_Capabilities消息不存在,以重新启动Source发送Source_Capability消息(见第6.7.4节“能力计数器”)。
有关SinkWaitCapTimer何时运行的更多详细信息,请参阅第8.3.3.3节“策略引擎接收端口状态图”。
3.3 tFirstSourceCap
连接端口伙伴后、硬重置后、电源角色交换后或快速角色交换后,源应在达到vSafe5V的VBUS的第一个源上限内发送其第一个源能力消息。
软重置后,Source应在对应于接受消息的GoodCRC消息EOP的最后一位之后的tFirstSourceCap内发送其第一个Source_Cabilities消息。
这样可以确保Sink在Sink的SinkWaitCapTimer到期之前接收到Source_Capabilities消息。
进入EPR模式的Source应在良好CRC消息的tFirstSourceCap内发送其第一个EPR_Source_Cabilities消息,确认EPR_Mode消息,Action字段设置为3(“Successed”)。
退出EPR模式的Source应在确认EPR_Mode消息的良好CRC消息的第一个SourceCap内发送其第一个Source_Cabilities消息,Action字段设置为5(“退出”)。
4 Wait Timers and Times
4.1 SinkRequestTimer
SinkRequestTimer用于确保在从Source接收到响应Sink Request消息的Wait消息之后,下一个Sink Request消息之前的时间至少为tSinkRequest min(参见第6.3.12节“等待消息”)。
当接收到Wait消息的EOP时,应启动SinkRequestTimer,如果接收到任何其他消息或在硬复位期间,应停止该定时器。
在接收到响应Sink Request消息而发送的Wait消息的EOP之后,在发送新的请求消息之前,Sink应至少等待tSinkRequest。每当出现SinkRequestTimer超时时,Sink都可以发送请求消息。然后应重新初始化并重新启动SinkRequestTimer。
4.2 tPRSwapWait
在接收到响应PR_Swap消息的Request消息之后,下一条PR_Swap消息之前的时间至少为tPRSwapWait min(见6.3.12“等待消息”)。在接收到响应PR_Swap消息而发送的Wait消息的EOP后,端口应至少等待tPRSwapWait,然后再发送新的PR_Swap消息。
4.3 tDRSwapWait
接收到响应DR_SwapMessage的Wait消息后,下一个DR_Swap消息之前的时间至少为tDRSwapWait min(参见6.3.12“等待消息”)。在接收到响应DR_Swap消息而发送的Wait消息的EOP后,端口应至少等待tDRSwapWait,然后再发送新的DR_Swap消息。
4.4 tVconnSwapWait
在接收到响应VCONN_Swap消息的Wait消息之后,下一个VCONN_Swap消息之前的时间至少为tVCONNSwapWait min(参见6.3.12“等待消息”)。在接收到响应VCONN_Swap消息发送的等待消息的EOP后,在发送新的VCONN_Swap消息之前,端口应至少等待tVCONNSwapWait。
4.5 tEnterUSBWait
接收到响应Enter_USB消息的Wait消息后,下一条Enter_USB信息之前的时间至少为tEnterUSBWait min(见6.3.12“等待消息”)。DFP应在接收到响应Enter_USB消息发送的等待消息的EOP后等待至少tEnterUSBWait,然后再发送新的Enter_USB信息。
5 Power Supply Timers
有关本节计时器使用情况的图表,请参阅第7.3节“转换”。
5.1 PSTransitionTimer
策略引擎使用PSTransitionTimer来超时PS_RDY消息。当接受了对新能力的请求时,它就会启动,如果没有接收到PS_RDY消息,它将在tPSTransition之后超时。这种情况会导致硬复位并返回USB默认操作。PSTransitionTimer与电源从一个电压或电流电平转换到另一个电压电平所需的时间有关(见第7.1节“电源要求”)。
当GoodCRC消息EOP的最后一位(对应于Accept或GotoMin消息)已由物理层发送时,应启动PSTransitionTimer。当物理层发送了GoodCRC消息EOP的最后一位(对应于PS_RDY消息)时,PSTransitionTimer应停止。
5.2 PSSourceOffTimer
5.2.1 在权力角色交换期间使用
PSSourceOffTimer由当前充当Sink的双角色电源设备中的策略引擎使用,以在电源角色交换序列期间超时PS_RDY消息。这种情况会导致USB Type-C®错误恢复。
如果当前充当Source的双重角色电源设备发送了PR_Swap消息请求,则Sink可以用Accept消息进行响应。当Sink的物理层接收到GoodCRC消息EOP的最后一位时,对应于该发送的Accept消息,则PSSourceOffTimer应启动。
如果当前充当Sink的双重角色电源设备发送了PR_Swap消息请求,则源可以用Accept消息进行响应。当GoodCRC消息EOP的最后一位(对应于此接收到的Accept消息)由Sink的物理层发送时,PSSourceOffTimer应启动。
PSSourceOffTimer应在以下情况下停止:
- GoodCRC消息EOP的最后一位,对应于接收到的PS_RDY消息,由物理层传输。
PSSourceOffTimer与远程双角色电源设备停止供电所需的时间有关(另请参阅第7.3.2.1节“接收端请求的电源角色交换”和第7.3.2.2节“源端请求的电力角色交换”)。如果在tPSSourceOff内未从远程双角色电源设备接收到PS_RDY消息,则计时器应超时,该消息指示发生了这种情况。
5.2.2 在快速角色交换过程中使用
PSSourceOffTimer由双角色电源设备中的策略引擎使用,该设备是在快速角色交换序列期间PS_RDY消息超时的初始接收器(当前提供vSafe5V)。这种情况会导致USB Type-C®错误恢复。
当初始Sink发送FR_Swap消息请求时,初始Source应以AcceptMessage进行响应。当对应于该接受消息的GoodCRC消息EOP的最后一位被初始Sink的物理层接收时,PSSourceOffTimer应被启动。
PSSourceOffTimer应在以下情况下停止:
- GoodCRC消息EOP的最后一个比特,对应于接收到的PS_RDY消息,由物理层发送。
PSSourceOffTimer与初始Source停止供电和VBUS恢复到vSafe5V所需的时间有关(另请参阅第7.2.10节“快速角色交换”和第7.3.5节“快速任务交换引起的转换”)。如果没有从tPSSourceOff内的初始Source接收到PS_RDY消息,则计时器应超时,表明已发生这种情况。
5.3 PSSourceOnTimer
5.3.1 在权力角色交换期间使用
PSSourceOnTimer由双角色电源设备中的策略引擎使用,该设备刚刚停止供电,并正在等待在电源角色交换期间PS_RDY消息上开始供电超时。这种情况会导致USB Type-C®错误恢复。PSSourceOnTimer应在以下情况下启动:
- GoodCRC消息EOP的最后一位,对应于传输的PS_RDY消息,由物理层接收。PSSourceOnTimer应在以下情况下停止:
- GoodCRC消息EOP的最后一位,对应于接收到的PS_RDY消息,由物理层传输。
PSSourceOnTimer与远程双角色电源设备开始供电所需的时间有关(另请参阅第7.3.2.1节“接收端请求的电源角色交换”和第7.3.2.2节“源端请求的电力角色交换”),如果tPSSourceOn中未收到指示此情况的PS_RDY消息,则会超时。
5.3.2 在快速角色交换过程中使用
PSSourceOnTimer由双角色电源设备中的策略引擎使用,该设备刚刚停止供电,并正在等待在快速角色交换期间PS_RDY消息上开始供电超时。这种情况会导致USB Type-C®错误恢复。
PSSourceOnTimer应在以下情况下启动:
- GoodCRC消息EOP的最后一位,对应于传输的PS_RDY消息,由物理层接收。PSSourceOnTimer应在以下情况下停止:
- GoodCRC消息EOP的最后一位,对应于接收到的PS_RDY消息,由物理层传输。
PSSourceOnTimer与远程双角色电源设备开始供电所需的时间有关(另请参阅第7.2.10节“快速角色交换”和第7.3.5节“快速任务交换引起的转换”),如果tPSSourceOn中未收到指示此情况的PS_RDY消息,则会超时。
6 NoResponseTimer
Source中的策略引擎使用NoResponseTimer来确定其端口伙伴在硬重置后没有响应。当NoResponseTimer超时时,策略引擎在确定端口合作伙伴对USB电源传递消息没有响应之前,将执行高达nHardResetCount的额外硬重置。
如果Source在tNoResponseof:
- 如果硬重置信令是由Sink发起的,则PHY层发送的硬重置信令的最后一位。
- 如果硬重置信令是由Source发起的,则PHY层接收到的硬重置信令的最后一位。
然后,Source应发出额外的硬复位,最多为nHardResetCount次(见第6.8.3节“硬复位”)。
对于无响应的设备,源中的策略引擎可能决定继续发送Source_Capabilities Messages,或者转到非USB电源传递操作并停止发送Source_Cabilities Messages。
7 BIST相关请看原文档
8 Power Role Swap Timers
SwapSourceStartTimer:
在电源角色交换或快速角色交换之后,新Source应使用SwapSourceStartTimer,以确保在新Sink准备好接收Source_Capabilities消息之前,它不会发送Source_Capability消息。在
GoodCRC消息的EOP的最后一位,其响应于由新Source发送的指示其电源准备就绪的PS_。在发送了GoodCRC消息的EOP的最后一位之后,Sink应准备好接收Source_Capabilities消息tSwapSinkReady,该消息是响应于新Source发送的PS_RDY消息而发送的,指示其电源已准备好。
9 Soft Reset Timers
9.1 tSoftReset
当端口对连接时,未能看到GoodCRC消息以响应tReceive内的任何消息(after nRetryCount retries),表示通信失败。这将导致Souce或Sink发送软重置消息,该消息的传输应在CRCReceiveTimer到期的tSoftReset内完成。
9.2 tProtErrSoftReset
如果发生导致Source或Sink发送软重置消息的协议错误,则应在响应导致协议错误的消息发送的GoodCRC的EOP的tPotErrSoftReset内完成软重置消息传输。
10 Data Reset Timers
10.1 VCONNDischargeTimer
DFP中的策略引擎使用VCONNDischargeTimer来确保UFP及时主动释放VCONN,以确保电缆恢复Ra。一旦UFP在vRaReconnect下释放VCONN(请参见[USB Type-C 2.3]),它将发送PS_RDY消息(另请参见第7.1.15节“VCONN电源循环”)。
如果DFP在GoodCRC最后一位的tVCONNSourceDischarge内没有接收到来自UFP的PS_RDY消息,以确认响应Data_Reset消息的Accept消息,则VCONNDischargeTimer将超时,策略引擎将进入ErrorRecovery状态。
10.2 tDataReset
DFP应在GoodCRC消息EOP最后一位的tDataReset内完成数据重置过程(如第6.3.14节“数据重置消息”所定义),对应于物理层发送的Accept消息。
10.3 DataResetFailTimer
DFP的策略引擎应使用DataResetFailTimer,以确保数据重置过程在GoodCRC的最后一位的tDataResetFail内完成,确认响应Data_Reset消息的Accept消息。如果DFP的DataResetFailTimer到期,则DFP将进入ErrorRecovery状态。
10.4 DataResetFailUFPTimer
UFP的策略引擎应使用DataResetFailUFPTimer,以确保数据重置过程在GoodCRC的最后一位的tDataResetFailUFP内完成,确认响应Data_Reset消息的Accept消息。如果UFP的DataResetFailUFPTimer到期,则UFP应进入ErrorRecovery状态。
11 Hard Reset Timers
11.1 HardResetCompleteTimer
HardResetCompleteTimer由协议层在其已经请求PHY层发送硬重置信令并且PHY层由于非空闲信道而不能在合理时间内发送信令的情况下使用。如果PHY层没有指示在请求传输的协议层的tHardResetComplete内发送了硬重置信令,则协议层将向策略引擎通知硬重置信令已经发送,以确保及时重置电源。
11.2 PSHardResetTimer
PSHardResetTimer由Souce中的策略引擎使用,以确保Sink在关闭其对VBUS的电源之前有足够的时间处理硬重置信令。当发生硬复位时,源极停止驱动VCONN,从VCONN引脚移除Rp,并开始将VBUS电压转换为vSafe0V:
- tPSHardReset在从Sink接收到硬复位信号的最后一位之后,或
- tPSHardReset在Source发送硬复位信号的最后一位之后。
参见第7.1.5节“硬复位响应”。
11.3 tDRSwapHardReset
如果在模式操作期间接收到DR_Swap消息,则意外DR_Swap消息的接收方应启动硬重置;硬复位信令应在响应DR_Swap消息发送的GoodCRC的EOP的tDRSwapHardReset内生成。
11.4 tProtErrHardReset
如果发生直接导致硬重置的协议错误,则应在GoodCRC的EOP的tPotErrHardReset内完成硬重置信令的传输,该EOP是针对导致协议错误的消息发送的。
12 Structured VDM Timers
12.1 VDMResponseTimer
发起方的策略引擎应使用VDM响应定时器,以确保需要响应的结构化VDM命令请求(如发现身份命令请求)在tVDMSenderResponse的限定时间内得到响应。VDM响应定时器应适用于所有结构化VDM命令,但输入模式和退出模式命令除外,它们有自己的定时器(分别为VDMModeEntryTimer和VDMModeExitTimer)。VDMResponseTimer到期时,检测到无法接收预期响应。
VDMResponseTimer到期时策略引擎的响应应取决于发送的消息(见第8.3节“策略引擎”)。
VDMResponseTimer应从物理层接收到GoodCRC消息EOP的最后一位开始,对应于请求响应的VDM命令。当GoodCRC消息的EOP的最后一位(对应于预期的VDM命令响应)已由物理层发送时,VDM响应定时器应停止。
需要响应的消息的接收方应在tVDMReceiverResponse内做出响应,以确保发送方的VDMResponseTimer不会过期。
tVDMReceiverResponse时间应从物理层发送消息EOP的最后一位开始测量,直到物理层发送响应消息前导码的第一位为止。
12.2 VDMModeEntryTimer
发起方的策略引擎应使用VDMModeEntryTimer来确保对结构化VDM进入模式命令请求的响应(ACK或NAK,其中ACK表示已进入请求的模式)在tVDMWaitModeEntry的限定时间内到达。VDMModeEntryTimer到期时,检测到无法接收预期响应。
VDMModeEntryTimer到期时,策略引擎的响应是通知设备策略管理器(请参阅第8.3.3.24.1节“DFP结构化VDM模式进入状态图”)。
VDMModeEntryTimer应从物理层接收到GoodCRC消息的EOP的最后一位(对应于VDM命令请求)开始。当GoodCRC消息的EOP的最后一位对应于预期的结构化时,VDMModeEntryTimer应停止
VDM命令响应(ACK、NAK或BUSY)已由物理层传输。
需要响应的消息的接收方应在tVDMEnterMode内做出响应,以确保发送方的VDMModeEntryTimer不会过期。
tVDMEnterMode时间应从GoodCRC消息的EOP的最后一位(对应于VDM命令请求)由物理层发送到响应消息前导的第一位为止进行测量。
12.3 VDMModeExitTimer
发起方的策略引擎应使用VDMModeExitTimer,以确保对结构化VDM退出模式命令的ACK响应(指示请求的模式已退出)在tVDMWaitModeExit的限定时间内到达。VDMModeExitTimerexpires时检测到无法接收预期响应。
第284页USB电源传输规范第3.2版,第1.0版,2023-10页VDMModeExitTimer到期时,策略引擎的响应是通知设备策略管理器(请参见第8.3.3.24.2节“DFP结构化VDM模式退出状态图”)。
VDMModeExitTimer应从物理层接收到GoodCRC消息EOP的最后一位开始,对应于请求响应的VDM命令。当GoodCRC消息EOP的最后一位(对应于预期的结构化VDM命令响应ACK)已由物理层发送时,VDMModeExitTimer应停止。
需要响应的消息的接收方应在tVDMExitMode内做出响应,以确保发送方的VDMModeExitTimer不会过期。
tVDMExitMode时间应从物理层接收到消息EOP的最后一位开始测量,直到物理层发送了响应消息前导的第一位为止。
12.4 tVDMBusy
启动器应在收到BUSY命令响应后至少等待tVDMBusy,然后再重复结构化VDM请求。
13 VCONN Timers
13.1 VCONNOnTimer
VCONNOnTimer 在 VCONN 交换期间使用。
VCONNOnTimer 应在下列情况下启动
- 物理层发送或接收到与Accept Message相对应的 GoodCRC 报文 EOP 的最后一位。
物理层发送或接收了与接Accept Message相对应的 GoodCRC 报文 EOP 的最后一位。
当出现以下情况时,VCONNOnTimer 应停止: - 物理层传输了与 PS_RDY 报文相对应的 GoodCRC 报文 EOP 的最后一位。
物理层发送。
在发送 PS_RDY 消息之前,端口应已打开 VCONN。
13.2 tVCONNSourceOff
tVCONNSourceOff时间适用于VCONN交换。初始VCONN源应在GoodCRC消息EOP的最后一位的tVCONNSourceOff内停止源VCONN,对应于物理层发送的PS_RDYMessage。
14 tCableMessage
符合本规范修订版的端口在发送SOP’ or SOP’’数据包之前不得等待tCableMessage,即使在使用[USBPD 2.0]与电缆插头进行通信时也是如此。本规范定义了避免这种时间需要的冲突避免机制。
当在[USBPD 2.0]下操作时,电缆插头在发送SOP’ or SOP’’数据包之前只能等待tCableMessage。当在高于[USBPD 2.0]的修订版下操作时。电缆插头在发出SOP’ or SOP’’包之前不应该等待tCableMessage。
15 DiscoverIdentityTimer
DiscoverIdentityTimer在明确合同期间使用,当发现电缆插头是否能够使用SOP’进行PD时。在明确合同期间执行电缆查找时,应在每个tDiscoverIdentity发送Discover Identity命令请求。应发送不超过DiscoverIdentityCount个没有GoodCRC消息响应的Discover Identity消息。如果端口发送了DiscoverIdentityCount Discover Identity Command请求后没有收到GoodCRC消息响应,则端口不应再发送任何SOP’/SOP’’消息。
16 Collision Avoidance Timers
16.1 SinkTxTimer
SinkTxTimer由Source中的协议层使用,以允许Sink在发起AMS之前完成其传输。
在通过发送消息启动AMS之前,在将Rp从SinkTxOk更改为SinkTxNG之后,Source应至少等待tSinkTx。
Sink只有在确定Rp设置为SinkTxOk时才应启动AMS。
16.2 tSrcHoldsBus
如果转换到PE_SRC_Ready状态将导致tSrcHoldsBus内立即转换出PE_SRC_Ready状态,例如,由于未导致软重置的协议错误,则可能不会发送AMS结束通知和AMS中的第一条消息,以避免不必要地更改Rp值。
17 Fast Role Swap Timers
17.1 tFRSwap5V
tFRS wap5V时间应从以下各项测量:
- •以较晚者为准:
- GoodCRC消息EOP的最后一位,对应于Accept消息。
- VBUS在vSafe5V范围内。
- 直到物理层传输了响应PS_RDY消息前导的第一位。
在快速角色交换过程中,初始Source应在以下两项之后在tFRS wap5V内启动PS_RDY消息:
- 初始Source已发送Accept消息,以及
- VBUS等于或低于vSafe5V
17.2 tFRSwapComplete
在快速角色交换过程中,初始Sink应在收到来自初始Source的PS_RDY消息后,在tFRS WapComplete内用PS_RDY消息进行响应。tFRS WapComplete时间应从GoodCRC消息EOP的最后一位(对应于PS_RDY消息)由物理层发送到响应PS_RDY消息前导的第一位为止进行测量。
17.3 tFRSwapInit
FR_Swap消息EOP的最后一位应由新Source在检测到快速角色交换请求后不迟于tFRSwapInit发送(见第5.8.6.3节“快速角色交换检测”)
18 Chunking Timers
18.1 ChunkingNotSupportedTimer
ChunkingNotSupportedTimer由不支持多块Chunking但已接收到Message chunk的Source或Sink使用。
ChunkingNotSupportedTimer应在以下情况下启动:
- GoodCRC消息EOP的最后一位,对应于多块消息的消息块,由物理层传输。在ChunkingNotSupportedTimer到期之前,策略引擎不应发送其Not_Supported消息。
18.2 ChunkSenderRequestTimer
ChunkSenderRequestTimer在Chunked消息传输期间使用。
ChunkSenderRequestTimer应由发送方的Chunking状态机使用,以确保在tChunkSenderRequest的限定时间内响应Chunk响应。ChunkSenderRequestTimer到期时检测到无法接收预期响应。
ChunkSenderRequestTimer应在以下情况下启动:
- GoodCRC消息EOP的最后一位,对应于块响应消息,由物理层接收。
ChunkSenderRequestTimer应在以下情况下停止:
- GoodCRC消息的EOP的最后一位,对应于块请求消息,由物理层传输。
- 从协议层Rx接收到块请求以外的消息。
需要Chunk Request的Chunk Response的接收方应在tChunkReceiverRequest中使用Chunk Request进行响应,以确保发送方的ChunkSenderRequestTimer不会过期。
tChunkReceiverRequest time应从GoodCRC消息的EOP的最后一位(对应于Chunk响应消息)由物理层发送到响应消息前导的第一位为止进行测量。
18.3 ChunkSenderResponseTimer
ChunkSenderResponseTimer在Chunked消息传输期间使用。
ChunkSenderResponseTimer应由发送方的Chunking状态机使用,以确保Chunk Request在tChunkSenderResponse的限定时间内得到响应。ChunkSenderResponseTimer到期时检测到无法接收预期响应。
ChunkSenderResponseTimer应在以下情况下启动:
- GoodCRC消息EOP的最后一位,对应于块请求消息,由物理层接收。
ChunkSenderResponseTimer应在以下情况下停止:
- GoodCRC消息EOP的最后一位,对应于块响应消息,由物理层传输。
- 从协议层接收到块以外的消息。
USB电源传输规范3.2版,版本1.02023-10第289页
需要Chunk响应的Chunk请求的接收方应在tChunkReceiverResponse内使用Chunk响应进行响应,以确保发送方的ChunkSenderResponseTimer不会过期。
tChunkReceiver响应时间应从GoodCRCMessage的EOP的最后一位(对应于Chunk请求消息)由物理层发送到响应消息前导的第一位为止进行测量。
19 Programmable Power Supply Timers
19.1 SinkPPSPeriodicTimer
Sink的策略引擎应使用SinkPPSPeriodicTimer,以确保在SPR PPS操作中,Sink和Source之间的通信在tPPSRequest的限定时间内发生。在没有任何其他业务的情况下,请求SPR PPS APDO的请求消息作为保活机制定期发送。
SinkPPSPeriodicTimer应在物理层传输GoodCRC消息EOP的最后一位时重新初始化和重新启动,该消息对应于任何接收到的消息,导致Sink进入PE_SNK_Ready状态。
在物理层传输GoodCRC消息EOP的最后一位(对应于任何消息)时,Sink应停止信宿PPSPeriodicTimer,或者物理层从Source和Sink接收到任何信令的最后一个位,从而使Sink离开PE_SNK_Ready状态。
19.2 SourcePPSCommTimer
Source的策略引擎应使用SourcePPSCommonTimer,以确保在SPR PPS操作中,Sink和Source之间的通信在tPPSTimeout的限定时间内发生。在没有任何其他业务的情况下,请求SPR PPS APDO的请求消息作为保活机制被周期性地接收。
当接收到导致Source进入PE_SRC_Ready状态的任何消息后,物理层发送相应GoodCRC消息EOP的最后一位时,应重新初始化并重新启动SourcePPSCommTimer。
当出现以下情况时,Source应停止SourcePPSCommonTimer:
- 在接收到导致Source离开PE_SRC_Ready状态的任何消息后,物理层发送相应GoodCRC消息EOP的最后一位,或者
- 任何Sink的最后一位由物理层从端口接收,由Source接收,导致Source离开PE_SRC_Ready状态。
当SourcePPSCommTimer超时时,Source应发出硬复位信号
20 tEnterUSB
DFP应在以下任一项的tEnterUSB内发送Enter_USB消息:
- GoodCRC的最后一位确认Data_Reset_Complete消息以响应Data_Reset消息,或
- PD连接,特别是GoodCRC的最后一位,在初始进入PE_SRC_Send_Capabilities状态后确认Source_Capabilitys消息,或
- GoodCRC的最后一位确认接受消息,以响应DFP为满足此超时参数而发出的DR_Swap消息失败,这可能导致端口无法转换为[USB4]操作。
UFP在接收Enter_USB消息之前启动的任何AMS都会延迟接收Enter_USBMessage和[USB4]操作,因此,在DFP有时间发送Enter_USB信息之前,支持USB4®的UFP不应启动任何AMS。
21 EPR Timers
21.1 SinkEPREnterTimer Timer
SinkEPREnterTimer用于确保EPR模式进入过程在tEnterEPR内完成。Sink在看到GoodCRC消息的最后一位时启动计时器,以响应Action字段设置为1(“Enter”)的EPR_Mode消息。当物理层发送了对应GoodCRC消息EOP的最后一位时,Sink应停止计时器,该消息对应于接收到的EPR_Mode消息,其中Action字段设置为3(“Enter Successed”)。如果定时器到期,Sink应发送软重置消息。
21.2 SinkEPRKeepAlive Timer
Sink的策略引擎应使用SinkEPRKeepAliveTimer,以确保Sink和Source之间的通信在tSinkEPRKeepAlive的限定时间内发生。当处于EPR模式时,接收器应在进入PE_SNK_Ready状态时初始化并运行该定时器,当处于EPR方式时,Sink应从PE_SNK_Ready退出时应停止该定时器。
在EPR模式下运行时,Sink应在以下时间停止SinkEPRKeepAliveTimer计时器:
- GoodCRC消息EOP的最后一位,作为对来自Source的任何消息的响应,由物理层传输。
- 物理层接收GoodCRC消息EOP的最后一位,以响应发送到Source的任何消息。
如果定时器到期,Sink应发送EPR_KeepAlive消息。
21.3 SourceEPRKeepAlive Timer
Source的策略引擎应使用SourceEPRKeepAliveTimer,以确保Sink和Source之间的通信在tSourceEPRKeepAlive的限定时间内发生。当处于EPR模式时,震源应在进入PE_SRC_Ready状态时初始化并运行该定时器,当EPR模式时从PE_SRC_Ready状态退出时应禁用该定时器。
在EPR模式下运行时,只要出现以下情况,Source应停止SourceEPRKeepAliveTimer计时器:
- GoodCRC消息EOP的最后一位,作为对来自Sink的任何消息的响应,由物理层传输。
- 物理层接收GoodCRC消息EOP的最后一位,以响应发送到Source的任何消息。
如果定时器到期,Source应发送硬复位信号。
21.4 tEPRSourceCableDiscovery
端口合作伙伴连接后、硬重置后、电源角色交换后或快速角色交换后,Source应在签订第一份明确合同的tEPRSourceCable Discovery中发现电缆插头。
Source应在接收到确认PS_RDY消息的GoodCRC消息的tEPRSourceCableDiscovery内向电缆插头发送Discover Identity REQ命令,作为明确合同协商的一部分。
注意:如果Source不是VCONN源,则tEPRSourceCableDiscovery还将包括VCONN交换所需的时间。
22 Time Values and Timers(所有定时器的值)
表6.69“时间值”总结了本节中列出的计时器的值。对于每个定时器值,给定的实现应在指定的范围内选择一个固定值。表6.70“计时器”列出了计时器。