本发明涉及嵌入式系统技术领域,尤其涉及一种嵌入式系统的低功耗控制方法及系统、存储介质。
背景技术:
嵌入式系统一般由mcu(microcontrollerunit,微控制单元)、操作系统、外围设备和用户应用软件四部分组成。
近年来随着嵌入式技术的快速发展,嵌入式系统的主频和集成度越来越高,随之而来的问题是系统功耗越来越高。因此,如何有效的降低嵌入式系统功耗,是目前亟待解决的问题。
技术实现要素:
本发明的目的在于提供一种嵌入式系统的低功耗控制方法及系统、存储介质,克服现有技术存在的系统功耗较高的缺陷。
为达此目的,本发明采用以下技术方案:
一种嵌入式系统的低功耗控制方法,所述嵌入式系统包括mcu和所述mcu电连接的至少一个外围设备,包括步骤:
在所述嵌入式系统运行过程中,若当前的驱动状态或所述系统运行状态为忙碌状态,则监测当前的系统调度间隔时长;
若所述系统调度间隔时长大于时长阈值,则控制所述嵌入式系统切换至轻度睡眠模式;在所述轻度睡眠模式下,控制所述mcu的主频降低至第一时钟频率;
若所述系统调度间隔时长不大于所述时长阈值,则控制所述嵌入式系统切换至中度睡眠模式;在所述中度睡眠模式下,控制所述mcu的主频降低至第二时钟频率,同时将当前的第一时钟源切换为第二时钟源;
其中,所述第二时钟频率不高于所述第一时钟频率,所述第二时钟源的工作频率低于所述第一时钟源的工作频率。
可选的,还包括:若当前的驱动状态或所述系统运行状态为空闲状态,则控制所述嵌入式系统切换至深度睡眠模式;在所述深度睡眠模式下,控制所述mcu的主频降低至第三时钟频率,同时关闭除实时时钟源rtc以外的其他全部时钟源,所述第三时钟频率低于所述第二时钟频率。
可选的,还包括:在所述深度睡眠模式下,关闭全部所述外围设备。
可选的,还包括:在所述中度睡眠模式下,关闭当前处于非工作状态的所述外围设备。
可选的,所述第二时钟频率低于所述第一时钟频率。
可选的,判断所述驱动状态或所述系统运行状态是否为忙碌状态的方法为:先判断所述驱动状态是否忙碌状态,若否,则再判断所述系统运行状态是否忙碌状态。
一种嵌入式系统的低功耗控制系统,包括:状态监测单元和切换控制单元;
所述状态监测单元,用于在所述嵌入式系统运行过程中,监测当前的驱动状态和系统运行状态,以及在所述驱动状态或系统运行状态为忙碌状态时的系统调度间隔时长;
所述切换控制单元,用于在所述驱动状态或系统运行状态为忙碌状态且所述系统调度间隔时长大于时长阈值时,控制所述嵌入式系统切换至轻度睡眠模式;在所述轻度睡眠模式下,控制所述mcu的主频降低至第一时钟频率;还用于在所述驱动状态或系统运行状态为忙碌状态且所述系统调度间隔时长不大于所述时长阈值时,控制所述嵌入式系统切换至中度睡眠模式;在所述中度睡眠模式下,控制所述mcu的主频降低至第二时钟频率,同时将当前的第一时钟源切换为第二时钟源;其中,所述第二时钟频率不高于所述第一时钟频率,所述第二时钟源的工作频率低于所述第一时钟源的工作频率。
可选的,所述切换控制单元,还用于在所述驱动状态或所述系统运行状态为空闲状态时,控制所述嵌入式系统切换至深度睡眠模式;在所述深度睡眠模式下,控制所述mcu的主频降低至第三时钟频率,同时关闭除实时时钟源rtc以外的其他全部时钟源,所述第三时钟频率低于所述第二时钟频率。
可选的,所述切换控制单元,还用于在所述中度睡眠模式下关闭当前处于非工作状态的所述外围设备,在所述深度睡眠模式下关闭全部所述外围设备。
一种存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行,以实现如上任一项所述的低功耗控制方法所执行的操作。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例根据驱动状态、系统工作状态以及系统调度间隔时长,控制嵌入式系统实现轻度睡眠模式和中度睡眠模式,相对于正常工作模式,这两种睡眠模式从降低主频和降低时钟源的工作频率两个角度来实现两级低功耗处理,使得在满足当前业务层级的系统最低业务要求的前提下有效降低了系统功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的嵌入式系统的低功耗控制方法流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明实施例一部分的实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
本发明实施例的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在实际操作中,为保证系统的正常运行,不能控制嵌入式系统的运行过程直接停止,因此本发明实施例以间歇性的调整系统的工作状态为出发点,来提供一种新的低功耗解决思路:根据不同的业务要求,进行业务分层处理,以使系统在满足业务需求的基础上尽可能的低频率工作甚至不工作,从而有效降低系统功耗。
请参阅图1,本发明实施例提供的嵌入式系统的低功耗控制方法,可以包括以下步骤:
步骤101、在所述嵌入式系统运行过程中,判断当前的驱动状态是否为忙碌状态,若是则执行步骤102,否则执行步骤105。
需要说明的是,外围设备具体可以包括通信串口、引脚等。针对单个外围设备,其状态包括工作状态和非工作状态两种。
驱动状态实际指的是所有外围设备的状态集合;在所有外围设备都处于非工作状态时,该驱动状态具体呈现为空闲状态;在至少有一个外围设备处于工作状态时,该驱动状态具体呈现为忙碌状态。
步骤102、当前的系统调度间隔时长是否大于时长阈值,若是则执行步骤103,否则执行步骤104。
本发明实施例对时长阈值的具体数值不作限制,实际应用中可根据mcu的芯片类型来选择合适的数值。
步骤103、控制嵌入式系统由正常运行模式切换至轻度睡眠模式;在该轻度睡眠模式下,控制mcu的主频降低至第一时钟频率。
由于此时系统调度间隔时长较高,系统唤醒频率高,唤醒速度要求高、稳定性要求较高,因此本实施例此时切换至轻度睡眠状态,为避免对系统业务产生影响而做到快速切换。
步骤104、控制嵌入式系统切换至中度睡眠模式;在该中度睡眠模式下,控制mcu的主频降低至第二时钟频率,同时将当前的第一时钟源切换为第二时钟源。
其中,第二时钟源的工作频率低于第一时钟源的工作频率。需要注意的是,本实施例所描述的第一时钟源/第二时钟源实际可以为一种时钟源,也可以为两种或者多种时钟源的集合。在实际应用中,可以根据实际需求来选定,只要满足切换后的时钟源的工作频率低于切换前的时钟源的工作频率即可。
第二时钟频率不高于第一时钟频率,即两者可以相当,也可以前者低于后者。可以理解的,为了进一步降低中度睡眠模式下的功耗,可选的设置第二时钟频率低于第一时钟频率。
由于此时系统调度间隔时长较低,系统正常调度唤醒频率较低,有足够的延时空间来满足系统的恢复,因此本实施例此时将系统切换至中度睡眠模式,保证能够较快唤醒以外进一步降低功耗。
步骤105、判断当前的系统运行状态是否为忙碌状态,若是则执行步骤102,否则执行步骤106。
本实施例中,系统工作状态实际指的是任务调度的情况;在无任务需要调度时,该系统工作状态具体呈现为空闲状态;在至少有任务需要调度时,该驱动状态具体呈现为忙碌状态。
步骤106、控制嵌入式系统切换至深度睡眠模式;在该深度睡眠模式下,控制mcu的主频降低至第三时钟频率,同时关闭除实时时钟源rtc以外的其他全部时钟源,第三时钟频率低于第二时钟频率。
此时,由于没有任务进行调度,因此可以让系统进入深度睡眠,将功耗降到最低。
综上,本发明实施例根据驱动状态、系统工作状态以及系统调度间隔时长,控制嵌入式系统实现轻度睡眠模式、中度睡眠模式、深度睡眠模式,相对于正常工作模式,这三种睡眠模式从降低主频和降低时钟源的工作频率两个角度来实现三级低功耗处理,使得在满足当前业务层级的系统最低业务要求的前提下有效降低了系统功耗。
需要说明的是,上述流程中采用了先判断驱动状态再判断系统运行状态的判定顺序,实际操作中也可以采用先判断系统工作状态再判断驱动状态的判定顺序,也能降低系统功耗。但是,在实际的整个程序计算过程中,前者相对后者的工作效率更高。
另外,本发明实施例还可以包括:在中度睡眠模式下,关闭当前处于非工作状态的外围设备;和/或,在深度睡眠模式下,关闭全部外围设备。通过关闭当前不需要使用的外围设备,可进一步有效降低功耗。
下面以采用stm32型号的mcu为例,对其进行模式划分及功耗对比:
上述实例中,基于stm32这款芯片以及实际应用场景、实测系统负载,经过调度优化后可得出较为优选的作为判定标准的时长阈值为5ms。这是由于,考虑到芯片本身的调度响应速度情况以及业务情况,5ms有充裕的时间让系统睡眠,同时又不会因过度频繁的切换造成系统异常。
相应的,本发明实施例还提供了一种嵌入式系统的低功耗控制系统,具体包括:状态监测单元和切换控制单元。
状态监测单元,用于在嵌入式系统运行过程中,监测当前的驱动状态和系统运行状态,以及在驱动状态或系统运行状态为忙碌状态时的系统调度间隔时长。
切换控制单元,用于在驱动状态或系统运行状态为忙碌状态且系统调度间隔时长大于时长阈值时,控制嵌入式系统切换至轻度睡眠模式;在该轻度睡眠模式下,控制mcu的主频降低至第一时钟频率;还用于在驱动状态或系统运行状态为忙碌状态且系统调度间隔时长不大于时长阈值时,控制嵌入式系统切换至中度睡眠模式;在该中度睡眠模式下,控制mcu的主频降低至第二时钟频率,同时将当前的第一时钟源切换为第二时钟源;其中,第二时钟频率不高于第一时钟频率,第二时钟源的工作频率低于第一时钟源的工作频率。
为进一步合理有效的降低功耗,切换控制单元,还用于在驱动状态或系统运行状态为空闲状态时,控制嵌入式系统切换至深度睡眠模式;在该深度睡眠模式下,控制mcu的主频降低至第三时钟频率,同时关闭除实时时钟源rtc以外的其他全部时钟源,第三时钟频率低于第二时钟频率;还用于在中度睡眠模式下关闭当前处于非工作状态的所述外围设备,在深度睡眠模式下关闭全部外围设备。
本领域普通技术人员可以理解,上述低功耗控制方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例还提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的低功耗控制方法中的步骤。
其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种嵌入式系统的低功耗控制方法,所述嵌入式系统包括mcu和所述mcu电连接的至少一个外围设备,其特征在于,包括步骤:
在所述嵌入式系统运行过程中,若当前的驱动状态或所述系统运行状态为忙碌状态,则监测当前的系统调度间隔时长;
若所述系统调度间隔时长大于预设的时长阈值,则控制所述嵌入式系统切换至轻度睡眠模式;在所述轻度睡眠模式下,控制所述mcu的主频降低至第一时钟频率;
若所述系统调度间隔时长不大于所述时长阈值,则控制所述嵌入式系统切换至中度睡眠模式;在所述中度睡眠模式下,控制所述mcu的主频降低至第二时钟频率,同时将当前的第一时钟源切换为第二时钟源;
其中,所述第二时钟频率不高于所述第一时钟频率,所述第二时钟源的工作频率低于所述第一时钟源的工作频率。
2.根据权利要求1所述的嵌入式系统的低功耗控制方法,其特征在于,还包括:若当前的驱动状态或所述系统运行状态为空闲状态,则控制所述嵌入式系统切换至深度睡眠模式;在所述深度睡眠模式下,控制所述mcu的主频降低至第三时钟频率,同时关闭除实时时钟源rtc以外的其他全部时钟源,所述第三时钟频率低于所述第二时钟频率。
3.根据权利要求2所述的嵌入式系统的低功耗控制方法,其特征在于,还包括:在所述深度睡眠模式下,关闭全部所述外围设备。
4.根据权利要求1所述的嵌入式系统的低功耗控制方法,其特征在于,还包括:在所述中度睡眠模式下,关闭当前处于非工作状态的所述外围设备。
5.根据权利要求1所述的嵌入式系统的低功耗控制方法,其特征在于,所述时长阈值为5ms。
6.根据权利要求1所述的嵌入式系统的低功耗控制方法,其特征在于,判断所述驱动状态或所述系统运行状态是否为忙碌状态的方法为:先判断所述驱动状态是否忙碌状态,若否,则再判断所述系统运行状态是否忙碌状态。
7.一种嵌入式系统的低功耗控制系统,其特征在于,包括:状态监测单元和切换控制单元;
所述状态监测单元,用于在所述嵌入式系统运行过程中,监测当前的驱动状态和系统运行状态,以及在所述驱动状态或系统运行状态为忙碌状态时的系统调度间隔时长;
所述切换控制单元,用于在所述驱动状态或系统运行状态为忙碌状态且所述系统调度间隔时长大于时长阈值时,控制所述嵌入式系统切换至轻度睡眠模式;在所述轻度睡眠模式下,控制所述mcu的主频降低至第一时钟频率;还用于在所述驱动状态或系统运行状态为忙碌状态且所述系统调度间隔时长不大于所述时长阈值时,控制所述嵌入式系统切换至中度睡眠模式;在所述中度睡眠模式下,控制所述mcu的主频降低至第二时钟频率,同时将当前的第一时钟源切换为第二时钟源;其中,所述第二时钟频率不高于所述第一时钟频率,所述第二时钟源的工作频率低于所述第一时钟源的工作频率。
8.根据权利要求7所述的低功耗控制系统,其特征在于,所述切换控制单元,还用于在所述驱动状态或所述系统运行状态为空闲状态时,控制所述嵌入式系统切换至深度睡眠模式;在所述深度睡眠模式下,控制所述mcu的主频降低至第三时钟频率,同时关闭除实时时钟源rtc以外的其他全部时钟源,所述第三时钟频率低于所述第二时钟频率。
9.根据权利要求8所述的低功耗控制系统,其特征在于,所述切换控制单元,还用于在所述中度睡眠模式下关闭当前处于非工作状态的所述外围设备,在所述深度睡眠模式下关闭全部所述外围设备。
10.一种存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行,以实现如权利要求1至6任一项所述的低功耗控制方法所执行的操作。
技术总结