ARM 与国家半导体(NS)开发出了先进的能量管理解决方案,智能能量管理器(IEM)预测软件决定了处理器可以运行的最低性能级别,同时,通过智能能量控制器(IEC)的帮助、通过自适应功率控制器(APC)与外部能量管理单元(EMU)一起工作,使处理器运行在能保证应用软件正确运行的最低电压和频率下。 典型嵌入式系统能耗组成
Windows CE从4.0版本引入电源管理器(Power Manager)来提供管理电源框架。 电源管理器负责管理设备电源,提高操作系统整体能耗效率,并且与不支持电源管理功能的设备和应用兼容,在内核OAL层、设备驱动程序和应用程序之间充当中间人角色。电源管理器还严格区分系统的电源状态与设备的电源状态,让一些智能设备可管理自己的电源状态。
·电源管理器结构
Windows CE电源管理器PM.DLL直接与设备管理器Device.exe链接,并支持三个接口:
·驱动程序接口:被需要进行电源管理的设备的驱动程序使用。
·应用程序接口:被需要利用电源管理的应用程序使用。
·提醒接口(Notification):被需要接受电源事件提醒的应用程序使用。
电源管理器直接或间接地与应用程序和驱动程序交互。电源管理器与驱动程序主要通过驱动程序接口进行交互,与应用程序通过API和提醒接口进行交互,如图3所示。
Windows CE系统电源状态的改变可以作为一个OEM事件,或者通过OEM的应用程序和工具调用SetPowerState()函数产生。Windows CE支持以下几种电源状态:(1)ON状态,用户在主动使用设备。(2)UserIdle状态,用户与设备停止交互,但仍有可能使用设备。(3)SystemIdle状态,在经过一段时间的UserIdle后进入此状态,但是驱动和系统仍然活动。(4)Suspend状态,当驱动程序和系统进程不再与系统交互时进入此状态。(5)ColdReboot和Reboot状态,冷启动后系统电源状态。
·设备电源管理
Windows CE设备电源状态管理和系统相分离。驱动程序需要实现:(1)响应电源管理器的请求,报告它的电源能力。(2)处理电源管理器发送的电源请求。(3)启动后给设备加电。(4)关闭时给设备停止供电。(5)如果它可以唤醒系统,则为设备启用唤醒功能。设备还可以通过调用RegisterPower Relationship()函数告诉电源管理器它为独立的子设备驱动处理电源请求。例如总线设备驱动或某些设备驱动代理。
Windows CE应用程序与电源管理有两种交互机制:(1)应用程序接口,用以获取当前系统和设备的电源状态;(2)电源事件提醒接口,提供电源事件的提醒。应用程序接口中,GetSystemPowerState()函数用来返回当前系统电源状态。SetSystemPowerState()函数可被OEM程序或者其他应用程序调用,来把系统电源状态设置为需要值。SetDevicePower()用来设置设备电源状态。为了实现提醒接口,应用程序还得通过CreateMsgqueue()函数建立消息队列,将其句柄传给电源管理器。而后电源管理器把提醒发送到消息队列中,调用者可选择可用提醒的一个子集进行响应。