USB PD 协议概述:从 5V 到 48V 的进化之路

你可能已经注意到了,这几年手机、笔记本的充电头越做越小,功率却越来越大。从早期诺基亚的 5V/1A,到如今笔记本标配的 100W 甚至 240W,背后其实就一个协议在撑腰 —— USB PD。我最早接触 PD 是在 2016 年,当时给一款 Type-C 接口的平板选充电方案,发现市面上全是私有快充协议,互不兼容,搞得用户出一趟差得背三四个充电器。嗯,从那时起我就意识到,USB PD 要干的事绝不仅仅是"充得快"。

1.1 为什么需要 USB PD?

说白了,传统 USB 的供电能力太弱了。早期的 USB 2.0 只能提供 5V/500mA,算下来才 2.5W,给四节 AA 电池充电都嫌慢。你想想看,要是用这个功率给一台 50Wh 的笔记本充电,得充 20 个小时,谁能忍?

传统 USB 供电的几大痛点:

  • 功率天花板低 —— USB 2.0 最大 2.5W,USB 3.0 也才 4.5W。
  • 电压固定 —— 只有 5V,没法做高压快充。
  • 协议分裂 —— 各家搞各的快充,高通 QC、联发科 PE、华为 SCP……互不握手。
  • 角色固定 —— 只有 Host 给 Device 供电,不能反向充电。

2010 年左右,平板电脑和智能手机的电池容量冲上 3000mAh,市场急需一个统一的大功率供电方案。我记得当时业内其实有好几个候选方案,但最终 USB-IF 决定在 Type-C 物理层之上重新设计一套供电协议,这就是 USB PD 的由来。

1.2 USB PD 的发展简史

从 USB 2.0 到 USB PD 3.1,供电能力的跃升可以用"夸张"来形容。我把关键节点按时间线列了出来:

  1. USB 2.0 (2000) —— 5V/500mA,纯粹的数据总线,供电只是"顺便"。
  2. USB BC 1.2 (2010) —— 把充电电流提高到 1.5A,但电压还是 5V。
  3. USB PD 1.0 (2012) —— 引入了独立的 CC 通道,供电不再走 D+/D-,功率提升到 10W。
  4. USB PD 2.0 (2014) —— 里程碑版本!电压升到 20V,电流 5A,功率直接冲到 100W,还支持双向供电。
  5. USB PD 3.0 (2017) —— 在 2.0 的基础上增加了 PPS (可编程电源),实现了毫伏级调压,对手机快充特别友好。
  6. USB PD 3.1 (2021) —— 推出 EPR (扩展功率范围),最大电压 48V,功率 240W,连显示器、电动工具都能带了。

我在项目中踩过一个坑:PD 2.0 时代有些充电器号称支持 100W,但用的 E-mark 线缆只支持 3A,结果插上 100W 负载后线缆直接过热保护。所以看版本还不够,线缆的电流能力也得盯紧。

1.3 关键版本对比

版本 最大电压 最大电流 最大功率 关键特性
USB 2.0 5 V 0.5 A 2.5 W 基本供电
BC 1.2 5 V 1.5 A 7.5 W 充电端口识别
PD 1.0 5 V 2 A 10 W 独立 CC 通道
PD 2.0 20 V 5 A 100 W 双向供电、替代模式
PD 3.0 20 V 5 A 100 W PPS、快充协议统一
PD 3.1 48 V 5 A 240 W EPR、SPR 共存

看到没?从 2.5W 到 240W,整整翻了 96 倍。而且每次版本迭代,都伴随着 Type-C 生态的成熟。我个人习惯把 PD 2.0 称为"成年版",因为从它开始 PD 才真正有了和私有快充掰手腕的资本。

1.4 核心概念速览

学 PD 协议,有几个词你绕不开。我把它们列出来,你先混个脸熟,后面每章都会反复用到。

  • Source / Sink —— 供电方和受电方。充电器是 Source,手机是 Sink。注意角色可以切换,这就是 DRP。
  • PDO (Power Data Object) —— 供电能力描述符。Source 把自己能提供的电压/电流组合打包成 PDO 发给 Sink。
  • RDO (Request Data Object) —— 请求描述符。Sink 看完 PDO 列表后,挑一个最合适的,用 RDO 告诉 Source。
  • 协商 (Negotiation) —— Source 和 Sink 之间通过 CC 线做消息交换,最终确定供电配置。
  • Capabilities 消息 —— Source 刚连上 Sink 时发的第一条消息,里面就是 PDO 列表。
重点记住:PD 协议的核心就是 Source 发 Capabilities → Sink 回 Request → Source 确认 Accept 这三步握手。后面所有复杂的流程都是在这个基础上扩展的。
实用技巧:抓 PD 通信时,优先看 Capabilities 消息里的 PDO 顺序。Source 通常会把最常用的电压/电流组合放在第一个 PDO,Sink 也倾向于选第一个能用的。所以如果你想调试快充优先级,调整 PDO 顺序是最直接的方法。

说到抓 PD 通信,我在项目里吃过一次亏。当时一款充电器在客户那边经常充不上电,我抓了日志才发现,Source 发出的 Capabilities 里第一个 PDO 是 5V/3A,但客户的设备只支持 9V。设备遍历完所有 PDO 发现没有匹配项,就直接切回 5V 默认档了。问题不在协议,而是 PDO 列表没覆盖目标设备的需求。所以做 Source 端设计时,我建议至少保留 5V、9V、15V、20V 四组固定 PDO。

USB PD 协议发展历程与核心概念 版本演进 USB 2.0 (2000) 5V / 500mA (2.5W) BC 1.2 (2010) 5V / 1.5A (7.5W) PD 1.0 (2012) 5V / 2A (10W) PD 2.0 (2014) 20V / 5A (100W) PD 3.0 (2017) 20V / 5A + PPS (100W) PD 3.1 (2021) 48V / 5A (240W) 核心概念 Source(供电方) 发出 Capabilities 消息 PDO(供电能力对象) 电压 / 电流组合列表 协商(Negotiation) ← 上一章 📖 返回目录 下一章 →