首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

WinCE电源管理应对移动嵌入式能耗瓶颈 03

WinCE电源管理应对移动嵌入式能耗瓶颈 03

第二个方式是应用程序请求电源状态不要低于给定的级别。
常见的例如:①关闭电源,应用程序通过调用GwesPowerOffSystem函数挂起系统,如函数void GwesPowerOffSystem(void)的调用就会挂起系统。② 关闭屏幕,如果系统是有色背光显示,那么主要的电源消耗不是CPU而是背光。在某一些环境下,一个应用程序运行时并不需要显示在屏幕上。例如音乐播放器应用程序,当用户听音乐的时候不关注屏幕,在这些情形下关闭背光将意味着提高电池寿命。当然,当用户想看屏幕时,任何关闭背光应用程序就需要一个简单的方式来重新打开屏幕。显示控制是通过Ext-Escape函数实现,这个函数允许应用程序打开或关闭显示。另外,WinCE没有一个统一的方式来控制背光的亮度,每个系统都有它自己的OEM特有方式来控制背光亮度。③打开系统电源,意思是说当被挂起的应用程序要再次运行时,必须要有一个方式来唤醒一个挂起的系统电源。方法可以是应用程序通过使用消息API(Notification API)把系统唤醒。在一般情况下,OEM厂商会分配一些中断条件以便电源打开或唤醒。
(3)防止系统关闭电源
另一方面,防止系统挂起也是一个重要的问题。WinCE系统通常被设置为当一段时间没有用户输入就自动挂起。因此,如果定时器到达预先的没有用户输入的间隔,系统会自动挂起。当要防止自动挂起时,应用程序可以周期性地调用这个函数:void WINAPI SystemIdleTimerReset (void),这个函数能重设WinCE用来监视用户输入的定时器。所以当一个应用程序需要更改超时值时,就可以通过调用SystemIdleTimerReset把挂起超时值改变。一般来说,WinCE系统维护三个超时值,防止电源被自动挂起可以使用SystemParametersInfo来查询这三个值,并在最短时间内返回调用SystemIdleTimerReset。如果超时值被设置为0,表示超时值被禁止。
(4)电源通知
最后,电源管理程序还有一个十分受欢迎的特点,就是可以在系统电源状态改变时通知应用程序,这可以让应用程序从手动检测电源状态中解脱出来。应用程序通过调用RequestPowerNotifications请求电源管理程序当电源状态改变的时候,发送一个通知给应用程序,电源管理程序再通过一个由应用程序建立的消息队列发送此通知。
总之,嵌入式电源管理在WinCE系统是一个快速发展的研究课题。它对移动嵌入式产品的设计具有关键性影响,一个高效的电源管理设计可以帮助移动嵌入式产品在市场竞争中脱颖而出,克敌制胜。
返回列表