前言
- 最近大师匈在ZR 的FAE朋友段某和某康等人的帮助下完成了PD快充,Only Source端的软件,这个庞大的工程。目前来看兼容性还不错,测过的笔记本手机都没什么问题。大师匈对他们所拥有的技术,只能仰望。。。。感谢党,让我认识了这些NB的人。
大师匈用的是buck芯片是ZR的SW3526,安森美的FUSB302物理层芯片,另外加STM32F103的MCU。
大师匈说正事
上一章讲到type-c连接,那么连接上该干什么呢,聪明的小老板就想到了,我们要开始画cang 老师了(执行PD策略)。
在连接上之后作为source应该是要检测Emark线“5A线”,或者广播source cap。作为Sink的应该是等待接收Source cap,并进行Request。
首先我们要知道PD协议的数据格式是什么样子的:
如上图,只有message是协议层的东西,其他的都是物理层的数据。
PD物理层
大师兄理解的物理层:我们要画仓老师,那么必须有画板和画笔,那么画板就是用来放数据,组装数据,传输数据,画笔就是用来编码的。
物理层负责这些内容,包括对数据的组装,就是把message拿过来,加上前导码,SOP,CRC,EOP等,然后进行编码,传输出去,那么接收数据就是相反的,解码,校验,然后把message拿出来。
在做软件或者学习的时候,物理层最为关键,需要明确知道的就是SOP了。
SOP
SOP:start of packet。包的开始。
我们可以在PD标准的关键字解释部分,第2.5章,还有5.6.1.2能看到对SOP的介绍。但是我知道很多同学对英文不太感冒。所以在这里做一个通俗的解释。说出我的理解。
SOP分三种:
首先SOP,SOP’,SOP’'都是表示一个数据包的开始。
首先从关键字那里获取到的信息:
SOP就是与端口进行交互,那么我们需要SOP类型;
SOP‘和SOP’‘都表示与线缆cable plug进行数据交互的时候需要类型。
然后是标准内2.5和5.6.1.2的专题解释:
SOP的作用
SOP就是类似IIC通信时的地址一样,一个主机下,挂多个从机,那么需要地址来区分,主机是和要和谁进行通信。
也可以说某一个土豪有100个美女在一栋楼上,那么土豪要根据门派号来找他们,决定晚上和哪个美女嘿咻嘿咻。
SOP对于PD来讲就是IIC的设备地址,或者土豪的门牌号。
SOP
SOP指的是Source和sink进行通信,SOP’/SOP’'都表示要和线缆进行通信的。分开三类,或者说三个地址,这样就能避免冲突了。相当于一个总线仲裁机制。
SOP只能是端对端(Source和sink)进行通信,线缆不能识别这类消息。
SOP’/SOP’’
SOP’/SOP’‘只能是某一端(Source/Sink)与线缆进行通信的数据类型。而且需要注意的SOP‘/SOP’‘类型的数据只能是Source或者Sink发起的,线缆只能被动响应。那具体是由source发起还是sink发起,这就要看是source给线缆供电的还是sink给线缆供电(Vconn的电源),如果Vconn的电源是source端,那么SOP’/SOP’'类型的数据只能由source发起,线缆识别并回应,sink端不能做任何响应动作。
只有Emark线才具备这种通信能力。
那么还有的同学注意到那为什么分为SOP’和SOP‘’呢。
大师匈的理解:标准文件内说明一个EMARK线必须具备SOP‘类型的通信能力,但是SOP’‘就不一定了。另外我们都知道Emark线或者说PD是基于俩端都是C口的线说的,那么这个SOP’/SOP‘’分别在这俩端,而且这个不会变动,就是说硬件固定死了,一头SOP‘,另一头是SOP’’(或者没有)。
还有一个信息就是说:当SOP’类型的PD数据包在与其他线缆插头进行通信的时候,可以使用SOP’'的数据包与另外一个线缆插头进行通信,避免冲突。看下图:
大师匈主要做的是电源相关的内容,没有关注PD对数据传输的处理。所以个人感觉这个SOP‘’就是备胎。
大家有什么不同意见,可以留言讨论或者私信讨论。扣扣QUN柒壹柒柒贰零贰壹捌。
另外再附一张图,PD标准里面的,可以帮助大家理解。
从上图看的话,就是说SOP‘是Vconn source与线缆的一头通信,SOP’‘是与另外一头通信的。但大家注意俩点就是,1、SOP’/SOP’‘不分近端远端(图上看SOP’是Vconn source的近端,SOP’'是远端);
2、很多Emark线是可能不支持SOP’‘的。
哇,12点了,今天写的好像有点多,下一篇大师匈会开始讲PD协议层的内容了。
今天的分享就到这里,希望大家能关注,点赞,评论一哈。。。。不要白嫖。
QUN柒壹柒柒贰零贰壹捌
QUN柒壹柒柒贰零贰壹捌
来源:oschina
链接:https://my.oschina.net/u/4353003/blog/4499970