USB Power Delivery(USB PD)是USB技术的重要扩展,旨在提高设备间电源传输的灵活性和效率。自USB技术诞生以来,它经历了多个版本的迭代,每个版本都在数据传输速率、兼容性、以及供电能力等方面带来了改进。与此同时,随着便携式电子设备对能源需求的增加,强大且灵活的供电解决方案变得尤为重要。这些需求催生了USB PD协议的发展。
通过选择电流为3A或5A的充电线,通过USB PD协议配置,就可以实现最大60W、100W以及最大到240W的充电功率,
USB Power Delivery(USB PD)协议是一种高度复杂的通讯协议,它用于在USB设备之间进行高速且高效的电源管理和数据交换。以确保数据传输的可靠性和准确性。USB PD帧格式如下所示:
a)Extended(1位):此位为0表示当前数据包为控制信息包或数据信息包,此位为1表示当前数据包为扩展信息包(扩展信息包应用较少,下文不再说明扩展信息包的组成定义);
b)Number of Data Objects(3位):当Extended位为0时,用来说明数据对象的数量,每个数据对象由32位组成。当此3位为0时,表示当前数据包为控制信息包,不为0时表示当前数据包为数据信息包;
c)MessageID(3位):是由信息的发送方滚动计数器生成的一个数值,初始值为0,当信息发送方收到信息接收方返回的GoodCRC信息后,MessageID自动加1;
d)Port Power Role/Cable Plug(1位):使用场景码为SOP时,用来表示当前端口的供电角色。此位为0表示受电端口(Sink),此位为1表示供电端口(Source);使用场景码为SOP'或SOP''时,此位表示数据包发送角色。此位为0表示数据来源于DFP或UFP,此位为1表示数据来源于线缆E-marker芯片;
e)Specification Revision(2位):对USB PD规范修订的版本加以说明。00表示规范1.0版本,01表示规范2.0版本,10表示规范3.0版本,11保留;
f)Port Data Role(1位):仅在使用场景码为1时表示端口当前的数据角色,为1表示端口角色为DFP,为0表示端口角色为UFP。当使用场景码为SOP'或SOP''时,作为保留位固定为0;
g)Message Type(5位):用来说明发送的数据包信息类型,和Number of Data Objects配合使用,分为控制信息包类型和数据信息包类型。当Number of Data Objects为0时,控制信息包类型定义如下:
当Number of Data Objects不为0时,数据信息包类型定义如下:
4、数据码(Byte0-n):数据码只在数据信息包中使用,用来描述数据对象的信息,每个数据对象32位4字节,与Messagge Type组合代表不同的含义。
5、校验码(CRC):CRC校验码用来保护数据包传输信息的完整性,对数据包中除前导符、SOP*和EOP以外的所有字节需要进行CRC计算,采用32位CRC校验。如果CRC校验不正确,则整个数据包将被丢弃;如果CRC校验正确,则该数据包可正确接收。
6、结束码(EOP):结束码用于表示数据包的结束,它帮助接收方确定一个数据包的结束位置,从而准备好接收下一个数据包。结束码是一组固定的K-code编码(01101),定义在4b5b编码表中。
三、USB PD协议编码
这里使用了两种特殊的编码,一种是4b5b编码,一种是BMC编码。同样,在接收到数据后,也需要进行BMC解码和4b5b解码再对数据进行处理。
采用这两种编码主要是为了最大可能做到DC平衡。DC平衡是指在一段时间内传输的数据信号中,正电平和负电平时间的平均值趋于相等,从而使得整体信号的直流分量(DC分量)接近零。这对于长距离通信特别重要,因为长时间的直流偏置可能导致信号变形、接收难度增加,以及传输介质(如电缆)的电磁特性改变。由于USB PD协议只使用CC端子进行数据包的双向传输,通过上述编码可以有效地提升通信的可靠性与效率。
1、4b5b编码:
BMC编码是曼彻斯特编码的一个版本,是另一种线路编码技术。BMC编码通过正负电压的变化来表示二进制数据“0”和“1”。有如下两种方式:
1):BMC编码通过每个位单元的电压变化来实现数据的表示,无论是“0”还是“1”,每一位必须进行一次电平翻转。这种变化提供了信号的时钟信息,使得接收方可以从接收到的数据中提取时钟,无需额外的时钟同步信号,这就是所谓的“自同步”特性。
4b5b与BMC编码的结合使用,不仅提高了USB PD通信中的DC平衡,还增强了通信的可靠性和效率,是一种针对高速数据传输需求设计的优秀编码方案。