USB PD 协议介绍与交互过程

文摘   2024-08-08 20:51   广东  

:关注+星号公众号,不容错过精彩

作者:HywelStar

Hi, 大家好!根据前几章内容对USB,还有Type-C 都有了一定认识,本章节将对USB PD协议交互进行一个简单分析,本章节将可以获取或解决以下问题:
  • 认识当前Type-C PD 协议版本和演变;
  • PD充电过程中,Source是如何确定输出哪个电压?
  • PD充电如何知道充满了,停止工作?
  • E-Marker是什么东西?作用是什么?

1. USB PD 版本

USB PD 协议从早期的USB 2.0 接口出现的BC 1.0 版本,5V 500mA,后来又出现了不同电压,最高电流5A,这样PD1.0 出现了。
PD2.0 : 在PD 1.0 基础上添加了不同规格的电压与电流,VBUS 电压可以是5V、9V、12V、15V和20V。另外还添加了对电池信息的共享,设备可以查看电池状态,并根据需要调整充电参数。
PD 3.0 : PD3.0 在PD2.0 上添加了PPS(programmable power supply)功能,添加更多的电池信息,PD通信进行设备的软件件版本识别功能,另外还有认证。加入认证的设备都能够安全有效地使用快充功能。
PD3.1 :PD 3.1 最大的变化可以提供240W 的功率,电压高达48V,这样对于很使用于电动自行车,电动园艺和激光打印设备充电。电源方向不再固定,以允许产品(外围设备或主机)提供电源。新规范还优化了不同外设的电源管理。
PD 3.2 :关于PD 3.2 的芯片还没有找到,虽然协议是在2023年已经发布。PD 3.2 大致是对电压调整更加精细,调节梯度更小,对电池损耗也会更小。
截止2024-8-8 最新的PD 版本为3.2 ,可以通过USB-IF官网查看相关文档,关于协议文档大概有1000多页,
地址:https://www.usb.org/document-library/usb-power-delivery
目前3.2 修改日志如图:
https://www.powerelectronicsnews.com/understanding-usb-power-delivery-3-2/
比较各个版本差异:
这里插入当前一些PD3.1 认证芯片

2.  PD 协议介绍

2.1 E-Marker

E-marker芯片则是用于电缆认证,确保数据传输和电源供应的兼容性和安全性。PD协议芯片通过动态调整供电设备和接收设备之间的电压和电流,从而实现快速充电、提升能效,而E-marker芯片则存储着电缆的重要信息,如电缆长度、制造商信息、最大承载电流等,它通过与设备沟通这些信息,以保证电缆兼容和使用安全。

那么有数据线是不存在E-Marker,  首先就是传输速率影响,速率到达不了高速率。一般来说添加了E-marker芯片通过认证的,实际使用中主要在于显示器之间传递视频和音频信号,实现高速数据交互。

在一个数据线 上,可以是有两个或者一颗E-marker芯片,也就是看到的“一线双芯”,在对于这种高速传输的数据线当中,往往会比较短,想要达到USB4 Gen3 需要小于0.8M。

举例:

苹果240W USB-C 数据线内部是含有E-marker芯片,采用英飞凌CYPD2803A1-09FNXI,支持雷电4。

2.2 PD 协议编码

明确点:PD 协议的传输是通过CC 脚一根线进行传输,一般为300kps
上图为层间分布,重点看Physical Layer, Policy Engine
PD 信号传输层

PD 信号的编码规则是采用BMC 规则,原始的数据位为0,则信号保持不变 (以300kps来计算为3.33us),如果原始的数据位为1,则信号进行位翻转。


PD 信号数据链路层

4b5b编码是一种用于数据传输的编码方法。在这种编码方法中,每4位二进制数据(4-bit)被映射为5位二进制编码(5-bit)。4b5b编码的主要目的是增加数据流中的转换数量,从而确保时钟恢复和数据同步。这种编码方法通常用于网络通信,例如以太网。

2.3 PD 协议消息格式

PD 定义了三种消息类型,
控制消息(Control Messages)
关于控制消息的类型有:GoodCRC,  Accept, Reject, PS_RDY, Get_Sink_Cap
数据消息(Data Messages )
关于数据消息类型:POD信息Request消息,  VDM 厂商自定义
扩展消息(Extend Messages)
扩展消息包含一些源和电池状态信息,还有一些固件更新,安全,自定义厂家信息等,这里可能对于一些厂家会加一些奇奇怪怪的东西。
以上协议格式在PD 3.0 , 在最新的PD3.2 协议上会有新增很多类型。

3.  PD 协议的交互

以下一个充电器给设备充电:
交互步骤:
  1. Type-C 接入识别到Sink 端,确认身份,一端为供电方,一端为耗电方;
  2. Source 发送Source_Cap 消息,里面包含供电能力数据信息;
  3. Sink 发送 Request信息,会选择一个供电数据返回;
  4. Source 将会返回Accept/ Reject 信息;
  5. Source 之前如果接受这个请求,在这里将发送PS_Ready 信息;
整个过程来说不复杂,但是在充电期间,电压也是会有变化的,由于没有PD 协议分析仪,从网络寻找理解整个过程。
充电过程中,Sink 端会告诉充电器,需要调整电压

上图在经过了五百多次的通讯进行电压微调后,最终稳定在了7V3A这一个电压进行充电,以达到充的快温升低的目的,这就是PPS快充协议的通讯过程。

当设备充满通常会发送“GotoMin”命令,要求充电器降低输出,防止过度充电。

4. 总结

本章节主要对PD 协议进行简单分析,协议版本递增,目前已经使用新一点的协议应该是PD 3.1, 后续还有PD 3.2 ,协议上新增了很多,虽然PD 3.2 在功率没有看到很大优势,但是对电池损伤应该会更小。另外对于PD协议交互分析,过程不会很复杂,可以通过一些大厂TI ST 等厂家的分析仪进行分析。目前国内的快充芯片也有很多做的非常好的厂家了,也希望国产越来好。
下一章节将介绍GNSS 相关知识与软件上d一些调试,有兴趣不要忘记关注码思途远!
参考:
https://www.codetd.com/article/11718198
https://www.chongdiantou.com/archives/57970.html
https://www.usb.org/document-library/usb-power-delivery
往期推荐:
Type-C 的工作原理
认识Type-C 与快充相关知识
USB 接口小科普


码思途远
一位码农的日常分享,探索软件技术知识与新闻的数字十字路口。