USB设备的电源设计考虑

作者:duoduo

   

在USB接口有四根线,分别是VBUS,D-,D+,GND。其中VBUS线是HOST/HUB向USB设备供电的电源线。HOST/HUB每个端口通过VBUS提供的电流最大为500mA,电压范围是4.4V-5.5V,但是这并不是意味着设备可以无条件地使用VBUS向自己提供500mA的电流。

根据USB规范,从电源方面来讲,USB设备分为自供电和总线供电两种设备类型,设备通过枚举过程的设备描述符声明自己的电源要求。自供电设备不使用HSOT/HUB的电源,而是自身有电源供应;总线供电即指设备电源来自VBUS。如果是总线供电设备,USB规范按照设备工作时吸取的电流大小又规定了两种设备:low pwer和high power设备,low power设备任何情况下不得吸取超过100mA的电流,high power设备在正确配置之前不得吸取超过100mA的电流,如果已经配置,任何情况下不得吸取超过500mA的电流。如果设备进入suspend状态,low power设备任何情况下不得吸取超过500uA电流,high power设备在已经正确配置并且远程唤醒功能被主机使能的情况下不得吸取超过2.5mA的电流,否则不得超过500uA(2008年USB-IF对suspend电流规定进行了变更,原来的500uA电流的规定过于严格,因此所有USB设备suspend电流放宽到2.5mA。)。从规范的规定来看,USB对电源管理是有严格要求的,因此,有些USB设备或者非USB设备不管三七二十一就从VBUS取电是违反USB规范的。还有一种自供电和总线供电混合类型设备,其对VBUS的使用规定和总线供电设备相同。

但是在实际使用中,USB电源往往被滥用 。许多厂商的USB设备并不送到USB-IF进行认证,此种情况下,其USB电源的设计往往未必满足USB规范。

从duoduo所观察过的PC主板和HUB来看, 许多主板/HUB并没有在VBUS的供电上严格遵从USB规范,通常是直接从电源模块送+5V到VBUS上,有的甚至连VBUS过流检测 电路都没有。主板的VBUS供电能力还和主机使用的开关电源有很大关系,一些劣质电源向VBUS提供的电流根本就达不到500mA或者是大电流下VBUS电压降的很厉害导致设备不能正常工作 ;而没有VBUS过流检测的主板在USB外设故障情况下有导致主板烧毁的危险。HUB有无源和有源两种,有源HUB和HOST的VBUS指标相同,无源HUB由于本身没有电源,挂在其下的所有设备吸取的电流总和不能超过该HUB上行端口所能够获得的电流。目前市面上流行的各种USB设备,在VBUS电源设计上能够满足规范的其实也不多,很大一个原因是一些终端用户喜欢的功能特性其实无法满足USB规范;不过,USB是一个发展变化很快的技术,需求与规范的矛盾都在逐渐的解决中,典型的如USB-IF新发布的USB充电器规范就是为了解决此前USB设备既想满足规范但又希望利用VBUS电源给电池充电的矛盾。

但是如果你的USB设备需要通过USB-IF的认证以获得在设备上使用USB logo的权利,那麽电源设计就将真的要小心了,你的设备必须严格遵从USB规范中的电源规定,否则功亏一篑,数千美金的认证费就会白白扔掉了。在设备使用VBUS供电的时候除了考虑电流大小之外还必须考虑VBUS的电压以及设备刚接入时的浪涌电流大小,USB规范中VBUS电压在4.4V-5.5V之间,根据HOST/HUB的不同,少数劣质HOST/HUB会超出这个规定,如果设备使用3.3V或更低电源,简单从VBUS加个低功耗LDO就可以了,但是如果设备直接使用VBUS作为自身电源则必须考虑设备能否在4.4V-5.5V下都能够正常工作,否则兼容性问题会让你大伤脑筋。另外据说有的笔记本电脑仅能向VBUS提供100mA电流,这个duoduo没有研究,哪位可以补充一下。至于浪涌电流,是USB-IF认证中的一项,我们通常习惯性的在设备电源入口加一个数十uF乃至数百uF电容的做法此时根本是不可能通过浪涌测试的;从duoduo的经验上来看,这个电容一般取小于4.7uF或者2.2uF,由于后面的电路也在设备的VBUS电源入口处存在等效电容,因此实际取值应该根据浪涌测试结果进行调整。