TYPE-C-PD升压协议全解析_第1页
TYPE-C-PD升压协议全解析_第2页
TYPE-C-PD升压协议全解析_第3页
TYPE-C-PD升压协议全解析_第4页
TYPE-C-PD升压协议全解析_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、TYPE-C PD升压协议全解析PD是Power Delivery 的简称,代表着TYPE-C电力传输的一个通讯协议.一个简单的TYPE-C PD使用环境,需要下面几个设备构成:HOST、DEVICE、CABLE 即:主机,机,EMARKERPD的协议书主要的内容集中在:PD协议的BMC编码规那么;PD协议的4B5B解码;PD协议的通信流程;PD协议的通信指令结构;PD协议的通信内容解析;PD协议独立与USB协议之外,但由丁 TYPE-C 口的兼容特性,可以让 PD 协议、QC协议、MTK协议、FCP协议等快冲协议熔丁一炉.PD的物理层由发射模块和接收模块组成,由丁 CC是单线协议,所以所有

2、通信都是半双工的.BMC编码规那么是曼切斯特编码的一个版本,根据脉宽来设定的0和1.a 1 Diol a 1 a o a 1 i o o o 1 i in * *吨 LrLrLruirm_rLrLrLrLnnjL 可以从上图看出,01的编码并不以电平的变化为依据,而是根据脉宽来决 定.BMC的最大频率达330KHz,单指令长度在1ms内通过逻辑分析仪对波形的读取,我们可以看到未经 BMC解码的原码1|.Sm:iI .S4ih liMmi-1图二通过BMC从左到右根据脉宽解码后,我们可以得到一系列01的无序组合.通过对01组合的观察,可以看到从左开始有64对01的前导码,来作为数 据的等待和除干

3、扰.64对前导码后,才是需要关注的数据内容.通过BMC解码后,并去除前导码的数据,也并不是最终可以解析的数据.PD通信协议在这里增加了一个软编码,称为 4B5B编码.即接收到的数据每5 个二进制数据,需要经过一个4B5B编码表复原成正确的PD通信数据.看到这里,都可以想到无线电的加密工作了, 但是PD官方资料给出的解释 是4B5B是为了降低接收器的设计复杂度并且允许更加多样化的接收器设计.4B5B的解码表如下:T4b5b Symbol EntodinjT3blipSame4b5b SymbolDescription0CQOO11110tie* dd:j D1COOl01001心dg 12CO1

4、DiDiachx data 23COU101Q1hen dg 34C1QO01010hex45owiOlDtlhz dm 56Clio0111Chex diu67011101111hex data 7S1000lOOiCdg 891001won阮x dEJ 9AW1Diouohex Awu10111ht dju HCMOO11010hex dg CD1101HOUhex dM DEmo11 IOChex dauEFmi11101hex data FSynClKodeHQOCStamp ch ciSync-2Kode10001Startsynch 2RST1Kode00111Hrd Reset

5、RST-2Kode11001Hard Reset 2COPKode01101EOF EndCf PackerError00000Sli1. r1: bt u心Error00001Si讪 rcc be usedError00010Shall nctbeuudErrftr00011budZltwrvMError00100Shall not be usedReservedErrorGD1Q1Slull rc: bousedSync*3Encode00110Surtsynch *3RftfrretfErrar01000h#luedError0110.SluHnct be uitdError1DOOCS

6、liall net be usedArrrrvetfError11111SluU not be used根据图二我们可以做一个4B5B的解码例子:取出图二中引导码后,我们可以得到的数据:00011 00011 00011 1000110010,通过上述 4B5B表格进行解码后我们得到最终的数据为:SYNC1-SYNC1-SYNC1-SYNC2-1 .看到这里可能你有疑问,00011在表格中不是Reserved吗?是的,没错,4B5B还有个编码规那么,就是从左到右记录数据时,需要将读取的数据倒过来编译,即00011要倒成11000.由丁 PD通信的流程复杂,且BMC解码后的数据往往长达上白位,人

7、工编 解码耗时耗力且容易出错,所以需要使用一些自制的电脑软件来进行辅助解码, 于是才有了下面的自制解码软件.10010 00101 01111 10111 01111 11001 10010 01111 01001 01111 01001 01DU 01111 01101 01010 01111 01111 0111124解析结果:SGHeadexDataTj: anSOP2400mASourceCap5000mVDFP2000jhAPD2.014800kVSOURCEObAflsg!d:000ObVDataOlO11 ow -_n- Ml nl 1_- D 1- o 1 D 1 o D D

8、o D D o o削H,i eCa4. i,aH 卜祈#图四该软件就包括了 4B5B的解码,和数据内容的解析,能够快速的将BMC解码的数据内容转换成功能定义.PD协议内容繁多,主要包括以下流程:Power Negotiation电压协商流程电压升降压Gotomin OperationSoft Reset软件复位流程Hard Reset硬件复位流程Cable ResetPower Role SwapFast Role SwapData Role SwapVCONN SwapAddition Capability and StatusSecurity密钥流程Firmware Update固件升级流

9、程Structured VDM厂商自定义结构流程BIST PD协议时序测试流程今天我们就根据Power Negotiation 讲解PD电压升降的流程结构.Power Negotiation 流程发生在Source与Sink之间,在这里Source可以是适配器,可以是车充,也可以是移动电源.Sink可以是任何支持Type-cPD的受电端.Power Negotiation的协议流程包括以下PD指令:Source send CAPABILITY供电水平指令包含内容:具有哪几种电压值和电流值Sink send REQUEST 需电请求指令包含内容:选取哪种电压和电流值Source send ACC

10、EPT 同意需电请求指令包含内容:经过比照需电在自己的 供电范围内Source send PS_RDY完成需求指令包含内容:已经成功进行能电压改变GOODCRC指令接收通过指令在实际应用中这些指令是怎么操作的呢,接下来我来详细述说:首选Source 端工作在TYPE-C的CC模式5V3A检测模式下,一旦检测到有 SINK受电端接 入,便开始输出5V给SINK端.而这时在CC线上,Source开始不问断发送Source send CAPABILITY 指 令,SINK端接收到Source send CAPABILITY 指令后,判断PD通信数据符合 协议规定,便回复 GOODCRC表示已经成功接

11、收到数据,接着 SINK会根据 Source端能够提供的电压进行选择,SINK选择好适宜的电压电流便对 SOURCE 进行供电请求,于是SINK发出Sink send REQUEST进行需电请求指令.Source 接收至U Sink send REQUEST 后,会给 SINK 回复 GOODCRC ,然 后对Sink send REQUEST指令请求的电压进行校对,如果符合 Source的供电 水平,Source便对SINK发Source send ACCEPT 指令,说明同意 SINK的端 电压请求.SINK接收到Source发送的ACCEPT指令后,回复 GOODCRC. Source接

12、收到SINK发出的GOODCRC后,便开始进行电压调节,电压调节成 功后,便发出Source send PS_RDY表示已经调整电压成功,SINK收到后,便 回复GOODCRC表示接收指令成功.以上就是一个完整的升压指令流程.PD的通信指令就升压来说有两种方式一种方式是限制包,而另一种是 带数据包.Prcamb lelramiinft for fete Ire r)SOP* 4SU1 Of k-Byte h-1 Byte nCRCFOP FrdCf图五一个完整包结构包括引导码,SOP*使用场景码,Message Header功能码,Byte0-n数据码和CRC校验码,EOP结束码.如果Byte

13、数据码没有,说明指令仅仅作为限制指令使用,没有数据内容,所以叫做限制包.有数据内容的叫做数据包,通常数据包里携带了要变化的电压 值和电流值等信息.引导码:BMC解码后可以看到由64对01组成,主要为了进行接收缓冲.SOP*码:BMC解码后由20位的二进制数组成,通过 4B5B解码后我们可以看到SOP由Sync1和Sync2的解码值构成.说明该指令是应用在 Source与SINK之间.此处还有 SOP、 SOP的场景码,说明是Source与E-marker 之间的场景指令.Message Header功能码:BMC解码后由20位的二进制数组成,经过4B5B 解码后为16位二进制数据构成.Mess

14、age Header通常包括:数据包还是限制包说明,是由 SINK还是 SOURCE发出的指令,PD的协议版本,如果是数据包还包含了有多少个数据包 的信息.详细表格说明如下:其中,低四位二进制码比拟重要,代表的是该 PD指令的名字,比方说升压中用到的Source send CAPABILITY就是乂这四位来定义的其它指令的定义表如下:Bits 45TypeSent byValid Start of Packet0 00000 ()( ICaptibrlitichSnntTp or hiiibRnlp PowerSOP only0 III) 10fieqi心 tSink onlySOP only

15、0 0011BISTSaiin c orSinkSOP*OOHIOSin t Capa bilit iesSource or DiiaJRoiePowerSOP dhly001(11Huttery_St(itusSource or SinkSOP only00110AlertSource or SinkSOP only001 11 -0 1110Reservedn illVrn(lorJ)cfine(lSenin?巳 Sink or Ciblr Plug睫P*1 0000-11111Resetyed图七在指令包的结构中,过了 Message Header向右就是数据区域,通过4B5B的转换后,

16、SOP是16个二进制位,Message Header 也是16个二进制位,而 数据区域,每个独立的数据块包括了 32个二进制位.所以Byte0 32位Bytel32位.那么新的问题乂来了,一条完整的指令包到底怎么判断包含了多少 的数据块呢,这个时候就需要由Message Header来进行判断了. MessageHeader的12到14位表示1到7个数字,代表的就是指令包的数据数量,所 以我们可以认为指令包的最大数据数为7.数据模块一般应用在 Source sendCAPABILITY , Sink send REQUEST 等这样需要带电压电流的 PD指令中.数据模块右边就是一个32位的数据

17、校验区域,也称作CRC校验.CRC校 验是PD通信协议中独特的一套校验方式,为了保持数据的完整与纠错,整个 PD指令任何一个位变动,都会造成 CRC改变.经过了引导码、SOP码、MessageHeader、data码、CRC码后,接下来 就是EOP码即结束码,在4B5B中我们可以看到接收到 01101的BMC编码, 即代表PD指令包全部接收完毕.下面我们就实际做一次PD协议分析:首先准备好待测试的PD适配器、PD数据线两头都是TYPE-C的那种、 PD测试架、逻辑分析仪.然后将插拔过程中PD的数据流程通过逻辑分析仪读取出来如下:SffliSm7mi曲图八首先我们要做的就是PD指令的BMC解码,

18、将脉冲长短变化成二进制数据, 然后通过协议分析软件进行代码解析, 为了更好的讲解,我们先人工分析一条指 令.兽13中阿电LWHfl11 RF回a W屯业Etf也1W也可抽iftE审叵展Efl酮丽遍小,朴打7中一电7WlgFVln同FFlgiffiflanI JanI-Mmip *fi *msiww f当io*n图九引导码由64位二进制的01组成,这一段可以直接略过.仆S0p码m i,34rWJTkJ#lWrl0 PWfM7图十SOP*码从左到右 BMC 解码后等丁 : 00011 00011 00011 10001根据图三进行4B5B解码我们可以得到:SYNC1-SYNC1-SYNC1-SYN

19、C2丁是我们可以知道,该指令届丁 SOURCE与SINK之间的指令.我们接着往下分析:Message Header 码从左到右 BMC 解码后等丁 : 10010 01110 1001000101.通过 4B5B 解码后为:0001 0110 0001 0010.15到0位为:0010 0001 0110 0001根据图六可以得到以下信息:从15 , 14 , 13 , 12位可以得到此PD指令包括2个数据块.从11 , 10 , 9位可以知道此PD指令正在进行第一个回合.PD指令从8位可以得知此PD指令由SOURCE发出 从7, 6位得知指令遵循的是PD2.0规那么从5得知发指令的设备角色为

20、DFP.从4,3 ,2,1,0得到00001并查阅图七得到该指令名:Message Header指令,为电压协冏协议的发起指令.数据指令过长过程不再详叙,用协议软件可以分析得到:图十接下来我们用协议软件分析,速度会快很多,能够迅速掌握这个流程功能和异常:图十三此指令为上条Message Header 的回复指令.接着下条指令为:图十匹此为SINK端发出的Sink send REQUEST指令,我们可以得到相关信息已经SINK请求的电压等级SOURCE端的回复指令:图十五从该指令信息中,我们可以知道该信息由SOURCE发出,用往返复SINK端发出的电压请求接着SOURCE端收到指令后,乂发出的指令:00011 00011 00011 L0001 10101 oniu 10101 01111 10010 00101 LU01 11110 01111 0111114解析结果:1 14 1- IX- o- 11 1A Cf 14 11 E m m 111 D o 111 G o yyyy o 1-00000100 s s s sooooooloooSGHe ad or SOP Accept DFP PD2-0 S

温馨提示

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

评论

0/150

提交评论