目录

一、简介

二、0x60~0x8F中读取到的完整电源消息是什么

三、Source Capabilities数据包抓包

四、数据结构

 1、Preamble

2、SOP*

3、Message Header

4、Extended Message Header

5、Data Object

6、CRC

7、EOP

五、数据解析

六、CH224A/Q IIC地址0x60~0x8f上的数据解析


一、简介

        CH224A/Q是沁恒推出的一款支持USB PD3.2的USB PD快充协议受电芯片,最高支持PD3.2 EPR 140W功率。并支持单电阻配置、I/O电平配置及IIC配置。通过IIC接口可以读取协议握手状态和读取当前PD挡位额定电流。

        CH224A/Q七位IIC地址为0x22或0x23(不包含读写位)

二、0x60~0x8F中读取到的完整电源消息是什么

        在SPR模式下可以读到Head+PDO+CRC 是一个完整的Source Capabilities数据。
        在EPR模式下可以读到EPR Source Capabilitie中第一包Head+ExtHead+PDO和第二包PDO+CRC。

三、Source Capabilities数据包抓包

        PD协议是通过Type-C口的CC(Configuration Channel)引脚协商电压、电流等参数。推荐使用逻辑分析仪抓取CC上数据。

        

四、数据结构

        SPR模式下的SOURCE CAP结构为:Preamble、SOP*、Message Header、Data Object(s)、CRC、EOP(End Of Packet)。

 

EPR模式下的SROUCE CAP数据包有两个及以上的数据包组合而成,图上是EPR模式下的第一个数据包的内容。

图上是EPR模式下第二个数据包。

        EPR模式下SROUCE CAP的数据结构为:Preamble、SOP*、Message Header、Extended Message Header、Data Object(s)、CRC、EOP(End Of Packet)。

        相对与SRP模式多出一个Extended Message Header。

 1、Preamble

        Preamble由64位交替0 1构成,由0开始1结尾,同时遵循4b5b编码方式。这个段用于频率对齐等功能,对于数据解析不是太重要。

2、SOP*

        SOP*(Start of Packet)是一个通用属于用于代替SOP/SOP'/SOP'',都是有序集合(Ordered Sets)的一种,一个有序集合是由4个K-codes组成。

        有序集合的种类有以下几种:

        在Source_Capabilities Message的数据包中,有序集合可为SOP,SOP的4个K-codes排列为三个连续的Sync-1(11000)后面有一个Sync-2(10001)。

3、Message Header

        每个消息数据包都需要由Message Header开头,其中包含了该条消息和PD端口功能的基本信息。

        Message Type里面分为控制消息和数据消息两大类,本文介绍的Source_Capabilities Message属于数据消息。

                通过查表可知Source_Capabilities Message 的Message Type编号是0 0001.

4、Extended Message Header

        每个扩展消息(通过在消息头中的扩展字段被设置来标识)都应包含一个位于消息头之后的扩展消息头。
        扩展消息头用于支持包含数据块数据大小的扩展消息,这些数据块要么在一个消息中发送,要么以一组分块的形式发送。当数据块以一组分块的形式发送时,分块序列中的每个分块(除了最后一个分块)都应包含  MaxExtendedMsgchunkLen  字节。序列中的最后一个分块应包含数据块的剩余部分,并且可能少于  MaxExtendedMsgChunkLen  字节,但应填充到下一个 4 字节数据对象边界处。

        Extended Message Header一般出现在Source_Capabilities Message和Request Message中,以确定单个未分块扩展消息的形式发送数据大小是否大于 MaxExtendedMsgLegacyLen。以分块的形式发送数据时,最多可以分成十个数据块。

5、Data Object

        Source_Capabilities Message属于是数据类型的消息,其后面的Data Object属于是由32-bit组成的Power Data Objects。可以分为固定供应(Fixed Supply )、电池(Battery)、可变供电(非电池供电)(Variable Supply (non-Battery) )、增强型(Augmented)。

其对应的具体数据内容如下:

增强型有SPR和EPR两种:

6、CRC

        CRC是由32位数据组成的校验码。

7、EOP

        EOP是数据包的结尾,其数据内容是一个K-code 01101.

五、数据解析

        查询SOURCE CAP中的充电挡位的信息,需要解析PDO数据。入图上所示PDO的第一个挡位数据内容为0801912C,换成二进制为0000 1000 0000 0001 1001 0001 0010 1100。

        首先需要判断B31...B30的值,(00b)Fixed Supply、(10b)Variable Supply (non-Battery)、(01b)describes a Battery。若B31...B 30为(11b)那么就要看B29...B28的值,(00b)SPR Programmable Power Supply、(01b)EPR Adjustable Voltage Supply。

        判断出PDO的类型之后,可以对照不同类型的Data Object表格解析充电电压和电流等信息。

六、CH224A/Q IIC地址0x60~0x8f上的数据解析

        如果使用的是CH224A/Q的IIC读取到的Source_Capabilities,读取到0x60~0x8f的数据如下所示:

        0x60~0x61是Message Header,0x60-->a1,0x61-->61,可以判断Bit15位是0,不带拓展数据信息头,所以后面就是PDO数据。每一个PDO数据是32bit,0x62~0x65为第一个PDO挡位,0x62-->2c、0x63-->91、0x64-->81、0x65-->0a。组合成PDO为0a81912c,换成二进制是 0000 1010 1000 0001 1001 0001 0010 1100,B31~B30为(00b),所以第一个PDO是FIXED挡位,对照表查询可得是5V3A,根据Message Header可知SROUCE CAP一共有6个PDO ,依次解析可以获取完整的SROUCE CAP信息。

        请求28V挡位后,PD适配器发送Extended Message Header数据包:

        0x60~0x61是Message Header,0x60-->b1,0x61-->f3,可以判断Bit15位是1,带拓展数据信息头,所以0x64~0x67为第一个PDO挡位,0x64-->2c、0x65-->91、0x66-->81、0x67-->0a。也是5V3A。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐