Type-C接口的引脚定义 Type-C设备之间详细的配置过程

描述

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)。

usb

图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-引脚。

usb

图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 Role Port),如Type-C笔记本,双向充电宝等。

显然,当两个Type-C设备通过C2C线材连接在一起时,双方必须知道对方属于何种类型的设备,否则会带来不理想的充电(如反向充电),或者不充电,甚至导致产生安全问题。

例如,当用户利用充电器(Source)给Type-C双向充电宝(DRP)充电时,理想情况下,充电宝应当“担任”Sink的角色。 然而,由于设备类型识别错误,可能导致充电宝“担任”Source角色而发生“电流倒灌”的现象,损坏两方设备。

Type-C接口规范通过CC引脚的一系列“上拉”和“下拉”的机制来区分Source、Sink以及DRP。 对于Source设备,要求CC引脚配置上拉电阻Rp; 对于Sink设备,要求CC引脚配置下拉电阻Rd; 而对于DRP设备,要求通过切换开关,交替性地切换上拉和下拉。

usb

图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供电能力的对应关系。

usb

图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

usb

图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的切换机制

usb

图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

usb

图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的切换机制

usb

图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的切换机制

usb

图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 Delivery Specification。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
jf_61903767 09-06
0 回复 举报
而且后面和sourceDRP交互的时候,source也是检测他不断切换开关过程中的sink下拉电阻 收起回复
jf_01202511 2023-08-31
0 回复 举报
(2)Source检测到CC端有Sink上拉电阻,则Source状态变化为Unattached.SRC --> AttachWait.SRC--> Attached.SRC; Source打开VBUS和VCONN。这块是不是写错了,sink端应该只有下拉 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分