Granite River Labs, GRL
趙婉伶 Linda Zhao在还没有Type-C及Power Delivery(PD)问世前,传统的USB 世界里是没有Dual Role这个角色的,Data与Power 角色是非独立运作的,言下之意是作为Host 的一方必然成为DFP及Source,而作为Device的一方则为UFP及Sink。然而,Type-C及PD的出现打破了这个规则,Data与Power 角色可以独立运作,作为DFP的角色可以成为Sink,反之,UFP也能成为Source。
本篇文章将为大家说明,在PD沟通协议的帮助下,USB Type-C 的Power和Data角色如何沟通及切换,也就是常听到的Power Role Swap(PR Swap)、VCONN Swap(VCONN Swap)、Data Role Swap(DR Swap)和Fast Role Swap (FR Swap)。
文章开始前,若想先初步认识USB和PD,可以先阅读GRL出品的另外两篇文章「浅谈 USB–Universal Serial Bus」及「Power Delivery 的源起与规格」。
Type-C角色介绍:
首先简单、快速地介绍一下Type-C角色的定义以及架构,分为Data及Power角色:
表1: Type-C Data角色定义
表2: Type-C Power角色定义
对接的两端透过 CC 与 VBUS 侦测是否有合适的装置连接上:
- Source (SRC): 监测CC pin电压,当Source侦测到CC pin上Rd,表示接上Sink,则Source会在 VBUS输出5V,此时Source也会预设为DFP。
- Sink (SNK): 侦测VBUS,有5V时可知此时连接上Source,此时Sink会预设为UFP。
接着Source 会开始第一次的PD协议,直至Sink收到PS_Ready后,SRC和SNK即完成初步的PD协议,如下图所示。
图1: PD协议示意图
Source 会用SOP’与Cable 沟通确认Cable的能力;用SOP与Sink 沟通完成PD协议
Power Role Swap功能介绍
当今天做PD沟通的两端皆为DRP时,若双方都没有Try.SRC或Try.SNK的能力(尝试作为SRC或SNK),那么当双方对接上后作为Source 或Sink的机率是随机的,所以在完成初步的PD协议后成为Source或是成为Sink 的一方可能并不是产品偏好的状态或是当前合适的角色,因此双方在完成初步的PD 协议后,会依据产品当下的电力状态(如Source/Sink Capability或有无External Power)及其产品偏好发起Power 角色调换的要求,即Power Role Swap(PR Swap)。
举例来说,一般情况下Type-C笔电通常会在对接刚完成后成为Source,但当笔电接上带有外接电源的Dock时,Dock或笔电经常会发起Power Role Swap。原因是大多数的笔电其Source Cap.只有15W且带有电池需要被充电,而Dock 的Source Cap.常是大于15W甚至是60W以上,所以当笔电电源不足或未接上笔电本身的电源供应器时,多数情况下Dock作为Source的能力会比笔电来的好,当然,这并不是绝对的,是否能够完成PR Swap,仍需视双方是否能够完成PR Swap 的协议来决定。
那么,谁能够负责发起PR_Swap的讯息呢?笔电还是Dock?Source还是Sink?答案是,Source和Sink 双方皆可。但收到PR_Swap 要求的一方也可以视自身能力和当前状况响应「接受(Accept)」、「拒绝(Reject)」或「等待(Wait)」的讯息来决定是否进行PR Swap的动作。
图二我们以Sink发起PR_Swap讯息为例,说明PR Swap 一连串的过程及PD规范中对于PR Swap时CC切换和VBus电压转换的流程,图三则是利用GRL-A1记录下VBus在PR Swap 过程的变化:
图2: Sink Initiate PR Swap流程图
图3: GRL A1 VBus Transtition 示意图
以下为图3说明:
#1 Sink 在发起PR_Swap后, #2、#3 Source接受PR Swap后发出Accept 的讯息并将CC Pin上的Rp切换到Rd后发出PS_RDY成为New Sink。假如初始Source 不接受PR Swap或是正在忙碌需要Sink 等待,则可在收到PR_Swap的请求后分别发出Reject 和Wait的讯息。 #4当初始Sink 收到从New Sink发出的PS_RDY后,原始Sink 也会将Rd切换到Rp成为New Source并发出PS_RDY,此时,PR Swap基本上就完成了。 最后New Source 会再发出新的Source Cap.与New Sink完成新的PD协议。
对于Source、Sink电压转换、切换时间规范,可以参考下图四和和表二,在PD测试规范中明确规范了Initial Source 的VBus在收到Initial Sink对Accept讯息发出的GoodCRC后,要在tSrcTransition时间开始切换到standby 状态,并在tSrcSwapStdby (t2) 时间降至0V,切换成New Sink,最后发出PS_RDY从而启动PSSoucreOnTimer。而Initial Sink 在收到Accept讯息后,启动PSSourceOffTimer,在Initial Soure切换到Standby之前关掉电流的拉载,并在收到New Sink 的PS_RDY后停止PSSourceOffTimer,转换成为New Source,最后在tNewSrc(t3)时间重新上电回到Vsafe5V发出PS_RDY。New Sink收到NewSource发出的PS_RDY后回GoodCRC,New Source便可开始新的PD 协议。
图4: PD Spec. 规范Sink 要求PR Swap 的切换流程
表3: PR Swap时间参数
值得留意的是,在整个PR Swap的过程中,我们完全没有提到Data和VCONN的角色,因为Data的角色及VCONN Source并不会因PR Swap而改变,即使VBus会因PR Swap的过程将VBus切断再重新上电,但PD重新沟通后的Data和VCONN皆不会因为PR Swap对调而改变。意即,若一开始为DFP,那么在PR Swap过后,DFP仍为DFP,VCONN Source的一方仍为VCONN Source。
– VCONN Swap
另一个做为Power的角色,提供Cable Power:VCONN Source,当Cable上有e-Marker时,e-Marked IC便需透过Connector 上的其中一个CC pin得到VCONN Power。那么由谁来提供VCONN电源?一开始一样是双方一对接上随机成为VBUS Source的一方会预设为VCONN Source,完成初步的PD 协议后,产品可以依照能力提出VCONN Swap的要求。
图五举例DFP 作为 Initial VCONN Source 并发出VCONN_Swap请求的流程(在此过程中,VBUS Power和Data角色一样不会因为VCONN SWAP过程而转变,只是为了解释方便,所以会提及DFP和UFP):
#1 Initial VCONN Source 发出VCONN_Swap。 #2 、#3 UFP在接受VCONN_Swap后接受请求回复Accept讯息,此时UFP 开始对VCONN 供电并在tVONNSourceOn(表三)时间内发出PS_RDY;假如接收VCONN_Swap的一方不接受VCONN Swap或是需要VCONN Source等待,则可在收到VCONN_Swap的请求后分别发出Reject 和Wait的讯息,若是不支持当VCONN Source则可发Not_Supported。但要注意若收到VCONN_Swap请求的一方现为VCONN Source,那么是不能够Reject 和Wait的。而#4 Initial VCONN Source在收到PS_RDY后,则在tVCONNSourceOff(表二)时间内关闭VCONN 供电,完成VCONN Swap动作。此时,可以发现与PR Swap不同的是,VCONN在过程中都不会断电,来确保维持Cable的运作。 完成 VCONN Swap 后,New VCONN Source 需要用SOP’/SOP” 对Cable做Soft Reset,用以重新同步Message ID。
图5: Initial VCONN Source Request VCONN_Swap流程图
表4: VCONN Swap时间参数
Data Role Swap功能介绍
了解Power Role的角色转换之后,接着我们看到Data角色的转换,Data Role Swap (DR Swap)同样是利用PD协议来完成。那么为什么需要DR Swap呢?因为对于DRP 的Data角色来说,双方一对接上,并在完成第一次的PD协议之前,随机成为Source的一方会预设为DFP,反之,Sink则为UFP,所以当初步的PD协议完成后,产品一样也可以依照需求提出DR Swap的要求。
DR Swap的整个流程(图五)相对于PR Swap来说简单的多,要留意的是,若收到DR_Swap Requst的当下,DFP/UFP已进入任一Active Mode,那么在进行DR Swap前需先执行Hard Reset使双方离开Active Mode 再重新PD 协议,若Cable也在Active Mode时,则Cable也需先离开Active Mode。
图6: UFP Initiate DR Swap流程图
那DR Swap过程对于VBus、VCONN有影响吗?除非双方已进入Active Mode 所以在DR Swap前需要进行Hard Reset 的动作,否则,VBus 、VCONN在DR Swap的过程中是不会中断的,亦即VBus 会维持供电,CC上的Rp、Rd也不会调动。
Fast Role Swap功能介绍
最后介绍Fast Role Swap(FR_Swap),FR Swap 其实也是一种PR Swap,只是FR Swap是发生在较紧急的状态下需要快速的切换Power 角色,因此整个流程会跟PR Swap有些许的不同。
举例来说,图六是一般状态下Host、Dock、Device的连接状态,Dock作为Host 和Device一开始的Source供电来源(Initial Source),但Dock本身的电源突然断了,此时为了维持Device的连接及数据的传输,Host和dock之间便会进行FR Swap的动作,使Host快速地成为Source。
另外,并非所以市售产品都支持FR Swap,要能够进行FR Swap的先决条件必须连接双方都支持此项功能,FR Swap才得以进行。
图7: Host、Dock、Device串接示意图
图八可以完整的了解到整个FR Swap 的流程。当Dock侦测到电压下降,会随即发出一个Fast Role Swap signal,Host 接收到讯号后,便会传送FR_Swap的讯息用以完成Source 和Sink 角色的交换,后面的沟通流程大致与PR Swap相同。除了在Role Swap讯息沟通前会有一个Fast Role Swap Signal外,FR Swap与PR Swap 最大的不同, 可以说是VBus的切换时间, 若原先Dock与Host之间的VBus电压 >5V,那么当Sink 发现VBus <VSafe5V时,Sink随时都会供给VBus电源,即便此时的Sink 尚未完成FR Swap的 PD 沟通成为Source,Sink(Host)在此时为了维持与Dock之间的连接以及和Device的数据传输而紧急供给VSafe5V。
图8: Fast Role Swap流程图
总结
Role Swap的设计给予Type-C Power和Data角色转换更大的弹性,即便连接上时有Source为DFP、Sink为UFP的预设角色,双方仍可以根据当下的连接状态重新沟通决定Power/Data的角色,且不会因为Power/Data Role Swap而改变 Data/Power的角色。
参考文献:
- USB Power Delivery Specification Revision 3.1, Version 1.0, May 2021
- Universal Serial Bus 4 (USB4®) Specification Version 1.0 with Errata and ECN through May 19, 2021
- Universal Serial Bus Type-C Cable and Connector Specification, Release 2.1, May 2021
作者
GRL测试工程师赵婉伶 Linda Zhao
具五年多Thunderbolt 、USB认证测试经验,熟悉Thunderbolt 、USB以及USB-IF PD (Power Delivery)、QC (Qualcomm Quick Charge)等测试规范,乐于协助客户取得相关认证。
本文件中规格特性及其说明若有修改恕不另行通知。
发布日期 2022/02/16 AN-220216-TW