上一篇我们讲的是 USB-C 的“肉体”,但这个接口真正复杂的地方不在金属,而在它的“灵魂”——协议、握手、电气逻辑,以及设备之间如何互相确认身份。
手机怎么跟充电器沟通?CC 线为什么这么关键?为什么老设备插上 USB-C 线完全不工作?为什么 USB-C 默认就是个不带电的冷插座? 这些都必须从 USB-C 的“电气语言”开始讲。
第一章的篇幅真的超级多,因为要把这个接口一口气说完真的不简单,所涉及的到的知识也是一点都不少。从第二章开始,我们每一章都会讲几个比较重要的地方,这样听起来也比较容易理解
在以前的 USB-A 时代,只要电脑开机、或者充电头上电,USB-A 插座永远是5V常带电。这会导致一个非常危险的情况:只要你把一个 U 盘或外设插错、插歪、遇到短路接口,都可能让主板直接进保护,甚至老电脑直接“啪”一声关机——因为它不知道你是谁,也不会跟你沟通,它就盲目把5V授权给插座。
USB-C 的设计理念完全相反:在不知道对面是谁之前,绝对不允许输出电压。
哪怕你用工具把充电头的 USB-C 的VBUS 和 GND 引出来,用万用表量一下,读到的都是 0V 或只有极低的漏电电压。
就是因为 USB-C 默认是“冷”的。
USB-C 是一个 可正反插、可双向、针脚密度极高、同时能跑几种协议 的通用接口。
如果不做好保护,会出现很多极端危险场景:
你把两个充电头互相插在一起引起事故,线材质量差导致电源短接,设备端的全功能口被误认为是电源供应口,反插导致 TX/RX 混乱(未握手前无法映射),误把大功率输出口插到不能承受的设备上造成烧毁。
为了避免上述这些问题,USB-C 做了一件非常大胆但极其正确的事情:把电力授权交给了 CC(Configuration Channel)引脚管理。C口在互相之间没有确定对面是谁的时候,就绝对不会开启VBUS电源,
很多人以为所谓「A to C 冷插线」就是因为 C 端没电。其实不是。
A-to-C 线因为 A 口本身是“热插座”,一旦插上适配器,它永远有 5V 输出,所以线的 C 端自然也会带电。 这类线不是“懂握手”的线,它只是把 USB-A 的电粗暴地搬到 USB-C。而真正的 USB-C 线(尤其是 C-to-C)依赖 CC 线来确认。
为什么老设备不支持 CC?这是因为有些早期的 USB-C 设备只是换了个外形,但内部电路依然沿用旧 USB-A 的逻辑,没有 CC 控制器。你把它插到真 USB-C 设备上,双方根本无法握手,于是插上没反应,供电无法建立,数据无法识别,甚至有些只能用特定 A-to-C 冷插线才能工作,等下我们讲了电路的逻辑你自然就理解了。
在讲电路之前,我们先把两个角色彻底讲明白:DFP 与 UFP。
这两个概念只讨论电力流向,不讨论数据方向,也不会影响数据通道的作用。你完全可以理解为:
数据谁读谁写是一套逻辑,电谁给谁又是另一套逻辑,二者互不干扰,只是共享同一个 Type-C 物理接口而已。
DFP(Downstream Facing Port) → 电力输出方(Source)
例如充电头、电脑主机、充电宝,它的 CC 引脚内部有一个上拉电阻 (),连接到逻辑高电平(如3.3V 或5V)。
UFP(Upstream Facing Port) → 电力接收方(Sink)
例如手机、U盘、鼠标,它的 CC 引脚内部有一个下拉电阻 (),连接到 GND。
Source单词也有来源,源头的意思,Sink有桶或者槽的意思,我们把它理解成“水龙头与水桶”的关系也很直观:DFP 是“水龙头” Source,UFP 是“接水的桶” Sink,水就是这之间传输的能量啦。
这里提到的和
分别是上拉电阻和下拉电阻,其中在受电方UFP,必须要有一个
且它的阻值必须是5.1kΩ(允许很小的公差)这 5.1kΩ 是 Type-C 协议电气层最基础的基准之一。
未连接前:DFP 检测不到设备,因此 VBUS 关闭
供电方DFP,CC 线通过 拉高,电压接近3.3V/5V。受电方UFPCC 线通过
接地,电压为0V。因为Source 检测到 CC 线是高电平,所以充电头判定为无设备连接,所以此时VBUS 关闭。
| 角色 | CC 引脚电压状态 | 电阻状态 | 结果 |
| DFP(供电方) | CC 被 R_p 拉到高电平(接近 3.3V) | 有 R_p | 认为“没有设备” |
| UFP(受电方) | CC 通过 R_d 拉到接地(0V) | 有 R_d | 无法与 DFP 形成回路 |
因为没有看到特定的分压电平,DFP 的控制芯片判定“无设备”,所以 VBUS 必须关闭。
连接瞬间,线缆一插进去,事情就变得有趣了——线缆把 Source 的 和 Sink 的
被强制拉到一起,这就构成了一个从电源到
经过导线到达
再回到GND 的回路。

我们引出我们小学都学过的基础公式!分压公式登场!

由于 是 5.1kΩ固定值,只要 Source 里的芯片检测到 CC 引脚的电压下降到了某个特定范围(不再是满幅电压,也不是0V),它就明白:“对面有个设备插进来了!”
接下来,DFP 打开控制VBUS的MOS管(大多数都是),5V 电压这时才会被送上线缆,UFP 端的设备也终于“被供电”。再通过线缆到达Sink端,Sink就有了V! USB-C 从冷插座瞬间变成了热插座。
我们在第一章中留下了悬念:插头不论正反都能插,芯片怎么知道数据该往哪条线发?
我们再把视角切回物理层:DFP 的母座内部有 CC1 与 CC2 两个独立引脚。这两个引脚各自独立,都分别连接了上拉电阻 并接了电压检测器,电压检测器是直接检测CC1和CC2两个引脚的电压的。如果线插入到DFP 的母座里面,而标准CC 线缆内部只有一根 CC 导线。虽然插头两面都有触点,但线缆内部只连接了一根芯线,这就为“正反插判断”提供了完美条件。
当你正面插入时:线缆连通了 DFP的CC1和 UFP 的CC1。结果DFP发现CC1电压变低了,但CC2还是高电平(悬空),所以就判断出设备接在CC1侧(正插);当你反面插入时:线缆连通了 DFP的CC2和 UFP 的CC1,结果:DFP发现CC2电压变低了,但CC1还是高电平,判定:设备接在CC2侧(反插)。
| CC1 | CC2 | 状态/Status | 方向/Orientation |
| — | — | 没有连接/Nothing connected | n/a |
| Rd | — | 已连接 UFP/UFP connected | 正向/Normal |
| — | Rd | 已连接 UFP/UFP connected | 翻转/Flipped |
那么当方向、角色都搞定之后,故事还没有结束——这只是 USB-C 开场的“前奏”。
只要 CC 线能导通,控制器就能判断方向,把高速通道切换到 TX1/RX1 或 TX2/RX2。
这件事的重要性远比你想像的大,因为它不仅关系 USB 3.x 甚至 USB4 的信号映射,还会影响 DisplayPort Alt Mode 里 SBU 通道到底走哪边。
CC = 方向感知器 + 身份识别器 + 行为触发器。CC 不只是握手脚,它还是“方向感知器”。 你插得再怎么歪、再怎么快,只要 CC 能导通,USB-C 控制器就能在瞬间判断方向并完成线路映射。
方向搞错?那高速线对不上,数据直接抓狂,但 USB-C 不会犯这种错,只要 CC 接触哪怕一个瞬间,它就能立刻判断方向、调整 MUX,整个过程微秒级完成。
如果你把一个 充电头插到电脑的 Type-C 口 上,会发生什么?因为这两个都可以对外放电,且两个都是DFP——这不就“谁都想当爸爸”了吗?两个都是互相的拉高电压,这样两边的检测的电路就会发现这里竟然都是高电压,没有形成–
回路。没有达到预设的电压值,结果就是该控制VCC的MOS管没有被打开,这样没有回路电流,CC 线电压不下坠,谁也不输出 VBUS。安全!这就是 USB-C 在结构密度越来越高的情况下,依然做到“先确认关系、再给电”的根本原因。
但是为啥,手机、笔记本、充电宝,这种既能充电又能放电的设备,该怎么办呢。
它们的 CC 并不是焊死在某个电阻上,而是接到一个自动角色切换芯片(Type-C Port Controller)里。
这个芯片每50ms就在 –
之间切换一次。就像在闪灯:“我能供电……我也能受电……我能供电……我也能受电……(50ms 换一次脸)”一旦遇到对面是固定角色,比如充电头永远是 Source,那么 DRP 一看:对面是
,那我就定格成
(Sink)。角色确定,握手成功,VBUS 开启,开始充电。
如果对面是笔记本?那就比谁先“抢到角色”,这就造成了连接随机性。之后 PD 协议再来决定真正的供电方向。这一章我们讲了连接这一瞬间发生了什么,再来总结一下:
我们来总结一下第二章讲的什么:
- Type-C 默认不带电。
不形成 R_p 与 R_d 回路,就没有 VBUS。
(这一点直接解决了 Type-A 时代“插错就冒烟”的传统艺能。) - 固定角色设备:供电的叫 DFP(Source),端子拉 R_p。用电的叫 UFP(Sink),端子拉 R_d(必须是 5.1kΩ)
- 正反插判断:DFP 通过检测 CC1 和 CC2 谁下降电压 来判断线的方向。
- 全部都是模拟电路,不靠任何数字协议
不需要 PD,不需要 CPU,不需要固件。
纯粹靠电阻、电压和 MOSFET。
Type-C 默认不带电,直到 和
组成回路。Sink UFP 端的下拉电阻必须是5.1kΩ。DFP通过检测CC1还是CC2有电压下降,来判断线是怎么插的。这一切都是模拟电路,不需要任何数字协议代码参与。
有趣的事情来了:Source 可以通过改变 的阻值,悄悄告诉手机:“我有3A的大电流能力,你可以放心吃”。这不需要复杂的 PD 协议,只需要换个电阻值就行。这就是我们下一章要讲到的内容了~
而这个“电阻告诉你最大电流”的机制,就是下一章——USB-C 经典的电阻分压系统(USB Default / 1.5A / 3A 电流宣告)以及进一步进入 USB PD(Power Delivery)协议握手 的基础。