版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑便携嵌入式设备电源管理解决方案-技术方案前言随着各种便携嵌入式设备性能的日益提高,功能日益丰富,其电源紧张的问题也日益突出,国内新推出的某些具有PDA等多种功能的智能电话在密集使用下只能维持半天,多数摄像机和数码相机在充电后都只有一个小时左右的累积工作时间。Linux作为一个开放源代码的操作系统,拥有非常丰富的软件资源和平台支持,这使得嵌入式系统开发的周期大大缩短,越来越多的商用和通用嵌入式系统都采用Linux作为软件平台。因此有必要对Linux系统的电源管理机制进行深入研究。
Linux内核电源管理机制分析
Linux作为一个强大而成熟的操作系统,本身提供了一套从用户空间到系统空间的,由上而下的软件电源管理机制。
电源管理子系统
Linux内核实现了一个电源管理子系统用于统一管理每个设备。源代码pm.h和pm.c中定义和实现了主要的接口函数。如表1所示。
图1Linux电源管理行为过程
Linux的电源管理机制在iPAQ上的应用
iPAQ是康柏公司(现在已和惠普公司合并)推出的基于StrongARMCPU的高性能掌上电脑,不仅提供了卓越的个人信息管理工具,还集成了较为强大的多媒体功能和其他娱乐功能。Linux2.4的内核已经被成功的移植到上面,基于Linux系统众多的应用软件也已经或正在被移植。
iPAQ硬件耗电量分析
要实现对iPAQ耗电量的有效调节,就必须清楚各个硬件耗电量,从而确定出需要管理和调节的对象。iPAQ上的各种硬件的耗电量比例如图2所示。
图2iPAQ上的各种硬件的耗电量比例
可见,Frontlight、LCD、SDRAM、Audio、CPU等是主要的耗电设备,应该尽可能的减少这些设备的工作时间和强度,以减少耗电量,其关键步骤如下:首先,开启SDRAM的自动节能模式。iPAQ所使用的SA-1110支持SDRAM的自动节能模式;在这种模式中,当内存不被使用时,CPU将关闭输入到内存的时钟信号,内存停止工作;这样将减少大约190mW的功率。
接着,调节显示驱动。可以选择(1)在必要的时候关闭背光;(2)降低LCD的刷新率。LCD在正常情况下刷新率是60Hz,通过调节LCD定时器可以调节LCD的刷新率使其低于60Hz。降低LCD刷新率后,可以减少SDRAM,总线的使用和减少功耗;(3)在不使用屏幕的时候关闭LCD控制器。
随后,降低时钟频率。SA-1110的时钟频率可以在57.3MHz到214.8MHz之间动态调节。降低CPU时钟频率可以减少CPU本身的功耗,同时也能减少时钟由CPU提供的其他硬件的功耗。例如:SA-1110工作在频率时可比工作在频率时减少100mW到200mW的功耗。
,关闭音频芯片。在不使用声音的时候,尽量关闭音频芯片,并保持CPU到音频芯片的低输入。
通过Linux电源管理机制及上层应用实现对iPAQ电源管理和耗电量调节
确定了要调控的对象和方法后,需要通过Linux的电源管理机制和上层应用软件来实现对这些硬件设备的控制。这包括编写CPU电源管理代码、外设驱动程序及电源管理代码、电源管理设备实现代码和用户空间控制应用代码。
(1)实现SA-1110进入Sleep电源模式的代码
SA-1110有Normal,Idle,Sleep等几种电源模式,其中在Sleep模式下,SA-1110具有的电力消耗。由于SA-1110进入Sleep模式后,到外设和SDRAM的时钟将停止,多数的寄存器信息将丢失。因此需要事先将重要的寄存器值保存到内存中,并将SDRAM设置为自刷新模式,以保持SDRAM中的数据。当SA-1110收到硬件中断等唤醒源退出Sleep模式后不会接着执行先前未执行的指令,而是回到初始状态去执行启动代码。因此为了让CPU在唤醒后能够持续的工作,需要将返回代码的地址保存到PowerManagerScratchPadRegister(PSPR)寄存器中,使得启动代码能让CPU重新跳到返回代码的地址处,执行返回代码从而回到睡眠前的工作。
SA-1110进入Sleep模式的代码片断如下:
externvoidcpu_sa1110_resume(void);/3SA-1110返回函数3/externintcpu_sa1110_do_suspend(void);/3SA-1110睡眠函数3/intsa1110_suspend(void){...cli();/3关闭中断3/sys_ctx.osmr0=OSMR0;/3保存重要的寄存器3/...sys_ctx.psdr=PSDR;...PSPR=virt_to_phys(cpu_sa1100_resume);/3设置返回函数地址3/cpu_sa1110_do_suspend();/3进入睡眠3//3退出睡眠3/GPDR=sys_ctx.gpdr;/3恢复寄存器3/GRER=sys_ctx.grer;GFER=sys_ctx.gfer;GAFR=sys_ctx.gafr;...sti();/3启动中断3/return0;}
(2)实现各个外设的电源管理代码
利用Linux内核提供电源管理子系统,可以将iPAQ中的每个需要实现电源管理的外部设备纳入统一的管理。这需要在各个设备的驱动程序中使用电源管理子系统的接口函数(如2.1所描述)和实际的硬件操作代码,这里将以显示设备为例:
/3SA-1110framebuffer电源管理请求处理函数3/staticintsa1110fb_pm_callback(structpm_dev3pm_dev,pm_request_treq,void
3data){structsa1110fb_info3fbi=pm_dev-data;if(req==PM_SUSPEND||req==PM_RESUME){intstate=(int)data;if(state==0){set_ctrlr_state(fbi,C_ENABLE);/3进入D0模式,开启LCD控制器3/}else{set_ctrlr_state(fbi,C_DISABLE);/3进入D1-D3模式关闭LCD控制器.3/}}return0;}/3SA-1110framebuffer驱动初始化函数3/int__initsa1110fb_init(void){structsa1110fb_info3fbi;intret;.../3在电源管理子系统中注册3/fbi-pm=pm_register(PM_SYS_DEV,PM_SYS_VGA,sa1110fb_pm_callback);if(fbi-pm)fbi-pm-data=fbi;/3设置私有数据3/...returnret;}
3)实现电源管理设备这个设备实际是用于接受用户空间程序的控制所用,所以只需要简单的实现“ioctl”调用就可以了。
/3ioctl调用方法3/staticintdo_ioctl(structinode3inode,structfile3filp,u_intcmd,u_longarg){...switch(cmd){caseAPM_IOC_STANDBY:{pm_send_all(PM_SUSPEND,(void3)2);/3外设挂起3/
;}break;caseAPM_IOC_RESUME:{pm_send_all(PM_RESUME,(void3)0);/3外设唤醒3/}break;caseAPM_IOC_SUSPEND:{pm_send_all(PM_SUSPEND,(void3)2);/3外设挂起3/sa1110_suspend();/3CPU进入休眠模式3//3CPU醒来,继续执行3/pm_send_all(PM_RESUME,(void3)0);/3唤醒外设3/}break;default:return-EINVAL;}return0;}
,使用命令“mknod/dev/apmc2540”,可以在文件系统中建立起该设备的访问节点。该节点名为/dev/apm,是一个字符设备(c),主设备号为254,此设备号为0。
(4)编写用户空间电源管理程序
用户可以在适当的时候选择是否改变CPU的时钟频率和显示刷新率,是否关闭某些外部设备,是否使整个系统进入睡眠模式等等。这只需要使用系统调用“ioctl”对电源管理设备(/dev/apm)发送命令就可以了。intfd;...fd=open("/dev/apm",O_RDONLY);/3打开电源管理设备3/ioctl(fd,APM_IOC_SUSPEND,NULL);/3发送电源管理命令3/close(fd);/3关闭电源管理设备3/
实现iPAQ电源管理前后耗电量比较
实现电源管理以前:开启LCD,CPU处于空闲状态,大多数其他芯片关闭,功耗为470mW。实现电源管理以后:在电源管理前的基础上开启SDRAM的自动节能模式,功耗下降到280mW。然后降低LCD刷新率到30Hz,功耗下降到238mW。再把CPU频率降低到57.3MHz,功耗下降到172mW。关闭LCD,功耗下降到98mW。可见,通过本文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《针灸按摩基础》课件
- 2020-2021学年辽宁省铁岭市六校高一下学期期末联考地理试题
- 小学一年级口算题:20以内的加减混合
- 小学一年级20以内加减法试题口算速算练习题
- 2020年石油知识竞赛试题215题及答案
- 三年级上册25 灰雀
- 《红树湾营销报告》课件
- 《腾讯内外环境分析》课件
- 人的生殖和发育北师大版-课件
- 《焦点课题模板PU生产模式改善和环境治理》课件
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之4:4组织环境-4.2理解相关方的需求和期望(雷泽佳编制-2025B0)
- 2024年一级支行行长竞聘演讲稿例文(4篇)
- 健身房销售人员培训
- 建筑工程施工合同:游泳馆建设
- 中建中建机械顶管专项方案范本
- 机动车检测站程序文件(根据补充要求修订)
- 广东省广州市2022-2023学年高二上学期期末考试化学试题
- 人教版-六年级上数学-扇形统计图单元测试(含答案)
- 2023年题工会基础知识试题及答案
- 光伏运营维护管理方案
- 防冲撞升降柱安装合同
评论
0/150
提交评论