---
# System prepended metadata

title: 'USB(3): Type-C'
tags: [' System Software', USB, I/O]

---

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