六、USB PD协议层之数据消息


数据消息应由消息头组成,后面跟着一个或多个数据对象。数据消息很容易识别,因为消息头中的Number of Data Objects字段为非零值。
有许多类型的数据对象用于组成数据消息。例如:

  • 电源数据对象(PDO),用于公开Source端口的电源功能或Sink的电源要求。
  • 汇聚端口用于协商合同的请求数据对象(RDO)
  • 用于传达供应商特定信息的供应商定义数据对象(VDO)
  • 用于PHY层合规性测试的BIST数据对象(BDO)。
  • 电池状态数据对象(BSDO),用于传达电池状态信息。
  • 警报数据对象(ADO),用于指示源或接收器上发生的事件。

数据消息中使用的数据对象类型由消息头的消息类型字段定义,并在下表“数据消息类型”中进行了总结。“send by”列表示可以发送给定消息的实体(源、接收器或电缆插头);未列出的实体不得发布相应的消息。“Valid start of packet”列表示只能在SOP数据包中发布的消息和可以在SOP*数据包中发出的消息。
image.png

1、Capabilities Message

能力消息(Source_Capabilities Message or Sink_Capabilities Message)应至少有一个vSafe5V的电源数据对象(PDO)。能力消息还应包含发送端口的信息,然后最多包含6个额外的电源数据对象。功能消息中的电源数据对象应按以下顺序发送:

  1. vSafe5V固定电源对象应始终是第一个对象。
  2. 剩余的固定电源对象(如果存在)应按电压顺序发送;从最低到最高。
  3. 电池供电对象(如果存在)应按照最低电压顺序发送;从最低到最高。
  4. 可变电源(非电池)对象(如果存在)应按最低电压顺序发送;从最低到最高。
  5. SPR可调电压电源对象(如果存在)应发送。
  6. 可编程电源对象(如果存在)应按照从最低到最高的最大电压顺序发送。

在下图中,Number of Data Objects字段为2,vSafe5V加上一个其他电压
image.png
电源数据对象(PDO)增强功率数据对象(APDO)。它们用于形成Source_Capabilities Messages和Sink_Capability Messages。
电源数据对象有三种类型。它们包含除了消息头中编码的信息之外的其他信息,用于识别三种类型的电源数据对象中的每一种:

  1. 固定电源用于公开调节良好的固定电压电源。
  2. 可变电源用于公开调节非常差的电源。
  3. 电池用于公开可直接连接到VBUS的电池。

有三种类型的增强功率数据对象:

  1. SPR可编程电源用于公开电源,其输出电压可在公布电压范围内进行编程调整,并由电源限制为可编程电流限制。
  2. SPR和EPR可调电压电源用于公开电源,其输出电压可以在公布电压范围内进行调整,但在其他方面等同于固定电压电源(AVS不支持可编程电流限制)。

电源数据对象还用于公开可能使用的其他功能,例如在电源角色交换的情况下。
电源应发送一个或多个电源数据对象的列表,以传达其功能。然后,Sink可以通过返回包含功率数据对象索引的请求数据对象来请求这些能力中的一个,以协商双方同意的合同。
如果PDO中给出了最大最小电压电流值,则应将其视为绝对值
Source和Sink不应协商允许电流超过其插座或连接插头支持的最大电流功率水平(见[USB Type-C 2.3])。电源应将其提供的功能限制为其插座和连接插头所支持的最大电压。Sink只能从Source提供的任何功能中提出请求。
Source通过发送Source_capabilities消息来公开其电源能力。Sink通过发送信宿能力消息来公开其功率需求。两者都由几个32位电源数据对象(Power Data Object)组成
image.png
当B31…B30是11b时,通过将功率数据对象字段从2位扩展到4位,增强功率数据对象(APDO)被定义为允许支持四种以上的PDO类型。通用APDO结构如下表
image.png

2、Capabilities Message的使用

2.1、被Source使用

源发送Source_Cabilities消息,作为广播端口功能的一部分,或作为对Get_Source_Cap消息的响应。
硬复位、上电事件或插头插入事件之后,Source端口应在每次SourceCapabilityTimer超时后发送Source_Capabilities消息,作为广播,由链接上的接收端口进行解释。Source应继续发送至少nCapsCount Source_Cabilities消息,直到收到GoodCRC消息。(这些计时器计数器的值会在后面的文中单独说明)
此外,只有在以下情况下,才能通过端口发送Source_Capabilities消息:

  • 通过Source端口从PE_SRC_Ready状态向该端口供电的能力发生变化。
  • 通过Source端口或双角色电源(DRP)端口响应Get_Source_Cap消息。
  • 当多端口系统中的可用电源发生变化时,即使该端口的源功能没有改变,也可以选择由PE_SRC_Ready状态的源端口执行。

2.2、被Sink使用

Sink发送Sink_Capabilities消息以响应Get_Sink_Cap消息。
在VBUS上检测到vSafe5V,并且在SinkWaitCapTimer超时后没有看到Source_Capabilities消息时,具有USB电源传输功能的Sink应发送硬重置。如果连接的电源具有USB电源传输功能,它会通过发送Source_Capabilities消息进行响应,从而允许开始电源协商。

2.3、被DRP设备使用

双角色电源设备在以源角色操作时发送Source_Capabilities消息,作为广播端口功能的一部分。双角色电源设备发送Source_Capabilities消息以响应Get_Source_CapMessage,而不管其当前的操作角色如何。类似地,双角色电源设备发送Sink_Capabilities消息以响应Get_Sink_Cap消息,而不管它们当前的操作角色如何。

3、Source_capabilities Message

Source端口应在一系列32位电源数据对象(PDO)中报告其能力(见表“电源数据对象”),作为Source_capabilities消息的一部分(见图“具有2个电源数据对象的示例能力消息”)。电源数据对象用于传达源端口提供电源的能力,包括目前作为Sink操作的双角色电源端口。
每个电源数据对象应描述特定的电源能力,如最大允许电流下的电池(如2.8-4.1V)或固定电源(如15V)。消息头中的Number of data Object段将定义数据消息中消息头后面的电源数据对象数。所有Source极应至少提供一个报告Safe5V的电源数据对象。电源不应提供相同类型(固定、可变、电池)和相同电压的多个电源数据对象,而是应提供一个具有该电源能力和电压的最高可用电流的电源数据对象。
带配件支持的Sink不提供VBUS(请参阅[USB Type-C 2.3])。当向配件提供VCONN时,即使未应用VBUS,带有配件支持的Sink仍被视为Source;在这种情况下,他们将在第一个电源数据对象中公布最大电流设置为0mA的vSafe5V。这样做的主要目的是使带配件支持的Sink进入PE_SRC_Ready状态以进入备用模式。
SPR模式下的Sink应评估其接收到的每个Source_Capability消息,并应以RequestMessage进行响应。如果其功耗超过Source的能力,则应重新协商,以免超过Source最近公布的能力。
在SPR模式下,与PPS APDO签订明确合同的Sink应至少在每次tPPSRequest中定期重新请求PPS APDO,直到:

  • Sink请求PPS APDO以外的其他内容。
  • 存在权力角色交换(PR_Swap)。
  • 存在硬重置(Hard_Reset)。

EPR模式下接收到响应Get_Source_Cap消息的Source_Cabilities消息的Sink不应以请求消息进行响应。如果EPR模式下的Sink接收到Source_Capabilities消息,而不是响应Get_Source_Cap消息,则Sink应启动硬重置。
已接受具有可编程RDO的请求消息的Source,如果在tPPSTimeout内未接收到具有可编程RDO的请求消息,则应发出硬复位信号。Source应在以下情况后停止这种行为:

  • 接收带有固定、可变或电池RDO的请求消息。
  • 存在权力角色交换。
  • 存在硬重置。

3.1、电力储备管理

当Sink从Source Capabilities发出包括最大工作电流/功率的请求时,可以将功率储备分配给Sink。特定Sink的功率储备大小计算为其最大工作电流/功率字段与其工作电流/电源字段之间的差值。对于具有多个端口的集线器,可以在多个Sink之间共享相同的功率储备。电源储备也可以由Sink临时使用,该Sink表示可以通过设置GiveBack标志来回馈电源。
如果功率储备已分配给Sink,则Source应将功率储备指示为其发送的每个Source Capabilities消息的一部分。当同一功率储备在多个Sink之间共享时,Source会将功率储备作为其发送给每个Sink的每个Source_Capabilities消息的一部分。每次USB电源传输Source发送包括功率储备能力的能力,然后接受来自Sink的包括由其最大工作电流/功率指示的功率储备的请求时,它确认功率储备是与Sink的明确合同的一部分。
当储备被具有回馈功能的Sink临时使用时,Source将在其发送的每个Source_Capabilities消息中显示可用的功率储备。然而,在这种情况下,当Sink请求功率储备时,Source应返回等待消息,同时使用GotoMin消息检索该功率。一旦获取了额外的功率,Source应发送一条新的Source_Capabilities消息,以触发来自请求功率储备的Sink的新请求。
Source可以在任何时候取消分配功率储备,但应通过发送新的Source_capabilities消息向使用功率储备的一个或多个Sink指示取消分配。

3.2、固定电源数据对象

下表描述了描述了固定电源(00b)PDO。
image.png
由于所有USB提供程序都支持vSafe5V,因此所需的vSafe5V固定电源数据对象也用于传递以位29…23返回的附加信息。所有其他固定电源数据对象应将第29…23位设置为零。
对于不提供任何功能的Source,电压(B19…10)应设置为5V,最大电流应设置为0mA。这用于双角色电源设备等情况,该设备在其默认角色中不提供任何功能,或者需要外部电源提供电源。
当Source希望消耗VBUS电源的Sink进入其最低功率状态时,电压(B19…10)应设置为5V,最大电流应设置为0mA。这用于Source希望Sink绘制pSnkSusp的情况。

3.2.1、Dual-Role Power

当端口具有双重角色电源功能时,即支持PR_Swap消息时,应设置双重角色电源位。这是一种静态功能,对于给定的设备,无论设备当前的电源角色如何,都应保持固定。如果Source _ Capabilities Message中的Dual Role Power位设置为1,则Sink_ Capabibility Message中的双重角色功率位也应设置为1。如果Source _ Capabilities Message中的Dual Role Power位设置为零,则Sink_ Capabibility Message中的双重角色功率位也应设置为零。

3.2.2、USB Suspend Supported

在签订合同之前,或者当USB Communications Capable位设置为零时,此标志未定义,并且Sink应遵守[USB 2.0]、[USB 3.2]、[USB4]、[USB Type-C 2.3]或[USB BC 1.2]中定义的挂起规则。在协商合同之后:

  • 如果设置了支持USB挂起标志,则Sink应遵循[USB 2.0]、[USB 3.2]或[USB4]规则进行挂起和恢复。在挂起期间,PDUSB外围设备可能会占用pSnkSusp;PDUSB集线器可在暂停期间提取pHubSusp(见第7.2.3节“水槽备用”)。
  • 如果USB挂起支持标志被清除,则Sink不应应用[USB 2.0]、[USB 3.2]或[USB4]规则进行挂起,并可继续使用协商电源。请注意,当USB被挂起时,USB设备状态也会被挂起。

Sink可以通过在请求消息中设置“无USB挂起”标志向源指示他们希望清除“支持USB挂起的”标志(请参见第6.4.2.5节“无USB悬挂”)。

3.2.3、Unconstrained Power

当外部电源可用,足以在为外部设备充电时为系统提供足够的电源时,或当设备的主要功能是为外部设备供电时,应设置Unconstrained Power位。
由于外部电源,要设置无限制电源位,外部电源应为:

  • 交流电源,例如墙壁插孔,直接连接到Sink。
  • 或者,如果是PDUSB集线器:
    • 具有无约束功率位设置的PD源。
    • 多个PD源,所有这些源都设置了无约束功率位。
3.2.4、USB Conmunication Capable

应仅为能够通过USB数据线(例如D+/-或SS Tx/Rx)进行通信的Source设置USB Conmunication Capable(USB通信能力)位。

3.2.5、Dual Role Data

当端口具有双重角色数据功能时,即支持DR_Swap消息时,应设置Dual Role Data位。这是一种静态能力,对于给定的设备,无论设备当前的电源角色或数据角色如何,都应保持固定。如果Source _ Capabilities消息中的Dual Role Data位设置为1,则Sink_ Capabibility消息中的双重角色数据位也应设置为1。如果Source_Capabilities消息中的Dual Role Data位设置为零,则Sink_Capability消息中的双重角色数据位也应设置为零。

3.2.6、Unchuncked Extended Message Support

当端口可以在单个未阻塞消息中发送和接收数据大小>MaxExtendedMsgLegacyLen字节的扩展消息时,应设置Unchuncked Extended Message Support位。

3.2.7、ERP Mode Capable

EPR模式可编程能力是一种静态能力,如果电源设计为供电功率超过100W并在EPR模式下运行,则应设置该能力。
当设置此位时,EPR Source:

  • SPR模式下的操作应仅发送EPR_Source_Cabilities消息以响应EPR_Get_Source_Cap消息
  • 只有当Cable和Sink也报告它们具有EPR功能时,才能进入EPR模式。
3.2.8、Peak Current

USB电源输送固定电源只需要输送RDO的操作电流(IOC)字段中要求的电流量。然而,在某些用途中,例如计算机系统,其中存在短脉冲串,在活动的情况下,可能希望短时间内使电源过载。
例如,当计算机系统试图维持平均功耗时,峰值电流越高,维持这种平均功率所需的低电流(见第7.2.8节“吸收-峰值电流操作”)周期就越长。峰值电流字段允许电源公布此附加功能。此功能仅用于直接端口到端口连接,不应通过集线器提供给下游接收器。
每个固定电源PDO应包含一个峰值电流场。想要提供一组过载能力的电源应通过相应的固定电源PDO中的峰值电流字段进行公告(见下表6.10“固定电源峰值电流能力”)。不支持过载能力的电源应在相应的固定电源PDO中将这些位设置为00b。支持Source_Capabilities_Extended消息的峰值电流1…3字段中指定的扩展过载能力的电源(见第6.5.1节“源_能力-扩展消息”)也应将这些位设置为00b。希望使用这些扩展功能的Sink应首先发送Get_Source_Cap_extended消息,以确定Source支持哪些功能(如果有的话)。
image.png

3.3、可变电源(非电池)电源数据对象

下表6.11“可变电源(非电池)PDO–电源”描述了电源的可变电源(无电池)(10b)PDO。电源的电气要求见第7.1.3节“电源类型”。
image.png
电压字段应定义输出电压应在的范围。这并不表示将提供的电压,但应在该范围内。绝对电压,包括任何电压变化,不得低于最低电压,也不得超过最高电压。最小电压不得低于最大电压的80%。

3.4、电池电源数据对象

下表6.12“电池电源PDO–电源”描述了电源的电池(01b)PDO。电源的电气要求见第7.1.3节“电源类型”。
电压字段应代表电池的电压范围。电池应能够在整个电压范围内提供功率值。绝对电压,包括任何电压变化,不得低于最小电压,且不得超过最大电压。
注意:电池PDO使用电力而不是电流。
Sink可以监测电池电压。
image.png

3.5、增强功率数据对象

电压字段定义了输出电压范围,在该范围内,电源应在SPR PPS模式下以20mV步长进行调节,在SPR AVS模式和EPR AVS模式下以100mV步长进行调整。最大电流字段包含可编程电源应能够在公布电压范围内提供的电流。电源的电气要求见第7.1.3节“电源类型”。

3.5.1、SPR可编程电源APDO

下面的表6.13“SPR可编程电源APDO–电源”描述了在SPR模式下工作并提供5V至21V电源的SPR可编程供电电源(1100b)APDO。
image.png
PPS APDO主要用于Sink中电池的Sink定向充电。当向电池施加的电流大于电缆支持的电流时,可以在Sink中使用高效固定定标器来减少电缆电流。

3.5.2、PPS电力限制

设置PPS功率受限位时,SPR PPS Source的操作方式应与PPS功率有限位清除时相同(见第7.1.4.2节“SPR可编程电源(PPS)”),但以下情况除外:

  • 可在图7-9“SPR PPS恒定功率”中的可选操作区域内提供超过电源额定PDP的功率。

SPR PPS Source不得拒绝输出电流小于或等于APDO中最大电流的RDO,即使请求的输出电流大于电源的PDP/请求的输出电压。
当PPS功率限制位被清除时,SPR PPS源应提供最大电流,最高可达APDO中公布的最大电压。

3.5.3、EPR可调电压电源APDO

下表6.14“EPR可调电压源APDO–电源”描述了在EPR模式下运行并提供15V至48V电源的EPR可调电源(1101b)APDO。
image.png

3.5.3.1、PDP

PDP字段应包含AVS端口的PDP。
有关AVS APDO中PDP如何与最大可用电流相关的更多信息,请参见第10.2.3.3节“可选规范性扩展功率范围(EPR)”和图10-6“有效EPR AVS操作区域”。

3.5.3.2、Peak Current

USB电源输送EPR可调电压电源仅用于输送AVS RDO的操作电流(IOC)字段中要求的电流量。然而,在一些用途中,例如计算机系统,其中存在短的活动突发,可能希望在短时间内使电源过载。
例如,当计算机系统试图维持平均功耗时,峰值电流越高,维持这种平均功率所需的低电流周期就越长(见第7.2.8节“吸收峰值电流操作”)。峰值电流字段允许电源公布此附加功能。此功能仅用于直接端口到端口连接,不应通过集线器提供给下游Sink。
每个EPR可调电压电源PDO应包含峰值电流场。想要提供一组过载能力的Source应通过相应EPR AVS PDO中的峰值电流字段进行公告(见表6.15“EPR AVS电源峰值电流能力”.不支持过载能力的Source应在相应的EPR AVS PDO中将这些位设置为00b。支持Source_Capabilities_extended消息(见第6.5.1节“Source_Capabilities_extended消息”)的峰值电流1…3字段中指定的扩展过载能力的Source应将这些位设置为00b。希望使用这些扩展功能的Sink应首先发送Get_Source_Cap_extended消息,以确定Source支持哪些功能(如果有的话)。
image.png

3.5.4、SPR可调电压电源APDO

下面的表6.16“SPR可调电压源APDO–电源”描述了在SPR模式下工作并提供9V至20V电源的SPR可调电源(1110b)APDO。
image.png

3.5.4.1、Peak Current

SPR AVS APDO的峰值电流遵循与固定电源PDO相同的定义(见第3.2.8节“峰值电流”和表6.10“固定电源峰值电流能力”)。

4、Sink_Capabilities Message

下表6.17“固定电源PDO–Sink”描述了Sink固定电源(00b)PDO。电源的电气要求见第7.1.3节“电源类型”。Sink应将电压设置为所需电压,将工作电流设置为所要求的工作电流。所需工作电流定义为给定设备需要工作的电流量。该值可能是Sink所需的最大电流,或者可能足以使Sink以其操作模式之一进行操作。
由于所有USB消费者都支持vSafe5V,因此所需的vSafe5V固定电源数据对象也用于传递以位29到20返回的附加信息。所有其他固定电源数据对象应将位29…20设置为零。
对于不需要电源供电的Sink,电压(B19…10)应设置为5V,工作电流应设置为0mA。
image.png

4.1、Higer Capability

如果Sink需要超过vSafe5V(例如15V)才能提供完整功能,则应设置Higher Capability位。

4.2、Fast Role Swap REquired USB Type-C Current

快速角色交换USB Type-C®电流字段将指示执行快速角色交换后接收器所需的电流级别。
如果快速角色交换USB Type-C®电流字段设置为零,则初始源不应传输快速角色交换信号。
最初,当新源应用vSafe5V时,它将断言Rd,但应提供该字段中新Sink指示的USB Type-C®电流。如果新Source无法提供该级别的电流,则不应执行快速角色交换。当Rp在快速角色交换AMS期间由新Source断言时(见第6.3.19节“FR_Swap消息”),Rp指示的USB Type-C®电流值应等于或大于快速角色交换USB Type-C™电流字段中指示的值。

5、Request Message

请求消息应由Sink发送以请求功率,通常在SPR功率协商的请求阶段。请求数据对象应由请求电源的Sink返回。在SPR模式下,应根据最新的Source_Capabilities消息发送该消息(见第8.3.2.2节“功率协商”)。请求消息应返回一个且仅一个Sink请求数据对象,该对象应标识所请求的功率数据对象。
Source应通过Accept消息、Wait消息或Reject消息(见第6.9节“接受、拒绝和等待”)对Request消息作出响应。
Request消息包括请求的功率级别。例如,如果Source_Capabilities消息包括一个提供9V@1.5A的固定电源PDO,并且Sink只需要9V@0.5A,则它将把Operating Current字段设置为50(即10mA50=0.5A)。Sink将一直需要在Request消息请求在Maximum Operating Current字段中的最高电流(在本例中为100(10010mA=1.0A))。
请求使用不同的格式,具体取决于请求的电源类型。
固定功率数据对象和可变功率数据对象共享如下所示的通用格式:
•表6.22“固定和可变请求数据对象”。
image.png
•表6.23“具有GiveBack支持的固定和可变请求数据对象”。
image.png
电池电量数据对象使用如下所示的格式:
•表6.24“电池请求数据对象”。
image.png
•表6.25“具有GiveBack支持的电池请求数据对象”。
image.png
PPS请求数据对象的格式如表6.26“PPS请求信息对象”所示。
image.png
AVS请求数据对象的格式如表6.27“AVS请求信息对象”所示。
image.png
在EPR模式下操作时,请求数据对象也由EPR_Request消息使用。参见第6.4.9节“EPR_Request Message”,了解有关EPR-Request Message使用的信息。
在EPR模式下运行的接收到Request消息的source应启动硬重置。

5.1、Object Position

Object Position字段中的值应指示RDO在源能力消息或EPR_Source_Cabilities消息中所指的对象。值0001b始终指示5V固定电源PDO,因为它是Source_Cabilities和EPR_Source_cabilities信息头之后的第一个对象。数字0010b表示下一个PDO,依此类推。
对象位置0001b…0111b中的值只能用于参考SPR PDO。SPR PDO可以通过Request或EPR_Request消息进行请求。对象位置1000b…1011b只能用于参考EPR PDO。EPR PDO只能通过EPR_Request消息请求。如果Request消息中的Object Position字段包含大于0111b的值,则Source应发送硬重置信令

5.2、GiveBack Flag

GiveBack标志应设置为指示Sink将通过将其负载降低到最小工作电流来响应GotoMin消息。USB设备通常会在给电池充电时使用它,因为充电的短暂中断对用户的影响最小,并使电源能够更好地管理其负载。

5.3、Capability Mismatch

当Source无法满足Sink基于其提供的Source Capabilities的电源要求时,就会发生功能不匹配。在这种情况下,Sink应从提供的Source Capabilities发出有效请求,并设置能力不匹配位(见第8.2.5.2节“电源能力不匹配”)。当不存在能力不匹配条件时,Sink不应设置能力不匹配位。
当Sink响应Source_Capabilities消息返回设置了Capabilities Mismatch位的请求数据对象时,它表示它想要比Source当前提供的功率更多的功率。这可能是由于没有提供特定的电压,或者提供的电压没有足够的电流。
报告的端口PDP小于其当前端口PDP的Source(见第6.4.11节“源信息消息”)应使用如下设置的能力不匹配位来响应请求。PS_RDY消息后2秒内的Source应发送一条新的Source Capabilities消息(源能力消息或EPR_Source_Cabilities消息,取决于操作模式),该消息提供:

  • 当前端口PDP报告的电源此时可提供的最大功率,或
  • 根据Sink完全运行所需的实际功率,有足够的功率满足Sink的要求::
    • Sink_Capabilities_Extended(SPR模式下的接收器操作PDP或EPR接收器操作PDPEPR模式)或
    • 如果Sink_Capabilities_Extended消息不是由Sink支撑

为防止循环,souce不应发送新的Source_Capability或EPR_Source_Capability消息,以响应设置了Capabilities Mismatch标志的后续请求消息或EPR_Request消息,直到其Port Present PDP发生变化。
一旦保证能力源对能力不匹配做出响应,它就不应随后在较低的PDP上发送另一个Source_Capability消息或EPR_Source_Capabilities消息,除非Sink所需的功率(如其信宿能力消息、EPR_Sink_Capabilitys消息或信宿能力扩展消息中所示)也已降低。希望管理其电源的Source可以定期检查Sink_Capabilities或EPR_Sink_Capabilitys Message或Sink_Cabilities_Extended,以确定这些是否已更改。
注:Source Capabilities消息是指Source Capabilities消息或EPR_Source_Capabilities消息,Sink_Capabilitys消息指的是Sink_Capabilitys信息或EPR_Sink_Capability消息,具体取决于操作模式。
在这种情况下,有效请求消息指以下内容:

  • Object position字段应包含对上次接收到的Source Capabilities消息中对象的引用。
  • 工作电流/功率字段应包含一个小于或等于Source Capabilities消息中提供的最大电流/功率的值。
  • 如果GiveBack标志设置为零,即存在最大工作电流/功率字段:
    • 如果Capability Mismatch位设置为1:
      • 最大工作电流/功率字段可能包含一个大于Source Capabilities消息的PDO中提供的最大电流/功率的值,如Object position字段所引用的。这使得Sink能够指示它需要比所提供的更多的电流/功率。如果Sink需要不同的电压,这将由其Sink_Capability消息指示。
    • 否则,如果Capability Mismatch位设置为零:
      • 最大工作电流/功率字段应包含小于或等于Object position字段引用的Sink_Capability消息PDO中提供的最大电流/功率的值。
  • 否则,如果GiveBack标志设置为1,即存在最小工作电流/功率字段:
    • 最小工作电流/功率字段应包含小于工作电流/电源字段的值。

5.4、No USB suspend

Sink可以设置No USB Suspend标志,以向Source指示此设备在USB挂起期间请求继续其合同。设置该标志的Sink通常具有可以将电力用于USB通信以外的目的的功能,例如用于给电池充电。
Source使用此标志来评估是否应在清除USB Suspend标志的情况下重新发出Source_Capabilities消息。

5.5、Unchunked Extended Messages Supported

当端口可以在单个未阻塞消息中发送和接收数据大小>MaxExtendedMsgLegacyLen字节的扩展消息时,应设置Unchunked Extended Messages Supported 位。

5.6、ERP Mode Capable

具有ERP Mode Capable的位将指示Sink是否能够在EPR模式下操作。当Sink在EPR模式下操作的能力发生变化时,它应发送一条新的Request消息,其中在RDO中设置了更新的ERP Mode Capable位。

5.7、Operating Current

请求数据对象中的Operating Current字段应设置为Sink在给定时间需要操作的实际电流量。当Sink的功率需要改变时,例如从最大工作电流降低到较低的电流水平时,应发出具有更新的Operating Current值的新Request消息或EPR_Request消息。结合Maximum Operating Current字段或Minimum Operating Current字段,它为电源提供额外信息,使其能够更好地管理其功率分布。
此外,Sink还使用SPR可编程请求数据对象中的Operating Current字段向Source请求所需的电流限制级别。当请求被接受时,提供给任何负载的电源输出电流应小于或等于Operating Current。当Sink试图消耗更多电流时,Source应降低输出电压,以免超过Operating Current值。
EPR AVS请求数据对象中的Operating Current字段应设置为Sink在给定时间操作所需的实际电流量。注意,AVS模式下的Source与PPS模式下的SPR Source不同,不支持电流限制;Sink负责不获取比它所请求的更多的电流。当Sink的功率需要改变时,例如从Maximum Operating Current降低到较低的电流水平时,应发出具有更新的Operating Current值的新Request/EPR_Request消息。
Operating Current字段中的值不得超过Maximum Operating Current字段的值。对于EPR AVS,工作电流场不得超过源PDP/输出电压,四舍五入至最接近的50 mA。
该字段应适用于固定、可变、可编程和AVS RDO

5.8、Maximum Operating Current

请求消息或EPR_Request消息中的Maximum Operating Current字段应设置为Sink所需的最高电流。Source中的设备策略管理器使用操作电流和最大操作电流字段之间的差值(当GiveBack标志被清除时)来计算要维护的功率储备的大小(请参见第8.2.5.1节“管理功率储备”)。Operating Current值应小于或等于Maximum Operating Current值。
当 Capabilities Mismatch位设置为零时,请求的Maximum Operating Current应小于或等于所提供的Source Capabilities中的电流,因为电源需要保留该功率以备将来使用。Maximum Operating Current字段应继续设置为维持功率储备分配所需的最高电流。如果在具有GotoMin功能的设备使用功率储备时请求Maximum Operating Current,则生成的消息将是一条Wait消息,以使Source能够回收额外电流
当Capabilities Mismatch位设置为1时,请求的Maximum Operating Current可能大于所提供的Source Capabilities中的电流,因为Source将需要此信息来确定Sink的实际需求。
该字段应适用于SPR模式下的固定和可变RDO以及EPR模式下的固定RDO

5.9、Minimum Operating Current

Request消息或EPR_Request消息中的Minimum Operating Current字段应设置为Sink维持操作所需的最低电流。设备策略管理器使用Operating Current和Minimum Operating Current字段之间的差值(设置GiveBack标志时)来计算可以使用GotoMin消息回收的电量。Operating Current值应大于Minimum Operating Current值。
该字段应适用于SPR模式下的固定和可变RDO以及EPR模式下的固定RDO。

5.10、Operating Power

请求数据对象中(RDO)的Operating Power字段应设置为Sink此时所需的实际功率。结合Maximum Operating Power字段,它为Source提供了额外的信息,使其能够更好地管理其功率分布。
该字段应适用于电池RDO。

5.11、Maximum Operating Power

Request消息中的Maximum Operating Power字段应设置为Sink所需的最高功率。这允许具有在多个端口之间共享电源的Source智能地分配电力。
当Capabilities Mismatch位设置为零时,请求的Maximum Operating Power应小于或等于所提供的Source Capabilities中的功率,因为Source需要保留该功率以备将来使用。Maximum Operating Power字段应继续设置为维持功率储备分配所需的最高功率。如果在具有GotoMin功能的设备使用功率储备时请求Maximum Operating Power,则生成的消息将是一条Wait消息,以使电源能够回收额外功率
当Capabilities Mismatch位设置为1时,请求的Maximum Operating Power可能大于所提供的Source Capabilities中的当前功率,因为Source将需要此信息来确定Sink的实际需求
该字段应适用于电池RDO。

5.12、Minimum Operating Power

请求消息中的Minimum Operating Power字段应设置为Sink维持运行所需的最低电流。当与工作电源相结合时,它会为具有在多个端口之间共享的电源的Source提供关于它可以临时恢复多少功率的信息,以便它可以智能地分配功率。
该字段应适用于电池RDO。

5.13、Output Voltage

可编程和AVS请求数据对象中的输出电压字段应由Sink设置为Sink所需的电压,在Source的输出连接器处测量。Output Voltage字段应分别大于或等于可编程电源和AVS APDO中的Minimum Voltage字段和小于或等于Maximum Voltage字段。
本字段应适用于可编程RDO和AVS RDO。

6、Vendor Defined Message

供应商定义消息(VDM)允许供应商交换本规范定义之外的信息。
供应商定义的消息应至少包含一个供应商数据对象,即VDM头,并且最多可包含六个额外的VDM对象(VDO)。
为确保供应商定义消息的唯一性,所有供应商定义消息应在VDM标头中包含由USB-IF分配的有效USB标准或供应商ID(SVID)
定义了两种类型的Vendor_Defined消息:结构化VDM非结构化VDM。结构化VDM定义了一个可扩展的结构,旨在支持模态操作。非结构化VDM不定义任何结构,可以按照供应商选择的任何方式创建消息。
供应商定义的消息不得用于直接电力协商。然而,它们可能被用来更改本地策略,影响通过正常的PD消息提供或消费的内容。
消息格式如下图:
image.png
VDM Header应是供应商定义消息中的第一个4字节对象。VDM Header提供命令空间,允许供应商为自己的目的自定义消息。此外,供应商可以在结构化VDM中使用命令。
当VDM Type位设置为零时,非结构化VDM的VDM标题中的字段应如表6.29“非结构化VDM-标题”中所定义。当VDM Type位设置为1时,结构化VDM的VDM标题中的字段应如表6.30“结构化VDM标题”中所定义。
非结构化和结构化VDM只能在明确合同成立后发送和接收。唯一的例外是当默认合同或隐式合同(在连接、电源角色交换或快速角色交换后到位)到位以发现电缆功能时,Source可能会发送Discover Identity命令
还有许多没提到的数据消息,内容很多,建议观看原版英文文档,这里不再描述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白日梦想家0.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值