一种时钟失效安全保护方法及电路

文档序号:1630514 发布日期:2020-01-14 浏览:15次 >En<

阅读说明:本技术 一种时钟失效安全保护方法及电路 (Clock failure safety protection method and circuit ) 是由 顾雪春 于 2019-09-20 设计创作,主要内容包括:一种时钟失效安全保护方法及电路。本发明设置有多种时钟源检测模块,分别对各个不同时钟源相互检查,计算该时钟源自身的时钟频率与其他时钟源的时钟频率之间的偏差;在所述偏差超出预设范围时产生对应该偏差的异常指示信号,最后,在所述异常指示信号满足时钟源切换条件时,切换时钟源以稳定时钟信号的输出。由此,本发明能够在外部时钟源遇到外来攻击发生异常或者失效时,通过其他的时钟源恢复系统时钟信号,避免系统出现死机或者安全信息丢失的风险。(A clock failure safety protection method and circuit. The invention is provided with a plurality of clock source detection modules which respectively check different clock sources mutually and calculate the deviation between the clock frequency of the clock source and the clock frequencies of other clock sources; and finally, switching the clock source to stabilize the output of the clock signal when the abnormal indication signal meets the clock source switching condition. Therefore, when the external clock source is abnormal or fails in case of external attack, the system clock signal can be recovered through other clock sources, and the risk of system crash or safety information loss is avoided.)

一种时钟失效安全保护方法及电路

技术领域

本发明涉及芯片安全领域,具体而言涉及一种时钟失效安全保护方法及电路。

背景技术

现如今大部分的复杂SoC芯片都具有内部时钟源和外部时钟源。两种时钟源可采用晶振或其他信号输出装置提供时钟信号。内部时钟源启动时间短,精度差,外部时钟源启动时间慢,精度高。

由于外部时钟源具有非常好的频率稳定性和抗外界干扰能力,因此大部分的SoC芯片都使用外部时钟源作为芯片稳定运行的时钟源。但是为了加快系统启动时间,大部分的SoC芯片会将内部时钟源作为芯片启动时的时钟源。在系统启动之后,再将运行的时钟源用硬件或者软件的方式从内部时钟源切换到外部时钟源。

由于系统依赖于时钟源所提供的时钟信号作为基准,因此,外部时钟源时常会成为外来攻击的目标。当系统运行过程中遇到外部时钟源异常或者遭遇黑客攻击时,外部时钟源失效,而外部时钟源失效时,系统失去时钟源。此时,如果没有有效的方式恢复系统时钟源,将会出现系统死机或者安全信息丢失的风险。

发明内容

本发明针对现有技术的不足,提供一种时钟失效安全保护方法及电路,本发明通过时钟源之间的相互检测能够及时发现时钟异常,并在时钟异常时进行时钟源的切换,保证系统时钟稳定可靠。本发明具体采用如下技术方案。

首先,为实现上述目的,提出一种时钟失效安全保护方法,该方法用于连接有至少两个时钟源的芯片系统,其步骤包括:所述至少两个钟源分别相互检查自身的时钟频率与其他时钟源的时钟频率之间的偏差;在所述偏差超出预设范围时产生对应该偏差的异常指示信号;在所述异常指示信号满足时钟源切换条件时,切换时钟源,输出切换后时钟源的时钟信号。

可选的,上述时钟失效安全保护方法,其中,所述时钟源包括至少2个外部时钟源。

可选的,上述时钟失效安全保护方法,其中,所述时钟源包括外部时钟源和内部时钟源。

可选的,上述时钟失效安全保护方法,其中,对所述时钟频率之间偏差的检查步骤包括:对于每个外部时钟源,分别以其自身的时钟频率为基准检查其与另一个外部时钟源的时钟频率之间的偏差;还包括:对于所述内部时钟源,以所述内部时钟源作为基准,分别对每一个所述外部时钟源进行时钟频率之间偏差的检查。

可选的,上述时钟失效安全保护方法,其中,两个时钟源之间所述时钟频率之间的偏差,其具体按照以下步骤进行检查而获得:两个所述时钟源分别以其自身的时钟频率为基准,分别在其自身的时钟频率所对应的每个周期内按照相同规则进行计数,更新计数值;在其中一个计数值到达配置值时,计算两个所述时钟源分别更新所获得的计数值之间的差值;输出两个所述计数值之间的差值为所述两个时钟源的时钟频率之间的偏差。

可选的,上述时钟失效安全保护方法,其中,所述时钟源切换条件括:一个外部时钟源检查自身的时钟频率与其他外部时钟源的时钟频率之间的偏差所获得的异常指示信号,与所述内部时钟源作为基准对该外部时钟源的时钟频率进行时钟频率之间偏差的检查所获得的异常指示信号对应一致。

本发明还同时提供一种时钟失效安全保护电路,其包括:外部时钟源检测模块,包括至少2个,各所述外部时钟源检测模块分别对应连接一个外部时钟源,各所述外部时钟源检测模块之间分别相互连接并检查其自身所连接的外部时钟源的时钟频率与其他外部时钟源检测模块所连接的外部时钟源的时钟频率之间的偏差,在所述偏差超出预设范围时产生对应该偏差的异常指示信号;内部时钟源检测模块,包括至少1个,其连接一个内部时钟源以及各所述外部时钟源检测模块,用于以其所连接的内部时钟源为基准,分别对每一个所述外部时钟源检测模块进行时钟频率之间偏差的检查,在所述偏差超出预设范围时产生对应该偏差的异常指示信号;时钟源仲裁模块,其连接所述内部时钟源检测模块,用于在所述异常指示信号满足时钟源切换条件时,切换时钟源,输出切换后时钟源的时钟信号。

可选的,上述时钟失效安全保护电路,其中,每一个所述外部时钟源检测模块或所述内部时钟源检测模块均分别包括:计数器,其以该模块自身所连接的时钟源的时钟频率为基准,按照设定的规则在该时钟源的每个周期内进行计数;交互接口,其连接另一个外部时钟源检测模块或内部时钟源检测模块,在所述计数器开始计数或结束计数时向另一个外部时钟源检测模块或内部时钟源检测模块输出触发信号,触发另一个外部时钟源检测模块或内部时钟源检测模块进行计数;配置值比较模块,其在所述计数器的计数值到达配置值时,比较另一个外部时钟源检测模块或内部时钟源检测模块的计数值与所述配置值之间的差值,所述差值为所述不同时钟源时钟频率之间的偏差;中断输出模块,其在所述差值超出预设范围时产生对应该偏差的异常指示信号。

可选的,上述时钟失效安全保护电路,其中,所述中断输出模块还触发所述计数器或另一个外部时钟源检测模块或另一个内部时钟源检测模块重新开始计数。

可选的,上述时钟失效安全保护电路,其中,所述时钟源切换条件为:各所述外部时钟源检测模块或内部时钟源检测模块所对应的异常指示信号对应一致。

可选的,上述时钟失效安全保护电路,其中,还包括时钟切换寄存器,用于根据所述异常指示信号标记进行外部时钟源的切换或内部时钟源的切换;时钟源切换电路,用于根据所述时钟切换寄存器将所述时钟源仲裁模块所输出的信号切换为对应的外部时钟源或内部时钟源的时钟信号。

在此基础上,本发明还提供一种芯片系统,包括有芯片,其中,所述芯片连接有至少2个时钟源,所述芯片与2个所述时钟源之间连接有如上所述的时钟失效安全保护电路,或者,所述芯片内部集成有如上所述的时钟失效安全保护电路。

有益效果

本发明,多种时钟源检测模块,分别对各个不同时钟源相互检查,计算该时钟源自身的时钟频率与其他时钟源的时钟频率之间的偏差;在所述偏差超出预设范围时产生对应该偏差的异常指示信号,最后,在所述异常指示信号满足时钟源切换条件时,切换时钟源以稳定时钟信号的输出。由此,本发明能够在外部时钟源遇到外来攻击发生异常或者失效时,通过其他的时钟源恢复系统时钟信号,避免系统出现死机或者安全信息丢失的风险。

尤其,本发明通过相互计数对计数值进行比较的方式判断各个时钟源之间是否同步,各时钟源之间的偏差是否在可接受的范围内。这种判断方式,其接口信号比较简单,不需要传输时钟信号或者很多位的计数值到另外一个检测模块,并且,这种时钟异常的判断方式其运算开销小,并且能够及时获知时钟之间的不同步,通过计算直接确定出现异常的时钟源以便进行切换。而且,这种判断方式具有更高的灵活性。在需要改变计数器位宽的情况下,或在需要改变计数方式的情况下,均不会影响到接口信号。

本发明能够在外部时钟源相互检查的基础上,进一步引入内部时钟源进行进一步的判定。这样,当两个外部时钟源都坏掉或者都被黑客非法停掉的情况下,采用本发明进行始终失效保护的系统,仍然能够依据内部时钟源检测出时钟的异常,解决系统停止运行的风险。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明的时钟失效安全保护电路的示意图;

图2是本发明的时钟失效安全保护电路与芯片系统之间连接关系的示意图;

图3是本发明中外部时钟源检测模块或内部时钟源检测模块的示意图;

图4是本发明中各时钟源的信号时序图。

具体实施方式

为使本发明实施例的目的和技术方案更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

图1为根据本发明的一种时钟失效安全保护电路,用于对2个外部时钟源和1个内部时钟源进行检测,在任意时钟源发生异常时进行报警,并且在外部时钟源异常、影响正常工作或者丢失时自动切换到正常的时钟源。该技术的实现能够有效的提高系统安全性和可靠性。

该电路包括:

外部时钟源检测模块,包括至少2个,各所述外部时钟源检测模块分别对应连接一个外部时钟源,各所述外部时钟源检测模块之间分别相互连接并检查其自身所连接的外部时钟源的时钟频率与其他外部时钟源检测模块所连接的外部时钟源的时钟频率之间的偏差,在所述偏差超出预设范围时产生对应该偏差的异常指示信号;

内部时钟源检测模块,包括至少1个,其连接一个内部时钟源以及各所述外部时钟源检测模块,用于以其所连接的内部时钟源为基准,分别对每一个所述外部时钟源检测模块进行时钟频率之间偏差的检查,在所述偏差超出预设范围时产生对应该偏差的异常指示信号;

时钟源仲裁模块,其连接所述内部时钟源检测模块,用于在所述异常指示信号满足时钟源切换条件时,切换时钟源,输出切换后时钟源的时钟信号。

其中,所述外部时钟源检测模块以及所述内部时钟源检测模块均分别通过如下的方式对所述时钟频率之间的偏差进行检查:首先,两个所述时钟源分别以自身时钟频率为基准,分别在自身时钟频率所对应的每个周期内按照相同规则进行计数,更新计数值;然后,在其中一个计数值到达配置值时,计算两个所述时钟源分别更新所获得的计数值之间的差值,然后重新开始计数;最后,输出两个所述计数值之间的差值差为所述不同时钟源时钟频率之间的偏差。

上述的时钟频率之间的偏差具体可通过图3所示的电路实现。该电路可应用于任意外部时钟源检测模块或所述内部时钟源检测模块,其包括:

计数器,其以该模块自身所连接的时钟源的时钟频率为基准,按照设定的规则在该时钟源的每个周期内进行计数;

交互接口,其连接另一个外部时钟源检测模块或内部时钟源检测模块,在所述计数器开始计数或结束计数时向另一个外部时钟源检测模块或内部时钟源检测模块输出触发信号,触发另一个外部时钟源检测模块或内部时钟源检测模块进行计数;

配置值比较模块,其在所述计数器的计数值到达配置值时,比较另一个外部时钟源检测模块或内部时钟源检测模块的计数值与所述配置值之间的差值,所述差值为所述不同时钟源时钟频率之间的偏差;

中断输出模块,其在所述差值超出预设范围时产生对应该偏差的异常指示信号。

在较为优选的方式下,图3中电路还可进一步连接:

时钟切换寄存器,用于根据所述异常指示信号标记,在各所述外部时钟源检测模块或内部时钟源检测模块所对应的异常指示信号对应一致时,标记需要进行外部时钟源的切换或内部时钟源的切换;

时钟源切换电路,用于根据所述时钟切换寄存器所存储的标记,将所述时钟源仲裁模块所输出的信号切换为对应的外部时钟源或内部时钟源的时钟信号。

并且,其中的中断输出模块还在产生对应异常指示信号的同时,触发该模块所述连接的计数器或另一个外部时钟源检测模块或另一个内部时钟源检测模块重新开始计数。

以时钟源2对时钟源1进行检测为例说明上述的时钟源检测过程。该过程中全部判断标准均由图3左侧预先完成配置的寄存器提供。时钟频率之间的偏差检测过程:

1.时钟源检测模块2接收软件使能信号“时钟检测使能”之后,产生一个开始计数指示信号, 同时启动内部计数器.

2.时钟源检测模块1对开始计数指示信号,取上升沿,用上升沿启动其内部计数器,计数值达到配置值时产生计数达到约定值指示 给时钟源检测模块2,同时重启其内部计数器。

3. 时钟源检测模块2接收到计数达到约定值指示后取上升沿

4.对内部计数器的值和计数器指示约定值进行比较来判断时钟源1和时钟源2的快慢,产生相应的中断和对方时钟丢失指示信号。

5.将内部计数器重启。

其中,不稳定阈值用来设定时钟源1和时钟源2误差超过多少算为异常。比较稳定次数配置值 用来设定时钟源1和时钟源2的异常连续出现多少次上报异常,这两个数值均可根据功能安全性和灵活性的需求进行设置。

外部时钟源1对外部时钟源2进行检测,以及内部时钟源对外部时钟源1和外部时钟源检测2所进行的检测过程均采用上述相同的方式实现。

在另一种方式下,参考图2,上述电路中,时钟源仲裁模块的输出端连接芯片系统的锁相环(PLL)为芯片系统提供稳定的时钟信号。该时钟信号由至少两个时钟源分别相互检查自身的时钟频率与其他时钟源的时钟频率之间的偏差,在所述偏差超出预设范围时产生对应该偏差的异常指示信号,并在所述异常指示信号满足时钟源切换条件时筛选对应的时钟源,进行时钟源切换而获得。

以两个外部时钟源、1个内部时钟源进行仲裁切换为例,图2实现方式下,通过外部时钟源检测模块1,外部时钟源检测模块2以及内部时钟源检测模块3,配合相应的时钟源仲裁模块,实现对两个外部时钟源与一个内部时钟源之间任意异常状况下的仲裁和时钟源的切换。

其中,外部时钟源检测模块1,用外部时钟源External Clock Source 1作为基准对外部时钟源External Clock Source 2进行检查。外部时钟源检测模块2,用外部时钟源External Clock Source 2作为基准对外部时钟源External Clock Source 1进行检查。检查的流程包括:

步骤S101:时钟源检查,两外部时钟源检测模块互相计数,比较计数值,如果计数值偏差在软件所预先配置的预设范围内,则检查结束,在一段时间后再启动下一次检查;如果计数值偏差在预设范围外,进入步骤S102;

步骤S102:产生异常指示信号,将该异常指示信号通过中断的方式上报至芯片系统的CPU,同时将时钟源检测结果输出送给内部时钟源检测模块3。

所述的内部时钟源检测模块3,利用内部时钟源INTERNAL CLOCK SOURCE 2Hz作为基准同时对外部时钟源External Clock Source 1和外部时钟源External Clock Source2进行检查。其进行检查的步骤流程包括:

步骤S201:利用内部时钟源Internal_Clock_Source作为基准对外部时钟源1和外部时钟源2进行检查,互相计数,比较计数值。如果计数值偏差在软件所预先配置的预设范围内,检查结束,经过一段时间间隔后再启动下一次检查;如果计数值偏差在预设范围外,则进入步骤S202;

步骤S202:产生异常指示信号,同时判断异常指示信号所对应的异常状态是否与外部时钟源检测模块1和外部时钟源检测模块2送过来的检测结果一致;

步骤S203:根据步骤S202的判断结果,产生时钟源切换指示信号。比如,在外部时钟源External Clock Source 1丢失时,外部时钟源检测模块2检测的结果是外部时钟源External Clock Source 1丢失,同时内部时钟源检测模块3的检测结果也是外部时钟源External Clock Source 1丢失,则在此时产生针对外部时钟源External Clock Source 1的切换指示信号。

由此,时钟源仲裁模块根据内部时钟源检测模块3输出的时钟源切换指示信号对芯片时钟源进行仲裁,检查并获取芯片目前所使用的时钟源。其检查的流程包括:

步骤S301:时钟源检查,检查当前时钟源是外部时钟源External Clock Source 1,外部时钟源External Clock Source 2还是内部时钟源Internal_Clock_Source。判断当前所选时钟源时钟切换指示信号是否对应为需要进行切换的状态;

步骤S302:在所述切换指示信号指示需要进行切换时,驱动相应的硬件进行时钟切换。

上述过程对应于图4。芯片系统利用频率一致或成倍数关系或具有固定频率差或周期差的外部时钟源External Clock Source 1,外部时钟源External Clock Source 2和内部时钟源Internal_Clock_Source提供时钟信号。芯片启动过程中,最开始会选Internal_Clock_Source作为芯片时钟源,当芯片启动稳定后,系统可以选择ExternalClock Source 1作为芯片时钟源。

当External Clock Source 1丢失时,外部时钟源检测电路2和内部时钟源检测电路3都将检测出External Clock Source 1丢失,时钟源仲裁模块判断当前时钟源为External Clock Source 1,同时接收到内部时钟源检测模块3输出的External ClockSource 1切换指示信号,进行仲裁,将芯片时钟源从External Clock Source 1切换到External Clock Source 2。这个切换过程中,始终以Selected Functional Clock Source作为时钟信号输出端口为芯片的锁相环等单元提供时钟进行时效控制。

应当注意的是,本发明还可通过上述时钟源之间的校验检测方式,仅依据两个外部时钟源实现类似的时钟失效保护。类似的,也可以以通过一个内部时钟源对一个外部时钟源进行检测,同样通过上述时钟源之间同步性的检测过程,在外部时钟源受到攻击出现异常时,切换至稳定的内部时钟源,以避免系统因时钟源的异常而失效或卡死。

上述只通过外部时钟源互相检查,可以实现对时钟失效的保护,但是,其可靠性没有前述实施例同时使用内部时钟源和外部时钟源那么高。这是因为,前述内、外时钟源的方案中,通过内部时钟源和外部时钟源的交互检测会有双保险,外部时钟源的检查结果和内部时钟源的结果一致才进行自动切换操作。

如果仅包含外部时钟源互相检查,则当两个外部时钟源都坏掉或者被黑客非法停掉的情况下,由于外部时钟源均失效,两者时钟信号均无法检测,两者之间的检测机制由于检测所使用的参考标准失效,因而仍然无法检测到该异常,因而无法解决系统停止运行的风险。

同时,本领域技术人员应当理解,上述实施例中对于时钟源时钟频率之间偏差的检测方式,仅仅是考虑时钟校验的灵活度以及接口实现的复杂程度等因素而选择的较为优选的方式。一般,上述对于时钟频率之间偏差的检测还可通过锁相技术、时间同步、频率同步、相位监控或者通过额外的时间校准信号等方式实现。但相对于其他方式,通过上述实施例中相互计数、传输计数计到约定值(寄存器配置值)的指示信号来实现时钟之间的比较,这种方式仍然具有如下优势:

1、其接口信号比较简单,不需要传输时钟信号或者很多位的计数值到另外一个检测模块(通常,随着芯片规模越来越大,时钟检测模块的位置也可能离得很远,时钟的传输或者多比特计数器的传输也会比较复杂,物理实现相对困难)

2、其灵活性更高,如果需要改变计数器的位宽,或者改变计数方式等都不会影响到接口信号。

以上仅为本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些均属于本发明的保护范围。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种抗单粒子瞬态效应的电荷泵加固电路

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类