技术分享

PD协议简介
2023-12-12
富华

PD是Power Delivery的简称,代表着TYPE-C电力传输的一个通讯协议。

PD协议的通信编码为Bi-phase Mark Coded (BMC),BMC编码规则是曼切斯特编码的一个版本,数据1的传输,需要有一次高/低电平之间的切换过程,而0的传输则是固定的高电平或者低电平,BMC的最大频率达300KHz,单指令长度在1ms内。

PD的物理层由发射模块和接收模块组成,通过CC脚进行通信,由于CC是单线协议,所以所有通信都是半双工的,如下图。

通过BMC解码后,并不是最终可以解析的数据。PD通信协议在这里增加了一个软编码,称为4B5B编码。即接收到的数据每5个二进制数据,需要经过一个4B5B编码表还原成正确的PD通信数据。4B5B的解码表如下:

PD通信指令包格式如下:

一个完整包结构包括引导码,SOP*使用场景码,Message Header功能码,Byte0-n数据码和CRC校验码,EOP结束码,如果Byte数据码没有,说明指令仅仅作为控制指令使用,没有数据内容,所以叫做控制包。有数据内容的叫做数据包,通常数据包里携带了要变化的电压值和电流值等信息。

1、引导码:通过64位交替的0和1锁定接收端,与数据包的其余部分不同,前导码不应该进行4b/5b编码,并且应该以0开关,以1结尾。

2、SOP*码:所有的USBPD传输流程,都是从SOP开始,SOP*代表SOP, SOP’, SOP’’,不同的使用场景会用到不同的SOP,每个SOP也由不同的特殊编码组成,数据包使用SOP作为开头, 表示指令是在Source与SINK之间进行的,如果没有检测到有效的SOP,则整个传输将被丢弃,数据包使用SOP’, SOP’’, 表明是Source与E-marker之间的通信。

3、Message Header功能码:通常包括:数据包还是控制包说明,如果是数据包还包含了有多少个数据包的信息,电源角色,数据角色,PD的协议版本,消息类型等

当message Header中的Number of Data Objects位设置为0时,表示当前指令包为控制包,控制消息类型由message Header的message type决定,具体如以下表格所示

当message Header中的Number of Data Objects位设置非0值时,表示当前指令包为数据包,数据消息类型由message Header的message type决定,具体如以下表格所示

4、数据码:Message Header向右就是数据区域,通过4B5B的转换后,SOP是16个二进制位,Message Header也是16个二进制位,而数据区域,每个独立的数据块包括了32个二进制位

5、CRC:数据模块右边就是一个32位的数据校验区域,也称作CRC校验。CRC校验是PD通信协议中独特的一套校验方式,为了保持数据的完整与纠错,整个PD指令任何一个位变动,都会造成CRC改变。

6、EOP结束码:经过了引导码,SOP码,MessageHeader,data码,CRC码后,接下来就是EOP码即结束码,在4B5B中我们可以看到接收到01101的BMC编码,即代表PD指令包全部接收完毕。

BMC编码的通信,也可以使用逻辑分析仪进行分析,用来抓取每个数据包,并且获得数据包的作用,以下是手机充电时充电器与手机的交互信息。

PD规范中,对不同功率的电压电流作了以下定义

对于5V/9V/15V来说,最大的电流为3A,在20V的配置当中,如果是普通的电流,则最大能够支持20V/3A,即60W,如果使用的是带了E-Marker的线缆,则供电能达到20V5A,即100W。

支持超高速数据传输(USB3.1)或者是供电电流超过3A,电缆都必须使用E-Marker进行标识。线缆中有IC,他们需要从VCONN获得电源。

我们注意到,线缆中有1K的下拉电阻Ra,这样在线缆插入的时候,Source会识别到CC1和CC2电压下降的情况,具体的电压会告诉主机哪个端子被Sink的5.1K下拉,那个端子被线缆的1K电阻下拉。因此线缆的插入方向也可以被识别到。Source就可以通过开关,给E-Marker提供VCONN

如下图为带E-Marker的情况:

(1)电缆接通之后,Source的一根CC线被来自VCONN的1K拉低

(2)Source检测到此电压,知道电缆中有E-Marker,因此切换VCONN到对应的CC引脚

(3)在之后,PD通信将会包含Source和E-Marker之间的通信(SOP’&SOP”)Source和Sink之间为SOP

标准更新

2021年5月,USB-IF协会公布了全新快充标准USBPD3.1,新的标准增加了扩展功率范围(EPR),可使充电器的充电功率从PD3.0最高的100W,提升到最高240W