Granite River Labs, GRL
趙婉伶 Linda Zhao
在還沒有USB 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 的源起與規格」。
USB 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。
結論
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