TYPE-C and DP alt model

TYPE-c是一种可以用于充电和数据传输的接口,既可以用于USB,也可以兼容DP,HDMI等音视频接口。

物理 pin

在这里插入图片描述
D+ D-:插座有两对,插头只有一对。用于usb2.0的慢速传输,连接的时候有且只有一对会连接,因此可以实现正插反插都可以,兼容USB2.0.
TX,RX:usb3.0的数据传输,四对差分pairs,因此可以很好兼容DP的传输。
CC:插座有cc1,cc2,插头只有CC,可以由此确认正插还是反插。另一个不连接cc的pin连接Vconn。source利用检测CC1,和cc2上的电压来确定是否接到了sink。
Vconn:插座的一个ccx会与插头的Vconn连接,用于cable和IC的供电(DP时的AUX供电)
Vbus:给设备提供power。USB PD模式:20v,5A.
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

CC1和CC2的配置—检测是否连接

source的CC1和CC2会配置上拉电阻Rp,sink的CC会配置下拉电阻Rd(Fix in 5.1kΩ)。
在这里插入图片描述
source根据cc1和CC2连到的电阻是Rb还是Ra确定是Sink还是给cable供电。
在这里插入图片描述Source根据CCX上的电压变化确定是否有Sink,Sink通过Vbus或者CC上的电压变化是否提供确定Source是否连接。
在这里插入图片描述

在这里插入图片描述

Vbus调整

查表Rp,Rd

Source的Rp可以动态调整,告诉Sink它可以提供多大的电流,这个与它的上拉电压有关
sink可以根据Rd来知道现在的电流是多大----->查表
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

问题–worse case

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DRP

一种可以通过开关切换Rp和Rd来决定此时是Source还是Sink的device(墙头草)
在这里插入图片描述

状态机

普通source和sink

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

DPR—Try.sink, Try.source

DPR有的一个中间状态,即它在刚检测时,想做对方的角色,并且会去尝试。
![在这里插入图片描述](https://img-blog.csdnimg.cn/57e226b03c324c18ad37f5b27d565916.png
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Vbus和ccx的电压

ccx的电压在一接上就会变化,但是Vbus的电压会等待一会儿才改变,这个时间与状态机的wait时间有关。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DP alt model

在这里插入图片描述
type c的connect可以使用在DP信号的传输中,可以调整pin脚的功能实现1,2,4lane的传输,并且能够在传输DP信号的同时传输USB2.0/3.0的信号。

pin assignment

在这里插入图片描述
pin脚对应关系为:RFU1和RFU2作为AUX的P和N(需要考虑正反接),TX和RX作为DP的lane,CC作为PD信号的传输,Vbus给device供电,Vcon给cable供电。具体的pin assignment,可以参考Displayport alt model的spec,会有对应的sink和source端的pin assignment。
在这里插入图片描述
在这里插入图片描述

因此对于线而言,每个Plug也支援多种Assignment,选用哪种Assignment需要进行选择
对于Plug而言,连接DPF_D的Plug表现为与DPF_D相同的Assignment,而连接UPF_D的Plug表现为与UPF_D相同的Assignment。

HPD and AUX

SUB作为AUX的沟通链路,在DP to type c的cable上,一般还会有专门检测AUX电压的IC,确定是否连接上。
在这里插入图片描述在这里插入图片描述
HPD shall be supported on the USB-C connector when operating in DisplayPort Alt Mode by way of USB PD Messages that carry DisplayPort status information. Two types of USB PD Messages may carry HPD – DisplayPort Status Update and Attention 。
HPD信号是通过PD芯片来产生和接收的。
在这里插入图片描述

PD

要使得type c能够调整到DP model,其中就需要PD沟通,一般DP–C的cable上都会有专门的PD ic。
PD的作用是DFP和UFP之间的供电选择、dp model的进入和调整、HPD信号的产生和传递。
需要说明的是,DFP的概念是host of data,意味着发起数据传输的主机,UFP是device of data,服从主机做数据传输的设备。
在这里插入图片描述
当sink和source连接时,首先要做的就是power contral,它会决定source端需要给sink提供多大的电压和电流。
这一章节因为我直接有做过一个ppt,所以直接把ppt的内容放上去,有需要讲解的地方后面会添注文字
一个完整的USB PD数据包由前导码(Preamble),使用场景码(SOP),功能码(MessageHeader),数据码(Byte0-n)、校验码(CRC)以及结束码(EOP)组成,如果数据部分为空,说明数据包仅作为控制指令使用,称为控制消息。有数据内容的称为数据消息,通常数据消息里包含了要变化的电压值和电流值等信息。整个USB PD数据包中,除了前导码不需要进行4b5b编码外,数据包的其他部分均需要进行4b5b编码,指定数据经过4b5b编码后,数据包中所有数据都需要使用BMC编码之后才能通过CC发送。
在这里插入图片描述
PD信号的开头会有SOP*,是为了区分这个沟通信号到底是给cable还是device的。
在这里插入图片描述
一个PD信号会有这些部分组成,其中preamble是有phy层产生的
在这里插入图片描述
前导码(Preamble)是为了锁定接收端,预示发送端将要有数据到达,前导码由64位交替的‘0’和‘1’组成,以’0’开始,以’1’结束
在这里插入图片描述
所有的USB PD传输流程,都是以SOP开始,SOP代表SOP,SOP’,SOP’’。不同的使用场景会用到不同SOP,每一个SOP也由不同的特殊编码组成。如SOP是由3个Sync-1和1个Sync-2组成,对应的5b编码可以在4b5b编码表中查到

在这里插入图片描述
支援SOP’的 cable plug 只能偵測並且回應 ordered set 是 SOP’的 packet
支援SOP”的 cable plug 只能偵測並且回應 ordered set 是 SOP”的 packet
功能码(Message Header)
功能码长度16-bits,通常包含数据包类型、端口角色(UFP/DFP)、PD协议版本等信息,功能码的组成如下图所示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

EOP可以用於提前終止數據包,例如 在發送硬復位信號之前。每次的传输,对方都应该回复一个:good CRC",来表示自己正确接收,然后才是正式的回复。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

控制消息

   当消息头中的数据对象字段数设置为0时,将消息定义为控制消息。控制消息仅由消息头和CRC组成。协议层发起消息(即接受消息、拒绝消息等)。控制消息类型在消息头的消息类型字段中指定(第4…0位)。  

在这里插入图片描述
在这里插入图片描述
GoodCRC :GoodCRC消息应返回消息的MessageID, 确认前一条报文已正确接收.

GotoMin : GotoMin消息只适用于那些在接收请求数据对象。它是对接收端口的一个指令,将其操作功率级别降低到最小.

Accept :在下列情况下,接受讯息是有效的回应:

Request、PR_Swap、DR_Swap、VCONN_Swap、FR_Swap、Soft_Reset、

Reject :在下列情况下,拒绝讯息是有效的回应:

Request、PR_Swap、DR_Swap、VCONN_Swap

Ping :以前用于USB Type-A和USB Type-B连接器,以确定在没有发生其他消息传递时接收器是否继续存在。

PS_RDY :由源发送表示电源以达到所需的工作状态。

Get_Source_Cap :得到源端功能,对方回应Source_Capabilities Message。

Get_Sink_Cap :得到Sink端功能,对方回应Sink_Capabilities Message。

DR_Swap :DR_Swap消息的接收者应通过发送Accept消息、Reject消息或Wait消息来响应。接收到Accept后,DFP,UFP交换角色。Reject不采取措施。Wait表示将来可能交换,暂时不采取操作。

PR_Swap :任何端口合作伙伴都可以发送PR_Swap消息来请求交换电源角色。返回消息为Accept消息、Reject消息或Wait。

VCONN_Swap :顾名思义,交换VCONN角色。消息发送后,对方执行。新的V CONN源将发送PS_RDY消息,指示它现在正在寻找VCONN。初始V CONN源在收到PS_RDY消息的最后一位EOP后,应停止在tVCONNSourceOff内寻找VCONN。

Wait :表示等待.

Soft Reset :当存在消息同步错误时,源或接收器可以发送一条Soft_Reset消息。软t_reset消息从协议层错误中恢复。接收放会恢复到PE_SNK_Ready和PE_SRC_Ready状态

Not_Supported :表示不支持。

Get_Source_Cap_Extended :请求关于端口源功能的附加信息。

Get_Status :请求端口合作伙伴的当前状态。源或接收器应返回一条状态消息作为响应

FR_Swap :

Get_PPS_Status:接收器发送Get_PPS_Status消息来请求关于源状态的附加信息

Get_Country_Codes :支持的[ISO 3166]中定义的alpha-2国家代码。

BMC编码

USB PD协议的数据包中,所有的数据都需要使用BMC进行编码,BMC编码属于物理层的操作,经过编码之后的数据通过CC线进行传送。
在这里插入图片描述

上图为BMC编码的示例,BMC编码规则是曼切斯特编码的一个版本,按照脉宽来设定的0和1,从示例中可以看到,在一个周期里有高低电平变化为1,否则为0。

USB PD协议编解码流程

以上详细介绍了USB PD协议数据包的格式和各个部分的功能,那么对于一个完整的数据包,发送端发送的流程是什么,接收端接收到数据之后会进行哪些处理呢。
在这里插入图片描述

上图为一个完整的数据包发送和接收的流程图,可以看到,在发送数据时,需要将经过CRC校验后的数据使用4b5b编码,再使用BMC编码才可以通过CC发送。在接收数据时,首先进行BMC解码,然后需要确定SOP的位置,因为SOP后的数据才是真正的有用的数据,再进行5b4b的解码,校验CRC。

介绍完理论,来看一下在实际的数据包。下面是使用逻辑分析仪抓取的USB PD协议通信数据包,使用上面介绍到的内容对这个数据包进行解析。
在这里插入图片描述

首先,BMC解码,根据BMC编码规则,识别出’0’和’1’,已经标注在图中。SOP识别,标注出的前20 bits为00011 00011 00011 10001,我们可以将这些数据理解为4组经过4b5b编码的数据,由于在传输数据时采用大端模式,所以需要将数据的高低位交换,转换之后为11000(Sync-1) 11000(Sync-1) 11000(Sync-1) 10001(Sync-2),也就是SOP(Sync-1、Sync-1、Sync-1、Sync-2)。同样的,SOP后的数据也需要先高低位交换,识别结果为Source_Capabilities,说明该消息是用来表明Source的供电能力的,那么数据包中也会包含数据码,分析的方法跟前面也是一样的。

在日常的工作中,其实并不需要手工去分析大量的USB PD的消息类型,目前大部分逻辑分析仪都可以对USB PD协议进行解析,另外也可以借助CY4500 EZ-PD™协议分析仪对USB PD通信逻辑进行分析,只有部分逻辑分析仪无法识别的内容,才需要我们根据协议内容去进行分析,这些内容大部分是USB PD芯片厂商定义的调试消息类型。

以上详细介绍了单个USB PD数据包的构成,以及如何去识别数据包的内容,DFP和UFP通过数据包进行通信,就是USB PD协议认证协商的过程。
0x03 USB PD协议认证协商

我们知道,不同的设备需要不同的充电电压、电流,手机需要9V/2A,平板需要15V/2A,电脑需要20V/3.25A,那么电源是如何实现根据设备需求提供定制化输出的呢?

支持USB PD协议的设备,在与电源连接时,会进行认证和协商,协商内容包括电源可提供的充电能力,设备支持的充电功率等。

VDM

比较重要的一部分,是DP中的沟通主体。
在这里插入图片描述
在这里插入图片描述
SVID,每个公司有专门的固定值,每次的传输的都必须是一样。structure VDM Header是为了表示这个命令是什么,也能做ack/neck等。
不同的command,后面跟的东西也是不同的,在dp alt model中也有对应的table表示。
message header后的7个bytes的VDO,第一个会作为structure VDM header,所以后面实际有效的data只有6个bytes
在这里插入图片描述
这个是为了知道了解情况和cable和port的能力。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

FLOW

在这里插入图片描述
确定DFP和UFP
在这里插入图片描述
DFP发Discover model,UFP回复自己支持的capabilities,再由DPF决定是否进入DP model。
在这里插入图片描述
进入DP model后,做一些调整,并且有一些HPD status的传输。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

示例

在这里插入图片描述
在这里插入图片描述
后续结束后会一直发attention命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值