您的位置 首页 数字

USB的挂起和唤醒 (Suspend and Resume)

USB协议的第9章讲到USB可见设备状态[UniversalSerialBusSpecification,Section9.1.1,Pg239],分为连接(Attached),上电(Powe…

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在a点中止发送SOF,体系处于SE0状况,b点是3ms时刻点,之后的125μs内,设备移除终端电阻,并挂上1.5k上拉。此刻如host发送的是suspend信号,那它就不会不drive D+数据线,导致D+被设备拉高,构成一个Full Speed J状况。在c点之后100-875μs内设备检测此刻host行为,发现是suspend信号,设备内部进入低功耗的挂起(suspend)状况。(假设hsot发送的是复位信号,那么当设备在c点挂1.5k电阻之后,由于host对D+线的drive效果,D+线无法被拉高,依然处于SE0状况,设备在c点之后的检测,发现的仍是SE0状况,比及10ms后就可判别这是一个复位信号,进行设备复位操作。)

设备的唤醒
  设备处于挂起状况时,任何总线上的活动(非闲暇信号)都能够把设备唤醒/康复,然后退出低功耗形式。(相同,设备也能够换醒host,比方电脑待机时经过USB键盘来换醒主机,这种功用称之为“长途唤醒”(remote wakeup),不在本文的评论范围内。)
  由于设备挂起时处于全速信号,在当host需求把将设备退出suspend状况时,需求先发送一个继续时刻超越20ms的Fulll Speed K状况。设备看到K状况完毕的1.3us内醒过来,而host需求在3ms内发送uSOF信号以保持正常的高速信号形式,不然设备又将进入suspend。如下图所示:

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/239166.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部