原帖 | Jason | 2026-07-13 10:41 | 👍1 | 阅读约1
做USB充电相关开发,BC1.2是绕不开的地基规范。
BC1.2全称Battery Charging v1.2,属于USB2.0的扩展补充规范,核心就是给传统USB口定下一套统一的检测、上电、功率管控规则,用来区分电脑主机口、普通HUB、专用充电器、大电流充电口这四类场景,也是所有安卓早期快充的底层基石。
一、先搞懂BC1.2出台的背景
在这套规范落地前,USB2.0对便携设备(PD)的取电有着严格电流限制:
1. 总线挂起状态,最多只能取2.5mA电流
2. 上电未完成枚举配置,上限100mA
3. 正常配置完成后,最大也只有500mA
这个功率用来传数据没问题,但充电速度完全跟不上移动设备的电池需求。
BC1.2就补充了CDP、DCP这类特殊端口定义,设备接入这类接口时,未枚举阶段就能直接拉满1.5A电流充电,完美解决早期充电慢的痛点。
二、三类核心USB端口区分(硬件引脚差异是关键)
很多人会搞混SDP、DCP、CDP,三者硬件引脚设计完全不同,也是识别的核心依据,顺带区分开USB-A的D+/D-和Type-C的CC引脚逻辑:
1. SDP标准下行端口(电脑原生USB口)
D+、D-都自带下拉电阻,最大输出500mA,兼顾数据传输和基础充电,也是我们最常见的电脑USB接口。这里划重点:Type-C做主机端时,是在CC1、CC2放上拉电阻,和A口D+/D-的下拉设计一定要区分开,调试很容易踩坑。
2. DCP专用充电端口(手机适配器、车充)
直接把D+和D-短接,完全砍掉数据传输功能,稳定输出1.5A以上电流,就是我们日常插墙充电的充电器结构。不过苹果、三星早年出过不少非标短接方案,识别时需要软件单独兼容处理。
3. CDP充电下行端口(带闪电标识的电脑USB口)
同样保留D+/D-下拉电阻,既能跑USB2.0完整数据,又支持1.5A大电流充电,相当于SDP的功率升级版,也是现在拓展坞、多口HUB的主流设计。
三、BC1.2四步硬件识别流程(几乎全由充电IC自动执行)
整个识别流程不需要上层软件深度介入,芯片硬件时序走完即可,软件只需要使能检测、等待中断,或者延时100ms读取寄存器就能拿到端口类型,四个阶段顺序固定:
1. VBUS电压检测
设备端判定接入是否有效,只要总线上电压高于0.8V~4V区间的参考阈值,就判定USB物理连接成功。
2. DCD数据连接检测(可选阶段)
900ms内如果D+或者ID引脚没有检测到连接信号,直接进入首轮端口判定。
3. 首次检测:区分SDP / CDP+DCP
硬件把D+拉高至0.6V基准电压,采样D-引脚电压:低于参考值就是SDP端口,高于阈值则判定为充电类端口(CDP或DCP)。
4. 二次检测:最终分清CDP和DCP
切换把D-拉高到0.6V,再读取D+电压:低于参考值就是可以传数据的CDP,高于阈值就是纯充电用的DCP。
整套时序的波形图是调试排障的关键,遇到识别异常、反复重枚举的问题,用示波器抓D+/D-电平,基本都能定位根源。
四、从BC1.2延伸出来的快充技术分叉路
BC1.2只是基础识别规范,并不强制快充逻辑,各大厂商就在这个框架上衍生出两条完全不同的快充路线,也是现在行业两大流派:
- 高压快充路线(高通QC、联发科PE)
原理很简单,依靠提升电压拉高整体功率,依托BC1.2的D+/D-握手逻辑做电压档位切换。
优势是兼容性极强,沿用原有USB线材就能适配,迭代稳定;缺点是升压过程中发热严重,电能转换效率偏低。
- 低压大电流路线(OPPO VOOC闪充为代表)
不走升压方案,直接加大充电电流来提功率,好处是发热控制优秀、能量损耗小,短板很明显:必须定制专用线材和硬件,通用兼容性很差。
这里还要补充一个工程落地细节:电流越大,USB线材上的压降就越明显(U=IR),长线材、车载布线场景里,末端电压很容易跌到5V以下,线损补偿电路就是用来解决这个问题的。
五、技术迭代终点:USB PD快充标准
BC1.2最高只支持5V1.5A(7.5W)功率,已经完全跟不上现在设备的供电需求,基于Type-C接口的USB PD协议就成了最终替代方案。
它抛弃了D+/D-模拟电平识别,改用CC引脚数字通信协商功率,从最早100W一路迭代到PD3.1的240W,不管是手机、笔记本还是大功率外设,都可以用统一接口供电,也是目前行业唯一的通用快充标准。
相关笔记