登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
MCU资讯论坛
»
论坛
›
单片机论坛
›
单片机应用于方案
›
嵌入式系统降低功耗的方法研究
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版
嵌入式系统降低功耗的方法研究
[复制链接]
1515
0
ad***
管理员
发表在
电源技术
2014-4-14 10:22:59
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
引 言
随着嵌入式系统应用的迅速发展,PDA和移动电话等便携式装置深入到生产生活的各个角落,嵌入式系统市场有迅速增长趋势。嵌入式系统一般是由
电池
来供给电能的,而且大多数嵌入式设备都有体积和重量的约束。减少电能消耗不仅能延长电池的寿命,缩短用户更换电池的周期,而且能提高系统性能与减小系统开销,甚至能起到保护环境的作用。
1 嵌入式系统功耗分析
研究微处理器的低功耗设计技术,首先必须了解它的功耗来源。如图1所示,从高层次仿真得出的结论可以看出,通过
开关
级
功率
模拟所获得的高性能
CPU
的功率分布关系。其中,时钟功耗所占比例最大,包括时钟发生、驱动器、时钟树、锁存器和所有时钟负担的器件;数据通路的功耗仅次于时钟,主要包括执行单元、总线和寄存器文件;片上存储器的功耗主要由存储器的大小以及存储阵列的电路和物理结构所决定;控制单元和I/O的功耗通常占整个芯片功耗的一小部分。
2 嵌入式系统低功耗设计
低功耗设计是一个复杂的综合性课题。就流程而言,包括功耗建模、评估以及优化等;就设计抽象层次而言,包括自硬件底层至应用程序层的所有抽象层次,而目前低功耗设计大都在操作系统层实施,如图2所示。同时,功耗优化与系统速度和面积等指标的优化密切相关,需要折中考虑。下面根据各部分在嵌入式系统中的不同层次,讨论常用的低功耗设计技术及具体应用。
2.1 低功耗硬件设计
低功耗硬件设计是嵌入式系统降低功耗的重要内容。因此,需要从系统内部结构设计、系统时钟设计和低功耗模式等几方面采用特定的方法(例如,门控时钟和可变频率时钟、并行结构与流水线技术、低功耗单元库、低功耗状态机编码、Cache低功耗设计等)来实现系统硬件节能设计。下面介绍门控时钟和可变频率时钟的应用。时钟是惟一在所有时间都充放电的信号,而且很多情况下引起不必要的门的翻转,因此降低时钟的开关活动性将对降低整个系统的功耗产生很大的影响。门控时钟包括门控逻辑
模块
时钟和门控寄存器时钟。门控逻辑模块时钟对时钟网络进行划分,如果在当前的时钟周期内,系统没有用到某些逻辑模块,则暂时切断这些模块的时钟信号,从而显着降低开关功耗。图3为采用“与”门实现的时钟控制电路。门控寄存器时钟的原理是当寄存器保持数据时,关闭寄存器时钟,以降低功耗。门控时钟易引起毛刺,必须对信号的时序加以严格限制,并对其进行仔细的时序验证。
另一种常用的时钟技术就是可变频率时钟。它可根据系统性能要求,配置适当的时钟频率以避免不必要的功耗。门控时钟实际上是可变频率时钟的一种极限情况(即只有0和最高频率两种值),因此,可变频率时钟比门控时钟技术更加有效,但需要系统内嵌时钟产生模块
PLL
,增加了设计复杂度。图4为在具有低功耗特性的嵌入式芯片上进行的时钟系统设计方案。片上时钟系统通过2个数字锁相环CPUPLL和SysPLL来稳定
16
MHz的输入时钟,分别送到不同的倍频器和
分频器
。经CPU-PLL的时钟信号作为处理器内核时钟,经SysPLL的时钟信号作为处理器内核之外的系统时钟、存储器时钟和外设时钟。
由于处理器芯片(如i.
MX1
)不支持电压动态调节,可通过配置片内数字锁相环实现内核频率动态调节。根据公式计算出系统频率:
其中:fref是系统的低频时钟频率,作为倍频的参考频率;
MFI
是倍频因子的整数部分;MFN和MFD分别是倍频因子的分子和分母;PD是预设分频因子。
2.2 操作系统层
系统级低功耗设计一般是在操作系统层实现。因为操作系统管理系统所有软硬件资源,并获取系统的各种状态信息,控制硬件设备的状态。因此,在操作系统中实现全局功耗控制是最佳选择。操作系统层面分成功耗驱动模块和功耗调度模块。
2.2.1 功耗驱动模块
驱动模块实现相对简单,主要是对硬件操作。功耗模式转换和频率调节都是通过片上时钟系统控制寄存器进行设置。因此,实质上是对寄存器的设置。从睡眠模式或停止模式进入运行模式相对容易,只需向系统发出中断信号,唤醒系统进入运行模式。而从运行模式到睡眠模式或停止模式相对复杂,其关键代码如下:
2.2.2 功耗调度模块
功耗调度模块实现的关键技术在嵌入式Linux操作系统中有具体体现。在Linux操作系统中,任务的调度主要由进程调度(或任务调度)模块 schedule()完成。schedule()掌握系统内所有进程的运行状态,并对其执行的优先级进行管理调度。因此,系统级实现功耗控制,需要对嵌入式Linux内核的schedule()模块全面改写,将
DPM
和
DVS
策略加入其中。设计思路为:由于Linux内核提供的 cpu_usage_stat结构记录了处理器运行时间的分配情况,可以通过读取这些参数计算出当前系统的运行比例,即通过cpu_scan函数来实现具体的操作。cpu_scan函数是处理器设备驱动的主要部分,它在固定的时间片内调用,时间片的大小可以根据需要在5~1D0 ms之间选取。该函数通过调用cpu_dvs函数和cpu_dmp函数来评估系统的状态,这两个函数分别是可变电压技术和动态功耗管理的实现。
(1)DPM策略
DPM策略在低功耗嵌入式Linux系统的实现上分为观测器和控制器两部分,如图5所示。我们在实现过程中采用了Timeout算法。该算法实现简单,预测准确性也较高。统计表明,只要合理地设计Timeout,这种假设的可信度为95%。采用了Timeout算法的cpu_dmp函数在此不再具体解释。但在动态
电源
管理实现过程中容易出现一个唤醒信号发送给一个等待队列中的进程后,该进程不能够立即被调度执行,从而造成事件丢失的情况。为了避免这种情况的出现,Llow被设置成比Lmax稍小的值。当事件数量到达Llow时,即使事件处理进程被唤醒后不能马上转入执行,由于Llow
更新事件列表算法代码如下:
显式资源需要对驱动程序作一些修改,即在驱动程序发送执行命令前和硬件完成服务并通过驱动程序告诉内核设备就绪后这两个时间点,插入一个NotifyEvent()函数调用。具体的代码插入点根据不同类型的设备和对服务开始与结束的不同定义而不同。
根据观测器得到的系统资源访问历史记录计算出优化策略之后,控制模块将在通过电源管理机发出控制命令给相应的硬件完成服务,并通过驱动程序告诉内核设备就绪后这两个时间点插入一个NotifyEvent()函数调用。
(2)DVS策略
目前,嵌入式系统降低功耗多采用动态电压缩放技术Ⅲ,即系统运行时可以通过设置可编频率寄存器控制处理器的工作频率。实验观察发现,系统的运行负荷具有明显的非平稳特性,短时间内可能具有很高的执行负荷,但绝大部分时间维持轻负荷状态。DVS技术根据嵌入式系统这一特点,在系统负荷较重时将处理器设置为最高执行速度,以保证系统的计算能力;而在系统负荷较轻时动态降低处理器的工作频率,以降低处理器的执行功耗,从而实现系统计算性能与功耗的优化控制,如图 6所示。DVS的预测通过采用了基于时间间隔AVGn算法的cpu_dvs函数实现。该函数读取CPU使用信息,按照AVGn算法来估算系统的运行负荷,并根据返回给cpu_scan函数的结果实现具体的动态电压缩放。
AVGn算法分析了
多种
简单或复杂的估计算法和平滑技术。其基本思想是采用指数平滑平均值方法,即预测即将到来的间隔的n个运行百分比的加权平均值。但AVGn算法存在一个问题就是,逐档改变频率导致系统不能及时地响应负载变化,还需要大量深入细致的研究。
2.3 应用程序层
在基于微处理器、微控制器的系统中,软件起到了引导硬件活动的主导作用。也就是说,软件对系统的能量消耗有很大的影响。直到目前,还没有有效且精确的方法可用来评估软件设计对能量消耗所起的效应。没有能量评估,就无法对软件进行优化进而减少电能消耗。引起CPU电能消耗的众多因素中,至少有2个受软件的影响极大--存储系统与系统总线。在嵌入式系统的低功耗软件设计中,主要考虑这2个因素。
3 总 结
功耗已经成为嵌入式系统设计中优先要考虑的问题,随着处理器速度越来越快,如何降低功耗已经成为衡量嵌入式系统性能优良的一个重要方面。因此,在低功耗嵌入式系统设计过程中要考虑各部分具体的低功耗设计方法,同时也要充分发挥各抽象层的低功耗技术优势。
本文介绍的低功耗嵌入式系统中仍有很多不足,有待进一步探索:①DPM随机决策模型和求解算法,并没有解答最优策略是否存在、若存在最优策略具有什么特性等基本问题,也没能从理论上解释“实践中超时策略可以取得优良节能效果”的原因。②本文的DVS策略采用与AVGn算法类似的假设条件,在实际应用中这些条件过于苛刻。如何将本文DVS策略的思想应用到特定的非理想情况的嵌入式系统中,尚需进一步研究。
移动电话
,
嵌入式
,
而且
相关帖子
作为一个新人,怎样学习嵌入式Linux?
中兴资深工程师,嵌入式专家韦东山是这样炼成的!
飞凌嵌入式OK335xS-II样板免费申请活动持续进行!
嵌入式学习心得
jz2440-中断学习出现的错误及查找方法
本人工作10年总结文档——《嵌入式操作系统内核调度》
飞凌嵌入式发布双核i.MX6DL开发板|imx6DL开发板|imx6
飞凌嵌入式充电桩解决方案
PLC编程经验
资源分享:嵌入式Linux基础全套视频教程!
举报
回复
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
产品品牌:永嘉微电/VINKA 产品型号:VKL44A 封装形式:TSSOP48 概述 VKL144是
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
产品品牌:永嘉微电/VINKA 产品型号:VKL128 封装形式:SSOP44 概述 VKL128是一
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
产品品牌:永嘉微电/VINKA 产品型号:VK2C23A/B 封装形式:LQFP64/48 概述 VK2C
高抗干扰液晶驱动/点阵式液晶显示IC/VK2C21
产品品牌:永嘉微电/VINKA 产品型号:VK2C21D 封装形式:SOP16 概述 VK2C21D是
I2C通信接口段码液晶驱动芯片VK2C21C SOP20
产品品牌:永嘉微电/VINKA 产品型号:VK2C21C 封装形式:SOP20 概述 VK2C21C是
更多
精华推荐
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
高抗干扰液晶驱动/点阵式液晶显示IC/VK2C21
I2C通信接口段码液晶驱动芯片VK2C21C SOP20
VK2C21B SOP24高抗干扰LCD液晶段码驱动芯片
低成本、高性能、带EEPROM了解一下
工控仪表/水电气表LCD驱动/抗干扰液晶段码
更多
社区学堂
VKL144A TSSOP48 点阵式液晶驱动芯片/
高抗干扰液晶显示驱动/省电液晶驱动IC/
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
产品品牌:永嘉微电/VINKA 产品型号:VKL44A 封装形式:TSSOP48 概述 VKL144是
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
产品品牌:永嘉微电/VINKA 产品型号:VKL128 封装形式:SSOP44 概述 VKL128是一
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
产品品牌:永嘉微电/VINKA 产品型号:VK2C23A/B 封装形式:LQFP64/48 概述 VK2C
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表