《一种降低微控制单元MCU功耗的方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种降低微控制单元MCU功耗的方法及系统.pdf(13页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104111850A43申请公布日20141022CN104111850A21申请号201410341632422申请日20140717G06F9/44520060171申请人上海庆科信息技术有限公司地址200333上海市普陀区中江路879弄1号楼241室72发明人杨海波徐炜74专利代理机构北京集佳知识产权代理有限公司11227代理人王宝筠54发明名称一种降低微控制单元MCU功耗的方法及系统57摘要本申请公开了一种降低微控制单元MCU功耗的方法及系统,方法包括在检测到实时操作系统当前所有用户线程均处于挂起状态时,计算所有用户线程的挂起时间并确定最小挂起时间,设置时钟RTC的倒。
2、计时间为最小挂起时间,判断是否有MCU外部设备需要操作,如果有,控制MCU内核进入休眠状态,且控制需要进行操作的第一MCU外部设备开启,启动RTC,否则,控制MCU内核进入休眠状态,且控制所有外部设备关闭,启动RTC,在检测到RTC倒计时间结束时,控制MCU内核唤醒、所有外部设备开启,利用RTC运行时间校正系统时间。因此,降低了MCU的功耗,且在唤醒后读取RTC运行时间来校正系统时间,使得原有用户线程继续运行。51INTCL权利要求书2页说明书6页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书6页附图4页10申请公布号CN104111850ACN104111850。
3、A1/2页21一种降低微控制单元MCU功耗的方法,其特征在于,包括在检测到实时操作系统当前所有用户线程均处于挂起状态时,计算所有所述用户线程的挂起时间并确定最小挂起时间;设置实时时钟RTC的倒计时间为所述最小挂起时间;判断是否有MCU外部设备需要操作,如果有MCU外部设备需要操作,则控制MCU内核进入休眠状态,且控制需要进行操作的第一MCU外部设备开启,启动所述RTC,如果没有MCU外部设备需要操作,则控制MCU内核进入休眠状态,且控制所有外部设备关闭,启动所述RTC;在检测到所述RTC倒计时间结束时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间作为休眠时间以校正系统时间。2根。
4、据权利要求1所述的方法,其特征在于,在所述检测到所述RTC倒计时间结束时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间作为休眠时间以校正系统时间之前,还包括在检测到在所述RTC倒计时间结束之前有MCU外部设备发生中断事件时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间作为休眠时间以校正系统时间。3根据权利要求2所述的方法,其特征在于,所述计算所有所述用户线程的挂起时间并确定最小挂起时间为以系统当前时间为基准,分别计算每一个所述用户线程的挂起时间;在计算得到的多个结果中选取最小的一个值,作为最小挂起时间。4根据权利要求2所述的方法,其特征在于,在判断有MCU外部设。
5、备需要操作时,还包括设置外设操作标识,所述外设操作标识用于表明当前有MCU外部设备正在进行操作;在检测到所述第一MCU外部设备停止进行操作时,删除所述外设操作标识。5根据权利要求4所述的方法,其特征在于,还包括在检测到删除所述外设操作标识且所述RTC还没有超时的情况下,控制关闭所述第一MCU外部设备。6一种降低微控制单元MCU功耗的系统,其特征在于,包括计算单元,用于在检测到实时操作系统当前所有用户线程均处于挂起状态时,计算所有所述用户线程的挂起时间并确定最小挂起时间;时钟设置单元,用于设置实时时钟RTC的倒计时间为所述最小挂起时间;第一判断单元,用于判断是否有MCU外部设备需要操作;第一控制。
6、单元,用于在判断有MCU外部设备需要操作时,控制MCU内核进入休眠状态,且控制需要进行操作的第一MCU外部设备开启,启动所述RTC;第二控制单元,用于在判断没有MCU外部设备需要操作时,控制MCU内核进入休眠状态,且控制所有外部设备关闭,启动所述RTC;第一唤醒单元,用于在检测到所述RTC倒计时间结束时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间作为休眠时间以校正系统时间。7根据权利要求6所述的系统,其特征在于,还包括第二唤醒单元,用于在所述第一唤醒单元工作之前,检测在所述RTC倒计时间结束之前是否有MCU外部设备发生中断事件,并在检测到有中断事件发生时,控制MCU内核唤醒、。
7、权利要求书CN104111850A2/2页3所有外部设备开启,将所述RTC的运行时间作为休眠时间以校正系统时间。8根据权利要求7所述的系统,其特征在于,所述计算单元包括第一计算子单元,用于以系统当前时间为基准,分别计算每一个所述用户线程的挂起时间;第二计算子单元,用于在计算得到的多个结果中选取最小的一个值,作为最小挂起时间。9根据权利要求7所述的系统,其特征在于,还包括标识设置单元,用于在所述第一判断单元判断有MCU外部设备需要操作时,设置外设操作标识,所述外设操作标识用于表明当前有MCU外部设备正在进行操作;标识删除单元,用于在检测到所述第一MCU外部设备停止进行操作时,删除所述外设操作标识。
8、。10根据权利要求9所述的系统,其特征在于,还包括外设关闭单元,用于在检测到删除所述外设操作标识且所述RTC还没有超时的情况下,控制关闭所述第一MCU外部设备。权利要求书CN104111850A1/6页4一种降低微控制单元MCU功耗的方法及系统技术领域0001本申请涉及单片机技术领域,更具体地说,涉及一种降低微控制单元MCU功耗的方法及系统。背景技术0002嵌入式系统一般由MCUMICROCONTROLLERUNIT,微控制单元、嵌入式操作系统、外围设备和用户应用软件四部分组成。近年来随着嵌入式技术的快速发展,嵌入式系统的主频和集成度越来越高,随之而来的问题是如何有效的降低嵌入式系统功耗。00。
9、03针对上述问题,现有技术有两种办法,其一降低MCU的主频,通过牺牲MCU的性能来实现低功耗的目的;其二,直接让MCU处于STANDBY模式,而这种方式在MCU被唤醒之后不能够校正系统时间,因此对于休眠之前正在运行的线程将无法继续运行,不能够快速的恢复到休眠之前系统的状态。0004显然,现有技术缺乏一种在不降低MCU主频性能的前提下,能够降低MCU的功耗且唤醒后能够快速恢复到系统原状态的方案。发明内容0005有鉴于此,本申请提供了一种降低微控制单元MCU功耗的方法及系统,用于在保障MCU主频性能的前提下,降低MCU的功耗且唤醒后能够快速恢复到系统原状态。0006为了实现上述目的,现提出的方案如。
10、下0007一种降低微控制单元MCU功耗的方法,包括0008在检测到实时操作系统当前所有用户线程均处于挂起状态时,计算所有所述用户线程的挂起时间并确定最小挂起时间;0009设置实时时钟RTC的倒计时间为所述最小挂起时间;0010判断是否有MCU外部设备需要操作,如果有MCU外部设备需要操作,则控制MCU内核进入休眠状态,且控制需要进行操作的第一MCU外部设备开启,启动所述RTC,如果没有MCU外部设备需要操作,则控制MCU内核进入休眠状态,且控制所有外部设备关闭,启动所述RTC;0011在检测到所述RTC倒计时间结束时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间作为休眠时间以校。
11、正系统时间。0012可选的,在所述检测到所述RTC倒计时间结束时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间作为休眠时间以校正系统时间之前,还包括0013在检测到在所述RTC倒计时间结束之前有MCU外部设备发生中断事件时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间作为休眠时间以校正系统时间。0014可选的,所述计算所有所述用户线程的挂起时间并确定最小挂起时间为0015以系统当前时间为基准,分别计算每一个所述用户线程的挂起时间;0016在计算得到的多个结果中选取最小的一个值,作为最小挂起时间。说明书CN104111850A2/6页50017可选的,在判断有MC。
12、U外部设备需要操作时,还包括0018设置外设操作标识,所述外设操作标识用于表明当前有MCU外部设备正在进行操作;0019在检测到所述第一MCU外部设备停止进行操作时,删除所述外设操作标识。0020可选的,还包括0021在检测到删除所述外设操作标识且所述RTC还没有超时的情况下,控制关闭所述第一MCU外部设备。0022一种降低微控制单元MCU功耗的系统,包括0023计算单元,用于在检测到实时操作系统当前所有用户线程均处于挂起状态时,计算所有所述用户线程的挂起时间并确定最小挂起时间;0024时钟设置单元,用于设置实时时钟RTC的倒计时间为所述最小挂起时间;0025第一判断单元,用于判断是否有MCU。
13、外部设备需要操作;0026第一控制单元,用于在判断有MCU外部设备需要操作时,控制MCU内核进入休眠状态,且控制需要进行操作的第一MCU外部设备开启,启动所述RTC;0027第二控制单元,用于在判断没有MCU外部设备需要操作时,控制MCU内核进入休眠状态,且控制所有外部设备关闭,启动所述RTC;0028第一唤醒单元,用于在检测到所述RTC倒计时间结束时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间作为休眠时间以校正系统时间。0029可选的,还包括0030第二唤醒单元,用于在所述第一唤醒单元工作之前,检测在所述RTC倒计时间结束之前是否有MCU外部设备发生中断事件,并在检测到有中。
14、断事件发生时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间作为休眠时间以校正系统时间。0031可选的,所述计算单元包括0032第一计算子单元,用于以系统当前时间为基准,分别计算每一个所述用户线程的挂起时间;0033第二计算子单元,用于在计算得到的多个结果中选取最小的一个值,作为最小挂起时间。0034可选的,还包括0035标识设置单元,用于在所述第一判断单元判断有MCU外部设备需要操作时,设置外设操作标识,所述外设操作标识用于表明当前有MCU外部设备正在进行操作;0036标识删除单元,用于在检测到所述第一MCU外部设备停止进行操作时,删除所述外设操作标识。0037可选的,还包括0。
15、038外设关闭单元,用于在检测到删除所述外设操作标识且所述RTC还没有超时的情况下,控制关闭所述第一MCU外部设备。0039从上述的技术方案可以看出,本申请实施例提供的降低微控制单元MCU功耗的方法,在检测到实时操作系统当前所有用户线程均处于挂起状态时,计算所有用户线程的挂起时间并确定最小挂起时间,设置实时时钟RTC的倒计时间为所述最小挂起时间,判断是否有MCU外部设备需要操作,如果有MCU外部设备需要操作,则控制MCU内核进入休眠状说明书CN104111850A3/6页6态,且控制需要进行操作的第一MCU外部设备开启,启动所述RTC,如果没有MCU外部设备需要操作,则控制MCU内核进入休眠状。
16、态,且控制所有外部设备关闭,启动RTC,在检测到所述RTC倒计时间结束时,控制MCU内核唤醒、所有外部设备开启将所述RTC倒计时间作为休眠时间以校正系统时间。本申请的方案,降低了MCU的功耗,且在唤醒之后通过读取RTC时间来校正系统时间,从而使得原有用户线程能够继续运行。附图说明0040为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。0041图1为本申请实施例公开的一种降低微控制单元MCU功。
17、耗的方法流程图;0042图2为本申请实施例公开的另一种降低微控制单元MCU功耗的方法流程图;0043图3为本申请实施例公开的一种降低微控制单元MCU功耗的系统结构示意图;0044图4为本申请实施例公开的另一种降低微控制单元MCU功耗的系统结构示意图;0045图5为本申请实施例公开的计算单元的结构示意图。具体实施方式0046下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。0047本申请的。
18、方案基于实时操作系统,实时操作系统的任务调度中心控制多个用户线程的运行状态,当所有的用户线程均处于挂起状态时,控制空闲线程执行。本申请正是通过空闲线程来实现降低微控制单元MCU的功耗的目的。参见图1,图1为本申请实施例公开的一种降低微控制单元MCU功耗的方法流程图。0048如图1所示,该方法包括0049步骤100在检测到实时操作系统当前所有用户线程均处于挂起状态时,计算所有所述用户线程的挂起时间并确定最小挂起时间;0050具体地,实时操作系统的任务调度中心控制所有用户线程的运行状态,在检测到所有用户线程当前均处于挂起状态即暂停运行时,计算每一个用户线程的挂起时间,并确定多个挂起时间中最小的一个。
19、挂起时间。在该最小挂起时间内,MCU可以暂时进入休眠状态。0051步骤110设置实时时钟RTC的倒计时间为所述最小挂起时间;0052实时时钟RTCREALTIMECLOCK设置的倒计时间即为最小挂起时间。0053步骤120判断是否有MCU外部设备需要操作,如果有MCU外部设备需要操作,则执行步骤130,否则执行步骤140;0054步骤130控制MCU内核进入休眠状态,且控制需要进行操作的第一MCU外部设备开启,启动RTC,然后执行步骤150;说明书CN104111850A4/6页70055步骤140控制MCU内核进入休眠状态,且控制所有外部设备关闭,启动RTC,然后执行步骤150;0056嵌入。
20、式系统由MCU及其外部设备构成,外部设备包括通信串口、引脚等。如果MCU外部设备有需要进行操作的,例如某个引脚有数据需要传输,需要控制该外部设备处于开启状态,而此时MCU内核不需要工作,为了降低功耗可以控制其进入休眠状态。此时RTC启动,进入倒计时。0057需要说明的是,在判断有外部设备需要操作时,也可以将所有外部设备均开启。0058步骤150在检测到所述RTC倒计时间结束时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间以校正系统时间。0059MCU内核唤醒的条件可以是RTC超时中断,此时将MCU内核唤醒,所有的外部设备开启,然后通过RTC的运行时间来校正系统时间。如果RTC超。
21、时中断,也即倒计时间全部运行完毕,此时MCU内核的休眠时间即为倒计时间。0060本申请实施例提供的降低微控制单元MCU功耗的方法,在检测到实时操作系统当前所有用户线程均处于挂起状态时,计算所有用户线程的挂起时间并确定最小挂起时间,设置实时时钟RTC的倒计时间为所述最小挂起时间,判断是否有MCU外部设备需要操作,如果有MCU外部设备需要操作,则控制MCU内核进入休眠状态,且控制需要进行操作的第一MCU外部设备开启,启动所述RTC,如果没有MCU外部设备需要操作,则控制MCU内核进入休眠状态,且控制所有外部设备关闭,启动RTC,在检测到所述RTC倒计时间结束时,控制MCU内核唤醒、所有外部设备开启。
22、将所述RTC倒计时间作为休眠时间以校正系统时间。本申请的方案,降低了MCU的功耗,且在唤醒之后通过读取RTC时间来校正系统时间,从而使得原有用户线程能够继续运行。0061需要说明的是,上述计算用户线程的挂起时间并确定最小挂起时间的过程,可以是以系统当前时间为基准,分别计算每一个用户线程的挂起时间,得到多个计算结果,然后在多个计算结果中选择一个最小的值,作为最小挂起时间。在最小挂起时间内,没有任何一个用户线程处于工作状态,因此可以控制MCU内核在该时间段内处于休眠状态,从而降低其功耗。0062参见图2,图2为本申请实施例公开的另一种降低微控制单元MCU功耗的方法流程图。0063结合图1和图2可知。
23、,本实施例在步骤150之前进一步增加了0064步骤200在检测到在所述RTC倒计时间结束之前有MCU外部设备发生中断事件时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间作为休眠时间以校正系统时间。0065本实施例中增加了一个MCU内核唤醒条件,即在RTC设定的倒计时间结束之前,有MCU外部设备发生中断事件,如某一个串口有数据传输等,此时控制MCU内核唤醒。0066经过步骤200后,MCU处于唤醒状态,执行相应的动作,而有可能存在MCU执行完该动作后RTC时间还没有到,即最小挂起时间还没有结束,也就是说,此时仍然没有任何用户进程正在运行,经过步骤100,MCU内核将会再次进入休眠。
24、状态,只不过此时的最小挂起时间已经不同于初始时刻设定的最小挂起时间。0067进一步地,在步骤120判断有MCU外部设备需要操作时,还可以设置外设操作标说明书CN104111850A5/6页8识,该外设操作标识用于表明当前有MCU外部设备正在进行操作。然后在检测到第一MCU外部设备停止进行操作时,删除所述外设操作标识。这里第一MCU外部设备即步骤120判断出的需要操作的MCU外部设备。0068在此基础上,本方法还可以增加一个检测过程在检测到删除所述外设操作标识且所述RTC还没有超时的情况下,控制关闭所述第一MCU外部设备。即,第一MCU外部设备停止进行操作后,且此时RTC还没有超时,那么我们可以。
25、将第一MCU外部设备关闭,进一步的降低MCU功耗。0069下面对本申请实施例提供的一种降低微控制单元MCU功耗的系统进行描述,下文描述的一种降低微控制单元MCU功耗的系统与上文描述的一种降低微控制单元MCU功耗的方法可相互对应参照。0070参见图3,图3为本申请实施例公开的一种降低微控制单元MCU功耗的系统结构示意图。0071如图3所示,该系统包括0072计算单元31,用于在检测到实时操作系统当前所有用户线程均处于挂起状态时,计算所有所述用户线程的挂起时间并确定最小挂起时间;0073时钟设置单元32,用于设置实时时钟RTC的倒计时间为所述最小挂起时间;0074第一判断单元33,用于判断是否有M。
26、CU外部设备需要操作;0075第一控制单元34,用于在判断有MCU外部设备需要操作时,控制MCU内核进入休眠状态,且控制需要进行操作的第一MCU外部设备开启,启动所述RTC;0076第二控制单元35,用于在判断没有MCU外部设备需要操作时,控制MCU内核进入休眠状态,且控制所有外部设备关闭,启动所述RTC;0077第一唤醒单元36,用于在检测到所述RTC倒计时间结束时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间作为休眠时间以校正系统时间。0078可选的,图4示例了本申请公开的降低微控制单元MCU功耗的系统的另一种可选结构,结合图3和图4可知,该系统还可以包括0079第二唤醒单。
27、元41,用于在所述第一唤醒单元36工作之前,检测在所述RTC倒计时间结束之前是否有MCU外部设备发生中断事件,并在检测到有中断事件发生时,控制MCU内核唤醒、所有外部设备开启,将所述RTC的运行时间作为休眠时间以校正系统时间。0080可选的,图5示例了本申请公开的计算单元的一种可选结构,如图5所示,计算单元31可以包括0081第一计算子单元311,用于以系统当前时间为基准,分别计算每一个所述用户线程的挂起时间;0082第二计算子单元312,用于在计算得到的多个结果中选取最小的一个值,作为最小挂起时间。0083可选的,本申请公开的系统还可以包括标识设置单元,用于在所述第一判断单元33判断有MCU。
28、外部设备需要操作时,设置外设操作标识,所述外设操作标识用于表明当前有MCU外部设备正在进行操作;标识删除单元,用于在检测到所述第一MCU外部设备停止进行操作时,删除所述外设操作标识。0084可选的,在上述基础上,该系统还可以包括外设关闭单元,用于在检测到删除所说明书CN104111850A6/6页9述外设操作标识且所述RTC还没有超时的情况下,控制关闭所述第一MCU外部设备。0085本申请实施例提供的降低微控制单元MCU功耗的系统,在检测到实时操作系统当前所有用户线程均处于挂起状态时,计算所有用户线程的最小挂起时间,并设置实时时钟RTC的唤醒时间为所述最小挂起时间、运行所述RTC,判断是否有M。
29、CU外部设备需要操作,如果有MCU外部设备需要操作,则控制MCU内核进入休眠状态,且控制需要进行操作的第一MCU外部设备开启,如果没有MCU外部设备需要操作,则控制MCU内核进入休眠状态,且控制所有外部设备关闭,在检测到所述RTC超时中断时,控制MCU内核唤醒、所有外部设备开启,从所述RTC中读取休眠时间以校正系统时间,并返回至第一步骤。本申请的系统,降低了MCU的功耗,且在唤醒之后通过读取RTC时间来校正系统时间,从而使得原有用户线程能够继续运行。0086此外,本申请公开的上述降低微控制单元MCU功耗的系统可以应用于WIFI无线通信模块中。0087最后,还需要说明的是,在本文中,诸如第一和第。
30、二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。0088本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例。
31、之间相同相似部分互相参见即可。0089对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。说明书CN104111850A1/4页10图1说明书附图CN104111850A102/4页11图2说明书附图CN104111850A113/4页12图3图4说明书附图CN104111850A124/4页13图5说明书附图CN104111850A13。