TYPECPD升压标准协议全解析讲解.docx
- 文档编号:17062115
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:29
- 大小:392KB
TYPECPD升压标准协议全解析讲解.docx
《TYPECPD升压标准协议全解析讲解.docx》由会员分享,可在线阅读,更多相关《TYPECPD升压标准协议全解析讲解.docx(29页珍藏版)》请在冰点文库上搜索。
TYPECPD升压标准协议全解析讲解
TYPE-CPD是PowerDelivery的简称,代表着电力传输的一个通讯协议。
一个简单的TYPE-CPD使用环境,需要下面几个设备组成:
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。
可以从上图看出,BMC的最大频率达
图一
01的编码其实不以电平的变化为依照,而是依照脉宽来决定。
330KHz,单指令长度在1ms内。
㈡
经过逻辑解析仪对波形的读取,我们可以看到未经
BMC解码的原码
图二
经过BMC从左到右依照脉宽心码后,我们可以获取一系列01的无序组合。
经过对01组合的观察,可以看到从左开始有64对01的前导码,来作为数据的等待和除干
扰。
64对前导码后,才是需要关注的数据内容。
经过BMC解码后,并去除前导码的数据,也其实不是最后可以解析的数据。
PD通讯协议在这里增加了一个软编码,称为4B5B编码。
即接收到的数据每5个二进制数据,需要经过一个4B5B编码表还原成正确的PD通讯数据。
看到这里,都可以想到无线电的加密工作了,但是PD官方资料给出的讲解是降低接收器的设计复杂度并且赞成更加多样化的接收器设计。
4B5B是为了
4B5B的解码表以下:
图三
依照图二我们可以做一个4B5B的解码例子:
上述
取出图二中引导码后,我们可以获取的数据是,4B5B表格进行解码后我们获取最后的数据为:
0001100011000111000110010,经过SYNC1-SYNC1-SYNC1-SYNC2。
-1
看到这里可能你有疑问,00011
编码规则,就是从左到右记录数据时,
在表格中不是Reserved吗?
是的,没错,4B5B还有个
需要将读取的数据倒过来编译,即00011要倒成11000。
由于PD通讯的流程复杂,且BMC解码后的数据经常长达上百位,人工编解码耗时耗力且
简单出错,所以需要使用一些自制的电脑软件来进行辅助解码,于是才有了下面的自制解码
软件。
图四
该软件就包括了4B5B的解码,和数据内容的解析,可以迅速的将BMC解码的数据内容变换成功能定义。
㈢
PD协议内容众多,主要包括以下流程:
·PowerNegotiation电压协商流程(电压起落压)
·GotominOperation
·SoftReset软件复位流程
·HardReset硬件复位流程
·CableReset
·PowerRoleSwap
·FastRoleSwap
·DataRoleSwap
·AdditionCapabilityandStatus
·Security密钥流程
·FirmwareUpdate固件升级流程
·StructuredVDM厂商自定义结构流程
·BISTPD协议时序测试流程
今天我们就依照PowerNegotiation讲解PD电压起落的流程结构。
PowerNegotiation流程发生在Source与Sink之间,在这里Source可以是适配器,可以是车充,也可以是搬动电源。
Sink可以是任何支持TypecPD的受电端。
PowerNegotiation的协议流程包括以下PD指令:
·SourcesendCAPABILITY供电能力指令(包括内容:
拥有哪几种电压值和电流值)
·SinksendREQUEST需电央求指令(包括内容:
采用哪一种电压和电流值)
·SourcesendACCEPT赞成需电央求指令(包括内容:
经过比较需电在自己的供电范围内)
·SourcesendPS_RDY达成需求指令(包括内容:
已经成功进行能电压改变)
·GOODCRC指令接收经过指令
在本质应用中这些指令是怎么操作的呢,接下来我来详细陈说:
首选Source端工作在
TYPE-C的CC模式5V3A检测模式下,一旦检测到有SINK受电端接入,便开始输出5V给SINK
端。
而这时在CC线上,Source开始不中止发送SourcesendCAPABILITY指令,SINK端接收到SourcesendCAPABILITY指令后,判断PD通讯数据吻合协议规定,便回复GOODCRC表示已经成功接收到数据,接着SINK会依照Source端可以供应的电压进行选择,SINK选择好合适
的电压电流便对SOURCE进行供电央求,于是SINK发出SinksendREQUEST进行需电央求指令。
Source接收到SinksendREQUEST后,会给SINK回复GOODCRC,尔后对SinksendREQUEST
指令央求的电压进行校订,若是吻合Source的供电能力,Source便对SINK发Sourcesend
ACCEPT指令,表示赞成SINK的端电压央求。
SINK接收到Source发送的ACCEPT指令后,回
复GOODCRC。
Source接收到SINK发出的GOODCRC后,便开始进行电压调治,电压调治成
功后,便发出SourcesendPS_RDY表示已经调整电压成功,SINK收到后,便回复GOODCRC
表示接收指令成功。
以上就是一个完满的升压指令流程。
㈣
PD的通讯指令(就升压来说)有两种方式一种方式是控制包,而另一种是带数据包。
指令包格式以下:
图五
一个完满包结构包括引导码,SOP*使用途景码,MessageHeader功能码,Byte0-n数据码和CRC校验码,EOP结束码。
若是Byte数据码没有,说明指令不过作为控制指令使用,没有数据内容,所以叫做控制包。
有数据内容的叫做数据包,平时数据包里携带了要变化的电压值和电流值等信息。
①引导码:
BMC解码后可以看到由64对01组成,主要为了进行接收缓冲。
②SOP*码:
BMC解码后由20位的二进制数组成,经过4B5B解码后我们可以看到SOP
由Sync1和Sync2的解码值组成。
表示该指令是应用在Source与SINK之间。
此处还有SOP’,
SOP’的场景码,表示是Source与③MessageHeader功能码:
E-marker之间的场景指令。
BMC解码后由20位的二进制数组成,经过
4B5B
解码后
为16位二进制数据组成。
MessageHeader平时包括:
数据包还是控制包说明,是由
SINK还是
SOURCE发出的指
令,PD的协议版本,若是是数据包还包括了有多少个数据包的信息。
详细表格说明以下:
图六
其中,低四位二进制码比较重要,代表的是该PD指令的名字,比方说升压中用到的
SourcesendCAPABILITY就是又这四位来定义的。
其他指令的定义表以下:
图七
在指令包的结构中,过了MessageHeader向右就是数据地域,经过4B5B的变换后,SOP是16个二进制位,MessageHeader也是16个二进制位,而数据地域,每个独立的数据块包
括了32个二进制位。
所以Byte0(32位)Byte1(32位)......那么新的问题又来了,一条完
整的指令包终究怎么判断包括了多少的数据块呢,这个时候就需要由MessageHeader来进
行判断了。
MessageHeader的12到14位表示1到7个数字,代表的就是指令包的数据数量,
所以我们可以认为指令包的最大数据数为7。
数据模块一般应用在SourcesendCAPABILITY,
SinksendREQUEST等这样需要带电压电流的PD指令中。
数据模块右边就是一个32位的数据校验地域,也称作CRC校验。
CRC校验是PD通讯
协议中独到的一套校验方式,为了保持数据的完满与纠错,整个PD指令任何一个位变动,
都会造成CRC改变。
经过了引导码,SOP码,MessageHeader,data码,CRC码后,接下来就是EOP码即结
束吗,在4B5B中我们可以看到接收到01101的BMC编码,即代表PD指令包全部接收达成。
㈤
下面我们就本质做一次序一准备好待测试的
PD协议解析:
PD适配器,PD数据线(两头都是
TYPE-C的那种),PD测试架,逻辑
解析仪。
尔后将插拔过程中PD的数据流程经过逻辑解析仪读取出来以下:
图八
第一我们要做的就是PD指令的BMC解码,将脉冲长短变化成二进制数据,尔后经过协议解析软件进行代码解析,为了更好的讲解,我们先人工解析一条指令。
图九
引导码由64位二进制的01组成,这一段可以直接掠过。
图十
SOP*码从左到右BMC解码后等于:
00011000110001110001
依照图三进行4B5B解码我们可以获取:
SYNC1-SYNC1-SYNC1-SYNC2
于是我们可以知道,该指令属于
SOURCE与
SINK之间的指令。
我们接着往下解析:
图十一
MessageHeader码从左到右BMC解码后等于:
10010011101001000101
经过4B5B解码后为:
0001011000010010
15到0位为:
0010000101100001依照图六可以获取以下信息:
从15,14,13,12位可以获取此PD指令包括2个数据块。
从11,10,9位可以知道此PD指令正在进行第一个回合。
(PD指令+GOODCRC指令为一个
回合)
从8位可以得知此PD指令由SOURCE发出。
从7,6位得知指令依照的是PD2.0规则。
从5得知发指令的设备角色为DFP。
从4,3,2,1,0获取00001并查阅图七获取该指令名:
MessageHeader指令,为电压协
商协议的倡导指令。
数据指令过长过程不再详叙,用协议软件可以解析获取:
图十二
接下来我们用协议软件解析,速度会快很多,可以迅速掌握这个流程功能和异常:
图十三
此指令为上条MessageHeader的回复指令。
接着下条指令为:
图十四
此为SINK端发出的SinksendREQUEST指令,我们可以获取相关信息,已经SINK央求
的电压等级。
SOURCE端的回复指令:
图十五
从该指令信息中,我们可以知道该信息由SOURCE发出,用来回复SINK端发出的电压央求。
接着SOURCE端收到指令后,又发出的指令:
图十六
该指令信息为SOURCE发出的ACCEPT指令,由上述流程的介绍可以知道,该指令表示SOURCE端赞成了SINK的电压升压央求,并开始做好升压的准备。
接下来SINK端发的GOODCRC,以下:
图十七
该指令为
SOURCE发的第二条指令,所以
SINK回复的
GOODCRC中的
MSGID这里开始
计数到001;
与此同时,SOURCE端的硬件已经进入升压模式,由于升压要一准时间,所以90ms多的延时,才迎来了第三条SOURCE指令,若是流程没有错的话就是用PD协议解析软件的解析以下:
PD通讯会有
PS_RDY指令:
图十八
指令流程进行到这里,说明SOURCE端已经成功将电压升压到SINK端央求的电压。
接下来的SINK端的GOODCRC就不负担了。
以上表达就是一个完满的电压升压流程
PD通讯的速率300KHz,且通讯时的电压在1V上下,所以在本质的软硬件设计中,都
要针对上述特点做一些针对性的调整。
目前开发的SINK端PD测试架,与配合AC-DC做的PD协议芯片都是以上述理论为蓝本做的相关应用。
两款样机的硬件设计请见PD硬件,软件设计篇。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TYPECPD 升压 标准 协议 解析 讲解