typecpd升压协议全解析_第1页
typecpd升压协议全解析_第2页
typecpd升压协议全解析_第3页
typecpd升压协议全解析_第4页
typecpd升压协议全解析_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TYPE-CPD升压协议全分析PD是PowerDelivery的简称,代表着TYPE-C电力传输的一个通信协议。一个简单的TYPE-CPD使用环境,需要下边几个设施构成:HOST、DEVICE、CABLE(即:主机,机,EMARKER)PD的协议书主要的内容集中在:PD协议的BMC编码规则;PD协议的4B5B解码;PD协议的通信流程;PD协议的通信指令构造;PD协议的通信内容分析;PD协议独立与USB协议以外,但因为TYPE-C口的兼容特征,能够让PD协议、QC协议、MTK协议、FCP协议等快冲协议熔于一炉。PD的物理层由发射模块和接收模块构成,因为CC是单线协议,因此所有通信都是半双工的。B

2、MC编码规则是曼切斯特编码的一个版本,依照脉宽来设定的0和1。能够从上图看出,01的编码其实不以电平的变化为依照,而是依照脉宽来决定。BMC的最大频次达330KHz,单指令长度在1ms内。经过逻辑剖析仪对波形的读取,我们能够看到未经BMC解码的原码经过BMC从左到右依照脉宽心码后,我们能够获得一系列01的无序组合。经过对01组合的察看,能够看到从左开始有64对01的前导码,来作为数据的等候和除扰乱。64对前导码后,才是需要关注的数据内容。经过BMC解码后,并去除前导码的数据,也其实不是最后能够分析的数据。PD通信协议在这里增添了一个软编码,称为4B5B编码。即接收到的数据每5个二进制数据,需要

3、经过一个4B5B编码表复原成正确的PD通信数据。看到这里,都能够想到无线电的加密工作了,可是PD官方资料给出的解说是4B5B是为了降低接收器的设计复杂度而且赞同更为多样化的接收器设计。4B5B的解码表以下:依据图二我们能够做一个4B5B的解码例子:拿出图二中指引码后,我们能够获得的数据:10010,经过上述4B5B表格进行解码后我们获得最后的数据为:SYNC1-SYNC1-SYNC1-SYNC2。-1看到这里可能你有疑问,00011在表格中不是Reserved吗是的,没错,4B5B还有个编码规则,就是从左到右记录数据时,需要将读取的数据倒过来编译,即00011要倒成11000。因为PD通信的流

4、程复杂,且BMC解码后的数据常常长达上百位,人工编解码耗时耗力且简单犯错,因此需要使用一些自制的电脑软件来进行协助解码,于是才有了下边的自制解码软件。该软件就包含了4B5B的解码,和数据内容的分析,能够快速的将BMC解码的数据内容变换成功能定义。PD协议内容众多,主要包含以下贱程:PowerNegotiation电压磋商流程(电压起落压)GotominOperationSoftReset软件复位流程HardReset硬件复位流程CableResetPowerRoleSwapFastRoleSwapDataRoleSwapVCONNSwapAdditionCapabilityandStatusS

5、ecurity密钥流程FirmwareUpdate固件升级流程StructuredVDM厂商自定义构造流程BISTPD协议时序测试流程今日我们就依据PowerNegotiationPowerNegotiation解说流程发生在Source与PD电压起落的流程构造。Sink之间,在这里Source能够是适配器,能够是车充,也能够是挪动电源。Sink能够是任何支持Type-cPD的受电端。PowerNegotiation的协议流程包含以下PD指令:SourcesendCAPABILITY供电能力指令(包含内容:拥有哪几种电压值和电流值)SinksendREQUEST需电恳求指令(包含内容:选用哪一

6、种电压和电流值)SourcesendACCEPT赞同需电恳求指令(包含内容:经过对照需电在自己的供电范围内)SourcesendPS_RDY达成需求指令(包含内容:已经成功进行能电压改变)GOODCRC指令接收经过指令在实质应用中这些指令是怎么操作的呢,接下来我来详尽陈述:首选Source端工作在TYPE-C的CC模式5V3A检测模式下,一旦检测到有SINK受电端接入,便开始输出5V给SINK端。而这时在CC线上,Source开始不中断发送SourcesendCAPABILITY指令,SINK端接收到SourcesendCAPABILITY指令后,判断PD通信数据切合协议规定,便答复GOODC

7、RC表示已经成功接收到数据,接着SINK会依据Source端能够供给的电压进行选择,SINK选择好适合的电压电流便对SOURCE进行供电恳求,于是SINK发出SinksendREQUEST进行需电恳求指令。Source接收到SinksendREQUEST后,会给SINK答复GOODCRC,而后对SinksendREQUEST指令恳求的电压进行校正,假如切合Source的供电能力,Source便对SINK发SourcesendACCEPT指令,表示赞同SINK的端电压恳求。SINK接收到Source发送的ACCEPT指令后,答复GOODCRC。Source接收到SINK发出的GOODCRC后,便

8、开始进行电压调理,电压调理成功后,便发出SourcesendPS_RDY表示已经调整电压成功,SINK收到后,便答复GOODCRC表示接收指令成功。以上就是一个完好的升压指令流程。PD的通信指令(就升压来说)有两种方式一种方式是控制包,而另一种是带数据包。指令包格式以下:一个完好包构造包含指引码,SOP*使用处景码,MessageHeader功能码,Byte0-n数据码和CRC校验码,EOP结束码。假如Byte数据码没有,说明指令只是作为控制指令使用,没有数据内容,因此叫做控制包。有数据内容的叫做数据包,往常数据包里携带了要变化的电压值和电流值等信息。指引码:BMC解码后能够看到由64对01构

9、成,主要为了进行接收缓冲。SOP*码:BMC解码后由20位的二进制数构成,经过4B5B解码后我们能够看到SOP由Sync1和Sync2的解码值构成。表示该指令是应用在Source与SINK之间。此处还有SOP、SOP的场景码,表示是Source与E-marker之间的场景指令。MessageHeader功能码:BMC解码后由20位的二进制数构成,经过4B5B解码后为16位二进制数据构成。MessageHeader往常包含:数据包仍是控制包说明,是由SINK仍是SOURCE发出的指令,PD的协议版本,假如是数据包还包含了有多少个数据包的信息。详尽表格说明以下:此中,低四位二进制码比较重要,代表的

10、是该PD指令的名字,比方说升压顶用到的SourcesendCAPABILITY就是又这四位来定义的。其余指令的定义表以下:在指令包的构造中,过了MessageHeader向右就是数据地区,经过4B5B的变换后,SOP是16个二进制位,MessageHeader也是16个二进制位,而数据地区,每个独立的数据块包含了32个二进制位。因此Byte0(32位)Byte1(32位).那么新的问题又来了,一条完好的指令包究竟怎么判断包含了多少的数据块呢,这个时候就需要由MessageHeader来进行判断了。MessageHeader的12到14位表示1到7个数字,代表的就是指令包的数据数目,因此我们能够

11、以为指令包的最大数据数为7。数据模块一般应用在SourcesendCAPABILITY,SinksendREQUEST等这样需要带电压电流的PD指令中。数据模块右侧就是一个32位的数据校验地区,也称作CRC校验。CRC校验是PD通信协议中独到的一套校验方式,为了保持数据的完好与纠错,整个PD指令任何一个位改动,都会造成CRC改变。经过了指引码、SOP码、MessageHeader、data码、CRC码后,接下来就是EOP码即结束码,在4B5B中我们能够看到接收到01101的BMC编码,即代表PD指令包所有接收完成。下边我们就实质做一次PD协议剖析:第一准备好待测试的PD适配器、PD数据线(两端

12、都是TYPE-C的那种)、PD测试架、逻辑剖析仪。而后将插拔过程中PD的数据流程经过逻辑剖析仪读拿出来以下:第一我们要做的就是PD指令的BMC解码,将脉冲长短变化成二进制数据,而后经过协议剖析软件进行代码分析,为了更好的解说,我们祖先工剖析一条指令。指引码由64位二进制的01构成,这一段能够直接掠过。SOP*码从左到右BMC解码后等于:依据图三进行4B5B解码我们能够获得:SYNC1-SYNC1-SYNC1-SYNC2于是我们能够知道,该指令属于SOURCE与SINK之间的指令。我们接着往下剖析:MessageHeader码从左到右BMC解码后等于:。经过4B5B解码后为:。15到0位为:依据

13、图六能够获得以下信息:从15,14,13,12位能够获得此PD指令包含2个数据块。从11,10,9位能够知道此PD指令正在进行第一个回合。(PD指令+GOODCRC指令为一个回合)从8位能够得悉此PD指令由SOURCE发出。从7,6位得悉指令依照的是规则。从5得悉发指令的设施角色为DFP。从4,3,2,1,0获得00001并查阅图七获得该指令名:MessageHeader指令,为电压磋商协议的倡始指令。数据指令过长过程不再详叙,用协议软件能够剖析获得:接下来我们用协议软件剖析,速度会快好多,能够快速掌握这个流程功能和异样:此指令为上条MessageHeader的答复指令。接着下条指令为:此为S

14、INK端发出的SinksendREQUEST指令,我们能够获得有关信息,已经SINK恳求的电压等级。SOURCE端的答复指令:从该指令信息中,我们能够知道该信息由SOURCE发出,用来答复SINK端发出的电压恳求。接着SOURCE端收到指令后,又发出的指令:该指令信息为SOURCE发出的ACCEPT指令,由上述流程的介绍能够知道,该指令表示SOURCE端赞同了SINK的电压升压恳求,并开始做好升压的准备。接下来SINK端发的GOODCRC,以下:该指令为SOURCE发的第二条指令,因此SINK答复的GOODCRC中的MSGID这里开始计数到001;与此同时,SOURCE端的硬件已经进入升压模式,因为升压要一准时间,所以PD通信会有90ms多的延时,才迎来了第三条SOURCE指令,假如流程没有错的话就是PS_RDY指令:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论