Battery Charging Specification
Revision 1.2
Li,Guanglei
2014.04.03 Rev0.1
转载请注明转自:http://blog.csdn.net/liglei

1. Introduction  第一章 简介

1.1 Scope   
适用范围

规范定义了设备通过USB端口充电的检测、控制和报告机制,这些机制是USB2.0规范的扩展,用于专用充电器(DCP)、主机(SDP)、hub(SDP)和CDP(大电流充电端口)对设备的充电和power up。这些机制适用于兼容USB2.0的所有主机和外设。

1.2 Background 
  规范制定背景

  • PD(portable device)便携式设备连接到host或hub后,USB2.0协议规定了三种情况下PD汲取电流的最大值:

1.bus suspend时最大汲取电流2.5mA;

        2.bus没suspend并且未被配置时最大汲取电流100mA;
        3.bus没suspend并被配置时最大汲取电流500mA.
  • 如果PD连接到CDP, DCP, ACA-Dock, ACA,在PD未配置时汲取最大电流限制是1.5A,或者遵循suspend的规则。
  • 定义了PD区别SDP和Charging port(充电端口)的机制。
  • 为不同的USB charger厂家定义了兼容性要求。
  • 如果PD的battery处在Dead或weak状态,随USB 2.0规范发布的ECN规定,此时连接但未联通的PD可以汲取100mA电流(连接与连通的区别在于data线的上下拉电阻)。详细参考Dead Battery Provision(DBP)

1.3 Reference Documents 
  参考文档

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

• USB 3.0 Specification


1.4 Definitions of Terms 
  术语的定义

包含了规范中一些术语的定义

1.4.1 Accessory Charger Adaptor

ACA是啥呢?也是一个充电器。一共三个口,一个OTG Port连接PD,一个charger port连充电器,扩展出一个Accessory Port。对PD充电的同时,能使PD连接到Accessary。
PS:根据Micro-ACA的<Table 6-1
和Table 6-2可知,charger port连充电器的同时Accessory Port连接A-device,此时充电器可以对OTG Port的PD充电,但是PD并不能和Accessory Port连接的A-device进行通信,此时的Access Switch是关断的。当不连接充电器时,可以通信。

涉计ACA的术语:
• ACA-A An ACA with ID resistance of RID_A(ACA
ID pull-down, OTG device as A-device RID_A 122 126 kΩ 6.2.4 Note 1,2,4 )
• ACA-B An ACA with ID resistance of RID_B(ACA ID pull-down, OTG device as B-device, can’t connect RID_B Note 1,2,4 67 69 kΩ 6.2.4)

• ACA-C An ACA with ID resistance of RID_C(ACA ID pull-down, OTG device as B-device, can connect RID_C Note 1,2,4 36 37 kΩ 6.2.4)

PS:这是啥意思呢?就是说PD ID连接ACA ID。 在ACA里,ID上有个下拉到GND的电阻,就是RID_x了。详细参考Section 6.
那RID_A,RID_B,RID_C,Floating,GND又都代表什么意思呢?参考 Figure 6-4就能看的明白,就是ACA根据类型(ACA-Dock
OR ACA)和 charger port、Accessory Port连接设备的不同而处在不同工作模式的一种指示,由ACA的Adapter Controller设置,PD会通过检测连接ACA的ID_OTG
PIN的下拉电阻值进行识别ACA。

1.4.2 ACA-Dock

  • ACA Dock是一个扩展坞,有一个外接电源,有一个US port,没有或者有几个DS port。US port只能连接到作为host的PD,给PD提供最大1.5A的ICDP电流。DS
    port只能连接device。
  • ACA-Dock怎么告知PD它是一个ACA-Dock呢?
     
  1.在USB idle时候使能VDM_SRC(D- Source Voltage VDM_SRC Note 1 0.5 0.7 V)
     
  2.把ID下拉到GND,通过电阻RID_A。详细参考Section 3.2.4.4

PS:ACA Dock和ACA有啥区别呢?
连接ACA OTG Port的PD可以做B-Device,Accessary port可以连接A-device(但此时不能连接充电器);Dock的US
Port只能连接作为A-Device的PD, DS Port只支持B-device,只能在充电的同时连接一个或多个B-device到DUT。

1.4.3 Attach versus Connect 
  连接和连通的区别

”Attach“我暂且把它翻译成连接,”connect“翻译为联通。它们有什么区别呢?
  • "Attach"这个词是有方向性的,表示把设备连接到主机,有一个从下到上的动作。在物理上电源线、ID、信号线连接上了;"connect"是没方向性的,表示识别了物理上的连接,或建立了通信。所以"connect"是基于"attach"的。
  • 这里的connect是指在attach后,下游的设备通过上拉1.5k电阻到D+/D-线,使bus进入 Low-Speed, Full-Speed or High-Speed信号模式。

1.4.4 Charging Downstream Port

CDP是啥呢?其实它就是在PC或者HUB上的一个USB口,但是这个USB口比较特殊,可以提供1.5A~5A的大电流充电,一般都会有一个小闪电的标志在USB口旁边。
没连通外设时,当CDP检测到D+线上的电压VDAT_REF(Data
Detect Voltage 0.25V~0.4V)< VDP < VLGC(Logic
Threshold 0.8V~2V)后,会在D-线上输出VDM_SRC(0.5v~0.7v)。从外设联通时起,CDP将不再把电压VDM_SRC输出到D-上,直到外设断开联通。

1.4.5 Charging Port 
  充电端口类型

充电口的类型分为DCP,CDP,ACA-DOCK,ACA

1.4.6 Dead Battery Threshold 
  死电池阈值(没电电池的定义)

什么是Dead Battery的阈值?通俗的说就是电池的一个电压值,低于这个值系统就肯定启动不了。电压低于这个值的电池叫Dead
Battery。

1.4.7 Dedicated Charging Port 
  DCP定义

DCP就是墙充,即wall adapter。就是平时用的连到220v插座的充电器。不能枚举USB设备,可以供(4.75v< VCHG  <5.25v)的稳定电压和(0.5A
<IDCP <5A)的充电电流。DCP在内部将D+和D-短接。

1.4.8 Downstream Port 
  朝下的端口

这个spec.中有两种DS,一种是SDP,另外一种是CDP(Charging Downstream Port)

1.4.9 Micro ACA

指ACA的accessory port是Micro-AB的母口

1.4.10 Portable Device

是能装在兜儿里的USB设备?就是移动设备。

1.4.11 Rated Current 
  额定电流

充电端口的额定电流是指在保持VBUS电压在VCHG(4.75v~5.25v)时所能输出的电流值。
  • DCP的额定电流要求在(0.5A< IDCP <5A)之间;
  • CDP or ACA-Dock的额定电流要求在(1.5A< ICDP <5A)之间

1.4.12 Standard ACA

指ACA的accessory port是 Standard-A的母口

1.4.13 Standard Downstream Port 
  SDP定义

SDP是标准的DS Port,是遵循USB2.0规范的host或hub的朝下端口。一个带有good battery的设备在连接到SDP时:
  • 未联通(dead battery)或suspend时,从SDP汲取小于2.5mA的电流
  • 联通未配置且没有suspend时,从SDP汲取小于100mA的电流
  • 配置且没有suspend时,从SDP汲取小于500mA的电流,具体值取决于host使能的配置
  • SDP端口会将D+和D-下拉500K电阻到GND
  • SDP有检测D+被PD驱动到 VDP_SRC(0.5v~0.7v)的能力
  • 在连接但没联通的情况下,当PD汲取大于 ISUSP(2.5mA)的电流时,要求PD驱动D+到VDP_SRC(0.5v~0.7v)

1.4.14 USB Charger 
  USB充电器定义

这里就是指DCP,比如wall adapter或car power adapter

1.4.15 Weak Battery Threshold 
  弱电池阈值定义

Weak Battery阈值也是电池的一个电压值,电池电压高于这个值,系统就肯定能power
up。

  • Weak Battery:电压值大于Dead Battery Threshold,且小于Weak Battery Threshold的电池,不一定能power
    up设备
  • Goog Battery:电压值大于Weak Battery Threshold的电池

1.6 OTG Considerations 
  OTG注意事项

  • 带有Dead Battery的PD不能区分PC和OTG-A device
  • 当带有Dead Battery的PD连接到OTG-A device时,OTG A-device没有义务提供给PD超出正常值的供电电流(正常值是指OTG A-device正常供给其TPL列表中设备的电流值)
  • OTG A-device在TA_WAIT_BCON内没有检测到B-device的连通,可以停止驱动VBUS。也就是说,带有Dead Battery的PD,连接到OTG A-device以后因为不能连通(使能D+/D-的上拉电阻),可能不会被充电。

1.7 Super Speed Considerations 
  SS注意事项

USB3.0规范中定义的SS Port也使用本规范定义的充电器检测机制,当PD 检测到连接在一个SS port上的时候,ICFG_MAX(Maximum
Configured Current when connected to a SDP ICFG_MAX Note 2 500 mA 2.1)变为900mA,IUNIT变成150mA。


2. Dead Battery Provision 
  死电池的规定(仅适用于SDP)

2.1 Background 
  背景

  • 1.4.13 SDP的定义我们知道有一种情况,当带有Dead
    Battery或Week Battery的PD连接到SDP时候,可能不能和host建立连通,这时候host会限制输出电流在ISUSP(2.5mA)以下。一些PD在这种情况下需要一段时间充电电流是ISUSP来power
    up设备。
  • USB2.0允许复合型USB设备在连接且未连通,或suspend的情况下,从每个DS port都汲取2.5mA的电流

2.2 DBP – Unconfigured Clause DBP-在PD未被配置时的规定

带有Dead Battery或Week Battery的PD在未被配置的情况下,可以根据DBP规定从SDP的DS port汲取IUNIT电流,规定如下:
  • 连接后超过45分钟,PD没和host建立连通或被枚举,汲取电流降到ISUSP(2.5mA)
  • 连接但未连通时,PD驱动 VDP_SRC

1. PD在连接到host
1s内,PD使能D+的电压,VDP_SRC(0.5v-0.7v)

       2. PD在disable VDP_SRC后1s内建立连通,即使能上拉电阻
  • 这个电流只能用于使PD尽快的上电并枚举,或者充电至Weak Battery Threshold并枚举

1. PD不能用DBP电流做不相关的事,比如高于Weak Battery Threshold后还用这个电流充电、打电话、播放音乐视频或游戏,建立无线连接。

        2. 只有独立使用电池运行的设备才允许使用DBP
  • 带有Dead Battery或Week Battery的PD要求通过 USB-IF compliance inrush test
未配置状态包括两个时段:
        1. 连接但是没连通
        2. 联通但没配置
PD在接收到host发送的SET_CONFIGURATION命令后进入configured state

2.3 DBP – Configured Clause 
  DBP-PD在配置状态下的规定

带Dead or Weak Battery的PD在配置的状态下允许使用DBP规则从SDP汲取配置电流(最大至ICFG_MAX=500mA),不需要通过USBCV测试。规则如下:
  • 响应接收到的令牌

PD要求响应host发来的任何令牌,以NAK或有效的USB response

  • 响应USB reset

一旦接收到复位信号,PD将减小充电电流到IUNIT。PD允许在接收到reset后断开连接。当断开连接,PD将使用DBP –Unconfigured Clause。

  • 响应USB suspend

保持连接降低充电电流到ISUSP,或断开连接使用DBP–Unconfigured Clause

  • 超时后提供完整的USB功能,或者断开连接使用DBP–Unconfigured Clause
    从连接TDBP_FUL_FNCTN(Attach to full USB functionality for configured PD under DBP TDBP_FUL_FNCTN 15max
min 2.3)后,PD或着保持连通并且可以通过USBCV测试,或者断开连接。断开连接后使用DBP–Unconfigured Clause
  • 使用配置的DBP电流尽快的充电使电压达到Weak Battery Threshold并提供完整的USB功能。
    PD不能用DBP电流做不相关的事,比如高于Weak Battery Threshold后还用这个电流充电、打电话、播放音乐视频或游戏,建立无线连接。
  • 一旦电池电压在PD连接到SDP后的TDBP_FUL_FNCTN(max=15min内)达到Weak Battery Threshold,PD需要提供完整的USB功能
  • PD需从在连接SDP后的TDBP_INFORM(max=1min)内通知用户PD正处在充电状态,且其它功能不可用。

3. Charging Port Detection    充电端口的检测

3.1 Overview    概述

Figure 3-1是几个实例,PD连接到SDP或Charging Port:


Figure 3-1 System Overview
  • 第一个例子中,PD连接到SDP,CDP,DCP是通过 Std-A to Micro-B cable
  • 第二个例子中,DCP有一个一体的Micro-B公口的线缆连接到PD。DCP的cable中没有D+/D-线,Micro-B公口的D+/D-线在插头内部短接在一块了。
  • 第三个例子中,ACA有一个一体的Micro-A公口的线缆连接到PD,A口线必然就有D+/D-和ID。ACA还有一个连接到DCP或CDP的port,使用什么样的线缆在 Section 6.2.1  描述
  • 第四个例子中,ACA-Dock上没有线缆,但是有一个一体的Micro-A公口的插头连接到PD,使用一个专用的充电器供电。

3.2 Charger Detection Hardware    充电检测电路

本节简要的介绍了充电检测的硬件电路

3.2.1 Overview    概述

Figure 3-2是PD中的充电检测的硬件电路


Figure 3-2 Charger Detection Hardware

3.2.2 VBUS Detect    VBUS检测

Session是啥?
首先咱们先解释一下协议中经常出现的术语"session".在OTG的规范中对session做了这样的解释:
“A session is defined as the period of time that VBUS is
powered. The session ends when VBUS is no longer powered.”
从这句话来理解,session是VBUS从有到无一段时间,它是针对VBUS的,所以以后也可以理解为有效的VBUS,只是这时候的VBUS是基于一定的时间段有效的。

每个PD的VBUS电源线的内部都有一个电压比较器,用来判断VBUS什么时候有效,和谁做比较呢?和内部的有效电压阈值比,可以理解是和一个定值比,高于这个值就是有效的VBUS。这个阈值在本规范中叫做internal session valid threshold,它的范围在定义为VOTG_SESS_VLD(OTG Session Valid Voltage VOTG_SESS_VLD 0.8 4.0 V 3.1)。参考Figure 3-2粉色部分。

PS:说了半天究竟在说啥?总结一下:
PD中有个检测VBUS是否有效的电路,电路有一个参考值,高于这个值就认为是VBUS有效了。这个参考值不是固定的,设计的时候保证它在0.8V~4V之间就可以了。

3.2.3 Data Contact Detect    数据连接检测

3.2.3.1 Overview    概述

DCD机制使用了向D+提供的电流源IDP_SRC来检测PD连接host后,数据信号的连接。
观察USB数据线的公头儿里边的信号线,你会发现两边的PIN长,中间PIN的短。两侧的PIN是VBUS和GND,中间的是数据线。这样的作法是为了先供电再通信。
  • PD并不一定要求实现DCD,如果PD没实现DCD,会使用一个定时器,它将在连接到host TDCD_TIMEOUT(DCD Timeout TDCD_TIMEOUT 300 900 ms 3.2.3.1)后,开始Primary
    Detection。
  • 当PD连接到SDP或CDP时,DCD机制能检测数据线的连接。使用DCD机制的最大好处是能尽快的检测到数据线的连接,然后建立连通,不必等待定时器超时。这样可以降低通信建立的时间,因为 USB Connect Timing ECN中规定,一个上电的USB设备,要求在连接到host的 TSVLD_CON_PWD(1s)内建立连通。
  • DCD机制也可以在PD连接到DCP和ACA的多数情况下检测数据线的连接。DCD不起作用的情况有:

1. 漏电流太大的DCP

        2. 连接charger,和在Accessory Port连有FS或HS
B-device的ACA
        3. ACA-Dcok
        4. 把D+拉高的PS2端口
        5. 把D+拉高的专用充电器
  • 因为DCD并不能在所有情况work,如果PD在attach event后TDCD_TIMEOUT max(900ms)内还没检测到D+或ID PIN的连接,就要求PD必须开始进行Primary Detection。详情参考 Section 3.3.2.

3.2.3.2 Problem Description

      Figure 3-2  Data Pin Offset



  • USB的公头之所以把VBUS PIN和GND
    PIN设计的比D+/D-长,是为了当plug和receptacle连接时,电源先于信号线连接。因此PD连接到主机时,VBUS和DATA pin长度不同,VBUS pin先连接,而后DATA pin连接,间隔时间取决于plug的插入速度,最长观察到的间隔时间是200ms
  • PD区分充电口和SDP的方式是根据data line。如果在检测到data pin连接前PD进行了Primary Detection操作,则根据Primary Detection协议,PD认为被连接到了SDP。
  • 如果PD连接到DCP,但是被其错误的识别为连接到了SDP,在这种情况下PD将汲取 ISUSP(2.5mA)电流并同时等待被枚举。因为DCP不能枚举设备,因此PD将不会被充电。

3.2.3.3 Data Contact Detect, Not Attached    PD未连接设备时的DCD



Figure 3-4 Data Contact Detect, Not Attached
图3-4是PD没连接到远端设备的情况

DCD协议如下:

  • PD检测VBUS有效
  • PD使能D+电流源IDP_SRC和D-线上的下拉电阻
  • PD检测到D+线保持TDCD_DBNC(Data contact detect debounce
    min=10ms)低电平
  • 关闭D+电流源IDP_SRC和D-线上的下拉电阻

如果没有设备连接到PD上时,D+线保持在高定平。 IDP_SRC(7uA)的最小

值要求能保证在最坏漏电流(RDAT_LKG and VDAT_LKG)情况下,使D+保持在VLGC_HI(Logic High2.0~3.6 V)。

3.2.3.4 Data Contact Detect, Standard Downstream Port    SDP的DCD


Figure 3-5 Data Contact Detect, Standard Downstream Port
  • 当PD连接到SDP时,D+线被SDP的RDP_DWN拉低

IDP_SRC(13uA)的最大值值要求能保证在最坏漏电流(RDAT_LKG, VDAT_LKG and RDP_DWN)情况下,RDP_DWN 使D+保持在VLGC_LOW(Logic Low 0~0.8 V)。

3.2.4 Primary Detection    主要检测

PD要求实现Primary Detection,3.2.4 Primary Detection用来区分SDP和charging port。

3.2.4.1 Primary Detection, DCP    DCP的Primary Detection

图3-6是PD连接到DCP上时,Primary Detection工作的示意图



Figure 3-6 Primary Detection, DCP
  1. 打开 VDP_SRC (D+ Source Voltage 0.5~0.7v)and IDM_SINK(D- Sink Current 25~175 μA).
  2. D+和D-通过RDCP_DAT(Dedicated Charging Port resistance across D+/- max=200Ω)短接,PD检测D-的电压是否达到VDP_SRC(D+ Source Voltage 0.5~0.7v).
  3. PD在D-上的电压比较器比较D-电压和VDAT_REF(Data Detect Voltage 0.25~0.4 
    v),如果D-大于VDAT_REF,就可以确定PD连接到了charging port上,可以进一步检测是连接到了DCP还是CDP上。PD也可以选择性的实现检测D-电压是否达到VLGC( Logic Threshold 0.8~2.0V),此时检测DCP还是CDP的条件是VDAT_REF<
    D- <VLGC,是否选择实现检测VLGC这个电平的原因如4.
  4. PS2端口会把D+/D-上拉到高电平,当PD连接到PS2端口,如果PD只检测(D->VDAT_REF),然后判定是连接到了DCP还是CDP,开始汲取IDEV_CHG(Allowed PD Current Draw from Charging Port 
    max=1.5A)电流。这么大的电流可能会损坏PS2端口。通过判定(D-<VLGC)以后再检测DCP,CDP类型,这样可以避免PD对PS2端口造成损坏。
  5. 有些专用的charger也会把D+/D-上拉到高电平,如果PD连接到这样的一个charger上,因为(D->VLGC),所以PD判断不是连在一个充电端口上。然后PD判断自己是连在一个SDP上,这是就只能汲取ISUSP的电流。
  6. 是否选择实现VLGC的检测取决于PD会不会经常连接到PS2端口,还是专用的charger。

3.2.4.2 Primary Detection, CDP

Figure 3-7展示了PD连接到CDP时的Primary Detection工作方式



Figure 3-7 Primary Detection, CDP
当远端设备没连接到CDP上时,对CDP的行为有两种可选的方式。
  1. 在断开连接的TCP_VDM_EN(Time for Charging Port to assert
    VDM_SRC on D- max=200ms)时间内,使能VDM_SRC( D- Source Voltage  0.5~0.7V);在连接PD的TCP_VDM_DIS(Time for Charging Port to remove VDM_SRC on D- 
    max=10ms)时间内disable VDM_SRC。使用这方式,不要求CDP使能IDP_SINK,或者比较D+的电压值是否到VDAT_REF。
  2. 第二种方式CDP将比较D+电压与VDAT_REF and VLGC,当(VDAT_REF<D+<VLGC),CDP将使能VDM_SRC;当(D+
    < VDAT_REF
    或 D+ >  VLGC),CDP将disable VDM_SRC。需要注意的是CDP在和PD连接的时候,要求比较D+和VLGC,来disable VDM_SRC。
  3. 在 Primary Detection期间,PD将打开 VDP_SRC and IDM_SINK.PD将把D-上的电压和 VDAT_REF 做比较。如果(D->VDAT_REF),才允许PD继续检测是连接到DCP还是SDP上。PD可以选择性的比较D-和 VLGC,只有当(VDAT_REF<D-<VLGC)时,才能进一步检测是连接到SDP还是DCP上。详细原因参考3.2.4.1

3.2.4.3 Primary Detection, SDP
Figure 3-8 展示了PD连接到SDP时Primary Detection的工作方式

Figure 3-8 Primary Detection, SDP


Figure 3-8 Primary Detection, SDP



  • 在 Primary Detection的时候,PD打开 VDP_SRC and IDM_SINK.当 VDP_SRC加到D+上时,SDP会继续通过下拉电阻 RDM_DWN下拉D-到低电平。
  • PD将把D-上的电压和 VDAT_REF 做比较,如果(D-<VDAT_REF),则允许PD进一步检测是否连接到了SDP上。PD可以实现把D-上的电压和 VLGC作比较,当(D-> VLGC)可以检测PD是否连接到了SDP上。

3.2.4.4 Primary Detection, ACA-Dock

Figure 3-9展示了支持识别ACA的PD连接到ACA-DOCK上时Primary Detection的工作方式


Figure 3-9 Primary Detection, ACA-Dock
ACA-DOCK简介:
ACA-DOCK是一个扩展坞,有一个US port连接PD,给PD提供 ICDP的充电电流;没有或有多个DS
port。

ACA: ACA-DOCK上电后,如果US port没连接PD,则US port各个pin的状态需要偏置到特定的状态
• VBUS VCHG(Charging Port Output Voltage 4.75~5.25 V)
• D+ VDP_UP(D+ pull-up Voltage 3.0~3.6 V)
• D- VDM_SRC(D- Source Voltage 0.5~0.7 V)
• ID RID_A(ACA ID pull-down, OTG device as A-device 122~126 kΩ)
• GND GND

VBUS= VCHG:
因为ACA-DOCK准备好给PD供电
D+通过 RDP_UP (D+ Pull-up resistance 900~1575Ω)上拉到 VDP_UP (D+ pull-up Voltage 3.0~3.6V):因为VBUS>VOTG_SESS_VLD (OTG Session Valid Voltage 0.8~4v)   

ACA: D+/D-状态变化对ACA-DOCK操作VDM_SRC的要求
每当D+/D-在inactive(idle J state)超过 TCP_VDM_EN(Time for
Charging Port to assert VDM_SRC on D- max=200ms ),时,ACA-DOCK要enable VDM_SRC。ACA-DOCK
必需在D+/D-线上有活动的TCP_VDM_DIS (Time for Charging Port to remove VDM_SRC on D- max=10ms)内disable VDM_SRC

ACA: 上电掉电后ACA-DOCK对ID PIN的操作
ACA-DOCK要求在上电后连接PD的ID PIN到 RID_A,掉电后连接RID_FLOAT(min=220kΩ)

当支持ACA的PD检测到以下条件,就能确定连接了一个ACA-DOCK
• VBUS > VOTG_SESS_VLD
• D+ at VLGC_HI
• VDAT_REF < D- < VLGC
• ID at RID_A
VDAT_REF( Data Detect Voltage 0.25~0.4v)

PD: 连接到ACA-DOCK的PD要求比较D-和 VLGC
(Logic Threshold 0.8~2.0 V  )。如果PD连接到了带有LS设备(Low
speed设备D-线接1.5k/3.3v上拉电阻)的ACA上,PD的ID PIN会被ACA的RID_A  拉低,并且D-电压在 VLGC_HI(Logic High 2.0~3.6 V)而不是VDM_SRC((D- Source Voltage 0.5~0.7 V))。
为了区分(连接了LS设备的ACA(D-=3.3v>VLGC))和ACA-DOCK(VDAT_REF < D- < VLGC),要求PD比较D-的电压值与 VLGC的关系。

PD: PD的VDP_SRC的控制

当ACA-DOCK通过 RDP_UP 上拉D+到 VDP_UP时,PD的VDP_SRC要使D+保持在高电平状态。因为这样ACA-DOCK就检测不到D+上的电平变化,这样就不会在PD完成 Primary Detection前,因为检测到D+上的电平变化而提前关闭 VDM_SRC 。

3.2.4.5 Primary Detection, Micro ACA

Figure 3-10展示了支持ACA检测的PD连接到一个Micro-ACA时的工作方式

Figure 3-10 Primary Detection, ACA
当 VBUS>VOTG_SESS_VLD 时,支持ACA检测的PD必须监控ID
PIN的电阻变化,当ID PIN的电阻是RID_B or RID_C时,PD认为连接到了ACA。

如果ID的电阻是RID_A,那么PD可能连接到了带有B-Device的ACA或者连接到了ACA-DOCK.此时PD需要通过检测D-的电平范围来判断连接到了那种类型:

• D- < VDAT_REF ACA with FS B-device on Accessory Port
• VDAT_REF < D- < VLGC ACA-Dock
• VLGC < D- ACA with LS B-device on Accessory Port

PD应该在连接后连通前,像Good Battery Algorithm描述的那样,检测如上的D-的电平范围。

Primary Detection之后,支持ACA检测的PD应该继续监测ID PIN,如果ID PIN 的电阻发生变化,PD应该按Section 6.2.7定义的状态机作出响应。

要求ACA通过DP_CHG and DN_CHG线实现一种主要检测,来判断ACA的Charger Port是否连接到了充电器。详细描述参考Section 6.2.6.

3.2.5 Secondary Detection    二次检测

二次检测用来区分DCP还是CDP。PD在检测到VBUS的TSVLD_CON_PWD(Session valid to connect time for powered up peripheral
max=1s)时间内,如果PD还没做好被枚举的准备,则要求PD进行二次检测。如果PD做好了被枚举的准备,则可以跳过二次检测,参考Section 3.3.2 Good Battery Algorithm。

PS:什么是做好被枚举的准备?
是指建立了连通,即下游设备已经使能了D+/D-线的1.5K上拉电阻,使数据线进入了相应的信号模式,参考前面对“connect”和“attach”的解释。

3.2.5.1 Secondary Detection, DCP

Figure 3-11 展示了连接到DCP的PD二次检测的方式

Figure 3-11 Secondary Detection, 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)

3.2.5.2 Secondary Detection, CDP

Figure 3-12 展示了连接到CDP的PD二次检测的方法


Figure 3-12 Secondary Detection, CDP
二次检测的时候:

  • PD在D-上使能 VDM_SRC,打开 IDP_SINK
  • 比较D+和 VDAT_REF的电压,因为CDP内部没有短接D+/D-,所以(VDAT_REF >
    D+ = GND)
  • 当PD检测到(D+ < VDAT_REF),就判断连接到了CDP上
  • 而后要求PD关闭VDP_SRC 和 VDM_SRC,同Section 3.3.2定义的Good Battery Algorithm,然后PD将汲取IDEV_CHG的充电电流

PD在二次检测期间,不需要比较D+和 VLGC

VDM_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)
VDP_SRC(D+ Source Voltage 0.5~0.7V)
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)
IDEV_CHG(Allowed PD Current Draw from Charging Port
max=1.5A)
VLGC(Logic Threshold 0.8~2.0V)

3.2.6 ACA Detection

Figure 3-13 shows how ACA Detection works when a PD is attached to a Micro ACA.
PD的ACA检测机制使PD能获知连接到了ACA上,并且检测ACA的Accessory Port连接了什么类型的设备。参考Section 6 ACA的介绍。
PD对ACA的支持并不是必须的。只有带有Micro-AB母口的PD才能支持ACA检测,因为ACA的OTG Port是一个Micro-A公口的一体线。
支持ACA检测的PD要求按Section 3.3.2的Good Battery Algorithm实现

Figure 3-13 展示了连接到Micro ACA的PD在ACA检测时的方式


Figure 3-13 ACA Detection
PD通过检测ID的阻抗判断是否连接到了ACA。PD在ACA的判断过程中,会检测到五种不同的阻抗,分别是:RID_GND, RID_C, RID_B, RID_A and RID_FLOAT.在VBUS有效的整个过程中,PD都将监控ID
PIN的阻抗变化,根据Section 6.2.7的状态作出机响应。

3.3 Charger Detection Algorithms

3.3.1 Weak Battery Algorithm    弱电池算法

Figure 3-14 是PD连接弱电池时的充电检测算法的一个例子,当然其它的算法也可以,但是要符合DBP规则


Figure 3-14 Weak Battery Algorithm
  • 要求PD内部实现如下几种电压的阈值的检测:VOTG_SESS_VLD, VDAT_REF and VLGC。检测的阈值并不是这些参数的最大或最小值,而是PD内部设计在这些参数范围内的固定值。
  • 在左侧的例子中,带有弱电池的PD检测到 (VBUS > VOTG_SESS_VLD)后,会在D+上使能VDP_SRC。如果(D—
    > VDAT_REF)或者ID
    PIN不是在float状态,PD可以汲取IDEV_CHG大小的电流。否则PD只能汲取IUNIT大小的电流。
  • 如图所示,也可以加入紫色的参数VLGC t作为判断条件,这样可以防止PD从PS2口或其它专用充电器充电

3.3.2 Good Battery Algorithm

Figure 3-15 是带有Good Battery的PD需要遵守的的充电检测算法。


Figure 3-15 Good Battery Algorithm
  • 当PD 连接到SDP或充电口时,应该使用Good Battery Algorithm检测算法。对于SDP和Charging Port之外设备或端口,允许添加额外的检测分支。对于添加额外检测分支,不应该造成D+/D-和ID PIN上Good Battery Algorithm基础上额外的动作,这些动作会对SDP和Charging
    Port的检测造成影响。添加的额外分支也可以在Good Battery Algorithm检测最后步骤之后,这样的branch可以使用D+/D-和ID PIN上的动作作为判断的条件。但是要考虑到如果连接到DCP上时,要求VBUS有效后,D+要一直保持(D+>VDAT_REF)这种情况。
  • PD一旦检测到(VBUS>VOTG_SESS_VLD),将启动一个计时器TDCD_TIMEOUT。支持DCD的PD可以使能IDP_SRC并检测D+ 持续TDCD_DBNC时间在VLGC_LOW
    。支持ACA检测的PD可以ID PIN在TDCD_DBNC时间内不在floating状态。如果在D+或ID
    PIN的连接被检测到之前,DCD计时器超时,PD将进行Primary Detection。
  • 如果PD检测到ID PIN在非floating的状态超过TDCD_DBNC,则直接进入一种ACA模式,而不需要进行Primary Detection
    也没必要使能VDP_SRC。
  • Primary Detection的时候,PD会使能VDP_SRC,并比较D-和VDAT_REF,PD可以选择是否实现D-和VLGC的比较,以避免损坏PS2口。参考3.2.4.1。支持ACA检测的PD要求能检测ID
    PIN上的阻抗。
  • 如果PD在Primary Detection检测时确定了PD连接到了DCP或CDP上,并且可以被枚举,PD就可以按照连接DCP/CDP的分支继续执行。如果PD不能被枚举,则需要进行二次检测。
  • 在二次检测中,PD会disableVDP_SRC,使能VDM_SRC 并比较D+和VDAT_REF的电压。如果(D+
    > VDAT_REF),则可以确定PD连接到了DCP上,PD会disable VDM_SRC,并且使能VDP_SRC 或通过RDP_UP上拉D+到VDP_UP。
  • 如果(D+ < VDAT_REF),则可以确定PD连接到了CDP上,PD会disable VDM_SRC,这样D+和D-将会保持在低电平,直到准备好连接和被枚举。
  • 连接到DCP的PD或者使能VDP_SRC 或者在连接后的 TSVLD_CON_PWD时间内上拉D+到高电平。
  • 支持ACA检测的PD要求检测ID PIN上的阻抗,如果检测到RID_A,PD会比较D-上的电压值和VDAT_REF and VLGC的关系,用以确定PD是连接到了ACA-DOCK上还是ACA-A上。详细参考Section 3.2.4.4

3.4 Charger Detection Timing    充电检测时序

3.4.1 Data Contact Detect Timing    DCD时序

为了开始DCD检测,PD使能IDP_SRC,并且使能IDM_SINK or RDM_DWN。当PD检测到D+线的低电平时间超过TDCD_DBNC,PD就判断Data
PIN已经连接上了。
Figure 3-16 是从DCD检测开始到判断Data PIN连接的时序。

Figure 3-16 DCD Timing, Contact After Start




Figure 3-17 是DCD开始检测前Data PIN就已经连接上的时序图

Figure 3-17 DCD Timing, Contact Before Start




Figure 3-18 是没检测到DCD的时序

Figure 3-18 DCD Timing, No Contact

3.4.2 Detection Timing, CDP

Figure 3-19 是CDP的主要检测和二次检测的时序,包含了比较D+和VDAT_REF and VLGC,根据条件使能VDM_SRC的情况。当PD没连接时,CDP也可以保持使能VDM_SRC。详细参考Section 3.2.4.2

Notes:
1)LS PD的时序和左侧基本相同,不同的地方是LS PD会拉高D-线,而不是D+线。

  • Figure 3-19 是连接到CDP的PD主要检测和二次检测的时序。PD打开VDP_SRC and IDM_SINK。要求CDP从(D+
    > VDAT_REF)开始的TVDMSRC_EN时间内使能D-线的VDM_SRC。从(D+
    > VDAT_REF)后TVDPSRC_ON开始,PD可以检查D-线的状态,如果(D-
    > VDAT_REF)(或者选择性的判断D-
    < VLGC,参考 3.2.4.1),这是PD判断是连接到了Charging
    Port上,开始汲取IDEV_CHG大小的电流。
  • 为了进行二次检测,要求PD disable VDP_SRC and IDM_SNK,使能VDM_SRC and IDP_SINK。使能VDM_SRC and IDP_SINK 时间TVDMSRC_ON后,PD可以检查D+的状态。因为CDP在D+上没有电压源,所以(D+
    < VDAT_REF),可以判断PD连接到了CDP上。
  • 如果PD在检测到VBUS时powered up,则要求PD在TSVLD_CON_PWD内建立连通。CDP会在检测到连通的TCON_IDPSNK_DIS内disable IDP_SINK

3.5 Ground Current and Noise Margins    接地电流及噪声容限

在USB2.0 spec. 图7-47中,100mA的电流在USB线缆中的GND line上能产生25mV的压差。这就造成了Host的GND和device的GND有25mV的压差。GND的电压差降低了信号和充电检测的噪声容限。

PD能从CDP汲取的最大电流值是IDEV_CHG.当PD本地的GND电平大于远端host
GND电平达到最大允许值VGND_OFFSET时,在PD从CDP汲取电流大于ICFG_MAX的时候,要求PD支持LS,FS,HS和Chirp。(即边界条件下对保证必须功能的要求)

当Host和PD间GND的电压偏置达到最大值VGND_OFFSET max时,要求PD和CDP要有大于USB2.0中标称的共模的范围。

4. Charging Port and Portable Device Requirements    对充电端口和PD的要求

这一章介绍了如下的要求:
  • CDP
  • ACA-DOCK
  • DCP
  • ACA
  • PD

4.1 Charging Port Requirements    对充电端口的要求

一下要求适用所有类型的充电端口,包括CDP, ACA-Dock, DCP and ACA。

4.1.1 Overshoot    正过冲

充电端口的输出电压在负载电流任一阶段的变化都不能超过VCHG_OVRSHT(充电电流会根据不同的充电阶段发生变化),在充电端口上电或掉电的时候也不能超过这个值。

4.1.2 Maximum Current    最大电流

在任何情况下,充电端口的输出电流都不能超过ICDP的最大值。

4.1.3 Detection Renegotiation    重新检测

DS port可以是SDP,CDP或者DCP,并可以在这几种端口之间切换。为了使PD重新启动充电检测流程,要求DS port:
  • 停止驱动VBUS
  • 允许VBUS电压降到 VBUS_LKG之下
  • 等待 TVBUS_REAPP  时间
  • 从新驱动VBUS

4.1.4 Shutdown Operation    关断操作

如果PD汲取的电流超过了Charging Port能提供的范围,此时Charging Port可以关断。关断类型包括:
  • 关断VBUS
  • 恒定电流限制
  • 反向电流限制

4.1.5 Failure Voltage    失效电压

充电端口任意单点故障时的输出电压,要保证在 VCHG_FAIL 范围内。

4.1.6 Multiple Ports    多端口

有多个充电端口的充电器,每个充电端口应该保证在自己允许工作条件下,不用管其它端口。


4.2 Charging Downstream Port

如下要求适用于CDP

4.2.1 Required Operating Range    需要的工作范围

CDP在输出电流小于 ICDP min 时,输出电压范围应该保证在VCHG。VBUS上电压值是TVBUS_AVG时间的平均值。当负载电流大于ICDP min,CDP可以关断。一旦关断,则需要遵循Section 4.1.4的要求。

Figure 4-1是CDP负载曲线的几个例子。负载曲线在VCHG电压范围内要求横穿ICDP min。在电流小于ICDP min范围内,负载曲线不能横穿VCHG min。

Figure 4-1 CDP Required Operating Range


4.2.2 Shutdown Operation    关断操作

如果CDP因为电流过载而关断,当过载条件消失后,CDP应该在TSHTDWN_REC内恢复并输出正常范围的电压VCHG

4.2.3 Undershoot    负过冲

在负载电流小于ICDP min时,负载电流的任一阶段的变化,CDP的输出电压都应该保持在VCHG_UNDSHT

4.2.4 Detection Signaling    信号检测

当远端PD没连通到CDP上时,要求CDP实现两种行为方式中的一种。
  • 第一种方式:
    在断开连接后的TCP_VDM_EN内使能VDM_SRC,然后在连接后的TCP_VDM_DIS时间内disable VDM_SRC。使用这种方式的时候,不要求CDP使能IDP_SINK,或者和D+比较电压值VDAT_REF.
  • 第二种方式:
    比较D+电压值和VDAT_REF and VLGC的大小关系。当(VDAT_REF <
D+ < VLGC),CDP使能VDM_SRC。当(D+
< VDAT_REF)或(D+
> VLGC),CDP
disable VDM_SRC.时序参考Section 3.4.2

4.2.5 Connector    连接器

CDP是一个Standard-A的母口,连接到PD。

4.3 ACA-Dock

如下的规定适用于ACA-DOCK的US PORT.

4.3.1 Required Operating Range

同CDP

4.3.2 Undershoot    负过冲

同CDP

4.3.3 Detection Signaling    信号检测

  • 当PD连接到ACA-DOCK上时,PD作为host的同时从VBUS汲取电流。这种情况类似于PD连接到ACA,ACA的Accessory Port连接了一个外设的情况。
  • 为了通知PD它将作为host汲取电流,ACA-DOCK和ACA都需要通过电阻RID_A下拉ID
    PIN到GND。
  • ACA-DOCK要以 ICDP 给PD供电,但是ACA以 IDCP 给PD供电,并且这个电流必须共享给PD和 Accessory Port连接的任何设备。为了使PD能区分它连接到了一个ACA-DOCK上,而不是ACA上,ACA-DOCK应该按如下要求在D-上使能VDM_SRC:

1.如果 D+/- 在Idle
J态时间超过TCP_VDM_EN,ACA-DOCK将使能VDM_SRC

        2.在D+/-上信号发生变化的TCP_VDM_DIS时间内,ACA-DOCK将停止VDM_SRC

4.3.4 Connector    连接器

ACA-DOCK应该有一个Micro-A的公口,用来连接PD的Micro-AB母口。

4.4 Dedicated Charging Port    DCP

以下内容是对DCP的要求

4.4.1 Required Operating Range    需要的工作范围

当DCP输出的电流小于IDCP min的情况下,输出的电压应该在VCHG定义的范围内。VBUS的电压是在TVBUS_AVG时间的平均值。

当DCP的负载电流小于IDEV_CHG,并且负载电压大于VDCP_SHTDOWN时,DCP应该保持工作不被关断。当负载电流大于IDEV_CHG,或者负载电压小于VDCP_SHTDOWN时,DCP可以被关断。关断后,遵循Section 4.1.4的要求。

Figure 4-2 是几个负载曲线的例子。DCP负载曲线要求穿过恒定电流线IDEV_CHG max,或者恒定电压线VDCP_SHTDWN。DCP不允许在需要的工作范围内关断。
Figure 4-2 DCP Required Operating Range

4.4.2 Undershoot    负过冲

负载电流从IDCP_LOW to IDCP_MID,或者从IDCP_MID to IDCP_HI 任一阶段的变化,DCP的负过冲电压始终应该保持在VCHG_UNDSHT范围内。在负载阶段从low to mid后,要求DCP在TDCP_LD_STP时间内负载阶段从mid to hi也要符合这个要求。负过冲的持续时间要在TDCP_UNDSHT定义的范围内。

负载电流的变化如果从IDCP_LOW to IDCP_HI,DCP供给PD的负载电压可以drop TDCP_UNDSHT时间。这个时间后DCP的输出电压应该在VCHG范围内,负载电流应该小于IDCP min。

4.4.3 Detection Signaling    信号检测

  • DCP在D+和D-间用RDCP_DAT短接
  • DCP D+/D- PIN上的漏电流应该小于或者等于两个连接到 VDAT_LKG 的RDAT_LKG电阻的漏电流。参考 Figure 3-6.
  • D+/- pins 和DCP GND之间的电容应该在 CDCP_PWR规定的范围内

4.4.4 Connector

一个DCP应该有一个Standard-A的母口,或者有一个Micro-B公口的一体线

4.5 Accessory Charger Adapter

以下是对充电端口连接了DCP或CDP的ACA要求。

4.5.1 Required Operating Range    要求的工作范围

对ACA的OTG Port要求的工作范围受以下因素的影响:
• 充电口上的设备 (DCP or CDP)
• 从Accessory Port汲取的电流
• RACA_CHG_OTG

• VACA_OPR

ACA OTG Port能提供给PD的电流的大小取决于Charger Port能提供电流的大小和连接在Accessory Port的设备汲取的电流的大小。OTG端口能获得的电压值取决于充电端口的电压,从OTG and Accessory Ports汲取的电流的大小和RACA_CHG_OTG。只有在充电端口的电压在VACA_OPR范围时,才能要求ACA正常工作。

4.5.2 Undershoot    负过冲

充电端口连接DCP或CDP的ACA应该遵循和DCP一样负过冲要求。

4.5.3 Detection Signaling    信号检测

如spec中Section 6中描述的,ACA应该把OTG端口的ID
PIN下拉到GND,下拉电阻可选值是:RID_GND, RID_C, RID_B, RID_A, RID_FLOAT
ACA中D+/D- PIN应该是从OTG端口直连到the Accessory Port.

4.5.4 Connector

ACA的OTG端口应该是一根Micro-A的一体线。

4.6 Portable Device

以下部分是对PD的要求

4.6.1 Allowed Operating Range

PD从充电端口汲取的最大电流不能超过IDEV_CHG。PD不能把充电端口的电压拉低到VDCP_SHTDWN max以下。Figure 4-3 是PD的正常工作范围。
Figure 4-3 Portable Device Allowed Operating Range

备注:
1) 根据USB 2.0 7.2.2,VBUS的电压可以从US port的4.75V下降到DS port的4.5V。 允许的0.25V的压降是因为线缆和连接器的阻抗产生的。

4.6.2 Detection Signaling

所有的PD都应该实现以下的检测特征:

• DCD timer (TDCD_TIMEOUT)

• Primary Detection    主要检测
    o 区分是DCP/CDP还是SDP类型的充电设备

o 在Primary Detection时比较D-和VDAT_REF 的大小



PD可以选择性的实现以下检测特征:
• DCD, 使用 IDP_SRC
• 在主要检测期间比较D-和VLGC的大小
• 二次检测

• ACA 检测



4.6.3 Detection Renegotiation    重新检测

为了再次重新开始充电器的检测流程,允许DS关断并从新使能VBUS上的供电。参考Section 4.1.3. 为了检测到VBUS的掉电,要求PD在VBUS关断时能对VBUS上的寄存的电荷快速的放电。要求在TVLD_VLKG时间内使电压低于VBUS_LKG。
当PD连接到充电端口时,允许PD断开并重复数次充电器的检测流程。在断开连接到从新开始充电器检测流程之间,要求PD最少等待TCP_VDM_EN max
时间,。

4.6.4 Connector

能连接到ACA-DOCK或ACA的PD应该有一个的Micro-AB母口

6. Accessory Charger Adapter

6.1 前言

随着移动设备变得越来越小,对外只留一个接口是大势所趋。如果这个仅有的接口是USB接口,那就会面临一个问题,在PD已经连接其它设备的同时,还需要给设备充电该怎么办。
举个例子,用户在汽车里边,把耳机连接到了手机上,但此时手机的电量很低了,需要充电,在充电的同时,仍然可以继续使用耳机通话。如果手机只有一个借口,那么就不可能把耳机和充电器同时连到一个接口上。
另外还有这么一种情况,设想有这么一种移动设备,只有一个接口,但也可以作为掌上PC。当这样的PD放到ACA-DOCK上时,它可以作为host连接各种各样的外设,比如hub, keyboard, mouse, printer等等。但是同时也可以被充电。
这章主要就是阐述一种方法,一个USB端口,可以同时连接充电器和设备。这种方法是用了一种ACA的设备实现。如Figure 6-1。

Figure 6-1 Accessory Charger Adapter





ACA 有如下的三个端口:
• OTG Port
• Accessory Port
• Charger Port

OTG Port 有一根 Mircro-A公口的一体线。只有OTG设备(比如带有Micro-AB母口的设备)能连接到这个OTG Port上。
连接到Accessory Port上的外设能是用正常的USB信号和OTG设备通信。

Charger Port将ACA连接到一个Charger Port。Charger Port提供的电量既可以供给OTG设备,也可以供给外设。要求ACA把Charger Port仅仅标识为充电器,因为ACA不支持OTG Port和Charger Port的USB通信。

Charger Port 仅仅用来供电。同时也要求ACA提供一个指示用来显示什么时候能给OTG and Accessory Ports供电。

有两种类型的ACA
• Micro ACA
• Standard ACA
Micro ACA有一个Micro-AB 母口作为Accessory Port,既能连接A-device也能连接B-device。Standard ACA
有一个Standard-A的母口作为Accessory Port,只能连接B-device。

6.2 Micro ACA

6.2.1 Micro ACA Ports

Figure 6-2 是Micro ACA的端口描述

Figure 6-2 Micro ACA Ports


能连接到Micro ACA的Accessory Port(Micro-AB
母口)的线缆类型包括:
• Micro-A to Micro-B
• Micro-A to captive
• Micro-B to Standard-A

• Micro-B to Micro-A

Micro ACA的Charger Port接口类型包括:
• Micro-B 母口
• Standard-A公口的一体线

• 连接charger的一体线


6.2.2 Micro ACA Connectivity Options    Micro ACA连接方法
Table 6-1 是设备连接到Micro ACA端口的各种组合。

Table 6-1 Micro ACA Connectivity Options


  • ACA不能通过充电端口进行数据通信。仅仅允许从充电端口充电。
  • 当SDP或OTG设备连接到Charger Port时,不能通过Charger Port从SDP或OTG设备汲取电流。
在OTG device和B-device 都从Charger Port充电的情况,不必支持SRP,因为VBUS在OTG Port and Accessory Port已经都存在了。
要求OTG device限制从ACA汲取的电流,因为要求保证VBUS_OTG的电平始终大于VACA_OPR min,汲取电流过大可能将VBUS_OTG拉低至VACA_OPR min以下。

6.2.3 Micro ACA Architecture    Micro ACA结构

Figure 6-3 是Micro ACA的结构.


Figure 6-3 Micro ACA Architecture


Accessory Switch控制VBUS_OTG 和 VBUS_ACC之间的电流通断。Charger Switch控制VBUS_CHG 和VBUS_OTG之间的电流通断。
Adapter Controller有如下的功能:
• 读ID_ACC pin的状态(grounded or floating)
• 在ID_OTG pin上使能一种状态, (RID_GND, RID_A, RID_B, RID_C or RID_FLOAT)
• 使用DP_CHG and DN_CHG pins 检测Charger Port是否连接到了充电器上
• 读取 VBUS_ACC pin上的电压

• 控制 Charger 和 Accessory Switches

6.2.4 Micro ACA Modes of Operation    Micro ACA的工作模式

Micro ACA的工作模式见Table 6-2, 这个表假设OTG Port连接的总是OTG device。


Table 6-2 Micro ACA Modes of Operation


备注
1)   Open是指switch的高阻态,即不导通。
     Closed 是指switch低阻态,即导通。

在第5行和第7行,充电器连接到了Micro ACA Charger Port,Accessory Port没连接设备或者连接到Accessory Port的A-device并没驱动VBUS。
ACA使能ID PIN上的 RID_B 电阻向 OTG device表明ACA可以对它充电,并允许OTG device发起SRP请求。OTG device不能建立连通(这意味着OTG
device要保持DP_OTG在低电平)。这是因为如果连接到Accessory Port的 A-device如果没有驱动VBUS,根据USB
spec规定,数据线要保持在低电平。

PS: Micro ACA的Accessory Port连接A-device,在什么情况下才能和OTG-Port的B-device建立连通?
     参见第3,4行。

第8行,充电器连接到了Micro ACA的Charger Port, Accessory Port上连接了使能VBUS的A-device。ACA使能ID
PIN上的电阻RID_C向OTG Port上的OTG
B-device表明ACA可以对它充电,并且可以建立连通。但是OTG Port的OTG B-device不能发起SRP,因为A-device已经使能了VBUS
(PS:这个解释没看明白, Accessory switch
open,怎么发起SRP?答:这里的SRP是指OTG Port上的B-Device对Charger Port上的充电器发起的).

第6行,充电器连接到了Micro ACA的Charger Port,B-device连接到了Accessory Port。ACA使能ID
PIN上的电阻RID_A向OTG Port上的OTG
device表明ACA可以对它充电,并且表示OTG Port上的OTG device作为host。

6.2.5 Implications of not Supporting Micro ACA Detection    不支持Micro ACA检测的影响

OTG的附录仅仅定义了ID PIN的 floating(悬空) and ground 状态。floating state定义是ID
PIN的对地电阻大于1M,ground state的定义是ID PIN的对地电阻小于10Ω。因为RID_A, RID_B and RID_C的阻值是介于悬空和接地电状态的阻值之间,所以一个不支持ACA检测的OTG device有可能把ACA的阻值判断为floating state,也可能判断为ground state。

如果一个OTG device设备把RID_A 识别为 floating,就会:
• 不知道什么时候从VBUS汲取IDEV_CHG的电流
• 将被默认作为peripheral而不是host

如果一个OTG device设备把RID_B 识别为ground,就会:
• 在ACA连通Charger Switch驱动VBUS_OTG 的同时,OTG device也将做为host试图驱动VBUS_OTG
• 本来应该默认作为peripheral,但是却默认做为host

如果一个OTG device设备把RID_B 识别为floating,就会:
• 不知道什么时候能从VBUS汲取高达IDEV_CHG的电流
• 不知道什么时候发起SRP
• 就会默认自己是B-device连接到了host,可能被要求建立连通,检测到VBUS后OTG device会使能D+/D-上的15K上拉电阻,这就违反了USBUSB back-drive voltage规范。如果检测到的是RID_B,则不会使能D+/D-上的15K上拉电阻建立连通。

如果一个OTG device设备把RID_C 识别为ground,就会:
• 在ACA连通Charger Switch驱动VBUS_OTG
的同时,OTG device也将做为host试图驱动VBUS_OTG
• 本来应该默认作为peripheral,但是却默认做为host

如果一个OTG device设备把RID_C 识别为floating,就会:

• 不知道什么时候能从VBUS汲取高达IDEV_CHG的电流S

6.2.6 Micro ACA Requirements    对Micro ACA的要求

  • 当不是充电器连接到Micro ACA的Charger Port时,从Micro ACA的Charger Port 汲取的电流应该小于ISUSP (只有充电器在Charger Port
    有充电功能。)
  • 当充电器连接到Micro ACA的Charger Port,并且没有设备连接到时OTG Port or Accessory Port时,Micro ACA汲取的电流应该小于ISUSP (PS:这个要求不违反Table 6-2的第5项和Table 6-1的第1项吗?)
  • 如Table 6-2,当 Accessory Switch导通,并且 VBUS_CHG 在VACA_OPR范围内时,ACA内部VBUS_CHG and VBUS_OTG管脚间的电阻应该在RACA_CHG_OTG 范围内。
  • 如Table 6-2,当 Accessory Switch导通,并且 VBUS_CHG 在VACA_OPR范围内时,ACA内部VBUS_CHG and VBUS_ACC管脚间的电阻应该在RACA_CHG_ACC 范围内。
  • 如Table 6-2,当 Accessory Switch导通,并且 VBUS_OTG 在VACA_OPR范围内时,ACA内部VBUS_OTG and VBUS_ACC管脚间的电阻应该在RACA_OTG_ACC 范围内。
  • Micro ACA内部GND,和连接到OTG port上的Micro-AB母口的GND,之间的电阻应该在ROTG_ACA_GND范围内。这个要求限制了在大电流充电的情况下OTG
    GND和ACA GND的电平差。相应的,在大电流的情况下,也使OTG device能更精确的检测ACA ID的阻值。
  • 当Micro ACA检测到有效的VBUS_CHG,将在DP_CHG上使能VDP_SRC。如果ACA检测到(VDN_CHG>VDAT_REF),ACA就要在(VBUS_CHG>VOTG_SESS_VLD)的条件下一直保持关闭Charger Switch。注意这样可能会造成ACA从PS2端口汲取大于ICFG_MAX的电流。
  • 当充电端口连接到CDP上时,充电电流会造成(CDP ground < ACA ground),这样可能造成(DN_CHG
    < ACA的VDAT_REF)。CDP可能会因此会做USB reset。ACA应该在此时忽略这样的影响,继续保持Charger Switch的导通。当( VBUS_CHG
    < VOTG_SESS_VLD),在关断Charger Switch前要求再次检查(VDN_CHG>VDAT_REF)条件是否存在在
  • 要求Micro ACA在VBUS_OTG and VBUS_ACC上都应该有CMACA_VBUS范围内的电容。因为支持ADP的设备能判断他们什么时候被连接到ACA上。

6.2.7 Portable Device State Diagram    移动设备的状态机

Figure 6-4 是PD连接到 SDP, CDP, DCP, Micro ACA, ACA-Dock or B-device上时的状态机.

Figure 6-4 Portable Device State Diagram


每个圆环表示PD的一种状态。每个圆环里的第一行是状态编号。
  • 第二行的第一个符号表示PD是否连接到了一个充电端口。
  • 第二行的第二个符号表示PD连接到ACA的时候,ACA的 Accessory Port连接的设备类型。比如是作为host(3、4)还是peripheral(6、7),还是Accessory port上没连设备(5)。或者PD连接到了Dock上(2)。
  • 第三行表示连接到ACA或ACA-Dock的设备(充电器和Accessory Port连接的设备)是否会驱动PD的VBUS。state7对应Table 6-2的第2项和Table 6-1的第三项,此时PD可以驱动VBUS,此时没连接充电器,Accessory Port连接的设备作为peripheral也不能驱动VBUS。
  • 第四行表示连接到ACA或ACA-Dock的设备(充电器和Accessory Port连接的设备)呈现出在ACA或ACA-Dock内部ID PIN上的阻值。这个阻值会通过PD的ID PIN被检测到。

  • In state 1,PD检测到它并没有连接到任何设备上,或者连接到的设备上并不能驱动VBUS或者拉低ID PIN。
  • In state 2, PD连接到了ACA-Dock上,Dock驱动VBUS.如果PD从ACA-Dock上移除或者ACA-Dock停止驱动VBUS,PD的状态机跳转到 state 1。如果ACA 
              没驱动VBUS,则要求ACA把ID PIN置于float状态。如果ACA-Dock在没驱动VBUS时将ID PIN接地,则PD会错误的跳转到state7,此时PD会试图驱动VBUS给ACA-Dock。
  • In state 3,PD直接连在了A-device上,或者连接到了一个ACA上,这个ACA的Accessory Port连接了A-device。不管是两种情况中的哪一种,PD都将从A-device汲取电流,而不会从ACA的Charger Port汲取电流。圆环的第2行的”chg“字符正式为了表示PD是否连接到了充电端口。如果一个A-device被一个PD识别为CDP,PD则可以从A-device汲取IDEV_CHG 大小的电流。
  • In state 4,PD连接到了一个ACA上,ACA的Charger Port连接了充电器,ACA的Accessory Port连接了一个A-device。从ACA上断开PD的连接将使PD的状态跳转到state1.
  • In state 5,PD连接到了一个ACA上,ACA的Charger Port连接了充电器,ACA的Accessory Port没连接任何设备。
  • In state 6,PD连接到了一个ACA上,ACA的Charger Port连接了充电器,ACA的Accessory Port连接了一个B-device。从ACA上断开PD的连接将使PD的状态跳转到state1.
  • In state 7,PD连接到了一个B-device上,或者连接到了一个Accessory Port带有B-device的ACA上。这是唯一需要PD驱动VBUS供电的状态。In states 2 to 6,PD可以从VBUS上汲取电流。

6.3 Standard ACA

6.3.1 Standard ACA Ports

Figure 6-5 是Standard ACA的端口示意图.


Figure 6-5 Standard ACA Ports


有如下的几种类型的线缆可以连接Standard ACA的 Accessory Port到一个Accessory:
• Standard-A to Micro-B
• Standard-A to Standard-B
• Standard-A to captive(比如键盘)
Standard ACA 的Charger Port可以通过一以下的几种机械接口连接:
• Micro-B receptacle
• Captive cable terminating in a Standard-A plug(Standard-A公口的ACA一体线)

• Captive cable terminating in a charger(连接charger的ACA一体线)

由此可知,并不能通过带有Micro-B公口的charger一体线连接Standard ACA 的Charger Port,估计没有这种线。

Battery Charging Specification Revision 1.2 中文版本的更多相关文章

  1. Battery Charging Specification 1.2 中文详解 来源:www.chengxuyuans.com

    1. Introduction 1.1 Scope 规范定义了设备通过USB端口充电的检测.控制和报告机制,这些机制是USB2.0规范的扩展,用于专用 充电器(DCP).主机(SDP).hub(SDP ...

  2. Battery Charging Specification 1.2 中文详解

    转:       http://blog.csdn.net/liglei/article/details/228 1. Introduction 1.1 Scope 规范定义了设备通过USB端口充电的 ...

  3. BC 1.2 模式(Battery Charging Specification 1.2)

    转自:http://blog.csdn.net/liglei 转自:http://blog.csdn.net/liglei/article/details/22852755 USB BC1.2有以下三 ...

  4. Angularjs中文版本开发指南发布

    从本人开始在写关于Angularjs的文章开始,也算是见证了Angularjs在国内慢慢的火起来,如今的Angularjs正式如日中天.想知道为什么Angularjs会这么火,请移步angularjs ...

  5. 如何在FreePBX ISO 中文版本安装讯时网关,潮流16FXS 网关和潮流话机

    如何在FreePBX ISO 中文版本安装讯时网关,潮流16FXS 网关和潮流话机摘自:http://www.siplab.cn/?p=664 1)迅时的fxo口网关要注册到asterisk,所以现在 ...

  6. Video for Linux Two API Specification Revision 2.6.32【转】

    转自:https://www.linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec-single/v4l2.html Video for ...

  7. Smart Battery Specification Revision 1.1

    1.SBS Specifications 2.System Management Bus (SMBus) Specification

  8. svn客户端的安装与中文版本语言库

    首先在mac下下载svn或者其他软件请看另一篇博客链接:http://www.cnblogs.com/minyc/p/myc201606191543.html 另附svn常用命令操作详解:http:/ ...

  9. 小米2S TWRP 3.0.2-0 最新中文版本Recovery

    注意:此版本为合并分区后的twrp  小米2S 合并分区教程:http://forum.xda-developers.com/mi-2/orig-development/flashtools-mifl ...

随机推荐

  1. python从零开始基础入门——开发环境搭建:Visual Studio Code

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:山海皆可平z PS:如有需要Python学习资料的小伙伴可以加点击下方 ...

  2. mybatis配置的逻辑删除不好使了

    在使用mybatisplus中,可使用逻辑删除.案例中,使用mybatisplus逆向生成model,使用delete_status为识别逻辑删除字段. springboot 中配置启动逻辑删除 my ...

  3. ubuntu允许root远程登录

    之前说了,怎么设置root用户登录,但是使用Xshell等工具操作Ubuntu,用户登录不进去,原因很简单,没有开启root登录的权限. 1.检查ssh服务是否开启 使用以下命令,查看是否开启 ps ...

  4. linux通过进程名查看其占用端口

    1.先查看进程pid ps -ef | grep 进程名 2.通过pid查看占用端口 netstat -nap | grep 进程pid 参考: https://blog.csdn.net/sinat ...

  5. Linux-Deepin 下开启SSH远程登陆

    #### 关于deepin系统安装ssh后,root超级用户登录报错的完美解决方案! 最近刚刚接触到deepin,觉得,wow,除了mac,还有这么好看的非win系统,而且第测出那个Linux,宽容度 ...

  6. pytorch 矩阵数据增加维度unsqueeze和降低维度squeeze

    增加一个维度 out.unsqueeze(-1) 降低一个维度 out.squeeze(dim=1)

  7. 5、flink常见函数使用及自定义转换函数

    代码地址:https://gitee.com/nltxwz_xxd/abc_bigdata 一.flink编程方法 获取执行环境(execution environment) 加载/创建初始数据集 对 ...

  8. python学习05条件分支

    '''if '''a=1b=2if a==b: print(a)print(b) '''与C语言不同,python语言的if格式必须为if 布尔表达式:(冒号不能省略)其二,python有严格的缩进格 ...

  9. 2019-2020-1 20199328《Linux内核原理与分析》第十一周作业

    预备实验部分 2019/11/27 10:17:34 下载安装后的界面,如图1 出现vulnerable字样,发现了shellshock漏洞,如图2 实验部分 2019/11/27 10:26:48 ...

  10. 抖音人脸识别Autojs脚本

    title: 抖音人脸识别Autojs脚本 用Autojs写的抖音人脸颜值检测脚本 ​ 疫情期间宅家久了,昨天闲着没事(好吧,有事情,但是我不想做) ,消费之火熊熊燃烧.一咬牙把Autojs入正了.我 ...