1. USB Type-C与PD协议概述

大家好,我是你们的讲师。今天咱们聊聊USB Type-C和PD协议。说实话,我刚入行那会儿,还在跟Micro USB较劲呢。现在Type-C遍地都是,变化真快。

这一章,我们不讲太深。先把基础打牢。你想想看,一个接口能传数据、能充电、还能当显示器用,这背后到底藏着什么门道?

1.1 USB-C接口的物理特性

先看接口本身。Type-C最直观的特点——正反都能插。这可不是什么小改进。我以前做产品时,客户投诉最多的就是「插反了」。Type-C直接解决了这个痛点。

接口内部有24个引脚。嗯,这里要注意,不是所有引脚都同时工作。具体分布如下:

引脚编号 信号名称 功能说明
A1, B1, A12, B12 GND 地线,共4根
A4, A9, B4, B9 VBUS 电源总线,共4根
A2, A3, B2, B3 D+, D- USB 2.0差分数据对
A6, A7, B6, B7 TX/RX 高速差分数据对(SuperSpeed)
A5, B5 CC1, CC2 配置通道,PD通信专用
A8, B8 SBU1, SBU2 边带使用,如音频、DisplayPort

看到CC引脚了吗?这是Type-C的灵魂。PD协议全靠它来握手。我有个朋友,做充电器时把CC线接错了,结果设备死活不充电。查了两天才发现。

关键点:CC引脚决定了供电方向、电流能力、以及是否支持PD协议。没有CC,Type-C就是个普通USB口。

1.2 PD协议发展历史

PD协议,全称Power Delivery。说白了,就是让USB口能「商量着充电」。早期USB只有5V/0.5A,充个手机都慢。后来有了BC 1.2,能到1.5A。但还是不够。

2012年,USB-IF推出了PD 1.0。当时支持20V/5A,100W。听起来很厉害对吧?但实际用的人不多。为什么?因为协议太复杂,芯片也贵。

到了2014年,PD 2.0出来了。这次做了大改动:

  • 固定电压档位:5V、9V、15V、20V
  • 电流最大5A
  • 支持双向供电
  • 引入Source/Sink角色

我记得2016年做第一个PD项目时,光是选芯片就花了两周。那时候供应商少,资料也少。现在好多了,随便一个MCU都支持PD。

2017年,PD 3.0发布。增加了PPS(可编程电源)。这个功能很实用。你想想看,手机电池快没电时,需要大电流;快充满时,需要小电流。PPS能动态调整电压,效率更高。

个人经验:我建议新手直接学PD 3.0。2.0虽然还在用,但新项目基本都上3.0了。尤其是PPS功能,做快充方案时特别好用。

1.3 PD与普通充电的区别

这个问题,我经常被问到。普通充电,说白了就是「给多少用多少」。充电器输出5V/2A,设备就按这个参数充。没有协商,没有反馈。

PD充电不一样。它像两个人谈判:

  1. 发现对方:CC引脚检测到设备插入
  2. 身份确认:谁是Source(供电方),谁是Sink(受电方)
  3. 能力声明:Source告诉Sink「我能提供这些电压电流」
  4. 请求协商:Sink说「我要9V/3A」
  5. 确认执行:Source同意,然后切换电压

整个过程,用CC线上的 BMC 信号传输。速率不高,但可靠性很好。我曾经用示波器抓过PD通信波形,每个数据包都有CRC校验,错不了。

避坑指南:我曾经遇到过一个问题——设备插上后,PD协商成功了,但就是不充电。后来发现是VBUS的MOS管没打开。记住,PD协议只负责「商量」,真正的电源开关还得硬件来控制。

最后说个实际对比。普通充电器,5V/2A,10W。PD充电器,20V/5A,100W。给笔记本充电,普通充电器要充一整天,PD充电器1小时搞定。差距就在这里。

嗯,这一章就到这里。下一章我们深入CC引脚,看看PD协议到底是怎么「握手」的。


公众号:蓝海资料掘金营,微信deep3321