WinCE电源管理应对移动嵌入式能耗瓶颈
时间:09-30
来源:互联网
点击:
伴随着移动嵌入式产品的普及,电源管理已经成为重要技术指标和产品的有机组成。典型移动嵌入式设备对能耗越来越敏感,电源管理技术正成为产品设计的关键所在。为了应对电源管理面临的挑战,如何设计出高效的嵌入式系统的电源管理已成为研究热点。
典型移动嵌入式系统能耗主要部件包括嵌入式微处理器CPU、内存、LCD及背光、电源转换部件、DSP、外设控制器等。在这些元件中,有些元件能耗固定,有些元件可在不同时间段工作并有多种可控的耗能状态,后者的有效使用成为嵌入式系统节能的关键所在。
1.什么是WinCE电源管理
(1)电源管理概念与方法
在电池供电的移动嵌入式系统中,一般采用高效率的电源芯片用于供电管理,或采用大容量的电池以解决能耗需求,但这两种技术的发展还无法满足移动嵌入式设备的动态功耗和静态功耗。有一种方法可以协调高性能与低功耗之间的矛盾,就是根据系统负载进行性能调节,通过停止某些模块的时钟和电源供应将能耗降至最低。
嵌入式系统按功率消耗由小到大分为睡眠(sleep)、空闲(idle)、运行(Run)等模式。大多时间内,在运行态(Run)时设备全部正常工作,而在睡眠与空闲模式时处理器则可以按照特定的模式进行相应的节能。因此,电源管理的目的是节能,基本节能方法是使系统适时的进出休眠状态。在节能状态下处理器挂起,主存储器运行在节能的自刷新模式,只有功耗管理电路、唤醒电路继续工作。比如用户按下On/Off按钮,或者监视用户活动的定时器超时,或者应用程序API都可以使得嵌入式系统休眠,当用户再次按下On/Off或者有其他唤醒中断发生时,系统就会退出休眠。因此,电源管理模块和用户活动情况密不可分,电源管理是用户活动所驱动的。
WinCE处理用户与系统交互的部分是GWES,所以早期电源管理工作也是由GWES来实现。但GWES提供的电源管理模块功能过于粗糙死板,所有子设备只能有On和Suspend状态,应用程序无法得到任何状态转换通知。后来,WinCE引入了电源管理PM(Power Manager)模块,用以替代GWES中的电源管理功能,新的电源管理模块提供更完整和灵活的功能,如子设备电源状态可以单独设定,应用可以获得电源通知等。因此,电源管理器负责管理设备电源,并且与不支持电源管理功能的设备和应用兼容,在内核OAL层、设备驱动程序和应用程序之间充当中间人角色。
(2)电源管理器结构
在使用电池供电的WinCE系统中,正确设计电源管理十分关键。在功能上大致可以分为系统级电源管理、动态电源管理、设备电源管理等三类。通常,应用程序在大多数时间都不需要关注WinCE 设备的电源损耗,但是在某些时候要注意这些损耗。WinCE电源管理器通过一个名为Pm.dll的动态链接库与设备管理器Device.exe链接。Pm.dll动态链接库支持三类接口:一是驱动程序接口:为需要进行电源管理的设备的驱动程序使用;二是应用程序接口:为需要利用电源管理的应用程序使用;三是提醒接口(Notification):为需要接受电源事件提醒的应用程序使用。
例如,WinCE系统先检查任务负载情况,如果没有需要运行的任务,则一般进入空闲节能状态等待唤醒,在空闲一段时间后进入深度睡眠,挂起到RAM中或者硬盘上。在运行任务期间,WinCE还可以利用硬件提供的电源管理功能动态调节芯片运行电压和频率,对系统进行更加细致的电源管理。
2.WinCE电源管理的分类
(1)系统电源状态
Win CE系统电源状态更多的是代表系统电源的一种配置方案,它是各个子设备电源配置的集合。它设定一种可能出现的情景,事先拟定了此情景下电力分配策略(哪些子设备打开,哪些子设备关闭)。WinCE支持以下几种电源状态:①ON状态,用户在主动使用设备。②UserIdle状态,用户与设备停止交互,但仍有可能使用设备。③SystemIdle状态,在经过一段时间的UserIdle后进入此状态,但是驱动和系统仍然活动。④Suspend状态,当驱动程序和系统进程不再与系统交互时进入此状态。⑤ColdReboot和Reboot状态,冷启动后系统电源状态。
因此,在这个基础上技术人员可以根据自己的平台特点,增加新的策略来满足不同移动嵌入式产品的需要。常见的做法是设计一个电源按键的流驱动,当检测到按键时候呼叫API将系统电源转换到Suspend,如On/Off按键。还有就是加入背灯控制,比如在On状态下请求显示驱动打开背灯,在UserIdle和SystemIdle状态下请求显示驱动关闭背灯。
(2)设备电源管理
WinCE加入了高级的电源管理组件功能,它允许每个外设具有自己的电源状态,这有别于一般的系统电源状态(System Power State),故被称作设备电源状态(Device Power State)。现在的应用程序一般都有能力设置个别外设的电源状态,比如一个文件传输程序,在保持串口或者蓝牙端口正常通讯时,可以关闭显示屏幕和背光,这就为实现更高级别的动态电源管理提供了可能。
电源管理器和支持电源管理的设备之间的交互包括两种机制:一是电源管理器到驱动程序,电源管理器使用DeviceIoControl()函数向设备驱动程序发送I/O控制(IOCTLs),因此设备必须能响应电源管理器的查询、状态设置等IOCTLs。二是驱动程序到电源管理器,驱动程序使用DevicePower Notify()函数与电源管理器交互,例如请求电源管理器把它的设备置于某种状态,如果电源管理器接受该请求则通过发送IOCTL_POWER_SET等IOCTLS来进行设置。
典型移动嵌入式系统能耗主要部件包括嵌入式微处理器CPU、内存、LCD及背光、电源转换部件、DSP、外设控制器等。在这些元件中,有些元件能耗固定,有些元件可在不同时间段工作并有多种可控的耗能状态,后者的有效使用成为嵌入式系统节能的关键所在。
1.什么是WinCE电源管理
(1)电源管理概念与方法
在电池供电的移动嵌入式系统中,一般采用高效率的电源芯片用于供电管理,或采用大容量的电池以解决能耗需求,但这两种技术的发展还无法满足移动嵌入式设备的动态功耗和静态功耗。有一种方法可以协调高性能与低功耗之间的矛盾,就是根据系统负载进行性能调节,通过停止某些模块的时钟和电源供应将能耗降至最低。
嵌入式系统按功率消耗由小到大分为睡眠(sleep)、空闲(idle)、运行(Run)等模式。大多时间内,在运行态(Run)时设备全部正常工作,而在睡眠与空闲模式时处理器则可以按照特定的模式进行相应的节能。因此,电源管理的目的是节能,基本节能方法是使系统适时的进出休眠状态。在节能状态下处理器挂起,主存储器运行在节能的自刷新模式,只有功耗管理电路、唤醒电路继续工作。比如用户按下On/Off按钮,或者监视用户活动的定时器超时,或者应用程序API都可以使得嵌入式系统休眠,当用户再次按下On/Off或者有其他唤醒中断发生时,系统就会退出休眠。因此,电源管理模块和用户活动情况密不可分,电源管理是用户活动所驱动的。
WinCE处理用户与系统交互的部分是GWES,所以早期电源管理工作也是由GWES来实现。但GWES提供的电源管理模块功能过于粗糙死板,所有子设备只能有On和Suspend状态,应用程序无法得到任何状态转换通知。后来,WinCE引入了电源管理PM(Power Manager)模块,用以替代GWES中的电源管理功能,新的电源管理模块提供更完整和灵活的功能,如子设备电源状态可以单独设定,应用可以获得电源通知等。因此,电源管理器负责管理设备电源,并且与不支持电源管理功能的设备和应用兼容,在内核OAL层、设备驱动程序和应用程序之间充当中间人角色。
(2)电源管理器结构
在使用电池供电的WinCE系统中,正确设计电源管理十分关键。在功能上大致可以分为系统级电源管理、动态电源管理、设备电源管理等三类。通常,应用程序在大多数时间都不需要关注WinCE 设备的电源损耗,但是在某些时候要注意这些损耗。WinCE电源管理器通过一个名为Pm.dll的动态链接库与设备管理器Device.exe链接。Pm.dll动态链接库支持三类接口:一是驱动程序接口:为需要进行电源管理的设备的驱动程序使用;二是应用程序接口:为需要利用电源管理的应用程序使用;三是提醒接口(Notification):为需要接受电源事件提醒的应用程序使用。
例如,WinCE系统先检查任务负载情况,如果没有需要运行的任务,则一般进入空闲节能状态等待唤醒,在空闲一段时间后进入深度睡眠,挂起到RAM中或者硬盘上。在运行任务期间,WinCE还可以利用硬件提供的电源管理功能动态调节芯片运行电压和频率,对系统进行更加细致的电源管理。
2.WinCE电源管理的分类
(1)系统电源状态
Win CE系统电源状态更多的是代表系统电源的一种配置方案,它是各个子设备电源配置的集合。它设定一种可能出现的情景,事先拟定了此情景下电力分配策略(哪些子设备打开,哪些子设备关闭)。WinCE支持以下几种电源状态:①ON状态,用户在主动使用设备。②UserIdle状态,用户与设备停止交互,但仍有可能使用设备。③SystemIdle状态,在经过一段时间的UserIdle后进入此状态,但是驱动和系统仍然活动。④Suspend状态,当驱动程序和系统进程不再与系统交互时进入此状态。⑤ColdReboot和Reboot状态,冷启动后系统电源状态。
因此,在这个基础上技术人员可以根据自己的平台特点,增加新的策略来满足不同移动嵌入式产品的需要。常见的做法是设计一个电源按键的流驱动,当检测到按键时候呼叫API将系统电源转换到Suspend,如On/Off按键。还有就是加入背灯控制,比如在On状态下请求显示驱动打开背灯,在UserIdle和SystemIdle状态下请求显示驱动关闭背灯。
(2)设备电源管理
WinCE加入了高级的电源管理组件功能,它允许每个外设具有自己的电源状态,这有别于一般的系统电源状态(System Power State),故被称作设备电源状态(Device Power State)。现在的应用程序一般都有能力设置个别外设的电源状态,比如一个文件传输程序,在保持串口或者蓝牙端口正常通讯时,可以关闭显示屏幕和背光,这就为实现更高级别的动态电源管理提供了可能。
电源管理器和支持电源管理的设备之间的交互包括两种机制:一是电源管理器到驱动程序,电源管理器使用DeviceIoControl()函数向设备驱动程序发送I/O控制(IOCTLs),因此设备必须能响应电源管理器的查询、状态设置等IOCTLs。二是驱动程序到电源管理器,驱动程序使用DevicePower Notify()函数与电源管理器交互,例如请求电源管理器把它的设备置于某种状态,如果电源管理器接受该请求则通过发送IOCTL_POWER_SET等IOCTLS来进行设置。
嵌入式 电源管理 LCD DSP 电路 电压 蓝牙 相关文章:
- 低功耗嵌入式实现的方方面面(04-30)
- 功率与控制的结合使LED照明方案灵活、简便(10-20)
- S3C2440A嵌入式手持终端电源管理系统设计(01-11)
- 几种实用的低电压冗余电源方案设计(01-26)
- 基于先验预知的动态电源管理技术(03-28)
- 基于CAN通信的电源监控系统的设计(04-06)