USB充电规范——BC1.2 中文详解

1. Introduction

     1.1 Scope算法

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

  1.2 Background ide

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

          (1)bus在suspend(挂起)时,最大汲取电流2.5mA;ui

          (2)bus没suspend(挂起)而且未被配置时,最大汲取电流100mA;spa

          (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 Documents3d

          (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链接到Accessory。

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(Standard Downstream Port),另一种是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.5  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.6 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-在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 概述

     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.      
  2.    打开 VDP_SRC (D+ Source Voltage 0.5~0.7v)and IDM_SINK(D- Sink Current 25~175 μA).D+和D-经过RDCP_DAT(Dedicated Charging Port resistance across D+/- max=200Ω)短接,PD检测D-的电压是否达到VDP_SRC(D+ Source Voltage 0.5~0.7v).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.
  3.       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端口形成损坏。
  4.        有些专用的charger也会把D+/D-上拉到高电平,若是PD链接到这样的一个charger上,由于(D- >VLGC),因此PD判断不是连在一个充电端口上。而后PD判断本身是连在一个SDP上,这是就只能汲取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将使能VDM_SRC;当(D+ < VDAT_REF 或 D+ > VLGC),CDP将disable VDM_SRC。须要注意的是CDP在和PD链接的时候,要求比较D+和VLGC,来disable VDM_SRC。在 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上。详细缘由参考
  2.  
  3.        3.2.4.3 Primary Detection, SDP
  4.           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母口的设备)能链接到这个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:

            (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 or floating)

                (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。