Type-C PD协议目前已经大量用于手机/PC等数码产品,但由于各家设备厂商在PD接口设计的时候做了一些定制化,导致在与第三方配件匹配的过程中,经常有不兼容的情况发生。比如说最常见的充电器,常常出现第三方充电器无法充电的情况,或者只能使用5V充电,无法进入快充。这就给充电器的生产厂家带来很大的麻烦,不知道问题出在哪里。
为了更加有效开发和准确验证基于控制流程的协议沟通,使用PD协议分析抓取CC线上的数据包是非常有必要的。某宝上有一款非常廉价的PD协议分析仪,可以兼容Cypress原厂的CY4500工具,通过USB接口将抓取到的协议包发送到主机端,通过上位机软件EZ-PD Analyzer Utility解码并显示PD协议包。不仅可以实时显示并解析PD通信包,而且还实时测量电力传输过程中的电压和电流值,进而缩短了开发周期,对于调试以及兼容性测试帮助非常大。


图 1 充电器软件的PD协议控制流程图

本文利用PD协议分析仪记录了充电过程中的标准PD协商供电以及私有化充电通信过程,如图 2所示,而在此过程中CC电平和VBUS电压变化情况图 3所示。首先作为供电方的充电器广播供电能力(Source Capability)5V/3A, 9V/2.7A和12V/2A,手机回复供电请求(Request),选择9V,随后充电器回复接受信息(Accept),并且将电压调整至9V,发送供电准备好信息(PS_RDY)。可以从Vbus(mv)一栏,看出在整个协商通信过程中的电压变化情况,发送PS_RDY时,电压已经调整至9V。标准PD协商供电之后,本位采用加密的非结构化的定制化信息(Unstructured VDM)进行私有化验证,验证通过之后手机端发起数据角色交换的指令(DR_SWAP),从而成为数据主设备,再发送调节电压电流指令,完成高效的充电策略。

图 2 协议分析仪抓取的充电器供电协商通信过程的PD协议


图 3 充电器的PD供电协商波形

可以看到使用协议分析仪对CC线的通讯协议数据做监测,能使调试变得清晰可控,大大加速找到兼容性问题原因的过程。

使用PD协议分析仪调试Type-C PD兼容性相关推荐

  1. pandas使用pd.MultiIndex.from_product函数和pd.MultiIndex.from_tuples函数创建复合索引dataframe数据实战

    pandas使用pd.MultiIndex.from_product函数和pd.MultiIndex.from_tuples函数创建复合索引dataframe数据实战 目录 pandas使用pd.Mu ...

  2. 苹果7支持快充吗_3299元的iPhone SE支持PD快充吗?PD充电器怎么选

    称心称手,超值入手的iPhoneSE终于发布了.iPhoneSE大部分配置和iPhone8都一样,那么问题来了,3299元的iPhone SE支持PD快充吗?PD充电器怎么选?iPhone8是支持PD ...

  3. PD充电调试问题解析(一)

    之前一直对充电的调试有了解,这次经过一个案子,对最新的充电技术和方案有所了解.现记录一下. 充电框图 几个关键的概念: 1.PD的输出电流,电压, 他的对象是 充电IC,PD Out ===>& ...

  4. PD协议芯片TYPE C接口支持快充诱骗

    是一颗符合PD.QC2.0.QC3.0.AFC.FCP协议的电源受电端(诱骗)协议芯片,从充电器(如PD或QC协议充电器)上诱骗出合适的电压给产品供电.可广泛应用于各个领域的各种产品,如无线充电.小家 ...

  5. TypeScript Type Compatibility 类型兼容性

    官方链接 TypeScript 中的类型兼容性基于结构子类型. 结构类型是一种仅基于其成员关联类型的方法.这与 nominal typing 相反.考虑以下代码: interface Pet {nam ...

  6. python中pd.read_Windows下Python的pd.read_excel()报错

    最近在学<Python数据分析与挖掘实战>,按照书上例子实践,发现有问题,记录如下 import pandas as pd catering_sale = 'C:\Python\learn ...

  7. pd 写入数据库_使用PD创建数据库模型,并最终将sql语句导入到MySQL

    打开PD 一.首先创建CDM 1. 点击file->New Model,选择Information->Conceptual Data,如下图 Model Name为模型名称(这里我自己定义 ...

  8. import pandas as pd# 读取两个 Excel 文件df1 = pd.read_excel(file1.xlsx)df2 = pd.read_excel(file2.xlsx)...

    import pandas as pd 是在 Python 中导入 Pandas 库的语句.pd 是 Pandas 库的常用简称.使用这个语句后,你就可以使用 Pandas 库中的各种函数和方法来处理 ...

  9. pd怎么卸载linux系统,PD虚拟机怎么完全卸载 PD虚拟机完全卸载方法

    PD虚拟机是Mac平台上的著名的虚拟机应用.PD虚拟机可以让用户在Mac上运行Windows操作系统.那么当我们不需要PD虚拟机的时候该怎么完全将其卸载呢?PD虚拟机怎么完全卸载?一起来看看PD虚拟机 ...

最新文章

  1. 20个简约风格网站设计作品欣赏
  2. shell 脚本实现退点输出
  3. fast.ai 深度学习笔记:第一部分第四课
  4. 【ClickHouse】ClickHouse 同步 MySQL 数据库
  5. 放弃机器学习,Python 如何进行物体检测?
  6. Rust : 求出一个字符串数组中最长的公共连续子序列
  7. 基础集合论 第一章 4 子集
  8. excel自动调整列宽_EXCEL选择性粘贴,这些招数你用过吗?
  9. 分体式水晶头_超6类双屏蔽网线水晶头制作简易教程
  10. Windows使用阿里云RAM访问控制API实现自建DDNS动态域名解析
  11. 计算机excel取整函数,Excel取整公式集锦
  12. 计算机更改开机密码快捷方法,如何对电脑的开机密码进行快速更换
  13. IMSI、IMEI和MEID(ESN)
  14. java nanotime 重复_关于Java中System.currentTimeMillis和System.nanoTime的错误认识
  15. ffmpeg添加字幕(包含srt文件)
  16. 迅雷5.5.4.268去广告版
  17. 解决udp socket报socketException使得服务端不再正常工作
  18. python 利用Crypto进行AES解密加密文件
  19. 关于我在中华读书报发表的文章
  20. 哪些pdf编辑软件值得下载?办公常备软件

热门文章

  1. 某游戏公司后台数据库SQL注入事件分析
  2. 软件研发公司的招聘实习生的工资会有6000~8000这么高?是骗人的吗?
  3. 通过vi服务器运行vi,动态改变界面改变VI的属性KCC.ppt
  4. DES和RSA混合加密及解密-JAVA
  5. CSP-S2022 游记
  6. 微信小程序如何导入文件的一种方法
  7. C语言常用编程技巧-结构体数组
  8. 用计算机控制150个继电器,计算机怎样控制单片机里的继电器
  9. mysql查询每个用户最新的一条订单
  10. ASEMI三端正线性稳压器78M05工作原理