标题:
嵌入式系统电源的管理和功耗的控制
[打印本页]
作者:
look_w
时间:
2017-10-19 13:11
标题:
嵌入式系统电源的管理和功耗的控制
在嵌入式系统中,电源的管理和功耗的控制,始终是一个非常重要的任务。所以通常面向嵌入式应用的
CPU
都会有各自不同的软硬件策略来辅助电源管理和功耗控制,最常见的包括各种低功耗模式,以及动态的频率切换等功能。本文的目的主要结合自己最近在
Marvell
的
Monahans
平台上所做的工作,总结一下所学习的相关知识,及软硬件框架和实现。
1
电源和功耗管理的工作内容
嵌入式设备上的电源和功耗管理,从大的方面来说,所要做的工作应该会包括以下几点:
1.1
系统状态的切换
从很大程度上来说,嵌入式系统的电源和功耗管理都是围绕着
CPU
和系统总线的工作状态来进行的,(当然,
LCD
等背光的管理也是很重要的一个方面)。所以,通常来说,我们所讨论的嵌入式系统中的系统状态,从
CPU
和系统总线的角度来说,大致可分为以下几种:
1.1.1
全速工作模式
嵌入式系统的
CPU
通常不会工作在超频状态下,所以全速工作状态就是指
CPU
运行在手册所推荐的最大工作频率下。
1.1.2
降频工作模式
除去背光所消耗的功率,在系统中,
CPU
本身所消耗的功率通常占据了相当大的一个比例,所以为了降低功耗,让
CPU
工作在非全速状态也是一个常见的做法。
ARM
架构
CPU
的变频操作通常是通过协处理器指令来实现的。变频过程中,除了要处理
CPU
的
Core
频率,还需要处理相关总线和外设的频率变换,因为通常各种总线频率在变频过程中都有可能改变,而外设的时钟信号等也有可能相应的受到影响。
1.1.3
低功耗模式
不同的
CPU
通常都会实现各自不同的低功耗模式,不过,如果抛开名字和具体细节上的差异,仅从本质上讨论其相类似的工作原理,那么,大致所涉及到的内容会包括:
CPU Core
的时钟是否保持
CPU
的
CORE
电压是否保持
CPU
核心寄存器是否保持
外设总线时钟是否保持
LCD
是否保持刷新
外部
SDRAM
是否保持刷新
内部
SRAM
是否保持刷新
睡眠唤醒用
RTC
时钟是否保持刷新
按照其中这些状态的组合,不同的
CPU
会定义各自不同阶段程度的低功耗工作模式。
低功耗模式对消费类的嵌入式系统来说尤其重要,它关系到设备的最大待机时间。
1.1.4
深度休眠模式
严格来说,深度休眠模式也是低功耗模式的一种,这里单独提出来是因为通常它会被作为系统的关机状态来使用。
例如手机这类设备,在关机后,通常系统也并没有完全断电,因为还要考虑到系统时间的更新以及闹钟唤醒等功能,所以系统关机后通常都是处于所谓的深度休眠模式。这时候,通常只有
RTC
时钟相关的一小部分电路处于工作状态,这时候也会采用和系统总线相独立的低频率的晶振作为时钟来源。
为了保证
RTC
的电路的不间断工作,通常还会在主板上放置一个小的备用电池。当然,如果主电源和备用电池都切断了,那系统就真的进入完全断电的状态了。
1.2
低功耗模式下,系统底电流的控制
当系统工作在低功耗模式,尤其是休眠状态下,系统底电流的控制是非常重要的。首先要定义一下休眠状态的含义,这里所说的休眠状态,不是指上述关机状态下的深度休眠模式,也不是指
PC
上的
Hibernate
。我们所说的休眠模式是指在保证
CPU
和整个系统能够从内存中快速恢复工作的前提下,系统所可能进入的最低功耗状态。这通常指:
CPU
核心电压和和时钟关闭
外设时钟关闭
外部
SDRAM
保持自刷新状态
内部
SRAM
维持刷新
在这种状态下
CPU
自身的功耗被降到最低,但系统总体的底电流还和外设工作状态相关,所以需要根据系统状态在恰当的时刻控制外设的供电和工作状态以保证总体电流的最优化。
在
Linux
内核中,这个恰当的操作时机,通常是指在统一设备驱动模型中,设备驱动所注册的
Suspend
和
Resume
函数被系统电源管理模块所调用时。设备驱动需要自己保证在
Suspend
函数被调用时完成自身必要的休眠或者断电等操作,而在
Resume
函数中重新恢复自己的正常工作状态。
除此之外,底电流的控制和主板本身的硬件设计也有很大关系。
1.3
系统运行模式下,功耗的控制
如果说低功耗模式下系统功耗的控制关系到消费类嵌入式设备的待机时间,那么运行模式下的功耗控制则关系到系统正常使用的时间,同样也是至关重要的。
从总体来说,要降低系统运行时的功耗,所涉及到的内容大致会包括:
背光亮度的控制,例如在适当的时候自动调节系统背光亮度,时间等,在某些场合关闭系统背光。
尽量关闭不必要的外设,只有在需要使用的时候才对相关外设进行上电操作(例如
Camera
,蓝牙,
wifi
等),或者让一些不能关闭的外设在工作间隙处于休眠状态。
适时的变频操作,在
CPU
和总线负载较低的情况下,进行恰当的降频操作,降低
CPU
本身的功率消耗,同时在负载升高的时候,能够保证及时的恢复较高的工作频率,不影响用户的正常使用。
此外应该还包括恰当的器件选型,软件性能优化等其它手段。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0