转:       http://blog.csdn.net/liglei/article/details/228

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线的上下拉电阻)。

1.3 Reference Documents

(1)OTG and Embedded Host Supplement, Revision 2.0

(2)USB 2.0 Specification

(3)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是关断的。当不连

接充电器时,可以通信。

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电阻到GNDSDP有检测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。

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中的充电检测的硬件电路

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的插入速度,最长观察到的间隔时间是200msPD区分充电口和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 High4.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检测
  3. D-的电压是否达到VDP_SRC(D+ Source Voltage 0.5~0.7v).
  4. PD在D-上的电压比较器比较D-电压和VDAT_REF(Data Detect Voltage 0.25~0.4 v),如果D-大于
  5. VDAT_REF,就可以确定PD连接到了charging port上,可以进一步检测是连接到了DCP还是CDP上。
  6. PD也可以选择性的实现检测D-电压是否达到VLGC( Logic Threshold 0.8~2.0V),此时检测DCP还是
  7. CDP的条件是VDAT_REF< D- <VLGC,是否选择实现检测VLGC这个电平的原因如4.
  8. PS2端口会把D+/D-上拉到高电平,当PD连接到PS2端口,如果PD只检测(D->VDAT_REF),然后
  9. 判定是连接到了DCP还是CDP,开始汲取IDEV_CHG(Allowed PD Current Draw from Charging Port
  10. max=1.5A)电流。这么大的电流可能会损坏PS2端口。通过判定(D-<VLGC)以后再检测DCP,CDP类型,
  11. 这样可以避免PD对PS2端口造成损坏。
  12. 有些专用的charger也会把D+/D-上拉到高电平,如果PD连接到这样的一个charger上,因为(D-
  13. >VLGC),所以PD判断不是连在一个充电端口上。然后PD判断自己是连在一个SDP上,这是就只能汲取
  14. ISUSP的电流。是否选择实现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的行为有两种可选的方式。

在断开连接的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。

  1. 第二种方式CDP将比较D+电压与VDAT_REF and VLGC,当(VDAT_REF<D+<VLGC),CDP将使能
  2. VDM_SRC;当(D+ < VDAT_REF 或 D+ > VLGC),CDP将disable VDM_SRC。需要注意的是CDP在和PD
  3. 连接的时候,要求比较D+和VLGC,来disable VDM_SRC。
  4. 在 Primary Detection期间,PD将打开 VDP_SRC and IDM_SINK.PD将把D-上的电压和 VDAT_REF 做
  5. 比较。如果(D->VDAT_REF),才允许PD继续检测是连接到DCP还是SDP上。PD可以选择性的比较D-和
  6. VLGC,只有当(VDAT_REF<D-<VLGC)时,才能进一步检测是连接到SDP还是DCP上。详细原因参考
  7. 3.2.4.3 Primary Detection, SDP
  8. Figure 3-8 展示了PD连接到SDP时Primary Detection的工作方式

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的工作方式

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的充电电流

3.3 Charger Detection Algorithms

3.3.1 Weak Battery Algorithm 弱电池算法

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

要求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需要遵守的的充电检测算法。

当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模式

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.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要求的工作范围受以下因素的影响:

(1)充电口上的设备 (DCP or CDP)

(2)从Accessory Port汲取的电流

(3)RACA_CHG_OTG

(4)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的正常工作范围。

4.6.2 Detection Signaling

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

(1)DCD timer (TDCD_TIMEOUT)

(2)Primary Detection 主要检测,区分是DCP/CDP还是SDP类型的充电设备在Primary Detection时

比较D-和VDAT_REF 的大小 
                   PD可以选择性的实现以下检测特征:

(1)DCD, 使用 IDP_SRC

(2)在主要检测期间比较D-和VLGC的大小

(3)二次检测

(4)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母口的设备)能连接到这个OTGPort上。 连接到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:

(1)Micro ACA

(2)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 母口)的线缆类型包括:

(1)Micro-A to Micro-B

(2)Micro-A to captive

(3)Micro-B to Standard-A

(4)Micro-B to Micro-A

Micro ACA的Charger Port接口类型包括:

(1)Micro-B 母口

(2)Standard-A公口的一体线
                (3)连接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有如下的功能:

(1)读ID_ACC pin的状态(grounded orfloating)

(2)在ID_OTG pin上使能一种状态, (RID_GND, RID_A, RID_B, RID_C or RID_FLOAT)

(3)使用DP_CHG and DN_CHG pins 检测Charger Port是否连接到了充电器上

(4)读取 VBUS_ACC pin上的电压

(5)控制 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。

Battery Charging Specification 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 Revision 1.2 中文版本

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

  3. Nginx配置文件nginx.conf中文详解(转)

    ######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_ ...

  4. Nginx中文详解、配置部署及高并发优化

      一.Nginx常用命令: 1. 启动 Nginx          /usr/local/nginx/sbin/nginxpoechant@ubuntu:sudo ./sbin/nginx2. 停 ...

  5. 跟我学机器视觉-HALCON学习例程中文详解-FUZZY检测用于开关引脚测量

    跟我学机器视觉-HALCON学习例程中文详解-FUZZY检测用于开关引脚测量 * This example program demonstrates the basic usage of a fuzz ...

  6. 跟我学机器视觉-HALCON学习例程中文详解-测量圆环脚宽间距

    跟我学机器视觉-HALCON学习例程中文详解-测量圆环脚宽间距 This example program demonstrates the basic usage of a circular meas ...

  7. 跟我学机器视觉-HALCON学习例程中文详解-开关引脚测量

    跟我学机器视觉-HALCON学习例程中文详解-开关引脚测量 This example program demonstrates the basic usage of a measure object. ...

  8. 跟我学机器视觉-HALCON学习例程中文详解-QQ摄像头读取条码

    跟我学机器视觉-HALCON学习例程中文详解-QQ摄像头读取条码 第一步:插入QQ摄像头,安装好驱动(有的可能免驱动) 第二步:打开HDevelop,点击助手-打开新的Image Acquisitio ...

  9. 跟我学机器视觉-HALCON学习例程中文详解-IC引脚测量

    跟我学机器视觉-HALCON学习例程中文详解-IC引脚测量 Lead Measurement: Example for the application of the measure object in ...

随机推荐

  1. Manthan, Codefest 16 B 数学

    B. A Trivial Problem time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  2. 'NoneType' object has no attribute '__getitem__'

    报错 'NoneType' object has no attribute '__getitem__' 你 result 返回的是 None ,所以 result [0] 取不了值

  3. 小M的作物 最大权闭合子图

    题目大意 bzoj 3438 两个田\(A,B\) \(n\le 1000\)种作物的种子 第\(i\)个种子,种\(A\)价值\(a[i]\),种\(B\)价值\(b[i]\) 再给出\(m\)个子 ...

  4. bzoj 4310 跳蚤 二分答案+后缀数组/后缀树

    题目大意 给定\(k\)和长度\(\le10^5\)的串S 把串分成不超过\(k\)个子串,然后对于每个子串\(s\),他会从\(s\)的所有子串中选择字典序最大的那一个,并在选出来的\(k\)个子串 ...

  5. js动态添加select菜单 联动菜单

    原文发布时间为:2009-11-14 -- 来源于本人的百度文章 [由搬家工具导入] <html> <head> <title>http://hi.baidu.co ...

  6. 恶补一下DP+背包专题(刷刷水题)L2

    开心的金明 题目大意 就是求一定背包容量的最大值 思路 想必大家都知道,一看到这种题目,就会想起01背包 虽然特别简单但是还是讲一下吧 状态设置 由于这题差不多是一个01背包的版子题,那么我们就只需要 ...

  7. unbuntu 矫正电脑系统时间

    sudo tzconfig,如果命令不存在请使用 dpkg-reconfigure tzdata

  8. shell 执行提示No such file or directory

    问题描述: 项目开发过程中ansible执行脚本失败,单独运行shell脚本提示:No such file or directory,脚本结构执行脚本a 调用另一脚本b, 但查看b脚本路径正确不存在找 ...

  9. 编译程序加不加 -lpthread 的区别【转】

    转自:http://www.cnblogs.com/Swartz/articles/3939382.html 作者:Lokki 出处:http://www.cnblogs.com/Swartz/ 欢迎 ...

  10. tomcat 多实例的Sys V风格脚本

    -------------------------------------------------[翠花,上脚本]------------------------------------------- ...