一种基于事件与休眠定时器的低功耗管理方法及系统技术方案

技术编号:31083798 阅读:12 留言:0更新日期:2021-12-01 12:32
一种基于事件与休眠定时器的低功耗管理方法及系统,该方法包括以下步骤,创建系统休眠定时器,启动所述休眠定时器并开始计时;若发生触发类事件则将所述休眠定时器计数值清零并重新开始计数;若发生保活类事件则将所述休眠定时器计数值清零并停止计数,退出保活事件后重新启动所述休眠定时器并计数;若所述休眠定时器计数达到设定值,则关闭外设模块并使MCU进入低功耗模式;在系统处于休眠状态,若外设模块触发外部中断,则唤醒所述MCU使其退出低功耗模式,重置系统时钟并进行所述外设模块的初始化,系统恢复到运行状态,重新启动所述休眠定时器。该系统包括MCU模块及外设模块。该方法及系统在不降低系统性能前提下能有效降低系统功耗。低系统功耗。低系统功耗。

【技术实现步骤摘要】
一种基于事件与休眠定时器的低功耗管理方法及系统


[0001]本专利技术涉及嵌入式系统
,尤其涉及一种基于事件与休眠定时器的低功耗管理方法及系统。

技术介绍

[0002]嵌入式系统设计的能量消耗问题是在嵌入式系统设计过程中普遍关注的难点与热点,一方面,随着物联网的发展,可移动嵌入式设备在体积和性能方面要求的不断提升,嵌入式设备小体积、高性能与系统电源供应只能使用能量有限的电池之间的矛盾日益突出,它严重制约着嵌入式系统的应用及发展;另一方面,对于运行在市电环境下的嵌入式设备,也要求降低设备功耗,以促进环保、提高能源利用率,尤其是运行在电网中的计量、监测设备,其运行功耗的大小直接会影响到计量的精度及供电的损耗。嵌入式系统低功耗设计是解决这些矛盾的有效手段,它往往包括了硬件低功耗设计和软件低功耗设计两个方面。系统低功耗管理的目标是在满足应用程序对性能需求的前提下,尽可能的降低系统的能耗,以延长设备的待机时间。Android、Linux等大型操作系统,都有提供完整的系统低功耗管理机制,而对于主流的小型实时操作系统(RTOS):一部分系统不提供任何低功耗管理机制;一部分系统支持tickless功能,所谓tickless是指在系统空闲进入IDLE任务时,停止系统滴答时钟并关闭部分外设,使CPU进入休眠模式来降低系统功耗;还有一部分操作系统除了支持tickless功能,在系统正常运行阶段,会根据系统CPU占用率情况,调整系统运行频率,以降低系统功耗。
[0003]对于无低功耗管理机制的系统,显然不符合嵌入式设备对低功耗的需求,而系统运行时根据CPU占用率降低CPU频率的方式会影响系统性能,且未必能降低功耗,真正对降低功耗有用的是tickless机制,但使用tickless方式进行系统低功耗管理存在以下缺陷:(1)系统无法获得应用程序处理事件的状态,需要被动等待系统进入IDLE任务;(2)在应用程序编写有缺陷时,系统不进入IDLE导致低功耗效果不佳时,开发人员也难以进行定位分析;(3)由于tickless这种方式缺少与应用程序间的交互,在某些应用场景下会出现MCU在运行与休眠模式频繁切换、外设频繁初始化与去初始化的情况,这会导致功耗增加(频繁开启和关闭低功耗过程的功耗会比很多低功耗模式节省的电量还要多)甚至会影响系统正常运行。因此,现有的RTOS低功耗管理方法存在不足,还有待改进和提高。

技术实现思路

[0004]本专利技术要解决的技术问题是,提供一种能够保证系统正常运行,不降低系统性能,有效降低系统功耗,增长系统待机时间的RTOS低功耗管理方法及系统。
[0005]为解决上述技术问题,本专利技术提供一种基于事件与休眠定时器的低功耗管理方法,包括以下步骤:步骤S1,系统上电,创建系统休眠定时器,启动所述休眠定时器并开始计时;步骤S2,在所述休眠定时器计时过程中,若发生触发类事件则将所述休眠定时器
计数值清零并重新开始计数;若发生保活类事件则将所述休眠定时器计数值清零并停止计数,退出保活事件后重新启动所述休眠定时器并计数;步骤S3,若所述休眠定时器计数达到设定值,则关闭外设模块并使MCU进入低功耗模式,系统进入休眠状态;步骤S4,在系统处于休眠状态,若外设模块触发外部中断,则唤醒所述MCU使其退出低功耗模式,重置系统时钟并进行所述外设模块的初始化,系统恢复到运行状态,重新启动所述休眠定时器返回步骤S2。更进一步,所述休眠定时器为周期性定时器。更进一步,在所述步骤S2中,当发生触发类或保活类事件时,写入相应的事件到事件控制块,并以阻塞方式读取发生的事件并进行处理。更进一步,在所述步骤S3中还包括,若收到应用程序主动休眠请求则关闭外设模块并使MCU进入低功耗模式,系统进入休眠状态。更进一步,在所述步骤S3中,使MCU进入低功耗模式的步骤为,通过所述MCU操作外设模块去初始化并关闭MCU I/O口时钟,使所述MCU进入低功耗模式。
[0006]本专利技术还提供一种基于事件与休眠定时器的低功耗管理系统,包括MCU模块及外设模块,所述外设模块与所述MCU模块连接,其特征在于,所述MCU模块具有低功耗模式,采用所述基于事件与休眠定时器的低功耗管理方法进行低功耗管理。更进一步,所述外设模块包括通信模块、第一传感器模块和第二传感器模块,所述通信模块、所述第一传感器模块、所述第二传感器模块与所述MCU模块连接,所述第一传感器模块用于产生触发类事件,所述第二传感器用于产生保活类事件。更进一步,所述通信模块为NB

IOT模块或4G通信模块或GPRS通信模块。更进一步,所述第一传感器模块为红外感应开关或门磁开关或光电开关;所述第二传感器模块为摄像头模块或AD采样模块或光电传感器模块。更进一步,所述MCU模块采用STM32F103VET6型MCU。
[0007]本专利技术还提供一种低功耗电子设备,包括门磁开关、MCU、传感器、语音播放喇叭,其特征在于,所述MCU具有低功耗模式,采用所述基于事件与休眠定时器的低功耗管理方法进行低功耗管理。
[0008]本专利技术的有益效果在于:基于事件与休眠定时器的低功耗管理方法将系统发生的事件分为两类,一类为短暂发生的瞬时事件,例如按键、鼠标点击等,称为触发类事件(trigger);另一类为需要进行一段时间的持续性事件,例如数据采集、处理及传输等,称为保活事件(alive)。通过这两类事件影响休眠定时器的计数值以及启停状态,从而控制系统进入低功耗模式的时机。通过休眠定时器实现在系统空闲后定时进入低功耗模式,同时应用程序可以主动请求进入低功耗模式,无需被动等待系统进入IDLE任务,提供了系统主动休眠的管理机制。同时当触发类事件或保活类事件发生时,通过写入相应的事件到事件控制块并以阻塞方式读取发生的事件并进行处理,实现在系统运行过程中查询当前发生的保活事件以及累计发生的触发类事件次数。克服了现有tickless机制存在的无法获得应用程序处理事件的状态,需要被动等待系统进入IDLE任务,在应用程序编写有缺陷时,系统不进入IDLE任务导致低功耗效果不佳时,开发人员也难以进行定位分析的问题。同时也解决了现有tickless机制存在的缺少
与应用程序间的交互,在某些应用场景下会出现MCU在运行与休眠模式频繁切换、外设频繁初始化与去初始化的情况,从而导致功耗增加(频繁开启和关闭低功耗过程的功耗会比很多低功耗模式节省的电量还要多)甚至会影响系统正常运行的问题。总之,本专利技术公开的功耗管理方法和系统能够高效方便的管理系统休眠、唤醒状态,方便开发人员分析系统运行事务,有效降低系统功耗。
附图说明
[0009]图1是本专利技术基于事件与休眠定时器的低功耗管理方法的实施方式的流程图。
[0010]图2是本专利技术基于事件与休眠定时器的低功耗系统的实施方式的结构图。
具体实施方式
[0011]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于事件与休眠定时器的低功耗管理方法,其特征在于,包括以下步骤:S1,系统上电,创建系统休眠定时器,启动所述休眠定时器并开始计时;S2,在所述休眠定时器计时过程中,若发生触发类事件则将所述休眠定时器计数值清零并重新开始计数;若发生保活类事件则将所述休眠定时器计数值清零并停止计数,退出保活事件后重新启动所述休眠定时器并计数;S3,若所述休眠定时器计数达到设定值,则关闭外设模块并使MCU进入低功耗模式,系统进入休眠状态;S4,在系统处于休眠状态,若外设模块触发外部中断,则唤醒所述MCU使其退出低功耗模式,重置系统时钟并进行所述外设模块的初始化,系统恢复到运行状态,重新启动所述休眠定时器返回步骤S2。2.根据权利要求1所述基于事件与休眠定时器的低功耗管理方法,其特征在于,所述休眠定时器为周期性定时器。3.根据权利要求1所述基于事件与休眠定时器的低功耗管理方法,其特征在于,在所述步骤S2中,当发生触发类或保活类事件时,写入相应的事件到事件控制块,并以阻塞方式读取发生的事件并进行处理。4.根据权利要求1所述基于事件与休眠定时器的低功耗管理方法,其特征在于,在所述步骤S3中还包括,若收到应用程序主动休眠请求则关闭外设模块并使MCU进入低功耗模式,系统进入休眠状态。5.根据权利要求1所述基于事件与休眠定时器的低功耗管理方法,其特征在于,在所述步骤S3中,使MCU进入低功耗模式的步骤为,通过...

【专利技术属性】
技术研发人员:李超余伟峰唐华博肖林松范律
申请(专利权)人:威胜信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1