前言
记录自己学习PD协议开发项目的过程,不作为教学,只是以后自己可以翻翻复习复习,第一次写可能不是很清晰。写这文章自己理解的比较多,不是很专业。2024/11/8
一、PD协议常用名词
1.DFP:Downstream Facing Port。是下行端口,通常这种端口在Host上或者在USB的Hub上
2.UFP:Upstream Facing Port。是上行端口,通常这种端口在device上或者连接host的hub上
3.DRP: 双角色端口
4.Source:通常指电源提供端,如电源适配器。
5.Sink:通常指电源消耗端,如手机、平板。
6.E-Marker(electronic marker):电子标记,一般存在于Type-ctoType-c的线缆中。
7.CC(Configuration Channel):配置通道,用于识别、控制等。
8.BMC(Biphase Mark Coding):双相位标识编码,通过CC 通信。
9.DFP(Downstream Facing Port):下行端□,即为 HOST 或者 HU B下行端
10.UFP(Upstream Facing Port):上行端□ 即为 Device 或者 HUB 的上行端囗。
11.DRD (Dual-Role Data):能作为 DFP/UFP。
12.DRP (Dual-Role Power):能做为 Sink/Sour ce.
13.SOP(Start of Packet Sequences):所有的 PD 传输流程
14.EOP(End of Packet):数据包结束标志
二、PD协议通信过程
1.硬件通信
简单来讲就是主从之间通过BMC编码规则实现通信(这个不用多去了解一般硬件层都给你做好了)
2.握手过程
正常通信过程:
整个PD协议通信的过程需要注意的是,发送数据(无论是供电端还是受电端)后接收到会回复一个GOOD CRC ,如果协议交互没问题,就到下一个环节,如果有问题会重新发送上一环节的报文或者发送NOT_SUPPORT(不支持)。
在cc线上会一直检测是否有设备接入,一旦有设备接入,就以电平跳变作为信号,此时供电端会发送SOURCE CAP(能力包)给设备如下图
接着设备会按照自己电池的需求来选择已有的供电能力,REQUEST(请求供电)
供电端收到需求后会查询是否在能力范围内如果是会回复ACCEPT表示允许正常供电
在供电端回复完ACCEPT后会打开VBUS给设备供电,并在供电稳定后会发送PS RDY来告知设备供电稳定
三、PD协议申请调压
这一块其实是PD协议最精髓的部分了,PD协议可以实现在正常供电后调压。什么意思呢?举个栗子:我们可以理解为手机20%的电量时,手机就会REQUEST(请求供电)9V 3A(27W)的供电,在充到80%手机会REQUEST(请求供电)5V 3A(15W)降低电压来实现保护电池延长寿命的作用。还有就是PD2.0和PD3.0的主要区别PPS
- PD2.0支持固定电压档位(5V、9V、12V、15V、20V),无法在充电过程中调整电压。
- PD3.0增加了PPS模式,可以动态调整电压和电流,精确到20mV,充电效率更高。
在协议层来说设备请求PPS一样的也是通过REQUEST(请求供电),但前提是供电端支持PPS也就是得支持PD3.0的协议
申请调压后,一样会进入允许供电,供电稳定的协议阶段。
总结
以上就是PD协议层的交互过程了,如果开发这一段只需要多注意报文的种类就行了,用逻分采集出来多看看,下篇讲讲复杂的厂商信息!