




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TYPE-C PD是Power Delivery的简称,代表着电力传输的一个通讯协议。一个简单的TYPE-C PD使用环境,需要下面几个设备构成: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。 图一可以从上图看出,01的编码并不以电平的变化为依据,而是按照脉宽来决定。BMC的最大频率达330KHz,单指令长度在1ms内。通过逻辑分析仪对波形的读取,我们可以看到未经BMC解码的原码 图二通过BMC从左到右按照脉宽解码后,我们可以得到一系列01的无序组合。通过对01组合的观察,可以看到从左开始有64对01的前导码,来作为数据的等待和除干扰。64对前导码后,才是需要关注的数据内容。通过BMC解码后,并去除前导码的数据,也并不是最终可以解析的数据。PD通信协议在这里增加了一个软编码,称为4B5B编码。即接收到的数据每5个二进制数据,需要经过一个4B5B编码表还原成正确的PD通信数据。看到这里,都可以想到无线电的加密工作了,但是PD官方资料给出的解释是4B5B是为了降低接收器的设计复杂度并且允许更加多样化的接收器设计。4B5B的解码表如下:图三根据图二我们可以做一个4B5B的解码例子:取出图二中引导码后,我们可以得到的数据是,00011 00011 00011 10001 10010,通过上述4B5B表格进行解码后我们得到最终的数据为:SYNC1-SYNC1-SYNC1-SYNC2-1。看到这里可能你有疑问,00011在表格中不是Reserved吗?是的,没错,4B5B还有个编码规则,就是从左到右记录数据时,需要将读取的数据倒过来编译,即00011要倒成11000。由于PD通信的流程复杂,且BMC解码后的数据往往长达上百位,人工编解码耗时耗力且容易出错,所以需要使用一些自制的电脑软件来进行辅助解码,于是才有了下面的自制解码软件。图四 该软件就包括了4B5B的解码,和数据内容的解析,能够快速的将BMC解码的数据内容转换成功能定义。PD协议内容繁多,主要包括以下流程:Power Negotiation 电压协商流程(电压升降压)Gotomin Operation Soft Reset 软件复位流程Hard Reset 硬件复位流程Cable ResetPower Role SwapFast Role SwapData Role SwapVCONN Swap Addition Capability and Status Security 密钥流程Firmware Update 固件升级流程Structured VDM 厂商自定义结构流程BIST PD协议时序测试流程今天我们就根据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表示接收指令成功。以上就是一个完整的升压指令流程。PD的通信指令(就升压来说)有两种方式一种方式是控制包,而另一种是带数据包。指令包格式如下:图五一个完整包结构包括引导码,SOP*使用场景码,Message Header功能码,Byte0-n数据码和CRC校验码,EOP结束码。如果Byte数据码没有,说明指令仅仅作为控制指令使用,没有数据内容,所以叫做控制包。有数据内容的叫做数据包,通常数据包里携带了要变化的电压值和电流值等信息。引导码:BMC解码后可以看到由64对01组成,主要为了进行接收缓冲。SOP*码:BMC解码后由20位的二进制数组成,通过4B5B解码后我们可以看到SOP由Sync1和Sync2的解码值构成。表明该指令是应用在Source与SINK之间。此处还有SOP,SOP的场景码,表明是Source与E-marker之间的场景指令。Message Header功能码:BMC解码后由20位的二进制数组成,经过4B5B解码后为16位二进制数据构成。Message Header通常包括:数据包还是控制包说明,是由SINK还是SOURCE发出的指令,PD的协议版本,如果是数据包还包含了有多少个数据包的信息。详细表格说明如下:图六其中,低四位二进制码比较重要,代表的是该PD指令的名字,比如说升压中用到的Source send CAPABILITY就是又这四位来定义的。其它指令的定义表如下:图七 在指令包的结构中,过了Message Header向右就是数据区域,通过4B5B的转换后,SOP是16个二进制位,Message Header也是16个二进制位,而数据区域,每个独立的数据块包括了32个二进制位。所以Byte0(32位)Byte1(32位).那么新的问题又来了,一条完整的指令包到底怎么判断包含了多少的数据块呢,这个时候就需要由Message Header来进行判断了。Message Header的12到14位表示1到7个数字,代表的就是指令包的数据数量,所以我们可以认为指令包的最大数据数为7。数据模块一般应用在Source send CAPABILITY,Sink send REQUEST等这样需要带电压电流的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解码后等于:00011 00011 00011 10001根据图三进行4B5B解码我们可以得到:SYNC1-SYNC1-SYNC1-SYNC2于是我们可以知道,该指令属于SOURCE与SINK之间的指令。我们接着往下分析:图十一Message Header码从左到右BMC解码后等于:10010 01110 10010 00101通过4B5B解码后为:0001 0110 0001 001015到0位为:0010 0001 0110 0001 根据图六可以得到以下信息:从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并查阅图七得到该指令名:Message Header指令,为电压协商协议的发起指令。数据指令过长过程不再详叙,用协议软件可以分析得到:图十二接下来我们用协议软件分析,速度会快很多,能够迅速掌握这个流程功能和异常:图十三此指令为上条Message Header的回复指令。接着下条指令为:图十四 此为SINK端发出的Sink send REQUEST指令,我们可以得到相关信息,已经SINK请求的电压等级。SOURCE端的回复指令:图十五从该指令信息中,我们可以知道该信息由SOURCE发出,用来回复SINK端发出的电压请求。接着SOURCE端收到指令后,又发出的指令:图十六 该指令信息为SOURCE发出的ACCEPT指令,由上述流程的介绍可以知道,该指令表明SOURCE端同意了SINK的电压升压请求,并开始做好升压的准备。接下来SINK端发的GOODCRC,如下:图十七 该指令为SOURCE发的第二条指令,所以SINK回复的GOODCRC中的MSGID这里开始计数到001;与此同时,SOURCE端的硬件已经进入升压模式,由于升压要一定时间,所以PD通信会有90ms多的延时,才迎来了第三条SOURCE指令,如果流程没有错的话就是 PS_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化工物流危化品运输安全考试试题(附答案)
- 机电工程系大专毕业论文
- 内涝管网疏浚与清理方案
- 美院美术学专业毕业论文
- 无人机远程操控与安全技术方案
- 农业经济高级经济实务经济师考试试题及解答参考(2025年)
- 房产知识发圈课件
- 汽车传动系的毕业论文
- 2025年税务师《税法一》模拟试题及答案
- 2025年法院司法辅助人员题库检测试题及答案
- 标准化管理意识培训课件
- 2025年幼儿教师资格保教知识与能力试题及答案
- (2025年标准)职工转岗协议书
- 2026年色彩流行趋势报告
- 2025年江苏劳动保障协理员招聘考试(劳动保障相关业务知识)历年参考题库含答案详解(5套)
- 电梯转让协议书范本
- 2025年火电电力职业技能鉴定考试-风力发电运行检修员历年参考题库含答案解析(5套典型题)
- 2025湖南省低空经济发展集团有限公司招聘12人(第二次)笔试参考题库附带答案详解(10套)
- 医患沟通技巧试题及答案
- 2025年电动洗胃考试试题及答案
- 警察警械使用培训课件
评论
0/150
提交评论