赞
踩
首先,知道PD协议是通过C1C2这两个线进行通信的,是半双工的也就是通信可以从设备1到设备2也可以从设备2到设备1,但是同一时刻通信线上只有一个方向的传输。
其次,知道PD协议的一个数据的构成:(要注意看图片,图片内容多,多看看)
Preamble序言:这是物理层提供的,不使用4b5b编码,这个编码就是把4位对应成5位的数据传输,然后又解码成4位的数据给设备(具体为什么这样我也不知道)然后会有一个表格对应,可以看PD的手册,这个看不懂我感觉也没事。
SOP前导码:也是物理层提供的,这个就是用4b5b的,通信的时候我测到有SYNC-1有三个然后又接一个SYNC-2,这个SYNC1,2,就是那个4b5b符号编码表,对应的名字罢了,我截个表。
可以看到有开始同步,还有硬件重置。
知道SOP后还有一个Message。然后要知道PD协议的message的种类很多,我截个图。
、
然后我现在了解测到的,主要就是图里的这几个。
Message会有一个HD,就是header头每个message都要用hd开始,消息头包含有关消息和PD端口功能的基本信息。然后有三种情况,就是有的就是HD然后后面没有data,类似下面的good crc的信息,然后还有就是带一个,我截个图吧
就是这三种,都是可以正确的形式来的,然后后面再带你的信息。
了解了前面的preamble,sop,messagehd,data,会有一个crc校验会对前面的信息有一个校验码放在后面,方便后面的设备校验。
最后还有有一个EOP,好理解,就是结束包。
那么每次传输的两个设备大概会发些啥呢?
每次就是从电脑(或者其他手机啥的)发送一个请求给充电的,然后充电的就要检测一下CRC校验也就是验证信息,给一个回复。当然反过来充电器发然后给手机,手机也得回,这个通信。这算是一组,可以看图:
当然正式握手时候,一般是:
会先有个source CAP的message,就是关于这个充电器或者设备支持多少V多少A的电压,然后设备检测回复GOOD CRC,表示接收。
接着大概几毫秒后设备发送一个请求,充电设备回复一个GOOD CRC:
然后充电设备再回复一个接收accept,如下图,电脑设备回复good crc。那么到此!就开始按照特定的需求传输电了。
然后到达稳定充电后,有一个PS_RDY Message:
以表明其电源已达到所需的运行状态
okk!那么到此就算是稳定传输了。
那如果是充电设备并不支持所要求的,比如电脑要求要有5A的电流,但充电设备不支持,那么,按照PD协议,充电设备就会回复一个reject
好的,以上就是一个简单大概的理解,具体的一些16位的数据代表什么信息就我再看看。
补充一个抓波形的连接方式:
再补充一下PD支持的电压电流:
接着补充:
1.4b5b的作用是什么呢,是保证这个传输的电平没有连续的1111或者连续的0000,要有一个电平的反转,可以更好的把控时钟。大概是这样
2.补充message每一位对应的每一个意思是什么。前面也说了每次传输都需要一个Message Header,这个HD有16bit的信息,那么读取这个HD就知道了是什么种类的Messager。
这个左边这一栏,对应Name就知道这每一位对应的是什么意思了。然后要注意的是,这边测得的波形左边是低位,右边是高位。比如:
看!这里就是0x06是低位,翻译就是05a6。然后这代表什么意思呢?(注意看那个表格!)
首先要把这个波形数据翻译成2进制,也就是对应上面16个bits,0000 0101 1010 0110 。拿到这个以后,然后就可以看表格对应了。要完全解码消息类型,首先检查“数据对象数”字段,也就是number of data object,看一下14...12位,以确定消息是控制消息还是数据消息,从右往左数也就是000, 也就是后面跟着的数据包是0个,那么就可以再去在控制消息的表里面去对应,如果不是0就去对应的数据消息中找到特定的消息类型。
14...12位是000,对应0,是控制信息。再看4...0这5位00110,就是6,去控制信息表格找对应的
看!这不就对应上了上面波形图里的红色条,写的PS_RDY
如果是数据信息,就是看下面这个表。
然后其余的HD的意思,对应的也可以通过同样的方式去查找了。
在实际当中,你了解了HD的意思,就很有帮助,比如你知道这一组是数据信息里面的Source_Capabilities。然后有5个number of data subject,你再看后面的具体的data数据的时候,就要去找Source_Capabilities的表格,去翻译对应的数据。举个例子:
通过HD:61a1(这边可以自行换成2进制对一下表格),就知道这个有5个数据,然后是数据信息代表Source_Capabilities。
去Source_Capabilities找表格,呐就是下面的表格,可以翻译一下描述就知道哪几位组合是什么意思了。
比如上面那个例子0002d0c8,这个啥意思,就看一下B19...10位,我看看,0000 0000 0000 0010 1101 0000 1100 1000,从右到左开始数10-19位,1011 0100就是,转成10进制就是180,写着50mv为一个单位,50*180就是9000mv也就是9v这就对上了!同理电流也是一样,可以自行翻译了。
那么你拿到一个波形就可以通过以上的方式查表进行翻译信息了,也知道了在通讯过程中从请求到稳定传输的过程。
3.但是在实际运用过程中,他会要求有一定的规范,比如每次发送信息的时间是控制在多少ms以内要给予回复,这个是有严格的要求的,每个波形之间的高低电平是多长时间,这个就更细致了,我看看再补充。
这个表在PD手册的351页,可以去看看,汇总了很多计时器的值,对于每个定时器的值应该在规定的范围内的值。
譬如:
这里就告诉我们这个从vsafe0v到5v的这个时间是最大275ms,这个也蛮重要,实际运用中要检测,是否符合规范。
还有这边这个
拔掉后,Vbus电压关闭的时间<650ms,
C口输出从最高压到5V的时间<275ms
这边测得Vbus电压关闭的时间为0.58*1s等于580ms小于650ms符合规定
0v升到5v的时间是100ms小于275ms符合规定
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。