Type C 上的CC信号解析


Type C的CC信号识别应用
一、Type C口的功能介绍
目前市面上最主流的充电和数据传输接口就是type C接口,该接口标准是有24个pin,正反插各占12个pin,中心对称设计,可以识别正反插,PD充电最高可以支持到100W—120W,USB传输最高可以支持到USB3.1;
Type C的CC信号识别应用

在这里插入图片描述
二、Type C口CC检测识别介绍
2.1.1 CC识别检测
先介绍插入识别的概念
DFP—Downstream Facing Port,通常指主设备,Host端。
UFP—Upstream Facing Port,通常指从设备,Device端。
DRP—Dual Role Port,通常指手机,即可以是主设备又可以是从设备。
在建立连接之前,DRP的角色在DFP和UPF之间切换。如果两个DRP连接,最先随机到哪种角色后,开始建立连接,之后可以通过USB协议协商进行动态主从角色切换。
2.1.2 为什么要进行CC的检测
虽然USB Type-C插座和插头的两排管脚对称,USB数据信号都有两组重复的通道,但主控芯片通常只有一组TX/RX和D+/-通道(某些芯片有两组TX/RX和D+/-通道)。

由于USB2.0的数据率最高只有480Mbps, 可以不考虑信号走线的阻抗连续性,USB2.0的D+/-信号可以不被MUX控制而直接从主控芯片走线,然后一分二连接至USB Type-C插座的两组D+/-管脚上。

但USB3.0或者USB3.1的数据率高达5Gbps或者10Gbps,如果信号线还是被简单地一分二的话,不连续的信号线阻抗将严重破坏数据传输质量,因此必须由MUX切换来保证信号路径阻抗的一致性,以确保信号传输质量。

下图一中右侧所示的MUX从TX1/RX1和TX2/RX2中选择一路连接至主控芯片,而这个MUX就必须被CC管脚控制,实现主从设备切换时的数据传输方向,也就是当主从角色转换时,需要CC脚来控制。

在这里插入图片描述
在USB2.0应用中,无需考虑CC方向检测问题,但USB3.0或者USB3.1应用中,必须考虑CC方向检测问题。

对于UFP,比如U盘,移动硬盘内部不需要CC逻辑检测,因为它只有上行的角色,只有一对USB2.0或USB3.0信号,如下图
在这里插入图片描述
2.1.3 CC的检测原理
2.1.3.1 CC是否翻转的原理
Type C 的线缆中CC信号有两根线,CC1和CC2,大部分USB线(不带芯片的线缆)里面只有一根CC线,DFP可根据两根CC线上的电压,判断是否已经插入设备。通过判断哪根CC线上有下拉电阻来判断方向,下图3的说明已经非常清晰。也就是:
如果CC1引脚检测到有效的Rp/Rd连接(对应的电压),则认为电缆连接未翻转。
如果CC2引脚检测到有效的Rp/Rd连接(对应的电压),则认为电缆连接已翻转。
在这里插入图片描述
“有效的Rp/Rd连接”指在CC上形成了有效的电压。
从DFP的角度看,下图4列出了所有可能的连接状态:
在这里插入图片描述
2.1.3.1 DFP的上拉电阻Rp与UFP的Rd以及数据线上的Ra
DFP的CC1和CC2信号上都必须有上拉电阻Rp,上拉到5V或3.3V;或者CC1和CC2都用电流源上拉。最终的目的是在插入后,能检测到CC1或CC2上的电压,进而判断是否翻转以及DFP的电流能力。如下图5是所有可能的配置。可以选择右边三列中的任何一列作为上拉方式,比如Fairchild的FUSB300就是用330uA上拉,TI的TUSB320LAI用的是80uA的上拉,不同的上拉方式在CC引脚上形成的电压不同,不同的电压对应不同的电流能力。
在这里插入图片描述
UFP的CC1和CC2管脚都要有一个下拉电阻Rd到GND(或者使用电压钳位)。Rd的处理方式如下图6,这个表的最后一列是电流源连接至的电压,结合上图5我们可以算出图7的电压和电流对应关系。
在这里插入图片描述
在这里插入图片描述
CC检测芯片会检测这个电压,通过判断电压范围来决定下一步操作。下图8是CC管脚上不同的电压对应的DFP能提供的电流能力。第二列列出的每一种电压范围,都分别覆盖了上图计算出的电压。Rp/Ra的计算是同理的。
在这里插入图片描述
数据线上的Ra:
带电子标签的线缆,其中一个CC管脚被更名为VCONN,用于给电子标签芯片供电。这个VCONN管脚与GND之间需要一个Ra电阻,这个电阻值范围是800Ω~1.2KΩ。

2.1.3.2 Vconn电源
VCONN的允许范围是4.75V~5.5V,要求供电能力是1W。默认情况下DFP提供这个电源。如果两个DRP连接,则双方可以通过USB PD协议协商来交换VCONN供电方。
支持PD的USB3.0接口均需支持VCONN,可以通过下面两种方式之一提供VCONN电源。

1、如果其中一个CC引脚上检测到有效的Rp/Rd连接,则VCONN电源可以接到另一个对应的CC引脚。
2、如果其中一个CC引脚上检测到有效的Rp/Rd连接,先检查另一个CC引脚是否也有Rp/Ra连接,然后再提供VCONN。
3、先检测是否有Ra存在,如果有说明需要Vconn供电,此时再提供Vconn。检测过程不需要Vconn存在。
注意,每一个CC引脚内部都有一个开关,轮训CC和VCONN功能,下图9是一个典型的连接方式:
在这里插入图片描述
CC内部电压和电流框图示意图10:
在这里插入图片描述
手机是即可以做DFP,又可以做UFP,可以来回切换。DRP在待机模式下每50ms在DFP和UFP间切换一次,这种设备的CC1和CC2端在互连以前处于高低电平交替变换的状态,一旦连接发生,两者的CC端都会发生改变,如下图11所示,手机在通常没有连接外设的情况下CC信号是在不断的toggle,当两个设备的线缆插入后,会分配主从设备关系。
在这里插入图片描述
两个手机在连接过程中,主从设备可以发生转换,比如上图中的主从设备发生角色转换的波形就如下图12,该过程只需要前面主从设备任何一方发出角色转换的请求即可实现。
在这里插入图片描述
2.2.1 PD充电时CC识别检测原理
当电缆接通之后,PD协议的SOP(Start of Packet)通信就开始在CC线上进行,以此来选择电源传输的规格,此部分由Sink端向Source端询问能够提供的电源配置参数(5V/9V/12V/15V/20V)。如下波形为SINK 控制器申请一个9V电压输出的例子。
在这里插入图片描述
具体流程如下:
A. SINK端发起SOP,申请获取Source能提供的规格资料
B. Source回复能提供的规格列表
C. SINK回复选择的电压规格,并带上所需要的电流参数,并发出相应的请求
D. Source接受请求,并且把VBUS由5V抬升到9V
E. 在电压变化期间,SINK的电流会保持尽可能小,Source端VBUS到达9V并稳定之后,会发出Ready信号
F. SINK端电流逐步抬升,若SINK需要降低电压,会重复以上过程
需要注意的是,在电压下降期间,Source为了让电压快速降低,Source会打开放电电路,达到额定值之后,Source会等待一段时间,电压稳定之后再发出Ready信号给SINK。这种沟通方式的好处就是能确保任何电源的变化都能在SINK和SOURCE的规格范围内,避免出现不可控情况。PD协议的通信编码为Bi-phase Mark Coded (BMC),通过CC脚进行通信,如下图14。
在这里插入图片描述
2.2.2 BMC码介绍
BMC码是一种单线通信编码,数据1的传输,需要有一次高/低电平之间的切换过程,而0的传输则是固定的高电平或者低电平。每一个数据包都包含有0/1交替的前置码,起始码(SOP),报文头,数据位,CRC以及结束码(EOP),如图15.
在这里插入图片描述
下图16展示的是一次要求总线电压升高的PD通讯的波形从密集至展开的样子,从最后展开的波形中可以看出前置码的序列。
在这里插入图片描述
BMC通讯数据可以用USB PD解码器进行解码,Ellisys的EX350分析仪就是这样的设备。有了这种工具以后,PD通讯的数据就可以被捕获下来并显示出每个数据包的意义,其中含有与时间相关的数据如总线电压值、CC线上的波形等,参见下图17.
在这里插入图片描述
三、总结
本文介绍了CC信号在PD识以及DRP通信时的识别信息。2017年2月,USB-IF组织发布了USB-PD 3.0标准的重要更新,即在USB-PD 3.0标准的基础上增加了可编程电源PPS(Programmable Power Supply),旨在为当今的快速充电解决方案提供统一的规范。目前其已经实现对高通QC 3.0/4.0、联发科PE 2.0/3.0、OPPO VOOC、华为SuperCharge等标准的收录,意味着可以完美支持这四种快充方案。USB组织甚至已经与中国工信部的泰尔实验室达成了共识,未来将与国标实现统一标准,期待小米也可以很快有自己的快充协议。下一期文章介绍PPS。
在这里插入图片描述