TYPE-C PD 升压协议全解析PD 是 Power Delivery 的简称,代表着 TYPE-C 电力传输的一个通讯协议.一 个 简 单 的 TYPE-C PD 使 用 环 境 , 需 要 下 面 几 个 设 备 构 成 : HOST、DEVICE、CABLE(即:主机,机,EMARKER)PD 的协议书主要的内容集中在:PD 协议的 BMC 编码规则;PD 协议的 4B5B 解码;PD 协议的通信流程;PD 协议的通信指令结构;PD 协议的通信内容解析;①PD 协议独立与 USB 协议之外,但由于 TYPE—C 口的兼容特性,可以让 PD 协议、QC 协议、MTK 协议、FCP 协议等快冲协议熔于一炉。PD 的物理层由发射模块和接收模块组成,由于 CC 是单线协议,所以所有通信都是半双工的。BMC 编码规则是曼切斯特编码的一个版本,根据脉宽来设定的 0 和 1。可以从上图看出,01 的编码并不以电平的变化为依据,而是根据脉宽来决定.BMC 的最大频率达 330KHz,单指令长度在 1ms 内.②通过逻辑分析仪对波形的读取,我们可以看到未经 BMC 解码的原码通过 BMC 从左到右根据脉宽解码后,我们可以得到一系列 01 的无序组合。通过对 01 组合的观察,可以看到从左开始有 64 对 01 的前导码,来作为数据的等待和除干扰.64 对前导码后,才是需要关注的数据内容。通过 BMC 解码后,并去除前导码的数据,也并不是最终可以解析的数据。PD通信协议在这里增加了一个软编码,称为 4B5B 编码。即接收到的数据每 5 个二进制数据,需要经过一个 4B5B 编码表还原成正确的 PD 通信数据。看到这里,都可以想到无线电的加密工作了,但是 PD 官方资料给出的解释是4B5B 是为了降低接收器的设计复杂度并且允许更加多样化的接收器设计。4B5B 的解码表如下:根据图二我们可以做一个 4B5B 的解码例子: 取出图二中引导码后,我们可以得到的数据:00011 0001100011 10001 10010,通过上述 4B5B 表格进行解码后我们得到最终的数据为:SYNC1—SYNC1—SYNC1—SYNC2-1。看到这里可能你有疑问, 00011 在表格中不是 Reserved 吗?是的,没错,4B5B 还有个编码规则,就是从左到右记录数据时,需要将读取的数据倒过来编译,即 00011 要倒成 11000。由于 PD 通信的流程复杂,且 BMC 解码后的数据往往长达上百位,人工编解码耗时耗力且容易出错,所以需要使用一些自制的电脑软件来进行辅助解码,于是才有了下面的自制解码软件。该软件就包括了 4B5B 的解码,和数据内容的...