建立好了 USB 设备和主机间的连接后,需要使用 D+或 D-信号线上的上拉电阻来检测设备的速度。 D+信号线上的 1.5kΩ 大小的上拉电阻表示所连接的是一个全速设备, D-线上 1.5 kΩ 大小的上拉电阻表示所连接的是一个低速设备,如图所示。
USB 2.0 设备经常被误解为高速 USB 设备。所有高速设备都符合 USB 2.0 规范,这是因为 USB 2.0 规范支持高速模式。 USB 2.0 规范还包含了全速和低速设备。
这些速度也影响到有关位时间的 USB 信号(如数据包结束(EOP)信号)。低速和全速 USB 设备使用了频率为48 MHz 的时钟执行 SIE 操作,并执行使用其他时钟源的 USB 操作。该 48 MHz 时钟和总线速度决定了 USB 位时间:
七、USB电源
作为 USB 电源时,USB 设备可被划分为两种设备类型:总线供电和自供电。
总线供电是 USB 设计的一个优势。由于设备通过总线供电,因此不需要使用笨重的内部或外部电源,它仍能够维持自身操作。总线可由主机或集线器供电。使用某个总线供电的设备时,用户将设备配置为某种状态前必须考虑其功耗。即设备枚举完成后,必须在第一次将设备连接到总线到主机将 SET_CONFIGURATION 命令传输给设备的这段时间内检查其功耗。设备被配置前不能消耗超过 100 mA 的电流(即 USB 规范中为低速、全速或高速设备定义为一个负载单位)。在配置过程中,设备要求一个预算功耗。总线供电的设备共有以下两种:高功耗和低功耗设备。低功耗设备最多消耗 100 mA 的电流,高功耗设备最多消耗 500 mA 的电流。消耗的电流超过 500 mA 的设备要自供电。
自供电设备通过使用外部电源(如直流电源适配器或电池)为自己供电。自供电设备在进行设计的过程中需要考虑到一些注意事项。USB 规范要求自供电设备一直监控自己的 VBUS线。VBUS不存在的时间内,设备必须断开提供给 D+/D-线上的上拉电阻的电源,从而防止向主机或集线器供电。 否则,会导致 USB 合规性测试发生失败。但是自供电集线器能够从总线获得最多 100 mA 的电流。
设备还能结合两种电源模式,并成为一个总线供电和自供电的设备。常见的例子是设备使用电池。设备通常是自供电的;但使用 VBUS 给电池充电,并且在电池电量发生变化时给设备供电。在技术方面,该设备是一个自供电设备,如USB 描述符中显示,但该设备仍要求来自主机的预算电源。同自供电设备相似,这些混合设计中仍需要监控 VBUS 大小,并且仍会断开提供给 D+/D-线上的上拉电阻的电源。在本应用中,需要实现一部分电源管理系统类型,以监控电池的电压、充电状态,并控制电池电源和外部电源间的切换。
此外,无论设备的供电方式如何,所有 USB 设备都必须考虑到它们的暂停电流。设备的暂停电流是指在主机处于挂起模式(又称待机模式)时由 VBUS 提供的电流。如果总线在 3 ms 时间内没有进行任意操作,设备会进入挂起模式。即使没有进行任意数据传输操作,主机仍会发出“帧开始”(SOF)令牌,以防止设备进入挂起模式。但低速设备却没有 SOF 数据包,因此这种设备是一个例外。总线上不进行低速数据的传输时,低速设备每经过 1 m 都会发送“数据包结束”(EOP)信号,将其作为“保持活动”信号。总线休闲时,设备必须进入挂起模式,并消耗不大于 2.5 mA 的电流。为满足该要求,设计师必须保证设备进入挂起状态前已经关闭了各个 LED 和其他电源库。一旦检测到总线上发生任何操作,USB 设备都会退出挂起状态。如果设备具有远程唤醒功能,它可以向主机发送恢复请求,然后等待主机确认该请求,而不是等待主机进行恢复。
设计师需要了解各种同 USB 电源相对应的 USB 状态。这些状态通常出现在 USB 文档中,并适用于 USB 设备的枚举操作。
默认:某个设备被连接到 USB 上、得到供电,并且由主机进行了复位。这时,设备没有任何设备地址。设备会响应地址 0。
地址:某个设备被连接到 USB、得到供电、被复位,并且有一个唯一的地址。但是设备仍未得到配置。
配置:设备已经连接到 USB、得到供电、被复位、具有唯一的地址、得到配置,但尚未进入挂起状态。此时,总线供电设备能够消耗超过 100 mA 的电流。
挂起:如上面所述,设备已经建立好了连接,并且得到配置,但在 3 ms 时间内不会进行任意总线操作。
USB 规范具有一个框图,描述了这些电源模式的相关性和切换性。
对于低速、全速和高速 USB 设备,USB 的功耗会以 2 mA 的单位进行枚举。例如,需要消耗 100 mA 电流的全速设备在进行枚举时将发送数值 50。
开发 USB 设计时,请考虑您的设备消耗总线的电流。根集线器由主机 PC 的电源供电。如果主机被连接到交流电源上,则 USB 规范要求主机为集线器上的每一个端口提供 500 mA 的电流。这样能将总线供电设备上的电流消耗限制在500 mA。如果主机 PC 由电池供电,它可以为集线器上的每一端口提供 100 mA 或 500 mA 的电流。将设备插入到总线供电的集线器时,该设备必须是低功耗设备,并且消耗电流不能超过 100 mA。总线供电的集线器共有 500 mA 的电流可供给所有所连接的设备使用。