单片机间隙性工作控制方法、系统及装置与流程

文档序号:17694313发布日期:2019-05-17 21:20阅读:324来源:国知局
单片机间隙性工作控制方法、系统及装置与流程

本发明属于单片机领域,尤其涉及一种单片机间隙性工作控制方法、系统及装置。



背景技术:

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器cpu、随机存储器ram、只读存储器rom、多种i/o口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、a/d转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。在设计电池供电的单片机低功耗系统时,除了硬件设计与器件选型作低功耗方面考虑以外,单片机软件设计普遍会采用间隙性工作方式,让系统大部分时间处于休眠状态下,间隙性的唤醒处理任务,以达到低功耗设计的目的,因此,在单片机低功耗系统使用过程中,针对单片机的间隙性工作控制尤为重要。

现有的单片机间隙性工作控制方法中,通常采用单片机内部低频时钟源用于单片机休眠模式下周期性的唤醒,以控制单片机进行任务处理,而由于单片机内部低频时钟源会随电源电压或环境温度变化导致参数的波动,进而导致对单片机周期性的唤醒精准度差,使得单片机间隔性任务处理的精准度低,降低了单片机的工作效率。



技术实现要素:

本发明实施例的目的在于提供一种单片机间隙性工作控制方法、系统及装置,旨在解决现有的单片机间隙性工作控制方法使用过程中,由于采用单片机内部低频时钟源进行单片机休眠模式下周期性唤醒所导致的间隔性任务处理精准度低的问题。

本发明实施例是这样实现的,一种单片机间隙性工作控制方法,包括:

根据休眠周期中间隔的休眠时间配置单片机的间隔性休眠时间周期;

选择高频时钟源的定时器开始计时;

在所述单片机被唤醒时,停止计时以得到第一计时时间段,作为基准时间;

根据所述休眠周期中间隔的休眠时间控制所述单片机休眠,所述单片机每次被唤醒后,累加所述基准时间计算休眠累加时间;

判断所述休眠累加时间是否符合所述休眠周期以标准时间为正负误差的范围内,所述标准时间不大于所述基准时间;

如果符合,控制所述单片机进行任务处理;以及

将所述休眠累加时间复位,并控制所述单片机休眠。

更进一步的,所述根据休眠周期中间隔的休眠时间控制单片机休眠的步骤之前,所述方法包括:

当接收到针对所述单片机的上电信号时,获取所述单片机的内部时钟源信息;

获取所述内部时钟源信息中存储的休眠周期,并获取本地预存储的等份值;

根据所述等份值计算所述休眠周期中每等份对应的时间值,以得到所述休眠时间。

更进一步的,所述将所述休眠累加时间复位的步骤包括:

计算所述休眠周期与所述休眠累加时间之间的差值,以得到复位时间;

将所述复位时间对所述休眠累加时间进行替换。

更进一步的,所述根据累加所述基准时间计算休眠累加时间的步骤包括:

得到所述第一计时时间段后,获取所述单片机的被唤醒次数,并计算所述被唤醒次数与所述基准时间之间的乘积,以得到所述休眠累加时间。

更进一步的,所述根据累加所述基准时间计算休眠累加时间的步骤包括:

判断所述述休眠累加时间是否被复位;

如果所述休眠累加时间被复位,获取所述休眠累加时间被复位后所述单片机的被唤醒次数,并计算所述被唤醒次数与所述基准时间之间的乘积,以得到唤醒时间;

计算所述唤醒时间与所述复位时间之间的和,以得到所述休眠累加时间。

更进一步的,所述将所述复位时间对所述休眠累加时间进行替换的步骤之后,所述方法还包括:

获取所述单片机的被唤醒次数,并将所述被唤醒次数清零。

更进一步的,所述判断所述休眠累加时间是否符合所述休眠周期以标准时间为正负误差的范围内的步骤包括:

计算所述休眠累加时间与所述休眠周期之间的差,以得到时间差值;

判断所述时间差值是否在以所述标准时间为正负误差的范围内,所述标准时间为所述基准时间或1/2的所述基准时间;

若是,则判定所述休眠累加时间符合以所述标准时间为正负误差的范围内;

若否,则判定所述休眠累加时间不符合以所述标准时间为正负误差的范围内。

更进一步的,所述将所述休眠累加时间复位的步骤之后,所述方法还包括:

获取当前累计上电时间,并判断所述累计上电时间否是大于时间阈值;

若是,则选择高频时钟源的定时器开始计时,并当所述单片机被唤醒时,停止计时,以得到第二计时时间段。

更进一步的,所述将所述休眠累加时间复位的步骤之前,所述方法还包括:

获取完成所述任务的处理时间,并判断所述处理时间是否大于所述基准时间;

若是,则发出报警提示。

更进一步的,所述判断所述休眠累加时间是否符合所述休眠周期以标准时间为正负误差的范围内的步骤之后,所述方法还包括:

如果未符合,根据所述休眠周期中间隔的休眠时间控制所述单片机休眠。

本发明实施例的另一目的在于提供一种单片机间隙性工作控制系统,所述系统包括:

基准计时模块,用于根据休眠周期中间隔的休眠时间配置单片机的间隔性休眠时间周期;选择高频时钟源的定时器开始计时;在所述单片机被唤醒时,停止计时以得到第一计时时间段,作为基准时间;

休眠累加模块,用于根据所述休眠周期中间隔的休眠时间控制所述单片机休眠,所述单片机每次被唤醒后,根据累加所述基准时间计算休眠累加时间;

执行控制模块,用于判断所述休眠累加时间是否符合所述休眠周期以标准时间为正负误差的范围内,所述标准时间不大于所述基准时间;如果符合,控制所述单片机进行任务处理;以及将所述休眠累加时间复位,并控制所述单片机休眠。

本发明实施例的另一目的在于提供一种单片机间隙性工作控制装置,包括存储设备以及处理器,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述单片机间隙性工作控制装置执行上述的单片机间隙性工作控制方法。

本发明实施例的另一目的在于提供一种存储介质,其特征在于,其存储有上述的单片机间隙性工作控制装置中所使用的计算机程序,该计算机程序被处理器执行时实现上述的单片机间隙性工作控制方法的步骤。

本发明实施例,通过采用休眠累加时间与休眠周期以标准时间为正负误差所形成范围之间判断的方式,以判断是否控制单片机进行任务处理,解决了由于采用单片机内部低频时钟源唤醒控制单片机进行任务处理所导致的间隔性任务处理精准度低的现象,有效的对单片机的间隔性任务处理过程进行了实时控制,提高了单片机间隔性任务处理的精准度,提高了单片机系统处理任务的准确性,从而提高了系统的稳定性不受工作电压或环境温度的影响,通过采用基准时间的累加设计,方便了休眠累加时间的计算,并通过采用对休眠累加时间的复位,保障了后续休眠累加时间计算的精准度。

附图说明

图1是本发明第一实施例提供的单片机间隙性工作控制方法的流程图;

图2是本发明第二实施例提供的单片机间隙性工作控制方法的流程图;

图3是图2中步骤s61的具体实施步骤流程图;

图4是本发明第三实施例提供的单片机间隙性工作控制方法的流程图;

图5是图4中步骤s72的具体实施步骤的流程图;

图6是图4中步骤s82的具体实施步骤的流程图;

图7是图4中步骤s62的具体实施步骤的流程图;

图8是本发明第四实施例提供的单片机间隙性工作控制系统的结构示意图;

图9是本发明第五实施例提供的单片机间隙性工作控制装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

现有的单片机间隙性工作控制方法中,通过采用单片机内部低频时钟源用于单片机休眠模式下周期性的唤醒,以控制单片机进行任务处理,但由于单片机内部低频时钟源使用过程中其精准度差,进而容易导致对单片机周期性的唤醒准确性差,使得单片机间隔性任务处理的精准度低,降低了单片机的工作效率,因此,本发明通过对单片机的休眠基准时间的累加计算后,采用判断该累加时间是否符合单片机的休眠周期以标准时间为正负误差的范围内的方式,以判定是否控制单片机进行任务处理,有效的对单片机的间隔性任务处理过程进行了实时控制,提高了单片机间隔性任务处理的精准度。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明

实施例一

请参阅图1,是本发明第一实施例提供的单片机间隙性工作控制方法的流程图,包括步骤:

步骤s10,根据休眠周期中间隔的休眠时间配置单片机的间隔性休眠时间周期,选择高频时钟源的定时器开始计时;

其中,该休眠周期为单片机预设的休眠周期,该休眠时间为休眠周期内的等份时间,该间隔性休眠时间周期用于设置单片机的间隔性休眠控制,例如当需要控制单片机进行一个1s的间隔性处理任务操作时,该休眠周期为1s,优选的,该步骤中计时所采用的方式为通过发送信号至定时器,以对应进行计时。

单片机上电后,根据休眠周期中间隔的休眠时间配置单片机的间隔性休眠时间周期,然后控制所述单片机进入空闲模式。所述单片机处于空闲模式时,选择高频时钟源的定时器开始计时。高频时钟源可以是单片机内部的高频时钟源,也可以是单片机外部的高频时钟源。定时器使用高频时钟源的时钟信号开始计时。

所述单片机处于空闲模式时,所述单片机的低频时钟源处于开启状态。当以所述单片机的低频时钟源为准的间隔性休眠时间周期结束后,单片机被唤醒,单片机进入活跃模式;

具体的,该步骤中当单片机处于空闲模式时,低频时钟源开启,高频时钟源开启,单片机停止运行工作,此时以低频时钟源为时钟的定时器会继续运行,以高频时钟源的定时器也继续进行运行。

步骤s20,在所述单片机被唤醒时,停止计时以得到第一计时时间段,作为基准时间;

该步骤中,当判断到单片机被唤醒时,发送信号至定时器,并获取定时器上的当前时间,以得到基准时间,该基准时间用于设置为对应单片机每次休眠的实时时间;

具体的,该步骤中当单片机被唤醒时,单片机从空闲模式退出至活跃模式,此时停止计时,以得到所述第一计时时间段,并将该第一计时时间段作为基准时间,其中,单片机处于活跃模式时,低频时钟源开启,高频时钟源开启,单片机处于运行状态下;

步骤s30,根据所述休眠周期中间隔的休眠时间控制所述单片机休眠,所述单片机每次被唤醒后,根据累加所述基准时间计算休眠累加时间;

所述单片机休眠时,单片机处于休眠模式,所述单片机的低频时钟源开启,高频时钟源停止,单片机停止运行。即以低频时钟源为时钟的定时器会继续运行,以高频时钟源为时钟的定时器也会继续停止。

其中,该休眠周期由多等份的休眠时间组成,该等份值可以根据用于需求自主进行设置,本实施例中该等份值为10,即当休眠周期为1s时,对应的休眠时间为100ms,当每次单片机被唤醒时,则判定单片机再次休眠了一个基准时间,因此,该步骤中通过采用累加该基准时间的方式,以进行休眠累加时间的计算;

步骤s40,判断所述休眠累加时间是否符合所述休眠周期以标准时间为正负误差的范围内;

其中,所述标准时间不大于所述基准时间,即该步骤中是判断休眠累加时间是否存在(休眠周期—标准时间,休眠周期+标准时间)范围内,例如当休眠周期为1s、基准时间为70ms,标准时间为基准时间的一半即35ms,则所述休眠周期以标准时间为正负误差的范围为:(965ms,1035ms),该步骤直接判断休眠累加时间是否处于该误差范围内;

步骤s50,如果符合,控制所述单片机进行任务处理;以及将所述休眠累加时间复位,并控制所述单片机休眠;

其中,当步骤s40判断到休眠累加时间处于(965ms,1035ms)范围内时,判定单片机当前完成了一个标准休眠周期,控制单片机进行任务处理,并将休眠累加时间进行复位,该复位用于重新进行休眠累加时间的计算,优选的,本实施例中,针对休眠累加时间的复位所采用的方式为:将休眠累加时间减去休眠周期,以使有效的将每次间隔性控制单片机进行处理任务的时间误差控制在以标准时间为正负误差的范围内;

本实施例中,通过采用休眠累加时间与休眠周期以标准时间为正负误差所形成范围之间判断的方式,以判断是否控制单片机进行任务处理,解决了由于采用单片机内部低频时钟源唤醒控制单片机进行任务处理所导致的间隔性任务处理精准度低的现象,有效的对单片机的间隔性任务处理过程进行了实时控制,提高了单片机间隔性任务处理的精准度,提高了单片机系统处理任务的准确性,从而提高了系统的稳定性不受工作电压或环境温度的影响,通过采用基准时间的累加设计,方便了休眠累加时间的计算,并通过采用对休眠累加时间的复位,保障了后续休眠累加时间计算的精准度。

实施例二

请参阅图2,是本发明第二实施例提供的单片机间隙性工作控制方法的流程图,包括步骤:

步骤s11,当接收到针对所述单片机的上电信号时,获取所述单片机的内部时钟源信息;

其中,该内部时钟元信息可以为单片机内部低频时钟源或高频时钟源,优选的,该步骤中当接收到针对单片机的上电信号时,控制单片机运行主程序,并控制单片机进行系统初始化,有效防止了单片机上一次开机运行后任务处理数据对当前单片机任务处理的影响;

步骤s21,获取所述内部时钟源信息中存储的休眠周期,并获取本地预存储的等份值;

其中,该休眠周期为预设的休眠周期,例如当需要控制单片机进行一个1s的间隔性处理任务操作时,该休眠周期为1s,该等份值可以根据用于需求自主进行设置,本实施例中该等份值为10;

步骤s31,根据所述等份值计算所述休眠周期中每等份对应的时间值,以得到所述休眠时间;

其中,该休眠周期由多等份的休眠时间组成,当休眠周期为1s时,则对应的休眠时间为100ms;

步骤s41,根据休眠周期中间隔的休眠时间配置单片机的间隔性休眠时间周期,选择高频时钟源的定时器开始计时;

其中,该步骤中计时所采用的方式为通过发送信号至定时器,以对应进行计时;

其中,该休眠周期为单片机预设的休眠周期,该休眠时间为休眠周期内的等份时间,该间隔性休眠时间周期用于设置单片机的间隔性休眠控制,例如当需要控制单片机进行一个1s的间隔性处理任务操作时,该休眠周期为1s,优选的,该步骤中计时所采用的方式为通过发送信号至定时器,以对应进行计时。

单片机上电后,根据休眠周期中间隔的休眠时间配置单片机的间隔性休眠时间周期,然后控制所述单片机进入空闲模式。所述单片机处于空闲模式时,选择高频时钟源的定时器开始计时。高频时钟源可以是单片机内部的高频时钟源,也可以是单片机外部的高频时钟源。定时器使用高频时钟源的时钟信号开始计时。

所述单片机处于空闲模式时,所述单片机的低频时钟源处于开启状态。当以所述单片机的低频时钟源为准的间隔性休眠时间周期结束后,单片机被唤醒,单片机进入活跃模式;

具体的,该步骤中当单片机处于空闲模式时,低频时钟源开启,高频时钟源开启,单片机停止运行工作,此时以低频时钟源为时钟的定时器会继续运行,以高频时钟源的定时器也继续进行运行;

步骤s51,在所述单片机被唤醒时,停止计时以得到第一计时时间段,作为基准时间;

该步骤中,当判断到单片机被唤醒时,发送信号至定时器,并获取定时器上的当前时间,以得到基准时间,该基准时间用于设置为对应单片机每次休眠的实时时间;

具体的,该步骤中当单片机被唤醒时,单片机从空闲模式退出至活跃模式,此时停止计时,以得到所述第一计时时间段,并将该第一计时时间段作为基准时间,其中,单片机处于活跃模式时,低频时钟源开启,高频时钟源开启,单片机处于运行状态下;

步骤s61,根据所述休眠周期中间隔的休眠时间控制所述单片机休眠,所述单片机每次被唤醒后,根据累加所述基准时间计算休眠累加时间;

其中,当每次单片机被唤醒时,则判定单片机再次休眠了一个基准时间,因此,该步骤中通过采用累加该基准时间的方式,以进行休眠累加时间的计算;

步骤s71,判断所述休眠累加时间是否符合所述休眠周期以标准时间为正负误差的范围内;

当步骤s71判断到不符合时,返回执行步骤s61;

其中,所述标准时间不大于所述基准时间,即该步骤中是判断休眠累加时间是否存在(休眠周期—标准时间,休眠周期+标准时间)范围内,例如当休眠周期为1s、基准时间为50ms,标准时间为基准时间的一半即25ms,则所述休眠周期以标准时间为正负误差的范围为:(975ms,1025ms),该步骤直接判断休眠累加时间是否处于该误差范围内;

当步骤s71判断到符合时,执行步骤s81;

步骤s81,控制所述单片机进行任务处理,以及将所述休眠累加时间复位,并返回执行步骤s61;

其中,由于休眠累加时间为1000ms,因此,休眠累加时间处于(975ms,1025ms)范围内时,判定单片机当前完成了一个标准休眠周期,控制单片机进行任务处理,并将休眠累加时间进行复位,该复位用于重新进行休眠累加时间的计算,优选的,本实施例中,针对休眠累加时间的复位所采用的方式为:将休眠累加时间减去休眠周期,以使有效的将每次间隔性控制单片机进行处理任务的时间误差控制在以标准时间为正负误差的范围内;

此外,在步骤s81中将所述休眠累加时间复位的步骤之前,所述方法还包括:

获取完成所述任务的处理时间,并判断所述处理时间是否大于所述基准时间;

若是,则发出报警提示,以使提示用户当前任务处理会丢失计时周期。

优选的,请参阅图3,为图2中步骤s61的具体实施步骤流程图:

步骤s610,得到所述第一计时时间段后,获取所述单片机的被唤醒次数;

其中,该被唤醒次数为单片机从休眠状态转换至唤醒状态的次数;

步骤s611,计算所述被唤醒次数与所述基准时间之间的乘积,以得到所述休眠累加时间;

其中,当基准时间为50ms、被唤醒次数为20次时,则对应休眠累加时间为1s。

本实施例中,通过采用休眠累加时间与休眠周期以标准时间为正负误差所形成范围之间判断的方式,以判断是否控制单片机进行任务处理,解决了由于采用单片机内部低频时钟源唤醒控制单片机进行任务处理所导致的间隔性任务处理精准度低的现象,有效的对单片机的间隔性任务处理过程进行了实时控制,提高了单片机间隔性任务处理的精准度,提高了单片机系统处理任务的准确性,从而提高了系统的稳定性不受工作电压或环境温度的影响,通过采用基准时间的累加设计,方便了休眠累加时间的计算,并通过采用对休眠累加时间的复位,保障了后续休眠累加时间计算的精准度。

实施例三

请参阅图4,是本发明第三实施例提供的单片机间隙性工作控制方法的流程图,包括步骤:

步骤s12,当接收到针对所述单片机的上电信号时,获取所述单片机的内部时钟源信息;

步骤s22,获取所述内部时钟源信息中存储的休眠周期,并获取本地预存储的等份值;

其中,该休眠周期为预设的休眠周期,例如当需要控制单片机进行一个t的间隔性处理任务操作时,该休眠周期为t,该等份值可以根据用于需求自主进行设置,本实施例中该等份值为10;

步骤s32,根据所述等份值计算所述休眠周期中每等份对应的时间值,以得到所述休眠时间;

其中,该休眠周期由多等份的休眠时间组成,当休眠周期为t时,则对应的休眠时间为t,且t=t/10;

步骤s42,根据休眠周期中间隔的休眠时间配置单片机的间隔性休眠时间周期,选择高频时钟源的定时器开始计时;

其其中,该步骤中计时所采用的方式为通过发送信号至定时器,以对应进行计时;

其中,该休眠周期为单片机预设的休眠周期,该休眠时间为休眠周期内的等份时间,该间隔性休眠时间周期用于设置单片机的间隔性休眠控制,例如当需要控制单片机进行一个1s的间隔性处理任务操作时,该休眠周期为1s,优选的,该步骤中计时所采用的方式为通过发送信号至定时器,以对应进行计时。

单片机上电后,根据休眠周期中间隔的休眠时间配置单片机的间隔性休眠时间周期,然后控制所述单片机进入空闲模式。所述单片机处于空闲模式时,选择高频时钟源的定时器开始计时。高频时钟源可以是单片机内部的高频时钟源,也可以是单片机外部的高频时钟源。定时器使用高频时钟源的时钟信号开始计时。

所述单片机处于空闲模式时,所述单片机的低频时钟源处于开启状态。当以所述单片机的低频时钟源为准的间隔性休眠时间周期结束后,单片机被唤醒,单片机进入活跃模式;

具体的,该步骤中当单片机处于空闲模式时,低频时钟源开启,高频时钟源开启,单片机停止运行工作,此时以低频时钟源为时钟的定时器会继续运行,以高频时钟源的定时器也继续进行运行;

步骤s52,在所述单片机被唤醒时,停止计时以得到第一计时时间段,作为基准时间;

该步骤中,当判断到单片机被唤醒时,发送信号至定时器,并获取定时器上的当前时间,以得到基准时间,该基准时间用于设置为对应单片机每次休眠的实时时间;

具体的,该步骤中当单片机被唤醒时,单片机从空闲模式退出至活跃模式,此时停止计时,以得到所述第一计时时间段,并将该第一计时时间段作为基准时间,其中,单片机处于活跃模式时,低频时钟源开启,高频时钟源开启,单片机处于运行状态下,优选的,本实施例中基准时间为t1;

步骤s62,根据所述休眠周期中间隔的休眠时间控制所述单片机休眠,所述单片机每次被唤醒后,根据累加所述基准时间计算休眠累加时间;

其中,本实施例中休眠累加时间为d,当每次单片机被唤醒时,则判定单片机再次休眠了一个基准时间,因此,该步骤中通过采用累加该基准时间的方式,以进行休眠累加时间的计算;

步骤s72,判断所述休眠累加时间是否符合所述休眠周期以标准时间为正负误差的范围内;

其中,所述标准时间不大于所述基准时间;

当步骤s72判断到不符合时,返回执行步骤s62;

当步骤s72判断到符合时,执行步骤s82;

步骤s82,控制所述单片机进行任务处理,以及将所述休眠累加时间复位并返回执行步骤s62;

其中,判定单片机当前完成了一个标准休眠周期,控制单片机进行任务处理,并将休眠累加时间进行复位,该复位用于重新进行休眠累加时间的计算;

步骤s92,获取当前累计上电时间,并判断所述累计上电时间否是大于时间阈值;

其中,由于当单片机工作时间过长时,会导致单片机的实时休眠时间进行波动,因此,本实施例中,通过累计上电时间与时间阈值之间的判断,以判定当前是否进行基准时间的更新;

当步骤s92的判断结构为否时,返回执行步骤s62;

当步骤s92的判断结果为是时,执行步骤s102;

步骤s102,选择高频时钟源的定时器开始计时,并当所述单片机被唤醒时,停止计时,以得到第二计时时间段。

当步骤s92的判断结果为是时,控制所述单片机进入空闲模式。所述单片机处于空闲模式时,选择高频时钟源的定时器开始计时。高频时钟源可以是单片机内部的高频时钟源,也可以是单片机外部的高频时钟源。定时器使用高频时钟源的时钟信号开始计时。

所述单片机处于空闲模式时,所述单片机的低频时钟源处于开启状态。当以所述单片机的低频时钟源为准的间隔性休眠时间周期结束后,单片机被唤醒,单片机进入活跃模式。

步骤s112,将所述基准时间更新为所述第二计时时间段,并返回执行步骤s62;

该步骤中,通过将基准时间更新为第二计时时间段的设计,有效的提高了休眠累加时间计算的精准度。

具体的,请参阅图5,为图4中步骤s72的具体实施步骤的流程图:

步骤s720,计算所述休眠累加时间与所述休眠周期之间的差,以得到时间差值;

其中,时间差值s=d—t;

步骤s721,判断所述时间差值是否在以所述标准时间为正负误差的范围内;

其中,所述标准时间为所述基准时间或1/2的所述基准时间,优选的,标准时间为t1,因此,以所述标准时间为正负误差的范围为(-t1,+t1),则该步骤中判断s是否在(-t1,+t1)范围内;

当步骤s721判断结果为是时,执行步骤s722;

步骤s722,判定所述休眠累加时间符合以所述标准时间为正负误差的范围内;

当步骤s721判断结果为否时,执行步骤s723;

步骤s723,判定所述休眠累加时间不符合以所述标准时间为正负误差的范围内。

请参阅图6,为图4中步骤s82的具体实施步骤的流程图:

步骤s821,计算所述休眠周期与所述休眠累加时间之间的差值,以得到复位时间;

其中,复位时间s=d—t;

步骤s822,将所述复位时间对所述休眠累加时间进行替换;

其中,即将复位时间s的数值对休眠累加时间d进行数值替换;

步骤s8223,获取所述单片机的被唤醒次数,并将所述被唤醒次数清零;

优选的,本实施例中,在步骤s82中将所述休眠累加时间复位的步骤之前,所述方法还包括:

获取完成所述任务的处理时间,并判断所述处理时间是否大于所述基准时间;

若是,则发出报警提示。

优选的,请参阅图7,为图4中步骤s62的具体实施步骤的流程图:

步骤s620,判断所述述休眠累加时间是否被复位;

其中,由于本实施例中,当对休眠累加进行复位时,所采用的方式为减去休眠周期,因此,每次对休眠累加时间进行复位后可能还存在剩余时间,因此,步骤通过判断休眠累加时间是否被复位,以提高后续休眠累加时间计算的准确性;

当步骤s620判断到所述休眠累加时间未被复位时,执行步骤s621;

步骤s621,得到所述第一计时时间段后,获取所述单片机的被唤醒次数;

其中,该被唤醒次数为单片机从休眠状态转换至唤醒状态的次数;

步骤s622,计算所述被唤醒次数与所述基准时间之间的乘积,以得到所述休眠累加时间;

其中,当基准时间为x、被唤醒次数为y次时,则对应休眠累加时间为d=xy;

当步骤s620判断到所述休眠累加时间被复位时,执行步骤s623;

步骤s623,获取所述休眠累加时间被复位后所述单片机的被唤醒次数,并计算所述被唤醒次数与所述基准时间之间的乘积,以得到唤醒时间;

其中,当基准时间为x、被唤醒次数为y1次时,则对应休眠累加时间为xy1;

步骤s624,计算所述唤醒时间与所述复位时间之间的和,以得到所述休眠累加时间;

其中,则休眠累加时间d=xy1+s;

本实施例中,通过采用休眠累加时间与休眠周期以标准时间为正负误差所形成范围之间判断的方式,以判断是否控制单片机进行任务处理,解决了由于采用单片机内部低频时钟源唤醒控制单片机进行任务处理所导致的间隔性任务处理精准度低的现象,有效的对单片机的间隔性任务处理过程进行了实时控制,提高了单片机间隔性任务处理的精准度,提高了单片机系统处理任务的准确性,从而提高了系统的稳定性不受工作电压或环境温度的影响,通过采用基准时间的累加设计,方便了休眠累加时间的计算,并通过采用对休眠累加时间的复位,保障了后续休眠累加时间计算的精准度。

实施例四

请参阅图8,是本发明第四实施例提供的单片机间隙性工作控制系统100的结构示意图,包括:

基准计时模块10,用于根据休眠周期中间隔的休眠时间配置单片机的间隔性休眠时间周期;选择高频时钟源的定时器开始计时;在所述单片机被唤醒时,停止计时以得到第一计时时间段,作为基准时间;

本实施例中,所述基准计时模块10还可用于获取当前累计上电时间,并判断所述累计上电时间否是大于时间阈值;若是,则选择高频时钟源的定时器开始计时,并当所述单片机被唤醒时,停止计时,以得到第二计时时间段。

休眠累加模块11,用于根据所述休眠周期中间隔的休眠时间控制所述单片机休眠,所述单片机每次被唤醒后,根据累加所述基准时间计算休眠累加时间。

此外,本实施例中,所述休眠累加模块11还用于获取得到所述第一计时时间段后,所述单片机的被唤醒次数,并计算所述被唤醒次数与所述基准时间之间的乘积,以得到所述休眠累加时间。

优选的,本实施例中,所述休眠累加模块11还可用于判断所述述休眠累加时间是否被复位;如果所述休眠累加时间被复位,获取所述休眠累加时间被复位后所述单片机的被唤醒次数,并计算所述被唤醒次数与所述基准时间之间的乘积,以得到唤醒时间;计算所述唤醒时间与所述复位时间之间的和,以得到所述休眠累加时间。

优选的,本实施例中,所述休眠累加模块11还可用于获取所述单片机的被唤醒次数,并将所述被唤醒次数清零。

执行控制模块12,用于判断所述休眠累加时间是否符合所述休眠周期以标准时间为正负误差的范围内,所述标准时间不大于所述基准时间;如果符合,控制所述单片机进行任务处理;以及将所述休眠累加时间复位,并控制所述单片机休眠;如果未符合,根据所述休眠周期中间隔的休眠时间控制所述单片机休眠。

此外,所述执行控制模块12还可用于计算所述休眠累加时间与所述休眠周期之间的差,以得到时间差值;判断所述时间差值是否在以所述标准时间为正负误差的范围内,所述标准时间为所述基准时间或1/2的所述基准时间;若是,则判定所述休眠累加时间符合以所述标准时间为正负误差的范围内;若否,则判定所述休眠累加时间不符合以所述标准时间为正负误差的范围内。

优选的,所述执行控制模块12还可用于计算所述休眠周期与所述休眠累加时间之间的差值,以得到复位时间;将所述复位时间对所述休眠累加时间进行替换。

优选的,所述执行控制模块12还可用于获取完成所述任务的处理时间,并判断所述处理时间是否大于所述基准时间;若是,则发出报警提示。

休眠配置模块13,用于当接收到针对所述单片机的上电信号时,获取所述单片机的内部时钟源信息;获取所述内部时钟源信息中存储的休眠周期,并获取本地预存储的等份值;根据所述等份值计算所述休眠周期中每等份对应的时间值,以得到所述休眠时间。

可以理解的,本实施例中各个模块实现的各个功能可以分别由独立的装置或子模块实现,也可以至少两个功能组合由同一个子模块实现。

本实施例中,通过采用休眠累加时间与休眠周期以标准时间为正负误差所形成范围之间判断的方式,以判断是否控制单片机进行任务处理,解决了由于采用单片机内部低频时钟源唤醒控制单片机进行任务处理所导致的间隔性任务处理精准度低的现象,有效的对单片机的间隔性任务处理过程进行了实时控制,提高了单片机间隔性任务处理的精准度,提高了单片机系统处理任务的准确性,从而提高了系统的稳定性不受工作电压或环境温度的影响,通过采用基准时间的累加设计,方便了休眠累加时间的计算,并通过采用对休眠累加时间的复位,保障了后续休眠累加时间计算的精准度。

实施例五

请参阅图9,是本发明第五实施例提供的单片机间隙性工作控制装置101,包括存储设备以及处理器,所述单片机间隙性工作控制装置101与单片机电性连接,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述单片机间隙性工作控制装置101执行上述的单片机间隙性工作控制方法,以使对单片机的间隙性工作进行控制。

本实施例还提供了一种存储介质,其上存储有上述单片机间隙性工作控制装置101中所使用的计算机程序,该程序在执行时,包括如下步骤:

根据休眠周期中间隔的休眠时间配置单片机的间隔性休眠时间周期;

选择高频时钟源的定时器开始计时;

在所述单片机被唤醒时,停止计时以得到第一计时时间段,作为基准时间;

根据所述休眠周期中间隔的休眠时间控制所述单片机休眠,所述单片机每次被唤醒后,累加所述基准时间计算休眠累加时间;

判断所述休眠累加时间是否符合所述休眠周期以标准时间为正负误差的范围内,所述标准时间不大于所述基准时间;

如果符合,控制所述单片机进行任务处理;以及

将所述休眠累加时间复位,并控制所述单片机休眠。所述的存储介质,如:rom/ram、磁碟、光盘等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元或模块完成,即将存储装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施方式中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。

本领域技术人员可以理解,图8中示出的组成结构并不构成对本发明的单片机间隙性工作控制系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,而图1-7中的单片机间隙性工作控制方法亦采用图8中所示的更多或更少的部件,或者组合某些部件,或者不同的部件布置来实现。本发明所称的单元、模块等是指一种能够被所述单片机间隙性工作控制系统中的处理器(图未示)所执行并功能够完成特定功能的一系列计算机程序,其均可存储于所述单片机间隙性工作控制系统的存储设备(图未示)内。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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