--- tags: I/O, System Software --- # USB(3): Type-C ## Overview [USB Type-C](https://en.wikipedia.org/wiki/USB-C) 是一種 USB 的硬體連接介面,接口尺寸為 8.3×2.5 毫米。外觀上最大特點在於其上下端完全一致,與 USB Type-A 相比不再區分 USB 正反面。 此介面可以同時處理資料傳輸和充電。透過 USB-C,可以以高達10 Gb/s 的速度傳輸數據,並且能以最高 240 瓦(48V/5A)的功率為裝置充電。這使得它非常適合各種電子產品,例如筆記型電腦、智慧型手機和配件。 ## 引腳 USB-C 的引腳設計如圖。上方為母頭訊號,下方為公頭訊號。 ![image](https://hackmd.io/_uploads/rkwDQWEcge.png) > [USB Type C Pinout Brief Diagram](https://rotatingusbcable.com/usb-type-c-pinout-brief-diagram/) USB-C 介面有 24 個引腳,每個引腳都有其特定的用途: * 8 個 SuperSpeed 差分訊號: 引腳 `Tx1+`, `Tx1-`, `Tx2+`, `Tx2-`, `Rx1+`, `Rx1-`, `Tx2-`, `Rx2+`, `Rx2-` 用於 SuperSpeed 的資料傳輸,也可相容 USB 2.0 的傳輸 * 4 個 VBus 引腳負責供電: 初始電壓為 5V,但最高可達 20V,甚至支援 Power Delivery (PD) 的 48V,輸出功率高達 240 瓦。線纜和裝置會溝通以確定合適的功率,從而避免過載 * 4 個接地訊號 GND * 4 個 USB 2.0 差分訊號: 共兩對的 D+/D- * 2 個 CC (Channel Configuration) 訊號: 負載在連接過程中的傳輸方向、提供或接收電力、正反插的確認,及 USB PD BCM 碼訊號傳輸 * 2 個 SBU (Sideband Use) 訊號: 輔助訊號,不同場景下有不同用途。例如在 DisplayPort 的 DP Alt Mode 模式下進行訊號傳輸時,作為音訊傳輸通道; 又例如在 USB-C 類比音訊耳機附件模式,則作為麥克風訊號通道 ![image](https://hackmd.io/_uploads/BkgN7WNcll.png) > Reference: [USB 3 female connector and signal assignment from TYPE-A to TYPE-C for connector reversibility](https://electronics.stackexchange.com/questions/639187/usb-3-female-connector-and-signal-assignment-from-type-a-to-type-c-for-connector) ### CC (Channel Configuration) pins USB-C 介面中的 CC 引腳(CC1 和 CC2)在 USB-C 介面中擔任至關重要的角色。 ![image](https://hackmd.io/_uploads/SyV0Z4E5ee.png) > [USB Type C Pinout Brief Diagram](https://rotatingusbcable.com/usb-type-c-pinout-brief-diagram/) * 線纜檢測與方向: CC 可以識別線纜的插入方向,因此無論是正插還是倒插,USB-C 都能正常工作 * 功率協商: 協助裝置間的傳輸功率協議,以能夠安全地提供高功率而不會過熱甚至損壞硬體 * Alternate Mode: 使用 USB-C 進行影像(DisplayPort/HDMI)功能或高速資料傳輸時,CC 可以協助將 port 切換到正確的模式 * 數據通訊: CC 也可以在需要時幫助建立高速資料傳輸 ### SBU (Sideband Use) pins SBU 主要用於處理低速訊號,不用於傳輸一般的 USB 資料。 它們的主要作用是在 Alternate mode 下,此時 USB-C 會切換到其他功能,例如 DisplayPort 或 HDMI 的視訊輸出。此時透過 SBU 引腳,單一的 USB-C port 可以兼具充電、資料傳輸,視訊傳輸,而無需額外的 port。 ## E-Marker > [數據線也有「心臟」?USB Type-C線纜中的E-Marker晶片有啥用?](https://www.aiitw.com.tw/news-detail.asp?seq=108) USB 的線纜根據充電電流、數據與影音傳輸功能的支援也有區分。 為了規範它們的功能和電氣性能,除了不需要影音傳輸 + 3A + USB2.0 的線纜,其他的線纜中都會被放置一個識別 IC,後者被稱為 Electronically Marked Cable(E-Marker),其功能像是 USB Type-C 線纜的身分證,通過這顆晶片可以宣告線纜的包括電源/數據/影像的傳輸能力和製造商 ID 等信息。基於此,輸出端才能根據連接的裝置(如手機或顯示器)調整匹配的電壓/電流或影音訊號。 ## Data and Power Role 在 USB 的連接上,兩端的裝置有主從及方向之分。 資料傳輸上,USB Port 可以是三種類型的角色之一: * DFP(Downstream Facing Port): 相當於 Type-A 母頭端的擔任角色,DFP 將為 VBUS 提供電力 * UFP(Upstream Facing Port): 相當於 Type-B 母頭端的擔任角色,UFS 將從 VBUS 獲得電力 * DRD(Dual-Role-Data): 可充當 DFP 或 UFP。連線完成時,供電的 port 會先扮演 DFP,而受電端扮演 UFP。但透過 [Data Role Swap](#Data-Role-Swap) 功能,即可動態更改 DRD 的資料角色 電源傳輸上,USB Port 也有三種類型角色: * Sink: 連接時會消耗 VBus 電力的 Port。CC 上設置有 Rd(下拉電阻,Pull-down resistor) * Source: 是連接時透過 VBus 提供電力的 port。CC 上設有 Rp(上拉電阻,Pull-up Resistor) * DRP(Dual-Role-Power): Port 可充當 Source 或 Sink,並可在這兩種狀態之間交替使用。若 DRP 的初始角色為 Source,則資料端其扮演 DFP。反之,當 DRP 的初始是 Sink 時,則 Port 將扮演 UFP。但透過 [Power Role Swap](#Power-Role-Swap) 可以動態變更 DRP 的電源角色。 USB Type-C 及 Power Delivery(PD)還未問世前,USB 的協定上作為 Host 的一方必然成為 DFP 及 Source,而作為 Device 的一方則為 UFP 及 Sink。然而,Type-C 及 PD 的出現打破了這個規則,資料與電源的角色可以獨立運作,換言之作為 DFP 的同時成為 Sink,反之,UFP 也能成為 Source。 ## USB Power Delivery(PD) > [Power Delivery 的源起與規格](https://www.graniteriverlabs.com/zh-tw/technical-blog/usb-pd-power-delivery-spec-versions) 在 USB 充電之前,產品的充電裝置多由各家廠牌使用各自的介面,導致裝置汰換時將造成許多浪費。由於 USB 的普及,市面大部分的產品都透過此介面傳輸資料,進而促使人們欲提升 USB 供電能力的想法。 [USB-IF (USB Implementers Forum)](https://usb.org/) 於 2012 年發表第一版 USB Power Delivery 規範,為使用 Type-C 介面進行充電制定了基礎。在 1.0 規格下,供電能力最高可至 100W (20V 5A)。隨著更多功能的加入,規範不斷更新,直至撰文時已來到 [USB Power Delivery Specification Revision 3.2](https://usb.org/document-library/usb-power-delivery),最大供電已可達 240W(48V 5A)。 ### PD 架構 USB PD 的規範中描述了 USB Power Delivery 的邏輯架構。留意到此架構的目的是展示 PD 的關鍵概念,並解釋邏輯架構中模組之間的關聯。實際實作上,根據 PD 裝置的多種可能類型,可以有不同實現方案。 USB Power Delivery 是一個 Port to Port 架構。下圖說明了 USB PD "Port Pair" 之間的通訊堆疊各層之關係。 :::info "Port Pair" 是指兩個支援 PD 功能並連接的 ports ::: ![image](https://hackmd.io/_uploads/Bye78Ldsex.png) > [How Power Delivery Works on USB-C: A Comprehensive Guide](https://www.hexosys.com/blog/how-power-delivery-works-on-usbc.html) * Device Policy Manager:透過 Policy Engine 將 "Local Policy" 應用於裝置中的每個 port * Policy Engine: 每個 Port 有各自的 Policy Engine,向下提供 Device Policy Manager port 的狀態,向下則可以解釋 Device Policy Manager 的輸入並實施 Local Policy,以指示 Protocal 層建構訊息 * Protocol: 負責建立用於 Source port 和 Sink port 之間溝通的訊息。同時也計算對方是否在要求時間內有正確的回應 (Timer check)。若偵測到任何錯誤,任一方的 Protocol Layer 可發起 Reset 機制重整狀態 * Physical Layer: 通過 Channel Configuration(CC),處理 port 兩端在物理訊號上的位元傳輸和接收 下圖則展示了 Port Pair 之間的架構。 ![image](https://hackmd.io/_uploads/ryqgzIusxe.png) > [USB PD DRP (dual-role power) schematics using EZ-PD™ PMG1 MCUs](https://www.arrow.com/en/research-and-events/articles/usb-pd-drp-dual-role-power-schematics-using-ez-pd-pmg1-mcus) 除了上面描述的通訊堆疊之外,還包含了: * System policy manager: 運行在 USB Host 上的模組。負責監控和控制透過 USB 連接上的各個 Provider 和 Consumer,並應用系統策略 * Source Port: 提供電源的一端,透過 VBUS 供電 * Sink Port: 用電的一端,透過 VBUS 消耗電能 * Power Source: 讓 PD port 能透過 VBUS 供電的模組 * Power Sink: 讓 PD port 能從 VBUS 汲取電源的模組 * Cable Detect(USB-C Port Control): 用於偵測帶有 E-Marker 的線纜 更多細節請參閱 USB PD Spec 2.6 Architectural Overview。 ## Charging Power PD 3.1 規範將原先 PD 3.0 的內容歸納至標準功率範圍(Standard Power Range, SPR)。在 SPR 下,最大功率維持原本的 100W。同時增加擴展功率範圍(Extended Power Range, EPR),後者新增三種固定電壓:28V、36V 和 48,使最大充電功率可達 240W。 ![image](https://hackmd.io/_uploads/B1vDqPdixg.png) > [USB 官方認證測試](https://www.graniteriverlabs.com/zh-tw/usb-standards-service) ## USB Role Swap > [USB Type-C Power Delivery 的角色交換功能](https://www.graniteriverlabs.com/zh-tw/technical-blog/application-notes-usbc-role-swap) ### Power Role Swap 對於 Source,其監測 CC pin 的電壓,偵測到 CC pin 上 Rd,表示接上Sink,則 Source 會在 VBUS 輸出 5V,此時 Source 也會預設為 DFP;對於 Sink,其偵測 VBUS,當偵測到 5V 時表示已經連接上 Source,此時 Sink 會預設為 UFP。 ![image](https://hackmd.io/_uploads/rkY2EjSqlg.png) 如果 PD 溝通的兩端皆為 DRP 時,雙方對接上後各自作為 Source 或 Sink 的情況就是隨機的,所以初步 PD 協議完成時,Power role 的結果可能不是產品偏好的狀態。因此雙方在完成初步的 PD 協議後,會依據產品當下的電力狀態(如Source/Sink Capability 或有無 External Power)及其產品偏好發起角色調換的要求,這稱為 Power Role Swap(PR Swap)。 舉例來說,當帶有 Type-C 的筆電與外部裝置對接時,筆電通常會做為 Source。但當筆電接上帶有外接電源的 Dock 時,Dock 或筆電間可能會發生 PR Swap。原因是多數筆電的 Source Capacity(供電能力) 只有 15W 且帶有電池需要被充電,而 Dock 的 Source Capacity 常是大於 15W 甚至是 60W 以上,所以當筆電電源不足或未接上筆電本身的電源供應器時,多數情況下, Dock 作為 Source 的能力會比筆電來的好。不過實際情況取決於 PR Swap 能否順利完成。 PR_Swap 的發起可以由 Source 和 Sink 任何一方發起,而收到 PR_Swap 要求的一方也可以視自身能力和當前狀況回應「接受(Accept)」、「拒絕(Reject)」或「等待(Wait)」的訊息來決定是否進行 PR Swap 的動作。 如下圖展示了 Sink 發起 PR_Swap 的案例,以及 VBus 在 PR Swap 過程的變化: ![image](https://hackmd.io/_uploads/r1Gw_k85eg.png) ![image](https://hackmd.io/_uploads/By-82185ex.png) * `#1`: Sink 發起 PR_Swap * `#2`、`#3`: 原本的 Source 接受 PR Swap 因此發出Accept,並將 CC Pin上的 Rp 切換到 Rd 後發出 PS_RDY。從 Source 成為 Sink * `#4` 當原本的 Sink 收到新的 Sink發出的 PS_RDY 後,其將 Rd 切換到 Rp,成為新的 Source 並發出 PS_RDY,此時,PR Swap 就完成了 * 最後,新的 Source 會再發出新的 Source Capacity 與新的 Sink 完成新的 PD 協議 ### $V_{CONN}$ Swap 當 Cable 上有 e-Marker 時,e-Marked IC 便需透過其中一個 CC pin 得到 $V_{CONN}$ Power。流程上,雙方連接後一開始成為 VBus Source 的一方會預設為 $V_{CONN}$ Source,完成初步的 PD 協議後,雙方可以再依照能力提出 $V_{CONN}$ Swap 的要求。 ### Data Role Swap USB 的 Power Role 可以轉換,Data Role 同樣可以利用 PD 協議來完成轉換(DR_Swap)。如前所述,當雙方一對接上,並在完成第一次的 PD 協議之前,成為 Source 的一方會預設為 DFP,Sink 則預設為 UFP,所以當 PD 協議完成後,裝置一樣也可以依需提出 DR Swap 的要求。 如下圖展示了 UFP 發起 DR_Swap 的案例。 ![image](https://hackmd.io/_uploads/Hy8E7yJilg.png) 要留意的是,若收到 DR_Swap 的當下,DFP/UFP 任一方已進入 Active Mode,那麼在進行 DR Swap 前需先執行 Hard Reset 使雙方離開 Active Mode,再重新 PD 協議。若Cable也在Active Mode時,則Cable 也需先離開 Active Mode。 ### Fast Role Swap Fast Role Swap(`FR_Swap`) 也是一種 PR Swap,只是 FR Swap 是用於在緊急的狀態下快速的切換 Power Role,因此整個流程與一般的 PR Swap 有些許差異。 應用場景的案例如下圖: 最初當 Host、Dock、Device 連接時,Dock 作為 Host 和 Device 兩者的 Source,但如果 Dock 本身的電源斷了,此時為了維持 Device 的連接及資料的傳輸,Host 和 Dock 就可以藉由 FR Swap 的動作,使 Host 快速地成為 Source。 ![image](https://hackmd.io/_uploads/H1tJT-Hjxg.png) 並非所有市售產品都支援 FR Swap。有連接雙方都支援此項功能,FR Swap 才得以進行。 ## Alternate mode USB-C 的 Alternate mode 讓單一 USB 接口得以取代多個連接器。 支援的模式包含: 1. [DisplayPort](https://en.wikipedia.org/wiki/DisplayPort) mode:將 USB-C 轉換為高解析度視訊/音訊連接埠。可支援 8K 解析度和流暢的高刷新率。 2. [Mobile High-Definition Lin(MHL)](https://en.wikipedia.org/wiki/Mobile_High-Definition_Link) mode:讓智慧型手機可以鏡像到電視/投影機 3. [Thunderbolt](https://en.wikipedia.org/wiki/Thunderbolt_(interface)) mode: 提供 40Gbps 的超快資料傳輸速度,同時具備電源和視訊傳輸功能 4. [HDMI](https://en.wikipedia.org/wiki/HDMI) mode:連接電視/顯示器,讓 USB 接口像普通 HDMI 一樣輸出高解析度的視訊/音訊。 ## Rerfence * [USB-C/Type-C接口简介](https://www.usbzh.com/article/detail-167.html) * [Type-C® 接口生態圈的技術應用與剖析](https://www.graniteriverlabs.com/zh-tw/technical-blog/usb-type-c-interface-ecosystem) * [Power Delivery 的源起與規格](https://www.graniteriverlabs.com/zh-tw/technical-blog/usb-pd-power-delivery-spec-versions) * [USB Type-C Power Delivery 的角色交換功能](https://www.graniteriverlabs.com/zh-tw/technical-blog/application-notes-usbc-role-swap) * [USB Type-C® 工程師指南](https://www.ti.com/lit/eb/nesy068/nesy068.pdf?HQS=app-ipp-pwr-denusbc-bhp-ebook-null-tw) * [USB Type-C介面PD協定解決方案](https://www.richtek.com/Home/Design%20Support/Technical%20Document/AN056?ForceDevice=1&devicename=richtekweb&sc_lang=zh-TW) * [USB Type C Pinout Brief Diagram](https://rotatingusbcable.com/usb-type-c-pinout-brief-diagram/) * [數據線也有「心臟」?USB Type-C線纜中的E-Marker晶片有啥用?](https://www.aiitw.com.tw/news-detail.asp?seq=108)