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)
9、汇编语言编程入门:从环境搭建到简单程序实现
神经网络酱
汇编语言 MEPIS GNU工具链
汇编语言编程入门:从环境搭建到简单程序实现1.数据存储介质问题解决在处理数据存储时,若要使用MEPIS系统,需确保有其可访问的存储介质。目前,MEPIS无法向采用NTFS格式(常用于Windows2000和XP工作站)的硬盘写入数据。不过,若硬盘采用FAT32格式,MEPIS就能进行写入操作。此外,MEPIS还能将文件写入软盘和大多数USB闪存驱动器。若工作站连接到局域网,还可通过FTP协议或挂载
900 万人次都在用!打印机驱动大师:兄弟 驱动安装一步到位
文哥工具箱2
软件工程 电脑 开源软件
各位打印界的老铁们,你们知道吗?我就是那个传说中服务PT-18R标签打印机的“最佳损友”小助手!当你想把电脑里那些花里胡哨的标签设计变成能摸得着的实物时,嘿嘿,软件下载地址本助手就闪亮登场啦!插上USB线的瞬间,我立马在你电脑里“安营扎寨”,悄悄给你和打印机搭起一座“鹊桥”,让你们无障碍沟通,那叫一个丝滑!你在编辑软件里鼓捣的文字、条形码,甚至那些可可爱爱的小图标,全靠我这个“翻译官”精准转换成打
UCLAMP0501P.TCT SEMTECH:超低电容TVS二极管 0.25pF+20kV防护!
UCLAMP0501P.TCTSEMTECH:超低电容TVS一、产品简介UCLAMP0501P.TCT是SEMTECH最新推出的超低电容单通道TVS二极管,采用第五代硅雪崩技术,专为5G手机天线、IoT设备、超极本USB4接口设计。以0.25pF行业最低电容和20kV防护等级,成为高速信号保护的终极解决方案!二、五大颠覆性优势信号0损伤0.25pF超低电容(比头发丝细1000倍)支持40GbpsT
RCLAMP0504S.TCT 升特半导体TVS二极管 无损传输+军工防护+纳米护甲 ESD防护芯片
深圳市尚想信息技术有限公司
ESD防护芯片 Semtech USB4 车规电子 AI硬件
RCLAMP0504S.TCTSemtechTVS二极管阵列一、产品简介RCLAMP0504S.TCT是Semtech新一代超低电容TVS二极管阵列,专为USB4、Thunderbolt™4、HDMI2.1等超高速接口打造!以0.3pF行业最低电容和20Gbps无损传输能力,成为高端电子设备的"隐形防护盾"!二、五大颠覆性优势信号0损耗0.3pF超低电容(比前代降低40%),支持20Gbps超高速
男女之间,要不要谈很长时间的恋爱?
长安_36ba
宋扬已经睡了,躺在他身边的阿乔却睡不着了。为什么呢?只是因为阿乔无意中发现了宋扬一个细节:宋扬洗澡的时候,把手机带到浴室去了。以前的宋扬,都习惯把手机扔在沙发上或者放在卧室充电,从来没有拿进浴室的习惯。阿乔生性多疑,她觉得宋扬有什么事瞒着她。早上起来的时候,阿乔顶着俩黑眼圈把宋扬给吓了一跳。“你这是怎么了?一晚没见变成国宝了。”一如既往地,宋扬在阿乔额头上吻了一个早安吻。阿乔从来没有怀疑过宋扬,是
尚庭公寓-学习跟敲笔记(二)
wenbinglin66
学习 笔记 spring boot java
管理端后端开发-租赁管理模块1.看房预约管理1.1根据ID更新预约状态在ViewAppointmenController中增加内容@Operation(summary="根据id更新预约状态")@PostMapping("updateStatusById")publicResultupdateStatusById(@RequestParamLongid,@RequestParamAppointme
揭秘计算机内存与存储地址管理机制
你一身傲骨怎能输
操作系统 虚拟地址空间映射原理
在计算机系统中,内存(RAM)、磁盘(硬盘或固态硬盘)和移动存储设备(如USB驱动器)都有各自的地址空间和管理方式。以下是关于它们的内存地址编号、映射到虚拟地址空间的过程以及相关概念的详细说明。1.内存地址的编号1.1物理内存地址物理内存:物理内存是计算机中实际存在的RAM。每个内存单元都有一个唯一的物理地址,通常以字节为单位进行编号。物理地址是由硬件直接访问的。地址空间:物理内存的地址空间是由内
辞职后的第106天,差点被发现
活的自由点
今天有个朋友给我打电话,说她昨天去图书馆了,而且看到了和我一样的书包和马甲,问我昨天是不是休班,去图书馆了?我就想都没有想,就告诉他我没有去图书馆。没有休班。我挂了电话,我还一阵的后怕,就怕他们发现。他昨天是中午去的,而我那天中午刚好去吃饭了。所以我和这个朋友并没有遇到。因为天冷了,这几天中午的时候都不愿出去去吃。因为昨天充电的事,特别的焦虑,就想着今天去外面去吃饭,也顺便散散心。这是老天在帮我吗
青椒之旅,不虚此行
陕县1735靳燕
走上工作岗位已经17年了,去年九月份接触青椒,参加互加计划网上学习,一周两次,是一个很好的帮助农村教师和孩子学习的优秀资源平台。来到这里,忽然眼前一亮,仿佛找到了久违的知音。初次走进平台,全新的学习充电模式,让我感到力不从心,手忙脚乱。好在办公室里的同事对我都很好,在她们的引导下,我的教学和学习轻松不少。每周六大家都会相互提醒听课,不要错过每一个老师、每一位教授的精彩分享的瞬间。遇到每个月大课作业
Stm32中USB 对时钟的要求
lixzest
stm32 单片机 嵌入式硬件
1.USB对时钟的要求USB外设通常需要精确的48MHz时钟(全速USBFS模式),这个时钟可以由以下方式提供:HSI48(内部48MHzRC振荡器)PLL(锁相环,例如从HSI/HSE倍频得到48MHz)外部晶振(HSE+PLL分频/倍频)如果你的USB驱动需要使用内部RC振荡器(而不是外部晶振),那么HSI48必须启用,否则USB无法正常工作。2.当前配置的分析RCC_OscInitStruc
嵌入式硬件篇---ESP32稳压板
Atticus-Orion
嵌入式知识篇 嵌入式硬件篇 嵌入式硬件 ESP32 稳压板
制作ESP32稳压板的核心目标是:给ESP32提供稳定的3.3V电源(ESP32的工作电压必须是3.3V),同时支持多种供电方式(比如锂电池、USB、外接电源),并具备保护功能(防止过流、接反电源等)。整个流程和搭积木类似,一步步把“供电→稳压→保护→输出”这几个模块拼起来,新手也能看懂。一、先明确:你的稳压板要实现什么功能?在动手前,先想清楚这3个问题(直接决定电路设计):输入电源类型:打算用什
10.6蚁志杰日精进11天
A蚁志杰
现分:6体验到:早上早起运动,看到自己最近胖了好多,不能在这样继续下去了。早上在办公司联系了几个客户,效果不是很理想,最近能量不是很足,要及时充电了,链接几位高能量的朋友重新给自己灵感。儿子咳嗽给他做了傅氏秘灸。团队需要不断的内训,培训才会有激情,有动力,晚上和几个同学喝酒叙旧,玩玩骰子学习到:跟有能量的人和成功人士多靠近明天三只青蛙:1.早睡早起,运动2.邀约名单9-10号的内训3.联系两位大咖
SSM+Vue共享充电宝管理系统 充电宝投放管理系统 共享充电宝维护管理系统Java
计算机程序老哥
作者主页:计算机毕业设计老哥有问题可以主页问我一、开发介绍1.1开发环境开发语言:Java数据库:MySQL系统架构:B/S后端:SSM(Spring+SpringMVC+Mybatis)前端:Vue工具:IDEA或者Eclipse,JDK1.8,Maven二、系统介绍2.1图片展示注册登录页面:登陆前端页面功能:首页、合作商户、充电宝投放、公告栏、个人中心、后台管理首页.png充电宝投放.png
感恩家有贴心小棉袄
益琪情感
外出三天,上午在准备行李,糖果人儿细心帮我准备了好多贴心的物品,比如我最爱的手帐本(她说希望我写一篇日记回来念给她听),水杯,睡衣,精油,梳子,消毒酒精,充电器,眼镜……还有一些比如她的画、积木(说我不工作的时候可以搭积木[捂脸]),还有她给我准备的礼物和信,说等我到了在拆开~装睡衣的时候我说需要一个袋子,她立马说我去小袋子,特别耐心,特别有爱,我说要拿身份证和健康承诺书,她赶快拿出来一个文件袋,
基于粒子群优化算法的微电网调度(光伏、储能、电动车、电网交互)(Matlab代码实现)
优化算法侠_科研
matlab
欢迎来到本博客❤️❤️❤️本文目录如下:⛳️⛳️⛳️目录1概述1.微电网概述2.粒子群优化算法(PSO)3.应用于微电网调度的优势4.研究内容光伏发电调度储能系统调度电动车充电调度与主电网交互5.实现挑战结论2基于粒子群算法的微电网调度结果4写在最后5Matlab代码实现1概述微电网(Micro-Grid)日前经济调度问题是指考虑电网的分时电价基础上,对常规负荷、光伏出力、电动车出力进行日前(未来
家门口的图书馆
陌上青莲0903
小区的东门门口盖了一座小小的玻璃房子,刚开始每次路过都会猜测它的用途,或许是电动车充电处,或许是自行车停放处,零零碎碎的猜了不少,可惜一直是个空房子。昨天晚上路过的时候,赫然发现不知道什么时候,玻璃房已经亮灯开放了,一圈都是钢架,上面摆满了书,中间一张桌子几个座椅,大门口“24小时自助图书馆”几个字闪闪发光。因为时间的原因,昨天只是看了一眼,今天晚上散步的时候,我和老公专门来到玻璃房前看看有没有什
苹果让你再等2小时:新iPhone11的8个亮点,你更期待哪一个?
笔点酷玩
还有2小时新苹果就要发布了,你们要熬夜看“秋晚”吗?预热这么多年,iPhone11到底哪些地方会有惊喜?下面列个小单子,按照本人关注程度安排先后。1,快充和电池容量。相比已经飙到50W以上快充的Android,Apple的充电速度太慢啦,不过这也似乎给果粉每年过“秋晚”给出更多打鸡血的理由,不知今年能否有所突破,25W可以吗?可千万别说我想多了。电池容量有消息说将会升级到4000mAh,接口改为U
如何在Mac上重置SMC?
Mac123123
SMC代表系统管理控制器。当Mac遇到问题并且重新启动无法解决问题时,可以重置SMC。这可以解决与电源,散热,风扇,充电,键盘背光,电池等相关的问题。该过程取决于用户使用的Mac类型和型号。注意:本指南适用于基于Intel的Mac。如果您使用的是M1Mac,则不适用于您,因为SMC不可用。要知道您的Mac是否具有Intel处理器或Apple芯片,单击左上方的苹果图标,然后选择关于本机。SMC在Ma
手机没电,好痛苦
我宝超萌萌萌哒
手机没电,好痛苦文/潘利伟带着孩子特别不喜欢出门,出个门各式各样东西都得带着,不出门吧,孩子们在家里待时间久了就会特别厌烦,看着孩子们没意思的样子,还是牺牲自己宝贵的时间陪孩子去吧!于是,我们还是出门了。我这人经常丢三落四,今天也是一样,手机忘充电了,哦NO……有好长时间不陪孩子去游乐场了,今天终于带他们去了,现在好了,孩子们可以自己玩自己的,我一个人在那闲着发呆,翻翻手机吧!天呐,手机只剩9%的
差两岁
阿茜x
最近跟小老头WeChat有点费劲,今天早上还跟他说两岁有代沟了吗!?暑假是小老头的助教老师,第一次找他是因为借充电线,觉得他超级有趣超级好玩超级合拍总之就是超级棒,不知道是因为他比2000年的同龄人成熟一点点一丢丢还是因为我比1998年的同龄人有趣(幼稚)一点点一丢丢,跟他讲话我很开心,心里觉得他可能是个小暖男,我撩的很起劲但他从不接我的梗,永远都是2333接上或者是行吧行吧,经常恬不知耻的问小老
导师班第一天
周小立
昨天晚上,忙着收拾屋子,累的倒头就睡了,脸都没洗,睁眼都早上七点多了,想写昨天的每日一醒,看见群里就开始有信息了,急忙收拾一下就开始听院长的课了,升国旗的音乐响起的时候,精疲力尽的我一下就精神焕发,又一次充电前行,在讲到记笔记的时候王院长,说张静老师不要发群里,我心想完蛋了,救星让王院长给凶走了,可回头想一下确实如院长说的哪有,就懒惰了,我在写文字脱节了这么久的时间里,记笔记赶不上,就想有个老师给
【电池维护指南】无人机无人车常见种类电池的常识和维护分享
北无锋
无人机 机器人 硬件工程
西安电子科技大学智群科技创新俱乐部培训指南(一)如何读懂电池参数?1.电池上面的mAh表示电池的容量如5200mAh,如果以1000mA放电,可以持续放电5.2小时,电流减半,则放电时间加倍。2.电池后面多少C表示电池的放电能力和充电倍率电池的放电能力:以倍数C来表示的,这意味着按照电池的标称容量最大可达到多大的放电电流。例如,如果一个电池的标称容量为1000mAh,且其放电能力标准为5C
AGM脱机烧录器的使用入门
通过本文,介绍一下AGM脱机烧录器(制造商:海振远科技)的使用方法,通过该烧录器,可以对AG256,AG576等器件进行脱机烧录,速度快,应用简单,易于帮助客户快速批量烧录程序。一、烧录器供电方式:通过USB接口给下载器供电,跳线JP断开。如果客户PCB的JTAG口不能提供3.3V电源,或仅需烧写下载器,尚未连接用户PCB时,采用此种方式供电。或者:通过用户PCB上的JTAG口的3.3V引入到下载
无人机保养指南
UAV_ckesc
无人机
定期清洁无人机在使用后容易积累灰尘、沙砾等杂物,需及时清洁。使用软毛刷或压缩空气清除电机、螺旋桨和机身缝隙中的杂质。避免使用湿布直接擦拭电子元件,防止短路。电池维护锂电池是无人机的核心部件,需避免过度放电或充电。长期存放时应保持电量在40%-60%,并置于阴凉干燥处。每次飞行前检查电池是否有膨胀、漏液等异常现象。螺旋桨检查螺旋桨的平衡性直接影响飞行稳定性。定期检查桨叶是否有裂纹、变形或磨损,发现损
叶武滨时间管理69-72讲复盘
94c7233ffdd7
追梦的人再小也不嫌小旅行的意义是什么1.让我们更有动力,投入大量精力工作2.放松自己,为自己充电3.透过行万里路了解这个世界的差异性4通过所见所闻,为自己创造价值并运用到自己的工作或者生活之中一个人生活的广度决定她优秀的程度。所以人人都应该有梦想。首先为自己的梦想设置一个期限,然后分享出去,在一步一步把它做成项目,转化成小目标,最后是行动
保温神器
金凤尾竹
保温神器我对保温神器情有独钟,充电的,非充电的等等几十个品种。去年入手了两大袋保暖贴,结果因为没用上不知道放哪里去了,前几年就买了很多充电的暖手袋、暖脚器、暖坐垫、暖水杯、暖挡风板,如此等等,对于怕冷的我,再多的保暖神器都是刚需。今年回家过年,真是十年来少见的寒冷,广东北方总是寒风瑟瑟,冷得发抖。客厅虽然我们有太阳暖炉,有经常调到30度的暖空调被窝有舒舒服服的电热毯,冲凉房有三盏暖暖的保暖灯,厨房
开心一笑
一杯青柠檬
我是阿勒泰的一个居民楼里面负责充电的实习生。几天前的早上,大概十点多,来了一个男士,穿着白色衬衫,拿着一张电卡,过来之后说:“小姑娘,麻烦帮我充一下电费吧。”说话文质彬彬的。然后他就开始和他一起来的朋友聊天了。我问他充多少,他没理我。然后等了下我恍惚听见他说充100元的,我就给充了一百元的电费。他给了我一张一百元的钞票。我把一百元收据打出来之后,他看也没看,就在收据上签字了。然后边签字边笑着说,你
电子信息工程专业学生的就业方向
祝老师
学习之外 电子 就业 职场 应用
如果从工程师和研究生的专业方向来看,电子信息专业的方向大概有1)数字电子线路方向。从事单片机(8位的8051系列、32位的ARM系列等等)、FPGA(CPLD)、数字逻辑电路、微机接口(串口、并口、USB、PCI)的开发,更高的要求会写驱动程序、会写底层应用程序。单片机主要用C语言和汇编语言开发,复杂的要涉及到实时嵌入式操作系统(ucLinux,VxWorks,uC-OS,WindowsCE等等)
突然间,停电了……
梦光利他
刚忙完手头上工作,打算写完,手机就放下去充电,只剩10%电量,突然间整栋楼停电了,窗外折射着余光,这才显得没有那么黑。如果是换以前,可能自己会着急,但现在不会,找了之前自己充好电的备用小风扇,借着余光写着,不管什么时候来电,对自己来说,影响不是很大。一切都是最好的安排,因为着急或急躁并不能解决问题,就做好当下自己能够做的。
关于IMX8MINI的USB-bulk模式
Lazy_Caaat
NXP官方内核是使用的主流主线内核,默认的USB传输模式只支持ISO模式,我们知道USB是有四种传输模式的,ISO更注重实时性,所以传输大量数据时会有瓶颈,需要使用Bulk模式进行传输。IMX8MINI需要打补丁来支持,目前还未放出官方补丁,但已有客户解决该问题。
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发布消息