基于开源软件构建先进的嵌入式电源管理

最新更新时间:2011-08-02来源: 21IC关键字:开源软件  嵌入式  电源管理 手机看文章 扫描二维码
随时随地手机看文章

    电源管理(或者说能耗管理)是芯片设计、制造工艺、系统设计和软件都在为之努力的研究课题,大家力求在各个环节尽可能的减少静态和动态的电源消耗。传统的控制电压的调节方式和管理待机模式依然是多数电子设备正在采用的,还将继续延续下去,但是随着包括智能手机、导航和无线传感网络装置,这些对电量消耗极大且永远在线的设备的市场规模的迅速增加,电源管理已经成为整个电子设计正在面临的重要课题。市场研究机构isuppli首席分析师Jordan Selburn说:“功耗已经成为电子产品设计的首要考虑。”

    Linux操作系统已经证明是在嵌入式系统,尤其是消费电子产品中大量使用的一个嵌入式操作系统。它因为丰富的特性、完善的功能、最新的硬件支持和无版税的商业模式得到包括半导体公司、设计公司和设备制造商的认可。对于消费电子产品中的Linux 技术,除了进一步优化性能、压缩尺寸、提高可靠性外,构建一个完善和富有弹性的电源管理系统已经成为越来越紧要的项目和要求,也将成为Linux取代传统RTOS、WinCE/mobile、Symbian,占据消费电子首席开源软件(OS)地位的重要杀手锏。

    Linux电源管理质量服务

    目前已经发表的Linux版本是2.6.24和2.6.25,这两个版本包含了下面几个和嵌入式相关的技术。LTTng(LinuxTrace工具);电源管理质量服务(PM QoS,也称为QoSPM);Kpagemap——一个在userspace的应用,可以更详尽的测量到内存消耗的情况;Latency measurement API——一个延迟测量API,也是LatencyTOP的基础,这个工具的姐妹组合是叫做powerTop的电量分析软件,这是一个很有用的电源管理工具,可以分析出每个具体的应用对电量的消耗情况。最近商业的嵌入式Linux公司Montavista把它移植到mobilinux5.0产品里支持ARM结构;Smack——一个简单的访问控制的安全模块,值得尝试在嵌入式系统中使用。

    这里重点讨论PM QoS,构建PM QoS的目的是通过提供硬件之间可以访问的机制,让应用在有性能需要的时候可以给出电源管理的资源信息,在实现上,它是构建了一个新的内核结构以完成需要延迟和吞吐性能的驱动程序、系统和应用之间的通信。

    PM QoS目前发布的版本里有三个参数(pm_qos_params.c):cpu_dma_lantency、network_latency和network_throughput。使用pm_qos_init()在内核里可以增加新的参数,在userspace应用使用PM QoS就好像是驱动文件的一个特性。打开驱动文件,改变如延迟参数等值,写入文件后,关闭文件就意味取消了对内核的请求,可以自动保护避免因为可能发生宕机而损坏内核系统。

    在内核API中有请求(requirement)、告知(notifier)等接口,让需要有延迟和吞吐性能要求的驱动代表这些参数。典型的应用包括目前Intel开源实验室开发的一个带有PM_QoS的无线网卡的驱动(IW14965)。这个无线芯片有六个电源配置点,它们可以影响天线的功率,设置进入无线休眠的速度和无线AP站点之间的距离等参数,这个应用使用PM QoS的延迟参数就很适合,目前这个驱动的工作还是和驱动相关,通过sysfs挂接,驱动只需要简单的注册并告知需要改变网络延迟参数的要求,然后切换到它希望的电源管理层。

    PM QoS目前主要有三个方面的应用。第一是CPU的空闲管理,这可以用在如音频、硬盘、USB和显示等耗电大和动作相对需要延迟的部件上。例如,图像不需要高分辨率,那就可以关闭硬件的加速功能,而硬件加速要打开是有延迟的,设置合适延迟可以达到在不影响使用的前提下节省电量的目的。第二是WiFi应用。第三是千兆以太网,PM QoS可以帮助控制网络的延迟和带宽的需求,以达到在可用的前提下省电的目的。例如,网络浏览器大约可以设置成2s延迟,邮件客户端0.5s的网络延迟。PM QoS目前还很初步,现在主要应用是网络和互联网终端,相信进入Linux内核后未来支持PM QoS的驱动程序和应用将会越来越多,对于嵌入式系统装置的电源管理是一个选择。

    Linux内核的动态电压和电流控制接口

    前面已经提到半导体器件的功耗是两个部分组成,一是静态功耗,一是动态功耗。静态功耗主要来自待机状态的泄漏电流,相比而言动态功耗更大,例如,音视频播放中频率和电压的增加会让电量将成线形增长,动态功耗也是电源管理要解决的主要问题,解决动态功耗的方法有几种,如IBM和Montavista合作开发DPM项目(现用在Montavista Mobilinux 5.0 产品中)和TI OMAP3430的Linux电源管理,自Wolfson微电子的Liam Girdwood最近介绍了一种称为校准器(regulator)的动态电压和电流控制的方法,很有参考意义和实际使用价值。

    1 校准器的基本概念

    所谓校准器实际是在软件控制下把输入的电源调节精心输出。例如电压的控制,输入时5V 输出是1.8V;电流的限制,最大20mA;简单的切换和电源的开关等,如图1所示。


    电源域是一组校准器,设备组成、输入可能是校准器,开关也许是电源域,电源域可以级联,电源约束可以和电源域配合以保护硬件。例如一个Internet Tablet/PMP,它由CPU、NOR Flash、音频编解码器、触摸屏、LCD控制器、USB、WiFi 等其他外设组成,如图2所示。

    为了实现上面的构想,需要在内核里建立一个校准器构架,目的就是设计一个可以控制电压和电流的标准内核接口以节省电能,从而尽可能的延长电池的供应。这个内核的架构分为四个部分:针对设备驱动的消费接口(consumer)、校准器驱动的接口、系统配置的接口和面向应用sysfs的userspace接口。

    2 Consumer的API

regulator = regulator_get(dev, “Vcc”);
其中,dev 是设备“Vcc”一个字符串代表,校准器(regulator)然后返回一个指针,也是regulator_put(regulator)使用的。
打开和关闭校准器(regulator)API如下。
int regulator_enable(regulator);
int regulator_disable(regulator);

    3 电压的API
消费者可以申请提供给它们的电压,如下所示。
int regulator_set_voltage(regulator, int min_uV, int max_uV);
在改变电压前要检查约束,如下所示。
电压值下面的设置改变如下所示。
int regulator_get_voltage)struct regulator *regulator);

    4 电流的API
电流的API也是类似,需要指出的是,校准器的方法并不一定是最高的效率,效率和加载(如加载10mA电流)、操作模式都有关系,通过下面的API可以改变模式设置。
regulator_set_optimum_mode(requlator,10000);//10mA

    5 校准器的驱动和系统配置
在实际使用校准器之前,需要按照下面的结构写校准器的驱动程序,然后注册后通知给消费者使用。
struct regulator_ops {
 /* get/set regulator voltage */
 int (*set_voltage)(struct regulator_cdev *, int uV);
 int (*get_voltage)(struct regulator_cdev *);
 /* get/set regulator current */
 int (*set_current)(struct regulator_cdev *, int uA);
 int (*get_current)(struct regulator_cdev *);
 /* enable/disable regulator */
 int (*enable)(struct regulator_cdev *);
 int (*disable)(struct regulator_cdev *);
 int (*is_enabled)(struct regulator_cdev *);
 /* get/set regulator operating mode (defined in regulator.h) */
 int (*set_mode)(struct regulator_cdev *, unsigned int mode);
 unsigned int (*get_mode)(struct regulator_cdev *);
 /* get most efficient regulator operating mode for load */
 unsigned int (*get_optimum_mode)(struct regulator_cdev *, int input_uV,
 int output_uV, int load_uA);
};
完成了校准器驱动程序之后,下一步就是系统设置(machine specific),即匹配如电压、LDO1和NAND等关系。
regulator_set_supply(“LDO1”,dev, “Vcc”)
对于userspace,校准器的使用是通过sysfs,但是目前所有的包括电压、电流、操作模式、限制等信息多只是只读信息,应该是非常适合象powerTop这样工具的使用。

    6 应用 

    校准器的典型的应用包括如下:CPUfreq——CPU频率的调节;CPU idle——CPU空闲模式控制;LCD背光调节——通过电流控制LED灯的亮度达到控制LCD背光的目的;音频单元——如FM收音机在MP3使用的时候应该是关闭的,麦克风使用的时候,扬声器的放大器应该是关闭的;NAND/NOR存储器是耗电大户,根据不同操作方式(读/写、擦除等)优化操作模式(控制电流)达到节省电量的要求。同其他电源管理的方法比较,校准器方法具有一定的硬件独立和抽象性,简单实用,原理上可以适合任何有电源管理芯片支持嵌入式系统电源管理,目前已经移植到Freescale MC13783、Wolfson WM8350/8400等几个集成度很高的电源管理器件上了.

    基于构件的面向CPU的电源管理技术 
    无论是PM_QoS、控制电压和电流的校准器方法,还是许许多多半导体公司支持自己CPU和电源管理芯片的Linux BSP电源管理部分,都还没有一个构建在更高层面的构件级嵌入式系统电源解决方案和商业产品。虽然包括CELF(消费和嵌入式Linux 论坛)和Intel主导的Mobile &Internet Linux项目都设立了专门的电源管理计划(power manager project),但是显然距离人们的要求和实际的应用还太远了。

    Montavista在过去和IBM合作开发DPM(动态电源管理)技术的基础上,最近在专门针对手机、互联网移动终端、PMP/PDN等便携消费电子设备的mobilinux5.0上提出嵌入式电源管理技术的构件方法。Montavista的构件方式主要是针对以先进的多媒体应用处理器为核心的新一代嵌入式系统,比如Freescale的MX31、TI OMAP2430/3430为核心的系统级电源管理,它包含下面几个主要的部分。

    1 动态的电压和频率调节

    正如前面提到的,电压和频率的提升将会让功耗线性增加,按照设计需要和应用的指令将电压和频率调节到合适的操作点可以大大降低功耗的有效方法。要想实现动态的电压和频率调节(DVFS),在内核里CPUrefs子系统是关键的部件,如图3所示。

    那么管理者(Governor)是按照什么情况改变操作点呢?性能要求、省电的要求、用户的应用以及CPU的使用效率等条件都可以让管理者改变操作模式。Mobilinux5.0提供了userspace机制充当管理者的工作,即应用可以改变操作点。

    在TI OMAP3中有一个称为SmartReflex的技术,动态调整VDD1和VDD2操作点电压以适应芯片特性、温度和电压。SmartReflex技术有四个级别:0级——在工厂生产时优化校准后设置的操作点;1级——引导时优化后校准确定的操作点;2级——通过软件循环实时优化电压点然后由CPU的中断程序设置;3级——完全的硬件循环优化电压点,无须CPU干预,是一种硬件控制“傻瓜”操作点改变方式。无论是mobilinux5.0还是TI 3430 Linux distribution都已经支持DVFS和SmartReflex驱动。

    2 挂起和恢复 
    在内核里,mobilinux5.0已经提供支持挂起和恢复的驱动程序的功能,新的驱动必须要增加回调函数以响应系统休眠中关机和再次唤醒的动作。

    3 支持电源管理的驱动程序 
    每一个驱动程序必须经过重新的书写支持DVFS,即当操作点改变的时候,驱动程序通过CPUrefs的告知作出响应。驱动程序还必须正确处理系统的挂起和恢复事件。

    4 CPU空闲调节 
    由一个定义的处理器特定的空闲状态点的CPUidle驱动管理、内核的一个CPUidle 框架和管理者组成,如OMAP3430定义7个空闲状态点。

    5 应用设计策略 
    包括手机在内的便携式消费电子产品主要的能耗分布如图4所示。


    除了CPU外,其他主要的能耗大户是LCD背光、NOR/NAND Flash/RAM存储器、DC/DC转换和音视频放大器等,例如,MPEG4的播放就是一个能耗集中的应用。
如何使用mobilinux5.0等已经具备电源管理功能的商业嵌入式操作系统以使便携电子产品能耗降低到最少?下面的方法是设计人员应该考虑的。
● 实际测量的结果证明使用DVFS的方法是降低CPU运行时的能耗的关键。当然,如何让管理者设置操作点和状态转移是要设计人员全盘考虑的。
● 不要忽视CPU空闲状态的能耗管理。mobilinux5.0的CPUrefs 和所有的驱动都已经支持空闲的调节(idle scaling),加上内核使用了动态滴嗒时钟(dynamic tick),改变了过去CPU无论是否运行都按照固定的时间唤醒的方法,大大节省能源。
● 可延迟的定时器(deferrable timer)——它可以告诉内核某个定时器不需要在时限到的时候唤醒,这将可以降低能耗。
● PowerTop工具——前面已经提到的这个工具已经集成到mobilinux5.0 中,而且证明对于分析系统空闲状态是一个非常有用的工具。

    结语 
    上面讲了大量基于Linux的电源管理技术的实现方法,应该承认包括WinCE/Mobile、Symbian 等嵌入式操作系统的电源管理技术和操作系统结合的相对更加完整和容易使用,但是灵活性和开放性比较起开源的Linux要逊色的多。更加重要的是,电源管理是一个系统级的设计,而不仅仅是软件设计,不断追踪技术发展的Linux电源管理将得到越来越多的设计人员的喜爱,使用Linux操作系统优化电源管理后电子产品将会更加省电和长效。

关键字:开源软件  嵌入式  电源管理 编辑:探路者 引用地址:基于开源软件构建先进的嵌入式电源管理

上一篇:中小功率UPS在企业的创新应用方案
下一篇:手机整体电源管理技术及其解决方案探讨

推荐阅读最新更新时间:2023-10-18 15:31

基于EPM7312的新型嵌入式系统的实现
随着以计算机和软件为核心的数字化技术的迅速发展,多媒体技术与Internet 的应用迅速普及。计算机﹑通讯﹑消费电子一体化的趋势日趋明显。作为新型智能3C合一的嵌入式系统与技术进入智能化﹑网络化的发展阶段。 所谓嵌入式系统,即将应用程序和操作系统和计算机硬件集成在一起的系统。简而言之即软硬件一体化。这种系统具有小巧灵活﹑性价比高﹑自动化高﹑实时性强﹑专业性强等特点。嵌入式系统适合应用于人类工作与生活的各个领域,最为典型的应用有机顶盒﹑数字应用﹑WebTV﹑ATM/POS机﹑多媒体手机﹑袖珍电脑﹑车载导航器﹑航空电子等等。嵌入式技术已经深入人类生活和工作的方方面面,在娱乐,军事方面也有强大的应用潜力。 全球有四大操作系统
[单片机]
基于EPM7312的新型<font color='red'>嵌入式</font>系统的实现
采用ARM嵌入式微处理器的VGA显示技术分析
目前很多SOC厂商的微处理器芯片都集成了LCD控制器,如三星公司的S3C2410.S3C2440,Intel的Xscale系列等。大多数嵌入式系统也采用流行的LCD显示技术。但是在需要大屏幕显示、对分辨率要求不高的场合,如车间、厂房,采用大屏幕LCD则成本过高。另一方面,VGA显示技术因为技术发展成熟,成本低廉,仍在被大量使用,直到今天它仍是所有显示终端最为成熟的标准接口。如果让嵌入式处理器直接支持VGA显示器,则能很大地利用现有资源,节约系统成本。 1 基于S3C2440的VGA显示技术分析 通过分析VGA显示技术的时序逻辑与S3C2440内部集成LCD控制器驱动TFT LCD的时序逻辑,找出它们的共同点,分析在S3C244
[单片机]
采用ARM<font color='red'>嵌入式</font>微处理器的VGA显示技术分析
嵌入式系统flash接口电路的实现
  0引言   我们在进行嵌入式系统设计的过程中,根据需求,要设计出特定的嵌入式应用系统,而嵌入式应用系统的设计包含硬件系统设计和软件系统设计两个部分,并且这两部分设计是互相关联、密不可分的,嵌入式应用系统的设计经常需要在硬件和软件设计之间进行权衡与折中。因此,这就要求嵌入式系统设计者具有较深厚的硬件和软件基础,并具有熟练应用的能力。在整个设计过程中,硬件设计是系统设计的基础和核心,而各功能部件在整个设计中的调试又是该环节的重点和难点。本文详细介绍嵌入式系统Flash存储器的接口电路的调试。   1 Flash存储器接口电路的引脚信号及各项特性   1.1 Flash存储器接口电路的特点   Flash存储
[单片机]
<font color='red'>嵌入式</font>系统flash接口电路的实现
嵌入式XPE操作系统的构建及应用
   1 引言   目前主流嵌入式操作系统有μCLinux、μC/OS-II、WindowsCE、Windows XP Embedded(XPE)等,这些嵌入式操作系统功能稳定、可靠,售后服务完善,用户界面美观和网络技术支持等。XPE是Windows XP Professional操作系统的组件化版本,采用与其相同的二进制代码,二者内核完全相同:XPE继承了桌面操作系统的所有特征,被认同为嵌入式系统。    2 WindOWS XP Embedded简介   Windows XP Embedded(XPE)是Windows NT Embed-ded4.0的升级产品,是桌面系统Windows XP的组件化版本。XPE的基
[嵌入式]
2018英飞凌电源管理及多元化市场事业部战略重点展望
  在过去一年与合作伙伴的携手并进、共创价值中, 英飞凌 电源管理 及多元化市场事业部交出了一份令人满意的答卷——功率半导体排名持续全球第一位,其营收占比超全球总营收的30%等。随着人工智能、5G、新能源汽车以及更多新兴领域的不断成熟, 英飞凌 电源管理 及多元化市场事业部正将传统优势的 电源管理 应用, 向支持数据化应用转变, 在覆盖广泛的电源转化应用的同时, 继续向人机交互、高速数据传输等领域寻求更大的机遇。下面就随电源管理小编一起来了解一下相关内容吧。   智能化将是我们事业部在未来的专注点。 以人工智能应用为例,  英飞凌 拥有多样的的传感器产品涵盖语音、手势、面部识别等应用, 在终端的人机交互行为中发挥着数据采集的关键作
[电源管理]
常用电源管理稳压IC一览表
型号(规格) 器件简介 79L05 负5V稳压器(100ma) 79L06 负6V稳压器(100ma) 79L08 负8V稳压器(100ma) 79L09 负9V稳压器(100ma) 79L12 负12V稳压器(100ma) 79L15 负15V稳压器(100ma) 79L18 负18V稳压器(100ma) 79L24 负24V稳压器(100ma) LM1575T-3.3 3.3V简易开关电源稳压器(1A) LM1575T-5.0 5V简易开关电源稳压器(1A) LM1575T-12 12V简易开关电源稳压器(1A) LM1575T-15 15V简易开关电源稳压器(1A) LM1575T-ADJ 简易开关电源稳压器(1A可调1.23
[电源管理]
解密:TI模拟的竞争力究竟源于何处
四月的深圳,连续暴雨,Steve Anderson先生还是如期造访了深圳。作为德州仪器(以下简称 TI )高级副总裁兼全球模拟业务部总经理的他,除了一系列内部会议之外,拜访客户当然是必须的。在东莞,Steve Anderson冒雨专程去见一家初创公司 TI遍布全球的10万家客户之一。 我自己也是从初创公司里成长起来的,所以对初创公司感同身受,我能够理解他们所处的环境,知道他们要做什么,也能够理解创始人肩负的压力。当我去拜访这些初创公司时,总是能够被他们所展现出来的创业热忱,强大前进的驱动力和创新能力感到非常鼓舞。 也许是这次见面非常成功,面对EEWORLD的记者时Steve Anderson显
[模拟电子]
解密:TI模拟的竞争力究竟源于何处
基于TMS320DM642的编程
  引言   一个完整的嵌入式系统必须要有一个合适的存储器存放用户代码。Flash是一种非易失性存储器,而且具有电可擦写、容量大、价格便宜等特点,通常可用于在DSP系统中存放用户代码。   Flash在正常使用前要进行编程,即将用户代码写入Flash。在系统编程方法不需要其它编程设备和编程电源,只借助于仿真器,可直接通过DSP烧写程序对Flash进行编程。本文所使用的编程方法就属于在系统编程。   本文首先介绍常见的Flash编程方法,然后详细介绍本文方法的原理,以及DSP系统上电加载原理,最后给出整个实现过程并分析了Flash编程时需要注意的一些问题。        图1 系统上电的工
[嵌入式]
基于TMS320DM642的编程
小广播
最新电源管理文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved