系统时钟的控制方法、处理装置和可读存储介质
技术领域
本发明涉及芯片
技术领域
,具体涉及一种系统时钟的控制方法、处理装置和可读存储介质。背景技术
系统时钟是驱动整个芯片系统有序工作的源动力与节拍器,是整个芯片系统的心脏。一旦系统时钟发生故障停止工作,则整个芯片系统将直接挂死;而系统时钟的稳定性和可靠性也非常重要,这影响到整个芯片是否能够正常工作。传统的系统时钟往往采取单一的时钟源,导致系统时钟的运行不够稳定可靠。
发明内容
本发明提供了一种系统时钟的控制方法,旨在解决系统时钟的运行不够稳定可靠的技术问题。
为实现上述目的,本发明提供了一种系统时钟的控制方法,该方法包括以下步骤:
实时监测通电状态;
若处于通电状态,则获取第一时钟源产生的第一时钟信号,并获取第二时钟源产生的第二时钟信号;
根据第一时钟信号和第二时钟信号更新前置时钟信号;
根据前置时钟信号控制所述系统时钟。
可选的,则获取第一时钟源产生的第一时钟信号,以第一时钟信号,或获取第二时钟源产生的第二时钟信号,以第二时钟信号控制前置时钟。
可选的,控制所述第一时钟源每经过第一预设时长后定时中断,以产生第一时钟源中断点;
在每个第一时钟源中断点,更新第一计数器计数值累加第一预设时长;
获取所述第一时钟源中断点和所述第一计数器计数值;
控制所述第二时钟源每经过第二预设时长后定时中断,以产生第二时钟源中断点;
在每个第二时钟源中断点,更新第二计数器计数值累加第二预设时长;
获取所述第二时钟源中断点和所述第二计数器计数值。
可选的,在每个第一时钟源中断点,判断所述第二计数器计数值是否累加第二预设时长;
若所述第二计数器计数值累加第二预设时长,则判断所述第一计数器计数值是否大于预设下限值;
若所述第一计数器计数值大于预设下限值,则更新前置时钟计数值累加第三预设时长,并更新所述第一计数器计数值清零。
可选的,实时监测所述第一计数器计数值是否大于预设上限值;
若所述第一计数器计数值大于预设上限值,控制所述前置时钟计数值累加第三预设时长,并将所述第一计数器计数值减去预设数值。
可选的,若所述电学仪器处于通电状态,则根据所述前置时钟信号每间隔预设时间判断所述第二时钟信号是否满足预设条件;
若所述第二时钟信号满足预设条件,则根据所述第二时钟信号对所述前置时钟进行同步;
若所述第二时钟信号不满足预设条件,则记录所述第二时钟信号不满足预设条件的次数。
可选的,若处于掉电状态,实时监测所述电学仪器是否上电;
若所述电学仪器上电,则控制所述前置时钟按上电同步方案进行同步。
可选的,若所述电学仪器上电,则判断所述第二时钟源是否满足预设条件;
若所述第二时钟源满足预设条件,则根据所述第二时钟源对所述前置时钟进行同步;
若所述第二时钟源不满足预设条件,则判断备份时钟源是否满足预设条件;
若所述备份时钟源满足预设条件,则根据所述备份时钟源对所述第二时钟源和所述前置时钟进行同步。
为实现上述目的,本申请还提出一种处理装置,处理装置包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现所述系统时钟控制方法。
为实现上述目的,本申请还提出一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述系统时钟控制方法。
本发明技术方案中,实时监测系统时钟的通电状态,若处于通电状态,则获取两个时钟源产生的时钟信号,根据两个时钟信号更新前置时钟信号,并根据前置时钟信号控制系统时钟。本发明提供的方法利用两个时钟信号共同控制系统时钟,提高了系统时钟的稳定性和可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明一实施例的系统时钟的控制方法的模块结构示意图;
图2为本发明一实施例的系统时钟的控制方法的流程图;
图3为本发明步骤S200的细化流程示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参照图1,图1为本发明各个实施例中所提供的处理装置的硬件结构示意图。所述处理装置包括执行模块01、存储器02、处理器03等部件。本领域技术人员可以理解,图1中所示出的处理装置还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中,所述处理器03分别与所述存储器02和所述执行模块模块01连接,所述存储器02上存储有计算机程序,所述计算机程序同时被处理器03执行。
执行模块01,可接收时钟信号,对计时器和前置时钟进行更新,并收集以上信息发送给所述处理器03。
存储器02,可用于存储软件程序以及各种数据。存储器02可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据或信息等。此外,存储器02可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器03,是处理平台的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器02内的软件程序和/或模块,以及调用存储在存储器02内的数据,执行终端的各种功能和处理数据,从而对汽车进行整体监控。处理器03可包括一个或多个处理单元;可选的,处理器03可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器03中。
本领域技术人员可以理解,图1中示出的处理平台结构并不构成对处理装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
根据上述硬件结构,提出本发明方法各个实施例。
参照图2,在本发明系统时钟的控制方法的第一实施例中,所述系统时钟的控制方法包括:
步骤S100,实时监测通电状态;
本发明中,系统时钟在许多电学仪器上都得到了广泛的应用,这些电学仪器对系统时钟的稳定性和可靠性提出了较高的要求,且需要系统时钟在电学仪器通电或掉电的状态下均能运行,为方便描述,以下实施例以系统时钟安装于电学仪器中为例,进行解释说明。例如,当系统时钟应用在智能电能表上时,要精确实现智能电能表的分时计量功能,系统时钟的稳定性和可靠性十分重要。
但通电状态不同时,电学仪器的运行状态也不一样,许多电学仪器在通电状态时,电学仪器以正常功耗状态运行;在掉电状态时,电学仪器以低功耗状态运行。相应的,电学仪器中的系统时钟也会受到正常功耗状态和/或低功耗状态影响,以不同的模式运行。
步骤S200,若处于通电状态,则获取第一时钟源产生的第一时钟信号,并获取第二时钟源产生的第二时钟信号;
在本实施例中,若电学仪器处于通电状态,电学仪器中的系统时钟由双时钟源输入的时钟信号共同控制,第一时钟源产生第一时钟信号,第二时钟源产生第二时钟信号,第一时钟信号和第二时钟信号共同控制系统时钟的前置时钟,前置时钟产生前置时钟信号来控制系统时钟。时钟源可以为电学仪器CPU内部定时器产生的时钟,也可以为外部实时时钟输入的脉冲信号。在一实施例中,第一时钟信号为电学仪器CPU内部定时器产生的时钟信号,第二时钟信号为外部实时时钟输入的时钟信号。
若处于掉电状态,则获取第一时钟源产生的第一时钟信号,以第一时钟信号,或获取第二时钟源产生的第二时钟信号,以第二时钟信号控制前置时钟。
在本实施例中,当处于掉电状态时,电学仪器以低功耗状态运行,此时为了降低功耗,前置时钟可以设置为只接收第一时钟信号或第二时钟信号,前置时钟变为由单时钟源输入的时钟信号控制,此时根据第一时钟信号的信号参数或第二时钟信号的信号参数控制前置时钟的更新。在一实施例中,若电学仪器掉电,前置时钟只接收第一时钟信号,第一时钟信号每2s中断一次,每当第一时钟信号中断时,前置时钟累加两秒。
步骤S300,根据第一时钟信号和第二时钟信号更新前置时钟信号;
时钟信号是时序逻辑的基础,用于决定逻辑单元中的状态何时更新,是有固定周期并与运行无关的信号量。时钟信号可以是内部时钟产生的内部时钟信号,内部时钟信号可以是数字信号。时钟信号也可以是外部时钟产生的外部时钟信号,外部时钟信号为脉冲信号,脉冲信号只有两个电平,一个是高电平,另一个是低电平。外部时钟信号为根据时钟源固有周期确定的电信号,外部时钟信号有固有的时钟频率、占空比等信号参数,这些信号参数与时钟源的运行状态无关。其中,第一时钟信号和第二时钟信号均为独立的时钟信号。根据第一时钟信号和第二时钟信号,控制前置时钟信号的更新。
本实施例中,可根据第一时钟信号的时钟中断和第二时钟信号的时钟中断更新前置时钟信号。时钟中断可以靠内部中断触发,内部中断不需要依赖脉冲信号的传输;时钟中断也靠检测到外部中断触发,当检测到脉冲信号的上升沿或下降沿时产生时钟信号中断。例如,若第一时钟信号每10ms中断一次,第二时钟信号每秒中断一次,当第一时钟信号和第二时钟信号同时中断时,前置时钟累加一秒。
步骤S400,根据前置时钟信号控制所述系统时钟。
本实施例中,系统的前置时钟为软时钟,前置时钟在根据第一时钟信号和第二时钟信号进行更新之后,会输出一个脉冲信号以控制系统时钟的运行。
参照图3,基于上述第一实施例,在本发明系统时钟的控制方法的第二实施例中,步骤S200包括:
步骤S210,控制所述第一时钟源每经过第一预设时长后定时中断,以产生第一时钟源中断点;
第一时钟源可以为外部时钟源,也可以为内部时钟源。本实施例中,第一时钟源为电学仪器CPU内部的内部时钟,第一时钟源的定时中断为内部中断。内部中断是电学仪器CPU执行第一时钟源代码时引起的中断,不需要通过中断信号线发送中断信号,而是根据CPU中程序执行第一时钟源代码的过程,第一时钟源每中断一次,产生一个第一时钟源中断点。
步骤S220,在每个第一时钟源中断点,更新第一计数器计数值累加第一预设时长;
为了完成对前置时钟的控制,在电学仪器CPU中设置有第一计数器,本实施例中,第一计数器为毫秒计数器。第一计数器对应第一时钟源,每当CPU接收到一次第一时钟源输入的中断信号,便控制第一计数器累加第一预设时长,第一预设时长是本领域技术人员根据某种规则提前设置,随第一时钟源中断信号产生频率不同而不同。例如,若第一时钟源每秒输出20个中断信号,则第一计数器每接收到一个中断信号累加50毫秒,也即第一预设时长为50毫秒;若第一时钟源每秒输出10个中断信号,则第一计数器每接收到一个中断信号累加100毫秒,也即第一预设时长为100毫秒。
步骤S230,获取所述第一时钟源中断点和所述第一计数器计数值;
在本实施例中,第一计数器的初始计数值为本领域技术人员预先设置,可以为0,也可以为任意其他数值。计数器初始计数值加上累加计算值为第一计数器的实时计数值,即第一计数器计数值。
步骤S240,控制所述第二时钟源每经过第二预设时长后定时中断,以产生第二时钟源中断点;
第二时钟源可以为外部时钟源,也可以为内部时钟源。本实施例中,第二时钟源为电学仪器处理器的外部时钟源,第二时钟源的定时中断为外部中断,第二时钟源时钟源以一定的频率向电学仪器处理器发送中断信号,每当处理器接收到一次中断信号,则产生一个第二时钟源中断点。
步骤S250,在每个第二时钟源中断点,更新第二计数器计数值累加第二预设时长;
为了完成对前置时钟的控制,在电学仪器CPU中设置有第二计数器,本实施例中,第二计数器为秒计数器,第二计数器对应第二时钟源,每当第二时钟源产生一个中断点,便控制第二计数器累加第二预设时长,第二预设时长为本领域技术人员根据某种规则预先设置,随第二时钟源中断点产生频率不同而不同。例如,若第二时钟源每秒输出1个中断信号,则第二计数器在每个第二时钟源中断点累加1秒,即第二预设时长为1秒;若第二时钟源每两秒输出1个中断信号,则第二计数器在每个第二时钟源中断点累加2秒,即第二预设时长为2秒。
步骤S260,获取所述第二时钟源中断点和所述第二计数器计数值。
在本实施例中,第二计数器的初始计数值为本领域技术人员预先设置,可以为0,也可以为任意其他数值。计数器初始计数值加上累加计算值,即为第二计数器的实时计数值,即第二计数器计数值。
在一实施例中,步骤S300包括:
在每个第一时钟源中断点,判断所述第二计数器计数值是否累加第二预设时长;
在本实施例中,已知在每个第一时钟源中断点,第一计数器会累加第一预设时长,在每个第二时钟源中断点,第二计数器会累加第二预设时长。那么所述在每个第一时钟源中断点,判断所述第二计数器计数值是否累加第二预设时长的步骤实质上即为判断在每个第一时钟源中断点是否恰好也为第二时钟源中断点。
若所述第二计数器计数值累加第二预设时长,则判断所述第一计数器计数值是否大于预设下限值;
若所述第一计数器计数值大于预设下限值,则更新前置时钟计数值累加第三预设时长,并更新所述第一计数器计数值清零。
若所述第一计数器计数值小于或等于预设下限值,则不更新前置时钟、第一计数器和第二计数器的计数值。
在本实施例中,预设下限值是本领域技术人员根据某种规则预先设置,前置时钟为电学仪器CPU内部的软时钟,前置时钟根据第一时钟信号和第二时钟信号更新计数值。在一实施例中,第一预设时长为10毫秒,第二预设时长为1秒,预设下限值为800毫秒。第一计数器的初始计数值与第二计数器的初始计数值均为0且同时开始工作,那么在第一时钟源第100次中断时,第一计数器共累加一秒,第二时钟源也恰好产生中断,第二计数器计数值累加1秒,则此时判断第一计数器计数值是否大于预设下限值800毫秒,显然,第一计数器计数值大于预设下限值800毫秒,则将前置时钟计数值累加1秒,并将第一计数器计数值清零。
在另一实施例中,步骤S300还包括:
实时监测所述第一计数器计数值是否大于预设上限值;
若所述第一计数器计数值大于预设上限值,控制所述前置时钟计数值累加第三预设时长,并将所述第一计数器计数值减去预设数值。
若所述第一计数器计数值小于或等于预设上限值,则不更新前置时钟、第一计数器和第二计数器的计数值。
在本实施例中,预设上限值是本领域技术人员根据某种规则预先设置,设置预设上限值是为了提高时钟控制方案的容错。
在一实施例中,步骤S100之后,还包括:
若所述电学仪器处于通电状态,则根据所述前置时钟信号每间隔预设时间判断所述第二时钟信号是否满足预设条件;
本实施例中,所述判断第二时钟信号是否满足预设条件即对第二时钟信号进行合法性检查。合法性检查方案可以为判断第二时钟信号数据的年月周时分秒是否符合日常的时间值。若是,则时钟合法,反之,则时钟不合法。具体的,合法性检查方案为依次判断年是否为0~99,月是否为1~12,日是否为1~当月份最大天数,小时是否为0~23,分钟是否为0~59,秒是否为0~59。若年为0~99,月为1~12,日为1~当月份最大天数,小时为0~23,分钟为为0~59,秒为0~59,则判断结果为时钟通过合法性检查,也即第二时钟信号满足预设条件。
若所述第二时钟信号满足预设条件,则根据所述第二时钟信号对所述前置时钟进行同步;
在本实施例中,如果系统一直保持通电状态,则每间隔固定时长都将对前置时钟进行同步,以保证系统时钟的准确性和可靠性。如果第二时钟信号满足预设条件,也即通过合法性检查,则将前置时钟与第二时钟源时钟进行同步,这里的时钟同步可以是频率同步,也可以是时间同步。频率同步指前置时钟和软时钟的变化频率相同或者保持固定的比例,但两时钟信号的相位可以不一致,频率也可以不一致;时间同步指前置时钟和第二时钟源的绝对时间保持一致。
若所述第二时钟信号不满足预设条件,则记录所述第二时钟信号不满足预设条件的次数。
本实施例中,若电学仪器处于通电状态,每隔固定时间检测第二时钟源是否满足预设条件,也即每隔固定时间对第二时钟源进行合法性检查。在一实施例中,在绝对时间为每分钟的30秒位置进行合法性检查,以避免时钟在整分位置同步导致的跨整分问题,跨整分问题可能是跳过跨整分,也可能是重复跨整分。在一实施例中,记录一段时间内第二时钟源不合法的次数,若次数达到预设不合法上限值,则将该事件上报。
在另一实施例中,步骤S100之后,还包括:
若处于掉电状态,实时监测所述电学仪器是否上电;
若所述电学仪器上电,则控制所述前置时钟按上电同步方案进行同步。
在本实施例中,如果系统处于掉电状态,则当电学仪器重新上电时,也需要对前置时钟进行同步,以保证系统时钟的准确性和可靠性。
在一实施例中,所述若所述电学仪器上电,则控制所述前置时钟按上电同步方案进行同步步骤包括:
若所述电学仪器上电,则判断所述第二时钟源是否满足预设条件;
若所述第二时钟源满足预设条件,则根据所述第二时钟源对所述前置时钟进行同步;
若所述第二时钟源不满足预设条件,则判断备份时钟源是否满足预设条件;
若所述备份时钟源满足预设条件,则根据所述备份时钟源对所述第二时钟源和所述前置时钟进行同步。
在本实施例中,电学仪器重新上电时的时钟同步前,同样需要判断第二时钟源是否合法。若判断结果为第二时钟源合法,则根据第二时钟源对前置时钟进行同步;若判断结果为第二时钟源不合法,则继续判断备份时钟源是否合法,若判断结果为备份时钟源合法,则根据备份时钟源同步第二时钟源和前置时钟。在一实施例中,备份时钟包括RAM备份时钟、EEPROM掉电备份时钟、EEPROM周期备份时钟。RAM备份时钟为每秒将第二时钟源备份到MCU的RAM区间,EEPROM掉电备份时钟是在电表掉电发生时刻将第二时钟源备份到EEPROM时钟备份区间,EEPROM周期备份时钟是电表运行过程中周期性的将第二时钟备份到EEPROM备份区间,进行备份时钟合法性检查的优先级顺序为RAM备份时钟、EEPROM掉电备份时钟、EEPROM周期备份时钟,当第二时钟源不合法的情况下,根据合法备份时钟中优先级最高的备份时钟对第二时钟源和前置时钟进行同步。
本发明还提出一种处理装置,处理装置包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序用于执行本发明各个实施例所述的方法。
本发明还提出一种可读存储介质,其上存储有计算机程序。所述计算机可读存储介质可以是图1的中的存储器,也可以是如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干指令用以使得一台具有处理器的终端设备(可以是手机,计算机,服务器,终端,或者网络设备等)执行本发明各个实施例所述的方法。
在本发明中,术语“第一”“第二”“第三”“第四”“第五”仅用于描述的目的,而不能理解为指示或暗示相对重要性,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,本发明保护的范围并不局限于此,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改和替换,这些变化、修改和替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。