浅谈USB2.0的电压和电流
USB有一个很好的特性,就是USB设备可以从USB总线上取得电源,这也是USB充电的基础。USB2.0规范中定义的供电电压范围为4.4V到5.25V,更大供电电流为500mA。从电源角度可以将USB设备分为自供电和总线供电两种设备类型,自供电USB设备不需要使用USB主机或集线器的电源,自身有电源供应;总线供电指USB设备的电源来自USB 电缆中VBUS线。
如果是总线供电设备,USB规范按照设备工作时汲取的电流大小将USB设备分为低功耗设备和高功耗设备。在USB2.0规范中规定,低功耗设备任何情况下不得汲取超过100mA的电流。高功耗设备在正确配置之前不得汲取超过100mA的电流;如果已经配置,任何情况下不得汲取超过500mA的电流。如果设备进入挂起状态,在任何情况下低功耗设备不得使用超过500µA的电流,高功耗设备不得使用超过2.5mA的电流。
每个USB2.0设备需要在自己的配置描述符中声明其对VBUS上电流的要求,由USB主机来进行统一管理。实际上,每个USB主机都有一个额定的电流,当主机上连接的设备过多,导致无法为新接入的设备提供足够的电流时,设备将无法被正常识别且不能工作,同时在USB主机端需要有明确的提示信息,表明该错误发生。
USB 2.0控制器可以由VBUS或者本地电源供电,且较大从上行VBUS端口汲取不超过一个单位负载,即100mA的电流。需要注意的是,对于自供电设备,除了USB控制器之外,其他模块只能由本地电源供电。如果自供电USB2.0控制器由VBUS供电,当本地电源无法提供电源时,设备依旧能够工作。
如果由本地电源向USB2.0设备控制器供电,此时USB线缆中的VBUS线可以不连接到控制器上。但在这种情况下,利用VBUS进行USB插拔检测的机制将会失效,因此这样的设备多应用在不需要支持插拔功能的系统中。