你真的了解USB吗?USB充电大揭秘(一)

转自:芯片之家公众号 2016-12-22 原创: karaxiaoyu

  • (关注我,你的眼睛会怀孕)

前言

在人们的固有印象中,如果要给手机充电,有电脑的USB口和手机充电器这2种途径。

  • 但是最常见的问题在于充电的电流太小,从而导致充电的时间太长。
  • 这是什么原因导致的呢?本文将把USB充电的一些常识做一些简单易懂的解释。

USB(Universal Serial Bus),通用串行总线,顾名思义,是为了通用而诞生的一种串行总线标准。

  • 这个接口可以说是迄今为止在消费电子发展史上最为成功的接口,它统一了以前电脑上的各路英豪(比如老式打印机上又大又笨重的并口,键盘鼠标常用的PS/2接口等等),并且由于驱动在Windows系统里面的不断集成,到现在常用的USB设备基本上都可以做到真正的即插即用,以前买一个USB摄像头还需要满世界找驱动的日子已经一去不复返了。

  • USB这个接口从诞生之初的目的就是为了统一各种外设,并且提供一定的供电能力给外设使用,所以它在设计之初就考虑了一些后向兼容性。

  • 但它绝没料到人类的欲望是那么地无穷无尽,手机的屏幕越来越大,不过瘾了再弄个note,还有更大的pad。

  • 在十几年后的今天(USB2.0的规范是2000年的时候由USB-IF组织发布的),大家插到USB口充电的都是几千毫安时的大容量电池了,从而也导致了目前出现的一系列问题。

USB接口简介:

  • 我们以最常见的USB TypeA接口来简单介绍一下USB接口:

  • 如上图所示,USB接口简单的不能再简单了,一共4根线,除了电源跟地,就只有D+/D-这一对差分数据线。

电源规则:

  • 根据USB-IF组织发布的规范,USB设备只能从USB主机端口的电源VBUS汲取下列大小的电流:
100 mA(枚举之前)

500 mA(枚举之后)(对于USB3,为900 mA)

1500 mA(USB BC1.2握手之后)

2.5 mA(USB总线挂起)
  • 所谓的枚举,就是指USB设备和USB主机相连之后(设备比如是一个手机或者U盘,而主机一般是一个电脑),USB设备会检测到D+和D-上的15K下拉电阻,以及VBUS上的5V;然后紧接着USB主机就会对USB设备分配地址并且进行初始化的过程。
  • 可以看出,对于一般的电脑而言,它的USB端口可以提供的电流就是500mA,这是一个让现在动辄就标配3500mAh以上电量的各种note手机来说绝望充电电流。
  • 我们来简单地掐指算算,如果把手机插入这样的USB端口进行充电,大约需要7个小时才能充满,这还没有计算充电到80%以后电流急剧减小所需要花费的额外时间。
  • 这显然是各位童鞋所不能容忍的吧?可是USB-IF组织制定的规范就是如此,你总不能任性地说老子就是不遵守这个规范吧?其实你要任性地试试也可以,非要在标准的USB端口上汲取1A的电流,分分钟你就会在Windows右下角看到如下的提示出现:

**然后这个USB端口一段时间内就不能用了。。。**

既然如此,那怎么办呢?此时就要看各路神仙如何出招了。

  • 最先行动起来的是第一批进入智能手机市场的厂商们,比如黑莓,苹果和三星,因为他们也注意到这样的充电方式会让童鞋们骂街。
  • 他们的想法也很简单,既然USB设备插入标准的USB端口,会检测到D+和D-上的15K下拉电阻,同时根据USB的协议规范,进行一系列的USB协商过程——在这一过程中,看来500mA的电流上限是无法突破了。
  • 他们索性来了个逆向思维,干脆不要D+和D-上的15K下拉电阻,反其道而行之,用其他阻值的分压电阻来处理D+和D-这两根数据线,让D+和D-分别呈现不同的电压,相当于做了一个“签名”在D+和D-上,让手机(也就是USB设备)插入这种“特制”的USB端口时,一眼就认出这是自己人,然后送点礼,轻松突破500mA的充电电流限制进行充电。
  • 这样一来,既不违反USB的八项规定,又可以在自己的充电器上提供大电流进行充电,这不是你好我也好的美事么?

早期常见的厂家自定义USB充电器定义如下:

电压 苹果1A 苹果2.1A 苹果2.4A 三星平板 三星手机
D+ 2.0V 2.7V 2.7V 1.2V 0.9V
D- 2.7V 2.0V 2.7V 1.2V 0.9V
  • 苹果的2.7V和2V配置已成经典,很多手机都兼容它。
  • 这种看起来两全其美的办法,其实还是有很多问题。
    • 比如说,各个厂家的充电配置不通用,会带来各种兼容性的问题以及浪费,有时候你明明有一个三星的充电器,它可以对三星手机提供2A的充电电流,可是你买了一个iPhone之后,用三星的充电器可能就充不了电,不得不另外去买苹果专用的充电器。
    • 而更大的问题在于,在智能手机如此普及的今天,所有的电子厂商都希望自己的产品提供的USB口除了可以正常传输数据之外,还可以提供大电流的充电能力,比如笔记本电脑,比如汽车中控主机,等等。
    • 可惜的是,传输数据和大电流充电,两者不能兼容。试问你苹果已经把D+和D-固定在2.7V和2V了,还怎么传输数据?因此必须想别的办法。

所幸的是USB-IF组织终于注意到了这个问题,并且在2010年10月正式发布了Battery Charging 1.2(简称BC1.2)的标准。

  • 这是一个姗姗来迟却又无比重要的标准,它解决了上述2个严重的问题。
  • 首先这是USB-IF组织正式发布的标准,意味着在兼容性上有绝对的优势,你不支持标准就不能在这圈子里混,不会再出现苹果支持,而三星不支持的囧况
  • 其次它解决了无法同时传输数据和大电流充电的问题。 那么这又是如何办到的呢?

在BC1.2的标准里面,定义了3种USB的端口,分别是:

SDP——Standard Downstream Port,标准下行口

CDP——Charging Downstream Port,充电下行口

DCP——Dedicated Charging Port,专用充电口
  • 我们简单地说,SDP和以前最多支持500mA的USB口是一回事,这里只是换了个名字,叫SDP,实际上是换汤不换药。

  • DCP呢,顾名思义当然只能充电,而不能传输数据,所以基本上只会在充电器上看到这种USB端口。

  • 而CDP就牛逼了,它又能传输数据,又能大电流充电,童鞋们是不是被它震住了?

  • 其实道理也非常简单,我们都知道USB2.0一共就4根线,而D+/D-这2根数据线和5V的VBUS是分开的,换句话说,完全可以做到D+/D-传输数据,而VBUS提供电源大电流充电就行了,不矛盾。之所以以前不行是因为USB-IF出于安全考虑(或者说当时没有远见。。。)把USB设备所能汲取的电流限制在了500mA而已。当然这么多年过去了,这已经是事实婚姻,想直接把这个电流限制取消也不现实,必须要考虑以前设计的USB主机的兼容性。

  • 比如说以前的电脑USB口就只能提供500mA的电流,通常主板里会有5V的限流开关对VBUS的电流进行限制,一般这个值是设在500-700mA的,因为它默认不会有消耗电流超过500mA的USB设备会插进来。如果现在把这个500mA的电流限制取消,一个手机插进一个这样的USB端口充电,电流起码1A往上,那结果就是这个USB端口无法工作,因为它断电保护了(还记得前面你任性导致的过流保护图片吧),所以此路不通。

  • 唯一的办法就是在500mA电流的基础上,再增加一道验证手续

    • 也就是说,如果CDP的验证不通过,那就说明USB主机或者设备,至少有一个是不支持大电流充电的,那么就停留在500mA的状态下就好了,不会造成任何问题。
    • 假如CDP验证通过了,那就说明USB主机和USB设备都支持大电流充电,此时USB设备就会突破500mA电流的限制,从VBUS汲取更大的电流进行充电。同时,数据的传输还是和以前一样照旧从D+/D-上传输,所以不会有任何影响。
  • 这一官方组织发布的BC1.2标准影响是重大的,连一向特立独行的苹果都率先支持BC1.2,这可能颠覆了很多人对苹果的印象,一直吊炸天的苹果怎么这回老实了?

    • 2012年9月发布的iPhone5(操作系统iOS6),已经完整地支持CDP和DCP充电,体现了苹果公司的先进性(同期的很多三星,华为等品牌的手机还不支持BC1.2)。当然,苹果自己原创的经典“D+ 2.7V / D- 2V”充电配置还是要继续支持的。

好了,BC1.2的来龙去脉介绍完了,欲知CDP和DCP是怎么实现的,且听明天的大揭秘之二。

原文链接

明天更精彩哦!

长按识别二维码 关注“芯片之家公众号”

文章作者:糖醋鱼

版权声明:转载请注明来自糖醋鱼的博客


你可能感兴趣的:(笔记)