从‘Hello’到‘Bye’:拆解一次完整的USB PD 3.1 EPR快充握手,都发了哪些控制消息?
从‘Hello’到‘Bye’拆解一次完整的USB PD 3.1 EPR快充握手都发了哪些控制消息当你的笔记本电脑和充电器通过Type-C线缆相连时它们之间其实在进行一场精密的对话。这场对话决定了充电器能提供多大的功率以及笔记本电脑如何安全高效地获取电能。对于USB PD 3.1 EPR扩展功率范围快充来说这个过程尤为复杂因为它支持高达240W的功率传输28V/5A。本文将带你深入这场对话的每个环节看看从连接建立到断开设备间究竟交换了哪些关键控制消息。1. 握手前的准备物理层连接建立在Type-C接口连接的那一刻物理层的握手就已经开始。CCConfiguration Channel线上的电阻配置让设备能够识别彼此的电源角色Source或Sink。这个阶段虽然没有PD协议层的控制消息交换但为后续的通信奠定了基础。Rp/Rd检测Source端通过CC线上的上拉电阻Rp表明自己的身份Sink端则通过下拉电阻Rd回应VBUS供电在确认基本连接后Source会先提供默认的5V电压PD通信初始化双方准备好通过BMCBiphase Mark Coding编码在CC线上进行数字通信这个物理层连接过程通常只需要几毫秒但对于整个快充握手过程至关重要。只有当物理层连接稳定后协议层的对话才能真正开始。2. 能力交换阶段Source_Capabilities与Sink_Capabilities当物理连接建立后真正的PD协议通信就开始了。第一个关键阶段是能力交换让Source和Sink互相了解对方的供电/用电能力。2.1 Source能力宣告Source会首先发送Source_Capabilities消息告知Sink自己能够提供的所有电压/电流组合。对于支持EPR的Source这个消息可能包含电压 (V)最大电流 (A)功率 (W)模式5315SPR9327SPR15345SPR205100SPR285140EPR注意EPR模式下的电压可以超过传统的20V上限最高可达48V在PD 3.1规范中2.2 Sink能力请求收到Source的能力宣告后Sink会根据自身需求做出响应。它可能直接发送Request消息选择某个供电档位或者先发送Get_Source_Cap_Extended获取更多信息。对于支持EPR的Sink它还会检查Source是否支持EPR模式。这通常通过检查Source_Capabilities消息中的EPR标志位来确定。如果支持Sink可以发送EPR_Request消息来请求进入扩展功率范围模式。3. 功率协商阶段Request、Accept与PS_RDY能力交换完成后就进入了实质性的功率协商阶段。这个阶段决定了最终使用的电压和电流组合。3.1 请求与确认Sink发送Request或EPR_Request消息后Source有三种可能的回应Accept完全接受Sink的请求Reject拒绝请求通常是因为请求超出了Source的能力范围Wait暂时无法满足请求但未来可能可以在EPR模式下协商过程可能更为复杂。例如Sink可能需要先发送EPR_Mode_Enter消息来进入高功率模式然后再进行具体的功率请求。3.2 电源准备就绪当协商达成一致后Source需要调整自己的输出电压到协议值。这个过程可能需要几毫秒到几十毫秒。调整完成后Source会发送PS_RDYPower Supply Ready消息告知Sink电源已经准备好。对于EPR模式这个过程尤其重要因为电压变化范围更大最高可达28V或48V需要更严格的时序控制时序示例 1. Sink发送EPR_Request请求28V/5A 2. Source回复Accept 3. Source开始调整电压tEPRTransition时间窗口 4. 电压稳定后Source发送PS_RDY 5. Sink开始从新电压获取电能4. 动态调整阶段Get_PPS_Status与实时监控即使在功率合同建立后设备间的通信也不会停止。Sink可能会定期发送Get_PPS_Status消息来获取Source的当前状态特别是当使用PPS可编程电源功能时。这些状态信息可能包括当前输出电压/电流温度状态任何限制条件如过热降额对于高功率EPR应用这种实时监控尤为重要因为更高的功率意味着更大的热管理和安全挑战。5. 断开与结束软重置与告别当设备需要断开连接时无论是物理断开还是逻辑断开协议层也会有一系列控制消息交换Soft_Reset用于重置协议层状态同时保持电力合同Data_Reset如果涉及数据连接用于重置数据路径最后物理层的CC线状态变化会最终断开连接在EPR模式下断开过程需要特别注意高电压的安全下电时序确保不会因为突然断开导致电压尖峰。6. 异常处理当对话不顺利时不是每次握手都会一帆风顺。协议中定义了多种消息来处理异常情况Wait暂时无法满足请求请稍后再试Reject明确拒绝请求Not_Supported不支持请求的操作Soft_Reset从通信错误中恢复对于EPR模式还可能有特定的错误处理机制比如当检测到电缆或连接器不支持高功率时的安全回退策略。7. 角色交换DR_Swap与PR_Swap在某些场景下设备可能需要动态切换角色DR_Swap数据角色交换交换Host/Device角色PR_Swap电源角色交换交换Source/Sink角色这些交换过程涉及复杂的消息序列PR_Swap示例 1. 设备A发送PR_Swap请求 2. 设备B回复Accept 3. 双方重置协议层 4. 角色交换完成新的Source发送PS_RDY在EPR模式下角色交换需要额外注意高功率状态下的安全过渡确保不会因为角色切换导致功率中断或电压不稳。8. EPR特有的控制消息USB PD 3.1 EPR引入了一些特有的控制消息和机制EPR_Mode_Enter/Exit进入或退出扩展功率范围模式EPR_Request专门用于高功率范围的功率请求EPR_Source_Capabilities扩展的电源能力描述这些消息使得EPR模式能够安全地支持更高的电压和功率等级同时保持与传统SPR设备的兼容性。理解这些控制消息的流动和作用对于设计兼容PD 3.1 EPR的设备至关重要。每个消息都像是设备间对话的一个单词或句子只有正确组织和理解这些语言才能实现高效、安全的快充体验。