CN110286739B - 远程遥测终端的功耗控制方法和装置 - Google Patents

远程遥测终端的功耗控制方法和装置 Download PDF

Info

Publication number
CN110286739B
CN110286739B CN201910443961.2A CN201910443961A CN110286739B CN 110286739 B CN110286739 B CN 110286739B CN 201910443961 A CN201910443961 A CN 201910443961A CN 110286739 B CN110286739 B CN 110286739B
Authority
CN
China
Prior art keywords
rtc
alarm
timer
task
base value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910443961.2A
Other languages
English (en)
Other versions
CN110286739A (zh
Inventor
周海洋
丁志龙
潘前华
刘振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HNAC Technology Co Ltd
Original Assignee
HNAC Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HNAC Technology Co Ltd filed Critical HNAC Technology Co Ltd
Priority to CN201910443961.2A priority Critical patent/CN110286739B/zh
Publication of CN110286739A publication Critical patent/CN110286739A/zh
Application granted granted Critical
Publication of CN110286739B publication Critical patent/CN110286739B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Electric Clocks (AREA)

Abstract

本申请涉及一种远程遥测终端的功耗控制方法、装置、计算机设备和存储介质。一个实施例中的方法包括:当侦测到外部中断信号时,唤醒并执行与外部中断信号对应的外部任务;获取内置RTC闹钟模块的当前时间基值,根据当前时间基值配置已创建的多个RTC定时器,由RTC定时器产生定时中断,定时中断用于唤醒并执行与RTC定时器对应的内部任务;当外部任务的任务状态以及内部任务的任务状态均为空闲状态时,控制外围设备进行入休眠模式,并自身进入深度休眠模式。通过外部中断信号唤醒处于深度休眠模式的远程遥测终端的处理器,使其执行外部中断任务;通过软件方法替代外围休眠管理电路进行深度休眠管理,降低了硬件设计复杂度。

Description

远程遥测终端的功耗控制方法和装置
技术领域
本发明涉及通信技术领域,特别是涉及一种远程遥测终端的功耗控制方法、装置、计算机设备和存储介质。
背景技术
远程遥测终端主要用于远程遥测数据采集,一般运行于无值守或偏远地区。远程遥测终端装置主要采用单片机作为主控制器,在远程遥测终端不执行采集任务时,处于低功耗模式。
为使远程遥测终端长期稳定运行,一般需要采用某些手段降低功耗。传统的做法是采用额外的休眠管理电路来实现休眠唤醒和低功耗,休眠管理电路在远程遥测终端需要执行采集任务时,唤醒终端,退出低功耗模式。休眠管理电路的存在导致远程遥测硬件设计存在复杂度高的问题。
发明内容
基于此,有必要针对上述问题,提供一种可以降低硬件设计复杂度的远程遥测终端的功耗控制方法、装置、计算机设备和存储介质。
一种远程遥测终端的功耗控制方法,包括:
当侦测到外部中断信号时,唤醒并执行与所述外部中断信号对应的外部任务;
获取内置RTC闹钟模块的当前时间基值,根据所述当前时间基值配置已创建的多个RTC定时器,由所述RTC定时器产生定时中断,所述定时中断用于唤醒并执行与所述RTC定时器对应的内部任务;
当所述外部任务的任务状态以及所述内部任务的任务状态均为空闲状态时,控制外围设备进行入休眠模式,并自身进入深度休眠模式。
在一个实施例中,所述根据所述当前时间基值配置已创建的多个RTC定时器,包括:
获取已创建的多个RTC定时器的闹铃基值;
根据所述当前时间基值以及所述多个RTC定时器的闹铃基值,将离所述当前时间基值最近的RTC定时器的闹铃基值设置为所述RTC闹钟模块的闹铃时间。
在一个实施例中,所述获取RTC闹钟模块的当前时间基值以及所述多个RTC定时器的闹铃基值,包括:
获取RTC闹钟模块的当前时间以及所述多个RTC定时器的闹铃时间,并对所述闹铃时间进行闹铃类型标记,所述闹铃类型包括整点闹铃和非整点闹铃;
将所述当前时间中的时、分、秒字段相加,得到RTC闹钟模块的当前时间基值;
当所述闹铃时间对应的闹铃类型为整点闹铃时,将所述当前时间中的小时字段加1,结合所述闹铃时间中的分字段和秒字段,分别得到所述多个RTC定时器的闹铃基值;
当所述闹铃时间对应的闹铃类型为非整点闹铃时,将所述当前时间加上所述闹铃时间,分别得到所述多个RTC定时器的闹铃基值。
在一个实施例中,所述由所述RTC定时器产生定时中断,包括:
获取定时器列表中各个所述RTC定时器的当前闹铃基值;
当所述RTC定时器的当前闹铃基值等于所述当前时间基值时,调用与所述RTC定时器对应的回调函数,以执行与所述RTC定时器对应的任务;
获取所述RTC定时器的闹铃时间,根据所述闹铃时间以及所述当前时间基值对应的时间,得到所述RTC定时器的闹铃基值;
以所述RTC定时器的闹铃基值对所述RTC定时器的当前闹铃基值进行更新,并判断所述RTC定时器是否为定时器列表中最后一个定时器;
当所述RTC定时器为定时器列表中最后一个定时器时,将离所述当前时间基值最近的RTC定时器的当前闹铃基值设置为所述RTC闹铃模块的下一次闹铃时间。
在一个实施例中,当所述RTC定时器的当前闹铃基值不等于所述当前时间基值时,进入所述判断所述RTC定时器是否为定时器列表中最后一个定时器的步骤。
在一个实施例中,当所述RTC定时器不为定时器列表中最后一个定时器时,进入所述获取定时器列表中各个所述RTC定时器的当前闹铃基值的步骤。
在一个实施例中,所述当所述外部任务的任务状态以及所述内部任务的任务状态均为空闲状态时,控制外围设备进行入休眠模式,并自身进入深度休眠模式之前,还包括:
为所述外部任务和所述内部任务中的各任务分配一个忙状态标志位,在对所述各所述任务进行处理前,将每个任务对应的忙状态标志位置位,在对所述每个任务的处理结束时,将所述每个任务对应的忙状态标志位置零;
通过检测所述每个任务对应的忙状态标志位,得到所述每个任务的任务状态。
一种远程遥测终端的功耗控制装置,所述装置包括:
外部处理模块,用于当侦测到外部中断信号时,唤醒并执行与所述外部中断信号对应的外部任务;
内部处理模块,用于获取内置RTC闹钟模块的当前时间基值,根据所述当前时间基值配置已创建的多个RTC定时器,由所述RTC定时器产生定时中断,所述定时中断用于唤醒并执行与所述RTC定时器对应的内部任务;
休眠管理模块,用于当所述外部任务的任务状态以及所述内部任务的任务状态均为空闲状态时,控制外围设备进行入休眠模式,并自身进入深度休眠模式。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当侦测到外部中断信号时,唤醒并执行与所述外部中断信号对应的外部任务;
获取内置RTC闹钟模块的当前时间基值,根据所述当前时间基值配置已创建的多个RTC定时器,由所述RTC定时器产生定时中断,所述定时中断用于唤醒并执行与所述RTC定时器对应的内部任务;
当所述外部任务的任务状态以及所述内部任务的任务状态均为空闲状态时,控制外围设备进行入休眠模式,并自身进入深度休眠模式。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当侦测到外部中断信号时,唤醒并执行与所述外部中断信号对应的外部任务;
获取内置RTC闹钟模块的当前时间基值,根据所述当前时间基值配置已创建的多个RTC定时器,由所述RTC定时器产生定时中断,所述定时中断用于唤醒并执行与所述RTC定时器对应的内部任务;
当所述外部任务的任务状态以及所述内部任务的任务状态均为空闲状态时,控制外围设备进行入休眠模式,并自身进入深度休眠模式。
上述远程遥测终端的功耗控制方法、装置、计算机设备和存储介质,当外围设备需要向远程遥测终端请求处理突发任务时,可以通过外部中断信号唤醒处于深度休眠模式的远程遥测终端的处理器,使其执行外部任务;利用RTC闹钟模块的当前时间基值配置已创建的RTC定时器,通过RTC定时器产生定时中断,通过定时中断唤醒并执行RTC定时器对应的内部任务;在每个任务的任务状态均为空闲状态时,控制外围设备进入休眠模式,同时控制处理器自身进入深度休眠模式,以节约功耗;通过深度休眠实现了降低功耗,通过RTC闹钟进行定时唤醒管理,解决了休眠时定时任务的启动问题,采用外部唤醒中断唤醒处理器,使具备处理突发任务的能力,通过软件方法替代外围休眠管理电路进行深度休眠管理,降低了硬件设计复杂度。
附图说明
图1为一个实施例中远程遥测终端的功耗控制方法的应用环境图;
图2为一个实施例中远程遥测终端的功耗控制方法的流程示意图;
图3为一个实施例中定时器设置步骤的流程示意图;
图4为一个实施例中定时器中断步骤的流程示意图;
图5为一个实施例中远程遥测终端的功耗控制装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的远程遥测终端的功耗控制方法,可以应用于如图1所示的应用环境中。处理器内置RTC闹钟模块、时钟控制模块以及功率控制模块,各模块通过内部总线与处理器连接。外围设备将其中断信号直接接入或通过并联方式并入可屏蔽中断、外部中断或通用输入/输出中断这三种中的至少任意一种,便可将处理器从深度休眠模式唤醒。
在一个实施例中,如图2所示,提供了一种远程遥测终端的功耗控制方法,以所述方法应用于图1中的处理器为例,包括以下步骤:
S202,当侦测到外部中断信号时,唤醒并执行与外部中断信号对应的外部任务。
外部中断信号由外围设备发出,外部中断信号的类型包括不可屏蔽中断、外部中断以及通用输入/输出中断。处理器具体可以是支持功率控制的LPC178x/177x系列低功耗ARM处理器,该系列处理器支持深度休眠,允许在保留寄存器状态的条件下,关闭主振荡器和时钟以节约功耗,并且含内置RTC(Real-Time Clock,实时时钟)时钟。
S204,获取内置RTC闹钟模块的当前时间基值,根据当前时间基值配置已创建的多个RTC定时器,由RTC定时器产生定时中断,定时中断用于唤醒并执行与RTC定时器对应的内部任务。
LPC178x/177x系列处理器只包含一个RTC闹钟,且一次只能设置一个闹铃中断,因此需要构建软件RTC定时器以满足多个任务同时定时的需求。考虑到定时任务最大周期一般不会超过一天,因此,RTC闹钟仅使用时、分、秒字段进行定时。
每个RTC定时器以秒为单位记录一个闹铃基值,同时保存闹铃类型标记,闹铃类型标记用来标识其为整点闹铃或非整点闹铃。在创建RTC定时器时,注册回调函数,并记录外部输入的闹铃时间和闹铃类型标记,依据闹铃类型标记计算定时值和闹铃基值。先读取RTC当前时间,如果RTC定时器的闹铃类型为整点闹铃,则忽略外部输入定时时间的小时字段,使用RTC当前时间的小时字段加1,结合外部设定闹铃时间周期的分字段和秒字段,得到当前RTC定时器的定时值,将定时值的时、分、秒字段转化为秒,并相加即可得到当前RTC定时器的闹铃基值。若闹铃类型为非整点闹铃,则外部设定的闹铃时间周期代表闹铃间隔,此时将外部输入的闹铃时间周期加上RTC当前时间,得到当前RTC定时器的定时值,将定时值转化为秒得到闹铃基值。将RTC当前时间值转化为秒计算出当前时间基值,通过比较所有启用的RTC定时器的闹铃基值和当前时间基值,找出离RTC当前时间的时间间隔最近的一个RTC定时器的定时值,将此定时值设置为RTC硬件闹铃时间。与此同时,在RTC闹铃中断中获取RTC当前时间的时、分、秒字段,转化为秒并相加得到当前时间基值,依次判断每个RTC定时器的闹铃基值和当前时间基值是否相等,若相等则执行对应的回调函数,并以RTC当前时间为基准,依据是否为整点定时,按不同策略更新当前RTC定时器的定时值和时间基值,并在所有启用的RTC定时器中查找离RTC当前时间的时间间隔最近的一个RTC定时器的定时值,将其设置为下一次闹铃时间,从而实现循环定时功能。
S206,当外部任务的任务状态和内部任务的任务状态均为空闲状态时,控制外围设备进行入休眠模式,并自身进入深度休眠模式。
获取每个任务对应的休眠回调函数,休眠回调函数用于关闭外围设备的电源或控制外围设备进入休眠状态;当每个任务的任务状态均为空闲状态时,执行每个任务对应的休眠回调函数,以关闭与外围设备的电源,并关闭处理器的主振荡器和时钟。当外部任务的任务状态和内部任务的任务状态均为空闲状态时,控制外围设备进行入休眠模式,并自身进入深度休眠模式之前,还包括:为外部任务和内部任务中的各任务分配一个忙状态标志位,在对各任务进行处理前,将每个任务对应的忙状态标志位置位,在对每个任务的处理结束时,将每个任务对应的忙状态标志位置零;通过检测每个任务对应的忙状态标志位,得到每个任务的任务状态。采用忙状态标志位对任务进行状态管理,为每个任务分配一个忙状态标志位,并提供一个休眠回调函数,休眠回调函数由任务自行定义,可用于关闭外围设备电源,以迫使外围设备进入休眠模式。在对每个任务进行处理前,先将每个任务对应的忙状态标志位置位,表示进入忙状态;在对每个任务的处理结束时,将每个任务对应的忙状态标志位置零,表示任务当前所有事务执行完毕并处于空闲态。检测每个任务的忙状态标志位,当所有任务处于空闲状态时,先执行每个任务的休眠回调函数,再控制处理器进入深度休眠状态。
上述远程遥测终端的功耗控制方法,当外围设备需要向远程遥测终端请求处理突发任务时,可以通过外部中断信号唤醒处于深度休眠模式的远程遥测终端的处理器,使其执行外部任务;利用RTC闹钟模块的当前时间基值配置已创建的RTC定时器,通过RTC定时器产生定时中断,通过定时中断唤醒并执行RTC定时器对应的内部任务;在每个任务的任务状态均为空闲状态时,控制外围设备进入休眠模式,同时控制处理器自身进入深度休眠模式,以节约功耗;通过深度休眠实现了降低功耗,通过RTC闹钟进行定时唤醒管理,解决了休眠时定时任务的启动问题,采用外部唤醒中断唤醒处理器,使具备处理突发任务的能力,通过软件方法替代外围休眠管理电路进行深度休眠管理,降低了硬件设计复杂度。
在一个实施例中,如图3所示,根据当前时间基值配置已创建的多个RTC定时器,包括:步骤302,获取已创建的多个RTC定时器的闹铃基值;步骤304,根据当前时间基值以及多个RTC定时器的闹铃基值,将离当前时间基值最近的RTC定时器的闹铃基值设置为RTC闹钟模块的闹铃时间。获取RTC闹钟模块的当前时间基值以及多个RTC定时器的闹铃基值,包括:获取RTC闹钟模块的当前时间以及多个RTC定时器的闹铃时间,并对闹铃时间进行闹铃类型标记,闹铃类型包括整点闹铃和非整点闹铃;将当前时间中的时、分、秒字段相加,得到RTC闹钟模块的当前时间基值;当闹铃时间对应的闹铃类型为整点闹铃时,将当前时间中的小时字段加1,结合闹铃时间中的分字段和秒字段,分别得到多个RTC定时器的闹铃基值;当闹铃时间对应的闹铃类型为非整点闹铃时,将当前时间加上闹铃时间,分别得到多个RTC定时器的闹铃基值。
所有定时任务共用一个RTC闹铃模块,通过向RTC闹铃模块申请创建软件定时器并注册回调函数,用于定时唤醒CPU,并产生定时回调,执行整点定时或间隔定时任务。可以通过预设创建函数,创建多个RTC定时器,比如可以通过CreateTimeService()函数创建RTC定时器。定时器模块内部针对整点定时和间隔定时任务的下一次定时时间计算采用不同策略。计算间隔定时任务的下一次定时时间时,分别将小时、分和秒字段与RTC当前时间相应字段简单相加;而计算整点定时任务的下一次定时时间时,需保留RTC当前时间的小时字段并加1,同时结合外部设定周期的分字段和秒字段,得到下一次的定时时间。最后,在所有软定时器定时时间中,查找距离RTC当前时间最近的软定时器定时时间,并将其设置为闹铃时间。例如,RTC当前时间为15点00分00秒(对应的当前时间基值为54000),软定时器模块中已有两个定时器分别为A和B,A的定时时间为15点10分00秒,A为周期定时器,周期为00点10分00秒,闹铃时间基值为54600(15*3600+10*60+0=54600)。B的定时时间为16点00分00秒,B为整点定时器,分字段和秒字段设定值均为0,闹铃时间基值为57600。此时,新创建一个定时器C,C为周期定时器,设定周期为00点05分00秒,则通过计算可得到其定时时间为15点05分00秒,闹铃时间基值为54300。定时器C新加入进来后,需要更新RTC硬件闹铃设置,检索A、B、C软定时器发现,定时器C的时间基值54300与当前时间基值54000距离最近,则将C的定时时间15点05分00秒设定为RTC硬件的闹铃时间。
在一个实施例中,如图4所示,由RTC定时器产生定时中断,包括:步骤402,获取定时器列表中各个RTC定时器的当前闹铃基值;步骤404,当RTC定时器的当前闹铃基值等于当前时间基值时,调用与RTC定时器对应的回调函数,以执行与RTC定时器对应的任务;步骤406,获取RTC定时器的闹铃时间,根据闹铃时间以及当前时间基值对应的时间,得到RTC定时器的闹铃基值;步骤408,以RTC定时器的闹铃基值对RTC定时器的当前闹铃基值进行更新,并判断RTC定时器是否为定时器列表中最后一个定时器;步骤410,当RTC定时器为定时器列表中最后一个定时器时,将离当前时间基值最近的RTC定时器的当前闹铃基值设置为RTC闹铃模块的下一次闹铃时间。当RTC定时器的当前闹铃基值不等于当前时间基值时,进入判断RTC定时器是否为定时器列表中最后一个定时器的步骤。当RTC定时器不为定时器列表中最后一个定时器时,进入获取定时器列表中各个RTC定时器的当前闹铃基值的步骤。根据闹铃时间以及当前时间基值对应的时间,得到RTC定时器的闹铃基值,包括:当闹铃时间对应的闹铃类型为整点闹铃时,将当前时间基值对应的时间中的小时字段加1,结合闹铃时间中的分字段和秒字段,得到RTC定时器的闹铃基值;当闹铃时间对应的闹铃类型为非整点闹铃时,将当前时间基值对应的时间加上闹铃时间,得到RTC定时器的闹铃基值。
通过RTC定时中断唤醒处理器,执行相应回调函数并更新相应软定时器的定时时间值。当定时中断到来时,先获取RTC当前时间的时、分、秒字段,转化为秒并相加得到当前时间基值,再遍历每一个软定时器,若某个软定时器的闹铃基值等于当前时间基值,则执行该软定时器对应的回调函数,并对该定时器下一次闹铃时间进行更新调整。若该定时器为整点定时,则将其定时时间的小时字段向前增加1小时,即可得到定时值;否则将外部设定的定时时间周期加上RTC当前时间,得到定时值,并将该定时值时、分、秒字段转化为秒相加后,得到闹铃基值。最后遍历所有启用的软定时器,找出距离RTC当前时间最近的一个定时值,将此定时值设置为下一次闹铃时间。
以RTC硬件的闹铃时间15点05分00秒为例,当闹铃到来时,RTC闹铃中断执行,此时读取RTC当前时间为15点05分00秒,得到当前时间基值为54300。检索A、B、C软定时器,C定时器闹铃基值与当前基值相等,则调用C的回调函数,并重新计算C的定时时间(仅须更新C的定时时间,A、B未闹铃无须更新)。由于C的设定周期为00点05分00秒且为周期定时器,通过其周期与当前时间相加得到下一次定时时间为15点10分00秒,下一次闹铃基值为54600。通过比较A、B、C软定时器闹铃基值,发现A距离当前时间基值54300最近,则将RTC硬件的下一次闹铃时间设置为15点10分00秒。
在一个实施例中,以LPC178x/177x系列芯片作为远程遥测终端的处理器为例,芯片内置RTC。按照处理器所要实现的功能,处理器包括休眠管理模块、RTC定时器模块和外设中断处理模块,其中,软件休眠管理模块通过内部总线连接时钟控制和功率控制,RTC定时器模块通过内部总线连接RTC,外设中断处理模块通过内部总线连接不可屏蔽中断控制、外部中断控制或通用输入/输出中断控制。外围设备将其中断信号直接接入或通过并联方式并入不可屏蔽中断、外部中断或通用输入/输出中断这三种可将处理器从深度休眠状态下唤醒的中断。
在远程遥测终端的任务状态为空闲状态时,即内部定时任务和外部突发任务的任务状态均为空闲状态时,处理器控制外围设备进入掉电或休眠状态,同时控制自身处于深度休眠模式,关闭主振荡器和时钟以节约功耗。通过可唤醒中断实现对处理器的唤醒,具体来说,通过RTC闹钟定时唤醒处理器执行内部定时任务,利用外部唤醒中断唤醒处理器执行外部突发任务。可唤醒中断包括RTC中断、不可屏蔽中断、外部中断、通用输入/输出中断,通过可唤醒中断可将处理器从深度休眠模式唤醒。
RTC定时器模块用于通过RTC闹钟定时唤醒处理器执行内部定时任务。由于LPC178x/177x系列芯片只包含一个RTC硬件定时器,且一次只能设置一个闹铃中断,因此需构建多个软定时器以满足多个任务同时定时的需求。基于定时任务的最大周期一般不超过一天考虑,RTC闹钟使用时、分、秒字段进行定时。所有定时任务共用一个RTC硬件定时器,通过向RTC定时器模块申请创建软定时器并注册回调函数,用于定时唤醒处理器,产生定时回调,执行整点定时或间隔定时任务。
RTC定时器模块内部对于整点定时和间隔定时任务采用不同策略计算下一次定时时间。具体地,在计算间隔定时任务的下一次定时时间时,分别将小时、分和秒字段与RTC当前时间的对应字段相加;而在计算整点定时任务的下一次定时时间时,保留RTC当前时间的小时字段并加1,同时结合软定时器设定周期的分字段和秒字段,得到下一次定时时间。在所有软定时器的定时时间中,查找距离RTC当前时间最近的软定时器的定时时间,并将其设置为RTC硬件闹铃时间。
通过RTC定时中断唤醒处理器,执行软定时器对应的回调函数并更新软定时器对应的定时时间。当定时中断到来时,先获取RTC当前时间的时、分、秒字段,将其转化为秒并相加得到当前时间基值。再遍历每一个软定时器,若该软定时器闹铃基值等于当前时间基值,则执行该软定时器对应的回调函数,并对该软定时器的下一次闹铃时间进行更新调整。对该软定时器的下一次闹铃时间更新调整包括:若该软定时器为整点定时,则将其定时时间的小时字段向前增加1小时,即可得到定时时间;否则将软定时器设定的定时时间周期加上RTC当前时间,得到定时时间;将定时时间的时、分、秒字段转化秒相加后,得到闹铃基值。最后遍历所有启用的软定时器,找出距离RTC当前时间最近的一个定时时间,将此定时时间设置为RTC硬件的下一次闹铃时间。
例如,RTC当前时间为15点00分00秒(此时对应的当前时间基值为54000),RTC定时器模块中已有两个软定时器A和B。A的定时时间为15点10分00秒,A为周期定时器,周期为00点10分00秒,闹铃基值为54600(15*3600+10*60+0=54600)。B的定时时间为16点00分00秒,B为整点定时器,分字段和秒字段设定值均为0,闹铃基值为57600。此时,新创建一个软定时器C,C为周期定时器,设定周期为00点05分00秒。通过计算可得到C的定时时间为15点05分00秒,闹铃基值为54300。软定时器C新加入进来后,更新RTC硬件闹铃设置,在软定时器A、B、C中,软定时器C的时间基值54300与当前时间基值54000距离最近,将C的定时时间15点05分00秒设定为RTC硬件的下一次闹铃时间。
将软定时器C的定时时间15点05分00秒设定为RTC硬件的下一次闹铃时间,随着时间的推移,当闹铃到来时,RTC闹铃中断执行,此时读取RTC当前时间为15点05分00秒,得到当前时间基值为54300,在软定时器A、B、C中,软定时器C闹铃基值与当前基值相等,因此调用C对应的回调函数,并重新计算C的定时时间,此时仅须更新C的定时时间,A、B未闹铃无须更新。由于C的设定周期为00点05分00秒且为周期定时器,通过其周期与当前时间相加得到下一次定时时间为15点10分00秒,下一次闹铃基值为54600。通过比较A、B、C软定时器闹铃基值,将RTC硬件的下一次闹铃时间设置为15点10分00秒。
休眠管理模块用于在检测到远程遥测终端的任务状态为空闲状态时,控制外围设备进入掉电或休眠状态,同时控制自身处于深度休眠模式。通过采用忙状态标志位对各个任务的任务状态进行管理,为每个任务分配一个忙状态标志位,并提供一个对应的休眠回调函数,休眠回调函数可由任务自行定义,可用于关闭外围设备电源或控制外围设备进入休眠模式。在每个任务执行处理过程前,先将其对应的忙状态位置位,表示进入忙状态,再进行下一步处理;处理过程执行完毕后,再将其对应的忙状态位清除,表示该任务当前所有事务执行完毕并处于空闲状态。检测每个任务的忙状态标志位,当所有任务的任务状态处于空闲状态时,先执行每个任务的休眠回调函数,再控制处理器进入深度休眠模式。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种远程遥测终端的功耗控制装置,如图5所示,远程遥测终端的功耗控制装置包括外部处理模块502、内部处理模块504以及休眠管理模块506。其中,外部处理模块,用于当侦测到外部中断信号时,唤醒并执行与外部中断信号对应的外部任务;内部处理模块,用于获取内置RTC闹钟模块的当前时间基值,根据当前时间基值配置已创建的多个RTC定时器,由RTC定时器产生定时中断,定时中断用于唤醒并执行与RTC定时器对应的内部任务;休眠管理模块,用于当外部任务的任务状态以及内部任务的任务状态均为空闲状态时,控制外围设备进行入休眠模式,并自身进入深度休眠模式。
在一个实施例中,内部处理模块还用于获取已创建的多个RTC定时器的闹铃基值;根据当前时间基值以及多个RTC定时器的闹铃基值,将离当前时间基值最近的RTC定时器的闹铃基值设置为RTC闹钟模块的闹铃时间。
在一个实施例中,内部处理模块还用于获取RTC闹钟模块的当前时间以及多个RTC定时器的闹铃时间,并对闹铃时间进行闹铃类型标记,闹铃类型包括整点闹铃和非整点闹铃;将当前时间中的时、分、秒字段相加,得到RTC闹钟模块的当前时间基值;当闹铃时间对应的闹铃类型为整点闹铃时,将当前时间中的小时字段加1,结合闹铃时间中的分字段和秒字段,分别得到多个RTC定时器的闹铃基值;当闹铃时间对应的闹铃类型为非整点闹铃时,将当前时间加上闹铃时间,分别得到多个RTC定时器的闹铃基值。
在一个实施例中,内部处理模块还用于获取定时器列表中各个RTC定时器的当前闹铃基值;当RTC定时器的当前闹铃基值等于当前时间基值时,调用与RTC定时器对应的回调函数,以执行与RTC定时器对应的任务;获取RTC定时器的闹铃时间,根据闹铃时间以及当前时间基值对应的时间,得到RTC定时器的闹铃基值;以RTC定时器的闹铃基值对RTC定时器的当前闹铃基值进行更新,并判断RTC定时器是否为定时器列表中最后一个定时器;当RTC定时器为定时器列表中最后一个定时器时,将离当前时间基值最近的RTC定时器的当前闹铃基值设置为RTC闹铃模块的下一次闹铃时间。
在一个实施例中,内部处理模块还用于当RTC定时器的当前闹铃基值不等于当前时间基值时,进入判断RTC定时器是否为定时器列表中最后一个定时器的步骤。
在一个实施例中,内部处理模块还用于当RTC定时器不为定时器列表中最后一个定时器时,进入获取定时器列表中各个RTC定时器的当前闹铃基值的步骤。
在一个实施例中,休眠管理模块之前,还包括:任务状态获取模块,用于为外部任务和内部任务中的各任务分配一个忙状态标志位,在对各任务进行处理前,将每个任务对应的忙状态标志位置位,在对每个任务的处理结束时,将每个任务对应的忙状态标志位置零;检测每个任务对应的忙状态标志位,得到每个任务的任务状态。
关于远程遥测终端的功耗控制装置的具体限定可以参见上文中对于远程遥测终端的功耗控制装置方法的限定,在此不再赘述。上述远程遥测终端的功耗控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储任务状态、RTC当前时间、闹铃基值等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种远程遥测终端的功耗控制方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现任一实施例中远程遥测终端的功耗控制方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现任一实施例中远程遥测终端的功耗控制方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种远程遥测终端的功耗控制方法,其特征在于,包括:
当侦测到外部中断信号时,唤醒并执行与所述外部中断信号对应的外部任务;
获取内置RTC闹钟模块的当前时间基值,根据所述当前时间基值配置已创建的多个RTC定时器,由所述RTC定时器产生定时中断,所述定时中断用于唤醒并执行与所述RTC定时器对应的内部任务;
所述由所述RTC定时器产生定时中断,包括:获取定时器列表中各个所述RTC定时器的当前闹铃基值;当所述RTC定时器的当前闹铃基值等于所述当前时间基值时,调用与所述RTC定时器对应的回调函数,以执行与所述RTC定时器对应的任务;获取所述RTC定时器的闹铃时间,根据所述闹铃时间以及所述当前时间基值对应的时间,得到所述RTC定时器的闹铃基值;以所述RTC定时器的闹铃基值对所述RTC定时器的当前闹铃基值进行更新,并判断所述RTC定时器是否为定时器列表中最后一个定时器;当所述RTC定时器为定时器列表中最后一个定时器时,将离所述当前时间基值最近的RTC定时器的当前闹铃基值设置为所述RTC闹铃模块的下一次闹铃时间;
当所述外部任务的任务状态以及所述内部任务的任务状态均为空闲状态时,控制外围设备进行入休眠模式,并自身进入深度休眠模式。
2.根据权利要求1所述的方法,其特征在于,所述根据所述当前时间基值配置已创建的多个RTC定时器,包括:
获取已创建的多个RTC定时器的闹铃基值;
根据所述当前时间基值以及所述多个RTC定时器的闹铃基值,将离所述当前时间基值最近的RTC定时器的闹铃基值设置为所述RTC闹钟模块的闹铃时间。
3.根据权利要求2所述的方法,其特征在于,所述获取所述RTC闹钟模块的当前时间基值以及所述多个RTC定时器的闹铃基值,包括:
获取RTC闹钟模块的当前时间以及所述多个RTC定时器的闹铃时间,并对所述闹铃时间进行闹铃类型标记,所述闹铃类型包括整点闹铃和非整点闹铃;
将所述当前时间中的时、分、秒字段相加,得到RTC闹钟模块的当前时间基值;
当所述闹铃时间对应的闹铃类型为整点闹铃时,将所述当前时间中的小时字段加1,结合所述闹铃时间中的分字段和秒字段,分别得到所述多个RTC定时器的闹铃基值;
当所述闹铃时间对应的闹铃类型为非整点闹铃时,将所述当前时间加上所述闹铃时间,分别得到所述多个RTC定时器的闹铃基值。
4.根据权利要求1所述的方法,其特征在于,所述外部中断信号由所述外围设备发出,所述外部中断信号的类型包括不可屏蔽中断、外部中断以及通用输入/输出中断。
5.根据权利要求1所述的方法,其特征在于,还包括:
当所述RTC定时器的当前闹铃基值不等于所述当前时间基值时,进入所述判断所述RTC定时器是否为定时器列表中最后一个定时器的步骤。
6.根据权利要求1所述的方法,其特征在于,还包括:
当所述RTC定时器不为定时器列表中最后一个定时器时,进入所述获取定时器列表中各个所述RTC定时器的当前闹铃基值的步骤。
7.根据权利要求1所述的方法,其特征在于,所述当所述外部任务的任务状态以及所述内部任务的任务状态均为空闲状态时,控制外围设备进行入休眠模式,并自身进入深度休眠模式之前,还包括:
为所述外部任务和所述内部任务中的各任务分配一个忙状态标志位,在对所述各所述任务进行处理前,将每个任务对应的忙状态标志位置位,在对所述每个任务的处理结束时,将所述每个任务对应的忙状态标志位置零;
通过检测所述每个任务对应的忙状态标志位,得到所述每个任务的任务状态。
8.一种远程遥测终端的功耗控制装置,其特征在于,所述装置包括:
外部处理模块,用于当侦测到外部中断信号时,唤醒并执行与所述外部中断信号对应的外部任务;
内部处理模块,用于获取内置RTC闹钟模块的当前时间基值,根据所述当前时间基值配置已创建的多个RTC定时器,由所述RTC定时器产生定时中断,所述定时中断用于唤醒并执行与所述RTC定时器对应的内部任务;
定时中断模块,用于所述由所述RTC定时器产生定时中断,包括:获取定时器列表中各个所述RTC定时器的当前闹铃基值;当所述RTC定时器的当前闹铃基值等于所述当前时间基值时,调用与所述RTC定时器对应的回调函数,以执行与所述RTC定时器对应的任务;获取所述RTC定时器的闹铃时间,根据所述闹铃时间以及所述当前时间基值对应的时间,得到所述RTC定时器的闹铃基值;以所述RTC定时器的闹铃基值对所述RTC定时器的当前闹铃基值进行更新,并判断所述RTC定时器是否为定时器列表中最后一个定时器;当所述RTC定时器为定时器列表中最后一个定时器时,将离所述当前时间基值最近的RTC定时器的当前闹铃基值设置为所述RTC闹铃模块的下一次闹铃时间;
休眠管理模块,用于当所述外部任务的任务状态以及所述内部任务的任务状态均为空闲状态时,控制外围设备进行入休眠模式,并自身进入深度休眠模式。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201910443961.2A 2019-05-27 2019-05-27 远程遥测终端的功耗控制方法和装置 Active CN110286739B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910443961.2A CN110286739B (zh) 2019-05-27 2019-05-27 远程遥测终端的功耗控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910443961.2A CN110286739B (zh) 2019-05-27 2019-05-27 远程遥测终端的功耗控制方法和装置

Publications (2)

Publication Number Publication Date
CN110286739A CN110286739A (zh) 2019-09-27
CN110286739B true CN110286739B (zh) 2021-02-05

Family

ID=68002312

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910443961.2A Active CN110286739B (zh) 2019-05-27 2019-05-27 远程遥测终端的功耗控制方法和装置

Country Status (1)

Country Link
CN (1) CN110286739B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112104926B (zh) * 2020-11-17 2021-07-13 钛能科技股份有限公司 一种低功耗物联网型遥测终端机
CN114698072B (zh) * 2022-03-21 2024-04-26 沈阳中科奥维科技股份有限公司 Wia-pa无线振动变送器的低功耗电路及控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1749887A (zh) * 2004-09-13 2006-03-22 华为技术有限公司 一种在电子设备中实现多点闹钟的方法
CN102289279A (zh) * 2011-09-01 2011-12-21 上海果壳电子有限公司 一种基于rtc时钟中断的设备管理方法及装置
CN203012943U (zh) * 2013-01-06 2013-06-19 北京邮电大学 一种低功耗无线可控唤醒的传感节点
CN104111850A (zh) * 2014-07-17 2014-10-22 上海庆科信息技术有限公司 一种降低微控制单元mcu功耗的方法及系统
CN109324680A (zh) * 2018-08-01 2019-02-12 北京拜克洛克科技有限公司 嵌入式处理器及其功耗优化方法和智能锁

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4278884B2 (ja) * 2001-03-29 2009-06-17 株式会社リコー 通信機能を有する画像形成装置およびその制御方法
CN101707674B (zh) * 2009-11-04 2013-08-07 中兴通讯股份有限公司 支持cmmb功能的终端降功耗的方法及该终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1749887A (zh) * 2004-09-13 2006-03-22 华为技术有限公司 一种在电子设备中实现多点闹钟的方法
CN102289279A (zh) * 2011-09-01 2011-12-21 上海果壳电子有限公司 一种基于rtc时钟中断的设备管理方法及装置
CN203012943U (zh) * 2013-01-06 2013-06-19 北京邮电大学 一种低功耗无线可控唤醒的传感节点
CN104111850A (zh) * 2014-07-17 2014-10-22 上海庆科信息技术有限公司 一种降低微控制单元mcu功耗的方法及系统
CN109324680A (zh) * 2018-08-01 2019-02-12 北京拜克洛克科技有限公司 嵌入式处理器及其功耗优化方法和智能锁

Also Published As

Publication number Publication date
CN110286739A (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
US7430673B2 (en) Power management system for computing platform
CN103218033B (zh) 一种唤醒硬件设备的方法及装置
US20160378168A1 (en) Dynamic power management optimization
CN110286739B (zh) 远程遥测终端的功耗控制方法和装置
CN103345415B (zh) 管理定时器的终端节能方法和装置
CN112530056B (zh) 降低智能门锁功耗的方法、智能门锁和存储介质
KR20110021927A (ko) 전력 소모를 감소시키기 위해 슬립 상태를 제공하는 제 2 메모리 컨트롤러를 구비한 집적 회로 및 그 방법
KR20150082521A (ko) 애플리케이션 하트비트 주기 조정 방법, 장치, 및 단말
WO2013116751A1 (en) Dynamic power management in real-time systems
CN105353864A (zh) 电子设备静态功耗管理方法和系统
WO2017176383A1 (en) Enhanced dynamic clock and voltage scaling (dcvs) scheme
CN114257474B (zh) 智能网关的用电控制方法、装置、计算机设备和存储介质
CN105589085A (zh) 一种低功耗的北斗定位通讯装置及控制方法
WO2021016158A1 (en) A preemptive wakeup circuit for wakeup from low power modes
KR20140026308A (ko) 멀티 코어 시스템의 전력 관리 장치 및 방법
US20150286271A1 (en) System and method for predicting a central processing unit idle pattern for power saving in a modem system on chip
US20150095672A1 (en) Data processing system
CN104102503B (zh) 在预定时间自动启动的计算机及其方法
CN112650566B (zh) 定时任务处理方法、装置、计算机设备和存储介质
JP2000207174A (ja) 電子制御装置
CN115756143A (zh) 数据包处理的节能方法、装置、计算机设备和存储介质
CN104571461A (zh) 一种终端
CN111984335A (zh) 一种低功耗的芯片唤醒方法、电路、芯片、系统及介质
CN104427595A (zh) 通信终端待机省电的控制方法和控制装置
WO2017071545A1 (zh) 对齐唤醒的方法、终端和计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant