一种低功耗控制方法、装置、系统及存储介质与流程

文档序号:18097781发布日期:2019-07-06 11:09阅读:138来源:国知局
一种低功耗控制方法、装置、系统及存储介质与流程

本发明涉及物联网技术领域和嵌入式工控技术领域,尤其涉及一种低功耗控制方法、装置、系统及存储介质。



背景技术:

窄带物联网(nb-iot,narrowbandinternetoftings)是物联网领域一个新兴的技术,为万物互联网网络的一个重要分支,具有低成本、低功耗、广覆盖等特点。nb-iot支持低功耗设备在广域网的蜂窝数据连接,也被叫作低功耗广域网(lpwa);nb-iot支持待机时间长、对网络连接要求较高设备的高效连接;nb-iot设备电池寿命可以提高至至少10年,同时还能提供非常全面的室内蜂窝数据连接覆盖。因此,nb-iot拥有广阔的应用前景。

随着nb-iot技术的推广,国内运营商正在大规模的布局nb网络,越来越多的物联网终端考虑到低功耗、易接入的应用特点,纷纷使用nb模组代替原来的无线通信模组,因此,终端的软硬件构架形成了以主控制器+nb模组的形式。

目前,为了降低主控制器+nb模组的系统的功耗,一般均采用自带低功耗模式的主控制器,该类主控制器在没有业务进程运行时进入低功耗模式,并通过主控制器内部定时器周期性主动唤醒进入工作模式。而采用如此唤醒机制存在的一个缺陷是,定时器进行周期性唤醒对应的唤醒时间难以合理确定,过长会导致所述系统的实时性差,影响业务进程的正常运行,过短又得不到最佳的处于低功耗模式的时长,为了避免影响业务进程的正常处理,该唤醒时间通常会设置较短,导致需要频繁切换于低功耗模式与工作模式之间,因此,对系统功耗的降低效果有限。



技术实现要素:

为解决现有存在的技术问题,本发明实施例提供一种有效降低功耗的低功耗控制方法、装置、系统及存储介质。

为达到上述目的,本发明实施例的技术方案是这样实现的:

一种低功耗控制方法,所述方法包括:

在当前模式为工作模式时,检测是否存在正在运行的业务进程;

当未检测到正在运行的业务进程时,关闭系统时钟并从所述工作模式进入低功耗模式;

确定下一待运行业务进程的运行时间与当前系统时间之间的差值,根据所述差值设置唤醒时间;

当所述唤醒时间到期时,从所述低功耗模式进入所述工作模式,并根据所述唤醒时间对所述系统时钟进行补偿。

上述方案中,所述当所述唤醒时间到期时,从所述低功耗模式进入所述工作模式,并根据所述唤醒时间对所述系统时钟进行补偿之前,还包括:

当有外部中断进程打断低功耗模式时,从所述低功耗模式进入所述工作模式,并运行所述外部中断进程;

待所述外部中断进程运行结束后,从所述工作模式进入低功耗模式。

上述方案中,所述从低功耗模式进入所述工作模式,并运行所述外部中断进程,包括:

从所述低功耗模式进入所述工作模式,并运行所述外部中断进程,开启系统时钟,根据所述外部中断进程的运行时间与在前关闭系统时钟的系统时间之间的差值对当前系统时间进行补偿;

所述待所述外部中断进程运行结束后,从所述工作模式进入低功耗模式,包括:

待所述外部中断进程运行结束后,关闭系统时钟,并从所述工作模式进入低功耗模式,重新计算所述下一待运行业务进程的运行时间与当前系统时间之间的差值,并根据所述差值更新所述唤醒时间。

上述方案中,所述待所述外部中断进程运行结束后,从所述工作模式进入低功耗模式,包括:

待所述外部中断进程运行结束后,运行设置的守护进程,通过所述守护进程从所述工作模式进入低功耗模式。

上述方案中,所述当检测到正在运行的业务进程时,关闭系统时钟并从所述工作模式进入低功耗模式,包括:

当未检测到正在运行的业务进程时,运行设置的守护进程,通过所述守护进程关闭系统时钟并从所述工作模式进入低功耗模式。

上述方案中,所述根据所述唤醒时间对所述系统时钟进行补偿,包括:

开启系统时钟;

将所述唤醒时间作为补偿值对所述系统时钟进行补偿。

上述方案中,所述方法还包括:

在当前模式为工作模式时,通过串口与nb模组进行通信;

其中,所述通过串口与nb模组进行通信,包括:

使能串口空闲中断标志,通过所述空闲中断标志检测串口是否存在dma传输的传输进程;

当检测到所述串口存在dma传输的传输进程时,使能串口接收,通过所述串口接收通过dma传输的当前数据;当检测到所述串口在设置时间周期内不存在dma传输的传输进程时,使能串口中断,所述dma传输的传输进程运行结束,使能串口清除空闲中断标志。

上述方案中,所述使能串口清除空闲中断标志之后,还包括:

使能串口接收完成标志和接收数据长度标志;

其中,所述接收完成标志用于表征所述dma传输的传输进程已经结束,所述接收数据长度标志用于表征所述dma传输所传输数据的数据长度。

一种低功耗控制装置,所述装置包括:

处理器和用于存储能够在处理器上运行的计算机程序的存储器;

其中,所述处理器用于运行所述计算机程序时,实现本发明任一实施例所提供的低功耗控制方法。

一种低功耗控制装置,所述装置包括:

检测模块,用于在当前模式为工作模式时,检测是否存在正在进行的业务进程;

低功耗模块,用于当未检测到正在进行的业务进程时,关闭系统时钟并从所述工作模式进入低功耗模式;

计时模块,用于确定下一待业务进程的运行时间与当前系统时间之间的差值,根据所述差值设置唤醒时间;

中断触发模块,用于当所述唤醒时间到期时从所述低功耗模式进入所述工作模式,并根据所述唤醒时间对所述系统时钟进行补偿。

上述方案中,所述装置还包括:

外部中断触发模块,用于当有外部中断进程打断低功耗模式时,从所述低功耗模式进入所述工作模式,并运行所述外部中断进程;

所述低功耗模块,还用于待所述外部中断进程运行结束后,从所述工作模式进入低功耗模式。

上述方案中,所述外部中断触发模块,还用于从所述低功耗模式进入所述工作模式,并运行所述外部中断进程,开启系统时钟,根据所述外部中断进程的运行时间与在前关闭系统时钟的系统时间之间的差值对当前系统时间进行补偿;

所述低功耗模块,还用于待所述外部中断进程运行结束后,关闭系统时钟,并从所述工作模式进入低功耗模式;

所述计时模块,还用于重新计算所述下一待运行业务进程的运行时间与当前系统时间之间的差值,并根据所述差值更新所述唤醒时间。

上述方案中,所述低功耗模块,还用于待所述外部中断进程运行结束后,运行设置的守护进程,通过所述守护进程从所述工作模式进入低功耗模式。

上述方案中,所述低功耗模块,还用于当未检测到正在运行的业务进程时,运行设置的守护进程,通过所述守护进程关闭系统时钟并从所述工作模式进入低功耗模式。

上述方案中,所述中断触发模块,还用于开启系统时钟;还用于将所述唤醒时间作为补偿值对所述系统时钟进行补偿。

上述方案中,所述装置还包括:

串口通信模块,用于在当前模式为工作模式时,通过串口与nb模组进行通信;其中,所述通过串口与nb模组进行通信,包括:

使能串口空闲中断标志,通过所述空闲中断标志检测串口是否存在dma传输的传输进程;

当检测到所述串口存在dma传输的传输进程时,使能串口接收,通过所述串口接收通过dma传输的当前数据;当检测到所述串口在设置时间周期内不存在dma传输的传输进程时,使能串口中断,所述dma传输的传输进程运行结束,使能串口清除空闲中断标志。

上述方案中,所述串口通信模块,还用于使能串口接收完成标志和接收数据长度标志;

其中,所述接收完成标志用于表征所述dma传输的传输进程已经结束,所述接收数据长度标志用于表征所述dma传输所传输数据的数据长度。

本发明实施例还提供了一种低功耗控制系统,所述系统包括:主控制器和nb模组;

所述主控制器包括实现本发明任一实施例中低功耗控制方法所述的低功耗控制装置,所述主控制器与所述nb模组通过串口方式进行交互。

其中,所述主控制器用于执行实现本发明任一实施例所提供的低功耗控制方法。

本发明实施例提供了一种存储介质,所述存储介质中有计算机可执行指令,所述计算机可执行指令被处理器执行实现本发明任一实施例所提出的低功耗控制方法。

本发明实施例提供的低功耗控制方法、装置、系统及存储介质,通过在当前模式为工作模式时,检测是否存在正在运行的业务进程,当未检测到正在运行的业务进程时,关闭系统时钟并从所述工作模式进入低功耗模式,实现了主控制器合理的进入低功耗模式,通过关闭系统时钟,避免系统时钟产生中断使得低功耗模式失效,避免了主控制器在低功耗模式和工作模式的频繁切换;通过确定下一待运行业务进程的运行时间与当前系统时间之间的差值,根据所述差值设置唤醒时间,通过当所述唤醒时间到期时,从所述低功耗模式进入所述工作模式,并根据所述唤醒时间对系统时候进行补偿,其中,唤醒时间是根据业务进程的实际运行情况实时动态计算得到的,避免了唤醒时间过长会影响系统的实时性,过短又会导致低功耗模式时间不足的情况,降低了主控制器的功耗;并且,通过对系统时钟进行合理的补偿,避免了进入低功耗模式时关闭系统时钟而产生的时间误差,保证了系统时钟的准确性。

附图说明

图1为本发明低功耗控制方法实施例一的流程示意图;

图2为本发明低功耗控制方法实施例二的流程示意图;

图3为本发明一实施例中主控制器与nb模组的串口连接方框图;

图4为本发明一实施例中多进程动态唤醒机制时序图;

图5为本发明另一实施例中多进程动态唤醒机制时序图;

图6为本发明实施例中低功耗控制装置的硬件结构示意图;

图7为本发明一实施例中低功耗控制装置的结构示意图;

图8为本发明一实施例中低功耗控制系统的结构示意图。

具体实施方式

本发明实施例提供的低功耗控制方法,可应用于物联网领域,如nb-iot技术领域,具体如,应用于共享单车(如nb-iot智能锁),应用于智能家电(如遥控家里的每一件带有nb-iot技术芯片的家电)等等,为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施例作进一步地详细描述。

如图1所述,本发明一实施例提出了一种低功耗控制方法,应用于主控制器,该方法包括如下步骤:

步骤101,在当前模式为工作模式时,检测是否存在正在运行的业务进程;

具体地,主控制器在当前模式处于工作模式时,检测是否存在正在运行的业务进程。这里,所述业务进程可以是实现任一应用程序的进程。例如,可以是用主控制器控制物联网的光伏逆变器的光伏数据传输的进程、可以是用主控制器控制无人机远程监控的进程、可以是主控制器内部触发中断进程,等等。

步骤103,当未检测到正在运行的业务进程时,关闭系统时钟并从所述工作模式进入低功耗模式。

具体地,所述当主控制器未检测到正在运行的业务进程时,关闭主控制器的系统时钟,并且从所述工作模式进入低功耗模式。

进一步地,所述步骤103,包括:

当未检测到正在进行的业务进程时,运行设置的守护进程,通过所述守护进程关闭系统时钟并从所述工作模式进入低功耗模式。

这里,所述守护进程可以预先设置的、不需要实现任何应用程序的最低优先级的进程,当没有正在运行的业务进程时,守护进程就会得到运行。通过运行守护进程,触发主控制器从当前的工作模式进入低功耗模式。

这里,所述低功耗模式为主控制器预先设置的模式,可以是休眠模式、或待机模式、或停机模式等几种模式。所述低功耗模式针对不同的主控制器,所述支持的具体模式并不一样,可以根据实际情况进行设置。

具体地,以主控制器为stm32系列的微处理器mcu为例。其中,所述stm32系列支持三种低功耗模式:第一种是休眠模式,所述休眠模式为中央处理器cpu(即cortex-m3内核)停止工作,所有外设继续运行。当中断/事件发生时,可退出所述休眠模式;第二种是停机模式,所述停机模式允许以最小的功耗来保持静态随机存储器sram和寄存器的内容,1.8v区域的时钟停止,pll,his和hserc振荡器被禁能,调压器被设置为正常或低功耗模式。当外部中断源触发外部中断线时,可退出所述停机模式;第三种是待机模式,所述待机模式为追求最少的功耗,1.8v区域断电,pll,his和hserc振荡器被关闭,内部调压器也被关闭,其中,在进入待机模式之后,除了备份寄存器和待机电路,sram和寄存器的内容都会丢失。当外部复位(nrst引脚)、iwdg复位、或wkup引脚出现上升或者rtc中断发生时,可退出所述待机模式。

这里,主控制器从所述工作模式进入低功耗模式时,关闭系统时钟,通过关闭系统时钟,可以避免系统时钟周期性的唤醒主控制器,将主控制器当前的低功耗模式打断而进入工作模式,导致当前的低功耗模式失效。因此,关闭系统时钟,可以避免系统时钟的周期性中断干扰所述主控制器处于的低功耗模式的状态,导致主控制器得不到正常的睡眠,造成主控制器在工作模式与低功耗模式的频繁切换,造成所述低功耗模式策略的失效。

步骤105,确定下一待运行业务进程的运行时间与当前系统时间之间的差值,根据所述差值设置唤醒时间。

具体地,主控制器通过运行守护进程进入低功耗模式时,计算可以持续当前进入到低功耗模式的最大时间,也就是确定出下一个待运行业务进程的运行时间与当前系统时间之间的差值,根据所述下一个待运行业务进程的运行时间与当前系统时间的差值,设置唤醒时间。如此,主控制器可以根据业务进程的实际运行情况动态地计算被唤醒的唤醒时间,避免了依靠经验设置时间长度固定的唤醒时间所造成的实时性差或者处于低功耗模式的时间不足的问题。

所述唤醒时间不大于所述下一个待运行业务进程的运行时间与当前系统时间之间的差值。在一可选实施例中,所述唤醒时间可以与下一个待运行业务进程的运行时间与当前系统时间之间的差值相等,或者相对下一个待运行业务进程的运行时间与当前系统时间之间的差值小于预设值。

步骤107,当所述唤醒时间到期时,从所述低功耗模式进入所述工作模式,并根据所述唤醒时间对所述系统时钟进行补偿。

具体地,将所述唤醒时间作为唤醒定时器的中断触发时间,等到所述唤醒时间到期后,主控制器被唤醒定时器通过中断的方式唤醒,从所述低功耗模式进入所述工作模式;并且,由于进入低功耗模式时关闭系统时钟,因此在主控制器被唤醒时,需要对系统时钟的时间进行补偿,将唤醒时间作为补偿值对所述系统时钟进行补偿。

需要说明的是,这里,所述唤醒时间作为唤醒定时器的中断触发时间不再是静态的,而是动态计算出来的,因而解决了当唤醒时间设置过长影响系统实时性,设置过短导致低功耗模式时间不足的问题,从而合理的确定了低功耗模式的持续时间。并且,将唤醒时间作为补偿值对所述系统时钟进行补偿,可以合理的调节系统时钟,解决了如果不补偿或不合理补偿系统时钟的时间而导致系统时钟的时间出现较大的误差,从而避免出现主控制器的业务进程调度奔溃等的问题。

在一可选实施例中,所述根据所述唤醒时间对所述系统时钟进行补偿,包括:

开启系统时钟;

将所述唤醒时间作为补偿值对所述系统时钟进行补偿。

具体地,主控制器从所述低功耗模式进入所述工作模式时,开启之前关闭的系统时钟,并将唤醒时间与之前关闭系统时钟时记录的系统时间进行累加,作为当前开启系统时钟时的系统时钟时间。

在一可选实施例中,如图2所示,步骤107之前,还包括:

步骤106,当有外部中断进程打断低功耗模式时,从所述低功耗模式进入所述工作模式,并运行所述外部中断进程;待所述外部中断进程运行结束后,从所述工作模式进入低功耗模式。

进一步地,所述从所述低功耗模式进入所述工作模式,并运行所述外部中断进程,包括:

从所述低功耗模式进入所述工作模式,并运行所述外部中断进程,开启系统时钟,根据所述外部中断进程的运行时间与在前关闭系统时钟的系统时间之间的差值对当前系统时间进行补偿;

所述待所述外部中断进程运行结束后,从所述工作模式进入低功耗模式,包括:

待所述外部中断进程运行结束后,关闭系统时钟,并从所述工作模式进入低功耗模式,重新计算所述下一待运行业务进程的运行时间与当前系统时间之间的差值,并根据所述差值更新所述唤醒时间。

具体地,主控制器进入低功耗模式运行时,当有外部中断进程随机打断低功耗模式时,外部中断进程唤醒主控制器进入所述工作模式,此时,开启系统时钟,并计算所述外部中断进程的运行时间与在前关闭系统时钟的系统时间之间的差值,根据所述外部中断进程运行时间与在前关闭系统时钟的系统时间之间的差值作为对当前开启系统时钟时间进行补偿;等待所述外部中断进程运行结束后,主控制器重新关闭系统时钟,从工作模式进入低功耗模式,重新计算下一待运行业务进程的运行时间与当前系统时间的差值,根据下一待运行业务进程的运行时间与当前系统时间的差值设置唤醒定时器的唤醒时间。

这里,由于外部中断进程属于随机进程,主控制器在进入低功耗模式之前无法对当前未发生的外部中断进程的运行时间进行预测,因此当出现外部中断进程打断当前的低功耗模式的情况下,可以外部中断进程的实际运行时间和进入低功耗模式时的系统时间来完成系统时钟补偿、以及重新动态计算再次进入低功耗模式时对应的唤醒时间。

在一可选实施例中,所述待所述外部中断进程运行结束后,从所述工作模式进入所述低功耗模式,包括:

待所述外部中断进程运行结束后,运行设置的守护进程,通过所述守护进程从所述工作模式进入所述低功耗模式。

具体地,主控制器待运行所述外部中断进程结束后,运行预先设置的守护进程,通过所述守护进程使主控制器从所述工作模式进入所述低功耗模式。

在一可选实施中,如图2所示,该所述低功耗控制方法,还包括:

步骤109,在当前模式为工作模式时,通过串口与nb模组进行通信;

其中所述通过串口与nb模组进行通信,包括:

使能串口空闲中断标志,通过所述空闲中断标志检测串口是否存在dma传输的传输进程;

当检测到串口存在dma传输的传输进程时,使能串口接收,通过所述串口接收通过dma传输的当前数据;

当检测到所述串口在设置时间周期内不存在dma传输的传输进程时,使能串口中断,所述串口dma传输的传输进程运行结束,使能串口清除空闲中断标志。

这里,所述串口为主控制器与nb模组进行通信的串口,如图3所示,主控制器包括发送引脚tx、接收引脚rx,nb模组包括发送引脚tx、接收引脚rx。所述主控制器的发送引脚tx与nb模组的接收引脚rx相连接,用于将主控制器的数据发送给nb模组;所述主控制器接收引脚rx与nb模组的发送引脚tx相连接,用于主控制器接收nb模组发送给主控制器的数据。

这里,所述dma传输是指所述主控制器与所述nb模组之间通过串口实现的数据传输,是数据在串口和内存之间的直接传输。具体的,mda传输主要包括主控制器的cpu向dma控制器下达指令,让dma控制器处理数据的传送实现。如此,dma传输在很大程度上减轻了cpu资源占有率,可以大大节省系统资源,并且还能有效增加主控制器的处于低功耗模式的时间。并且,可以实现在硬件逻辑机构的支持下,以更快的速度、更简便的形式传输数据。

具体地,主控制通过串口与nb模组进行通信包括,主控制器在初始化时,设置主控制器的内存中的发送/接收缓冲区的大小;主控制器初始化后,主控制器使能串口空闲中断标志,通过所述空闲中断标志检测主控制器接收引脚rx中是否存在dma传输的传输进程;当主控制器检测到主控制器的接收引脚rx中存在dma传输的传输进程时,即所述主控制器的接收引脚rx中存在数据的传输,则通过主控制器使能接收引脚rx接收dma传输的当前数据,使dma处理器将所述当前数据搬运到所设置的所述发送/接收缓冲区中;当主控制器检测到主控制器的接收引脚rx中在设置的时间周期内不存在dma传输的传输进程时,即在预设的时间周期内,检测到主控制器器的接收引脚rx不存在数据传输时,主控制器使能串口中断,即所述dma传输进程结束。如,当nb模组发送数据给主控制器,假设这帧数据长度是200个字节,那么所述空闲中断标志为:设置主控制器接收引脚在接收到一个字节的时候并不会产生串口中断,而是通过dma处理器把数据搬运到预先设置的接收/发送缓冲区里面,当整帧数据(200个字节)接收完毕之后,即在设定的时间周期内,比如10微秒内检测到没有数据传输时,使能主控制器的接收引脚rx产生一次中断,即结束所述数据包的传送。当所述dma传输进程结束时(即所述一个完整的数据包已传输完毕),主控制器使能主控制器的接收引脚rx清除空闲中断标志,即使能串口清除所述空闲中断标志。

需要说明的是,所述使能串口空闲中断标志,可以实现对串口的实时检测,判断所述主控制器与nb模组之间通信的各个数据包是否接收完毕,即可以实现使得主控制器接收nb模组发送过来的数据时,每发送完一个完整的数据包后才产生一次中断。如此,避免了现有技术中由于采用轮询方式而使得主控制器接收nb模组的数据时,每发送完一个字节都要产生一次中断而带来的功率损耗的弊端,从而大大降低了系统的功耗,提高了系统的性能,同时,还能减少由于多次中断而带来的时间上的浪费。另外,所述空闲中断标志对不定长数据的接收具有很强的实时性,这种方式有效地避免了主控制器的空转,从而达到了节省能耗的目的。

另外,需要在所述dma传输的传输进程运行结束时,使能串口清除空闲中断的标志,如此,可避免主控制器中的串口一直处于中断模式,干扰下一数据包的正常传输,确保系统保持稳定的数据传输的状态。

在一可选实施例中,所述使能串口清除空闲中断标志之后,还包括:

使能串口接收完成标志和接收数据长度标志;

其中,所述接收完成标志用于表征所述dma传输的传输进程已经结束,所述接收数据长度标志用于表征所述dma传输所传输数据的数据长度。

具体地,主控制器使能主控制器的接收引脚rx接收完成标志和接收数据长度标志。其中,通过所述接收完成标志可获知数据包是否已完全发送给主控制器,即确定所述dma传输的传输进程是否已经结束;通过接收数据长度标志可获知所接收的数据包包含多少字节,特别是当主控制器接收nb发送过来的不定长的数据时,可以知晓所接收到的数据包的数据长度,以便之后主控制器对所述数据包的使用。

下面通过具体实施例对本发明的技术方案作进一步详细说明。

实施例一

图4为本发明实施例一所述的多进程动态唤醒机制的时序图,其中进程a和进程b为业务进程,进程a和进程b周期性交替运行,横轴为时间轴。

如图4所示,在第一个进程a和进程b之间有一段空闲时间,为“空闲1”,这段空闲时间用来运行守护进程,通过守护进程触发主控制器进入低功耗模式。主控制器运行完进程a后,便进入“空闲1”,此时,关闭系统时钟,记录此时的系统时钟的时间为t1,并在守护进程中也就是进入“空闲1”的开始时刻,计算运行进程b的运行时间t2离当前系统时间t1还需要多长时间,即t2-t1=x,将x时间作为唤醒时间,即唤醒定时器的中断触发时间;等待x时间后,唤醒定时器会唤醒主控制器,使得主控制器运行进程b,此时,主控制器从低功耗模式进入工作模式,此时,开启系统时钟,将t1+x作为开启系统时钟时的系统时钟的时间,从而使得系统时钟时间得到有效补偿。

在进程b和下一个进程a之间也有一段空闲时间,为“空闲2”,这段空闲时间同样用来运行守护进程,通过守护进程触发主控制器进入低功耗模式。主控制器运行完进程b后,便进入“空闲2”,此时,关闭系统时钟,记录此时的系统时钟的时间为t3,并在守护进程中也就是“空闲2”的开始时刻,计算运行下一个进程a的时间t4离当前系统时间t3还需要多长时间,即t4-t3=y,将y时间作为唤醒时间,即唤醒定时器的中断触发时间;等待y时间后,唤醒定时器会唤醒主控制器,使得主控制器运行进程a,此时,主控制器从低功耗模式进入工作模式,此时,开启系统时钟,将t3+y作为开启系统时钟时的系统时钟的时间,从而使得系统时钟时间再次得到有效补偿。

如此,主控制器通过当每次没有业务进程运行时,即产生空闲时,通过运行守护进程进入低功耗模式,并计算下一待运行业务进程与当前系统时间的差值,以确定进入当前低功耗模式可以持续的最长时间,根据所述差值设置唤醒定时器的唤醒时间,便能使主控制器确定最合理的处于低功耗模式的时长,可以使得系统的实时性得到很好的保证前提下,使得系统处于低功耗模式的时间最长、能最大程度的降低系统的功耗。

实施例二

图5为本发明实施例二所述的多进程动态唤醒机制时序图,其中进程a和进程b为业务进程,进程c为外部中断进程,进程a和进程b周期性交替运行,横轴为时间轴。

如图5所示,在第一个进程a和进程b之间有一段空闲时间,为“空闲1”,这段空闲时间用来运行守护进程,通过守护进程触发主控制器进入低功耗模式。在主控制器运行完进程a后,便进入“空闲1”,此时,关闭系统时钟,记录此时的系统时钟的时间为t1,并在守护进程中也就是进入“空闲1”的开始时刻,计算运行进程b的运行时间t2离当前系统时间t1还需要多长时间,即t2-t1=x,将x时间作为唤醒时间,即唤醒定时器的中断触发时间;等待x时间后,唤醒定时器会唤醒主控制器,使得主控制器运行进程b,此时,主控制器从低功耗模式进入工作模式,此时,开启系统时钟,将t1+x作为开启系统时钟时的系统时钟的时间,从而使得系统时钟时间得到有效补偿。

在主控制器运行完b后,便进入“空闲2”,这段空闲时间同样用来运行守护进程,通过守护进程触发主控制器进入低功耗模式,此时,关闭系统时钟,记录此时系统时钟的时间为t3;在“空闲2”的时间段,即运行守护进程时,有外部中断进程c打断守护进程,即主控制器被外部中断进程c唤醒,从低功耗模式进入工作模式,开始运行进程c,在此时,记录进程c的运行时间为t4,计算进程c的运行时间t4与在前关闭系统时钟时的系统时间之间的差值y,并开启系统时钟,将y+t3的值作为此时开启系统时钟时的系统时钟的时间;等待所述进程c运行结束后,记录此时系统时钟的时间t5,进入“空闲3”,这段空闲时间同样运行守护进程,通过守护进程触发主控制器从所述工作模式进入低功耗模式,此时,重新关闭系统时钟,并重新计算下一个进程a的运行时间t6离当前系统时间t5的还需多长时间,即t6-t5=z,将z时间作为唤醒时间,即唤醒定时器的触发时间;等待z时间后,唤醒定时器会唤醒主控制器,使得主控制器运行进程a,此时,主控制器从低功耗模式进入工作模式,此时,开启系统时钟,将t5+y作为开启系统时钟时的系统时钟的时间,从而使得系统时钟时间再次得到有效补偿。

如此,主控制器当出现外部中断进程打断当前的低功耗模式时,可从当前的低功耗模式切换回工作模式,并根据外部中断进程的实际运行时间与在前进入低功耗模式时记录的系统时间对系统时钟进行补偿;在运行完外部中断进程时,再次切换到低功耗模式,并重新关闭系统时钟,重新计算下一待运行业务进程与当前系统时间之间的差值,得出了当前进入低功耗模式后可持续的最长时间,根据所述差值更新设置唤醒定时器的唤醒时间,从而主控制器可以确定最合理的处于低功耗模式的时长,使得系统的实时性得到很好的保证的前提下,使得系统处于低功耗模式的时间最长、能最大程度的降低系统的功耗。

需要说明的是,上述实施例一是以两个业务进程,实施例二是以两个业务进程、一个外部中断进程为例,对本申请实施例的低功耗控制方法进行示意性的说明,并对低功耗控制方法中通过进入低功耗模式时关闭系统时钟,并动态计算当前进入低功耗模式时可持续的最长时间的多进程动态唤醒机制的具体实现过程进行示意性的举例说明,可以理解的,在具体实施时,本发明实施例所提供的低功耗控制方法,包括但不仅限于两个业务进程、或两个业务进程和一个外部中断进程的情况,而可以适用于任意的两个以上的业务进程,或两个以上的业务进程和一个以上的外部中断进程的所有情况。

另外,结合上述实施例一和实施例二可知,本申请实施例的低功耗控制方法,通过多进程动态唤醒机制可以精确并动态调整低功耗模式的持续时间,避免依靠经验设置所述低功耗模式时间造成的实时性差或者所述低功耗模式时间不足的问题。

本发明实施例还提出了一种低功耗控制装置。如图6所示,为本申请实施例所提供的一种低功耗控制装置的可选的硬件结构示意图,所述装置包括:处理器41和用于存储能够在处理器41上运行的计算机程序的存储器42;其中,所述处理器41用于运行所述计算机程序时,实现本发明任一实施例所提供的低功耗控制方法。

本发明实施例还提出了一种低功耗控制装置,请参阅图7,所述低功耗控制装置包括:检测模块21、低功耗模块22、计时模块23和中断触发模块24;

检测模块21,用于在当前模式为工作模式时,检测是否存在正在进行的业务进程;

低功耗模块22,用于当未检测到正在进行的业务进程时,关闭系统时钟并从所述工作模式进入低功耗模式;

计时模块23,用于确定下一待业务进程的运行时间与当前系统时间之间的差值,根据所述差值设置唤醒时间;

中断触发模块24,用于当所述唤醒时间到期时从所述低功耗模式进入所述工作模式,并根据所述唤醒时间对所述系统时钟进行补偿。

可选地,如图6所示,所述装置还包括:外部中断触发模块25;

其中,所述外部中断触发模块25,用于当有外部中断进程时打断低功耗模式时,从所述低功耗模式进入所述工作模式,并运行所述外部中断进程;

所述低功耗模块22,用于待所述外部中断进程运行结束后,从所述工作模式进入低功耗模式。

可选地,所述外部中断触发模块25,还用于从所述低功耗模式进入所述工作模式,并运行所述外部中断进程,开启系统时钟,根据所述外部中断进程的运行时间与在前关闭系统时钟的系统时间之间的差值对当前系统时间进行补偿;

所述低功耗模块22,还用于待所述外部中断进程运行结束后,关闭系统时钟,并从所述工作模式进入低功耗模式;

所述计时模块23,还用于重新计算所述下一待运行业务进程的运行时间与当前系统时间之间的差值,并根据所述差值更新所述唤醒时间。

可选地,所述低功耗模块22,还用于待所述外部中断进程运行结束后,运行设置的守护进程,通过所述守护进程从所述工作模式进入低功耗模式。

可选地,所述低功耗模块22,还用于当未检测到正在运行的业务进程时,运行设置的守护进程,通过所述守护进程关闭系统时钟并从所述工作模式进入低功耗模式。

可选地,所述中断触发模块24,还用于开启系统时钟;还用于将所述唤醒时间作为补偿值对所述系统时钟进行补偿。

可选地,请再次参阅图7,所述装置还包括:串口通信模块26;

其中,所述串口通信模块26,用于在当前模式为工作模式时,通过串口与nb模组进行通信;其中,所述通过串口与nb模组进行通信,包括:

使能串口空闲中断标志,通过所述空闲中断标志检测串口是否存在串口dma传输的传输进程;

当检测到所述串口存在dma传输的传输进程时,使能串口接收,通过所述串口接收通过dma传输的当前数据;当检测到所述串口在设置时间周期内不存在dma传输的传输进程时,使能串口中断,所述串口dma传输的传输进程运行结束,使能串口清除空闲中断标志。

可选地,所述串口通信模块26,还用于使能串口接收完成标志和接收数据长度标志;其中,所述接收完成标志用于表征所述dma传输的传输进程已经结束,所述接收数据长度标志用于表征所述dma传输所传输数据的数据长度。

本发明实施例还提出了一种低功耗控制系统,请结合参阅图3和图8,所述系统包括:主控制器31和nb模组32,所述主控制器为实现本发明任一实施例中低功耗控制方法的低功耗控制装置,所述主控制器31与所述nb模组32通过串口方式进行交互。

可选地,所述主控制器31包括串口;所述主控制器31可以是微处理器mcu,所述mcu可以是stm32处理器;所述nb模组32为nb-iot模组。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明又一实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有可执行程序,所述可执行程序被处理器41执行时,可实现低功耗控制方法的以下步骤:

在当前模式为工作模式时,检测是否存在正在运行的业务进程;

当未检测到正在运行的业务进程时,关闭系统时钟并从所述工作模式进入低功耗模式;

确定下一待运行业务进程的运行时间与当前系统时间之间的差值,根据所述差值设置唤醒时间;

当所述唤醒时间到期时,从所述低功耗模式进入所述工作模式,并根据所述唤醒时间对所述系统时钟进行补偿。

可选地,所述可执行程序被处理器41执行时,还可以实现以下步骤:

当有外部中断进程打断低功耗模式时,从所述低功耗模式进入所述工作模式,并运行所述外部中断进程;

待所述外部中断进程运行结束后,从所述工作模式进入低功耗模式。

可选地,所述可执行程序被处理器41执行时,还用以实现以下步骤:

从所述低功耗模式进入所述工作模式,并运行所述外部中断进程,开启系统时钟,根据所述外部中断进程的运行时间与在前关闭系统时钟的系统时间之间的差值对当前系统时间进行补偿;

所述待所述外部中断进程运行结束后,从所述工作模式进入低功耗模式,包括:

待所述外部中断进程运行结束后,关闭系统时钟,并从所述工作模式进入低功耗模式,重新计算所述下一待运行业务进程的运行时间与当前系统时间之间的差值,并根据所述差值更新所述唤醒时间。

可选地,所述可执行程序被处理器41执行时,还用以实现以下步骤:

待所述外部中断进程运行结束后,运行设置的守护进程,通过所述守护进程从所述工作模式进入低功耗模式。

可选地,所述可执行程序被处理器41执行时,还用以实现以下步骤:

开启系统时钟;

将所述唤醒时间作为补偿值对所述系统时钟进行补偿。

可选地,所述可执行程序被处理器41执行时,还用以实现以下步骤:

其中,所述通过串口与nb模组进行通信,包括:

使能串口空闲中断标志,通过所述空闲中断标志检测串口是否存在dma传输的传输进程;

当检测到所述串口存在dma传输的传输进程时,使能串口接收,通过所述串口接收通过dma传输的当前数据;当检测到所述串口在设置时间周期内不存在dma传输的传输进程时,使能串口中断,所述串口dma传输的传输进程运行结束,使能串口清除空闲中断标志。

可选地,所述可执行程序被处理器41执行时,还用以实现以下步骤:

使能串口接收完成标志和接收数据长度标志;

其中,所述接收完成标志用于表征所述dma传输的传输进程已经结束,所述接收数据长度标志用于表征所述dma传输所传输数据的数据长度。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以所述权利要求的保护范围以准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1