(重庆工程学院 电子与物联网学院,重庆 400056)
动态电源管理模式在嵌入式系统中的应用研究*
李成勇
(重庆工程学院 电子与物联网学院,重庆 400056)
使用嵌入式系统的睡眠/唤醒功能为系统设置空闲时隙,可以进行电源管理,以此为依据,设计出利用嵌入式系统中央处理器调频的动态电源管理模式,用负载在系统闲置时间的周期统计作为计算方法,控制器输出频率的调整以负载变化比例相应地进行频率变换,这种电源管理方案融入了动态理念,与系统实际运行需求相吻合,满足系统电能使用周期,既保证了系统稳定性,还降低了运行功耗。
动态电源;嵌入式系统;CPU;ARM
电源作为电子产品能够正常工作的第一层保障,电源管理一直是电子系统中不可缺少的重要部分。嵌入式系统作为高端电子产品,人们在购买时非常看重电脑的电源在充满电量的情况下系统能够正常工作多长时间。为了迎合市场需求,在个人嵌入式产品中已经广泛使用电源管理系统,能够对电能的使用有效控制、降低消耗,对嵌入式硬件系统起到了一定保护作用。目前比较流行的电源管理模式有两种:一种模式在Linux系统比较常见,是传统型的方案,但是在Windows操作系统为主的个人嵌入式产品和电子产品中已经很少应用,这种电源管理方案就是高级电源管理(Advanced Power Mangement,APM);另一种是现在比较流行的电源管理模式,主要解决了APM电源管理模式出现的漏洞,应用了开源的设计理念,达到了工业级标准,由多家世界知名嵌入式研发或者生产企业共同制定完成,这种电源管理模式称为高级电源配置接口(Advanced Configuration and Power Interface,ACPI),以适应电子系统的快速发展节奏。在现在主流的电子系统的硬件上,一般都采用高级电源配置接口电源管理模式,但这种电源管理模式是在X86/IA-32BIOS架构上实现的。
嵌入式系统主要是进行大量数据的实时处理,电源作为能量来源,影响着嵌入式系统在各领域的广泛应用,而电源管理决定着系统软硬件设计及能否实现的关键环节。现在许多电子产品都使用电池进行供电,主要是方便用户随时随地使用,而电池使用时间的长短在一定程度上影响用户对电子产品的认可度,而为了延长用户对电子产品的有效利用时间,只有在电源管理上下功夫,充分利用能量,避免电量不必要的浪费,保证设备长时间使用。
嵌入式系统硬件设备都由集成电路构成,电路复杂性偏高,器件运行频率高且间距小,造成系统散热效果差,因此器件损耗比较严重。如果使用电源动态管理模式,根据运行情况系统实时动态调整器件是否工作,或者调整器件工作电压,在系统不工作时降低运行频率,断开不参与运行的接口设备,则可以减少系统电源的电量损耗,保障器件压降差不过分偏大。本文所设计的动态电源管理模式,解决了用户最关心的待机及使用时长的难题,主要从降低系统功耗、多部件有效利用、动态管理器件工作频率方面保护了硬件设备,使嵌入式系统的使用周期延长。
本文采用通用的嵌入式开发平台Intel DBPXA250作为实现实验的搭建平台,Intel DBPXA250开发平台应用的微处理器是PXA250,是一种主流的XSeale架构。XSeale主要应用于手持嵌入式产品的微处理器架构,里面包含多个子架构微处理器解决方案,比如常见的开放式平台架构中通信和应用子系统。本项目在电源管理中结合了开发平台PXA250的诸多优势,实现了资源优化利用,结合点主要有以下4点:①PXA250开发板具有支持电源管理的功能,可以和动态电源管理模式结合;②具有强大国际标准测试协议接口JTAG,支持内部芯片数据测试,方便各部件电源电量测试;③与ARM嵌入式芯片指令系统兼容,支持处理图像、视频等信息;④内部包括32 KB的指令高速存储器和32 KB是数据存储器,存储器足够大,方便功能实现;⑤嵌入式系统结构采用多级流水线结构,处理功能强大。
DBPXA250开发板还有丰富的外部硬件设备,以微处理器为中心,集成大量硬件电路及接口处理模块,其主要组成部分如图1所示。
图1 DBPXA250开发板硬件结构
DBPXA250的核心部分是处理器卡,主要集成了微处理器PXA250和SD内存,其连接了相关外部设备,包括显示器LED、LCD等,以及通信接口蓝牙、串口、红外感应及网口等。辅助芯片Intel SA-1111,可连接键盘鼠标等常见外部输入硬件设备的控制。飞利浦UCB1400主要负责音频外围设备的控制功能,增强了图像声音的控制功能。
图2 实验开发环境
嵌入式系统开发是基于硬件平台的控制开发,与传统软件开发形式是不一样的,虽然用的工具都是嵌入式+高级语言,但传统软件系统应用的开发不注重接口技术,只是注重功能的实现,而嵌入式系统注重外围设备接口,驱动硬件系统完成系统功能,因此对系统开发流程和所需平台环境有更高的要求,与PC机应用是很大区别。由于PC机桌面应用系统不需要硬件资源,而其软件资源又相对丰富,可以直接建立本地开发调试环境,只需要一台PC机即可,但嵌入式系统开发是基于硬件接口的,资源比较有限,需要借助PC机和自身开发平台共同完成系统开发环境建立。本项目所使用的开发环境如图2所示。
Intel DBPXA250开发板作为母版即目标机,支持ARM嵌入式内核。选择中等配置的PC机作为开发主机,两者通信方式采用常见的串口连接或者网口连接。主机进行驱动程序的编写、编译、生成等过程,把生成好的机器代码通过串口或者USB口下载到嵌入式开发硬件平台上,驱动目标机运行。反复调试,直到满足系统功能参数,建立这样的通信模式,主机可以远程调试目标机上的程序代码,有利于嵌入式系统的功能调试。
系统生成后,目标机和主机是独立运行的,两者之间互不影响,原始程序存储在FLASH设备中,Linux系统在FLASH设备上采用MTD驱动机制,能够完成多种操作文件的实现。通常采用YAFFS文件系统支持NAND FLASH设备,JFFS2文件系统满足NOR FLASH和NAND FLASH设备需求。DBPXA250微处理器有NOR FLASH设备,便于目标机调试运行,入口地址开始处(0x00000000)存在FLASH三部分内容,其中安装了amrboot、zimage和JFFS2,其分区结构如图3所示。
图3 DBPXA250 FLASH分区结构
3.1 功耗分析
电源管理的主要作用是延长用电器设备的使用时间,这就需要尽量节省电池耗量。因此最重要的是知道电池的电量到底用到哪些地方,只有了解嵌入式系统的各部分用电情况,才能针对不同器件特性设计电源管理模式,达到有效控制电量的目的。本项目以ARM系列手持电子产品为例,分析各部分功能耗电情况,其分布图如图4所示。
图4 系统耗电分布图
可以看出,处理器和液晶显示(灯光控制)几乎占了用电量的80%左右,因此处理器和液晶显示是本项目针对的主要对象。液晶显示作为主要的外围设备,在整个系统调试中都存在;处理器是嵌入式系统的核心,集成度比较高,连接着振荡电路和电源电路,影响着整个系统的耗电情况。处理器由半导体放大电路组成,其功耗计算如下:
P=C·F·V2
其中P为功耗,C为半导体放大器门电容,F为频率,V为电源供电电压。半导体放大器门电容C一般是一个已知的量,不需要调整,而频率和电压可以根据系统在实际应用中的环境因素动态进行调整。频率和电压之间成正比关系,也就是说高电压支持高频率运行,频率和电压要控制在一定比例内,其关系如下所示:F∞V。
一般CPU生产厂家会设置几组频率与供电电压之间的组合,供用户选择使用。PXA250微处理器的硬件设备支持有效的电源管理模式,管理模式有多种选择方式,工作频率也可以进行动态调整,同时根据工作情况匹配工作频率和供电电压,这样设计系统工作流程更加方便灵活。
3.2 系统设计
系统整体设计思路:以系统实际运行情况为准,以处理器为中心,控制系统各部分的耗电情况,完成整个系统在用电有差异情况下的变换,从而实现在系统完成功能的要求下,对不必要的功耗予以控制,有效降低用电量。作为整个系统的大脑,处理器管理着所有的器件和设备的用电情况,控制命令也由处理器来直接完成,所以处理器决定着嵌入式系统的整个工作状态和用电情况。PXA250微处理器为使用者设置了4种工作模式来控制电量使用:
① 运行模式:是微处理器正常工作模式,所有电源都是打开的,支持所有器件运行状态,可以使用所有处理器内部资源,处理器处于命令执行。
② 增压模式,系统处于全速运行模式,微处理器的运行频率是运行模式的倍数关系,一般在系统负载比较大的时候选择这种模式。
③ 闲置模式,处于这种模式下微处理器是停止工作的,其他器件是正常运行的,处理器只是实时查询系统内外的中断微处理事件,发生中断请求,处理器就会响应中断,自动激活,进入运行模式。
图5 处理器工作模式转换关系
④ 睡眠模式,这种模式结合了闲置模式的优势,处理器和其他器件都停止运行,在需要工作运行时,只是激活必要的工作器件,其他不需要工作的器件还是处于睡眠状态。这是系统耗电最少的一种模式,主要是利用减少不工作的器件数量来降低电源电压。以某一确定时刻,微处理器运行状态处于其中一种模式,模式之间转换可以通过软件设置或者硬件搭建实现。各种模式之间的转换如图5所示。
可以看出,系统通电后进入的是运行模式,运行模式可以和其他模式进行双向直接切换,其他三种模式不能直接切换,必须通过运行模式间接地切换到其他模式,因此运行模式是所有模式转换的纽带。项目组设计的电源管理模块就是利用这种思路,以运行为中心点,和其他三种模式控制双向切换,以系统需求为导向,管理用电量。其中增压模式是处理器超负荷运行状态,和运行模式转换即可通过软件实现,项目组采用系统负载统计算法来降低转换用电量。
电源管理涉及软件和硬件两方面内容,两者之间是不可分割的部分,由于使用者对处理器工作模式不熟悉导致效率低且带来了种种的不方便,而且集成电路中的外部设备在处理器上使用时都需要接口驱动程序,所以电源管理模式最好是设定在处理器内核空间上,同时应用已有的操作系统MTD驱动机制制定应用层的驱动接口,减少安装驱动程序。这样设计的好处是提供匹配的电源管理接口,用户可以直接使用,有效地提高了电源管理模块访问硬件设备的利用率,兼容了其他系统,互相操作。系统层次结构如图6所示。
图6 系统层次结构
从系统层次结构看,电源管理模块占用的是操作系统服务层的内核空间,上一层就是面向用户服务的应用层,下一层是硬件平台,通过驱动程序来控制实现,也可以和其他系统兼容,达到电源的有效管理。
3.3 动态电源管理模型
对于小型电子产品,电源管理的主要作用是让其在一次性充满电后,使用更长的时间,降低系统功耗,前提是系统所有的功能都能正常使用,而不是减少系统功能去降低功耗。而相对于用电量比较大的负载,只能先满足其用电需求,保证用户能够正常使用,这时功耗是不能降低的,否则影响系统响应。例如一些视频图像程序或者大批量数据计算时,系统运行承受的负载就偏大,此时只有调整处理器的工作频率,加快运行速度,才能使系统有足够的时间去响应。经过多次实验验证得出,短暂提高处理器的工作频率增加了系统功耗,但从长时间运行统计看,整体功耗是降低了,反而对系统是有利的。所以动态电源管理模型是以处理器调频为依据的,主要目的是降低整体系统功耗,动态地根据系统实际运行需求调整处理器的工作频率。动态电源管理系统模型如图7所示。
图7 动态电源管理系统模型
动态电源管理模型中,观察者的主要功能是查询系统正在运行的情况,统计和运算系统工作负载信息,将获取的信息传递给控制者,控制者根据工作负载的
变化情况控制调整系统运行频率。规则是负载大则提高处理器工作频率,负载变化趋势小则降低处理器工作频率,使系统用电量始终处于平衡状态。
[1] 邢向磊,周余,都思丹.基于嵌入式Linux系统的电源管理软件[J].计算机工程,2010,36(1):253-255.
[2] 田冰超.Linux电源管理详解[J].硅谷,2015(2):15.
[3] 朱超军.嵌入式设备动态电源管理初探[J].中国新技术新产品,2015(6):150-151.
[4] 许文杰,丁志刚,张伟宏.基于Monahans的嵌入式电源管理方案[J].嵌入式工程,2014,35(19):254-256.
[5] 雷霆,李曦,周学海.低能耗软件设计中的性能无损电压调度技术研究[J].计算机研究与发展,2014,43(6):1090-1096.
[6] 唐志芳,时海涛,鲁华祥.基于BP神经网络的系统级电源管理算法[J].计算机工程,2006,32(4):214.
[7] 易会战,陈娟,杨学军.基于语法树的实时动态电压调节低功耗算法[J].软件学报,2015(10):1726-1734.
[8] 卜爱国,李杰,王超.嵌入式系统动态电源管理技术研究[J].单片机与嵌入式系统应用,2008(10).
[9] 吴快快,都思丹.基于Linux的便携嵌入式设备电源管理解决方案[J].微处理机,2005(5).
李成勇(讲师),主要研究方向为电子设计及嵌入式系统应用。
ApplicationofDynamicPowerManagementinEmbeddedSystem
LiChengyong
(School of Electronic and IoT,Chongqing Institute of Engineering,Chongqing 400056,China)
In the paper,sleep/wake functions of embedded system are used to set a free time slot for the system,which can be used for the power management.On the basis,the dynamic power management mode is proposed using the embedded system CPU frequency modulation mode.The load in the system idle time cycle statistics is used as the calculation method,and the adjustment of the output frequency of the controller corresponds to the frequency of the load changes.The power management solution uses the dynamic concept,and meets the electricity use cycle.It ensures the system stability,and reduces the power consumption at the same time.
dynamic power;embedded system;CPU;ARM
重庆市教委科学技术研究项目《基于光学式的多点触摸识别技术的应用研究》(604162762KJ201)。
TN713
A
2017-08-22)