USB供电PowerDelivery
+ -

TYPE-C PD供电协议消息格式

2021-12-25 7416 2

PD定义了两种消息类型,分别为控制消息(Control Messages)、数据消息(Data Messages )和扩展消息(Extend Messages)。

PD控制消息

控制消息属于短消息类型,用于管理端口与设备之间的消息流或交换不需要额外数据的消息。控制消息的长度为16位长。

控制消息的包结构如下图所示:
控制消息

PD数据消息类型

数据消息的长度为48位到240位,用于控制端口与设备之间进行数据交换。
数据消息分为三种类型:

  • 用于展示供电方的电源能力的数据消息。
  • 用于BIST的设备的数据消息。
  • 厂商自定义的数据消息类型。

PD数据消息类型的结构如下图所示:
PD数据消息

PD扩展消息

扩展消息用于在一对端口之间交换信息。扩展消息最多为MaxExtendedMsgLen字节。
扩展消息的类型有:

  • 用于源和电池信息的
  • 用于安全的。
  • 用于固件更新的。
  • 那些是供应商定义的

PD扩展消息的结构如下图所示:
PD扩展消息


PD消息组成

数据消息和控制消息的数据包组成基本类似。基本都包括:

  • 前导码:32位连续的01序列,不进行4b5b编码,总共64位。
  • SOP包开始:可能是SOP,SOP’或SOP’’.
  • 2字节的信息头:消息包类型
  • CRC校验位:对消息头和消息数据(如果有的话)的CRC校验
  • EOF结束包:5位的4b5b编码。

    除过EOF和SOF是4b5b编码后的长度,其余均为原始长度。

消息头

消息头包括2字节,总共16位。

名称 说明
15 Extended 此消息是否为扩展类型
14…12 Number of Data Objects 数据个数 后面数据的个数,每个数据是4字节了,对于非扩展包,此字段的值为0~7
11…9 MessageId消息ID 消息ID,每发送一次,增加一次
8 Port Power Role 接口供电角色 对于SOP信息,代表接口的供电角色
8 Cable Plug 线缆或接口 对于SOP’或SOP’’信息,代表此消息是接口发送的还是线缆发送的
7…6 Specification Reversion规范版本 此消息的当前版本
5 Port Data Role 接口通讯功能角色 对于SOP消息代表接口的功能角色
5 Reserved 对于SOP’和SOP’’保留
4…0 MessageType消息类型 消息类型

Number of Data Objects 数据个数

使用3位给示4字节的数据个数,对于控制消息,数据个数为0.对于数据消息,此字节不为0.

消息ID MessageId

消息ID此为计数,当软件复位或硬件复位时,初始化为0.
当接收到GoodCRC消息时,表示成功接收到消息时,消息ID计数器应加1。注意:在BIST期间,发送测试帧时,发送方不会增加MessageID,接收方会忽略MessageID。

Port Power Role

1位端口电源角色字段应指示端口的当前电源角色:

  • 0b Sink耗电方
  • 1b Source,供电方

Specification Revision

  • 00b –Revision 1.0
  • 01b –Revision 2.0
  • 10b - 11b – Reserved, Shall Not be use

Port Data Role

  • 0b UFP
  • 1b DFP

Cable Plug

  • 0 表示消息来自 DFP or UFP
  • 1 表示消息来自电缆插头

Message Type消息类型

如果是控制信息,则有以下:

“Bits4…0” Message Type Sent by “Valid Start ofPacket”
0000 0 Reserved N/A
1 GoodCRC 收到消息的应答 Source, Sink or Cable Plug SOP*
10 GotoMin 供电调节到最小 Source only SOP only
11 Accept 接收对方的请求 Source, Sink or Cable Plug SOP*
100 Reject 拒绝对方的请求 Source or Sink SOP only
101 Ping Source only SOP*
110 PS_RDY 供电已经准备好 Source or Sink SOP only
111 Get_Source_Cap 获取对方的供电能力消息 Source or Sink SOP only
1000 Get_Sink_Cap 获取对方耗电的需求 Source or Sink SOP only
1001 DR_Swap 通信功能角色切换 Source or Sink SOP only
1010 PR_Swap 供电角色切换 Source or Sink SOP only
1011 VCONN_Swap VCONN供电角色切换 Source or Sink SOP only
1100 Wait 回复对方的请求,让结方稍等再进行请求 Source or Sink SOP only
1101 Soft_Reset 软复位 Source or Sink SOP*
1110 Data_Reset 数据复位 Source or Sink SOP only
0 1111 Data_Reset_Complete 数据复位完成 Source or Sink SOP only
1 0000 Not_Supported 不支持对方发送的请求 “Source, Sink orCable Plug” SOP*
1 0001 Get_Source_Cap_Extended 获取对方的供电相关的扩展信息 Sink or DRP SOP only
1 0010 Get_Status 获取对方的状态 Source or Sink SOP*
1 0011 FR_Swap 快速供电角色切换 Sink1 SOP only
1 0100 Get_PPS_Status 获取供电言的额外信息 Sink SOP only
1 0101 Get_Country_Codes 获取本地化信息 Source or Sink SOP only
1 0110 Get_Sink_Cap_Extended Source or DRP SOP only
1 0111 Get_Source_Info Sink or DRP SOP Only
1 1000 Get_Revision “Source, Sink or Cable Plug” SOP Only”
1 1001-1 1111” Reserved N/A 保留

如果是数据消息,则消息类型有:

Bits 4…0 Type Sent by “Valid Start of Packet”
0 0000 Reserved “All values not explicitly definedare Reserved and Shall Not be used.”
0 0001 Source_Capabilities 供电方的供电能力信息 “Source or Dual Role Power” SOP only
0 0010 Request 请求供电 Sink only SOP only
0 0011 BIST 自测 “Tester, Source or Sink” SOP*
0 0100 Sink_Capabilities 耗电方的耗电需求信息 “Sink or Dual-Role Power” SOP only
0 0101 Battery_Status 电池状态 Source or Sink SOP only
0 0110 Alert 警告 Source or Sink SOP only
0 0111 Get_Country_Info 获取要地化信息 Source or Sink SOP only
0 1000 Enter_USB DFP SOP*
0 1001 EPR_Request Sink SOP only
0 1010 EPR_Mode Source or Sink SOP only
0 1011 Source_Info Source SOP only
0 1100 Revision “Source, Sink orCable Plug” SOP*
“0 1101 -01110” Reserved “All values not explicitly definedare Reserved and Shall Not be used.”
0 1111 Vendor_Defined 厂商用自定义信息 “Source, Sink or Cable Plug” SOP*
“1 0000-11111” Reserved “All values not explicitly defined are Reserved and Shall Not beused.”

如果是扩展消息,则消息类型有:

Bits 4…0 Type Sent by “Valid Startof Packet”
0 0000 Reserved “All values not explicitlydefined are Reserved andShall Not be used.”
0 0001 Source_Capabilities_Extended “Source or DualRole Power “ SOP only
0 0010 Status Source or Sink SOP*
0 0011 Get_Battery_Cap Source or Sink SOP only
0 0100 Get_Battery_Status Source or Sink
0 0101 Battery_Capabilities Source or Sink SOP only
0 0110 Get_Manufacturer_Info Source or Sink SOP*
0 0111 Manufacturer_Info “Source, Sink orCable Plug” SOP*
0 1000 Security_Request Source or Sink SOP*
0 1001 Security_Response “Source, Sink orCable Plug” SOP*
0 1010 Firmware_Update_Request Source or Sink SOP*
0 1011 Firmware_Update_Response “Source, Sink orCable Plug” SOP*
0 1100 PPS_Status Source SOP only
0 1101 Country_Info Source or Sink SOP only
0 1110 Country_Codes Source or Sink SOP only
0 1111 Sink_Capabilities_Extended “Sink or DualRole Power” SOP only
1 0000 Extended_Control Source or Sink SOP only
1 0001 EPR_Source_Capabilities “Source or DualRole Power” SOP only
1 0010 EPR_Sink_Capabilities “Sink or DualRole Power” SOP only
“1 0011 -1 1111” Reserved “All values not explicitlydefined are Reserved andShall Not be used.”
1 1110 Vendor_Defined_Extended “Source, Sink orCable Plug” SOP*
1 1111 Reserved “All values not explicitlydefined are Reserved andShall Not be used.”
HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

TYPE-C PD供电协议信号-双相标记编码(BMC)编码
在TYPE-C接口上运行的PD供电协议,其PD通讯协议是通过TYPE-C接口的CC1线缆来进行信号传输的。信号的传输速率一般为300kps,最大值为不能超过330kps,最小值不能小于270kps。图片来源于USB中文网QQ群墨玉麒麟提供。PD信号的编码规则采用的是BMC(Biphase ......
TYPE-C PD供电协议信号的数据发送与接收流程
TYPE-C PD供电协议信号是通过线缆CC1进行传输的,但数据的发送与接收方在信号进行传输过程中传递的并不是原始数据,而是处理过的数据。对于数据发送方,需要对原始数据进行4b5b的编码,再通过BMC编码器,然后再通过CC1引脚进行传输。对于数据接收方,需要执行发送方的逆操作,即先进行BM......
TYPE-C PD供电协议信号-4b5b编码对照表
PD供电协议编码格式是4b5b,即把4位的数据(0x0-0xf)编码成5位,其编码对照表见下图:名称4b5b Symbol描述0011110hex data 0111001hex data 121010100hex data 23111......
TYPE-C PD供电协议常用功能序列(接口数据包开始SOP,线缆数据包开始SOP''、硬件复位、线缆复位)
使用TYPE-C PD供电协议信号-4b5b编码对照表的序列组合,可以组成一些常用的功能序列。硬件复位hard Reset硬件复位信令是为了被物理层识别而发送的一组有序字节。硬复位信号顺序集定义为:三个RST-1 K代码,后跟一个RST-2 K代码。硬件复位的功能是对接口和线缆进行复位K......
TYPE-C PD供电协议消息格式
PD定义了两种消息类型,分别为控制消息(Control Messages)、数据消息(Data Messages )和扩展消息(Extend Messages)。PD控制消息 控制消息属于短消息类型,用于管理端口与设备之间的消息流或交换不需要额外数据的消息。控制消息的长度为16位长。控制消息的包......
TYPE-C PD供电协议通讯流程
PD供电协议的通讯流程见下图,发送方发送信息给接收方后,接收方收到消息并确认无误(CRC是否正确)后,应向发送方回复GoodCRC以表示自己正确无误地收到发送方发过来的消息,发送方收到GoodCRC后表示该消息发送成功,否则发送方等待超时(0.9~1.1ms),重新发送原消息。消息重试发送最多两次重......
TYPE-C接口PD供电协商过程
当供电设备和耗电设备通过TYPE-C接口一旦连接后,就进入了供电协商的过程。其具体流程见下图:当耗电方和供电方通过TYPE-C线缆连接之后,一端为供电方,另一端为耗电方。此时供电方默认提供的电压是5V.此时耗电方通过CC1旨费上的电压获取供电方默认的供电电流能力。供电方向耗电方发送Source......
TYPE-C接口PD供电角色切换
PD的角色可以在运行过程中实现动态切换,即供电方可以变成耗电方,耗电方也可以变成供电方。供电方变成耗电方流程在供电过程中,如果供电方想变成耗电方,协商的流程如下:供电方发送RP_Swap消息(Power role swap,供电角色切换)请求切换供电角色。耗电方收到RP_Swap消息(Pow......
TYPE-C PD供电协议协商的复用模式-DispalyPort示例
通过供电协议协商可以使Type-C线缆连接的设备工作在其它复用模式下、如DisplayPort(DP),整个协商流程如下:当具有DP功能的设备通过Type-C线缆连接上之后,一端是DP主 机,另一端是DP设备。DP主机如果不是下行端口(DFP),会进行通信角色切换成下行端口。DP主机发送Disc......
USB PD供电Power Delivery功率分配方法
USB 有多种在主机(下游端口 (DFP))和设备(上游端口 (UFP))之间分配功率的方法。默认供电Type-C™ 电流模式使用 Power Delivery 2.0 协议的协商功率USB 规范还提供了电池充电规范,以允许 USB 主机能够为设备的电池充电。默认供电USB规范要求符合USB......
PD供电能力Source_Capabilities消息格式及数据分析
Source_Capabilities消息用于供电方向接收方发送其可提供的供电能力。其消息格式如下:preamblesopSource_Capabilities消息ID供电能力数据CRCEOP现分段截图如下:从截图来看,供电方可提供的供电能力如下:5V/2A(fixed)9V/2A(......
PD供电能力GoodCRC消息格式及数据分析
GoodCRC用于当接收到GoodCRC消息时,表示成功接收到消息时,消息ID计数器应加1。GoodCRC用于接收方对发送方的消息的回复,如上节的Source_Capabilities消息。GoodCRC的消息格式如下:preamblesopGoodCRC消息IDCRCEOPsink发送Go......
PD供电能力Request消息请求供电
Request用于接收供电方向供电方发送其请求的供电。比如说当供电方通过Source_Capabilities消息告诉供电电方自己可提供的供电能力后,接收方回复GoodCRC之后,被供电方可向供电方请求其选择的供电规格。Request消息格式premablesopRequest消息IDRequ......
PD供电能力Accept消息
Accept消息用于接收对方的请求Request,如供电方SOURCE同意被供电方发送的Request请求。Reqpuest消息的格式如下:PremablesopAccept消息IDCRCEOP感谢USB中文网QQ群 墨玉麒麟 提供抓包示例......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!