PD3.0_个人理解

一般简单的 TYPE-C 使用构成
HOST,DEVICE,CABLE (主机,从机,EMARKER)
PD 协议主要内容大部分集中在,物理层,协议层和协议引擎这三部分。
内容大概有:

‘.’ PD通信协议的编码解码
‘.’ PD协议的流程
‘.’ PD协议的指令构成
‘.’ PD协议的指令解析

PD的物理层由发射模块和接收模块组成,由于CC是单线协议,所以所有通信都是半双工的。
编码方式有两种,分别是BMC 、4B5B
不过两种编码方式不是单独使用的,是一起使用的,可能是为了安全性吧。

BMC编码规则是曼切斯特编码的一个版本,按照脉宽来设定的0和1。
BMC编码后还要经过4B5B编码才能转为被 PD 所识别的数据信号,由于没有相关编码分析仪,没法看到具体数据,但是可用示波器看,然后根据编码的方式解码可读到数据,但这是这样工作量很大,一般用一些集成的 TYPE-C 芯片,里面已经做了处理。
4B5B编码
在这里插入图片描述
在这里插入图片描述

指令格式
指令格式有两种:控制command和数据command
在这里插入图片描述

一个完整包结构包括引导码,SOP*使用场景码,Message Header功能码,Byte0-n数据码和CRC校验码,EOP结束码。
如果Byte数据码没有,说明指令仅仅作为控制指令使用,没有数据内容,所以叫做控制包。有数据内
容的叫做数据包,通常数据包里携带了要变化的电压值和电流值等信息。

1 引导码
BMC 解码后可以看到由 64 对 01 组成,主要为了进行接收缓冲。
Preamble通过呈现一系列交替的"0"和"1"来实现recevier中的锁定,因此平均频率是载波频率。与packet中的其余部分不同,前导码不应采用 4b/5b 编码。前导码应由交替的 0 和 1 的 64 位序列组成。前导码应以"0"开头,并且应以"1"结尾。

2 SOP*码:
BMC 解码后由 20 位的二进制数组成,通过 4B5B 解码后我们可以看到 SOP 由 Sync1 和 Sync2 的解码值构成。表明该指令是应用在 Source 与 SINK 之间。此处还有SOP’,SOP’ 的场景码,表明是 Source 与 E-marker 之间的场景指令。
3 Message Header 功能码
BMC 解码后由 20 位的二进制数组成,经过 4B5B 解码后为 16 位二进制数据
构成。
Message Header 通常包括:数据包还是控制包说明,是由SINK还是SOURCE发出的指令,PD 的协议版本,如果是数据包还包含了有多少个数据包的信息
在这里插入图片描述

Message Header 包含了指令信息:是否是扩展指令,这一个包是指令包还是数据包,是哪一方发过来的等信息,具体这些细节在 PD 协议文档给出了很详细的说明。

4 具体流程
以 Power Negotiation 讲解 PD 电压升降的流程结构。
Power Negotiation 流程发生在 Source 与 Sink 之间,在这里 Source 可以是适配器,可以是车充,也可以是移动电源。Sink 可以是任何支持 TypecPD 的受电端。

Power Negotiation 的协议流程包括以下PD指令:
·Source send CAPABILITY   供电能力指令(包含内容:具有哪几种电压值和电流值)
在这里插入图片描述
·Sink send REQUEST     需电请求指令 (包含内容:选取哪种电压和电流值)
在这里插入图片描述
·Source send ACCEPT    同意需电请求指令 (包含内容:经过对比需电在自己的供电范围内)
·Source send PS_RDY    完成需求指令 (包含内容:已经成功进行能电压改变)
·GOODCRC         指令接收通过指令

在实际应用中这些指令是怎么操作的呢,接下来我来详细述说:首选 Source 端工作在 TYPE-C 的 CC 模式5V3A 检测模式下,一旦检测到有 SINK 受电端接入,便开始输出 5V 给 SINK 端。
而这时在 CC 线上,Source 开始不间断发送 Source send CAPABILITY 指令,SINK 端接收到 Source send CAPABILITY 指令后,判断 PD 通信数据符合协议规定,便回复 GOODCRC 表示已经成功接收到数据,接着 SINK 会根据 Source 端能够提供的电压进行选择,SINK 选择好合适的电压电流便对 SOURCE 进行供电请求,于是 SINK 发出 Sink send REQUEST 进行需电请求指令。Source 接收到 Sink send REQUEST 后,会给 SINK 回复 GOODCRC,然后对 Sink send REQUEST 指令请求的电压进行校对,如果符合 Source 的供电能力,Source便对 SINK 发 Source send ACCEPT 指令,表明同意 SINK 的端电压请求。SINK 接收到 Source 发送的 ACCEPT 指令后,回复 GOODCRC。Source 接收到 SINK 发出的GOODCRC 后,便开始进行电压调节,电压调节成功后,便发出 Source send PS_RDY表示已经调整电压成功,SINK 收到后,便回复 GOODCRC 表示接收指令成功。

以上就是一个完整的升压指令流程。详情如下图所示。在发送PS_RDY的时间,将电压提上来。
在这里插入图片描述
可以参考一下流程图:
在这里插入图片描述

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

用户昵称已存在_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值