Windows Mobile电源管理分析与实现

最新更新时间:2012-04-21来源: 电源网关键字:Mobile电源  分析  实现 手机看文章 扫描二维码
随时随地手机看文章

如今在以数码消费产品为代表的嵌入式系统领域,大多数系统采用电池供电,由于电池容量有限,这使得实现产品的低功耗,延长待机时间成为一个重要的课题。在已确定硬件电路功耗的情况下,提高电池电源的使用效率是实现低功耗的一个重要任务,其基本思想是在系统中没有任务等待运行时,把系统置于尽可能低的能量状态,等到有任务需要执行时,再将其快速唤醒,尽可能有效地利用功耗。

1 Windows Mobile中的电源管理

WinCE系列操作系统中的电源管理模块正是出于后者的考虑而出现的,图1为电源管理(Power Manager)的运行机制。该模块根据系统实际运行情况,以CPU为中心,管理器件和外设的功耗状态,实现系统在不同电源状态间的转换,从而在保证系统性能的前提下降低功耗。而Windows Mobile系统针对其专用于移动通信平台的特点,对电源管理部分做了进一步的定制,使其具有更好的效能,进一步提高系统的电源效率。

Power Manager的实现在软件上需要OS内核、驱动层及应用层的协作,对于预先定义好的系统电源状态,Power Manager将这些状态映射到具体的CPU电源状态和设备电源状态,在系统电源状态切换时就会执行对应的CPU和外设的电源状态切换操作。

 

1.1 电源管理与系统其他部分的交互

在Windows Mobile中Power Manager以名为PM.dll的动态链接库形式在启动时被设备管理器De-vice.exe加载,如图2所示。

 

应用程序可通过API申请将系统电源置于一定的状态,同时也可申请将指定设备设置于特定的电源状态,应用程序也可以申请电源状态通知,以便在系统电源状态切换时收到消息以执行对应的操作。当需要切换系统电源状态时,电源管理模块与电源管理的设备通信,进而调用这些设备的电源相关函数,实现对这些设备的电源管理,同时如果有应用程序或设备驱动申请了电源状态通知,则电源管理模块会向消息队列中发送消息。

[page]1.2 Windows Mobile中的电源状态以及状态间的切换

Windows Mobile有两个版本,SmartPhone和Pocket PC,这里采用是Windows Mobile 6的PocketPC,它定义了以下几个电源状态(Windows Mobile的电源状态是不能像WinCE那样再定制的):

ON:用户与系统交互时的状态;

Backlight OFF:在一段时间内(默认15 s),如果一直没有用户操作就关闭背光,这时其他的设备都没变化;

Screen OFF:一般由某些程序指定,才进入这个状态。比如音乐播放器程序,当你听音乐时按下某个键可以将屏幕关闭;

Suspend:Pocket PC的睡眠模式,几乎所有设备都被关闭,直到某个硬件设备触发中断才将系统唤醒,这是Pocket PC系统中功耗最低的一个状态,对这个状态的实现直接影响到待机时间;

Resuming:Pocket PC被唤醒后的状态,这时屏幕是关闭的,并启动一个15 s的计时器,在这段时间内决定接下来进入哪个状态,如果计时器超时则重新回到睡眠状态;

Unattended:这个状态只在Pocket PC中被使用,用户对其不会有所察觉,即程序在后台执行。

这里可以用系统电源状态机来简单地描述Win-dows Mobile的电源管理策略。以Pocket PC为例,系统电源状态机如图3所示。

 

系统内部的电源管理器负责协调电源状态的转换,电源状态的转换主要由计时器超时(Timeout)、电源键事件(ON/OFF Event)、用户操作(User Activity)等方式触发。

2 PXA270平台上电源管理的实现

电源管理的实现,涉及到系统中软件硬件的互相配合。对于软件来说,涉及到各个层面,包括Windows Mobile内核和设备驱动,这二者主要负责电源管理在处理器和物理外设等硬件上的实现,另外有些应用程序也会有涉及,这主要是系统电源状态与具体应用需求之间的协调。这里应用的平台是开发的基于PXA270的Windows Mobile智能手机平台,该平台搭载了NXP的基带处理器及其外围电路。以实现GSM通信。另外,还有蓝牙、摄像头等功能模块,因此对该平台进行电源管理优化是十分必要的。

2.1 内核电源管理的实现

2.1.1 Suspend/Restlume模型

对于SmartPhone,采用的是AlwaysOn模型,只是在工作一段时间后关闭背光和屏幕,但是系统仍在运行。该平台实现的是Pocket PC,采用Suspend/Re-sume模型,在系统处于空闲时,可将系统置于Staspend状态,此时系统处于最低的功耗状态,在必要时再将其唤醒。在两个模型之间需要权衡,虽然Always On没有休眠模式,但是Suspend/Resume在Suspend和ON之间切换也是需要消耗大量能量的。系统电源状态的切换最终会导致内核中OEM函数的调用,下面重点介绍内核中电源管理的实现,在Windows Mobile的样例BSP中有示例代码框架在Off.c和Xllp_SuspendAn-dResume.c可供参考。

2.1.2 Suspend流程

在平台实现上,切换至Suspend状态时会调用OEMPowerOff函数,此时会将外设关闭,将PXA270处理器置于sleep模式,OEMPowerOff中Suspend的具体流程,即Xllp_SuspendAndResume函数如下:

(1)设置当前程序状态寄存器CPSR的I位和F位,以禁止IRQ和F1Q中断;

(2)根据第一步中获得的地址,将Power,Inter-rupt,GPIO,CLOCK等硬件平台及OS相关的寄存器保存在Xllp_SuspendAndResume函数的全局变量中,即将这些寄存器的值保存于SDRAM中;

(3)保存ARM架构下处理器模式的相关寄存器值,除了User模式的6种处理器模式,需保存的是SP,LR,和SPSR。另外,FIQ模式还需保存R8~R12。为了使用stmdb批拷贝指令,在此使用“伪堆栈”,即用SDRAM中的物理空间来模拟堆栈;

(4)配置MDREFR寄存器,设置好SDRAM的自刷新频率。在sleep模式下,SDRAM将处于自刷新状态以维持之前保持的状态数据,供系统唤醒时恢复到sus-pend之前的状态;

(5)利用PSPR寄存器来保存Resume参数的物理地址,如重启原因、睡眠模式等,PSPR的数据在sleep时不会丢失;

(6)配置PWER,PRER或PFER寄存器,以使能特定的唤醒源,这里设置RTC、来电RING中断和电源键的唤醒;

(7)保存当前处理器模式的状态寄存器,保存MMU寄存器,保存Restlme的返回地址XllpRes-umePhase3,回写Cache,配置CP14寄存器CR7,让处理器进入sleep模式。到此,PXA270进入sleep模式,系统处于Suspend电源状态。

[page]2.1.3 Resume流程

 

总的说来,Resume流程与Suspend是相反的,处理器初始化之后,会载入Suspend之前保存在SDRAM中的各种状态参数,恢复之前状态,其流程简要介绍如下:

(1)当已使能的唤醒事件发生时。处理器会从BootLoader启动,进行基本的硬件初始化之后。会判断是Reset,还是sleep Resume,如果是后者,则会跳转到Xllp_ResumePhase2A;

(2)在Xllp_ResumePhase2A中首先会将保存在PSPR中的参数取出,检查无错误后,重新配置好MMU,载入处理器状态寄存器和堆栈,跳转至XllpRe-sumePhase3;

(3)在XllpResumePhase3载入所在环境的处理器状态寄存器,接着逐级返回至OEMPowerOff函数,在OEMPowerOff函数中会获得唤醒源,然后退出;

(4)此时系统由Power Manager置于Resuming状态,Power Manager 根据唤醒源判断是否将系统置于ON,还是继续Suspend。

此时,系统状态已经恢复至睡眠之前,结束了Re-sume流程,完成对系统的唤醒。

2.2 设备驱动电源管理的实现

除了对处理器的电源管理,Power Manager还有一个主要工作就是平台上设备的电源管理。对于只有ON和OFF两种电源状态的设备,Power Manager通过DeviceIOControl在Suspend和Resuming时分别调用各设备驱动中实现的PowerUp和PowerDown函数,以开启和关闭设备。在该平台上大多数设备都属于这种管理方式,包括LCD,Aladio Codec等,这些工作主要是在Wince流驱动的IOControl中执行一些开启或者关闭处理器I/O电源的操作。

对于GSM和蓝牙等较复杂的设备,需要能及时唤醒,如在系统Suspend来电时,GSM模块需快速唤醒并做出响应,因此这些设备也支持sleep等模式。在进入Suspend会相应调用这些设备驱动的sleep函数,进入设备的省电模式,而在Resuming时也会调用对应的退出sleep的函数,以实现快速唤醒。

2.3 应用程序电源管理的实现

在此以自己编写的基于DirectDraw的照相程序为例来说明应用程序中电源管理的实现。

首先,在开启照相程序时,预览一段时间没有操作后,不希望按照定时器的值进入Suspend,此时需定时修改SuspendTimeout,以阻止系统进入睡眠状态。具体做法是:

启动一个30 s的定时器,每30 s调用一次SystemIdleTimerReset函数。另外,由于该照相程序是Overlay显示效果,在进入拍照程序后,如果按下电源键进入Suspend状态,再唤醒时系统仍处于拍照程序,但是由于PXA270的LCDController没有再次创建Overlay层,因此程序不能显示图像。从使用者的角度考虑,在系统Reume之后照相程序应能恢复正常。做法如下:在程序中创建一个线程,用CreateMsgQueue创建一个消息队列,调用RequestPowerNotifications申请获得电源管理消息,然后调用WaitForSingleOb-ject等待通知,当收到Suspend的消息时,对程序窗口发送重新初始化Overlay的消息,在Resume后,程序会马上执行重新初始化的流程,照相程序恢复正常。

3 数据分析

对系统运行时几个典型电源状态的电流值做了测量,数据如表1所示。

 

4 结 语

对于1 200 mA/h的电池,该智能手机平台能达到160 h左右的理论待机时间,以及3 h左右的通话时间。另外,睡眠及唤醒的响应时间也在1 s左右,表明Power Manager达到了提高电池电源使用效率的目标,基本满足实际应用的需求。


关键字:Mobile电源  分析  实现 编辑:冰封 引用地址:Windows Mobile电源管理分析与实现

上一篇:研究关于电源管理的开关频率与电磁干扰之间的平衡
下一篇:能量收集从满足电源管理需求开始

推荐阅读最新更新时间:2023-10-18 16:39

基于ARM的MP3播放器设计与实现
摘要:为了克服目前市场上MP3储存量小,价格昂贵,操作复杂,播放歌曲的单一性等不足,设计了一款基于ARMLPC213l的MP3播放器。该播放器主要由音频解码模块和音乐文件存取模块2部分组成。实验结果表明,该设计实现了存储在U盘里按自己设定的顺序自动播放歌曲,并拥有储存量大,价格较低,操作简单,播放种类较多等特点,具有一定的实用和推广价值。 关键词:MP3音乐播放器;ARM LPC2131;VS1003;CH375 0 引言 MPEG(Moving Picture Experts Group)是运动图像专家组的英文缩写。MP3是MPEG Audio Layer-3的缩写,即MPEG第3层音频编码标准,使用MP3标准对音频数据
[工业控制]
基于ARM的MP3播放器设计与<font color='red'>实现</font>
可在低频~5MHZ范围内振荡的高频电路及工作原理分析
电路的功能 射极耦合多谐振荡器可作为大变化范围的压控振荡器使用。通过对射极电流进行控制,便可直接实现FM调制。改变电容器C2,频率范围可为数赫兹~5MHZ。此外,本电路作为VCO使用时,采用0~5V的控制电压,可获得约15倍以上的变化范围。 电路工作原理 TT2、TT3是射极耦合的多揩振荡电路,在射极和地之间接耦合电阻,蔌象本电路那样,增加TT4和TT5组成的恒流电路,用基极电压对电流进行控制。二极管D2和D3为箝位地极管,可提高开关转换速度。 采用图中的参数,偏压为5V时,可用下式算出振荡频率,即FO≈3.3*10的3次方/C2。对环境温度变化呈正的温度系数,这是因为晶体管的VBE温度系数为负,所以射极电流
[嵌入式]
利用EPP接口协议实现高速数据通信
摘要:如何实现PC与单片机系统间的高速数据通信,是测量控制系统中经常遇到的难题。本文系统地介绍利用EPP接口协议实现高速数据通信的原理,并从硬件、软件两方面给出一个应用EPP接口协议的设计实例。 关键词:单片机系统 高速数据通信 EPP 前言 单片机系统中常常需要具备与PC机通信的功能,便于将单片机中的数据传送到PC机中用于统计分析处理;有时又需要将PC机中的数据装入单片机系统中,对单片机程序进行验证和调试。目前常用的通信方式是串行通信,但传输速率太低,以9600bps计算,传输1MB至少需要10min(分钟)以上。并行通信克服了串行通信传输速率低的缺点。标准并行口SPP(Standard Parallel Port)方式
[应用]
基于USB接口的通用测试仪的设计与实现
   引言   在许多工业控制和数据采集系统中,为了实现系统的小型化和便携化,通常采用上下位机形式的主从式结构。   由于MCU(微控制器)成本低,编程灵活、方便,实时性强,且具有一定的智能,因而通常使用它作为下位机的主控芯片,负责对现场数据的采集与传输,并控制相应的执行机构。上位机一般使用普通的PC机、笔记本电脑或工控机,负责对下位机传来的数据进行分析处理, 并根据处理结果控制下位机的操作。上下位机之间的数据通信接口目前一般使用RS-232和USB总线接口标准,相对于RS-232,USB 具有高速传输、热插拔、即插即用等优点。在本系统中,为了保证下位机高速采样数据能及时传送给上位机进行分析处理,我们采用USB总线来
[测试测量]
基于USB接口的通用测试仪的设计与<font color='red'>实现</font>
HFC使用EPON技术是实现三网融合最佳途径
     一、前言     2005年10月11日《中共中央关于制定国民经济和社会发展第十一个五年规划的建议》中指出“宽带通信网、数字电视网和下一代互联网等信息基础设施建设,推进‘三网融合’,健全信息安全保障体系。”虽是一句话,但引起了社会的广泛关注,它给了通信界一个重大的政策信号。     “三网融合”是指电信网、计算机网、广播电视网在技术上趋向一致;在网络层上互联互通;在业务层上互相渗透和交叉;在应用层上趋向统一的通信协议,有利于网络资源实现最大程度共享;在经营上互相竞争,互相合作。整个网络向下一代网络演进,这是网络发展的必然趋势。同时也揭开了各通信网络运营商从单向业务竞争转向全业务竞争,乃至网络间各个层面的全方位的
[嵌入式]
Mali™-G51 GPU助主流手机实现卓越性能
高端移动设备可以满足我们对尖端科技的无限渴望,但中端主流手机也不该是廉价的代名词,理应具备一定水平的性能表现和相对先进的功能。尽管高端产品会获得更高的媒体关注,但在全球智能手机市场占据半壁江山的依旧是主流手机,而非高端设备。在为这一细分市场生产所需的高容量芯片时,系统芯片面积对最终成本影响很大。为了在预算范围内保证一定的质量性能,芯片面积已然成为降低成本的关键。 作为Bifrost创新架构下的第二款GPU,Mali-G51是首款基于ARM® 高面积效率路线图开发的Bifrost GPU。采用全新ARM带宽和功效技术,芯片面积精简,Mali-G51是市面上迄今为止成本效率最高的GPU产品,其面积效率和能效较Mali-T830提升达均
[手机便携]
RSA500A系列频谱分析仪的性能特点及应用范围
RSA500系列提供了实时频谱分析功能,解决频谱管理人员、干扰搜寻人员和网络维护人员面临的问题,他们需要追踪查找困难的干扰源,维护RF网络,保留工作记录。系统核心是基于USB的RF频谱分析仪,它捕获40MHz带宽,在严酷的环境中实现优异的保真度。由于70dB动态范围及高达7.5GHz的频率范围,您可以满怀信心地在测量结果中考察关心的所有信号。USB形式可以您的手中不再负重,而代以轻便的Windows平板电脑或笔记本电脑。您手里拿着的是轻便的PC,而不是很重的频谱分析仪,您可以行动起来更快,电池续航时间更长,完成工作更迅速。 选配跟踪发生器可以测量增益/损耗,迅速测试滤波器、双工器和其他网元,您可以按需增加电缆和天线的VSWR、
[测试测量]
以STM32F4为控制核心的四轴航拍飞行器的设计与实现
摘要 本设计是基于STM32F4的四轴航拍平台。以STM32F407为控制核心,四轴飞行器为载体,辅以云台的航拍系统。硬件上由飞控电路,电源管理,通信模块,动力系统,机架,云台伺服系统组成。算法上采用简洁稳定的四元数加互补滤波作为姿态解算算法,PID作为控制器,实现飞行,云台增稳等功能。具有灵活轻盈,延展性,适应性强好等特点。 引言 四轴飞行器是一种利用四个旋翼作为飞行引擎来进行空中飞行的飞行器。进入20世纪以来,电子技术飞速发展四轴飞行器开始走向小型化,并融入了人工智能,使其发展趋于无人机,智能机器人。 四轴飞行器不但实现了直升机的垂直升降的飞行性能,同时也在一定程度上降低了飞行器机械结构的设计难度。四轴飞行器的平
[单片机]
以STM32F4为控制核心的四轴航拍飞行器的设计与<font color='red'>实现</font>
小广播
最新电源管理文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved