USB设备挂起Supsend及唤醒Resume实现
为什么需要进行USB唤醒与挂起
答案就是电源管理,节能。
连接到USB主机端的设备必须遵守主机功率预算求。USB总线电源是一种有限的资源。USB设备(总线供电或自供电)必须将VBUS的功耗限制在更低直到它们进入配置状态。作为一种省电方式,当USB设备观察到超过3ms没有总线活动(恒定空闲状态),它们进入挂起状态,消耗量小于2.5 mA(根据系统中的挂起电流ECNUSB2.0规范)。
当USB设备处于挂起状态时,它仍然为其D+或D-上拉电阻器供电,以保持空闲状态并保持其内部状态,包括地址和配置。当它被USB总线上的恢复信号唤醒时,它不需要经过重新枚举过程。
USB总线上的恢复信号可以由主机和设备发送。远程唤醒功能使USB设备能够唤醒挂起的主机;例如,将鼠标连接到笔记本电脑,只需点击鼠标即可唤醒笔记本电脑。远程唤醒功能在枚举阶段中上报的配置描述符中报告,可以使用标准USB请求启用(或禁用)。
USB总线挂起和唤醒状态
USB规范定义了与USB总线上的电压信号相对应的总线状态。本节解释USB总线如何定义挂起、恢复和空闲状态的总线状态。
下图显示了连接到D+的1.5kΩ上拉的全速总线状态。以下讨论的总线状态以全速状态为例。有关低速或高速总线状态定义,请参阅USB2.0规范。
JK状态定义
对于全速状态,J状态即差分1,即D+为逻辑高,D-为逻辑低,而K状态即差分0,即D-为逻辑高,D+为逻辑0。
J:差分1
k:差分0
空闲IDLE状态
全速下空闲状态为“J”状态,即差分为1
挂起状态
因为当USB总线处于空闲状态超过3ms时,就会进入挂起状态,所以挂起状态与空闲状态相同,或者就像全速总线段中的J状态一样,即全速下,K状态保持3ms。
唤醒状态
当设备处于挂起状态时,设备端口上的数据K状态意味着从挂起状态恢复。这意味着恢复信号是全速段中从数据J状态到数据K状态的变化.