Type-B后推出的最新的接口规范。 不同于传统的USB接口,Type-C采用了上下对称设计,不需要区分插头的方向,避免了用户正反插的繁琐操作。 另外,USB Type-C通过支持USB PD(Power Delivery)协议,将充电功率由传统的最大7.5W(5V1.5A),提升到了最大100W(20V5A)。 而最新的USB PD3.1的规范,进一步提升了Type-C充电功率,最大功率可以达到240W(28V5A)。
图1 三种USB接口
对于传统的USB Type-A或Type-B的设备,在接口定义中就已经规范了供电接口(Source)和受电接口(Sink)的形态,因此不必担心反接或错接的行为。 而对于Type-C接口的设备,由于不存在这些区别,用户无法获知其接口的类型,因此需要Type-C控制器自身完成。 那么Type-C接口是如何实现相互识别的,又是如何提供正确的供电逻辑的?
Type-C接口的引脚定义
Type-C接口分为母头(Receptacle)和公头(Plug)。 完整的Type-C引脚为24个,各个引脚的定义如下:
1. VBUS:共四路,设备间供电的BUS电压引脚,不论正反插,这四路引脚都会提供供电
2. GND:共四路,设备间的供电回路,不论正反插,这四路引脚都会提供供电回路
3. TX+/TX-和RX+/RX-:共四对,为USB3.0高速信号
4. D+/D-:共两对,为USB2.0信号。 在母头处,这两对会短路成一对
5. CC/VCONN: CC引脚为配置引脚,用于检测设备连接和正反插方向,也是USB PD通信的线路; VCONN为CC引脚斜对称的引脚,当一个引脚确认为CC时,另一个则定义为VCONN,用于给eMark线材供电
6. SBU1/SBU2:复用引脚,如为USB4提供额外的SBTX和SBRX
母头为24pin满针脚,上下针脚为斜对称,满足用户正反插的需求; 公头为22pin,由于USB2.0规范中,D+/D-只有一对,因此在公头中只保留一对D+/D-针脚。
当然,在实际产品设计中,工程师会根据产品定义适当缩减Pin脚数量以节约成本。 例如,对于只提供充电的产品,如电源适配器,这类产品不需要USB3.0的高速数据通信,因此只保留CC、VBUS、GND和D+/D-引脚。
图2 USBType-C母头(a)和公头(b)的引脚定义
Type-C设备之间如何识别
就供电而言,Type-C设备可分为三类
1. 只能作为供电端(Source)的Type-C设备,如Type-C充电器等
2. 只能作为受电端(Sink)的Type-C设备,如Type-C手机等
3. 既可以作为供电端(Source),又可以作为受电端(Sink)的Type-C设备(DRP,Dual RolePort),如Type-C笔记本,双向充电宝等。
显然,当两个Type-C设备通过C2C线材连接在一起时,双方必须知道对方属于何种类型的设备,否则会带来不理想的充电(如反向充电),或者不充电,甚至导致产生安全问题。
例如,当用户利用充电器(Source)给Type-C双向充电宝(DRP)充电时,理想情况下,充电宝应当“担任”Sink的角色。 然而,由于设备类型识别错误,可能导致充电宝“担任”Source角色而发生“电流倒灌”的现象,损坏两方设备。
Type-C接口规范通过CC引脚的一系列“上拉”和“下拉”的机制来区分Source、Sink以及DRP。 对于Source设备,要求CC引脚配置上拉电阻Rp; 对于Sink设备,要求CC引脚配置下拉电阻Rd; 而对于DRP设备,要求通过切换开关,交替性地切换上拉和下拉。
图4 CC引脚的“上拉”和“下拉”
Source通过检测Rp端的CC引脚判断是否有设备接入,Sink通过检测Rd端的CC引脚判断正反插的方向。
下拉电阻Rd=5.1k,上拉电阻Rp根据其供电能力和上拉电压不同而设定。 USB Type-C的供电能力有如下几种:
1. 默认USB供电能力(Default USB Power)。 USB2.0接口为500mA; USB3.2接口为900mA和1500mA
2. BC1.2(BatteryCharge 1.2)协议。 支持最大功率7.5W,即5V1.5A
3. USB Type-C电流1.5A(USB Type-C Current 1.5A),支持最大功率7.5W,即5V1.5A
4. USB Type-C电流3A(USB Type-C Current 3A), 支持最大功率15W,即5V3A
5. USB PD(USB PowerDelivery)协议, 支持最大功率100W,即20V5A
这五种供电能力优先级依次升高,且供电功率也逐渐提高。 高优先级的供电能力会覆盖低优先级的供电能力。 其中Default USB Power,USB Type-C Current 1.5A和USB Type-C Current 3A可通过配置Rp值来设置。
当两个设备连接完成后,Sink通过检测Rp和Rd的分压值vRd获取Source的供电能力。 如下为Rp值,vRd电压范围与Source供电能力的对应关系。
图5 Rp值,vRd电压范围与Source供电能力的对应关系
与此同时,设备的另一个CC已经被悬空或者通过Ra=1k下拉。 若有Ra下拉,则说明USB-C线材内置eMarker芯片,需要Source端通过切换该引脚至VCONN为线材供电。
至此,我们已经解释了设备之间通过“上拉”或“下拉”,或者在二者之前交替性切换,来判断Source、Sink以及DRP,并通过Rp电阻值,vRd电压值设置和判断Source的供电能力。 然而,这个过程具体是如何实现的? Type-C是如何避免反充或错误充电的?
Type-C设备之间详细的配置过程
我们以常用电子设备对应这三种类型:Source – 充电器; Sink – 手机;DRP – 笔记本或充电宝。
对于三种设备类型,理论上就会存在9种相互连接的组合,这些组合中必然有错误的连接方式(如适配器连接适配器),或不确定谁是Source的连接方式(如充电宝或笔记本)。 那么对于这么多组合,Type-C控制器是如何配置接口的?
Type-C控制器通过状态机的状态切换完成整个识别和沟通的过程,如下为状态机中的几种主要状态。
1. Unattached.SRC,Source处在未连接的状态
2. Unattended.SNK,Sink处在未连接的状态
3. AttachWait.SRC,该状态目的是Source确保设备连接后,CC1和CC2保持稳定
4. AttachWait.SNK,该状态目的是Sink确保设备连接后,CC1和CC2保持稳定
5. Attached.SRC,Source端判断设备连接成功
6. Attached.SNK,Sink端判断设备连接成功
5. Try.SRC,该状态为DRP设备试图切换Source角色
6. Try.SNK,该状态为DRP设备试图切换Sink角色
情形一 Source和Sink间的行为机制(适配器和手机)
如下是当Source有Sink设备接入时的行为机制:
(1) Source和Sink均处于未接入状态Unattached.SRC和Unattached.SNK
(2)Source检测到CC端有Sink上拉电阻,则Source状态变化Unattached.SRC --> AttachWait.SRC--> Attached.SRC; Source打开VBUS和VCONN。
(3)Sink检测到VBUS,则Sink状态变化为Unattached.SNK --> AttachWait.SNK -->Attached.SNK
(4)在Source和Sink处于连接(attached)状态之后
Source调整Rp数值来限制Sink吸收电流
Sink检测Rd上的电压vRd判断VBUS允许的电流
Source通过监测CC判断Sink是否断开,如果断开,则进入Unattached.SRC
Sink通过监测VBUS电压判断Source是否断开,如果断开,则进入Unattached.SNK
图6 充电器(Source)和手机(Sink)的行为机制
情形二 Source和DRP间的行为机制(充电器和笔记本)
如下是当Source有DRP设备接入时的行为机制:
(1) Source和DRP均处于未接入状态
Source处于Unattached.SRC状态- DRP在Unattached.SRC和Unattached.SNK之间切换
(2)Source检测到CC端有Sink上拉电阻,则Source状态变化为Unattached.SRC --> AttachWait.SRC--> Attached.SRC; Source打开VBUS和VCONN。
(3)当DRP切换到Unattached.SNK,并检测到CC引脚有上拉时,则DRP状态变化为Unattached.SNK -->AttachWait.SNK --> Attached.SNK
(4)在Source和DRP处于连接(attached)状态之后
Source调整Rp数值来限制DRP(即Sink)吸收电流
DRP(即Sink)检测Rd上的电压vRd判断VBUS允许的电流
Source通过监测CC判断Sink是否断开,如果断开,则进入Unattached.SRC- DRP(即Sink)通过监测VBUS电压判断Source是否断开,如果断开,则进入Unattached.SNK,并恢复其Unattached.SRC和Unattached.SNK的切换机制
图7 充电器(Source)和笔记本(DRP)的行为机制
情形三 DRP和Sink间的行为机制(笔记本和手机)
如下是当DRP有Sink设备接入时的行为机制:
(1) DRP和Sink均处于未接入状态
DRP在Unattached.SRC和Unattached.SNK之间切换- Sink处于Unattached.SNK状态
(2)当DRP切换至Unattached.SRC时,并检测到CC引脚有下拉电阻,则DRP的状态变化为Unattached.SRC -->AttachWait.SRC --> Attached.SRC;DRP(即Source)打开VBUS和VCONN。
(3)Sink检测到VBUS,则Sink状态变化为Unattached.SNK --> AttachWait.SNK -->Attached.SNK
(4)在Source和DRP处于连接(attached)状态之后
DPR(即Source)调整Rp数值来限制Sink吸收电流- Sink检测Rd上的电压vRd判断VBUS允许的电流
DRP(即Source)通过监测CC判断Sink是否断开,如果断开,则进入Unattached.SRC,并恢复其Unattached.SRC和Unattached.SNK的切换机制
DRP(即Sink)通过监测VBUS电压判断Source是否断开,如果断开,则进入Unattached.SNK
图8 笔记本(DRP)与手机(Sink)的行为机制
情形四 DRP和DRP间的行为机制(充电宝与笔记本)
对于DRP和DRP的沟通,存在三种情况。 一种情况是,设备双方决定谁是Source还是Sink是随机的; 第二种情况是,其中一个DRP试图通过Try.SRC机制来决定其作为Source; 第三种情况是,其中一个DRP试图通过Try.SNK机制来决定其作为Sink。
如下是当DRP有DRP设备接入时的行为机制:
第一种情况:
(1)两个DRP设备均处于未接入状态
DRP#1和DRP#2在Unattached.SRC和Unattached.SNK之间随机切换
(2)当DRP#1切换至Unattached.SRC时,并检测到CC引脚由DRP#2下拉,则DRP#1的状态变化为Unattached.SRC--> AttachWait.SRC --> Attached.SRC; ;DRP#1(即Source)打开VBUS和VCONN。
(3)DRP#2切换至Unattached.SRC时,并检测到CC引脚有上拉,则DRP#2的状态变化为Unattached.SNK -->AttachWait.SNK --> Attached.SNK
(4)在Source和DRP处于连接(attached)状态之后
DPR#1(即Source)调整Rp数值来限制DRP#2(即Sink)吸收电流
DRP#2(即Sink)检测Rd上的电压vRd判断VBUS允许的电流
DRP#1(即Source)通过监测CC判断Sink是否断开,如果断开,则进入Unattached.SRC,并恢复其Unattached.SRC和Unattached.SNK的切换机制
DRP#2(即Sink)通过监测VBUS电压判断Source是否断开,如果断开,则进入Unattached.SNK,并恢复其Unattached.SRC和Unattached.SNK的切换机制
图9 充电宝(DRP)和笔记本(DRP)的行为机制
第二种情况:
(1)两个DRP设备均处于未接入状态
DRP#1和DRP#2在Unattached.SRC和Unattached.SNK之间随机切换
(2)当DRP#1切换至Unattached.SRC时,并检测到CC引脚由DRP#2下拉,则DRP#1的状态变化为Unattached.SRC--> AttachWait.SRC --> Attached.SRC; ;DRP#1(即Source)打开VBUS和VCONN。
(3)DRP#2切换至Unattached.SRC时,并检测到CC引脚有上拉,则DRP#2的状态变化为Unattached.SNK -->AttachWait.SNK
(4)DRP#2处在AttachWait.SNK,并希望切换至Source角色,DRP#2的状态变化为AttachWait.SNK -->Try.SRC; 并且上拉CC引脚
(5)DRP#1不再检测到DRP#2在CC引脚上的下拉,于是状态变化为Attached.SRC --> UnattachWait.SNK--> AttachWait.SNK; 并且关闭VBUS和VCONN,在CC引脚上切换下拉电阻
(6) DRP#2检测到CC引脚有上拉,则其状态变化为Try.SRC --> Attached.SRC; 并且打开VBUS和VCONN
(7) DRP#1状态变化为AttachWait.SNK --> Attached.SNK
(8)在Source和DRP处于连接(attached)状态之后
DPR#2(即Source)调整Rp数值来限制DRP#1(即Sink)吸收电流
DRP#1(即Sink)检测Rd上的电压vRd判断VBUS允许的电流
DRP#2(即Source)通过监测CC判断Sink是否断开,如果断开,则进入Unattached.SRC,并恢复其Unattached.SRC和Unattached.SNK的切换机制
DRP#1(即Sink)通过监测VBUS电压判断Source是否断开,如果断开,则进入Unattached.SNK,并恢复其Unattached.SRC和Unattached.SNK的切换机制
图10 笔记本(DRP#1)和充电宝(DRP#2)的行为机制
第三种情况为Try.SNK机制,其与Try.SRC机制类似,这里不再赘述。
情形五 Source和Source间与Sink和Sink间的行为机制
这两种使用情况下,Source和Sink都处于Unattached.SRC和Unattached.SNK状态下,故不存在设备间供电的情况。
至此,我们介绍了一些常见的设备之间的沟通机制。 尤其是对于两个都是DRP双角色设备,Type-C控制器会采用Try.SRC或Try.SNK的方式,试图建立正常的供电逻辑。 当然,如若出现错误的供电逻辑(比如出现笔记本给充电宝充电的情况),USB
PD协议还提供了Power Role Swap的机制,通过PD协议进行供电角色切换,详细内容可参考USB Power DeliverySpecification。
-
充电器
+关注
关注
100文章
4073浏览量
114660 -
接口
+关注
关注
33文章
8501浏览量
150839 -
usb
+关注
关注
60文章
7898浏览量
264002 -
引脚
+关注
关注
16文章
1182浏览量
50284 -
type-c
+关注
关注
549文章
1791浏览量
268614
发布评论请先 登录
相关推荐
评论