USB电源管理
在USB总线接口协议中,由于涉及电源供电,因此协议中规定了完整的电源管理方案。通过USB电源管理可以实现USB设备的激活、挂起、空闲和睡眠等,从而降低无效的功率消耗,实现系统电源的有效使用和合理分配。
在USB2.0接口中,支持激活(ACTIVE)和挂起(SUSPEND)两种电源管理模式。在超高速USB3.0接口中,除了激活(ACTIVE)和挂起(SUSPEND)之外,还支持空闲(FAST EXIT IDLE)和睡眠(SLOW EXIT IDLE)两种电源管理模式。
激活(ACTIVE)
USB设备进入正常工作状态即是激活(ACTIVE)状态,此时USB设备的各项功能应可以正常工作。激活状态时USB设备的一个最基本的工作状态。
在激活状态下,USB功能设备所消耗的功率最大,因此也就是最耗电的。为了降低功耗,USB协议中设置了挂起、空闲和睡眠3种低功耗状态。USB设备可以从激活状态进入挂起状态、空闲状态和睡眠状态,从而达到省电的目的。
挂起(SUSPEND)
如果一个USB设备在3ms内没有总线活动,那么USB总线控制器便可以使该USB设备进入挂起状态。在挂起状态下,USB设备保持在挂起之前的重要变量。USB设备在挂起状态下非常省电,一般仅需要不超过500uA的电流即可维持当前USB设备的状态值。
USB设备支持远程唤醒功能,为了退出挂起状态,可以通过外部触发信号使USB功能设备脱离挂起状态,恢复正常运行,进入激活状态。
对于USB集线器来说,如果在3ms内没有总线活动,则该USB集线器设备同样将进入挂起状态。此时意味着USB集线器各个下行端口的USB外设都没有总线活动。USB集线器连同各个下行端口的USB外设都将进入挂起状态。当有任何一个下行端口的USB外设被激活时,USB集线器将退出挂起状态,恢复正常运行,进入激活状态。
在USB2.0中,挂起状态时唯一的省电模式。也就是说,USB2.0接口支持激活和挂起两种状态。在USB3.0中,挂起状态与USB2.0完全一致,但USB3.0还同时提供了更多的省电模式。
空闲(FAST EXIT IDLE)
空闲状态是指USB设备没有总线活动,但是设备自身依旧持续运行。空闲状态时超高速USB3.0接口协议中新增的一种省电模式。
在USB2.0中,即使USB设备没有在总线上进行数据传输,而仅仅是连接到USB总线上,USB主控制器也会定期访问这些设备,检查设备情况,这便是USB2.0的总线轮询机制。这样,USB总线活动便一直存在,这其实是一种总线带宽及功率的浪费。而在超高速USB3.0标准中,在这些方面进行了彻底改进。USB3.0采用了多层次电源管理系统,可以为不同需要的设备提供不同的电源管理方案。特别是没有总线活动的USB设备,可以直接使其进入空闲状态,减少总线轮询所造成的带宽及功率的浪费。
在空闲模式下,USB设备自身的时序依然运行,仅是USB总线活动取消了。因此,USB设备从空闲状态恢复到正常工作状态将很快。典型的可能用到空闲状态的设备包括USB接口的打印机、扫描仪等。
睡眠(SLOW EXIT IDLE)
睡眠状态是指USB设备没有总线活动,同时设备自身也停止运行。睡眠状态时超高速USB3.0接口协议中的另外一种新增的省电模式。
在USB2.0中,由于USB2.0的总线轮询机制,即使USB设备没有在总线上进行数据传输,而仅仅是连接到USB总线上,USB主控制器也会定期访问这些设备,检查设备情况。这样,USB总线活动便一直存在,从而会造成总线带宽及功率的浪费。而在超高速USB3.0标准中,采用多层次电源管理系统,提供了全新的睡眠状态模式。对于不常使用的USB设备,可以直接使其进入睡眠状态。此时,相当于停止位该设备供电。USB设备将不工作,没有USB总线活动,从而可以大幅度减少电源消耗。
在睡眠模式下,由于USB设备自身已经停止运行。因此,USB设备从睡眠状态恢复到正常工作状态将稍慢。典型的可能用到睡眠状态的设备包括USB外置光驱、USB外置刻录机等。
全文摘录自:《USB3.0 编程宝典》
USB电源管理的更多相关文章
- exynos 4412 电源管理芯片PMIC 的配置及使用方法
/** ****************************************************************************** * @author Maox ...
- linux驱动程序之电源管理之linux的电源管理架构(3)
设备电源管理 Copyright (c) 2010 Rafael J. Wysocki<rjw@sisk.pl>, Novell Inc. Copyright (c) 2010 Alan ...
- iTOP-6818开发板支持AXP228电源管理[官方推荐最佳匹配]_支持动态调频
iTOP-6818开发板与4418开发板共兼容同一底板: 核心板:::::: 尺寸 50mm*60mm 高度 核心板连接器组合高度1.5mm PCB层数 6层PCB沉金设计 4418 CPU ARM ...
- 第42章 电源管理—实现低功耗—零死角玩转STM32-F429系列
第42章 电源管理—实现低功耗 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...
- Linux电源管理(1)-整体架构【转】
本文转载自:http://www.wowotech.net/pm_subsystem/pm_architecture.html 1. 前言 在这个世界中,任何系统的运转都需要能量.如树木依靠光能生长, ...
- 2、在uboot上实现电源管理
tar xjf u-boot-1.1.6.tar.bz2 cd u-boot-1.1.6 patch -p1 < ../u-boot-1.1.6_jz2440.patch make 100ask ...
- IM2603设计资料 Type-C拓展坞电源管理芯片
应用于Type-C拓展坞外围集成Buck变换器的电源管理芯片 IM2603 IM2603 概述 用于带有集成降压转换器的 Type-C 外围应用的电源管理 IC IM2603 是一款主要用于 Type ...
- 应用TYPE-C外围电源管理IC IM2605
应用于TYPE-C外围集成同步4开关Buck-Boost变换器的电源管理IC IM2605 IM2605描述 IM2605集成了一个同步4开关Buck-Boost变换器,在输入电压小于或大于输出电 ...
- IM2603资料 Type-C 扩展坞电源管理芯片
用于带有集成降压转换器的 Type-C 外围应用的电源管理 IC IM2603 是一款主要用于 Type-C 外围应用的电源管理 IC. 它集成了一个带有内置高侧 MOSFET 的同步降压转换器和一个 ...
随机推荐
- ExecuteNonQuery()返回值注意点
在使用ExecuteNonQuery(),调用存储过程,语句执行无错误,但是返回结果一直是-1 原因: 当使用储存过程时, 要把SET NOCOUNT ON 这个语句去掉, 这样数据就有反回值了 当 ...
- sql语句查询重复的数据
查找所有重复标题的记录: SELECT *FROM t_info aWHERE ((SELECT COUNT(*)FROM t_infoWHERE Title = a.Title) > 1)OR ...
- 2440 lcd10分钟休眠修改
在我们的系统中,LCD的虚拟控制台和控制台TTY不是同一个设备,也就是说,如果在程序里单纯的printf是不行的!这样只能修改你正在使用的TTY的blankinterval,而你用的却是文本方式的设备 ...
- Linux - gcc和g++的区别
一般linux系统都自带了gcc编译器的,你可以用你的安装光盘去安装,如果你是觉得自带的gcc版本太低了,可以去gcc的官方网站可以下载到,编译需要很长的时间,如果你只编译C或者C++可以只下载gcc ...
- C++-Effective C++ Items
Item2:尽量以const,enum,inline替换#define 原因:1, #define ASPECT_RATIO 1.63 编译错误时产生魔数,应以const double Aspect_ ...
- opencv实现图片缩放
源码 #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/imgproc/img ...
- [流媒体]VLC主要模块
libvlccore vlcthread: vlc线程是libvlccore的重要组成部分,我们在src文件夹下面android.os2.posix.win32等文件夹下包含thread.c文件,说明 ...
- POJ 2752 - Seek the Name, Seek the Fame (KMP)
题意:给一个字符串s,问s的某个前缀与后缀相同的情况时,长度是多少. 此题使用KMP的next数组解决. next数组中,j=next[i],next[i]表示S[0...i-1]的某个后缀(字符串S ...
- 使用 VisualVM 进行性能分析及调优
VisualVM 是一款免费的性能分析工具.它通过 jvmstat.JMX.SA(Serviceability Agent)以及 Attach API 等多种方式从程序运行时获得实时数据,从而进行动态 ...
- UNICODE字符集(20140520)
1多字节字符集,如"IT学吧",sizeof内存长度为7,因为前面2个字母各占用一个字节,后面两个汉字各占用2个字节,结尾的\0占用一个字节.strlen即字符串长度的结果为6. ...