首页 > 知识库 > 电源管理技术>USB PD协议帧格式
气体检测仪 气体检测仪

USB PD协议帧格式

2025/03/06
浏览

USB Power Delivery(USB PD)是USB技术的重要扩展,旨在提高设备间电源传输的灵活性和效率。自USB技术诞生以来,它经历了多个版本的迭代,每个版本都在数据传输速率、兼容性、以及供电能力等方面带来了改进。与此同时,随着便携式电子设备对能源需求的增加,强大且灵活的供电解决方案变得尤为重要。这些需求催生了USB PD协议的发展。

一、USB PD发展历程
1、USB PD 1.0:在2012年左右推出,USB PD 1.0版本标志着USB组织对提高USB供电能力的首次尝试,支持高达100W的电源输出,远超过此前USB 2.0的2.5W和USB 3.0的4.5W标准。
图片

通过选择电流为3A或5A的充电线,通过USB PD协议配置,就可以实现最大60W、100W以及最大到240W的充电功率,

2、USB PD 2.0:USB PD的重大升级版本,该版本与USB Type-C规范同步推出,为USB PD的普及奠定了基础。USB Type-C接口的双面插拔设计和支持较高电流的能力,使得USB PD更加实用。
3、USB PD 3.0:进一步发展到3.0版本,USB PD 3.0引入了更多的智能特性,如可编程电源供应(PPS)、增强的电源管理和电池充电协议等,提供了更高的灵活性和设备充电的精确控制。
二、USB PD协议帧格式

USB Power Delivery(USB PD)协议是一种高度复杂的通讯协议,它用于在USB设备之间进行高速且高效的电源管理和数据交换。以确保数据传输的可靠性和准确性。USB PD帧格式如下所示:

图片
一个完整的USB PD数据帧由前导码(Preamble)、使用场景码(sop*)、功能码(Message Header)、数据码(Byte0-n)、校验码(CRC)和结束码(EOP)构成。上图中蓝色框标识的属于物理层内容,白色框标注的属于协议层内容。除前导码外,数据都要进行4b5b码转换(下文详述)。
1、前导码(Preamble):前导码是由一串64位交替变换的“0”和“1”组成,以“0”开始,以“1”结束,交替的频率就是载波频率。前导码的作用主要是为通信信道的物理层提供稳定的基准,帮助接收端同步到发送端的信号,准备进行数据接收。
2、使用场景码(SOP*):使用场景码是定义好的一个指令序列集合,标识不同的通信场景及数据包类型,确保接收方能正确识别和处理后续的数据包。可以分为两类:
1)SOP标准通信包:用于端到端设备通信,即电源端和设备端之间的通信,格式如下:
图片
由3个“sync-1”和1个“sync-2”K-code码组成,K-code是一组5b编码,下文会在4b5b编码章节详细列出不同的K-code码。
2)SOP'和SOP''扩展通信包:用于电源端与线缆芯片E-marker之间的通信,格式分别如下:

图片

图片

3、功能码(Message Header):用于提供有关通信包的关键信息,如消息类型、目标角色(源或接收者)、USB PD协议版本等信息。
任何一个数据包都必须由功能码和数据长度可变(包括零)的数据部分组成,数据包可以分为如下三种类型:
1)控制信息包:
图片
2)数据信息包:
图片
3)数据扩展包:

图片

功能码由16位组成,定义如下:
图片

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协议编码

USB PD协议和其它通信协议不同,在协议层形成数据包后,并不是直接发送数据包,而是要先对数据包中的数据进行编码处理,按照重新编码后的数据包进行传输。

图片

这里使用了两种特殊的编码,一种是4b5b编码,一种是BMC编码。同样,在接收到数据后,也需要进行BMC解码和4b5b解码再对数据进行处理。

图片

采用这两种编码主要是为了最大可能做到DC平衡。DC平衡是指在一段时间内传输的数据信号中,正电平和负电平时间的平均值趋于相等,从而使得整体信号的直流分量(DC分量)接近零。这对于长距离通信特别重要,因为长时间的直流偏置可能导致信号变形、接收难度增加,以及传输介质(如电缆)的电磁特性改变。由于USB PD协议只使用CC端子进行数据包的双向传输,通过上述编码可以有效地提升通信的可靠性与效率。

1、4b5b编码:

4b5b编码是一种线路编码方法,它将4位的二进制数据转换成5位的二进制表示。4b5b编码有助于确保传输的DC平衡,即传输的数据中'0'和'1'的数量大体上保持平衡,减少了长串的'0'或'1',这对于维持信号的完整性非常关键。例如,二进制“0000”被编码为“11110”,“0001”被编码为“01001”,以此类推。这种映射使得编码后的数据中至少包含一个0到1或者1到0的转变,从而为接收端的时钟提供同步信号。完整的4b5b编码表如下:
图片
2、BMC编码(Biphase Mark Coding):

BMC编码是曼彻斯特编码的一个版本,是另一种线路编码技术。BMC编码通过正负电压的变化来表示二进制数据“0”和“1”。有如下两种方式:

1):BMC编码通过每个位单元的电压变化来实现数据的表示,无论是“0”还是“1”,每一位必须进行一次电平翻转。这种变化提供了信号的时钟信息,使得接收方可以从接收到的数据中提取时钟,无需额外的时钟同步信号,这就是所谓的“自同步”特性。

2)BMC编码通过电压的双极性变化确保长时间传输不会对传输介质产生直流偏压,一个二进制“1”表示为一个电压极性的翻转(从负转正或从正转负),而二进制“0”则表示为电压水平的保持。这种编码方式的选用,既保证了数据流中包含足够的过渡边缘以供时钟提取,又保持了传输链路的直流平衡。典型的BMC编码示例如下:

图片

 

4b5b与BMC编码的结合使用,不仅提高了USB PD通信中的DC平衡,还增强了通信的可靠性和效率,是一种针对高速数据传输需求设计的优秀编码方案。

  • USB PD协议
上述内容来自用户自行上传或互联网,如有版权问题,请联系:sales@elehouse.com.cn