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
一旦接收到复位信号,PD将减小充电电流到IUNIT。PD允许在接收到reset后断开连接。当断开连接,PD将使用DBP –Unconfigured Clause。
保持连接降低充电电流到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
打开 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-
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-
有些专用的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。
第二种方式CDP将比较D+电压与VDAT_REF and VLGC,当(VDAT_REF 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
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- 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的 对 V DP_SRC 的控制 当ACA-DOCK通过 RDP_UP 上拉D+到 VDP_UP时,PD的V DP_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的要求
这一章介绍了如下的要求:
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可以关断。关断类型包括:
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,估计没有这种线。
Table 6-3 Standard ACA Connectivity Options
ACA不能通过Charger Port进行数据通信。ACA的Charger Port连接充电器时才能充电。当SDP或OTG设备连接到Charger Port时,不允许通过ACA的Charger Port充电。
在OTG device and a B-device都从ACA的Charger Port充电的情况,不需要支持SRP,因为VBUS在OTG Port and Accessory Port都已经被驱动了。
要求限制OTG device从ACA的OTG Port汲取的电流大小,这样是为了保证(VBUS_OTG > VACA_OPR).OTG device如果汲取电流过大,造成充电器过载,会拉低VBUS_OTG。
6.3.2 Standard ACA Architecture
Figure 6-6 是Standard ACA的结构。
Figure 6-6 Standard ACA Architecture
Charger Switch控制电流从VBUS_CHG流向VBUS_OTG。注意,和Micro ACA不同的是,Standard ACA没有Accessory Switch。
要求 Standard ACA在VBUS_OTG or VBUS_ACC PIN上连接CSACA_VBUS大小的电容,原因如下。
因为Standard ACA的Accessory Port使用了Standard-A母口,所以Accessory Port没有ID PIN。因此,Standard ACA不能检测到什么时候设备插到 Accessory Port,因此,也无法通知OTG Device这个连接事件。如果一个充电器连接到 ACA的Charger Port上,这时候accessory就能建立连接,OTG device就能检测到连接事件。如果ACA Charger Port没连接充电器,那OTG Device或者停止驱动VBUS,或者这做ADP。为了是ADP正常进行,VBUS_OTG and VBUS_ACC PIN上的等效电容要在 CSACA_VBUS范围内
Adapter Controller有以下几个作用:
在ID_OTG pin使能一种状态(RID_GND, RID_A)
用DP_CHG and DN_CHG pins检测Charger Port是否连接了充电器
控制Charger Switch
6.3.3 Standard ACA Modes of Operation 工作模式
Table 6-4是Standard ACA的工作模式, 在下面做了具体的解释. 这个表假设ACA的OTG Port上一直连着OTG Device。
Table 6-4 Standard ACA Modes of Operation
备注:
1) Open是指switch的高阻态,即不导通。
Closed 是指switch低阻态,即导通。
当PD连接到Standard ACA时,ID_OTG PIN的状态是RID_GND or at RID_A之一。并且PD一直作为A-device。
6.3.4 Implications of not Supporting Standard ACA Detection 不支持Standard ACA检测的影响
OTG的附录仅仅定义了ID PIN的 floating(悬空) and ground 状态。floating state定义是ID PIN的对地电阻大于1M,ground state的定义是ID PIN的对地电阻小于10Ω。因为RID_A的阻值是介于悬空和接地电状态的阻值之间,所以一个不支持ACA检测的OTG device有可能把ACA的阻值判断为floating state,也可能判断为ground state。
如果一个OTG device设备把RID_A 识别为 floating,就会:
• 不知道什么时候从VBUS汲取IDEV_CHG的电流
• 将被默认作为peripheral而不是host
6.3.5 Standard ACA Requirements Standard ACA的要求(基本和Micro-ACA相同)
当不是充电器连接到Standard ACA的Charger Port时,从Standard ACA的Charger Port 汲取的电流应该小于ISUSP (只有充电器在Charger Port 有充电功能。)(同)
当充电器连接到Standard ACA的Charger Port,并且没有设备连接到时OTG Port or Accessory Port时,Standard ACA汲取的电流应该小于ISUSP (PS:这个要求不违反Table 6-2的第5项和Table 6-1的第1项吗?)(同)
如Table 6-4,当 Charger Switch导通,并且 VBUS_CHG 在VACA_OPR范围内时,ACA内部VBUS_CHG 和 VBUS_OTG、VBUS_ACC管脚间的电阻应该在RACA_CHG_OTG 范围内。
Standard ACA内部GND,和连接到OTG port上的Micro-AB母口的GND,之间的电阻应该在ROTG_ACA_GND范围内。这个要求限制了在大电流充电的情况下OTG GND和ACA GND的电平差。相应的,在大电流的情况下,也使OTG device能更精确的检测ACA ID的阻值。(同)
当Standard 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)条件是否存在在(同)
你可能感兴趣的:(充电,USB)
CX8836:小体积大功率升降压方案推荐(附Demo设计指南)
诚芯微科技
社交电子
CX8836是一颗同步四开关单向升降压控制器,在4.5V-40V宽输入电压范围内稳定工作,持续负载电流10A,能够在输入高于或低于输出电压时稳定调节输出电压,可适用于USBPD快充、车载充电器、HUB、汽车启停系统、工业PC电源等多种升降压应用场合,为大功率TYPE-CPD车载充电器提供最优解决方案。提供CX8836Demo测试、CX8836样品申请及CX8836方案开发技术支持。CX8836同升
摩托车加装车载手机充电usb方案/雅马哈USB充电方案开发
诚芯微科技
社交电子
长途骑行需要给手机与行车记录仪等设备供电,那么,加装USB充电器就相继在两轮电动车上应用起来了。摩托车加装usb充电方案主要应用于汽车、电动自行车、摩托车、房车、渡轮、游艇等交通工具。提供电动车USB充电器方案/摩托车加装usb充电方案/渡轮加装usb充电方案/游艇加装usb充电方案开发。摩托车加装车载手机充电usb方案、汽车游艇改装四孔面板装双USB车充点烟器5V/4A电动车USB充电器输入4.
新能源汽车 BMS 学习笔记篇—BMS 基本定义及分类
WPG大大通
其他 笔记 汽车 BMS 经验分享 新能源 电池
一、BMS定义1、概念:BMS(BatteryManagementSystem)即电池管理系统,其管理对象是二次电池(充电电池或蓄电池),其主要目的是电池的利用率,防止电池出现过度充电和过度放电,可应用于电动汽车、电瓶车、机器人、无人机等图片来源:腾讯网https://new.qq.com《标准普尔警告,电动汽车电池生产面临供应链和地缘政治风险》2、四大功能①感知和测量:检测电池的电压、电流、温度
做事一定要认真
地上的垚
大脑突然被惊醒,我猛然起身,接着发了下呆,灵魂回归后意识到:啊,今天上班要迟到了!我按了按手机发现手机已关机,略微一看,原来是昨晚充电器没插上。一件微不足道的事折射出我的粗心大意,反映了我对待事情漠不关心,草草了事的态度。许许多多的事情都需要认认真真的对待才能做好,认真是自我努力的表现。工作中,我总是不停的犯错误,我谴责自己:连这点小事都要犯错,你有什么用啊。同时也安慰自己:不过是一点小错误而已,
HBuilderX真机运行安卓APP
hello_world_Q
android
前提:1.安卓设备进入开发者模式(设置-系统-关于本机-点击版本号直至出现已进入开发者模式提醒)2.找到开发者选项-打开USB调试3.下图4.下图
转班遇上星期六
凝结的海
晚上上班的时候,我感觉有点饿,就在十点五左右去食堂,看看有没有什么吃的,一路上同事们都在说可能已经关门了,走快一点或许能碰得到。庆幸的是我到了他还没来得及关,我买了一个粽子和一个咸鸭蛋,总共花了四块三,总感觉比外面卖的要贵的多。后来我在三点多近四点的时候,我和三号前化料的一起去保安室拉了一大车水,我们装好之后,我让他先拉到我的岗位上,我去拉点原材料。他把水拉走之后我就出去把充电动车的电拔掉,又到路
使用FPGA接收MIPI CSI RX信号并进行去抖动、RGB转YUV处理:FX3014 USB3.0 UVC传输与帧率控制源代码,FPGA实现MIPI CSI RX接收,去Debayer, RGB转
kVfINoSzdrt
fpga开发 程序人生
fpgamipicsirx接收去debayer,rgb转yuv,fx3014usb3.0uvc传输与帧率控制源代码,具体架构看图,除dphy物理层外,mipi均为源码sensorimx219mipi源码mipi4lanecsirxraw10fpgamachXO3lf-690usb3.0fx301432bityuvdatawithframesync测试模式3280*246415fps1920*108
做一生的朋友
精品文章推荐
我们永远是朋友,在你人生的旅途上,无论跋涉的脚步多么遥远,我愿为你在暗夜里点燃一盏灯火,为你在风雨中擎起一方蓝天,在你孤寂时送去贴心的问候,在你痛苦时送去温情的抚慰,在你难过时送去阳光般的微笑,在你寒冷时送去暖暖热流,在你脆弱时送去真诚的鼓励,在你勇敢时为你鼓劲加油。我们永远是朋友,在你累了倦了的时候,我愿做你停泊的港湾,让你的心灵小憩,为你充电加油。在你遇到坎坷,寂寞孤独想流泪的时候,送给你我支
ROM修改进阶教程------如何修改固件 线刷转卡刷 卡刷转线刷 操作中的一些注意事项
安卓机器
ROM修改进阶教程 卡刷转换线刷 线刷转换卡刷 固件转换
在接待各种rom定制化服务中。有很多客户需要各种各样的需求。包括修改rom默认开启usb调试类默认开启开发者选项。修改不锁屏不休眠跳过开机引导以及一些内置app和可卸载app等等的定制项目。还有很多导出系统导出数据完整恢复类要求。今天给大家解析下如何将固件转换类的相关步骤解析通过博文可以了解;1--------线刷固件转换卡刷固件的注意事项以及步骤2--------卡刷固件转换线刷固件的注意事项以
Adb无线连接调试
EHCB
adb android
1.在开发者选项打开usb调试,以及无线调试2.手机连接wifi,进入设置静态ip地址,网关3.手机通过usb先连接电脑4.adbdevices命令检查设备连接情况5.adbtcpip55556.adb-s255d50d7tcpip5555(255d50d7为第4步获取的设备号)7.断开手机与PC的USB连接8.adbconnect192.168.200.220:5555(ip为第2步设置的ip地
GD32的虚拟串口CDC的一些注意事项
跳动的代码
单片机 mcu
在移植GD32CDC的USB虚拟串口,即CDC设备时,需要注意一下几点。我这里已GD32E503为例。1、时钟要正确,GD32E503的时钟必须为168M才能用2、硬件问题,GD32E503的USB必须要三个脚,除了DPDM外,还有DP一个上拉脚要配置。3、不要忘了移植中断部分代码,USB是有中断函数的。4、关于CDC的发送和接收问题:用官方的例程,发送和接收是没问题的。但是在我们代码里是不能直接
逛夜
顽石的青果花园
如果逛街就总会有点事做,我就是去逛夜,和街没有点滴关系。临出门看下手机的电量,如果不够所有的歌播两遍,就先充电。单单就音乐来说,我跟现在确实是脱节的,估计那些歌同龄人都不大听。路线由脚去选,能找到回家的路就行,不过速度是一贯的慢悠悠。至于脑子里想什么,我也不知道,工作是一定会想,也会琢磨文字,有巧妙的文字蹦出来,也会自顾自的嘚瑟好一会。逛夜是一定不能有坏情绪的,表情尽可以丰富。于我,乌托邦啊世外桃
python离线安装pip
于光yuguang
python pip 开发语言
如果您的服务器没有互联网连接,您仍然可以通过其他方式将pip安装到服务器上。以下是一种可能的方法:方法一:离线安装下载pip安装文件:在另一台联网的计算机上,下载pip的安装文件(.whl文件)以及其依赖项的安装文件(如果有)。可以从PyPI下载pip的.whl文件。传输文件:将下载的.whl文件和依赖项文件通过USB等方式传输到没有互联网的服务器上。安装pip:在服务器上,使用pip的安装文件进
艰难的跨越
林慧蝶
每一次出去学习,就是一次与灵魂的撞击,是一次充电和升华。当小琼打电话给我说要去兄弟学校搞教研活动的时候,我一点也没有在意。因为我以为就是一般的两个学校交流,谁知道这次的活动是整个片区几十个学校的互动,议程中还安排了每一个学校都必须提前准备发言稿。我是一个粗心的人,完全不知道也没有用心去研究他们的会议安排。心想这段时间真的是特别辛苦,可以借着这个机会出去休息两天。昨天晚上出去逛街回来已经是十点多了。
ROS yaml参数文件的使用
Sun Shiteng
ROS
举个例子,若在params.yaml文件中定义如下参数LidarImageFusion:points_src:"/hilbert_h/deskew/cloud_info"image_src:"/usb_cam0/image_raw"camera_info_src:"/home/hdj/fusion_slam/Color_SLAM_ws/src/hilbert_h/config/firefly_8s
做自己的镜子
格列柯南
“伯爵大人”是他人对一位智者的尊称,他既没有被封赐的头衔,也没有祖上可以继承的荣耀。他隐居闹市,以一家书店谋生。而书店实则盈利有限,勉强糊口而已,真正让伯爵受人尊敬的则是不只书店藏书里的那些智慧。时常有人慕名登门拜访,请教人生困惑。来前都愁容满面,去时则容光焕发。有时,伯爵自己戏称,“名为书店,实则加油站和充电站,来的人加的不是鸡汤,而是让生活继续前行的燃油电力。”是日,一青年人在书店门前徘徊许久
MATLAB|基于多时段动态电价的电动汽车有序充电策略优化
科研工作站
电动汽车 matlab 电动汽车 动态电价 场景分析 无序充电 有序充电 粒子群
目录主要内容模型研究一、蒙特卡洛模拟部分代码部分结果一览下载链接主要内容该模型参考文献《基于多时段动态电价的电动汽车有序充电策略优化》,采用蒙特卡洛随机抽样方法来模拟电动汽车无序充电状态下的负荷曲线,并设置三个对比算例--基础场景(无电动汽车)、电动汽车无序充电和电动汽车有序充电场景,有序充电场景以电网端负荷差最小和用户侧充电成本最经济为目标,通过粒子群算法进行求解,程序采用matlab+matp
ROS下使用usb_cam驱动读取摄像头数据
小杨~~~~
ubuntu
因为darknet_ros会直接订阅指定的图像话题名,然后对图像进行检测,绘制检测框,并发布相应的检测话题,因此首先需要找一个能够发布图像话题的ROS包,这里经推荐使用ROS官方提供的usb_cam驱动包,可以直接将小车摄像头采集的图像发布为ROS图像话题。1、下载摄像头驱动包usb_cam#方式一:直接终端输入,通过apt便捷安装cdtest/src/sudoapt-getinstallros-
关于ROS调用USB摄像头的一些问题
Robot_hfut
ROS
一.基本途径1.使用sudo安装使用以下命令安装usb-cam包,对于kinetic版本:roscoresudoapt-getinstallros-kinetic-usb-camroslaunchusb_camusb_cam-test.launch2.使用源代码安装使用以下命令安装usb-cam包:cdcatkin_ws/srcgitclonehttps://github.com/bosch-ro
累了,就换种活法
77_59
很喜欢这段话:心仪的鞋子断码了,就去旁边的店再挑一挑,买件漂亮的大衣也很好;常去吃的那家面馆停业了,就去别家吃一碗好吃的粉;想看的电影票被抢光了,就认真看书,给自己充电。生活提供的选择其实很多,开心的途径有千万种。如果累了,那就换种活法。林语堂说:“明智的放弃胜过盲目的执著。”一段路,走不通,不妨拐个弯;一些事,太纠结,学着去放下;一些人,不真诚,那就果断离开。人的一生不长,要让自己过得快乐一点。
Android移动测试入门—— adb 测试环境搭建及常用命令
蘑菇头上不长草
Android adb python 爬虫 request android
目录搭建abd环境安装jdk并配置环境变量安装adb并配置环境常用命令连接设备1.打开开发者模式2.USB连接移动设备3.查看连接设备4.进入手机5.adbpush电脑文件上传到手机6.adbpull从手机里下载文件到电脑7.adbinstall安装app8.查看手机上安装的所有软件(查看包名)9.卸载app10.monkey测试11.logcat搭建abd环境adb环境搭建主要分为2部分,一是j
LeetCode:2398. 预算内的最多机器人数目 双指针+单调队列,时间复杂度O(n)
忍界英雄
每日一题 leetcode 机器人 算法
2398.预算内的最多机器人数目today2398.预算内的最多机器人数目题目描述你有n个机器人,给你两个下标从0开始的整数数组chargeTimes和runningCosts,两者长度都为n。第i个机器人充电时间为chargeTimes[i]单位时间,花费runningCosts[i]单位时间运行。再给你一个整数budget。运行k个机器人总开销是max(chargeTimes)+k*sum(r
2022-02-23
嗨米牛
莫兰迪色电动牙刷现在的产品真是都会做,全部都做到消费者心里去了,看我最近在嗨米牛上买的电动牙刷,简直太好看了好不好看,真是yyds,一个牙刷带3个刷头,一次充电可以用1个多月有5种模式:亮白模式、清洁模式、敏感模式、按摩模式、抛光模式就冲这颜值,小仙女们给我冲!
2021-01-18
a27ebe1ee286
今天姥姥上坟,结束后我姨让我在她家住等着我弟回来聚一聚,但是我不习惯住在别人家,并且我的充电器和化妆品全在家里,明天还要和初中的朋友去聚一聚。然后我就拒绝了,但是表达的不是很好,让我姨就一直以为我是不想住。后来姨有事先走了,走的时候说要和姨夫一起回去。但是我最后并没有去,正好在路上遇到了她,因为是我哥送我所以在车里,我姨问我哥我是不是在车上,然后我哥说是,但是我并没有探出头给姨说我要回家了。然后我
3. 测试Docker镜像
jcfszxc
RKNN系列 RKNN rknn-toolkit2
运行命令进入Docker镜像:dockerrun-t-i--privileged\-v/dev/bus/usb:/dev/bus/usb\-v/path/to/your/project:/examples\rknn-toolkit2:2.1.0-cp38\/bin/bash参数解释:dockerrun:这是Docker的基本命令,用于创建和启动一个新的容器。-t:分配一个伪终端(pseudo-TT
电脑的问题简单判断及保养
哲伦贼稳妥
电脑硬件 IT技术 电脑 经验分享 硬件工程 其他
1电脑过热一般电脑过热有以下几种情况1.长时间没有清理散热风扇及更换硅脂,建议每年清理一次风扇及更换硅脂,并对电脑进行清灰2.散热风扇出现问题,具体表现在电脑声音不正常,异响或发出刺耳的蜂鸣声,建议直接更换风扇3.天气过热,建议采取物理降温,比如打开机箱的侧盖和风扇空调等4长时间使用,如感觉电脑过热,可以稍微休息一会,等待电脑温度稍微降下来后再继续使用2.USB端口失灵1.重启电脑重启电脑可以解决
叶华芳随笔第1094篇:
叶华芳随笔
2022/01/13星期四,农历十二月十一[离农历新年还有18天,今天是2022年的第13天】叶华芳随笔第1094篇:父母体质好,孩子生病少。几经翻滚茶见质,几番交往见人心。不能忘记来时的路,继续走好前行的路。今年过年太难了!几乎全国都通知要做48小时阴性的核酸检测报告,现在最怕的就是:阳性,红码,高风险地区。手机充电时切不能边通话边喝水。视频男子触电身亡了。涨知识了!今天才知道有一个贼姓,这姓氏
归故乡
风水宝地
这次出门忘带牙具了,忘带洗面奶,忘带充电宝的线,还有去北京都是我现安排的路线,随时查地图坐什么车,往哪边走,我妈什么都不用管。就这一路上跟我吵架不断,闹心烦的不行,完全失去自我,就要失控。虽然有人陪,但是也不愉快,她什么都要管,什么都不懂,还不知道听话,时常跟你唱反调,结果自讨苦吃,走了反方向的路再退回来,我在原地等她。亲情的牢固在于不离不弃,不论怎样,我们总能抱团取暖,互相关照,比一个人强。习惯
【鼎典美育】家庭美育延伸
小龙虾的妈妈是兔兔
家庭美育拓展训练•涂鸦阶段:家庭美育拓展训练•想象力阶段:磨痕。一根线的魔力家庭美育拓展训练•线的练习阶段:1.鸡蛋壳边缘2.钱老师拉长画3.画半个脸4.拓印、硫酸纸5.找图案组合6.找树皮纹理,机理,树叶纹理,7.光..影子,8.包装袋花纹,9.找痕迹、印迹、10.指纹密码、11.服饰独特花纹,12.化妆品盒,13.鞋盒图案,14.标签️、15.左手画画、16.鞋带,充电线,17.麻花儿,18.
开特斯拉一年的感受
兰叙
2021年11月中旬买的特斯拉,开了快一年了,谈谈心得,到底开特斯拉好不好?首先从费用上来讲,电动车的确成本低很多。第一车牌费用就省了;第二不需要日常维护费用,机动车每年都需要花钱维护保养;第三充电费用要比加油费用省好多,我的车每月平均走1000公里左右,每月平均充电费用305元。特斯拉最贵的是它的电池,一般是8年16万公里保修,车子最多开10年也需要换车了,所以除非是把电池撞坏了,需要自己出钱维
jQuery 键盘事件keydown ,keypress ,keyup介绍
107x
js jquery keydown keypress keyup
本文章总结了下些关于jQuery 键盘事件keydown ,keypress ,keyup介绍,有需要了解的朋友可参考。
一、首先需要知道的是: 1、keydown() keydown事件会在键盘按下时触发. 2、keyup() 代码如下 复制代码
$('input').keyup(funciton(){  
AngularJS中的Promise
bijian1013
JavaScript AngularJS Promise
一.Promise
Promise是一个接口,它用来处理的对象具有这样的特点:在未来某一时刻(主要是异步调用)会从服务端返回或者被填充属性。其核心是,promise是一个带有then()函数的对象。
为了展示它的优点,下面来看一个例子,其中需要获取用户当前的配置文件:
var cu
c++ 用数组实现栈类
CrazyMizzz
数据结构 C++
#include<iostream>
#include<cassert>
using namespace std;
template<class T, int SIZE = 50>
class Stack{
private:
T list[SIZE];//数组存放栈的元素
int top;//栈顶位置
public:
Stack(
java和c语言的雷同
麦田的设计者
java 递归 scaner
软件启动时的初始化代码,加载用户信息2015年5月27号
从头学java二
1、语言的三种基本结构:顺序、选择、循环。废话不多说,需要指出一下几点:
a、return语句的功能除了作为函数返回值以外,还起到结束本函数的功能,return后的语句
不会再继续执行。
b、for循环相比于whi
LINUX环境并发服务器的三种实现模型
被触发
linux
服务器设计技术有很多,按使用的协议来分有TCP服务器和UDP服务器。按处理方式来分有循环服务器和并发服务器。
1 循环服务器与并发服务器模型
在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。
目前最常用的服务器模型有:
·循环服务器:服务器在同一时刻只能响应一个客户端的请求
·并发服务器:服
Oracle数据库查询指令
肆无忌惮_
oracle数据库
20140920
单表查询
-- 查询************************************************************************************************************
-- 使用scott用户登录
-- 查看emp表
desc emp
ext右下角浮动窗口
知了ing
JavaScript ext
第一种
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/
浅谈REDIS数据库的键值设计
矮蛋蛋
redis
http://www.cnblogs.com/aidandan/
原文地址:http://www.hoterran.info/redis_kv_design
丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。
maven编译可执行jar包
alleni123
maven
http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven
<build>
<plugins>
<plugin>
<artifactId>maven-asse
人力资源在现代企业中的作用
百合不是茶
HR 企业管理
//人力资源在在企业中的作用人力资源为什么会存在,人力资源究竟是干什么的 人力资源管理是对管理模式一次大的创新,人力资源兴起的原因有以下点: 工业时代的国际化竞争,现代市场的风险管控等等。所以人力资源 在现代经济竞争中的优势明显的存在,人力资源在集团类公司中存在着 明显的优势(鸿海集团),有一次笔者亲自去体验过红海集团的招聘,只 知道人力资源是管理企业招聘的 当时我被招聘上了,当时给我们培训 的人
Linux自启动设置详解
bijian1013
linux
linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。
阅读之前建议先看一下附图。
本文中假设inittab中设置的init tree为:
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc
Spring Aop Schema实现
bijian1013
java spring AOP
本例使用的是Spring2.5
1.Aop配置文件spring-aop.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmln
【Gson七】Gson预定义类型适配器
bit1129
gson
Gson提供了丰富的预定义类型适配器,在对象和JSON串之间进行序列化和反序列化时,指定对象和字符串之间的转换方式,
DateTypeAdapter
public final class DateTypeAdapter extends TypeAdapter<Date> {
public static final TypeAdapterFacto
【Spark八十八】Spark Streaming累加器操作(updateStateByKey)
bit1129
update
在实时计算的实际应用中,有时除了需要关心一个时间间隔内的数据,有时还可能会对整个实时计算的所有时间间隔内产生的相关数据进行统计。
比如: 对Nginx的access.log实时监控请求404时,有时除了需要统计某个时间间隔内出现的次数,有时还需要统计一整天出现了多少次404,也就是说404监控横跨多个时间间隔。
Spark Streaming的解决方案是累加器,工作原理是,定义
linux系统下通过shell脚本快速找到哪个进程在写文件
ronin47
一个文件正在被进程写 我想查看这个进程 文件一直在增大 找不到谁在写 使用lsof也没找到
这个问题挺有普遍性的,解决方法应该很多,这里我给大家提个比较直观的方法。
linux下每个文件都会在某个块设备上存放,当然也都有相应的inode, 那么透过vfs.write我们就可以知道谁在不停的写入特定的设备上的inode。
幸运的是systemtap的安装包里带了inodewatch.stp,位
java-两种方法求第一个最长的可重复子串
bylijinnan
java 算法
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class MaxPrefix {
public static void main(String[] args) {
String str="abbdabcdabcx";
Netty源码学习-ServerBootstrap启动及事件处理过程
bylijinnan
java netty
Netty是采用了Reactor模式的多线程版本,建议先看下面这篇文章了解一下Reactor模式:
http://bylijinnan.iteye.com/blog/1992325
Netty的启动及事件处理的流程,基本上是按照上面这篇文章来走的
文章里面提到的操作,每一步都能在Netty里面找到对应的代码
其中Reactor里面的Acceptor就对应Netty的ServerBo
servelt filter listener 的生命周期
cngolon
filter listener servelt 生命周期
1. servlet 当第一次请求一个servlet资源时,servlet容器创建这个servlet实例,并调用他的 init(ServletConfig config)做一些初始化的工作,然后调用它的service方法处理请求。当第二次请求这个servlet资源时,servlet容器就不在创建实例,而是直接调用它的service方法处理请求,也就是说
jmpopups获取input元素值
ctrain
JavaScript
jmpopups 获取弹出层form表单
首先,我有一个div,里面包含了一个表单,默认是隐藏的,使用jmpopups时,会弹出这个隐藏的div,其实jmpopups是将我们的代码生成一份拷贝。
当我直接获取这个form表单中的文本框时,使用方法:$('#form input[name=test1]').val();这样是获取不到的。
我们必须到jmpopups生成的代码中去查找这个值,$(
vi查找替换命令详解
daizj
linux 正则表达式 替换 查找 vim
一、查找
查找命令
/pattern<Enter> :向下查找pattern匹配字符串
?pattern<Enter>:向上查找pattern匹配字符串
使用了查找命令之后,使用如下两个键快速查找:
n:按照同一方向继续查找
N:按照反方向查找
字符串匹配
pattern是需要匹配的字符串,例如:
1: /abc<En
对网站中的js,css文件进行打包
dcj3sjt126com
PHP 打包
一,为什么要用smarty进行打包
apache中也有给js,css这样的静态文件进行打包压缩的模块,但是本文所说的不是以这种方式进行的打包,而是和smarty结合的方式来把网站中的js,css文件进行打包。
为什么要进行打包呢,主要目的是为了合理的管理自己的代码 。现在有好多网站,你查看一下网站的源码的话,你会发现网站的头部有大量的JS文件和CSS文件,网站的尾部也有可能有大量的J
php Yii: 出现undefined offset 或者 undefined index解决方案
dcj3sjt126com
undefined
在开发Yii 时,在程序中定义了如下方式:
if($this->menuoption[2] === 'test'),那么在运行程序时会报:undefined offset:2,这样的错误主要是由于php.ini 里的错误等级太高了,在windows下错误等级
linux 文件格式(1) sed工具
eksliang
linux linux sed工具 sed工具 linux sed详解
转载请出自出处:
http://eksliang.iteye.com/blog/2106082
简介
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾
Android应用程序获取系统权限
gqdy365
android
引用
如何使Android应用程序获取系统权限
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
1. 在应用程序的AndroidManifest.xml中的manifest节点
HoverTree开发日志之验证码
hvt
.net C# asp.net hovertree webform
HoverTree是一个ASP.NET的开源CMS,目前包含文章系统,图库和留言板功能。代码完全开放,文章内容页生成了静态的HTM页面,留言板提供留言审核功能,文章可以发布HTML源代码,图片上传同时生成高品质缩略图。推出之后得到许多网友的支持,再此表示感谢!留言板不断收到许多有益留言,但同时也有不少广告,因此决定在提交留言页面增加验证码功能。ASP.NET验证码在网上找,如果不是很多,就是特别多
JSON API:用 JSON 构建 API 的标准指南中文版
justjavac
json
译文地址:https://github.com/justjavac/json-api-zh_CN
如果你和你的团队曾经争论过使用什么方式构建合理 JSON 响应格式, 那么 JSON API 就是你的 anti-bikeshedding 武器。
通过遵循共同的约定,可以提高开发效率,利用更普遍的工具,可以是你更加专注于开发重点:你的程序。
基于 JSON API 的客户端还能够充分利用缓存,
数据结构随记_2
lx.asymmetric
数据结构 笔记
第三章 栈与队列
一.简答题
1. 在一个循环队列中,队首指针指向队首元素的 前一个 位置。
2.在具有n个单元的循环队列中,队满时共有 n-1 个元素。
3. 向栈中压入元素的操作是先 移动栈顶指针&n
Linux下的监控工具dstat
网络接口
linux
1) 工具说明dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3, 即每三秒收集一次, 但最新的数据都会每秒刷新显示. 和sysstat相同的是,
C 语言初级入门--二维数组和指针
1140566087
二维数组 c/c++ 指针
/*
二维数组的定义和二维数组元素的引用
二维数组的定义:
当数组中的每个元素带有两个下标时,称这样的数组为二维数组;
(逻辑上把数组看成一个具有行和列的表格或一个矩阵);
语法:
类型名 数组名[常量表达式1][常量表达式2]
二维数组的引用:
引用二维数组元素时必须带有两个下标,引用形式如下:
例如:
int a[3][4]; 引用:
10点睛Spring4.1-Application Event
wiselyman
application
10.1 Application Event
Spring使用Application Event给bean之间的消息通讯提供了手段
应按照如下部分实现bean之间的消息通讯
继承ApplicationEvent类实现自己的事件
实现继承ApplicationListener接口实现监听事件
使用ApplicationContext发布消息