3. VCONN 与电子标记:供电、识别与能力广播

好,咱们进入第三章。VCONN 和 eMarker 这块,说白了就是Type-C 线缆的“身份证”和“供电系统”。很多刚接触 PD 协议的工程师容易在这上面栽跟头——要么线缆识别不出来,要么供电出问题。我最早调 PD 的时候,就碰到过一根线缆死活无法协商 5A 电流,最后发现是 eMarker 的 VCONN 供电脚虚焊了。

这一章我们就把这套机制彻底搞清楚。先看 VCONN 怎么供电,再讲 eMarker 如何被识别,最后看电流能力怎么广播出去。

核心知识点速览: VCONN 是为线缆内部芯片(eMarker 或 re-driver)供电的专用电源;eMarker 通过 CC 线上的特定时序被识别;电流能力广播则依赖 eMarker 内部存储的配置信息。三者环环相扣。

3.1 VCONN 供电机制

VCONN,全称是 VCONN,不是 VCONN 啊,别读错。它是 Type-C 规范里专门给线缆内部器件供电的。

为什么需要 VCONN?

想想看,一个好的 USB-C 线缆,尤其是支持 5A 或者 USB 3.x 高速传输的线缆,内部需要电子标记芯片(eMarker)来识别身份,甚至还需要信号 ReDriver 或 Mux 来补偿损耗。这些芯片工作得要电吧?VCONN 就是干这个的。

供电特性:

  • 电压范围: 宣称是 3.0V ~ 5.5V,但我实际测量下来,主流设计都稳定在 4.75V ~ 5.25V 左右。
  • 电流能力: 规范要求至少能提供 20mA。对 eMarker 来说绰绰有余;如果线缆里还有 ReDriver,那就要看具体规格了,但 VCONN 源端至少要保证 20mA 的持续能力。
  • 来源: 由 Source(下行端口,DFP) 提供。在 Type-C 连接过程中,Source 检测到 CC 线上的 Rp/Rd 配置后,就知道该给哪一根线提供 VCONN。
VCONN 供电关键参数
参数最小值典型值最大值说明
VCONN 电压3.0 V5.0 V5.5 V源端输出范围
VCONN 电流20 mA20 mA由电缆设计决定源端必须至少能提供 20 mA
VCONN 压降—≤ 200 mV—线缆上的电压降(含连接器)
CC 线检测时间—< 100 ms—连接后必须完成 VCONN 准备工作

我第一次调试时以为 VCONN 和 VBUS 是同一个电源,结果发现根本不是。VCONN 是一个独立的供电线路,通常由 Source 端的一个 LDO 或降压转换器提供。

检测与切换:

Source 是通过检测 CC1 和 CC2 上的电压/电阻状态来判断接的是正插还是反插。具体来说:

  • 如果 CC1 检测到 Rd(下拉),CC2 检测到 Ra(用于 VCONN 的电阻),那么 VCONN 就施加在 CC2 上。
  • 反之,如果 CC2 是 Rd,CC1 是 Ra,VCONN 就施加在 CC1 上。

我曾经设计的一款产品,在批量生产中发现有 3% 的线缆无法触发 VCONN,排查后发现是 Source 端的 CC 检测比较器阈值设计余量不足,稍微调整了电阻分压就解决了。嗯,这里要注意比较器的精度。

警告: VCONN 端不能没有过流保护!如果线缆内部短路或者 eMarker 损坏,20mA 可能会变成几百毫安,烧坏 Source 端的 LDO。我在项目中见过因为漏加 OCP 导致的返修案例——那一批板子换了二十多块。

3.2 eMarker 芯片识别

eMarker(电子标记芯片)是集成在线缆插头内部的一颗小芯片。它存储了线缆的各种能力信息,比如支持的电流、USB 版本、供应商 ID 等。

eMarker 的位置:

它通常位于线缆的电子端(E-Marker),也就是靠近插头的那一侧。对于双头线缆,规范要求每个插头都要有一颗 eMarker,但很多低成本线缆只在其中一端放置。

如何识别 eMarker?

Source 端通过 CC 总线 与 eMarker 通信。通信协议基于 BMC(双相标记编码),和 PD 协议的主通信相同。具体流程是:

  1. 建立 CC 连接: Source 检测到 Rd,确认是合格的有效负载。
  2. 施加 VCONN: Source 将 VCONN 施加到正确的 CC 线上(如上节所述)。
  3. 发送 SOP' 序列: 普通 PD 通信使用 SOP 包。要读 eMarker,Source 会发送 SOP'(SOP Prime)或 SOP''(SOP Double Prime)序列,这些信号能穿透连接器到达线缆内部的 eMarker,但不会让 Sink(受电端)误处理。
  4. eMarker 回应: eMarker 收到正确的 SOP' 包后,会在 CC 线上回应一个 Discover Identity 应答。

在实际测试中,我最常遇到的坑是:eMarker 初始化未完成。有些 eMarker 芯片上电后需要几十毫秒才能稳定,如果 Source 在 VCONN 刚刚建立后立即发送 SOP' 包,就会收不到应答。我习惯在 VCONN 建立后加入 50ms~100ms 的延迟 再开始枚举 eMarker。

个人经验: 批量采购 eMarker 芯片时,一定要关注其“VCONN 上电延迟”参数。不同厂商的芯片差异很大,有的一次性通过,有的要反复重试。我合作过的几家供应商里,NXP 和 TI 的 eMarker 表现最稳定。

3.3 电流能力广播

eMarker 内部有一个特定的数据结构。Source 通过读取这个结构,就能知道这根线缆能支持多大的电流。这个数据在 PD 协议中称为 “线缆 VBUS 电流能力”。

电流能力广播的机制:

eMarker 电流能力编码
编码(3 位)电流能力备注
000b默认 (3A)老旧设备或未编程
001b3A常规供电
010b5A大功率供电
011b保留—
100b 及以后保留/扩展—

Source 在成功识别 eMarker 后,会发起 USB PD Discover Identity 命令。eMarker 的应答包里包含了这个 3 位的电流能力字段,Source 根据这个字段决定自己可以与 Sink 协商的最大电流。

举个例子,如果 eMarker 报告“010b = 5A”,那么 Source 在后续的功率协商中,就可以向 Sink 提供最大 5A 的电流。如果 eMarker 报告的是“3A”,就算 Sink 想要 5A,Source 也不会同意——因为线缆会过热甚至熔化。

关键点: 电流能力广播不是由 Sink 决定的,而是由线缆中的 eMarker 决定的。Source 是最终的仲裁者。说白了,线缆说只能过 3A,Source 就必须遵守,哪怕 Sink 电源饿得嗷嗷叫也不行。

我记得有一次在调试一个 100W 的充电器时,发现插上某品牌的线缆后只能协商到 60W(3A),但这根线明明支持 5A。后来用协议分析仪抓包,看到 eMarker 返回的电流能力编码就是“3A”——那根线是假货!eMarker 没烧录正确的数据。从那以后,我们采购线缆时都会用专用的 eMarker 读写工具做一次性验证。

代码层面,如果你在写 Source 端的固件,典型的处理逻辑是:

// 伪代码:读取 eMarker 电流能力
void process_emarker_discover_identity_response(uint8_t *rx_data) {
    // 假设 rx_data 是 eMarker 返回的完整数据包
    uint8_t vbus_current_cap = (rx_data[3] >> 2) & 0x07; // 提取 3 位电流能力

    switch (vbus_current_cap) {
        case 0x00: // 默认 3A
            max_cable_current = 3;
            break;
        case 0x01: // 3A
            max_cable_current = 3;
            break;
        case 0x02: // 5A
            max_cable_current = 5;
            break;
        default:
            // 保留值,保守处理为 3A
            max_cable_current = 3;
            break;
    }

    // 更新供电协商的上限
    update_power_negotiation_limit(max_cable_current);
}

你想想看,这个逻辑其实很简单。但如果 eMarker 没被识别出来,或者没有 VCONN,这一整段代码就不会执行,默认电流会回退到 3A(甚至可能是 1.5A,取决于具体实现)。所以我习惯在固件里加一个超时判断:如果 500ms 内无法识别 eMarker,就假设线缆只支持基本电流。

警告: 千万别忽略 eMarker 的失效情况。有些廉价线缆根本没有 eMarker,但又能正常供电。如果你在固件里假设没有 eMarker 就认为是 5A,那你就等着返修吧。安全策略必须是:无 eMarker → 默认 3A 或 1.5A。

VCONN 与 eMarker 识别流程图 VCONN 供电与 eMarker 识别流程图 1. Type-C 连接建立 2. CC1/CC2 检测 (Rd/Ra) 3. 施加 VCONN (3.0~5.5V) 4. 发送 SOP' 序列 5. eMarker 返回电流能力 说明: • VCONN 必须稳定建立 • eMarker 需要 50ms 上电延迟 常见陷阱: • CC 比较器阈值偏移 • VCONN 过流保护缺失 • 无 eMarker 线缆默认 5A

这张图总结了我们这节的三个核心步骤:连接检测→VCONN 供电→eMarker 枚举。每一步都有细节需要把握,特别是 VCONN 的稳定性和 eMarker 的上电时序。

好,关于 VCONN 与 eMarker 的内容就到这。记住:VCONN 是线缆的生命线,eMarker 是线缆的身份证,电流能力广播是通信的语言。三者缺一不可。