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

发布者:mb5362443最新更新时间:2016-08-05 来源: eefocus关键字:USB  挂起  唤醒 手机看文章 扫描二维码
随时随地手机看文章
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。如下图所示:

 

关键字:USB  挂起  唤醒 引用地址:USB的挂起和唤醒 (Suspend and Resume)

上一篇:避免USB 3.0设备干扰
下一篇:CAN波形抖动是否违规怎么去监测呢?

推荐阅读最新更新时间:2024-05-03 00:34

USB接口标准及常用USB接口
一、什么是USB? USB是英文Universal Serial Bus的缩写,中文含义是“通用串行总线”。它是一种应用在PC领域的新型接口技术。早在1995年,就已经有PC机带有USB接口了,但由于缺乏软件及硬件设备的支持,这些PC机的USB接口都闲置未用。1998年后,随着微软在Windows 98中内置了对USB接口的支持模块,加上USB设备的日渐增多,USB接口才逐步走进了实用阶段。 这几年,随着大量支持USB的个人电脑的普及,USB逐步成为PC机的标准接口已经是大势所趋。在主机(host)端,最新推出的PC机几乎100%支持USB;而在外设(device)端,使用USB接口的设备也与日俱增,例如数码相机、扫描仪、游戏杆
[嵌入式]
轻松简单搞定USB线缆和充电器质量测试
有史以来首款以简单且直观的方式鉴定USB线缆和充电器质量的测试仪,尤其适用于非技术人员。 QooPowqualMeter介绍   QooPowqualMeter是一款革命性、智能且具备成本效益的DIY设备,它可以帮助你快速且简单地诊断并了解USB线缆和充电器,即使不具备任何技术背景知识也没关系。 qualMeter能用于各种主流的USB充电线缆的测试,它还可以测试5V充电器的带负载能力,从而大致确定其质量。 技术提示 想知道你的设备为什么充电这么慢吗?因为不合格的充电线缆可能会产生较大的电压降。比如,如果你选用的充电线缆就像大部分低质量线缆那样,内部阻抗为500毫欧,那么在进行1A电流充电时,便会产生0.5V的电压下降,这就意
[嵌入式]
基于STM32CubeMX的USB鼠标例程
最近在玩 STM32 CUBE的 USB 功能,用起来还是挺方便的。只要配置一下,设备描述符、配置描述符、 接口 描述符什么的,都能给你自动生成,其中还包括比较复杂的报告描述符。 这次给大家演示一下如何用STM32CUBE的配置,自动生成一个USB鼠标的过程。这里多说一句,USB是一套比较复杂的协议,单靠一两个例程是不可能完全理解的。至少要找本书,再配着USB官网的各种协议啃几天,才算入门。 所以这个例子起到的是一个抛砖引玉的过程,如果你真的感兴趣,就去找相关 资料 学习。STM32CubeMX的便利,在很多方面都给了我们很大的帮助!当然,如果有感兴趣的想继续学的,可以留言,我会试着写一些这方面的文章。 首先,软件版本我用的是
[单片机]
基于STM32CubeMX的<font color='red'>USB</font>鼠标例程
stm32休眠_RTC定时唤醒来喂狗
在STM32开发中经常会用到独立看门狗(IWDG)和低功耗模式,看门狗是为了检测和解决由软件错误引起的故障,低功耗模式是为了在CPU不需要继续运行时进入到休眠模式用以节省电能。其中独立看门狗的时钟由独立的RC振荡器(STM32F10x一般为40kHz)提供,即使在主时钟出现故障时,也仍然有效,因此可以在停止和待机模式下工作。而且独立看门狗一旦启动,除了系统复位,它不能再被停止。但这样引发的一个问题是当MCU进入到低功耗模式后由于CPU停止运行无法喂狗,会导致系统频繁复位。那如何解决这个问题呢,难道独立看门狗和低功耗模式没法同时使用? 一个很好的方式是在休眠模式下通过RTC定时唤醒来喂狗,喂完够在进入继续进入到休眠模式。比如看门
[单片机]
基于LabVIEW的USB实时数据采集处理系统的实现
  通用串行总线USB(Universal Serial Bus)作为一种新型的数据通信接口在越来越广阔的领域得到应用。而基于USB接口的 数据采集 卡与传统的PCI卡及ISA卡相比具有即插即用、热插拔、传输速度快、通用性强、易扩展和性价比高等优点。    USB 的应用程序一般用Visual C++编写,较为复杂,LabVIEW语言是一种基于图形程序的编程语言,内含丰富的数据采集、数据信号分析分析以及控制等子程序,用户利用创建和调用子程序的方法编写程序,使创建的程序模块化,易于调试、理解和维护,而且程序编程简单、直观。因此它特别适用于数据采集处理系统。利用它编制USB应用程序,把LabVIEW语言和USB总线紧密结合起来的数
[测试测量]
基于LabVIEW的<font color='red'>USB</font>实时数据采集处理系统的实现
一种基于ARM和μC/OS-Ⅱ的USB主机设计方案
1 引 言 通常情况下,打印机、海量存储等设备是由普通PC机来驱动的,由于大量的测控、医疗等系统需要存储、打印数据,因此开发这类设备的嵌入式驱动是非常有实用价值的。目前,各种嵌入式设备基本上是通过软盘存储,并口打印的,而它们的存储容量、数据传输速度已大大落后当前各类嵌入式系统的需求。因此,开发基于USB接口的嵌入式海量存储设备和打印机驱动已成当务之急。 USB(Universal Serial Bus)是最近几年逐步在PC领域广为应用的新型串行接口技术,它通用性好、实时性强、传输方式多样、成本低、易于扩展和使用,这些优点使它受到许多硬件厂商的青睐,各种类型的USB设备产品大量涌入市场。USB通讯必须是主机和外设通讯,每次通
[单片机]
一种基于ARM和μC/OS-Ⅱ的<font color='red'>USB</font>主机设计方案
ST推出USB Type-C Power Delivery,可支持可编程电源
意法半导体推出了一个支持可编程电源(PPS)的 USB Type-C™Power Delivery 3.0参考设计,最大输出功率27W,在不连接充电线的情况下零功耗,可加快好用、小巧、高效的电源适配器设计。USB PPS有助于节省电能,减少设备充电时间和散热量,降低设备端的物料清单成本。 STEVAL-USBPD27S参考设计集成STM32G071微控制器(MCU)、最先进的PWM控制器STCH03和TCPP01-M12 USB Type-C 保护IC,其中,STM32G071单片集成功能完整的USB Type-C Power Delivery控制器。这个参考设计让用户可以快速开发USB快充电源适配器,满足欧盟能效标准E
[电源管理]
ST推出<font color='red'>USB</font> Type-C Power Delivery,可支持可编程电源
USB控制器芯片及其在图像采集中的应用
    摘要: 详细介绍CYPRESS2131 USB控制器芯片的特点和功能,并对其在图像采集中应用进行详尽的分析。文中包括原理图及例程。     关键词: CYPRESS2131 USB USB控制器 计算机外设的丰富及消费电子设备与计算机连接的实现,扩展了PC的应用空间,同时外设的日益丰富也给用户造成了连接上的困难。USB技术的提出是基于采用通用连接技术实现外设的简单连接,以达到方便用户、降低成本、扩展PC机外设的目的。USB外设需通过USB控制器芯片与PC接口,CYPRESS2131就是这样一种将PC和外设进行沟通的控制器芯片。CYPRESS2131是由CYPRESS公司开发的,既符合USB规范,
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved