《TYPECPD升压协议全解析.docx》由会员分享,可在线阅读,更多相关《TYPECPD升压协议全解析.docx(18页珍藏版)》请在第一文库网上搜索。
1、TYPE-CPD升压合同全解析PD是PoWerDe1iVery的简称,代表着TYPE-C电力传播的一种通讯合同。一种简朴的TYPE-CPD使用环境,需要下面几种设备构成:HOSTsDEVICECAB1E(即:主机,机,EMARKER)PD的合同书重要的内容集中在: PD合同的BMC编码规则; PD合同的4B5B解码; PD合同的通信流程; PD合同的通信指令构造; PD合同的通信内容解析;PD合同独立与USB合同之外,但由于TYPE-C口的兼容特性,可以让PD合同、QC合同、MTK合同、FCP合同等快冲合同熔于一炉。PD的物理层由发射模块和接受模块构成,由于CC是单线合同,因此所有通信都是半双
2、工时。BMC编码规则是曼切斯特编码的一种版本,按照脉宽来设定的0和1。010101010001100011Dtan-1J-1J-1J_III1BMC.1RrU_1Rnr1mr1T1RmT图一可以从上图看出Q1的编码并不以电平的变化为根据,而是按照脉宽来决定。BMC的最大频率达330KHz,单指令长度在ImS内。通过逻辑分析仪对波形时读取,我们可以看到未经BMC解码的原码X.48ms1.Sms1.S2ms1.S4ms1.S6ms1.S8msi.6msyJr1FfW2Jfr1jy1rk11fMrtftf12J1ft1ft11rWW2J图二通过BMC从左到右按照脉宽解码后,我们可以得到一系列01时无
3、序组合。通过对01组合的观测,可以看到从左开始有64对01的前导码,来作为数据的等待和除干扰。64对前导码后,才是需要关注的数据内容。通过BMC解码后,并清除前导码的数据,也并不是最后可以解析的数据。PD通信合同在这里增长了一种软编码,称为4B5B编码。即接受到的数据每5个二进制数据,需要通过一种4B5B编码表还原成对时的PD通信数据。看到这里,都可以想到无线电时加密工作了,但是PD官方资料给出的解释是4B5B是为了减少接受器的设计复杂度并且容许更加多样化的接受器设计。4B5B时解码表如下:Tab1e5-14b5bSymbo1EncodingTab1eName4b5bSymbo1Descrip
4、tion00000I111Ohexdata01000101001hexdata12001010100hexdata23001110101hexdata34010001010hexdata450101O1O11hexdata560110OHIOhexdata67O111O1111hexdata78100010010hexdata89100110011hexdata9A101010110hexdataAB101110111hexdataBC110011010hexdataCD1101nonhexdataDE1110I11OOhexdataEFI111I11O1hexdataFSync1Kcode1
5、10Startsynch#1Sync2Kcode101Startsynch#2RST1KcodeOO111HardReset#1RST2KcodeI1oo1HardReset#2EOPKcodeO11O1EOPEndOtPacketReservedError00000Sha11notbeusedReservedError00001Sha11notbeusedReserredError00010Sha11notbeusedReser,edError00011Sha11notbeusedReservedError00100S1w11notbeusedReservedError00101Sha11n
6、otbeusedSync3K-code00110Startsynch#3ResertedError01000Sha11notbeusedReserredError01100Sha11notbeusdReser,edError10000Sha11nocbeusedReservedErrorI1111Sha11notbeused根据图二我们可以做一种4B5B的解码例子:取出图二中引导码后,我们可以得到的数据:Ooo11OOO11000111000110010,通过上述4B5B表格进行解码后我们得到最后的数据为:SYNC1-SYNC1-SYNC1-SYNC2-1o看到这里也许你有疑问QOO11在表格
7、中不是Reserved吗?是啊,没错,4B5B尚有个编码规则,就是从左到右记录数据时,需要将读取的数据倒过来编译,即OOO11要倒成1IOOOo由于PD通信的流程复杂,且BMC解码后的数据往往长达上百位,人工编解码耗时耗力且容易出错,因此需要使用某些自制的电脑软件来进行辅助解码,于是才有了下面的自制解码软件。QPD数35解析1001000101O111110111O11111100110010O111101001O111101001O1O11O1111O11O101010O1111O1111O1111数量K解析结果:syn1syn1syn1syn200010110000100100000I11
8、100001001000100001000000010001100ISGHeadexSOPSourceCapDFPPD2.0SOURCEIISg1d:000DataO1ODataTran2400mA5000V2000bA14800VOmAObV1fj清除|图四该软件就涉及了4B5B的解码,和数据内容的解析,可以迅速时将BMC解码的数据内容转换成功能定义。PD合同内容繁多,重要涉及如下流程:PowerNegotitio电压协商流程(电压升降压) GotominOperatio SoftReset软件复位流程 HardReset硬件复位流程 CabIeReset PowerRo1eSwap Fas
9、tRo1eSwap DataRo1eSwap VCONNSwap AdditionCapabi1ityandStatus Security密钥流程 FirmwareUpdate固件升级流程 StruetredVDM厂商自定义构造流程BISTPD合同时序测试流程今天我们就根据PowerNegotiation解说PD电压升降时流程构造。PowerNegotiation流程发生在Source与Sink之间,在这里SoUrCe可以是适配器,可以是车充,也可以是移动电源。Sink可以是任何支持TyPe-CPD的受电端。PowerNegOtiatiOn的合同流程涉及如下PD指令:-SourcesendCA
10、PABI1ITY供电能力指令(涉及内容:具有哪几种电压值和电流值)*SiksendREQUEST需电祈求指令(涉及内容:选用哪种电压和电流值)-SourcesendACCEPT批准需电祈求指令(涉及内容:通过对比需电在自己的供电范畴内) SourcesendPS_RDY完毕需求指令(涉及内容:已经成功进行能电压变化) GOODCRC指令接受通过指令在实际应用中这些指令是怎么操作时呢,接下来我来具体述说:首选Source端工作在TYPE-C的CC模式5V3A检测模式下,一旦检测到有SINK受电端接入,便开始输出5V给SINK端。而这时在CC线上,SOUrCe开始不间断发送SoUrCesendCA
11、PABI11TY指令,SINK端接受至IJSOUrCeSendCAPABI1ITY指令后,判断PD通信数据符合合同规定,便答复GOODCRC表达已经成功接受到数据,接着SINK会根据Sorce端可以提供的电压进行选择SNK选择好合适的电压电流便对SoURCE进行供电祈求,于是S1NK发出SinkSendREQUEST进行需电祈求指令。SoUrCe接受到SinkSendREQUEST后,会给S1NK答复GOODCRC,然后对SinksendREQUEST指令祈求的电压进行校对,如果符合Source的供电能力,Source便对SINK发SoUrCesendACCEPT指令,表白批准SINK的端电压
12、祈求。SINK接受到SoUrCe发送的ACCEPT指令后,答复GOODCRC。Source接受到S1NK发出的GOoDCRC后,便开始进行电压调节,电压调节成功后,便发出SourcesendPS_RDY表达已经调节电压成功,SINK收到后,便答复GOODCRC表达接受指令成功。以上就是一种完整的升压指令流程。PD的通信指令(就升压来说)有两种方式一种方式是控制包,而另一种是带数据包。指令包格式如下:Preamb1e(Iraininforreceiver)SOP(StartOfPacket)MessageHeaderByteOByte1Byten-1BytenEOP(EndOfPacket)图五
13、一种完整包构造涉及引导码,SOP*使用场景码,MessageHeode功能码,ByteO-n数据码和CRC校验码,EOP结束码。如果Byte数据码没有,阐明指令仅仅作为控制指令使用,没有数据内容,因此叫做控制包。有数据内容的叫做数据包,一般数据包里携带了要变化的电压值和电流值等信息。引导码:BMC解码后可以看到由64对01构成,重要为了进行接受缓冲。SOP*码:BMC解码后由20位的二进制数构成,通过4B5B解码后我们可以看到SOP由SynC1和SynC2的解码值构成。表白该指令是应用在SoUrCe与S1NK之间。此处尚有SOP,、SOP,的场景码,表白是SoUrCe与E-marker之间的场
14、景指令。MeSsageHeQder功能码:BMC解码后由20位的二进制数构成,通过4B5B解码后为16位二进制数据构成。MessageHeader一般涉及:数据包还是控制包阐明,是由SINK还是SOURCE发出的指令,PD的合同版本,如果是数据包还涉及了有多少个数据包的信息。具体表格阐明如下:图六其中,低四位二进制码比较重要,代表的是该PD指令的名字,例如说升压中用到的SoUrCesendCAPAB11ITY就是又这四位来定义时。其他指令的定义表如下:Bits4.0TypeSentbyVa1idStartofPacket00000Reserved00001Source_Copabi1itiesSourceorDua1-Ro1ePowerSOPon1y00010RequestSinkon1ySOPon1y00011HISTTester,SourceorSinkSOP*00100Sink-Capabi1itiesSourceorDua1-Ro1ePowerSOPon1y