- BC2 说明
- 参数说明
- 标准检测流程
VBUS检测(VBUS Detect)
PD(移动设备)中有个检测VBUS是否有效的电路,电路有一个参考值,高于这个值就认为是VBUS有效了。这个参考值不是固定的,设计的时候保证它在0.8V~4V之间就可以了。
认为Vbus有效,才会进行下面的阶段。
数据连接检测检测(Data Contact Detect)
缩写DCD。
DCD机制使用了向D+提供的电流源 IDP_SRC来检测PD连接host后,数据信号的连接。
手机开始做数据线连通性检测(Data contact Detect,DCD),手机在D+上施加一个小电流IDP_SRC(7~13uA),因为电脑的SDP端口在D+线上有一个下拉电阻RDP_DOWN(一般20K),因此D+上会有一个电压,图中阶段(1)电压实测为200mV,电压小于VLGC_LWO(0.8V),则认为USB的数据PIN已经连上。
协议规定:DCD阶段不是必须的,如果没有做DCD,阶段(a)将不存在,而是在Vbus有效后300~900ms,直接开始阶段(b);如果做了DCD,但900ms内检测不到D+电压小于VLGC_LWO(0.8V),也会强制进入阶段(b),既Primary Detection。DCD的存在只是为了缩短进入USB枚举过程(阶段(2))的时间,因为协议指出,一个上电的USB设备,要求在连接到host的 TSVLD_CON_PWD(1s)内建立连通。
主要检测(Primary Detection )
Primary Detection用来区分SDP和charging port。
如上图(b)部分, 手机(PD)在D+上施加电压VDP_SRC(0.5V~0.7V),之后手机检测D-上的电压,发现D-电压小于VDAT_REF(0.25V~0.4V),此时手机认为自己连接到了一个SDP(例如电脑)。因为SDP的D+和D-线,没有短接电阻或者开关,所以D+上的电压传不到D-上。PD最多从SDP汲取电流500mA。
如果手机检测D-上的电压,发现D-电压大于VDAT_REF(0.25V~0.4V),此时手机认为自己连接到了一个CDP(大功率充电+通信端口,例如电脑)或者DCP(专用充电端口,例如墙充)。因为此时,可以认为D+和D-是联通的。
实际上,在此阶段,DCP的D+和D-通过RDCP_DAT(max=200Ω)短接,;CDP的D+和D-没有连接,而是在D-上有个Vdm-src来输出0.5V~0.7V电压。
二次检测(Secondary Detection)
二次检测用来区分DCP还是CDP。
PD在检测到VBUS的 TSVLD_CON_PWD(max=1s) 时间内,如果PD还没做好被枚举的准备(即没有使能D+/D-线的1.5K上拉电阻),则要求PD进行二次检测。如果PD做好了被枚举的准备,则可以跳过二次检测,参考 Good Battery Algorithm。
手机在D-上施加电压VDM_SRC(0.5V~0.7V),之后手机检测D+上的电压,发现D-电压小于VDAT_REF(0.25V~0.4V),此时手机确定自己连接到了一个CDP。
DCP检测:PD在D-上使能 VDM_SRC,打开 IDP_SINK。比较D+和 VDAT_REF的电压,因为DCP内部通过 RDCP_DAT短接了D+/D-信号线,所以VDM_SRC这个电压源的电压使得(VDAT_REF < D+ < VDM_SRC)。当PD检测到(VDAT_REF < D+)时,就判断连接到了DCP上。而后要求PD使能 VDP_SRC 或者通过 RDP_UP上拉D+到 VDP_UP,同Section 3.3.2定义的Good Battery Algorithm。
VDM_SRC(D- Source Voltage 0.5~0.7V)
VDP_SRC(D+ Source Voltage 0.5~0.7V)
IDP_SINK(D+ Sink Current 25~175μA)
VDAT_REF(Data Detect Voltage 0.25~0.4V)
RDCP_DAT(Dedicated Charging Port resistance across D+/-max=200Ω)
RDP_UP(D+ Pull-up resistance 900~1575 Ω)
VDP_UP(D+ pull-up Voltage 3.0~3.6V )
- BC1.2 和QC0 流程:
- 高端的DCP(QC2.0充电器)
- (a) 属于BC1.2协议规定的识别过程,由于QC2.0充电器内部在USB插入后,D+和D-通过一个开关短路。我们能看到Primary Detection和Secondary Detection过程,D+和D-都有0.7V脉冲。这时手机认为自己连接到了DCP。
- (b) 完成DCP检测后,手机开始检测DCP是否还支持QC2.0协议。手机会在D+上施加0.7V电压,并且维持1.25s,之后充电器断开D+和D-间的开关。
- (c) 充电器断开D+和D-间的开关后,D-电压立马跌落到0V,并维持一段时间。此时手机知道这个充电器是支持QC协议的。
- (d) 手机按照如下规则,通知充电器,输出对应的电压。这个过程D+=0.7,D-=3.3。是continuous mode,表示
D+ | D- | HVDCPA Output | HVDCP B Output |
0.7V | 0.7V | 12V | 12V |
3.3V | 0.7V | 9V | 9V |
0.7V | 3.3V | Continuous Mode | Continuous Mode |
3.3V | 3.3V | Previous Voltage | 12V |
0.7V | 0V | 5V | 5V |
0V | 3.3V/0.7V/0V | 5V/Handshake Reset | 5V/Handshake Reset |
- (e) D+=0.7,D-=0,对应输出5V。
- (f) D+=3.3,D-=0.7,对应输出9V。
注意:0.7V代表0.325-2.000V,3.3V代表大于2.0V,都是一个范围。
- 低端的DCP(D+D-直接短路)
低端的充电器,仅仅支持BC1.2协议,甚至只支持到BC1.0,充电电流500mA。这种充电器的D+和D-线之间用一个0ohm电阻直接连接。从下图可以看到,Vbus有效后,进行了Primary Detection和Secondary Detection。之后D+和D-一直拉高,1.25s后也没有掉下来,这是手机知道这个充电器仅支持BC1.2协议,不会再做其他动作。
参考资料:
https://blog.csdn.net/AirCity123/article/details/103055442