前言:最近在做一款USB充电器,里面涉及的知识点比较多,所以在此记录一下。
BC1.2协议分类
由于USB接口供电的需求,其充电标准规范Battery Charging Specification-1.2(BC1.2)在2010年颁布,BC1.2规范规定了三种不同类型的USB接口:标准下行端口(Standard Downstream Port,SDP)、 专用充电端口(Dedicated Charging Port,DCP)和充电下行端口(Charging Downstream Port,CDP),以及识别应用端口类型的协议。
标准下行端口(Standard Downstream Port,SDP):PC的典型端口,这种端口的D+和D-上都有下拉电阻。最大电流为500mA。当USB处于这种模式时既可以为外部设备(手机充电、充电宝)充电,也可以起到数据传输的作用(U盘、手机上传/下载)。
专用充电端口(Dedicated Charging Port,DCP):适配器、车载充电器等端口,这种端口不可以传输数据,但可以提供1.5A 以上的电流,端口的D+和 D-短路,不需要枚举。
充电下行端口(Charging Downstream Port,CDP):这种端口即支持大电流1.5A充电,也可以兼容USB2.0的数据传输,因为可以支持传递数据,所以D+和D-也必须有下拉电阻。
BC1.2协议的三种端口形式如下图所示:
BC1.2协议识别过程:如下图所示
- VBUS检测:在PD端的电路可以检测VBUS,可以判断连接是否有效。电路中的参考电压VOTG_SESS_VLD一般在0.8V~4V之间,当总线上的电压高于这个值,即VBUS>VOTG_SESS_VLD,则说明USB连接有效。
- DCD(数据连接检测):这个阶段不是一定有的,因为USB端口是否支持数据连接是未知的,有可能支持也有可能不支持。如果这个阶段D+端口或者ID端口在900ms内都没有检测到连接,那么就必须开始首次检测。
- 首次检测:这个阶段主要是判断USB端口是充电应用还是传输数据。首先VDP_SRC和 IDM_SINK的开关闭合,将电压VDP_SRC接入D+端口,D+端口的电压一般为0.6V,然后检测D-端口电压。如果检测到D-端口电压小于规定的参考电压,即VD-<VDAT_REF则端口判定为SDP类型;若大于规定的参考电压,则判定为CDP类型或者DCP类型。
- 二次检测:该阶段是确认USB为充电口之后是否可以支持数据传输协议,这样就可以区分CDP和 DCP。首先VDM_SRC的开关闭合,这时将D-拉高至0.6V,然后检测D+的电压,如果D+小于规定的参考电压,即VD+<VDAT_REF则判定端口为CDP;如果大于规定的参考电压则判定端口为DCP。
识别三种端口的示波器波形图,如下图所示
标准下行端口(Standard Downstream Port,SDP):
专用充电端口(Dedicated Charging Port,DCP):
充电下行端口(Charging Downstream Port,CDP):
注:DP,即D+;DM,即D-。