首页 > 其他分享 >TYPE-C PD供电协议消息格式

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

时间:2024-11-17 17:45:14浏览次数:1  
标签:Reserved SOP Source only Sink PD 格式 TYPE 消息

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.”

标签:Reserved,SOP,Source,only,Sink,PD,格式,TYPE,消息
From: https://www.cnblogs.com/linhaostudy/p/18550823

相关文章

  • TYPE-C PD浅谈(四)
    TYPE-CPD浅谈(四)当对接识别完成后,Provider会先在VBUS上提供5V,接着会在CC脚位上送出SourceCapability(SRC_CAP),格式如下:内容定义了供电的各种选项,如共有几组电源可选,相对应的电压电流等。当Consumer接收到SRC_CAP封包后,会针对电源列表的内容,挑选一组电压,再发出需求指令给Provid......
  • 批量提取当前文件夹pdf书籍目录
    importfitz#PyMuPDFimportpandasaspdimportos#获取当前文件夹中所有的PDF文件pdf_files=[fforfinos.listdir('.')iff.endswith('.pdf')]#提取目录信息的函数defextract_toc(toc,toc_list,level=0):foritemintoc:#确保目录项至少......
  • Content-Type 的小知识
    起因在某次开发中,前端发起了get请求,但是后端报错未设置Content-Type为"application-json";看到这条报错之后就直接在请求中设置了:exportconstgetUserInfo=async(param)=>{constres=awaitaxiosInstance.get(uris.getUserInfo(),{headers:{'Content-Type':'......
  • Vue中,$forceUpdate()的使用(针对列入多选下拉框回显无法重新编辑
    Vue中,$forceUpdate()的使用方文档中指出,$forceUpdate具有强制刷新的作用。那在vue框架中,如果data中有一个变量:age,修改他,页面会自动更新。但如果data中的变量为数组或对象,我们直接去给某个对象或数组添加属性,页面是识别不到的<template><p>{{userInfo.name}}</p><button@......
  • HarmonyOS4+NEXT星河版入门与项目实战--------TypeScript语法(循环控制与函数方法)
    文章目录1、循环控制1、for循环与while循环2、数组快捷迭代方法2、函数1、function关键字2、可选参数3、默认参数4、匿名函数5、函数表达式6、结合使用7、函数声明案例1、循环控制1、for循环与while循环2、数组快捷迭代方法数组除了使用常规的for循环......
  • HarmonyOS4+NEXT星河版入门与项目实战--------TypeScript语法(变量声明与条件控制)
    文章目录1、变量声明1、格式与案例2、在线体验TypeScript2、条件控制1、if-else条件控制switch条件控制1、变量声明1、格式与案例TypeScript常见变量主要有string字符串、number数值、boolen布尔、any不确定类型、Object对象类型、Array数组类型以及......
  • HarmonyOS4+NEXT星河版入门与项目实战--------ArkTs语言与TypeScript语法
    文章目录1、ArkTs语言1、ArkTs特点2、ArkTs与Javascript关系2、TypeScript语法1、ArkTs语言在html的开发中,实现一个页面元素,比如Button,往往包含了以下三种要素:JS、HTML、CSS。JS处理逻辑与响应、HTML用来声明标签生成各种页面控件、CSS用来控制着也控件的样式......
  • 标注图片怎么导出VOC格式和COCO格式
    图片怎么标注参考https://www.cnblogs.com/minseo/p/18549804下载从github下载代码,或压缩包#gitclonehttps://github.com/LabelMe/labelme转换示例文件在以下路径#labelme-main\examples\instance_segmentation目录以及各个目录的用途如下打过标签的图片和js......
  • springboot3整合mybatisplus问题Invalid value type for attribute 'factoryBeanObjec
    版本说明:JDK版本:17springboot版本:3.3.5问题分析:springboot版本与mybatisplus版本不兼容解决办法:将mybatisplus版本替换为以下版本<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>......
  • 【全栈开发(TypeOrm-Javascript)学习笔记三】
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、EntityManager二、Repository三、Find选项四、自定义Repository五、EntityManagerAPI六、RepositoryAPI总结前言本章节主要了解typeOrm框架EntityManager和Repository,学习常见的s......