一、BC1.2快充协议的由来
BC1.2(Battery Charging Specification 1.2)是USB-IF(USB Implementers Forum)下属的电池充电(Battery Charging)工作组制定的协议,旨在规范通过USB端口为便携设备电池充电的标准。USB2.0协议规定了外设从USB充电器能抽取电流的最大值为500ma,随着USB设备对充电速度的逐渐要求,很明显500ma已经无法满足日益增长的快充需求,因此BC1.2快充协议应运而生,最早是基于USB2.0协议来实现的。引入了端口识别机制和分级检测流程,为后续快充技术奠定了基础。
二、BC1.2端口定义
BC1.2通过端口识别机制,允许设备安全获取更高的电流。分别有三种端口,SDP(标准下行端口)、DCP(专用充电端口)、CDP(充电下行端口)。
端口类型 | 电流支持 | 数据传输 | 典型应用场景 | 物理特性 |
---|---|---|---|---|
SDP(标准下行端口) | ≤500ma | 支持 | 电脑USB口、普通适配器 | D+/D-接15kΩ下拉电阻 |
DCP(专用充电端口) | ≥1.5A | 不支持 | 墙充、车载充电器 | D+与D-短接(≤200Ω) |
CDP(充电下行端口) | ≤1.5A(USB2.0) ≤3A(USB3.0) | 支持 | 带闪电标志的电脑USB口 | 含下拉电阻+内部检测电路 |
关键区别:
- DCP:无数据传输能力,物理短接D+/D-
- CDP:兼具快充与数据传输(如笔记本电脑的增强USB口)
三、BC1.2协议识别流程
BC1.2的识别过程如下图,分为4个步骤来识别。

3.1 VBUS Detect(VBUS检测)
每个PD(Portable Device,便携式设备)的VBUS电源线内部都有一个电压比较器,用来判断VBUS什么时候有效,和谁做对比呢?和内部的有效电压阈值做比较,可以理解是和一个定值比较,高于这个值就是有效的VBUS。参考值不是固定的,设计的时候保证它在0.8v~4v之间就可以。
3.2 Data Contact Detect(数据连接检测)
这个阶段不是必须的,因为USB端口可能支持数据协议也可能不支持。DP上有150mV(=1uA x 15k欧姆下拉电阻)的电压,DM上电压为0,这是一个硬件检测模块,用于帮助检测USB数据线与另外一端引脚的接触情况。端口如果不支持这个DCD阶段,就会在PD在attach event之后最大900ms内没检测到D+或ID PIN的连接,则会要求PD必须开始Primary Detection。如果PD支持这个DCD阶段,则能尽快检测数据线的连接,而后进行Primary Detection,无需等待超时的到来。
3.3 Primary Detection(首次检测)
该阶段作用主要用来识别是SDP还是charging port,即DCP和CDP。原理是 DP 发起,检测 DM。
- DP上加载0.6V电压,DM上电压为0,充电器类型是SDP
- DP上加载0.6V电压,DM上电压为0.6V,则为DCP/CDP,进入Secondary Detection做进一步区分
3.4 Secondary Detection(二次检测)
该阶段的作用是进一步区分DCP和CDP。原理是 DM 发起,检测DP。
- DM上加载0.8V电压,DP上电压为0,充电器类型是CDP
- DM上加载0.8V电压,DP上电压为0.8V,充电器类型是DCP
四、结尾
通过这篇文章的介绍,我们大致了解了BC1.2协议的原理,BC1.2是其他快充的基础,以便我们后面学习其他的快充知识。