USB Type C规范详解
目前USB Type C接口应用非常广泛,可以传输DP,USB,PCIE,音频等信号,已经不是纯粹的用来传输USB信号了,即USB Type C摆脱了和USB的从属关系,自己当家作主了。下面来介绍下USB Type C里面比较重要的点。
协议来源
USB官方网站上可以下载到最新的协议《USB Type-C Specification Release 1.4.pdf》,最新的为2019年4月3日。文末也会共享出来。
该协议主要内容是:定义USB Type C的插头,插座,和线缆
USB Type-C的Vbus的电流的检测与使用
使用USB Type-C的源(主机或下游集线器端口)可以在vbus上实现更高的源电流,以便能够更快地充电需要比USB3.2规范中指定的更多电流的移动设备或供电设备。所有USB主机和集线器端口都通过CC引脚来设置当前可用的电流水平。
USB PD各个模式供电能力如下表:
USB Type-C接口
Type-c接口有公头和母座,如下图:
Power有关的信号
VBUS,USB线缆的bus power(和我们通常意义上VBUS保持一致),电源和GND都有4根线,这就是为什么能支持到100W的原因。
VCONN(只有在插头上才会有该信号),当线缆里有芯片的时候,用来给线缆里的芯片供电(3.3V或5V)。
USB 2.0数据线,D+/D-。它们在插头端只有一对,和旧的USB 2.0规范一致。但为了支持正反随意插。在插座端定义了两组,这样插座端可以根据实际情况进行合适的mapping。
USB3.1/USB3.2数据线,TX+/-和RX+/-,用于高速的数据传输。插头和插座端都有两组,用于支持正反随意插。
Configuration的信号,对插头来说,只有一个CC,另外一个伪VCONN,对插座来说,有两个CC1和CC2。
SUB信号,用于USB拓展功能,可用于模拟音频。
USB Type-C电缆
如下表,USB2.0规范的电缆长度小于4米,USB3.2 Gen1的长度小于2米,USB3.2Gen2的电缆长度小于1米。
全功能USB Type-C电缆信号说明
上图是标准的USB Type-C的电缆,高速信号差分对SDP都采用同轴线,信号地回流是通过屏蔽GND。
USB2.0/USB3.1/USB3.2线缆说明
如下图,如果type-c线缆仅仅用作USB功能,那么其实有很多信号线是不需要的,只需要以下信号即可(USB3.2 Gen2x2除外)。USB2.0需要更少的线,其5-10信号是不需要的。
线缆的粗细线号
规范不指定金属丝规。更粗的线造成较少的损失,但代价是电缆直径和灵活性。多根电线可用于一条单线,如Vbus或地。建议使用最小的线号,以满足电缆组装、电气和机械的要求。为了最大限度地提高电缆的灵活性,电缆的外径应该尽可能的减小。一个典型的USB全功能型Type-C型电缆外径可从4mm至6mm,而一个典型的USB2.0型Type-C电缆外径可从2mm至4mm。一个典型的USB Type-C的USB3.1电缆外径可以从3mm到5mm。
线号参考如下表:
阻抗控制
SDP屏蔽差分线的阻抗控制在90Ω±5Ω,单端同轴线控制在45Ω±3Ω。阻抗应该用200 ps(10%-90%)的上升时间来评估。
电源VBUS和GND
如下图,电源的压降要小于500mV,Gnd上面的压降要小于250mV
配置通道(CC)详解
配置通道CC的用途如下:
检测USB设备是否接入;
检测USB插入方向,并以此建立USB 数据通道的路由;
插入后帮助建立USB设备角色(谁为HOST,谁为Device);
发现并配置VUBS,配置USB PD供电模式;
配置Vconn;
发现和配置可选的备用和辅助模式;
名词解释
在USB2.0端口,USB根据数据传输的方向定义了HOST/Device/OTG三种角色,其中OTG即可作为HOST,也可作为Device,在Type-C中,也有类似的定义。
DFP(Downstream Facing Port):下行端口,可以理解为Host或者是HUB,DFP提供VBUS、VCONN,可以接收数据。在协议规范中DFP特指数据的下行传输,笼统意义上指的是数据下行和对外提供电源的设备。
UFP(Upstream Facing Port):上行端口,可以理解为Device,UFP从VBUS中取电,并可提供数据。典型设备是U盘,移动硬盘。
DRP(Dual Role Port):双角色端口,类似于以前的OTG,DRP既可以做DFP(Host),也可以做UFP(Device),也可以在DFP与UFP间动态切换。典型的DRP设备是笔记本电脑。设备刚连接时作为哪一种角色,由端口的Power Role(参考后面的介绍)决定;后续也可以通过switch过程更改(如果支持USB PD协议的话)。
USB PORT的供电(或者受电)情况,USB Type-C将port划分为Source、Sink。
Source:通过VBUS或者VCONN供电。
Sink:通过VBUS或者VCONN接受供电。
DRP(Dual-Role-Power):既可以作为Source,也可以作为Sink。到底作为Source还是Sink,由设备连接后的配置决定。
Source和Sink的连接过程
Source和Sink的通用USB情况下,配置接口的典型流程如下:
首先,检测端口之间的有效连接(包括确定电缆方向、源/接收器和DFP/UFP关系)。
其次检测电缆的能力。
再次接通USB供电(协商USB电力传输,选择供电模式,电池充电等)。
最后进行USB枚举。
Source to Sink的连接检测
如下图,Source端是上拉电阻,Rp,Sink端接下拉电阻Rd
在未对接时,Source检测到CC管脚都为高电平,Sink端检测到CC管脚都未低电平。对接后,形成分压,电平为中间值。Rp的阻值能表明Source能够提供的功率水平。
源端CC1,CC2模型
如上图
Source端使用一个MOS管去控制Vbus,初始状态下,FET为关闭状态,Vbus不通。
Source端CC1/CC2均上拉至高电平,同时检测是否有Sink插入,当不论哪一个管脚检测到有Rd下拉电阻时,说明Sink被检测到。Rp的阻值表明Host能够提供的功率水平。
Source端根据Cable中哪一个CC引脚为Rd下拉,去建立正确的USB高速数据路由,同时决定另外一个CC引脚提供VCONN
当检查到Sink接入后,Source使能Vbus和Vconn。
Source可以动态调整Rp的值,告知Sink端的电流提供能力发生变化,告知SINK最大可以使用的电流
Source会持续检测Rd,检测到拔出事件后会断开连接,Vbus和Vconn都会断开。
如果Source支持高级功能(PD或者Alternate Mode),会通过USB PD协议进行沟通实现。
Sink端CC1,CC2模型
如上图
SINK的两个CC引脚均通道Rd下拉到GND。
SINK通过检测电源VBUS是否存在,来判断Source的连接与否。
SINK通过CC引脚上拉的特性,来检测目前的USB高速数据链路。
SINK可选地去检测Rp的值,去判断Source可提供的电流。同时管理自身的功耗,保证不超过Source提供的最大范围。
同样的,如果支持高级功能,通过CC引脚进行USB PD协议进行沟通实现。
DRP的CC1,CC2模型
DRP模式(双向供电)如上图:
DRP使用MOS管来启用/禁用Vbus的电源传递,并且在开始时禁用Vbus。
DRP使用开关来决定自身是Source端还是Sink端。
DRP在Source和Sink之间的切换:在建立特定的稳定状态之前,DRP在将自己在Source和Sink之间交替进行,根据协议最终会确认是Source还是Sink。当DRP最终确定为Source端时,它遵循Source端操作协议来检测Sink端是否接入。如果检测到Sink端,则提供Vbus、Vconn,并继续作为Source运行。反之,当DRP最终确定为Sink端时,它监视Vbus以检测它是否连接到一个Source,如果检测到连接到Source,它将继续作为Sink运行。
Source to Sink工作过程
工作过程如上图:
刚开始Source和Sink均处于未连接状态;
Source和Sink物理连接后,Source探测到CC的下拉电阻Rd信号,打开电源Vbus和Vconn;
然后Sink端会探测到Vbus,进入到连接状态。
当Source和Sink处于持续状态,Source会根据需要改变Rp来设置最大电流输出能力。Sink会检测Rd上面的电压来获取能从Vbus上获得的最大电流值。Source会监测CC管脚来判定Sink是否被移出。Sink会监测Vbus是否存在来判定是否和Source断开。
电流能力与Rd上电压vRd的关系如下表:
USB供电能力有三种,USB2.0,USB3.2单通道,USB3.2双通道
除了Source to sink,当Source连接到DRP,DRP端会自适应为Sink端。
当Sink连接到DRP,DRP端会自适应为Source端。
Source连接到Source,Sink连接到Sink,都是不会成功的。
USB Power Delivery
USB Power Delivery电力传输是Type-C接口的特征之一。当需要USB PD电力传输时,使用Bi-phase Mark Coded(BMC)编码协议,通过CC管脚进行通信。
CC的通信图如下:
CC上面的BMC信号如下图:
供电和充电
任何USB Type-c端口提供超过默认电流和/或支持USBPower Delivery传送应满足要求,就像它是一个充电器。
电源(如电池充电器、集线器、下游端口和主机)均可用于电池充电。充电器使用USB Type-C接口或USB Type-C电缆实现时,应遵循以下要求:
电源应使用USB Type-C current方法公开其功率能力,并可额外支持其他USB标准(USB BC 1.2或USB PD)
如果电源能够提供大于默认的VBUS的电压,则应完全符合USB PD规范,并应仅使用USB PD协商其电源供电。
如果电源能够提供大于3.0A的电流,则应使用US PD规范来确定电缆的载流能力。
Type C接口的充电器,只有当它检测到一个接收器被连接时,才能将电源VBUS接通,并且当它检测到Sink端被分离时,应该从VBUS上移除电源。
电子标记的线缆
所有USB全功能Type-C型电缆应电子标记。 eMarker是电子标记电缆中的元素,该电缆响应USB PD发出的标识命令返回有关电缆的信息(如电缆的电流承载能力、性能、厂商标识,支持的sstx/ssrx通道数等)。
电子标记的电缆本身用电一般来自于Vconn,Vbus也有可能被用到。
一种典型的电子标记电缆如上图。隔离元件(Iso)应防止Vconn通过电缆的端到端Ra电阻的作用是高速Source端,本电缆需要用到Vconn。
VPAs和VPDs
VPAs:VCONN-Powered Accessories--Vconn驱动的附件
VPDs:VCONN-Powered USB Devices--Vconn驱动的USB设备
VPAs和VPDs都是直接连接的sink,只需Vconn即可操作。两者都在Vconn上接有电阻Ra,在CC上接有电阻Rd。通过判断Vconn是否被移除,并以此来判断设备是否断开连接(在Vbus没有的时候)。
如果VCONN供电配件希望提供充电功能,则必须通过在主机和充电端口上独立协商电压和电流来实现,并且可能在将Source端电压传输到Sink之前重新调节电压。 Sink能够获取VPAs通告给它的可承载电流。
电阻值设置
各电流值对应的Rp的值如下表:
Rp都是5.1K电阻下地,电源供电能力的检测与否与电阻精度相关
Ra的值的大小范围为:800Ω-1.2K
相关电压范围
在Sink与Source连接后,因为Rp与Rd分压的原因,Sink端的CC的电压范围如下表:
功能扩展
USB Type-C的牛逼之处就在于其功能扩展,即它不仅仅在只是用来传输USB信号了,可以拓展用于其它功能。
USB Type-C协议里面,拓展功能称之为Alternate Mode,如何进入Alternate Mode呢。有很多种功能,比如4 lane DP,DP 2lane+USB3.0,自然得在一开始就通过协议来沟通告知进入哪一种模式。
那么是如何沟通的呢?还是通过CC管脚,通过PD协议来完成。
模拟音频模式
3.5mm音频接口可以转Type-C端口,USB2.0数据通道传输模拟音频信号,音频右声道接DP,音频左通道接DN,MIC信号则连接在SBU引脚上,在这个模式当中,电源可以提供到500mA电流。
如何工作在音频模式呢?
通过将CC引脚和VCON短接接,并且下拉电阻小于Ra/2(根据上文,Ra最小为800Ω,则小于400ohm),或者分别对地,下拉电阻小于Ra(小于800ohm),则Host会识别为音频模式。
</article>