USB 协议发展简史
在深入了解 Type-C 之前,回顾一下 USB 接口的演变很有帮助。常见的 USB 物理接口主要分为以下几类:
- Type-A: 标准的 USB 接口,常见于电脑主机、充电器等设备。
- Type-B: 通常用于打印设备和显示器等外设。
- Micro-B: USB 标准时代的手机主流接口。
- Type-C: 当前主流的全功能接口。

从数据传输速率和功率传输能力来看,USB 协议本身也在飞速发展。下图清晰地展示了从 USB 2.0 到最新 USB4 的技术演进路径:

Type-C 接口概览
USB Type-C,常被称为 USB-C,是一种通用串行总线的硬件接口形式。其最大的物理特点是拥有 24 个连接引脚 和正反均可插入的设计。

Type-C 接口分为公头(Plug)和母头(Receptacle)。值得注意的是,母头内部是凸起的舌片,而公头内部是凹槽,这样的设计可以避免金属引脚外露,提高安全性。

Type-C 引脚定义与功能
要理解 Type-C 的强大功能,必须从其引脚定义开始。一个全功能的 Type-C 接口拥有 24 个引脚,对称分布在接口的 A 面和 B 面。

关键信号线对关系:
- TX2+/- --> TX1+/- (USB 3.0 数据发送差分对)
- RX2+/- --> RX1+/- (USB 3.0 数据接收差分对)
- D+/- --> D1+/- (USB 2.0 数据传输差分线)
以下是完整的引脚功能表:
| 引脚(A面) |
名称 |
描述 |
引脚(B面) |
名称 |
描述 |
| A1 |
GND |
接地 |
B12 |
GND |
接地 |
| A2 |
SSTXp1 |
SuperSpeed 差分信号 #1,TX,正 |
B11 |
SSRXp1 |
SuperSpeed 差分信号 #1,RX,正 |
| A3 |
SSTXn1 |
SuperSpeed 差分信号 #1,TX,负 |
B10 |
SSRXn1 |
SuperSpeed 差分信号 #1,RX,负 |
| A4 |
VBUS |
总线电源 |
B9 |
VBUS |
总线电源 |
| A5 |
CC1 |
配置通道。用于连接检测、方向识别、USB PD协议通信及功率协商。 |
B8 |
SBU2 |
辅助信号。在 DP Alt Mode 下可传音频,在音频附件模式下可作为麦克风通道。 |
| A6 |
Dp1 |
USB 2.0 差分信号,position 1,正 |
B7 |
Dn2 |
USB 2.0 差分信号,position 2,负 |
| A7 |
Dn1 |
USB 2.0 差分信号,position 1,负 |
B6 |
Dp2 |
USB 2.0 差分信号,position 2,正 |
| A8 |
SBU1 |
辅助信号。用途同 SBU2。 |
B5 |
CC2 |
配置通道。功能同 CC1。 |
| A9 |
VBUS |
总线电源 |
B4 |
VBUS |
总线电源 |
| A10 |
SSRXn2 |
SuperSpeed 差分信号 #2,RX,负 |
B3 |
SSTXn2 |
SuperSpeed 差分信号 #2,TX,负 |
| A11 |
SSRXp2 |
SuperSpeed 差分信号 #2,RX,正 |
B2 |
SSTXp2 |
SuperSpeed 差分信号 #2,TX,正 |
| A12 |
GND |
接地 |
B1 |
GND |
接地 |
基于这些丰富的引脚,全功能 Type-C 接口实现了以下主要特性:
- 正反插自由:接口物理对称。
- 高速数据传输:支持 USB 3.2/4 等高速协议。
- 角色自由切换:可自动识别主机 (Host) 或设备 (Device) 角色。
- 视频直接输出:支持 DisplayPort Alt Mode 等替代模式。
- 大功率充电:通过 USB PD 协议支持最高 100W 供电。
数据角色 (Data Role) 定义
在 USB 2.0 时代,我们熟悉 HOST(主机)、Device(设备)和 OTG(On-The-Go)三种角色。Type-C 规范在此基础上进行了更精细的定义:
- DFP (Downstream Facing Port):下行端口,类比于传统的主机 (Host)。它初始状态下提供 VBUS 电源,作为数据通信的 Source(源)端。
- UFP (Upstream Facing Port):上行端口,类比于传统的设备 (Device)。它初始状态下消耗 VBUS 电源,并可作为数据提供的 Sink(接收)端。典型设备如 U 盘、移动硬盘。
- DRP (Dual Role Port):双角色端口,类似于 OTG。DRP 既可以作为 DFP(主机),也可以作为 UFP(设备),并且能够在两者之间动态切换。智能手机的 Type-C 口通常是 DRP。
核心:CC 通信通道
Type-C 的“智能”很大程度上源于两根 CC (Configuration Channel) 引脚。在深入其通信原理前,需要理解一个基础电路概念:下拉电阻。
下拉电阻连接在信号线与地之间,主要作用是确保信号线在没有有效驱动时保持稳定的低电平(0V)。这能防止输入引脚悬空导致的不确定状态,提高电路稳定性,并为信号提供明确的接地路径。

CC 通道的检测电路正是基于电阻分压原理构建的。

工作过程如下:
- 作为电源提供方的 Source 设备(如充电器、电脑),其 CC1 和 CC2 引脚通过上拉电阻 Rp 连接到电源。
- 作为电源消耗方的 Sink 设备(如手机、U盘),其 CC1 和 CC2 引脚通过下拉电阻 Rd 连接到地。
- 当线缆未连接时,Source 端检测 CC1/CC2 为高电平。
- 当 Type-C 线缆连接后,Source 端的 CC 引脚通过线缆与 Sink 端的 Rd 电阻形成通路,电压被拉低。Source 端通过检测 哪一个 CC 引脚(CC1 或 CC2)的电压发生了特定变化,即可判断插头的插入方向,从而正确配置高速数据线(TX/RX)的映射关系。

总结来说,CC 通道是 Type-C 接口实现以下核心功能的关键:
1. 连接检测
- 通过检测 CC 引脚上的电压变化,判断设备是否插入。
- Sink 端的下拉电阻 Rd 是 Source 端检测到连接的“信号”。
2. 方向识别
- 利用 CC1 和 CC2,判断插头是正插还是反插。
- 主机据此重新配置内部高速数据通道的物理连接。
3. 功率协商
- CC 线用于传输 USB PD 协议报文。
- Source 和 Sink 设备通过它协商供电电压和电流(如 5V/3A, 9V/2A, 20V/5A)。
4. 模式切换
- 通过 CC 通信,设备可以协商并切换到非 USB 的“替代模式”,如 DisplayPort 或 Thunderbolt 模式。
USB PD (Power Delivery) 协议详解
USB PD 协议是 USB-IF 制定的官方快充标准,最大支持 100W(甚至更高)供电,广泛应用于手机、平板、笔记本。
数据包结构
PD 协议通信有固定的数据包格式,以确保可靠性。

一个完整的数据包包含:
- 前导码 (Preamble):用于接收端时钟同步训练。
- *包起始标识 (SOP)**:标记数据包的开始。
- 消息头 (Message Header):包含消息类型、数据长度等信息。
- 数据码 (Payload):具体的协议数据。
- CRC 校验:循环冗余校验,确保数据完整性。
- 包结束标识 (EOP):标记数据包的结束。
物理层编码
PD 协议在物理层采用 4b/5b 编码 和 BMC (Biphase Mark Code) 调制。4b/5b 编码将 4 位数据转换为 5 位符号进行传输,提高了直流平衡和时钟恢复能力。特殊的功能码(如同步、复位)则使用专门的 K 码。

充电协商流程
一个典型的 USB PD 充电过程如下例所示:充电器(Source)告知手机(Sink)自己的能力,手机选择并请求一个合适的档位,双方确认后,充电器准备好电源。

DisplayPort 替代模式
Type-C 的强大之处在于它不仅能传 USB 数据,还能通过 替代模式 (Alternate Mode) 传输其他协议的视频信号,如 DisplayPort。
系统会通过 USB PD 协议中的 VDM (Vendor Defined Message) 信息,经由 CC 引脚通信,协商是否进入 DisplayPort 模式。在此模式下,原本用于 USB 3.0 的高速差分对 (TX/RX) 可以被重新分配用于传输 DP 信号。

- DP Only 模式:当 Type-C 接口仅用于传输 DP 信号时,可以占用全部 4 对高速差分对 (TX1/RX1, TX2/RX2),实现 4 Lane 传输,获得最高带宽。
- DP + USB 2.0 模式:同时使用 4 Lane 传输 DP 信号,并保留 USB D+/D- 用于连接 USB 2.0 设备。这是最常见的扩展坞工作模式之一。
下图展示了一个系统通过 Type-C 连接到显示扩展坞的典型应用,内部涉及复杂的多路复用器 (Mux) 切换:

RK 平台 DP 驱动示例
以 Rockchip 平台为例,其 DP 驱动主要涉及以下文件:
- DP Controller 驱动:
drivers/gpu/drm/rockchip/dw-dp.c
- DP PHY 驱动:
drivers/phy/rockchip/phy-rockchip-usbdp.c
在设备树 (DTS) 中需要进行相应配置,以启用 Type-C 口的 DP 功能、方向切换等:
&dp0 {
status = "okay";
};
&dp0_in_vp2 {
status = "okay";
};
&usbdp_phy0 {
orientation-switch; // 使能方向切换
svid = <0xff01>;
sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
usbdp_phy0_orientation_switch: endpoint@0 {
reg = <0>;
remote-endpoint = <&usbc0_orien_sw>;
};
usbdp_phy0_dp_altmode_mux: endpoint@1 {
reg = <1>;
remote-endpoint = <&dp_altmode_mux>;
};
};
};


DP 输出方案与 MST 技术
根据产品形态,DP 输出可以有多种设计方案:

MST (Multi-Stream Transport) 是 DisplayPort 1.2 及更高版本支持的特性,允许通过单根 DP 线缆传输多个独立的视频流。实现方式主要有两种:
- MST 集线器:一个集线器分出多个视频输出口(DP/HDMI等)。
- 菊花链:显示器串联连接,除最后一个显示器外,中间显示器都需要支持 DP MST 输出功能。
Type-C 作为音频接口
Type-C 也可以用于传输模拟音频,替代传统的 3.5mm 耳机孔。在这种模式下:
- USB 2.0 的 D+/D- 差分对被用来传输右声道 (Right)、左声道 (Left) 和麦克风/地 (MIC/AGND) 的模拟音频信号。
- 如果带有麦克风,其信号通常连接在 SBU 引脚上。
- 此模式下,主机最多可提供 500mA 电流。
设备通过在 CC 引脚上配置特定的下拉电阻值(如小于 400Ω 或 800Ω),来告知主机自己是一个音频附件。

主机/设备角色判断与切换
Type-C 接口如何智能判断自己该扮演主机 (Host) 还是设备 (Device) 的角色?这依赖于对 CC1 和 CC2 引脚状态的检测。
在实际硬件设计中,常使用专用的 Type-C 端口控制器芯片(如 FUSB302)来完成这一复杂任务。该芯片通过持续监控 CC1/CC2 的电压,来识别对端设备是主机还是设备,然后通过 I2C 中断通知主处理器(如 Rockchip SoC),驱动层再动态切换 USB 的工作模式(Host 或 Device)。


简化的 Type-C 接口:6PIN 与 16PIN
并非所有设备都需要完整的 24Pin Type-C 功能,因此衍生出了简化版本:
6 PIN Type-C
- 产品定位:仅需充电,无需任何数据通信。
- 引脚:通常只保留 VBUS, CC1/CC2, GND。
- 应用:电动牙刷、玩具、小型电子设备。

16 PIN Type-C
- 产品定位:需要 USB 2.0 数据通信和充电,但不需要 USB 3.0 高速传输。
- 特点:阉割了 USB 3.0 的 SSTX/SSRX 差分对(A2,A3,A10,A11,B2,B3,B10,B11),保留了 USB 2.0、CC、SBU、VBUS 和 GND。
- 支持功能:仍支持 PD 快充、音频附件模式、DisplayPort Alt Mode(带宽受限)、调试模式等。许多微控制器(MCU)采用的便是这种接口。

总结
USB Type-C 凭借其精妙的物理设计、强大的 CC 配置通道和灵活的 PD/替代模式协议,实现了“一线通”的愿景。从简单的充电、数据传输,到高速视频输出和百瓦功率交付,其背后的硬件原理与通信协议栈构成了一个复杂而高效的体系。对于嵌入式开发者而言,理解引脚定义、CC 检测逻辑和协议协商流程,是进行相关硬件设计和软件调试的基础。希望本文的梳理能帮助你更好地理解和使用 Type-C 技术。更多深入的技术讨论,欢迎在 云栈社区 交流。
参考阅读
- USB Type-C 和 PD 协议基础
- 聊聊瑞芯微 RK 平台的 TypeC 接口
- Rockchip_RK3399_Developer_Guide_USB_CN
- Rockchip DisplayPort 软件开发指南
- RK3399 android10 二合一 typeC OTG 切换 HOST 和 DEVICE
- PD 快充 - fusb302 驱动调试笔记
- RK3399 Type-C 改为 MicroUSB 以节省成本
- PD 协议详解与实战