USB PD 协议介绍与交互过程¶
根据前几章内容对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

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.0 协议上会有新增很多类型。
3. PD 协议的交互¶
以下一个充电器给设备充电:

- Type-C 接入识别到Sink 端,确认身份,一端为供电方,一段为耗电方;
- Source 发送Source_Cap 消息,里面包含供电能力数据信息;
- Sink 发送 Request信息,会选择一个供电数据返回;
- Source 将会返回Accept/ Reject 信息;
- Source 之前如果接受这个请求,在这里将发送PS_Ready 信息;
整个过程来说不复杂,但是在充电期间,电压也是会有变化的,由于本人没有PD 协议分析仪,从网络寻找理解整个过程。

充电过程中,Sink 端会告诉充电器,需要调整电压

在经过了五百多次的通讯进行电压微调后,最终稳定在了7V3A这一个电压进行充电,以达到充的快温升低的目的,这就是PPS快充协议的通讯过程。
当设备充满通常会发送“GotoMin”命令,要求充电器降低输出,防止过度充电。
4. 总结¶
本章节主要对PD 协议进行简单分析,协议版本递增,目前已经使用新一点的协议应该是PD 3.1, 后续还有PD 3.2 ,协议上新增了很多,虽然PD 3.2 在功率没有看到很大优势,但是对电池损伤应该会更小。另外对于PD协议交互分析,过程不会很复杂,可以通过一些大厂TI ST 等厂家的分析仪进行分析。目前国内的快充芯片也有很多做的非常好的厂家了,也希望国产越来好。
下一章节将介绍GNSS 相关知识与软件上的一些调试,有兴趣不要忘记关注!
参考:
https://www.codetd.com/article/11718198
https://www.chongdiantou.com/archives/57970.html
https://www.usb.org/document-library/usb-power-delivery