你可能会想:PD我懂,快充嘛。USB我也懂,传数据嘛。PDUSB?把俩加一块儿了?

没错,PDUSB = USB通信 + PD功率传输,两者二合一。但这个结合不是简单的边充电边传数据,而是用同一根线、同一个接口,动态协商:现在谁供电、供多少、数据怎么跑。
01
PDUSB并不是一种新的接口形状。它就是在Type-C接口上,同时实现了USB数据传输和PD功率传输。
以前USB 2.0时代,5V 500mA,啥也别谈,插上就是固定值。后来BC1.2,最高能到5V 1.5A,但也就是简单识别一下,稍微提高了功率。
再后来PD来了:5V、9V、15V、20V、28V、36V、48V……电流能到5A,功率最高240W。

而PDUSB,就是结合了PD功能的USB接口。
02
你可能会问:PDUSB是怎么来的?前面说了,PDUSB=USB+PD。
USB数据传输,这个一直有,Type-C本来就能传数据。PD功率传输,这个后来加的,让Type-C能动态供电。
那他们是怎么走到一起的?两个原因。
第一个:USB-C一统江湖了。
上到笔记本大功率充电,下到电动牙刷这种小设备,大家都在Type-C上塞功能。你想省体积、省接口数量,就必须让一个口既能供电又能传数据。
以前一个设备要两个口,一个充电,一个传数据。现在一个Type-C就能全搞定,确实方便了很多。

第二个:PD协议本身成熟了。
从PD 2.0到PD 3.2,电压从5V一路干到48V,功率到了240W。协议稳了,厂商才敢用。
这两个条件凑齐,USB-C口既能传高速数据又能动态供电,就成了自然而然的事。
03
PDUSB的工作,按时间顺序分为以下几个阶段。下面咱们逐一拆解。
当两个USB-C设备物理插接时,CC线首先承担连接检测功能。这正好承接了我之前两篇文章讲的内容。

连接检测完成后,Source知道自己要供电了。它会通过CC线发送第一条数据消息——Source Capabilities,用于声明其供电能力。

消息里包含一组 PDO(Power Data Object,功率数据对象)。每个PDO描述一档电压和电流组合,例如:5V/3A、9V/3A、15V/3A、20V/5A。这些消息通过BMC编码在CC线上串行发送。
Sink收到Source Capabilities后,会从里面挑选一个自己需要的档位,并发送Request消息回去。

Sink根据自身需求(如电池电量)选择一个PDO。它可以请求该PDO下的更低电流(比如PDO是20V/5A,但Sink只需要20V/2A)。Sink发送RDO,明确告诉Source自己的需求。Source收到后检查自己能否满足。如果可以,就回复Accept
。双方确认后,Source开始调整输出电压到请求值。
Source的输出电压稳定后,会发PS_RDY(Power Supply Ready)消息通知Sink。

Source内部DC-DC或电源管理单元完成电压调整,稳定在请求值。通过CC线发送PS_RDY控制消息。Sink收到后,才开始从VBUS总线上拉取电流。至此,大功率供电正式开始,同时USB数据通道也可正常工作。
那USB数据是怎么跑的?
讲完供电,咱们再来说说USB数据通信。
在Type-C接口中,PD协商和USB数据传输走的是两套完全独立的通道。CC线专门跑PD协议,负责电压电流协商和角色识别;而D+/D-或TX/RX差分对专门跑USB数据,负责文件传输、音视频等。这两套通道物理隔离,互不干扰。

所以即使在PD协商过程中,比如从5V切换到20V的时候,USB数据通信依然可以正常进行,不会中断。连接初期VBUS默认5V供电,USB数据按线缆能力正常传输;PD协商进行中,CC线上在跑PD报文,同时TX/RX线上可能正在传文件或输出视频,两边各忙各的;协商完成后VBUS切换到更高功率,数据通道仍走原来的高速信号线,没有任何干扰。

角色互换的转换图

04
了解了工作过程,咱们再来看看实际应用中怎么实现PDUSB。
在早期想玩PDUSB挺折腾的。你得有一颗带USB的MCU,再另外挂一颗独立的PD控制器。两颗芯片,板子面积大一截,BOM成本上去一截,调试的时候还得两边对协议。
这几年情况变了。有厂商开始把USB和PD做到一颗MCU里。
比如大家都比较熟悉的一家专业做USB芯片的公司——南京沁恒。

他们在USB上积累很久了。早在2021年,就在通用MCU里集成了480Mbps高速USB 2.0 PHY。PD这边呢?他们从2018年就开始做PD产品线,PHY也是自研的。把这两块放到一颗MCU里,就是顺理成章的事。
所以现在沁恒有一批MCU,直接带PDUSB接口。你选一颗,USB通信和PD功率协商都搞定,不用外挂。
打开他们公司官网,就可以找到一些带了PDUSB接口芯片,仔细一数有10多款,下面截取了部分截图。

咱们随意挑几个看看:
CH32H417:双核,带USB3.0,适合复杂系统;
CH32X315:4个高速ADC,带USB3.0,适合数据采集;
CH32X035:基础款,性价比高。
从基础的PDUSB应用,到带预驱的电机驱动,到双核、USB3.0,覆盖得很广。
而且它们的共同特点是:集成度高。你不需要在外面再挂一颗USB PHY或独立PD控制器,一颗芯片就可以搞定大部分工作。此外沁恒还有一些支持PDUSB的接口芯片,比如支持Type-C和反向100W快充的USB3.0七口HUB芯片CH637、四口HUB芯片CH634。
05
对咱们硬件工程师来说,它的价值很明显:少一个器件、少一条线、少一份折腾。
而沁恒这类公司做的,无非是把本来需要两颗甚至三颗芯片才能搞定的事,用自研PHY和多年USB积累,揉进一颗MCU里。你不用关心他们具体是怎么做的,你只需要知道:选一颗带PDUSB的MCU,你的板子可以更小、系统整合度更高、调试更省心。