北极星

搜索历史清空

  • 水处理
您的位置:电网信息化物联网技术正文

嵌入式系统电源管理软件比较

2011-10-17 17:24来源:北极星电力软件网关键词:管理软件电源管理传感器收藏点赞

投稿

我要投稿

·电源管理器结构

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()函数告诉电源管理器它为独立的子设备驱动处理电源请求。例如总线设备驱动或某些设备驱动代理。

电源管理器和支持电源管理的设备之间的交互包括两种机制:(1)电源管理器到驱动程序,电源管理器使用DeviceIoControl()函数向设备驱动程序发送I/O控制(IOCTLs)。设备必须能响应管理器的电源管理能力查询、状态设置等IOCTLs。(2)驱动程序到电源管理器,驱动程序使用DevicePower Notify()函数与电源管理器交互,请求电源管理器把它的设备置于某种状态。如果电源管理器接受该请求则通过发送IOCTL_POWER_SET等IOCTLS来进行设置。

·应用程序与电源管理器交互

Windows CE应用程序与电源管理有两种交互机制:(1)应用程序接口,用以获取当前系统和设备的电源状态;(2)电源事件提醒接口,提供电源事件的提醒。应用程序接口中,GetSystemPowerState()函数用来返回当前系统电源状态。SetSystemPowerState()函数可被OEM程序或者其他应用程序调用,来把系统电源状态设置为需要值。SetDevicePower()用来设置设备电源状态。为了实现提醒接口,应用程序还得通过createMsgqueue()函数建立消息队列,将其句柄传给电源管理器。而后电源管理器把提醒发送到消息队列中,调用者可选择可用提醒的一个子集进行响应。

·OAL层实现

在Windows CE中,在OAL层,电源管理需要实现OEmidle()和OEMPowerOff()函数。当系统中没有任何可调度的线程时,操作系统调用OEmidle()函数,可以在其中实现降低处理器的频率以达到省电的目的。当有外部中断时,CPU可从其中恢复。OEMPowerOff函数基于硬件平台实现,进行CPU寄存器保存、设置及唤醒恢复等功能。

嵌入式Linux

嵌入式Linux电源管理结构

Linux标准内核标准电源管理有ACPI、APM等机制。这些机制依赖于PC机的BIOS功能实现。嵌入式系统一般都没有实现BIOS支持,对其能耗管理机制需要进行其他定义。消费类电子产品联盟—CELF对能耗管理作了定义,其框架如图4所示。

图4 CELF电源管理规范

CELF的能耗管理框架分为内核层和用户层。内核层又划分为体系结构无关层和体系结构相关层。体系结构相关层主要提供可管理硬件支持,例如处理器电压和运行频率调节,各种总线运行频率管理,设备的关断管理等。内核体系结构无关层在体系结构相关层的基础上为用户层提供APIs,进行各种能耗管理功能的支持。它包含一个能耗管理(PM)引擎,根据系统任务负载选择系统运行状态;提供能耗管理的挂起和恢复方法;提供VST技术,通过估计下次准确唤醒时间来确保在进入深度睡眠时,不被原来固定时间产生的定时器中断唤醒;还包含了各种外部设备关闭/开启的操作逻辑。

用户通过编制具有一定智能的管理策略驻留程序,利用系统提供的能耗管理机制,进行有效的系统能耗管理。

此外,在某些实现中,也可以将ACPI中的BIOS调用进行映射,在内核用软件实现回调函数,用以支持没有BIOS的电源管理。

嵌入式Linux内核电源管理实现分析

投稿与新闻线索:陈女士 微信/手机:13693626116 邮箱:chenchen#bjxmail.com(请将#改成@)

特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。

凡来源注明北极星*网的内容为北极星原创,转载需获授权。

管理软件查看更多>电源管理查看更多>传感器查看更多>