BC1.2协议(学习笔记)

1.简介

1.1 范围

电池充电工作组(Battery Charging Working Group)负责制定规范,定义限制以及检测、控制和报告机制,以允许设备从专用充电器、host、hub和充电下行端口汲取超过USB 2.0规范的电流(500mA)进行充电和/或通电。这些机制与兼容USB 2.0的主机和外围设备向后兼容。

1.2 背景

个人电脑上的USB端口是便携式设备(PD/Portable Devices,注意不是USB PD快充协议)为电池充电提取电流的方便场所。这种便利性导致了USB充电器的诞生,它只需露出USB标准A型插座。这允许PD使用相同的USB电缆从PC或USB充电器充电。

如果PD连接到USB host或hub,则USB 2.0规范要求连接后,PD的功耗必须小于:

  • 如果总线挂起(suspend),平均电流为2.5mA
  • 如果总线未挂起且未配置,则为100mA
  • 如果总线未挂起并配置为500mA

如果PD连接到充电端口(即CDP、DCP、ACA Dock或ACA),则允许汲取IDEV_CHG(<1.5A),而无需配置或遵循挂起规则。//BC1.2是否可以支持到3A?

为了让PD确定允许从上行USB端口抽取多少电流,需要有允许PD区分标准下行端口充电端口的机制。本规范仅定义了这些机制。

由于PD可以连接到来自不同制造商的USB充电器,因此所有PD都提供可接受的用户体验是很重要的。本规范定义了兼容USB充电器的要求,在本规范中称为USB充电器

如果PD的电池没电(Dead Battery)或弱电量(Weak Battery),则USB-IF在USB 2.0规范中发布的连接时序工程变更通知(ECN/Connect Timing Engineering Change Notice)允许该设备在连而未通(attached but not connected)时达到电流IUNI(Unit load Current<100mA)

与本ECN相关的条件包含在本规范第2节中,并被称为无电电池规范(DBP/Dead Battery Provision 老外一般称电池耗尽为Dead Battery)

1.3 参考文献

以下技术规格书包含与电池充电技术规格相关的信息。

  • OTG and Embedded Host Supplement, Revision 2.0
  • USB 2.0 Specification
  • USB 3.0 Specification

1.4术语定义

本节包含本规范中使用的一些术语的定义。

1.4.1配件充电器适配器

配件充电器适配器(ACA/Accessory Charger Adaptor)是一种允许单个USB端口同时连接到充电器和其他设备的适配器

在提及ACA时使用以下术语:

  • ACA-A:一种ID电阻为RID_A的ACA   //ID管脚为USB检测管脚?
  • ACA-B:一种ID电阻为RID_B的ACA
  • ACA-C:一种ID电阻为RID_C的ACA

有关ACA的详细信息,请参见第6节内容。

1.4.2 ACA-Dock

ACA-Dock是一个具有一个上行端口和零或多个下行端口的扩展坞(docking station,dock在英文里是船坞/码头的意思)。上行端口可以连接到PD,并能够将电流ICDP提供(Source)给PD。ACA Dock通过在USB空闲期间使能VDM_SRC,并通过RID_A电阻将ID下拉到GND,向PD发出ACA Dock的信号。详见第3.2.4.4节。

1.4.3 Attach vs Connect

本规范对单词attachconnect进行了区分。当下行设备与上行端口之间有物理电缆时,下行设备被视为attached(连而未通)到上行端口。

当下行设备attached到上行端口,且下行设备通过1.5 kΩ电阻将D+或D-数据线拉高以进入Low-Speed, Full-Speed或High-Speed信号时,下行设备被认为connected(已连通)到了上行端口。

1.4.4 充电下行端口

充电下行端口(CDP/Charging Downstream Port)是设备上符合USB 2.0 host或hub 定义的下行端口,但应支持此处指定的充电下游端口功能。

当CDP未连接到外围设备,在其D+线上感应到大于VDAT_REF但小于VLGC的电压时,CDP应在其D-线上输出VDM_SRC的电压。从连接外围设备到断开外围设备,CDP不得在其D-线上输出VDM_SRC电压。

1.4.5 充电端口

充电端口是DCPCDPACA DockACA(四种充电器类型)

1.4.6 电池耗尽阈值

电池耗尽阈值(Dead Battery Threshold)被定义为电池的最大充电水平(maximum charge level) ,低于该阈值时设备将无法成功上电。

  •  Dead Battery是指低于电池耗尽阈值的电池。

1.4.7 专用充电端口

专用充电端口(DCP/Dedicated Charging Port)是设备上的下行端口,通过USB连接器(connector)输出电源,但无法枚举下行设备。DCP应以平均电压VCHG提供IDCP供电电流。

DCP应将D+线短接至D-线。

1.4.8 下行端口

在本规范中,下行端口是指标准下行端口(SDP)或充电下行端口(CDP)

1.4.9 Micro ACA

Micro ACA是一种在辅助端口上带有Micro-AB插座的ACA。

1.4.10 便携式设备PD

本规范中使用的PD是符合本规范和USB 2.0规范的设备,并且可以从USB汲取充电电流(如手机)

1.4.11 额定电流

充电端口的额定电流是指充电端口的VBUS输出并保持电压为VCHG的电流值。DCP的额定电流要求在IDCP以内,CDP或ACA-Dock的额定电流则要求在ICDP以内。

1.4.12 标准ACA

标准ACA是指配件端口上带有标准A插座的ACA。

1.4.13 标准下游端口

在本规范中,标准下行端口(SDP)是指符合USB 2.0定义的host或hub的设备上的下行端口。SDP预期具有好电池(good battery)的下游设备:

  • 在未连接或挂起时的平均电流小于2.5 mA,
  • 在连接且未配置且未挂起时最大电流可达100 mA,
  • 如果配置且未悬挂则最大电流可达500 mA。

当下游设备连接到SDP时,可以对其进行枚举

SDP通过两个15kΩ(typical)电阻将D+和D-线接地。

SDP可以具有感测PD何时将D+线驱动到VDP_SRC的能力,然后相应地管理其电源状态。当attached但未connected时,只要PD汲取的电流超过ISUSP,就需要将D+驱动至VDP_SRC,如Dead Battery Provision所述。

1.4.14 USB充电器

USB充电器是一种带有DCP的设备,例如墙壁适配器或汽车电源适配器。

1.4.15 弱电池阈值

弱电池阈值(Weak Battery Threshold)被定义为电池的最小充电水平(minimum charge level,高于该阈值,设备就可以确保能够成功上电。

  • 弱电池(或称为电池电量不足)是指高于电池耗尽阈值(Dead Battery Threshold)且低于弱电池阈值(Weak Battery Threshold)。弱电池的设备可能或者不能(may or may not)接通设备电源。
  • 好电池(Good Battery)是指高于弱电池阈值的电池。

1.5 参数值

本规范使用参数名称,而不是参数值。所有参数值见第5节。

1.6 OTG注意事项

Dead Battery的PD无法区分PC和OTG A设备。因此,PD将对两者进行相同对待。

如果OTG A设备连接到电池电量不足的PD,则OTG A设备没有义务向其目标外围设备列表(TPL/Targeted Peripheral List)上的任何设备提供比正常情况下更多的电流。

在等待B设备连接的同时,允许OTG A设备在TA_WAIT_BCON时间后停止驱动VBUS(有关值请参阅OTG 2.0增补)。因此,当attached到OTG A设备时,如果没有connected,则具有Dead Battery的PD可能没有时间进行显著的充电。

1.7 Super speed注意事项

USB 3.0中定义的SuperSpeed端口可以实现本规范中定义的充电器检测机制。当PD检测到它连接到SuperSpeed端口时,ICFG_MAX变为900mA,并且IUNIT变为150mA。

2.Dead Battery Provision

2.1 背景

USB 2.0规范允许下行设备在设备未连接或总线挂起时从SDP汲取高达ISUSP(SUSP为suspend缩写)的挂起电流(<2.5mA)。如果总线未挂起,并且设备已配置,则USB 2.0允许设备达到ICFG_MAX(CFG为configured缩写,配置电流<500mA),具体取决于host使能的配置。

对于Dead Battery或Weak Battery的PD来说,未连接时仅限流ISUSP的限制可能会产生问题。有些PD需要超过IUNIT(Unit Load Current 负载电流<100mA)几秒钟才能通电。因此,Dead Battery或Weak Battery的PD在连接到SDP时可能无法通电,如果它们在未连接时只能提取ISUSP。

USB 2.0允许作为复合设备的PD在连而未通(attached but not connected)或挂起期间为每个下行端口汲取ISUSP的电流。

2.2 DBP–未配置条款

Dead Battery或Weak Battery的PD可以在未配置时使用DBP(Dead Battery Provision)从下行端口提取IUNIT(max<100mA),前提是其行为如下:

  • 超时将电流降至ISUSP(max<2.5mA)

         o 如果PD未准备好connect,并且在attatch后的TSVLD_CON_WKB(Session valid to connect for PD with Dead or Weak Battery)时间内未被枚举,则它应将电流降至ISUSP连接但未连接时启用VDP_SRC

        o PD应在attach后TDBP_ATT_VDPSRC(max<1s)时间内使能VDP_SRC(0.5

        o PD应在禁用VDP_SRC的TDBP_VDPSRC_CON(max<1s)内connect

  • 使用电流上电并枚举,或尽快达到弱电池阈值并枚举

        o PD不得使用DBP电流执行不相关的任务,例如:

            充电超过弱电池阈值

            打电话

            播放歌曲、视频或游戏

            建立无线连接

       o只有能够独立使用内部电池供电的设备才允许使用DBP

  • 通过浪涌测试(inrush test)

       oDead or Weak Battery的PD应通过USB-IF可靠性浪涌测试

未配置状态包括PD attached but not connected的时间,以及PD已connect且未配置的时间。PD通过从host接收SET_CONFIGURATION命令而进入配置状态。

2.3 DBP–配置条款

具有Dead/Weak Battery的PD可以在配置时使用Dead Battery Provision(DBP)从标准下行端口(SDP)提取其配置的电流(最高可达ICFG_MAX,max<500mA),并且不必通过USBCV测试(USB命令验证器),前提是其行为如下:

  • 对收到的令牌(token)作出响应

       o PD应使用NAK或任何其他有效的USB响应,来响应发送给它的任何令牌

  • 响应USB reset

       o一旦收到USB reset,PD应将其电流降至IUNIT(max<100mA)。在接收到reset时,允许PD disconnect。disconnect时,允许PD使用DBP–未配置条款。

  • 响应USB suspend

       o在收到USB suspend后,PD应保持connected,并减少其到ISUSP的电流,否则应disconnect。disconnect时,允许PD使用DBP–未配置条款。

  • 在超时或disconnect后提供完整的USB功能

       o在attach TDBP_FUL_FNCTN(<15min)一段时间后,PD应保持connect并能够通过USBCV,或者应disconnect。disconnect时,允许PD使用DBP–未配置条款。

  • 使用电流达到弱电池阈值,并尽快提供完整的USB功能

       o PD不得使用DBP电流执行不相关的任务,例如:

           充电超过弱电池阈值

           打电话

           播放歌曲、视频或游戏

           建立无线连接

  • 达到Weak Battery Threshold时提供完整的USB功能

       o如果在attatch后TDBP_FUL_FNCTN(<15min)之前出现这种情况,则PD应在达到Weak Battery Threshold时提供完整的USB功能。

  • PD在attatch的TDBP_INFORM(<1min)时间内通知用户,它正在充电,不可用于其他功能

3.充电端口检测

3.1概述

图3-1显示了连接到SDP或充电端口的PD的几个示例。

BC1.2协议(学习笔记)_第1张图片

  • 在第一个示例中,Std-A到Micro-B可拆卸电缆(Detachable Cable)用于将PD连接到SDP、CDP或DCP。
  • 在第二个示例中,DCP有一根固定电缆(Captive cable)。该电缆没有D+或D-导线,而是将Micro-B插头上的D+和D-引脚短路。
  • 在第三个例子中,ACA需要有一根连接到便携式设备的固定电缆,该电缆需要有D+、D-和ID的电线。ACA还需要有一个可以连接到DCP或CDP的端口。第6.2.1节介绍了该端口的电缆。
  • 在第四个例子中,ACA-Dock根本没有电缆,而是有一个固定的Micro-A插头。ACA-Dock接收来自专用充电器(Proprietary Charger),的电源,该充电器通过专用电缆连接到ACA-Dock。

3.2 充电器检测硬件

本节简要介绍了用于进行充电器检测的硬件。以下部分提供了有关其操作的更多详细信息。

3.2.1概述

图3-2显示了PD的充电器检测硬件。

BC1.2协议(学习笔记)_第2张图片

3.2.2 VBUS检测

每个PD应具有会话有效比较器,用于检测VBUS何时大于其内部会话有效阈值(session valid threshold)。其内部会话有效阈值应在VOTG_SESS_VLD(OTG Session Valid Voltage,min=0.8V,max=4V)范围内。

3.2.3 DCD 数据接触检测

3.2.3.1 概述

数据接触检测(DCD/Data Contact Detect)使用电流源IDP_SRC来检测数据引脚在attatch事件期间何时接触。PD并未要求必须实施DCD检测。如果PD未实现DCD,则应在attatch事件后等待TDCD_TIMEOUT(300ms分钟的时间,然后再启动初级检测(Primary Detection)

每当PD连接到SDP或CDP时,DCD能够检测数据引脚接触。DCD的主要好处是,它允许PD在数据引脚接触后立即启动初级检测,然后进行connect,而无需等待计时器到期。根据USB Connect Timing ECN,通电的USB device需要在attatch事件的TSVLD_CON_PWD(Session valid to connect time for powered up peripheral,max=1s)时间内connect到USB host。

对于连接到DCP或ACA的PD的大多数情况,DCD也能够检测数据引脚接触。DCD可能不起作用的情况包括:

  • 漏电流过大的DCP
  • 带充电器的ACA,和辅助端口(Accessory Port)上的FS或HS B设备
  • ACA-Dock
  • 将D+拉高的PS2端口
  • 将D+拉高的专用充电器

由于DCD并非在所有情况下都起作用,因此如果在D+或ID引脚上未检测到引脚接触,则需要在attatch事件后的TDCD_TIMEOUT(300ms最大值时间内进行PD初级检测。参见第3.3.2节。

  //即然DCD起不起作用,PD都将进入初级检测阶段,那存在的意义在哪里?对充电器能否正确检测有什么影响呢?

3.2.3.2 问题描述

USB插头和插座的设计使得当插头插入插座时,电源引脚在数据引脚接触之前进行接触。如图3-3所示。

BC1.2协议(学习笔记)_第3张图片

因此,当PD连接到上行端口时,PD将在数据引脚接触之前检测到VBUS。电源引脚和数据引脚接触的时间取决于插头插入插座的速度。已经观察到有超过200毫秒的延迟。

PD区分充电端口和SDP的方式是查看数据线

  • 如果PD在数据引脚进行接触之前进行初级检测,则初级检测协议使得PD将确定其attatch到SDP。
  • 如果PD attatch到DCP,并且错误地确定它attatch到SDP,则PD将在等待枚举时汲取电流ISUSP。由于DCP不会枚举PD,因此PD将无法充电

3.2.3.3 DCD检测,未连接

图3-4显示了PD not attatched到远程设备的情况。

BC1.2协议(学习笔记)_第4张图片

 数据接触检测DCD的协议如下:

  • PD检测到VBUS已断言(asserted)
  • PD打开IDP_SRC和D-下拉电阻
  • PD在TDCD_DBNC(Data contact detect debounce,min=10ms)时间内等待D+线为低电平
  • PD关闭IDP_SRC和D-下拉电阻

当没有任何东西attatch到PD时,D+线保持高电平。IDP_SRC(Data Contact Detect Current Source,7uA的最小值使得其能够将D+保持在VLGC_HI(Logic High,2.0V以用于由于RDAT_LKG(Data line leakage resistance,RDAT_LKG>300kohm)和VDAT_LKG(Data Line Leakage Voltage,0V而导致的PD中的最坏情况漏电。

3.2.3.4 DCD检测,SDP

图3-5显示了PD连接到SDP的情况。

BC1.2协议(学习笔记)_第5张图片

 当PD连接到SDP时,D+线被SDP中的RDP_DWN(D+ Pull-down resistance,14.25kohm拉低。IDP_SRC的最大值使得对于RDAT_LKG、VDAT_LKG和RDP_DWN的最坏值,RDP_DWW将D+拉到VLGC_LOW(Logic Low,0V

3.2.4 初级检测

初级检测用于区分SDP和不同类型的充电端口。PD需要实现初级检测。

3.2.4.1 初级检测,DCP

图3-6显示了当PD连接到DCP时,初级检测是如何工作的。

BC1.2协议(学习笔记)_第6张图片

 在初次检测期间,PD应打开VDP_SRC(D+ Source Voltage,0.5V和IDM_SINK(D- Sink Current,25uA。由于DCP需要通过电阻RDCP_DAT(Dedicated Charging Port resistance across D+/-,RDCP_DAT<200ohm)将D+短接至D-,因此PD将检测到D-上接近VDP_SRC的电压。

PD应将D-上的电压与VDAT_REF(Data Detect Voltage,0.25V进行比较。如果D-大于VDAT_REF,则允许PD检测其是否连接到DCP或CDP。PD也可以选择性地将D-与VLGC(Logic Threshold,0.8V进行比较,并且只有在D-大于VDAT_REF但小于VLGC的情况下才确定其连接到DCP或CDP,原因如下:

PS2端口将D+/-拉高。如果PD连接到PS2端口,并且PD仅检查D-是否大于VDAT_REF,则连接到PS2端口的PD将确定其连接到DCP或CDP,并继续汲取电流IDEV_CHG(Allowed PD Current Draw from Charging Port,IDEV_CHG<1.5A)。如此大的电流可能会损坏PS2端口。只有当D-小于VLGC时,才确定它连接到DCP或CDP,PD才能避免对PS2端口造成损坏。

另一方面,一些专有充电器也会将D+/-拉高。如果PD连接到这些充电器中的一个,并且它确定它没有连接到充电器,因为D-大于VLGC,那么PD将确定它连接到SDP,并且只能汲取电流ISUSP(Suspend current,ISUSP<2.5mA)

是否将D-与VLGC进行比较取决于PD是否更有可能连接到PS2端口或专用充电器。

3.2.4.2 初级检测,CDP

图3-7显示了当PD连接到CDP时,初级检测是如何工作的。

BC1.2协议(学习笔记)_第7张图片

当远程设备未连接到CDP时,CDP需要以两种方式中的任意一种进行操作。允许CDP进行操作的第一种方式是在断开连接的TCP_VDM_EN(Time for Charging Port to assert VDM_SRC on D-,TCP_VDM_EN<200ms)时间内打开VDM_SRC,然后在连接的TCP-VDM_DIS(Time for Charging Port to remove VDM_SRC on D-,TCP-VDM_DIS<10ms)时间内禁用VDM_SRC。使用此选项时,不需要CDP来使能IDP_INK或将D+与VDAT_REF进行比较。

允许CDP的第二种方式是将D+与VDAT_REF和VLGC进行比较。当D+大于VDAT_REF且小于VLGC时,CDP应打开VDM_SRC。当D+小于VDAT_REF或大于VLGC时,CDP应禁用VDM_SRC。请注意,需要CDP将D+与VLGC进行比较,以便在PD连接时禁用VDM_SRC。时序见第3.4.2节。

在初级检测期间,PD应打开VDP_SRC和IDM_SINK。PD应将D-上的电压与VDAT_REF进行比较。如果D-大于VDAT_REF,则允许PD确定其连接到DCP或CDP。PD也可以选择性地将D-与VLGC进行比较,并且只有在D-大于VDAT_REF但小于VLGC的情况下才确定其连接到DCP或CDP。详见第3.2.4.1节。

3.2.4.3 初级检测,SDP

图3-8显示了当PD连接到SDP时,初级检测是如何工作的。

BC1.2协议(学习笔记)_第8张图片

在初级检测期间,PD应打开VDP_SRC(D+ Source Voltage,0.5V和IDM_SINK(D- Sink Current,25uA。当VDP_SRC的电压被施加到D+时,SDP将继续通过RDM_DWN(D- Pull-down resistance,14.25kohm拉低D-。

PD应将D-上的电压与VDAT_REF进行比较。如果D-小于VDAT_REF,则允许PD确定其连接到SDP。PD也可以选择性地将D-与VLGC进行比较,并在D-大于VLGC的情况下确定其连接到SDP。详见第3.2.4.1节。

3.2.4.4 初级检测,ACA-Dock

图3-9显示了当支持ACA检测的PD连接到ACA-Dock时,初级检测是如何工作的。

BC1.2协议(学习笔记)_第9张图片

 ACA-Dock是一个具有一个上行端口和零个或多个下行端口的扩展坞。上行端口可以连接到PD,并且能够向PD提供ICDP(Charging Downstream Port Rated Current,1.5A

当ACA Dock通电,但其上行端口未连接任何东西时,需要按如下方式偏置其上行端口上的引脚:

  • VBUS    VCHG
  • D+         VDP_UP
  • D-          VDM_SRC
  • ID          RID_A
  • GND      GND

VBUS引脚处于VCHG,因为ACA Dock已准备好向PD供电。由于VBUS引脚大于VOTG_SESS_VLD(OTG Session Valid Voltage,0.8V,所以ACA Dock需要通过RDP_UP(D+ Pull-up resistance,900ohm将D+拉至VDP_UP(D+ pull-up Voltage,3.0V

只要D+/-在TCP_VDM_EN(Time for Charging Port to assert VDM_SRC on D-,TCP_VDM_EN<200ms)时间内处于非活动状态(处于空闲J状态),就需要ACA Dock来打开VDM_SRC。而D+/-线上如果有任何活动,则需要ACA Dock在TCP_VDM_DIS(Time for Charging Port to remove VDM_SRC on D-,TCP_VDM_DIS<10ms)时间内禁用VDM_SRC(D- Source Voltage,0.5V

ACA Dock在上电的时候,需要在ID上提供对地阻抗RID_A(ACA ID pull-down, OTG device as A-device ,122kΩ,未上电时,需要在ID上提供对地阻抗RID_FLOAT(ACA ID pull-down when ID_OTG pin is floating,RID_FLOAT>220kΩ)

当支持ACA的PD检测到以下情况时,应确定其连接到ACA-Dock:

  • VBUS>VOTG_SESS_VLD
  • D+处于VLGC_HI(Logic High,2.0V
  • VDAT_REF(Logic Threshold,0.8V
  • ID为RID_A

请注意,连接到ACA-Dock的PD需要D-和VLGC比较。如果PD连接的ACA其辅助端口上有LS外围设备的,则PD的ID引脚将通过RID_A接地,并且D-引脚将处于VLGC_HI而不是VDM_SRC。为了区分带LS设备的ACA和ACA Dock,PD需要检测D-是否高于或低于VLGC

PD中的VDP_SRC应使得当ACA Dock通过RDP_UP将D+拉至VDP_UP时,D+保持在逻辑高。其原因是ACA Dock无法检测到D+上的活动,这可能导致其在PD完成其初级检测之前关闭VDM_SRC。

3.2.4.5 初级检测,Micro ACA

图3-10显示了当支持ACA检测的PD连接到Micro ACA时,初级检测是如何工作的。

BC1.2协议(学习笔记)_第10张图片

只要VBUS大于VOTG_SESS_VLD,就需要支持ACA检测的PD来监测ID引脚上的电阻。如果ID电阻是RID_B或RID_C,则PD知道它连接到ACA。如果ID电阻为RID_A,则PD可以连接到辅助端口上带有B设备的ACA,也可以连接到ACA-Dock。

为了区分带B设备的ACA和ACA Dock,PD应将D-上的电压与VDAT_REF和VLGC进行比较,以检测其连接的内容,如下所示:

  • D-
  • VDAT_REF
  • VLGC

PD应在attach后和connect前对D-进行上述检测,如Good Battery算法所示。

进行初级检测后,支持ACA检测的PD应继续监测ID线。如果该电阻发生变化,PD应根据第6.2.7节中定义的状态机做出响应。

ACA需要对DP_CHG和DN_CHG线路进行初级检测,以检测充电端口是否连接到ACA充电端口。该检测使用黄色高亮显示的线路进行,如第6.2.6节所述。

3.2.5 二次检测

二次检测可用于区分DCP和CDP。需要未准备好在检测VBUS的TSVLD_CON_PWD(Session valid to connect time for powered up peripheral,TSVLD_CON_PWD<1s)时间内枚举的PD来实现二次检测。允许准备枚举的PD绕过二次检测。参见第3.3.2节Good Battery Algorithm。

3.2.5.1二次检测,DCP

图3-11显示了当PD连接到DCP时,二次检测是如何工作的。

BC1.2协议(学习笔记)_第11张图片

在二次检测期间,PD应在D-上输出VDM_SRC(0.5V,打开IDP_LINK(D+ Sink Current,25uA,并将D+上的电压与VDAT_REF进行比较。由于需要DCP通过RDCP_DAT的电阻将D+短接到D-,因此D+上的电压将接近VDM_SRC,高于VDAT_REF(Data Detect Voltage,0.25V

如果PD检测到D+大于VDAT_REF,则知道它已连接到DCP。然后需要打开VDP_SRC或通过RDP_UP将D+上拉至VDP_UP,如第3.3.2节Good Battery Algorithm中所定义。

在二次检测期间,不需要PD将D+与VLGC进行比较

3.2.5.2 二次检测,CDP

图3-12显示了当PD连接到CDP时,二次检测是如何工作的。

BC1.2协议(学习笔记)_第12张图片

在二次检测期间,PD应在D-上输出VDM_SRC,打开IDP_LINK,并将D+上的电压与VDAT_REF进行比较。由于CDP不会将D+短接至D-,因此D+上的电压将接近地,低于VDAT_REF。

如果PD检测到D+小于VDAT_REF,则知道它已连接到CDP。然后需要关闭VDP_SRC和VDM_SRC,如第3.3.2节中的Good Battery Algorithm所示,并允许汲取电流IDEV_CHG(<1.5A)

在二次检测期间,不需要PD将D+与VLGC进行比较

3.2.6 ACA检测

ACA检测允许PD检测何时连接到ACA,并检测连接到ACA辅助端口的设备类型。有关ACA的描述,请参阅第6节。

PD不需要支持ACA检测。只有具有Micro AB插座的PD才能支持ACA检测因为ACA OTG端口有一根端接在Micro-A插头中的固定电缆

支持ACA检测的PD需要实现第3.3.2节中定义的Good Battery Algorithm。

图3-13显示了当PD连接到Micro ACA时,ACA检测是如何工作的。

BC1.2协议(学习笔记)_第13张图片

PD通过感应ID引脚上的电阻来检测ACA的存在。ACA检测过程中应检测五种不同的电阻值,即:RID_GND(<1kohm)、RID_C(36.5kohm)、RID_B(68kohm)、RID_A(124kohm)和RID_FLOAT(>220kohm)。支持ACA检测的PD应在断言VBUS的整个时间内监测ID电阻,并根据第6.2.7节中的PD状态机做出响应。

注:重要的是,设计者在设计电路时要考虑以下因素,以区分这些ID引脚电阻值:

  • 当IDEV_CHG(<1.5A)流经ROTG_ACA_GND(OTG to ACA ground resistance,ROTG_ACA_GND<100mohm)时,ACA接地低于OTG接地,导致ACA电缆接地压降,必须正确检测电阻。
  • 当ICFG_MAX(<500mA)流经ROTG_ACA_GND时,ACA接地高于OTG接地,导致ACA电缆接地出现压降,必须正确检测电阻。
  • 应考虑泄漏电流及其影响(表5-3,注2)。

3.2.7 补充章节

  暂且不谈ACA类型,实际当中我们遇到的充电器类型主要分为以下四种:SDP、CDP、DCP、NON-DCP,汇总如下:

 充电器类型的识别检测过程,实际上就是通过二分法这种“分类”和“比较”的策略:

  • 初级检测就是把四种充电器先区分成两类:SDP/NON-DCP,以及CDP/DCP,通过比较器VDAT_REF电压进行区分;
  • 次级检测就是在上一步的基础上继续细分,分别通过比较器VLOGIC_HIGH和VDAT_REF电压进行区分。

3.3 充电器检测算法

3.3.1 Weak Battery Algorithm

图3-14显示了具有Weak Battery的PD的充电器检测算法示例。允许使用其他算法,前提是它们符合DBP。

                       BC1.2协议(学习笔记)_第14张图片

PD需要具有位于VOTG_SESS_VLD(0.8V、VDAT_REF(0.25V和VLGC(0.8V区间内的内部电压阈值。在上述算法中,PD将VBUS、D+和D-与其内部阈值进行比较。它不会将VBUS、D+和D-与VOTG_SESS_VLD、VDAT_REF或VLGC的最小值或最大值进行比较。

在上面的例子中,具有Weak Battery的PD检测到大于VOTG_SESS_VLD的VBUS,并在D+引脚上施加VDP_SRC的电压。如果D-上的电压大于其VDAT_REF,或者ID引脚未float,则允许PD抽取电流IDEV_CHG(<1.5A)。否则允许PD抽取电流IUNIT(<100mA)

可以添加品红色显示的VLGC术语,以防止PD从PS2端口和一些专有充电器充电。

3.3.2 Good Battery Algorithm

图3-15显示了具有Good Battery的PD需要执行的充电器检测算法。它也可以由具有Weak Battery的PD使用,但须满足Dead Battery Provision的要求。

因此,到达流程图底部的PD在除了DCP/CDP退出之外的所有情况下,在适当地连接或应用总线复位之前,可以延迟高达TSVLD_CON_WKB(Session valid to connect for PD with Dead or Weak Battery,TSVLD_CON_WKB<45min)

BC1.2协议(学习笔记)_第15张图片

当连接到SDP或充电端口时,PD应实现Good Battery算法。允许PD包含用于检测SDP或充电器端口以外的设备或端口的额外分支。

当PD连接到SDP或充电端口时,任何此类分支都不应在D+/-和/或ID上引起额外的活动,这些活动会干扰或与下一个预期事件混淆。在检测的任何最后一步之后也允许分支,这些分支可能包括D+/-和(或)ID上的额外活动,除非PD连接到DCP,则在断言VBUS时其应保持D+大于VDAT_ REF

在检测到VBUS大于其VOTG_SESS_VLD阈值时,PD应启动超时值为TDCD_TIMEOUT(300ms的计时器。支持DCD的PD被允许打开其IDP_SRC,并监测TDCD_DBNC(<10ms)时间的D+是否处于VLGC_LOW(0。允许支持ACA检测的PD监控TDCD_DBNC时间内的ID是否为非浮动。如果DCD计时器在检测到D+或ID条件之前到期,则PD应进行初级检测。

如果PD检测到ID在TDCD_DBNC的时间内没有floating,则允许其直接进入到ACA状态之一,而不必进行初级检测并且不必断言VDP_SRC。

在初级检测期间,PD应启用VDP_SRC,并将D-与VDAT_REF进行比较。PD可以选择将D-与VLGC进行比较,以避免损坏PS2端口。参见第3.2.4.1节。支持ACA检测的PD需要检测ID线上的电阻。

如果PD在初级检测期间检测到它连接到DCP或CDP,并且它已准备好被枚举,则允许它选取其连接的分支(因DCP不能枚举,直接推断连接的为CDP吗?)。如果PD尚未准备好枚举,则需要进行二次检测

在二次检测期间,PD应禁用VDP_SRC,启用VDM_SRC,并将D+与VDAT_REF进行比较。如果D+大于VDAT_REF,则PD连接到DCP。PD应禁用VDM_SRC,并启用VDP_SRC或通过RDP_UP将D+拉至VDP_UP。

如果D+小于VDAT_REF,则PD连接到CDP。PD应禁用VDM_SRC,并保持D+和D-低电平,直到其准备好连接和枚举。

连接到DCP的PD应启用VDP_SRC或在连接的TSVLD_CON_PWD(Session valid to connect time for powered up peripheral,TSVLD_CON_PWD<1s)时间内拉高D+。

支持ACA检测的PD需要监测ID线上的电阻。如果检测到RID_A电阻,则PD应将D-与VDAT_REF和VLGC进行比较,以确定其是否连接至ACA-Dock或ACA-A。有关更多详细信息,请参见第3.2.4.4节。

3.4 充电器检测时序

3.4.1.数据接触检测(DCD)时序

为了启动数据接触检测,PD应启用IDP_SRC和IDM_SINK或RDM_DWN。当PD检测到D+线已经拉低达TDCD_DBNC的时间时,则PD知道数据引脚已经接触

图3-16显示了DCD启动后引脚接触时与数据接触检测(DCD)相关的时序。

BC1.2协议(学习笔记)_第16张图片

图3-17显示了当引脚在DCD启动前接触时,与数据接触检测相关的时序。

BC1.2协议(学习笔记)_第17张图片

图3-18显示了未检测到接触时与数据接触检测相关的时间。

BC1.2协议(学习笔记)_第18张图片

3.4.2 检测时序,CDP

图3-19显示了当PD连接到CDP时,与初级和次要检测相关的时序,对于CDP将D+与VDAT_REF和VLGC进行比较并相应启用VDM_SRC的情况。CDP还允许在未连接远程设备的情况下使VDM_SRC保持启用状态。详见第3.2.4.2节。

                        BC1.2协议(学习笔记)_第19张图片

注意事项:

1) LS PD的时序与上面所示的相同,只是LS PD将拉D-高,而不是D+。

图3-19显示了连接到CDP的PD的初级和二次检测时序。在初级检测期间,PD开启VDP_SRC和IDM_SINK。当D+高于VDAT_REF时,CDP需要在TVDMSRC_EN(D- voltage source enable time,TVDMSRC_EN<20ms)时间内使D-处于VDM_SRC。经过一段时间的TVDPSRC_ON(D+ voltage source on time,TVDPSRC_ON>40ms)后,允许PD检查D-线的状态。如果D-高于VDAT_REF(可选择地低于VLGC,见第3.2.4.1节),则PD连接到充电端口,并允许抽取电流IDEV_CHG。

为了进行二次检测,PD需要禁用VDP_SRC和IDM_SNK,并启用VDM_SRC和IDP_INK。在一段时间的TVDMSRC_ON之后,允许PD检查D+线的状态。由于CDP不在D+上提供电压,因此D+低于VDAT_REF,因此PD连接到CDP。

如果PD在检测到VBUS时通电,则它应在TSVLD_CON_PWD(<1s)的时间内连接。CDP应在检测到connect的TCON_IDPSNK_DIS(Connect to D+ sink disable,TCON_IDPSNK_DIS<10ms)时间内禁用IDP_SINK。

3.5 接地电流和噪声裕度

如USB 2.0规范的图7-47所示,通过USB电缆地线的100 mA电流可能导致主机接地和设备接地之间的电压差为25mV。这种接地差具有降低信号和充电器检测的噪声裕度(noise margin)的效果。

允许PD从CDP汲取的最大电流是IDEV_CHG。当本地地面的VGND_OFFSET(Ground offset voltage between Host and PD,VGND_OFFSET<375mV)最大值高于远程地面时,需要从CDP提取超过ICFG_MAX的PD来支持LS、FS、HS和线性调频信号(chirp signaling)。当本地接地的VGND_OFFSET最大值低于远程接地时,需要允许CDP握手的主机端口来支持LS、FS、HS和线性调频信号。

当接地偏移为VGND_offset最大值时,PD和CDP需要具有比USB 2.0中所称的更大的共模范围。

4.充电端口和PD要求

本节介绍了以下方面的要求:

•充电下行端口(CDP)

•ACA-Dock

•专用充电端口(DCP)

•辅助充电器适配器(ACA)

•便携式设备(PD)

4.1 充电端口要求

以下要求适用于所有类型的充电端口,包括CDP、ACA Dock、DCP和ACA。

4.1.1 Overshoot

对于负载电流的任何阶跃变化,以及充电端口power on/power off时,充电端口的输出电压不得超过VCHG_OVRSHT(Charging Port Overshoot Voltage,VCHG_OVRSHT<6V)

4.1.2 最大电流

充电端口的输出电流在任何情况下都不得超过ICDP(Charging Downstream Port Rated Current,1.5A最大值。

4.1.3 检测重新协商

允许下行端口充当SDP、CDP或DCP,并在这些角色之间进行更改。为了强制连接的PD重复充电检测程序,需要下行端口:

  • 停止驱动VBUS
  • 允许VBUS降至低于VBUS_LKG(VBUS Leakage Voltage,VBUS_LKG<0.7V)
  • 等待TVBUS_REAPP(Time for VBUS to be reapplied,TVBUS_REAPP>100ms)时间
  • 开始驱动VBUS

4.1.4 关机操作

如果PD汲取的电流导致充电端口超出其要求的工作范围,则允许充电端口关闭。允许在充电端口的要求工作范围之外进行所有类型的关闭,包括:

  • 关闭VBUS
  • 恒流限制
  • 折返电流限制(Foldback current)

4.1.5 故障电压

对于充电端口中的任何单点故障,充电端口的输出电压应保持在VCHG_FAIL(Charging Port Failure Voltage,-0.3V内。

4.1.6 多个端口

对于具有多个充电端口的设备,无论其他充电端口的操作如何,每个充电端口都应保持在其要求的操作范围内。

4.2 充电下行端口CDP

以下要求适用于CDP。

4.2.1要求的工作范围

对于小于ICDP min(1.5A)的所有电流,CDP应输出VCHG(4.75V电压。VBUS上的电压在TVBUS_AVG(VBUS voltage averaging time,TVBUS_AVG<250ms)时间内取平均值。对于大于ICDP最小值的负载电流,允许关闭CDP。一旦停机,第4.1.4节中的要求适用。

图4-1显示了CDP的几个负载曲线示例。负载曲线需要在VCHG的电压范围内以ICDP最小值穿过线路。对于小于ICDP最小值的电流,不允许出现在VCHG最小值时横穿线路的负载曲线

BC1.2协议(学习笔记)_第20张图片

4.2.2 shutdown操作

如果CDP在电流过载条件下停机,当电流过载条件消除时,它应在TSHTDWN_REC(Charger shut down recover time,TSHTDWN_REC<2min)时间内恢复并输出VCHG电压。

4.2.3 Undershoot

对于小于ICDP min值的负载电流的任何阶跃变化,CDP的输出电压应在VCHG_UNDSHT(Charging Port Undershoot Voltage,VCHG_UNDSHT>4.1V)范围内。

4.2.4 检测信号

当远程设备未连接到CDP时,CDP需要以两种方式中的任何一种进行操作:

  • 允许CDP进行操作的第一种方式是在断开连接的TCP_VDM_EN(Time for Charging Port to assert VDM_SRC on D-,TCP_VDM_EN<200ms)启用VDM_SRC,然后在连接的TCP_VDM_DIS(Time for Charging Port to remove VDM_SRC on D-,TCP_VDM_DIS<10ms)中禁用VDM_SRC。使用此选项时,CDP不需要启用IDP_LINK或将D+与VDAT_REF进行比较。
  • CDP的第二种方式是将D+与VDAT_REF和VLGC进行比较。当D+大于VDAT_REF(0.25且小于VLGC(0.8时,CDP应启用VDM_SRC。当D+小于VDAT_REF或大于VLGC时,CDP应禁用VDM_SRC。参考第3.4.2节时序。   

4.2.5连接器

CDP应具有标准A插座

4.3 ACA-Dock

以下要求适用于ACA-Dock的上行端口

4.3.1 要求的工作范围

ACA-Dock应具有与CDP相同的要求操作范围。

4.3.2 undershoot

ACA-Dock应符合与CDP相同的下冲要求。

4.3.3 检测信号

当PD连接到ACA Dock时,PD在从VBUS汲取电流时充当主机。这与PD连接到ACA的情况类似,ACA的外围设备位于附件端口上。

为了通知PD它应该充当主机并汲取电流,ACA Dock和ACA都需要通过RID_A的电阻将ID引脚拉到地。

ACA_Dock需要向PD提供ICDP(1.5A,而ACA则需要提供IDCP(0.5A,并且这些电流必须在PD和附件端口上的任何设备之间共享。为了通知PD它连接到ACA-Dock而不是ACA,ACA-Dock应在D-上输出VDM_SRC电压,如下所示:

  • ACA Dock应开始输出VDM_SRC,如果D+/-处于空闲J达TCP_VDM_EN(<200ms)时间;
  • ACA Dock应停止输出VDM_SRC,如果D+/-上有任何USB活动达TCP_VDM_DIS(<10ms)内。

4.3.4 连接器

ACA-Dock应具有Micro-A插头,该插头可与PD的Micro-AB插座配合使用。

4.4 专用充电端口DCP

以下要求适用于DCP。

4.4.1要求的工作范围

对于小于IDCP min值(0.5A)的所有电流,DCP应输出VCHG(4.75电压。VBUS上的电压在TVBUS_AVG(VBUS voltage averaging time,TVBUS_AVG<250ms)时间内取平均值。

如果负载电流小于IDEV_CHG(Allowed PD Current Draw from Charging Port,IDEV_CHG<1.5A)且负载电压大于VDCP_SHTDOWN(DCP Shut Down Voltage,VDCP_SHTDOWN<2V),则DCP不得关闭。对于大于IDEV_CHG max值(5A)的负载电流或小于VDCP_SHTDWN的负载电压,允许DCP关闭。一旦停机,第4.1.4节中的要求适用。

图4-2显示了几个负载曲线示例。DCP负载曲线需要在IDEV_CHG max处穿过恒流线,或在VDCP_SHTDWN处穿过恒压线。DCP不允许在要求的操作范围内关闭。

BC1.2协议(学习笔记)_第21张图片

4.4.2 下冲

对于负载电流从IDCP_LOW(DCP current, low range,IDCP_LOW<30mA)到IDCP_MID(DCP current, middle range,30mA或从IDCP_MID到IDCP_HI(DCP current, high range,IDCP_HI>100mA)的阶跃变化,DCP的下冲电压应为VCHG_UNDSHT(Charging Port Undershoot Voltage,VCHG_UNDSHT>4.1V)。DCP需要满足从low到mid的转换TDCP_LD_STP(DCP recovery time between load steps,TDCP_LD_STP>20ms)时间后再出现从mid到hi的负荷阶跃。下冲的持续时间应为TDCP_UNDSHT(DCP undershoot voltage time,TDCP_UNDSHT<10ms)

对于负载电流从IDCP_LOW到IDCP_HI的阶跃变化,允许DCP的输出电压在TDCP_UNDSHT的时间内下降到所附PD的负载电压。在此时间之后,对于小于IDCP min的负载电流,DCP的输出电压应为VCHG。

4.4.3 检测信号

DCP的阻抗应在D+和D-的RDCP_DAT(Dedicated Charging Port
resistance across D+/-,RDCP_DAT<200ohm)
之间。

DCP的D+/-引脚上的泄漏电流应小于或等于连接到电压VDAT_LKG(Data Line Leakage Voltage,0上的两个电阻RDAT_LKG(Data line leakage resistance,RDAT_LKG>300kohm)可能产生的泄漏电流,见图3-6。

DCP的D+/-引脚和接地之间的电容应为CDCP_PWR(Dedicated Charging Port capacitance from D+ or D- to VBUS or GND,CDCP_PWR<1nF)

4.4.4 连接器

DCP应具有标准A插座,或端接Micro-B插头的固定电缆

4.5 Accessory Charger Adapter(ACA)

以下要求适用于充电器端口上带有DCP或CDP的ACA。

4.5.1 要求的工作范围

ACA的OTG(On The Going,USB设备即可做Host,又可以做Device)端口所需的工作范围受以下因素的影响:

  • 充电器端口上的设备(DCP或CDP)
  • 从附件端口抽取的电流
  • RACA_CHG_OTG(Charger to Accessory port,RACA_CHG_OTG<400mohm)
  • VACA_OPR(ACA operating voltage,4.1V

OTG端口上的可用电流取决于向充电器端口提供的电流以及从附件端口汲取的电流。OTG端口的可用电压取决于充电端口的电压、从OTG和附件端口汲取的电流以及RACA_CHG_OTG(Charger to OTG port,RACA_CHG_OTG<200mohm)。只有当充电端口电压在VACA_OPR范围内时,才需要ACA操作。

4.5.2 下冲

充电端口上带有DCP或CDP的ACA应符合与DCP相同的下冲要求。

4.5.3 检测信号

ACA应通过以下电阻之一将OTG端口的ID引脚接地,如第6节所述:

  • RID_GND、RID_C、RID_B、RID_A、RID_FLOAT

ACA应将OTG端口的数据引脚直接连接至附件端口的数据针脚。

4.5.4 连接器

ACA应在其OTG端口上有一个端接Micro-A插头的固定电缆

4.6 便携式设备PD

以下要求适用于PD。

4.6.1允许工作范围

PD不得从充电端口抽取超过IDEV_CHG最大值(1.5A)的电流。PD不得将充电端口的输出电压拉低至VDCP_SHTDWN最大值(2V)以下。图4-3显示了PD的允许工作范围:

BC1.2协议(学习笔记)_第22张图片

注意事项:

1) 根据USB 2.0第7.2.2节,由于电缆和连接器中的电阻损耗,VBUS上的电压可能从上行端口的4.75V下降到下游端口的4.5V。

4.6.2 检测信号

所有PD应实现以下检测功能:

  • DCD定时器(300ms
  • 初级检测:

         o在DCP、CDP和SDP之间进行检测

         o在初级检测期间将D-与VDAT_REF进行比较

允许但不要求PD实现以下检测功能:

  • DCD,使用IDP_SRC
  • 在初级检测期间比较D-和VLGC
  • 次级检测
  • ACA检测

4.6.3 检测重新协商

要重新启动充电器检测程序,允许下游端口移除VBUS,然后重新断言电源。参见第4.1.3节。为了检测VBUS的下降,无论何时移除VBUS,PD都应将VBUS放电至TVLD_VLKG内的VBUS_LKG以下。

允许PD在连接时断开连接并多次重复充电器检测过程。在断开和重新启动充电器检测过程之间,PD需要等待至少TCP_VDM_EN max的时间。

4.6.4 连接器

与ACA-Dock或ACA对接的PD应具有Micro-AB插座(如下图所示,USB 3.0 Micro-AB 插座类似于 USB 3.0 Micro-B 插座,只有外形设计是不同的。它可与 USB 3.0 Micro-A 插头、USB 3.0 Micro-B 插头、USB 2.0 Micro-A 插头以及 USB 2.0 Micro-B 插头连接。USB 3.0 Micro-AB 插座只能使用于 OTG 产品)

           BC1.2协议(学习笔记)_第23张图片

5.参数值

本节列出了本规范中定义的参数值。

BC1.2协议(学习笔记)_第24张图片

注意事项:

1) 当D-在0.5V和0.7V之间时,VDM_SRC应能够提供至少250uA的电源。当D-通过RDP_UP(D+ Pull-up resistance,900ohm拉至VDP_UP时,VDM_SRC不应将D-拉至2.2V以下。

2) 当D+在0.5V和0.7V之间时,VDP_SRC应能够提供至少250uA的电源。当D+通过RDP_UP拉至VDP_UP时,VDP_SRC不应将D+拉至2.2V以下。

BC1.2协议(学习笔记)_第25张图片

注意事项:

1) 根据USB 2.0第7.2.1.2.1节,最大电流是出于安全考虑。

2) 如果PD连接到SuperSpeed端口,则ICFG_MAX为900mA

3) 对于小于IDP_SINK min(25uA)的源极电流,需要D+电流源sink将D+电压拉至VDAT_SINK。对于小于VLGC最大值的D+电压,D+电流源sink不得抽取超过IDP_sink max值(175uA)的电流。同样的要求适用于IDM_sink和D-。

4) IUNIT平均超过250毫秒。如果PD连接到SuperSpeed端口,则IUNIT为150mA。

BC1.2协议(学习笔记)_第26张图片

注意事项:

1) 当VBUS_CHG处于VACA_OPR(ACA operating voltage,4.1V时,ACA应满足此参数要求。

2) 当ACA的ID_OTG引脚处于VDAT_LKG(Data Line Leakage Voltage,0时,ACA应满足此参数要求。当检测这些电阻时,OTG设备应允许因contamination而产生IID_LKG_CONT(Leakage current on ID_OTG pin from contamination,-1uA的额外泄漏电流。

3) 当ACA的VBUS_CHG引脚处于VBUS_LKG(VBUS Leakage Voltage,VBUS_CHG<0.7V)时,ACA应满足此参数要求。

4) 这些电阻的标称值分别为RID_A=124k、RID_B=68k和RID_C=36.5k

5) 当VBUS_ACC和VBUS_OTG均低于VACA_OPR,且未检测到充电端口或VBUS_CHG低于VACA_OPR时,ACA应满足此参数要求。

BC1.2协议(学习笔记)_第27张图片

 BC1.2协议(学习笔记)_第28张图片

6.Accessory Charger Adapter(ACA)

6.1 简介

随着PD越来越小,PD只需要一个外部连接器就变得越来越理想。如果设备唯一的连接器是USB连接器,那么当用户想在设备已经连接到其他设备的同时将设备连接到充电器时,就会出现问题。

例如,假设一个用户在车里,手机连接在耳机上。如果手机电池电量不足,用户希望为手机充电,同时继续通过耳机通话。如果手机只有一个接口,则无法通过同一个接口将耳机和充电器连接到手机上。

另一个例子如下。考虑PD只有一个连接器,它也可以充当手持PC。当将这样的设备放入ACA Dock时,它将充当各种USB外围设备的主机,如集线器、键盘、鼠标、打印机等。然而,在ACA Dock中时,设备也应该能够同时充电。

本节的目的是描述一种允许单个USB端口同时连接到充电器和另一个设备的方法。该方法使用附件充电器适配器(ACA,accessory翻译成附件、配件、辅助,理解大概意思即可),如图6-1所示。

BC1.2协议(学习笔记)_第29张图片

 ACA具有以下三个端口:

  • OTG端口
  • 附件端口
  • 充电器端口

OTG端口一端为固定电缆,另一端为Micro-A插头。只有OTG设备(即带有Micro AB插座的设备)才能连接到OTG端口。

连接到附件端口(Accessory Port)的附件可以使用正常的USB信号与OTG设备(手机)进行通信。

充电器端口允许ACA连接到充电端口。来自充电器端口的电源可用于OTG设备和附件。ACA需要将充电器端口标记为“仅充电器”。原因是ACA不支持OTG端口和充电器端口之间的USB通信。充电器端口仅用于供电。ACA还需要提供一个指示器,显示充电器端口何时能够为OTG和附件端口供电。

ACA有两种类型:

•Micro ACA

•Standard ACA

Micro ACA在附件端口上有一个Micro AB插座,可以连接到A设备或B设备。标准ACA在附件端口上有一个标准A插座,只能连接到B设备

6.2 Micro ACA

6.2.1 Micro ACA端口

图6-2显示了Micro ACA的端口。 BC1.2协议(学习笔记)_第30张图片

 可以使用各种电缆将Micro ACA的附件端口连接到附件,包括:

  • Micro-A至Micro-B
  • Micro-A至Captive
  • Micro-B至Standard-A
  • Micro-B至Micro-A

Micro ACA的充电器端口应具有以下机械接口之一:

  • Micro-B插座
  • 固定电缆端接标准A插头
  • 固定电缆端接充电器

6.2.2 Micro ACA连接选项

表6-1显示了可以连接到每个Micro ACA端口的不同设备组合,并提供了对其操作的评论。

BC1.2协议(学习笔记)_第31张图片

ACA不允许通过充电端口进行数据通信。ACA只允许在连接充电端口时从充电端口充电。当连接到SDP或OTG设备时,不允许从充电器端口充电(为什么?只能连CDP和DCP设备吗?)

在OTG设备和B设备都从充电器端口充电的情况下,没有必要支持SRP,因为已经在OTG端口和附件端口断言了VBUS

OTG设备被限制从ACA汲取电流,使得VBUS_OTG保持在VACA_OPR(ACA operating voltage,4.1V最小值以上。

6.2.3 Micro ACA架构

图6-3显示了Micro ACA的体系结构。

BC1.2协议(学习笔记)_第32张图片

附件开关允许电流在VBUS_OTG和VBUS_ACC之间流动。充电器开关允许电流从VBUS_CHG和VBUS_OTG流出

适配器控制器执行多种功能,这些功能包括:

  • 感应ID_ACC引脚的状态(接地或浮空)
  • 将状态输出到ID_OTG引脚(RID_GND、RID_a、RID_B、RID_C或RID_FLOAT)
  • 使用DP_CHG和DN_CHG引脚检测充电端口是否连接到充电器端口
  • 感应VBUS_ACC引脚上的电压
  • 感应VBUS_OTG引脚上的电压
  • 控制充电器和附件开关

6.2.4 Micro ACA操作模式

Micro ACA的操作如表6-2所示,如下所述。该表假设OTG设备始终连接到OTG端口。

BC1.2协议(学习笔记)_第33张图片

注意事项:

1) 开路是指开关的高阻抗状态,闭合是指开关的低阻抗状态。

2) ADP-pass是指开关的阻抗状态足够低以传输ADP探针(OTG to Accessory port (ADP-pass),RADP_OTG_ACC<25ohm)

3) 通过VBUS_OTG的附件开关驱动。

4) 通过VBUS_ACC的附件开关驱动。

5) 通过VBUS_CHG的充电器开关驱动。

6) 通过VBUS_CHG的充电器开关和附件开关驱动。

7) 在行2a中,如果OTG A设备支持会话,则VBUS_OTG低状态可以在ID_OTG变低TA_WAIT_BCON max之后发生)有关值请参阅OTG 2.0增补)。

8) 当在表的行中所示的设计状态之间移动时,还存在其他临时状态。Micro ACA设计者有责任将这些考虑在内。

在第5行和第7行中,充电端口连接到Micro ACA充电器端口,而附件端口上没有连接任何东西,或者未断言VBUS的A设备attatch到附件端口。RID_B的ID电阻向OTG设备指示允许其充电,并允许其启动SRP。不允许OTG设备connect(即保留DP_OTG断言),原因是,如果A设备在附件端口上,并且没有断言VBUS,那么USB规范要求数据线保持在逻辑低。

在第8行中,充电端口attatch到Micro ACA充电器端口,断言VBUS的A设备connect到附件端口。RID_C的ID电阻向OTG设备指示允许其充电,并允许其连接。然而,不允许进行SRP,因为A设备已经在断言VBUS。

在第6行中,一个充电端口连接到Micro ACA充电器端口,一个B设备连接到附件端口。RID_A的ID电阻向OTG设备指示允许其充电,并且应默认充当主机。

6.2.5 不支持Micro ACA检测的含义

OTG补充仅定义ID引脚上的浮动状态和接地状态。浮动状态为大于1M的任何阻抗,接地状态为小于10Ω的任何阻抗。由于RID_A、RID_B和RID_C电阻在浮动电阻值和接地电阻值之间,因此不支持ACA检测的OTG设备可以将这些值中的任何一个解释为浮动或接地。

如果OTG设备将RID_A电阻解释为浮动,则:

  • 它不会意识到从VBUS提取IDEV_CHG的机会
  • 它将默认为外设,而它本应该默认为主机

如果OTG设备将RID_B电阻解释为接地,则:

  • 它将尝试在ACA驱动VBUS_OTG的同时也驱动VBUS_OTG
  • 它将默认为主机,而本应该默认为外设

如果OTG设备将RID_B电阻解释为浮动,则:

  • 它不会意识到有机会从VBUS抽取IDEV_CHG
  • 它不会意识到进行SRP的机会
  • 需要connect,并且可能违反USB背面驱动(back-drive)电压规范

如果OTG设备将RID_C电阻解释为接地,则:

  • 它将尝试在ACA驱动VBUS_OTG的同时也驱动VBUS_OTG
  • 它将默认为主机,而本应该默认为外设

如果OTG设备将RID_C电阻解释为浮动,则:

  • 它不会意识到有机会从VBUS抽取电流IDEV_CHG

6.2.6 Micro ACA要求

当连接充电端口以外的任何东西时,Micro ACA充电端口的耗电量应小于ISSP(<2.5mA)

当充电端口连接到ACA充电器端口,而OTG端口或附件端口未连接任何东西时,Micro ACA的耗电量应小于ISUSP。

当表6-2第5-8行中的充电开关闭合时,ACA的VBUS_CHG和VBUS_OTG引脚之间的电阻应为RACA_CHG_OTG(<200mohm),并且VBUS_CHG上的电压为VACA_OPR(4.1V,6V)

当表6-2第6行中的充电开关和附件开关均闭合,且VBUS_CHG上的电压为VACA_OPR时,ACA的VBUS_CHG和VBUS_ACC引脚之间的电阻应为RACA_CHG_ACC(<400mohm)

当表6-2第2b行和第4行中的充电器开关断开且附件开关闭合且VBUS_ACC或VBUS_OTG上的电压为VACA_OPR时,ACA的VBUS_OTC和VBUS_ACC引脚之间的电阻应为RACA_OTG_ACC。

当附件开关处于表6-2第1、2a或3行ADP通过状态时,ACA的VBUS_OTG和VBUS_ACC引脚之间的电阻应为RADP_OTG_ACC。

Micro ACA内部接地和连接至ACA OTG端口的Micro AB插座接地引脚之间的电阻应为ROTG_ACA_GND。这一要求限制了在高充电电流条件下OTG和ACA接地之间的差异。这反过来允许OTG设备在高充电电流的条件下可靠地检测ACA ID电阻。

你可能感兴趣的:(快充协议,嵌入式硬件)