Battery Charging Specification
Revision 1.2
Li,Guanglei
2014.04.03 Rev0.1
转载请注明转自:
http://blog.csdn.net/liglei
1. Introduction 第一章 简介
规范定义了设备通过USB端口充电的检测、控制和报告机制,这些机制是USB2.0规范的扩展,用于专用充电器(DCP)、主机(SDP)、hub(SDP)和CDP(大电流充电端口)对设备的充电和power up。这些机制适用于兼容USB2.0的所有主机和外设。
1.2 Background 规范制定背景
- PD(portable device)便携式设备连接到host或hub后,USB2.0协议规定了三种情况下PD汲取电流的最大值:
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
R
ID_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:电压值大于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
2. PD在disable VDP_SRC后1s内建立连通,即使能上拉电阻
- 这个电流只能用于使PD尽快的上电并枚举,或者充电至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汲取配置电流(最大至
I
CFG_MAX=500mA
),不需要通过USBCV测试。规则如下:
- 响应接收到的令牌
- 响应USB reset
- 响应USB suspend
- 超时后提供完整的USB功能,或者断开连接使用DBP–Unconfigured Clause
从连接TDBP_FUL_FNCTN(
Attach to full USB functionality
for configured PD under DBP T
DBP_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:
![](https://i-blog.csdnimg.cn/blog_migrate/604f601da21db10ca1a0f7526af6cc3c.png)
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中的充电检测的硬件电路
![](https://i-blog.csdnimg.cn/blog_migrate/8c335ea51663e5c808c04dc8c57b3ffb.png)
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 V
BUS
is powered. The session ends when V
BUS
is no longer powered.”
从这句话来理解,session
是
V
BUS从有到无
一段时间,它是针对
V
BUS
的,所以以后也可以理解为有效的
VBUS
,只是这时候的
V
BUS是基于一定的时间段有效的
。
每个PD的
V
BUS电源线的内部都有一个电压比较器,用来判断
VBUS
什么时候有效,和谁做比较呢?和内部的有效电压阈值比,可以理解是和一个定值比,高于这个值就是有效的
VBUS
。这个阈值在本规范中叫做
internal session
valid threshold,它的范围在定义为
V
OTG_SESS_VLD(
OTG Session Valid Voltage V
OTG_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+提供的电流源
I
DP_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不起作用的情况有:
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
![](https://i-blog.csdnimg.cn/blog_migrate/9a9211992d1a2964fe9212b9f9d91c22.png)
- 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
![](https://i-blog.csdnimg.cn/blog_migrate/b222e52020f85346326203600be9846f.png)
Figure 3-4 Data Contact Detect, Not Attached
图3-4是PD没连接到远端设备的情况
DCD协议如下:
值要求能保证在最坏漏电流( R DAT_LKG and V DAT_LKG) 情况下 ,使D+保持在 VLGC_HI( Logic High 2.0~3.6 V )。
DCD协议如下:
- PD检测VBUS有效
- PD使能D+电流源IDP_SRC和D-线上的下拉电阻
- PD检测到D+线保持TDCD_DBNC(Data contact detect debounce min=10ms)低电平
- 关闭D+电流源IDP_SRC和D-线上的下拉电阻
值要求能保证在最坏漏电流( R DAT_LKG and V DAT_LKG) 情况下 ,使D+保持在 VLGC_HI( Logic High 2.0~3.6 V )。
3.2.3.4 Data Contact Detect, Standard Downstream Port SDP的DCD
![](https://i-blog.csdnimg.cn/blog_migrate/eae21327adc388d27cdfdf6e8c213636.png)
Figure 3-5 Data Contact Detect, Standard Downstream Port
- 当PD连接到SDP时,D+线被SDP的RDP_DWN拉低
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工作的示意图
![](https://i-blog.csdnimg.cn/blog_migrate/cc81547abeb7653527a2ad43f2890016.png)
Figure 3-6 Primary Detection, DCP
- 打开 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.
- 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端口造成损坏。
- 有些专用的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工作方式
![](https://i-blog.csdnimg.cn/blog_migrate/8437ded9637f1caed9fb2bd33a9c6cd4.png)
Figure 3-7 Primary Detection, CDP
当远端设备没连接到CDP上时,对CDP的行为有两种可选的方式。
-
在断开连接的 TCP_VDM_EN(Time for Charging Port to assertVDM_SRC on D- max=200ms) 时间内,使能 VDM_SRC( D- Source Voltage 0.5~0.7V);在连接PD的 T CP_VDM_DIS( Time for Charging Port to remove VDM_SRC on D- max=10ms)时间内disable V DM_SRC。使用这方式,不要求CDP使能 IDP_SINK,或者比较D+的电压值是否到 VDAT_REF。
- 第二种方式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上。详细原因参考3.2.4.1
3.2.4.3 Primary Detection, SDP
Figure 3-8 展示了PD连接到SDP时
Primary Detection的工作方式
Figure 3-8 Primary Detection, SDP
![](https://i-blog.csdnimg.cn/blog_migrate/a884a5cb64c5dd0de488d56619008ae4.png)
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的工作方式
![](https://i-blog.csdnimg.cn/blog_migrate/b288bdd0365e1c65173f85385f159458.png)
Figure 3-9 Primary Detection, ACA-Dock
ACA-DOCK简介:
ACA-DOCK是一个扩展坞,有一个US port连接PD,给PD提供
I
CDP
的充电电流;没有或有多个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
V
DM_SRC
。ACA-DOCK 必需在
D+/D-线上有活动的
T
CP_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=220
kΩ
)
当支持ACA的PD检测到以下条件,就能确定连接了一个ACA-DOCK
• VBUS > VOTG_SESS_VLD
• D+ at VLGC_HI
• VDAT_REF < D- < VLGC
•
ID at
R
ID_A
V
DAT_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>
V
LGC
))和ACA-DOCK(
VDAT_REF < D- < VLGC
),要求PD比较D-的电压值与
VLGC的关系。
PD: PD的 对 VDP_SRC的控制
当ACA-DOCK通过 RDP_UP 上拉D+到 VDP_UP 时,PD的 V DP_SRC 要使D+保持在高电平状态。因为这样ACA-DOCK就检测不到D+上的电平变化,这样就不会在PD完成 Primary Detection前,因为检测到D+上的电平变化而提前关闭 VDM_SRC 。
Figure 3-10
展示了支持ACA检测的PD连接到一个Micro-ACA时的工作方式
![](https://i-blog.csdnimg.cn/blog_migrate/89ecf8ba7917d9e518a0450e38a47ee9.png)
Figure 3-10 Primary Detection, ACA
当
VBUS>
V
OTG_SESS_VLD
时,支持ACA检测的PD必须监控ID PIN的电阻变化,当ID PIN的电阻是
RID_B
or
RID_C
时,PD认为连接到了ACA。
• 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的
T
SVLD_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二次检测的方式
![](https://i-blog.csdnimg.cn/blog_migrate/7ef1f39321cc1e5c5344824ad0128516.png)
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二次检测的方法
![](https://i-blog.csdnimg.cn/blog_migrate/0cc0cb4d7ce67eaeb7bc8057b6ed8fc3.png)
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的充电电流
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检测时的方式
![](https://i-blog.csdnimg.cn/blog_migrate/7f9cd75f5689467ced5c37d64a7e9705.png)
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规则
![](https://i-blog.csdnimg.cn/blog_migrate/a7e97a69d1dc08c0f6b5507831c6bda4.png)
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需要遵守的的充电检测算法。
![](https://i-blog.csdnimg.cn/blog_migrate/ab338fad93a899bf063a4faa86bebdd7.png)
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.1 Data Contact Detect Timing DCD时序
为了开始DCD检测,PD使能
I
DP_SRC,并且使能
I
DM_SINK or
R
DM_DWN。当PD检测到D+线的低电平时间超过
T
DCD_DBNC,
PD就判断Data PIN已经连接上了。
Figure 3-16 是从DCD检测开始到判断Data PIN连接的时序。
Figure 3-16 DCD Timing, Contact After Start
![](https://i-blog.csdnimg.cn/blog_migrate/cfa426c573f60402d7d3a901fc23e289.png)
Figure 3-17 是DCD开始检测前Data PIN就已经连接上的时序图
Figure 3-17 DCD Timing, Contact Before Start
![](https://i-blog.csdnimg.cn/blog_migrate/622171af24ee8d3acb3e1c2c91ae768a.png)
Figure 3-18
是没检测到DCD的时序
Figure 3-18 DCD Timing, No Contact
![](https://i-blog.csdnimg.cn/blog_migrate/e6bd95a4faa4e0b4837e17b5a4ef9574.png)
3.4.2 Detection Timing, CDP
Figure 3-19
是CDP的主要检测和二次检测的时序,包含了比较D+和
V
DAT_REF and
V
LGC,
根据条件使能
V
DM_SRC的情况。当PD没连接时,CDP也可以保持使能
V
DM_SRC。
详细参考
Section 3.2.4.2
![](https://i-blog.csdnimg.cn/blog_migrate/d91d0b66212238cb9d2804a2f3b519a5.png)
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电平达到最大允许值
V
GND_OFFSET
时,在PD从CDP汲取电流大于
I
CFG_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 正过冲
充电端口的输出电压在负载电流任一阶段的变化都不能超过
V
CHG_OVRSHT
(充电电流会根据不同的充电阶段发生变化),
在充电端口上电或掉电的时候也不能超过这个值。
4.1.2 Maximum Current 最大电流
在任何情况下,充电端口的输出电流都不能超过
I
CDP
的最大值。
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
时,输出电压范围应该保证在
V
CHG。VBUS上电压值是
T
VBUS_AVG时间的平均值。当负载电流大于
I
CDP min,CDP可以关断。一旦关断,则需要遵循
Section 4.1.4
的要求。
Figure 4-1
是CDP负载曲线的几个例子。负载曲线在
V
CHG
电压范围内要求横穿
I
CDP
min。在电流小于
I
CDP min范围内,负载曲线不能横穿
V
CHG min。
Figure 4-1 CDP Required Operating Range
![](https://i-blog.csdnimg.cn/blog_migrate/0402d47e4c7a9270773f34cea55ad0d0.png)
4.2.2 Shutdown Operation 关断操作
如果CDP因为电流过载而关断,当过载条件消失后,CDP应该在
T
SHTDWN_REC内恢复并输出正常范围的电压
V
CHG
4.2.3 Undershoot 负过冲
在负载电流小于
I
CDP min时,负载电流的任一阶段的变化,CDP的输出电压都应该保持在
V
CHG_UNDSHT
4.2.4 Detection Signaling 信号检测
当远端PD没连通到CDP上时,要求CDP实现两种行为方式中的一种。
- 第一种方式:
在断开连接后的
T
CP_VDM_EN
内使能
V
DM_SRC,
然后在连接后的
T
CP_VDM_DIS时间内disable
V
DM_SRC。
使用这种方式的时候,不要求CDP使能
I
DP_SINK
,或者和D+比较电压值
V
DAT_REF.
- 第二种方式:
比较D+电压值和
V
DAT_REF and
V
LGC
的大小关系。当(
V
DAT_REF
< D+ <
V
LGC),
CDP使能
V
DM_SRC。
当
(
D+ <
V
DAT_REF)或(
D+ >
V
LGC
),
CDP disable
V
DM_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:
2.在
D+/-上信号发生变化的
T
CP_VDM_DIS
时间内,ACA-DOCK将停止
V
DM_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输出的电流小于
I
DCP min的情况下,输出的电压应该在
V
CHG定义的范围内。VBUS的电压是在
T
VBUS_AVG
时间的平均值。
当DCP的负载电流小于
I
DEV_CHG
,并且负载电压大于
V
DCP_SHTDOWN时,DCP应该保持工作不被关断。当负载电流大于
I
DEV_CHG
,或者
负载电压小于
V
DCP_SHTDOWN时,DCP可以被关断。关断后,遵循
Section 4.1.4
的要求。
Figure 4-2 是几个负载曲线的例子。DCP负载曲线要求穿过恒定电流线
I
DEV_CHG max,或者恒定电压线
V
DCP_SHTDWN。DCP不允许在需要的工作范围内关断。
Figure 4-2 DCP Required Operating Range
![](https://i-blog.csdnimg.cn/blog_migrate/6708ca58ea7aa3612b95baab75fffa15.png)
4.4.2 Undershoot 负过冲
负载电流从
I
DCP_LOW to
I
DCP_MID,或者从
I
DCP_MID to
I
DCP_HI 任一阶段的变化,DCP的负过冲电压始终应该保持在
V
CHG_UNDSHT范围内。在负载阶段从
low to mid后,要求DCP在
T
DCP_LD_STP时间内负载阶段从
mid to hi也要符合这个要求。负过冲的持续时间要在
T
DCP_UNDSHT
定义的范围内。
负载电流的变化如果从
I
DCP_LOW to
I
DCP_HI,DCP供给PD的负载电压可以drop
T
DCP_UNDSHT时间。这个时间后DCP的输出电压应该在
V
CHG
范围内,负载电流应该小于
I
DCP 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汲取的电流的大小和
R
ACA_CHG_OTG。只有在充电端口的电压在
V
ACA_OPR
范围时,才能要求ACA正常工作。
充电端口连接DCP或CDP的ACA应该遵循和DCP一样负过冲要求。
![](https://i-blog.csdnimg.cn/blog_migrate/d9371489925cddb2657a223d3efcab28.png)
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从充电端口汲取的最大电流不能超过
I
DEV_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上的寄存的电荷快速的放电。要求在
T
VLD_VLKG
时间内使电压低于
V
BUS_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
![](https://i-blog.csdnimg.cn/blog_migrate/703b9835be354a4908057f897095c7cb.png)
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
Figure 6-2 Micro ACA Ports
![](https://i-blog.csdnimg.cn/blog_migrate/bcdd23dcbb07a030297f3e84552f81f4.png)
能连接到
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的一体线
• 连接charger的一体线
6.2.2 Micro ACA Connectivity Options
Micro ACA连接方法
Table 6-1 是设备连接到
Micro ACA端口的各种组合。
![](https://i-blog.csdnimg.cn/blog_migrate/554248cc2294d725d7c85f0222cc6011.png)
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的电平始终大于
V
ACA_OPR min,汲取电流过大可能将
VBUS_OTG拉低至
V
ACA_OPR min以下
。
Figure 6-3 Micro ACA Architecture
![](https://i-blog.csdnimg.cn/blog_migrate/dc68a51e7cbb990d560f452328aab6af.png)
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。
![](https://i-blog.csdnimg.cn/blog_migrate/b8070a0d8942526e8c57b16901791fb3.png)
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上的电阻
R
ID_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上的电阻
R
ID_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汲取
I
DEV_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汲取高达
I
DEV_CHG
的电流
• 不知道什么时候发起SRP
• 就会默认自己是B-device连接到了host,可能被要求建立连通,检测到VBUS后
OTG device
会使能D+/D-上的15K上拉电阻,这就违反了USB
USB back-drive voltage规范。如果检测到的是
R
ID_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汲取高达
I
DEV_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
![](https://i-blog.csdnimg.cn/blog_migrate/1d0f6b16da82e1d6f0c34b4bcbfeab0b.png)
每个圆环表示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
Figure 6-5 Standard ACA Ports
![](https://i-blog.csdnimg.cn/blog_migrate/c213c8ebca84dcee65a22b945ea23758.png)
有如下的几种类型的线缆可以连接
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,估计没有这种线。