一种基于Type-C PD协议的手机快速充电方案
测试来设计和不断优化。充电策略程序根据电池、温度等信息和期望充电曲线才能电压电流需求,通过HPI接口传递给PD层,然后通过Type-C的CC信号传递给充电器并接收充电器反溃
基于PD协议的充电器软件控制流程如图 4所示,主要包括标准PD充电流程,私有化充电流程以及电压电流保护。主程序流程为(a)所示,包括外设的初始化和子程序的初始化,配置完成之后,使能中断,进行主循环。标准PD充电流程为(b)所示,作为用电设备的手机插入充电器之后,在完成数据和供电关系判定之后,作为供电设备的充电器会打开MOSFET输出VBUS为5V,随后便会广播供电能力。手机会根据定义好的受电能力选择电压电流,充电器根据收到的供电请求来判定是否可以满足,进而发送接受或拒绝信息。如果充电器可以提供手机请求的电压电流,就会相应的控制AC/DC调整输出的电压电流能力并且设置相应的电压电流保护值,并在调整完成之后,发送供电准备好的信息,此时标准的PD协商充电就完成了。
在此之后,客制化的、针对各家手机厂的产品特性的私有化充电流程就可以启动了,如(c)所示。私有化充电流程是通过充电器与手机AP基于非结构化的定制化信息(Unstructured VDM)或者可编程PDO进行沟通完成的。为了安全起见,进行私有供电协商之前,本设计进行了充电器和手机的相互身份确认,只有匹配的双方才可以进行客制化的快速充电。当然,在越来越多的设备支持PD充电,以及PD协议的不断完善的未来,私有化的充电将逐渐被统一的、灵活的公有充电协商机制所取代,实现不同种类、不同厂家的设备之间的自适应的智能高效充电。本设计在完成私有化验证之后,手机端发起数据角色交换的指令(Date Role Swap),从而使手机成为主设备,充分发挥手机AP处理能力强和获取信息多的优势,根据电池电量,系统温度以及预置充电曲线等信息,主动向充电器发送所需的电压电流调整指令。充电器则根据手机侧的指令调整电压、电流以及设置相应的保护值,完成调整之后,再发送确认指令给手机,以此来确保电压电流调整的正确性。
四 PD充电过程和结果
为了更加有效开发和准确验证基于控制流程的协议沟通,本文采用赛普拉斯研发的PD协议分析仪CY4500 EZ-PD™ Protocol Analyzer。CY4500 协议分析仪通过抓取配置通道(CC,Configuration Channel)上的数据包,并通过USB接口发送到主机端,通过软件EZ-PD Analyzer Utility解码并显示PD协议包。CY4500不仅可以实时显示并解析PD通信包,而且还实时测量电力传输过程中的电压和电流值,进而缩短了开发周期,对于调试以及兼容性测试帮助非常大。
图 4 基于Cypress CCG2方案的PD协议的充电器软件控制流程图
本文利用CY4500记录了充电过程中的标准PD协商供电以及私有化充电通信过程,如图 5所示,而在此过程中CC电平和VBUS电压变化情况图 6所示。首先作为供电方的充电器广播供电能力(Source Capability)5V/3A, 9V/2.7A和12V/2A,手机回复供电请求(Request),选择9V,随后充电器回复接受信息(Accept),并且将电压调整至9V,发送供电准备好信息(PS_RDY)。可以从Vbus(mv)一栏,看出在整个协商通信过程中的电压变化情况,发送PS_RDY时,电压已经调整至9V。标准PD协商供电之后,本位采用加密的非结构化的定制化信息(Unstructured VDM)进行私有化验证,验证通过之后手机端发起数据角色交换的指令(DR_SWAP),从而成为数据主设备,再发送调节电压电流指令,完成高效的充电策略。
QC3.0的充电比较普及,在此不做详述。
图 5 基于Cypress CCG2方案的PD协议的充电器供电协商通信过程
图 6 基于Cypress CCG2方案的PD协议的充电器供电协商波形
五 总结
本文针对客户需求,和客户以及充电器厂商紧密配合,根据具体手机项目,使用赛普拉斯PD控制器CCG2设计出了一套基于PD2.0协议的快速充电系统,包括PD充电器,手机侧PD控制电路和AP驱动,PD控制程序和充电算法,经过数月的调试改进,实现了各种情况下稳定的Type-C连接和高于QC3.0充电效率和可靠性的充电策略,实现了量产和上市,并为下一步基于PD协议的电池直充方案奠定了基础。
- 大联大友尚集团推出USB Type-C双向快充移动电源完整解决方案(10-03)
- 谁才是USB Type-C/QC快充最合适的电源控制器?(06-18)
- 如何为USB Type-C和QC 3.0 选择合适的电源控制器(06-04)
- Type-C面临无线技术挑战?(02-26)
- 越来越觉得,接口很多但USB Type C会成主流(06-26)
- USB Type-C如何实现端口电力管理(06-12)