基于Linux的便携嵌入式设备电源管理解决方案.docxVIP

基于Linux的便携嵌入式设备电源管理解决方案.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 1 PAGE 1 基于Linux的便携嵌入式设备电源管理解决方案 摘要:本文分析了嵌入式设备现有的节电技术和Linux系统的电源管理机制,并以iPAQ为例提出了一套使用以上机制来实现便携嵌入式设备的电源管理解决方案。 (2)在对硬件进行操作之前调用pm_access (这样会保证设备已被唤醒并且处于ready状态) 。 (3)编写自己的pm _callback函数。开发人员应当在设备或系统进入suspend状态时保留设备和系统的上下文到平安的地方,并在设备或系统re -sume时恢复其上下文,使之能够连续运行,编写pm_callback函数是驱动实现设备电源管理的重点。 (4)当设备不在被使用的时候调用pm_dev_idle函数,这个操作是可选的,可以增加设备idle状态的监测力量。 电源管理设备 将设备加入到电源管理子系统后,该设备就已经有了处理电源管理恳求的力量,但是系统的电源管理行为并不会主动发生。因此还需要一个电源管理设备来接受用户恳求,产生电源管理行为。这里所指的设备并不是一个真实的硬件设备,而是一个在Linux系统空间里接受用户掌握的虚拟设备,它可以是一个简洁的字符型设备。有了这个设备,就可以便利的实现来自于用户空间的电源管理恳求和方案。Linux电源管理行为过程如图1所示。 图1 Linux电源管理行为过程 Linux的电源管理机制在iPAQ上的应用 iPAQ是康柏公司(现在已和惠普公司合并)推出的基于StrongARM CPU 的高性能掌上电脑,不仅供应了卓越的个人信息管理工具,还集成了较为强大的多媒体功能和其他消遣功能。Linux 2.4的内核已经被胜利的移植到上面,基于Linux系统众多的应用软件也已经或正在被移植。 iPAQ硬件耗电量分析 要实现对iPAQ 耗电量的有效调整,就必需清晰各个硬件耗电量,从而确定出需要管理和调整的对象。iPAQ上的各种硬件的耗电量比例如图2所示。 图2 iPAQ上的各种硬件的耗电量比例 可见, 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电源管理和耗电量调整 确定了要调控的对象和方法后,需要通过L inux的电源管理机制和上层应用软件来实现对这些硬件设备的掌握。这包括编写CPU电源管理代码、外设驱动程序及电源管理代码、电源管理设备实现代码和用户空间掌握应用代码。 (1)实现SA - 1110进入Sleep电源模式的代码 SA -1110有Normal, Idle, Sleep 等几种电源模式,其中在Sleep模式下, SA -1110具有的电力消耗。由于SA -1110 进入Sleep 模式后,到外设和SDRAM的时钟将停止,多数的寄存器信息将丢失。因此需要事先将重要的寄存器值保存到内存中,并将SDRAM设置为自刷新模式,以保持SDRAM中的数据。当SA -1110 收到硬件中断等唤醒源退出Sleep模式后不会接着执行从前未执行的指令,而是回到初始状态去执行启动代码。因此为了让CPU在唤醒后能够持续的工作,需要将返回代码的地址保存到PowerManager Scratch Pad Register ( PSPR)寄存器中,使得启动代码能让CPU重新跳到返回代码的地址处,执行返回代码从而回到睡眠前的工作。 SA - 1110进入Sleep模式的代码片断如下: extern void cpu_sa1110_resume ( void) ; /3 SA - 1110返回函 数3 / extern int cp

文档评论(0)

x-668 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档