Fork me on GitHub

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

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

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

PD控制消息

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

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

PD数据消息类型

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

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

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

PD扩展消息

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

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

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

PD消息组成

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

  • 前导码:32位连续的01序列,不进行4b5b编码,总共64位。

  • SOP包开始:可能是SOP,SOP’或SOP’’.

  • 2字节的信息头:消息包类型

  • CRC校验位:对消息头和消息数据(如果有的话)的CRC校验

  • EOF结束包:5位的4b5b编码。

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

消息头(紧随 SOP 包之后)

消息头包括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.”
posted @ 2024-11-17 17:54  yooooooo  阅读(9)  评论(0编辑  收藏  举报