1 原理
本篇文章讲的快速充电是指USB论坛所发布的USB Power Delivery快速充电规范(通过VBUS直流电平上耦合FSK信号来请求充电器调整输出电压和电流的过程),不同于本人发布的另一篇文章所讲的高通Quick Charger 2.0规范,因为高通QC2.0是利用D+和D-上的不同的直流电压来请求充电器动态调整输出电压和电流实现快速充电的过程。
USB PD v1.0的通信是将协议层的消息调制成24MHZ的FSK信号并耦合到VBUS上或者从VBUS上获得FSK信号来实现手机和充电器通信的过程。
如图所示,在USB PD通信中,是将24MHz的FSK通过cAC-Coupling耦合电容耦合到VBUS上的直流电平上的,而为了使24MHz的FSK不对Power Supply或者USB Host的VBUS直流电压产生影响,在回路中同时添加了zIsolation电感组成的低通滤波器过滤掉FSK信号。
USB PD的原理,以手机和充电器都支持USB PD为例讲解如下:
1) USB OTG的PHY监控VBUS电压,如果有VBUS的5V电压存在并且检测到OTG ID脚是1K下拉电阻(不是OTG Host模式,OTG Host模式的ID电阻是小于1K的),就说明该电缆是支持USB PD的;
2) USB OTG做正常BC1.2规范的充电器探测并且启动USB PD 设备策略管理器,策略管理器监控VBUS的直流电平上是否耦合了FSK信号,并且解码消息得出是CapabilitiesSource 消息,就根据USB PD规范解析该消息得出USB PD充电器所支持的所有电压和电流列表对;
3) 手机根据用户的配置从CapabilitiesSource消息中选择一个电压和电流对,并将电压和电流对加在Request消息的payload上,然后策略管理器将FSK信号耦合到VBUS直流电平上;
4) 充电器解码FSK信号并发出Accept消息给手机,同时调整Power Supply的直流电压和电流输出;
5) 手机收到Accept消息,调整Charger IC的充电电压和电流;
6) 手机在充电过程中可以动态发送Request消息来请求充电器改变输出电压和电流,从而实现快速充电的过程。
目前2014年有好几家芯片厂商做出了USB PD v1.0芯片,下举例:
uPD720250 瑞萨
UPD100X microchip
2 Abbreviations
ARC:Argonant RISC Core
AT91SAM9260:SAM means Smart ARM-based Microcontroller
ATMEL SAMBA:ATMEL Smart ARM-based Microcontroller Boot Assistant
CC2530:TI ChipCon2530
DWC2:Design Ware Controller 2,Apple的嵌入式设备,包括iPad和iPhone都是使用的DWC2
ISP1161:Philips' Integrated host Solution Pairs 1161,“Firms introduce USB host controllers”,https://www.eetimes.com/document.asp?doc_id=1290054
Quirks:the attributes of a device that are considered to be noncompliant with expected operation
SL811HS:Cypress/ScanLogic 811 Host/Slave,性能上与ISP1161(Integrated host Solution Pairs 1161)相当
TDI:TransDimension Inc.,该公司首先发明了将TT集成到EHCI RootHub中的方法,这样对于嵌入式系统来说,就省去了OHCI/UHCI的硬件,同时降低了成本,作为对该公司的纪念,Linux内核定义了宏ehci_is_TDI(ehci);产品UHC124表示USB Host Controller;收购了ARC USB技术;现已被chipidea收购,chipidea又被mips收购
TLV:TI Low Value,高性价比
TPS:TI Performance Solution
TT:Transaction Translator(事务转换器,将USB2.0的包转换成USB1.1的包)