usb battery 机制初探
2015-07-29 11:35
295 查看
详见usb 充电规范(Battery Charging Specification, Revision 1.2)
1 usb充电端口类型
DCP(Dedicated Charging Port) 专用充电端口 它一般是DP/DM短接
SDP(Standerd Downstream Port) 标准下行端口 它一般是usb 主控端dm/dp 会有一个下拉电阻
CDP(Charging Downstream Port) 充电下行端口 它一般兼容2.0规范,对usb充电做出优化的下行接口,当CDP检测到DP上加载了0.6V电压,它随即想DM加载0.6V电压。当然这些电压从dp 移动到dm,是需要充电电路来实现的。
ACA(Accessory Charge Adaptor)
2,usb充电类型识别流程
vbus 检测 (检测vbus是否接入) ----->dcd接触检测 (检测d+/d-是否接触) -----> 一次检测 (D+加载一个0.6V电压,主要用来区分是否为SDP) ----> 二次检测(主要用来区分DCP 还是CDP) -------->ACA 检测 (通过检测ID的阻值)
通常usb设备的dp/dm 先会比vbus、GND要短一些。上图为usb battery协议中所指定的。
vbus检测
移动设备会始终检测vbus上的电压,当移动设备接入到充电端口,当vbus检测阀值在0.8~4V 之间,移动设备会认为接入到一个充电端口。
数据线接触检测(data contact detect)
当usb插头与usb插座连接时,vbus和gnd这两根线会比dp/dm先接触;当移动设备检测到vbus后,会在d+上加载一个电流源I_dpsrc.当d+/d-没有接触时,D+的电压会被拉高到2V;而当d+/d- 接触后,host端的下拉电阻会将电压到0.8v以下。通常移动设备在检测到vbus后的300~900ms 才开始一次检测。也就是dcd 检测会有一个超时设定的时间。
一次检测
当移动设备检测的dcd,以及dcd 检测超时后,移动设备就会进入到一次检测。它主要用来区分是否为SDP。它通常在d+上加载一个0.6v左右的电压,随后移动设备开始检测d-上的电压值,查看是否收到0.6V左右的电压回应。同理SDP接口会将d+/d-上电压拉低,从而移动设备就无法检测到d-上的0.6V 回应电压。而CDP 因为dp/dm短接,则它可以检测到0.6v回应电压。而DCP 因为有电路会向d-上加载0.6V电压。
二次检测
它主要用来区分CDP 与DCP端口。移动设备向d-上加载0.6V的电压值,由于DCP中dp/dm短接,从而d+上会检测到0.6V的电压;而CDP则不会像d+上加载0.6V电压值。
ACA检测 详见spec中
上述为本人对usb battery的认识与理解,有什么不对的地方请指出,谢谢!
1 usb充电端口类型
DCP(Dedicated Charging Port) 专用充电端口 它一般是DP/DM短接
SDP(Standerd Downstream Port) 标准下行端口 它一般是usb 主控端dm/dp 会有一个下拉电阻
CDP(Charging Downstream Port) 充电下行端口 它一般兼容2.0规范,对usb充电做出优化的下行接口,当CDP检测到DP上加载了0.6V电压,它随即想DM加载0.6V电压。当然这些电压从dp 移动到dm,是需要充电电路来实现的。
ACA(Accessory Charge Adaptor)
2,usb充电类型识别流程
vbus 检测 (检测vbus是否接入) ----->dcd接触检测 (检测d+/d-是否接触) -----> 一次检测 (D+加载一个0.6V电压,主要用来区分是否为SDP) ----> 二次检测(主要用来区分DCP 还是CDP) -------->ACA 检测 (通过检测ID的阻值)
通常usb设备的dp/dm 先会比vbus、GND要短一些。上图为usb battery协议中所指定的。
vbus检测
移动设备会始终检测vbus上的电压,当移动设备接入到充电端口,当vbus检测阀值在0.8~4V 之间,移动设备会认为接入到一个充电端口。
数据线接触检测(data contact detect)
当usb插头与usb插座连接时,vbus和gnd这两根线会比dp/dm先接触;当移动设备检测到vbus后,会在d+上加载一个电流源I_dpsrc.当d+/d-没有接触时,D+的电压会被拉高到2V;而当d+/d- 接触后,host端的下拉电阻会将电压到0.8v以下。通常移动设备在检测到vbus后的300~900ms 才开始一次检测。也就是dcd 检测会有一个超时设定的时间。
一次检测
当移动设备检测的dcd,以及dcd 检测超时后,移动设备就会进入到一次检测。它主要用来区分是否为SDP。它通常在d+上加载一个0.6v左右的电压,随后移动设备开始检测d-上的电压值,查看是否收到0.6V左右的电压回应。同理SDP接口会将d+/d-上电压拉低,从而移动设备就无法检测到d-上的0.6V 回应电压。而CDP 因为dp/dm短接,则它可以检测到0.6v回应电压。而DCP 因为有电路会向d-上加载0.6V电压。
二次检测
它主要用来区分CDP 与DCP端口。移动设备向d-上加载0.6V的电压值,由于DCP中dp/dm短接,从而d+上会检测到0.6V的电压;而CDP则不会像d+上加载0.6V电压值。
ACA检测 详见spec中
上述为本人对usb battery的认识与理解,有什么不对的地方请指出,谢谢!
相关文章推荐
- android USB如何修改VID具体实现
- 用vbs确定计算机是否有 USB 2.0 端口的代码
- Android中查看USB连接的外接设备信息的代码实例
- C#获取USB事件API实例分析
- 用u盘安装操作系统
- 从usb启动安装linux
- 利用4G U盘安装Fedora Linux
- 用组策略彻低禁止USB存储设备、光驱、软驱、ZIP软驱
- usb禁用原理
- USB有关的编程
- usb
- USB硬件***危险性初步分析
- 关于禁用USB存储设备,而不禁使用USB键盘,鼠标
- 用USB安装esxi
- 量产化工具
- 用DriverStudio制作简单USB驱动程序
- USB设备驱动程序开发框架
- 如何在XenDesktop中映射USB设备
- 用组策略彻低禁止USB存储设备、光驱、软驱、ZIP软驱的方法
- Android电池电量更新 - BatteryService(转)