USB协议的第9章讲到USB可见设备状况[Universal Serial Bus Specification, Section 9.1.1, Pg 239],分为衔接(Attached),上电(Powered),默许(Default),地址(Address),装备(Configured)和挂起(Suspended)6个状况。所谓可见,即USB体系和主机可见的状况,其他状况归于USB设备内部而不行见。其间有关电源的,大致可分下面三类:
1. 衔接状况(Attached):设备衔接,但未供给电源。
2. 上电状况(Powered):设备被复位(Reset),或者说处于地址、装备状况。(拜见USB枚举进程,USB Specification, page 241)
3. 挂起状况(Suspended):3 ms未见总线活动而处于省电状况,设备不行用,但依然坚持原有的USB地址和装备。
设备的挂起
咱们知道,在USB体系中,正常状况下hub或root hub会一向周期性地发送SOF包(Start Of Frame,全速USB每1ms发送一个,高速USB则是125μs发送一个)。依据USB协议,假设USB线上一向处于闲暇(Idle)状况超越3ms,设备应该把它当作一个挂起(Suspended)信号,要求设备在10ms内进入挂起状况,并把设备所需的电流巨细降到规则的值(关于low-power设备,要求是500 μA,而关于high-power或支撑长途唤醒(remote wakeup)功用的设备是2.5mA【Section 7.2.3, Pg176】)。在挂起状况中,设备有必要继续向数据项D+/D-的上拉电阻供给电压以保持Idle状况。而关于USB2.0高速设备,还有些额定的要求:
1. 高速设备在收到挂起信号(3ms闲暇)后,应在0.125ms内切换到全速状况,也就是说要把终端电阻移除,并在D+数据线上从头挂上1.5k上拉电阻。
2. 设备在随后的100-875μs内检测数据线上的状况。假设该状况是一个Full speed J,那么阐明host发下来的是一个挂起信号;假设此刻该状况是SE0,阐明是host drive数据线D+到0,这是一个复位信号(复位信号会继续至少10ms时刻)。
要注意的是高速设备在挂起状况时处于高速形式,仅仅所用的是全速信号。一旦从挂起状况康复回来,会立刻进入高速作业状况而无需进行复位操作。
设备的唤醒
设备处于挂起状况时,任何总线上的活动(非闲暇信号)都能够把设备唤醒/康复,然后退出低功耗形式。(相同,设备也能够换醒host,比方电脑待机时经过USB键盘来换醒主机,这种功用称之为“长途唤醒”(remote wakeup),不在本文的评论范围内。)
由于设备挂起时处于全速信号,在当host需求把将设备退出suspend状况时,需求先发送一个继续时刻超越20ms的Fulll Speed K状况。设备看到K状况完毕的1.3us内醒过来,而host需求在3ms内发送uSOF信号以保持正常的高速信号形式,不然设备又将进入suspend。如下图所示: