ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:397.44KB ,
资源ID:4494171      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4494171.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(TYPECPD升压协议全解析讲解.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

TYPECPD升压协议全解析讲解.docx

1、TYPECPD升压协议全解析讲解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是单线协议,所以所有通信都是半

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

3、个二进制数据,需要经过一个4B5B编码表还原成正确的PD通信数据。看到这里,都可以想到无线电的加密工作了,但是PD官方资料给出的解释是4B5B是为了降低接收器的设计复杂度并且允许更加多样化的接收器设计。4B5B的解码表如下:图三根据图二我们可以做一个4B5B的解码例子:取出图二中引导码后,我们可以得到的数据是,00011 00011 00011 10001 10010,通过上述4B5B表格进行解码后我们得到最终的数据为:SYNC1-SYNC1-SYNC1-SYNC2-1。看到这里可能你有疑问,00011在表格中不是Reserved吗?是的,没错,4B5B还有个编码规则,就是从左到右记录数据时,

4、需要将读取的数据倒过来编译,即00011要倒成11000。由于PD通信的流程复杂,且BMC解码后的数据往往长达上百位,人工编解码耗时耗力且容易出错,所以需要使用一些自制的电脑软件来进行辅助解码,于是才有了下面的自制解码软件。图四 该软件就包括了4B5B的解码,和数据内容的解析,能够快速的将BMC解码的数据内容转换成功能定义。PD协议内容繁多,主要包括以下流程:Power Negotiation 电压协商流程(电压升降压)Gotomin Operation Soft Reset 软件复位流程Hard Reset 硬件复位流程Cable ResetPower Role SwapFast Role

5、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

6、 send CAPABILITY 供电能力指令(包含内容:具有哪几种电压值和电流值)Sink send REQUEST 需电请求指令 (包含内容:选取哪种电压和电流值)Source send ACCEPT 同意需电请求指令 (包含内容:经过对比需电在自己的供电范围内)Source send PS_RDY 完成需求指令 (包含内容:已经成功进行能电压改变)GOODCRC 指令接收通过指令在实际应用中这些指令是怎么操作的呢,接下来我来详细述说:首选Source端工作在TYPE-C的CC模式5V3A检测模式下,一旦检测到有SINK受电端接入,便开始输出5V给SINK端。而这时在CC线上,Source

7、开始不间断发送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发S

8、ource send ACCEPT指令,表明同意SINK的端电压请求。SINK接收到Source发送的ACCEPT指令后,回复GOODCRC。Source接收到SINK发出的GOODCRC后,便开始进行电压调节,电压调节成功后,便发出Source send PS_RDY表示已经调整电压成功,SINK收到后,便回复GOODCRC表示接收指令成功。以上就是一个完整的升压指令流程。PD的通信指令(就升压来说)有两种方式一种方式是控制包,而另一种是带数据包。指令包格式如下:图五一个完整包结构包括引导码,SOP*使用场景码,Message Header功能码,Byte0-n数据码和CRC校验码,EOP结

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

10、essage Header通常包括:数据包还是控制包说明,是由SINK还是SOURCE发出的指令,PD的协议版本,如果是数据包还包含了有多少个数据包的信息。详细表格说明如下:图六其中,低四位二进制码比较重要,代表的是该PD指令的名字,比如说升压中用到的Source send CAPABILITY就是又这四位来定义的。其它指令的定义表如下:图七 在指令包的结构中,过了Message Header向右就是数据区域,通过4B5B的转换后,SOP是16个二进制位,Message Header也是16个二进制位,而数据区域,每个独立的数据块包括了32个二进制位。所以Byte0(32位)Byte1(32位

11、).那么新的问题又来了,一条完整的指令包到底怎么判断包含了多少的数据块呢,这个时候就需要由Message Header来进行判断了。Message Header的12到14位表示1到7个数字,代表的就是指令包的数据数量,所以我们可以认为指令包的最大数据数为7。数据模块一般应用在Source send CAPABILITY,Sink send REQUEST等这样需要带电压电流的PD指令中。 数据模块右边就是一个32位的数据校验区域,也称作CRC校验。CRC校验是PD通信协议中独特的一套校验方式,为了保持数据的完整与纠错,整个PD指令任何一个位变动,都会造成CRC改变。 经过了引导码,SOP码,

12、MessageHeader,data码,CRC码后,接下来就是EOP码即结束吗,在4B5B中我们可以看到接收到01101的BMC编码,即代表PD指令包全部接收完毕。下面我们就实际做一次PD协议分析:首先准备好待测试的PD适配器,PD数据线(两头都是TYPE-C的那种),PD测试架,逻辑分析仪。然后将插拔过程中PD的数据流程通过逻辑分析仪读取出来如下:图八 首先我们要做的就是PD指令的BMC解码,将脉冲长短变化成二进制数据,然后通过协议分析软件进行代码解析,为了更好的讲解,我们先人工分析一条指令。图九引导码由64位二进制的01组成,这一段可以直接略过。图十SOP*码从左到右BMC解码后等于:00

13、011 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指

14、令为一个回合)从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端的回复指令:图

15、十五从该指令信息中,我们可以知道该信息由SOURCE发出,用来回复SINK端发出的电压请求。接着SOURCE端收到指令后,又发出的指令:图十六 该指令信息为SOURCE发出的ACCEPT指令,由上述流程的介绍可以知道,该指令表明SOURCE端同意了SINK的电压升压请求,并开始做好升压的准备。接下来SINK端发的GOODCRC,如下:图十七 该指令为SOURCE发的第二条指令,所以SINK回复的GOODCRC中的MSGID这里开始计数到001;与此同时,SOURCE端的硬件已经进入升压模式,由于升压要一定时间,所以PD通信会有90ms多的延时,才迎来了第三条SOURCE指令,如果流程没有错的话就是 PS_RDY指令:用PD协议分析软件的分析如下:图十八指令流程进行到这里,说明SOURCE端已经成功将电压升压到SINK端请求的电压。接下来的SINK端的GOODCRC就不累赘了。以上叙述就是一个完整的电压升压流程 PD通信的速率300KHz,且通信时的电压在1V上下,所以在实际的软硬件设计中,都要针对上述特性做一些针对性的调整。 目前开发的SINK端PD测试架,与配合AC-DC做的PD协议芯片都是以上述理论为蓝本做的相关应用。 两款样机的硬件设计请见PD硬件,软件设计篇。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1