USB Type‑C 接口规范:CC 引脚深度解析

CC 引脚到底在干嘛?

Type‑C 接口有 24 个引脚,真正让 Type‑C 变得「聪明」的,其实是两个不起眼的 CC 引脚——CC1 和 CC2。很多人以为它们只是用来检测正反插,其实远不止如此。

我刚开始接触 Type‑C 时,把 CC 引脚当成普通的 GPIO 来处理,结果设备死活不识别。后来才发现,CC 引脚承载的是整个 配置信道。它要完成三件事:检测连接、确定角色、协商供电。

简单来说,DFP(下行端口,类似主机)在 CC 线上会拉一个 Rp 上拉电阻(典型 10 μA 或 22 μA 电流源,对应不同电流能力)。UFP(上行端口,类似设备)则拉一个 Rd 下拉电阻(5.1 kΩ 到 GND)。

嗯,这是最基础的握手。两边一碰,电压就出来了。我用一个表总结一下常见电压对应的含义:

CC 电压(典型)含义实际场景
0 ~ 0.2 V未连接或断开线没插稳,或对方未就绪
0.25 ~ 0.65 V连接,DFP 为 USB 2.0 模式普通充电 / 数据,电流能力 0.5 A
0.7 ~ 1.35 V连接,DFP 支持 1.5 A快充协议前的预握手
1.65 ~ 2.15 V连接,DFP 支持 3.0 A能给笔记本供电的标记
其他可能需要 PD 协商VCONN 切换、emark 检测等

这里有个坑——我曾经遇到过某款充电头,CC 电压在 1.5V 附近飘,原因是 Rd 电阻焊错了封装,5.1k 变成 51k。结果插上后设备只能 USB 2.0,用户投诉充电慢。所以拿到板子,第一件事就是测 CC 引脚对地电阻。

正反插检测——Type‑C 的「无脑插」秘密

为什么 Type‑C 正反插都能用?你想想看,接口里 CC1 和 CC2 是对称排布的。当插头插入时,只有 其中一根 CC 会通过插头内部的连接形成通路,另一根则被断开。检测电路通过判断哪一根 CC 上有电压,就能知道当前是正插还是反插。

实际电路里,DFP 通常会把两路 CC 都上拉,UFP 都下拉。一旦插入,只有连接的那对 CC 形成完整回路,另一路因为插头物理隔离而浮空或通过另一个电阻接地。控制器读取 CC1 和 CC2 的电压,有电压的那路就是有效通道。

我见过一个产品,反插时偶尔不识别,折腾了好久。最后发现是 CC2 走线太长,寄生电容太大,导致电压上升沿过缓。解决办法是在软件里加了一个 20 ms 的去抖滤波。所以说,硬件设计要留裕量,软件也得兜底。

小技巧:调试时可以用示波器同时抓 CC1 和 CC2 的上升沿,正反插的波形应该一模一样(除了哪根先到)。如果两根波形幅度不同,检查线缆电阻或接触不良。

DFP、UFP、DRP——谁主谁从?

USB 世界里一直有 Host 和 Device 之分,Type‑C 把这套东西包装成了三种角色:

  • DFP(Downstream Facing Port):下行端口,相当于 Host。它提供 VBUS 电源,通过 CC 线上的 Rp 宣布自己有能力「养」别人。
  • UFP(Upstream Facing Port):上行端口,相当于 Device。它用 Rd 告诉对方「我需要吃东西」。手机、U 盘通常是 UFP。
  • DRP(Dual Role Port):双角色端口,一会当 DFP,一会当 UFP。笔记本、部分充电宝是 DRP。它会在两种状态之间周期性切换,直到和对方匹配。

角色检测流程其实不复杂:

  1. 上电后,每个端口先在 CC 线上输出自己的电阻状态(Rp/Rd 或交替切换)。
  2. 检测 CC 电压,判定对方是 DFP 还是 UFP。如果检测到 Rd,说明自己是 DFP;检测到 Rp,说明自己是 UFP。
  3. DRP 交替输出 Rp 和 Rd(典型周期 50–80 ms),一旦在某个状态检测到有效连接,就锁定角色,停止切换。

举个例子,我做过一个带 DRP 的扩展坞。调试时发现它和某些手机连接后老是「反复横跳」,一会充电一会断。追踪 CC 波形发现,DRP 的切换频率太慢(120 ms),而手机端的去抖时间刚好在临界区。后来把周期调到 60 ms,问题就解决了。这种时序微调,说白了就是经验和示波器的配合。

重点记一下:DFP/UFP 的电阻值在 Type‑C 规范里有严格容差。Rp 为 10 μA 电流源时精度要求 ±10%,Rd 为 5.1 kΩ ±1%。选电阻时别图便宜,否则 PD 协商会直接失败。

VCONN 供电——给 eMark 芯片「充电」

支持 USB 3.1 Gen2 或更高规格的线缆里,通常会有一颗 eMark 芯片(电子标记芯片),用来告诉两端线缆的能力。这颗芯片需要 VCONN 供电——电压范围 2.7 V ~ 5.5 V,最大电流几百微安。

VCONN 是由 DFP 提供的,但走的不是专用引脚,而是通过 CC 引脚中的某一个来传输。你可能会问:CC 不是走信号的吗?对,但这里有个切换过程。

当系统识别出对方是带 eMark 的线缆后,DFP 会断开其中一根 CC 上的上拉电阻,把它切换成 VCONN 输出。这根 CC 就不再承担通信任务,专供 eMark 使用。另一根 CC 继续做配置信道。具体是哪一根?要是正插,插头内部的 CC1 连 DFP 的 CC1,那 VCONN 就由 DFP 的 CC2 提供;反插则反过来。整个过程由 Type‑C 控制器自动完成。

我记得有一次,客户反馈他的线缆插上后电脑能识别,但就是不进入高速模式。排查下来,是 VCONN 电压只有 2.3 V,低于 eMark 芯片的欠压阈值。原因很简单——DFP 端用了 3.3 V LDO 供电,但线路压降太大。换了个大电流的 DCDC 就搞定了。嗯,VCONN 电流虽小,但走线阻抗不能马虎,建议用覆铜走短粗线。

小心短路风险:在双角色端口(DRP)设计中,如果软件在切换角色时没有正确断开 VCONN,可能会同时给两个 CC 引脚都输出 VCONN,导致线缆控制器损坏。务必备用 CC 引脚的过流保护,并严格遵循状态机跳转顺序。

知识脉络一览

下面我把 CC 引脚、正反插检测、角色判断和 VCONN 供电的关系画成一张流程图。你可以顺着箭头走一遍,就能理解 Type‑C 连接初始化的全貌。

Type&;C 连接初始化流程 端口上电,配置CC引脚 检测CC1/CC2电压 正插:CC1有效 反插:CC2有效 根据Rp/Rd判定角色 输出VCONN(如需要) DRP 需在状态机中轮询 Rp/Rd

看到这个流程你就明白了:CC 引脚是整个系统的神经末梢。从检测连接方向,到判断谁是大腿谁是小腿,再到悄悄给线缆芯片供电,全都在这一对引脚上完成。

好了,关于 CC 引脚的核心功能、正反插检测、角色划分和 VCONN 供电的实战要点,我基本都讲透了。后续你测试 Type‑C 一致性时,这些知识点会反复出现在每个测试项里。记不住没关系,把这个页面收藏起来,遇到问题回来查查——你会感谢自己的。