嘻嘻~有催更就有动力~(虽然只有一个人催)
第二部分主要是一些专业名词的解释,另外就是PD原理的介绍,PD流程的分解、释义(有波形)
五、相关参数/名词解释
5.1 上拉电阻Rp
Rp有6个参数(5V档位和3.3V档位各3个),指示着不同的供电能力。
5.2 下拉电阻Rd
都是5.1K电阻下地,能否检测电源供电能力,取决于电阻的精度。
5.3 线材中的下拉电阻Ra
最小值800 ohm,最大值1.2K
5.4 名词/连接状态解释
名词:
Alternate Mode Adapter(AMA):支持PD USB交替模式的设备,作为UFP存在
Alternate Mode Controller (AMC):支持PD USB交替模式的主机,作为DFP存在
Augmented Power Data Object(APDO):体现Source端的供电能力或者Sink的耗电能力,是一个数据对象
Atomic Message Sequence(AMS):一个固定的信息序列,一般作为PE_SRC_Ready, PE_SNK_Ready or PE_CBL_Ready的开始或者结束
Binary Frequency Shift Keying (BFSK):二进制频移键控
Biphase Mark Coding(BMC):双相位标识编码,通过CC通信
Configuration Channel (CC):配置通道,用于识别、控制等
Constant Voltage (CV):恒定电压,不随负载变化而变化
Current Limit (CL):电流限制
Device Policy Manager(DPM):设备策略管理器
Downstream Facing Port(DFP):下行端口,即为HOST或者HUB下行端口
Upstream Facing Port(UFP):上行端口,即为Device或者HUB的上行端口
Dual-Role Data (DRD):能作为DFP/UFP
Dual-Role Power (DRP):能做为Sink/Source
End of Packet (EOP):结束包
IR Drop:在Sink和Source之间的电压降
Over-Current Protection(OCP):过流保护
Over-Temperature Protection(OTP):过温保护
Over-Voltage Protection(OVP):过压保护
PD Power (PDP):Source的功耗输出,由制造商在PDOs字段中展示
Power Data Object (PDO):用来表示Source的输出能力和Sink的消耗能力的数据对象
Programmable Power Supply (PPS):电源输出受程序控制
PSD:一种吃电但是没有数据的设备,如充电宝
SOP Packet:Start of Packet,所有的PD传输流程,都是以SOP Packet开始,SOP*代表SOP,SOP’,SOP’’
Standard ID(SID):标准ID
Standard or Vendor ID(SVID):标准或产商ID
System Policy Manager(SPM):系统策略管理,运行在Host端。
VCONN Powered Accessory(VPA):由VCONN供电的附件
VCONN Powered USB Device(VPD):由VCONN供电的设备
Vendor Data Object (VDO):产商特定信息数据对象
Vendor Defined Message(VDM):产商定义信息
Vendor ID (VID):产商ID
状态:
Disabled State:从CC引脚移除终端,如果不支持该状态,那么该端口在上电后直接是Unattached.SNK或Unattached.SRC,该状态端口不会驱动VBUS或VCONN,CC1和CC2会呈现高阻到地
ErrorRecovery State:从CC1和CC2引脚移除终端,接下来会根据端口类型转化为Unattached.SNK或Unattached.SRC,这相当于强制断开连接事件,并寻找一个新的连接。如果该状态不支持,则转化为支持的disabled状态,如果disabled状态也不支持,则转化Unattached.SNK或Unattached.SRC。,该状态端口不会驱动VBUS或VCONN,CC1和CC2会呈现高阻到地
Unattached.SNK State:端口等待检测到Source的出现,一个端口Dead Battery不供电时候进入这个状态,端口不能驱动VBUS和VCONN,CC1和CC2分别地通过Rd终止到地,当Source连接检测到会转化为AttachWait.SNK,意味着在一个CC引脚上有SNK.Rp。USB 2.0不支持USB PD可能在VBUS检测到直接转化到Attached.SNK
AttachWait.SNK State:端口检测到SNK.Rp状态在一个CC引脚上,并等待VBUS。端口不驱动VBUS或VCONN
Attached.SNK State:端口连接上了,并作为Sink操作,如果初始化进入这个状态同样作为UFP操作,Power和Data的状态改变可以通过USB PD Command。直接从Unattached.SNK转化过来是通过检测VBUS,不确定方向和可用的高于默认的USB Power
Try.SRC State:端口查询决定伙伴端口是否支持Sink,不驱动VBUS和VCONN,端口要在CC1和CC2上分别Source电流
TryWait.SNK State:端口成为Source失败,准备连接成Sink,不支持VBUS或VCONN,CC1和CC2分别通过Rd终止
Try.SNK State:端口查询决定伙伴端口是否支持Source
TryWait.SRC State:端口成为Sink失败,准备连接成Source
六、PD协议简介
6.1 PD协议概况和通信过程
PD协议是Power Delivery,简单来说是一种快速充电标准。
包含PD协议的Type-C 系统从Source到SINK的系统框图大致如下:
Source和Sink各有一个PD芯片:
在Source的内部包含了一个电压转换器,且受到PD控制器控制,他会根据输入电压的条件以及最高可输出规格需求,此电压转换器可以是BUCK、Boost、Buck-Boost或者反激转换器。整个通信过程都在PD控制器的管控之下,USB PD还有一个开关,用于切换VCONN电源(电缆包含电子标签时用到)。
当电缆接通之后,PD协议的SOP通信就开始在CC线上进行,以此来选择电源传输的规格,此部分由Sink端向Source端询问能够提供的电源配置参数(5V/9V/12V/15V/20V)。
SOP是DFP到UFP之间的通信包,SOP'是DFP和线材头部,SOP''是和线材尾部,统称为SOP*
如下波形为SINK 控制器申请一个9V电压输出的例子。
(1)SINK端发起SOP,申请获取Source能提供的规格资料
(2)Source回复能提供的规格列表
(3)SINK回复选择的电压规格,并带上所需要的电流参数,并发出相应的请求
(4)Source接受请求,并且把VBUS由5V抬升到9V
(5)在电压变化期间,SINK的电流会保持尽可能小,Source端VBUS到达9V并稳定之后,会发出Ready信号
(6)SINK端电流逐步抬升,若SINK需要降低电压,会重复以上过程
需要注意的是,在电压下降期间,Source为了让电压快速降低,Source会打开放电电路,达到额定值之后,Source会等待一段时间,电压稳定之后再发出Ready信号给SINK。
这种沟通方式的好处就是能确保任何电源的变化都能在SINK和SOURCE的规格范围内,避免出现不可控情况。
PD协议的通信编码为Bi-phase Mark Coded (BMC),通过CC脚进行通信,如下图。
BMC码是一种单线通信编码,数据1的传输,需要有一次高/低电平之间的切换过程,而0的传输则是固定的高电平或者低电平。每一个数据包都包含有0/1交替的前置码,起始码(SOP),报文头,数据位,CRC以及结束码(EOP)
如下图所示,展开后的CC脚PD通信波形
BMC编码的通信,也可以使用分析仪进行分析,用来抓取每个数据包,并且获得数据包的作用,如电压电流等。
大家可以下载这个软件,我可以发一份LOG供学习参考,可以看到很多细节哦。
PD3.0规范中,定义了以下电源配置清单:
对于5V/9V/15V来说,最大的电流为3A,在20V的配置当中,如果是普通的电流,则最大能够支持20V/3A,即60W,如果使用的是带了E-Marker的线缆,则供电能达到20V5A,即100W。
支持超高速数据传输(USB3.1)或者是供电电流超过3A,电缆都必须使用E-Marker进行标识。线缆中有IC,他们需要从VCONN获得电源。
我们注意到,线缆中有1K的下拉电阻Ra,这样在线缆插入的时候,Source会识别到CC1和CC2电压下降的情况,具体的电压会告诉主机那个端子被Sink的5.1K下拉,那个端子被线缆的1K电阻下拉。因此线缆的插入方向也可以被识别到。Source就可以通过开关,给E-Marker提供VCONN。
如下图为带E-Marker的情况:
(1)电缆接通之后,Source的一根CC线被来自VCONN的1K拉低
(2)Source检测到此电压,知道电缆中有E-Marker,因此切换VCONN到对应的CC引脚
(3)在之后,PD通信将会包含Source和E-Marker之间的通信(SOP'&SOP'')Source和Sink之间为SOP
当设备为DRP时,设备的CC1和CC2为方波,一旦连接,CC端都会发生改变。
在本次连接当中,左边的DRP做了Source,右边的DRP作为SINK,也有可能翻转过来。也可以本来就设定SOURCE或者SINK优先。
连接之后,想翻转也是允许的,只要发起角色变换请求就可以了。
6.2 PD握手解析
如下是LOG的解析
以下过程为Macbook2017+PD FL7102的通信过程,不同的PC和不同的PD由于自身配置的不同,过程会有所差异
(1)由于线材使用的为有源线材,带有E-Marker,因此通过SOP'对线材的Capability进行确认,此动作由PC发出,方向为OUT
(2)随后由于PD默认为RD,因此PC先发出Source Capability,声明能力为5V/3A,此时PC为Source,整机为SINK,整机请求5V/3A
(3)PC告知整机Power准备好了,并同时获取整机的SINK以及Source的能力
(4)PC通过Discover,获取PD的身份,并且从ACK中知道PD为AMA
(5)通过获取SVID得知其为Displayport
(6)此时PD会ACK PC,告知其支持的模式2lane,4lane或者是其他的定义接口
(7)PC在此沟通过程会在整机提供的多种模式中选择其中一种,一般选择2lane模式
(8)根据不同Source的不同角色需求,PD此时请求PRS(Power-Role-Swap),请求由SINK转为Source,PC Accept
(9)整机通过Source Capabality,发送PDO给PC(5V/3A 9V/3A 12V/3A 15V/3A 20V/3A)
(10)PC选出一个电压,并且返回一个电流给整机
(11)整机PsRdy,且发出中断,请求AUX通信,进入DP握手过程