标准的经典 USB 主机必须始终向下游端口提供 VBUS (+5V +- 10%),因此设备可以启动连接序列(将 D+ 或 D- 拉高)。端口必须至少提供 500 mA(2.0 版本)或 900 mA(3.0 版本),无论是否有任何通信或附件。这些是对经典 USB 2.0 和 USB 3.0“大功率端口”和有源集线器的“至少”要求,因此如果他们愿意,它们可以提供更多。USB 2.0 规范的第 7.2 节列出了这些要求。小型电池供电可能有一个例外。
注 1:即使在“睡眠”(挂起状态)模式下,主机也必须提供 VBUS。
--
注意 2:如果主机不将 VBUS 驱动为高电平,则不会/应该发生连接,即使设备有自己的电源。根据 USB 2.0 规范第 7.2.1 节,连接请求(D+ 或 D- 上拉)必须仅在存在 VBUS 时发生。因此,仅“拥有”上拉是违反规范的,上拉必须以 VBUS 为条件。
--
注意 3:因此,没有 VBUS => 没有通信。由于这条规则,没有 VBUS 就不可能有“部分”或“主机信号”模式。
500 mA 是 USB HOST的要求。此供应编号经常与作为消费者的 USB设备的要求相混淆。USB 设备在初始连接阶段消耗的电流不应超过 100 mA,并且只有在它被枚举并接收到“set_configuration ()”命令时才能消耗全部功率。在此初始“100mA”会话期间,USB 设备在设备描述符中报告其电源要求。如果主机已经用尽了它的功率预算,它可以停止枚举,有效地拒绝设备。
NOTE4:正如你所看到的,没有“谈判”,它要么是“我的 [主机] 方式”,要么是“高速公路”。
--
注意 5:USB 主机没有指定方法来监管其端口的实际功耗。USB 主机控制器没有任何可以测量/报告端口消耗的寄存器。因此,主机无法强制执行 100mA 限制来监控可能违反 100mA 规范的坏设备,除非发生端口过流的严重事件。符合 100 mA 限制被认为是 USB-IF 认证过程的级别。
简而言之,500 mA 和 100 mA 是不同 USB 实体的要求,一个用于主机和集线器,另一个用于设备,再次如第 7.2.1 节所述。从 USB 标准的角度来看,这就是它的工作原理。
现在,随着 Type-C 连接器的引入,情况有所不同。Type-C 设备(包括主机和外设)最初被禁止输出 VBUS。因此,与其大胆地在 Type-C 端口上使用 VBUS 电源,不如仅当端口逻辑检测到电缆/设备的存在时,主机才必须打开 VBUS 源。它通过检测“CC”(通信通道)引脚上的电压电平来实现这一点。Type-C 主机在两个 CC 引脚上都有上拉电阻。设备(或旧式电缆组件)必须具有 5.1k 下拉。插入设备/电缆后,主机检测到 5.k 将其上拉下拉,此时主机有权使用 VBUS 电源,USB 通信开始。