1. 从充电头到智能管家:PD3.0能力消息到底是什么?
你可能已经习惯了用USB-C接口给手机、笔记本充电,插上就能用,感觉挺简单。但你知道吗,就在你插上充电线的那一两秒钟里,你的设备和充电器之间已经进行了一场复杂而高效的“商务谈判”。这场谈判的核心语言,就是USB Power Delivery(PD)协议。而我们今天要深挖的,就是PD3.0协议里最关键的“谈判文件”——能力消息。
简单来说,能力消息就是设备(Source,比如充电头)和受电设备(Sink,比如你的手机)互相“亮家底”的通信报文。充电头会通过一条 Source_Capabilities 消息告诉手机:“嘿,我能提供5V/3A、9V/3A、15V/3A和20V/2.25A这几种供电方案,你选一个吧。” 反过来,一个功能强大的笔记本(作为Sink时)也可能发一条 Sink_Capabilities 消息给充电宝,声明:“我需要至少45W的功率,电压范围最好是15V或20V。” 你看,这不再是简单的“有电没电”,而是变成了基于数据的、智能的电源能力协商。
为什么这很重要?因为现代设备的电源需求千差万别。一个蓝牙耳机可能只需要5V/0.5A(2.5W),而一台高性能游戏本在全速运行时可能需要20V/5A(100W)甚至更高。如果没有一套标准的“语言”来精确描述和匹配这些需求,要么是充电头“大材小用”,要么是设备“吃不饱”甚至充不上电。PD协议,特别是其数据消息中的能力消息,就是这套精密语言的核心语法。
我刚开始接触PD协议时,觉得这些术语很抽象。但后来我把它想象成点菜:菜单(能力消息)上列出了所有菜品(电源能力),每个菜品都有明确的规格(电压、电流)。你(Sink)根据胃口(功耗需求)点菜(发送请求),厨房(Source)确认后开始制作(供电)。而PD3.0带来的增强功率数据对象(APDO),就像是菜单上新增的“定制套餐”选项,允许你在一个连续的电压范围内“微调”,这尤其适用于像手机快充协议(如PPS)这样的场景,能实现更精细、更高效的充电管理。
所以,理解能力消息,就是理解PD协议智能供电的基石。它决定了你的设备能否“吃好”,能否安全、快速地获取能量。接下来,我们就拆开这份“菜单”,看看里面具体写了什么。
2. 拆解“能力消息”:结构、对象与核心规则
一条完整的PD数据消息,就像一封格式严谨的商务信函,由“信封”(消息头)和“正文”(一个或多个数据对象)组成。协议规定,只要消息头里的“数据对象数量”字段不是零,这就是一条数据消息,而不是简单的控制指令。这很好区分。
2.1 数据对象的“全家福”
在PD协议的世界里,有各种各样的“数据对象”来承载不同信息,就像信函里可以夹带合同、报价单、技术规格书等不同附件。主要包括这几类:
- 电源数据对象(PDO):这是今天的主角中的主角。它用于公开电源能力或需求。Source用它说“我能提供什么”,Sink用它说“我需要什么”。
- 请求数据对象(RDO):这是Sink的“点菜单”。Sink在收到Source的“菜单”(Source_Capabilities)后,从中选择一个或多个方案,通过RDO来

1万+

被折叠的 条评论
为什么被折叠?



