相关申请
本申请要求于2017年10月16日提交的美国临时专利申请序列号62/572,792的优先权,该申请的内容据此全文并入。
本公开涉及用于集成设备的振荡器和定时电路,更具体地涉及一种容错时钟监视器系统。
背景技术:
故障保护时钟监视器(fscm)可包括在各种系统中,以用于监控振荡器或时钟是否发生故障。振荡器可包括芯片、管芯、处理器或其他电子设备内部或外部的振荡器。内部振荡器可以基于电阻-电容,因此具有宽的公差和低温稳定性。外部振荡器可以是基于电路的、基于石英的或基于晶体的,并且来自振荡器的信号可以被路由到电子设备的外部引脚。外部振荡器可以是更可靠、更稳定和更精确的时钟频率源,但可能会受到装配误差和印刷电路板损坏的影响。
振荡器可能会出现各种故障。例如,振荡器可能无法启动,可能无法锁定相位,或者可能出现电源故障。从振荡器到其预期目标的连接可能会发生故障,因此振荡器可能只是看起来发生故障。负载电容可能会导致故障。每个石英晶体可被设计用于特定的负载电容。可在石英晶体的引脚与地面之间使用电容器。在振荡过程中,电荷从一个电容器通过石英流入到另一个电容器中,然后再返回。所附接的电容器可能需要匹配晶体的内部电容以实现稳定且精确的振荡。给定振荡器设计者确定的特定负载电容,晶体可能以特定频率振荡。如果负载过低,晶体可能不会开始振荡,因为在电容器和晶体之间没有足够的电荷来振荡。如果负载过高,振荡的电压摆幅可能会降低,因为电容中的额外电荷无法流过晶体。引脚会形成寄生电容,如果使用插座,寄生电容会增加。印刷电路板的铜线或引线可增加寄生电容。可能需要从负载电容器的值中减去这些电容,以匹配所需的负载。如果寄生电容增加或减小,则晶体的性能可能受影响。
技术实现要素:
时钟监视器可包括被配置为测试时钟输入的第一时钟输入。时钟监视器可包括被配置为参考时钟输入的第二时钟输入。时钟监视器可包括第三时钟输入。时钟监视器可包括测量电路,该测量电路被配置为使用参考时钟输入来生成测试时钟输入的频率或占空比的第一测量。时钟监视器可包括比较器电路,该比较器电路被配置为将第一测量与一个或多个阈值进行比较。时钟监视器可包括控制逻辑部件,该控制逻辑部件被配置为确定第一测量是否低于一个或多个阈值的下限或高于一个或多个阈值的上限,基于确定第一测量是否低于一个或多个阈值的下限或高于一个或多个阈值的上限,使得测量电路使用第三时钟输入结合测试时钟输入或参考时钟输入来生成频率或占空比的第二测量。控制逻辑部件可被配置为确定第二测量是否低于一个或多个阈值的下限或高于一个或多个阈值的上限。控制逻辑部件可被配置为基于第二测量是否低于一个或多个阈值的下限或高于一个或多个阈值的上限,确定测试时钟输入或参考时钟输入有故障。结合上述实施方案中的任一个实施方案,控制逻辑部件可被进一步配置为基于第二测量来选择备份时钟,以替换测试时钟输入或参考时钟输入的时钟源。结合上述实施方案中的任一个实施方案,控制逻辑部件可被进一步配置为基于第一测量来延迟备份时钟的选择,以替换测试时钟输入或参考时钟输入的时钟源。结合上述实施方案中的任一个实施方案,阈值可以包括第一阈值,超过该第一阈值,控制逻辑部件被配置为发出警告信号,同时保持测试时钟输入或参考时钟输入的时钟源。结合上述实施方案中的任一个实施方案,阈值可以包括第二阈值,超过该第二阈值,控制逻辑部件被配置为在选择备份时钟以替换测试时钟输入或参考时钟输入的时钟源时发出故障。
结合上述实施方案中的任一个实施方案,警告信号可包括针对处理器的中断事件,并且该故障包括被配置为替换时钟源的时钟切换事件。结合上述实施方案中的任一个实施方案,时钟监视器可进一步包括备份时钟选择输入,以基于第二测量从多个候选时钟中确定备份时钟来替换测试时钟输入或参考时钟输入的时钟源。结合上述实施方案中的任一个实施方案,控制逻辑部件可被进一步配置为调整针对测量的时钟输入收集数据的时间段。结合上述实施方案中的任一个实施方案,控制逻辑部件可被进一步配置为调整针对测量的时钟输入收集数据的准确度。结合上述实施方案中的任一个实施方案,控制逻辑部件可被进一步配置为使得测量电路使用第三时钟输入作为参考时钟来生成测试时钟输入的频率或占空比的第二测量。结合上述实施方案中的任一个实施方案,控制逻辑部件可被进一步配置为使得测量电路使用第三时钟输入作为参考时钟来生成参考时钟输入的频率或占空比的第二测量。结合上述实施方案中的任一个实施方案,控制逻辑部件可被进一步配置为从三个或更多个候选时钟信号中选择测试时钟输入和参考时钟输入。
本公开的实施方案可包括振荡器电路、微控制器、处理器、片上系统(soc)、电器、消费电子设备或包括上述实施方案的任一时钟监视器的系统。
本公开的实施方案可包括由上述实施方案的时钟监视器、振荡器电路、微控制器、处理器、soc、电器、消费电子设备或系统中的任一者执行的方法。
附图说明
图1示出了根据本公开的实施方案的示例容错时钟监视器系统。
图2是根据本公开的实施方案的示例容错时钟监视器系统的更详细图示。
图3a和图3b是根据本公开的实施方案的用于执行时钟监控的示例方法的图示。
具体实施方式
图1示出了根据本公开的实施方案的示例容错时钟监视器系统100。系统100可被配置为验证时钟、振荡器或其他时钟源。系统100可以被配置为评估时钟源的准确性,并且动态地切换到替代时钟源。时钟源的评估可能需要使用另一参考时钟信号来验证时钟源。然而,如果时钟源未通过验证,则可能不知道是时钟源实际上有故障还是参考时钟信号有故障。在一个实施方案中,在初始确定系统时钟信号有故障时,系统100可被配置为交叉参考不同的参考时钟信号或时钟源,以确定是否原始时钟信号有故障或者是否参考时钟信号有故障。在另一个实施方案中,系统100可被配置为确定是时钟源有故障,需要改变时钟源或其他纠正动作,还是有故障但仅需要警告。
系统100可包括fscm104。fscm104可被配置为在任何合适的应用中或代表任何合适的应用来监控时钟性能,诸如微控制器、片上系统、集成电路设备、电器、消费设备、电机控制、工具、车辆、点火器、汽车控制、工业控制、电源或任何其他合适的电子设备。在图1的示例中,fscm104可通过在微控制器102中的实施来监控时钟性能。微控制器102可以以任何合适的方式实现。微控制器102可包括处理器112和诸如外围设备110的其他部件。外围设备110可包括总线通信模块、输入和输出、存储器、存储器访问或接口模块、定时器、事件计数器、串行端口、i2c、串行外围接口电路、控制器局域网控制器、功率转换器、脉冲宽度调制电路、时钟发生器、通用输入和输出或其他合适的部件。外围设备110可被集成在微控制器102内。处理器112和外围设备112可各自依赖于相同或不同的系统时钟。可以在外围设备110的上下文中引用需要时钟输入的系统100或微控制器102的其他元件,即使此类元件可能没有被定义为外围设备。可能有n个不同的外围设备110。
fscm104可被配置为监控任何合适的时钟。由系统100和fscm104监控的时钟可包括时钟源106。时钟源106可包括例如外部晶体120、内部振荡器122、备份振荡器124、快速电阻电容振荡器(frc)126、参考振荡器128、第一锁相环(pll)(pll1)130或第二锁相环(pll2)132。一些时钟源106可以在系统100或微控制器102的内部,诸如内部振荡器122或frc126。一些时钟源106可以在微控制器102的外部,诸如外部晶体120。此类时钟源可通过输入引脚路由到微控制器102的内部。根据其具体实施,一些时钟源106可为微控制器102的内部或外部,诸如参考振荡器128或备份振荡器124。时钟源106可以以任何合适的方式实现以生成周期性时钟信号。每个时钟源可相对于其时钟信号输出的频率和占空比是可配置的或静态的。时钟源106中可能有m个可能的时钟源。
微控制器102可包括时钟开关108,该时钟开关被配置为将时钟源106中的特定时钟源路由到处理器112和外围设备110。例如,时钟开关108可被配置为选择时钟源106中的一个时钟源作为系统时钟并且将系统时钟路由到处理器112或其他元件。此外,时钟开关108可以被配置为时钟源106中的其他特定时钟源或到外围设备110中的特定的外围设备的相同系统时钟。相同的时钟信号可被发送到微控制器102的一个或多个元件。在一些情况下,专用时钟信号可被发送到微控制器102的特定元件。微控制器102的一些元件可接收相同的原始时钟信号,但将此类时钟信号进行划分以匹配预期或需要的值。时钟开关108可通过模拟电路、数字电路或其任何合适的组合来实现。例如,时钟开关108可通过开关结构或一系列多路复用器来实现。
在一个实施方案中,由时钟开关108执行的路由选择可由处理器112控制。在另一个实施方案中,由时钟开关108执行的路由选择可由fscm104控制。fscm104能够改变由时钟开关108执行的路由,尤其是在处理器104的时钟信号有故障时。因此,即使处理器104由于有故障的时钟信号而出现故障,系统100也可以是稳健的并且能够由于fscm104的操作而恢复。可为fscm104提供相对于处理器104的覆盖权限,以用于改变时钟开关108的切换操作。处理器112或fscm104可被配置为在检测到给定时钟信号有故障时,将一个或多个系统时钟或外围时钟切换到来自时钟源106的其他时钟或备份时钟。
fscm104可以以任何合适的方式实现,诸如模拟电路或数字电路的合适组合。fscm104的更详细的实施在下面的图2的上下文中示出。
在一个实施方案中,fscm104可被配置为从时钟源106中选择一个时钟信号以进行评估。在另一个实施方案中,fscm104可被配置为从时钟源106中选择一个参考信号,利用该参考信号来评估所选择的时钟信号。参考信号可用作参考时钟信号以同步fscm104内的定时器、计数器和其他电路的操作。参考信号可能需要比待评估的时钟信号足够快,使得可获取统计上显著数量的样本以用于精确测量。如果需要,参考信号和待评估的时钟信号可以根据频率被分开,使得可进行适当的测量。fscm104可被配置为以任何合适的方式测量所选择的时钟信号。例如,fscm104可测量所选择的时钟信号的占空比或频率。
例如,fscm104可使用参考振荡器128作为其自身操作的参考时钟信号或源时钟信号。参考振荡器128可被实现为31.25khz低功率电阻电容(lprc)振荡器。fscm104可在p个周期的检测周期(诸如63个周期)来检测要评估的所选择的时钟信号(诸如外部晶体120)。因此,在(63/31250)的时间长度内,fscm104可对来自外部晶体120的多个接收的脉冲进行计数。fscm104可被配置为检测上升沿或下降沿以识别脉冲。接收的脉冲的数量可存储在计数器中。可以通过将倒计时定时器设置为从参考时钟接收的脉冲数来设置检测时间。fscm104可基于脉冲的数量来计算被测信号的频率,或者可使用脉冲的数量作为信号频率的代理测量。类似地,可以用计数器对多个接收脉冲之间的持续时间进行计数。在被测信号的接收脉冲之间的此类持续时间(以参考信号的脉冲测量)可表示被测信号的占空比。此类多个脉冲可用于计算占空比或用作占空比的代理测量。
fscm104可存储或访问多个预期脉冲或者占空比或频率。时钟源106中的每一个时钟源可具有相应的预期占空比或频率。如果接收到的脉冲数量不足,或者如果接收到的脉冲太多,fscm104可以采取纠正动作。此类纠正动作可取决于所接收的脉冲的数量。在一个实施方案中,fscm104可发出时钟警告。时钟警告可被发送至处理器112。时钟警告可识别故障时钟信号。时钟警告可识别时钟信号发生故障的程度。如果需要,处理器112可采取进一步的纠正动作。当所接收的脉冲的数量不符合预期的脉冲数量但尚未代表灾难性故障时,可发出时钟警告。时钟警告可用于警告系统100的用户或采取进一步的调查步骤或诊断。时钟警告可通过例如中断、寄存器值或总线信号来实现。
在另一个实施方案中,fscm104可发出时钟故障信号。时钟故障信号可通过例如中断、寄存器值、事件或总线信号来实现。时钟故障信号可被发送至处理器112。此外,时钟故障信号可用于直接改变时钟开关108的切换。时钟故障信号可指示故障时钟信号将导致系统100的部分无法正常工作。处理器112可用于为例如外围设备供电的故障时钟的时钟故障信号。处理器112可针对时钟开关108中的故障时钟发出时钟源选择的改变。然而,如果系统时钟是所识别的故障时钟,则fscm104可直接改变时钟开关108中对系统时钟的选择。因此,处理器112或fscm104可选择故障时钟的备份时钟作为纠正动作。
fscm104可被配置为通过时钟选择114来选择测试哪一个时钟源106。fscm104可被配置为通过参考选择116来选择哪一个时钟源106用作参考时钟。fscm104可被配置为通过备份选择118来选择备份时钟以在时钟发生故障时使用。备份选择118可包括时钟源106中的每一个时钟源的备份时钟的指定或指定的分级。
时钟选择114、参考选择116和备份选择118中的每一者可以以任何合适的方式设置。例如,时钟选择114、参考选择116和备份选择118中的每一者可由可以由软件或系统100的用户通过寄存器值来设置,且在诊断例程期间,由处理器112或由fscm104本身启动系统100的诊断模块或电路的信号。因此,fscm104可被配置为使用其他时钟源106中的任一个时钟源作为参考信号来测试任一时钟源106。fscm104
此外,fscm104可被配置为在可配置的持续时间内测试给定的时钟信号。例如,频率测量的预期时钟信号周期的数量或总计数器时间可通过寄存器、用户输入或内置逻辑来配置。如果花费更多时间来测量信号,测量可能会更精确,但是此类时间可能会降低性能。因此,可以给临界时钟源更多的测试时间,或者如果系统100不是在时间临界的情况下运行。在其他情况下,可给时钟源测试更少的时间。测量精度和速度之间的权衡对于系统100可为可配置的。
此外,fscm104可被配置为在任何合适的时间或任何合适的基础上测试给定时钟信号。fscm104可被配置为比时钟源106中的其他时钟源更频繁或更少地测试时钟源106中的几个时钟源。时钟源106的给定一个时钟源的测试可通过设置寄存器来配置,或者可在识别另一事件或条件时根据处理器112或其他元件的需要来进行。时钟源106的测试可在例如微控制器102的启动、软引导或重新启动时执行。此外,可在激活系统100的相关元件时执行时钟源106的给定时钟源的测试。例如,在使用由pll1130产生的pwm信号的电机启动时,可以测试pll1130。时钟源104的特定部分可被周期性地测试。例如,外部晶体120可每秒进行测试,而参考振荡器128则每十秒进行测试。
在一个实施方案中,fscm104可以被配置为当初步确定给定时钟源有故障时,对时钟源106中的给定时钟源执行多级交叉检查。如上所述,测试时钟信号需要使用参考时钟信号来计时电路以计数脉冲和其他任务。如果参考信号本身有故障,则确定测试时钟信号不准确可能是不正确的确定。因此,在初始确定被测时钟信号有故障时,可以执行第二测试。在一个实施方案中,可以执行第二测试以用不同的第二参考信号重新测试被测的原始时钟信号。如果第二测试仍然显示被测的原始时钟信号有故障,则fscm104可以被配置为确定被测的原始时钟信号有故障并执行纠正动作。如果第二测试仍然显示被测的原始时钟信号有故障,则fscm104可以被配置为确定原始参考信号有故障并采取纠正动作。fscm104可被配置为使用另一个参考信号或第二参考信号直接测试原始参考信号,然后确定原始参考信号有故障并采取纠正动作。在另一个实施方案中,可以执行第二测试以用另一个参考信号测试原始参考信号。如果在第二测试中原始参考信号被确定为有故障,fscm104可以对原始参考信号采取纠正动作。如果在第二测试中原始参考信号没有被确定为有故障,fscm104可以对被测的原始信号采取纠正动作。
图2是根据本公开的实施方案的fscm104的更详细的图示。fscm104的一些操作和控制流程可以由控制逻辑部件202设置,该控制逻辑部件202可以由数字逻辑和电路的任何合适的组合来实现。控制逻辑部件202可被配置为确定要测试哪一个时钟源106。控制逻辑部件202可通过时钟选择114或通过确定诊断例程、寄存器值或控制信号并设置时钟选择114来进行此类确定。控制逻辑部件202可被配置为确定哪一个时钟源106将用作参考信号。控制逻辑部件202可通过参考选择116或通过确定诊断例程、寄存器值或控制信号以及参考选择116来此类这种确定。被测的所选择的时钟信号可以被称为c,并且可具有频率fc或占空比dc。所选择的参考信号可继而被命名为r,并且可具有频率fr或占空比dr。
fscm104可以包括分频电路208,其被配置为对被测c时钟信号的频率或占空比进行分频。这可以产生具有修改频率fc’或占空比dc’的合成信号。分频电路208可以应用(1/x)的分频因子。fscm104可以包括分频电路210,其被配置为对参考时钟信号r的频率或占空比进行分频。这可以产生具有修改频率fr’或占空比dr’的合成信号。分频电路210可以应用(1/y)的分频因子。分频电路208、210可以由分频器或占空比分频器电路实现,该分频器或占空比分频器电路可以独立地配置为频率或占空比可以被分频的程度。分频电路208、210的分频因子x和y可以由例如控制逻辑部件202设置。可以根据来自时钟源106的被测的所选择的时钟和参考时钟的特性和预期频率或占空比来设置分频因子x和y。可选择分频因子x和y,使得参考时钟信号可适当地用于运行定时机制以测量被测时钟信号。因此,x和y的特定值可取决于使用中的时钟源106的特定组合。对于寄存器、表或其他合适位置中的时钟源106的不同组合,可存储x和y的各种合适值,或者可基于所选择的时钟源106的期望频率来计算x和y的各种合适值。可选择或计算分频因子x和y以充分满足奈奎斯特定理或其他技术要求。
来自分频电路208、210的结果信号可以被传递到测量电路212。测量电路212可以用任何合适的采样、捕获、采样保持或其他电路来实现。测量电路212可以用定时器和计数器来实现,这些定时器和计数器足以对频率测量或占空比测量的被测时钟信号的脉冲进行计数。测量可利用由所选择的参考时钟信号提供的定时来执行。测量电路212可以被配置为产生频率的测量m,表示为fm,或者占空比的测量,表示为dm。
可将测量传递到一系列比较器电路216。比较器电路216可以由任何合适数量的电路和电路组合来实现。比较器电路216可被配置为确定测量是否超过任何所识别的阈值214。可以使用任何合适数量和种类的阈值214。阈值214可存储在例如存储器、表、寄存器中,或者可为硬编码的。阈值214可在脉冲计数、频率、占空比、绝对项或误差项的百分比中定义。可为时钟源106中的每一个时钟源单独定义阈值214。阈值214可包括高阈值和低阈值。阈值214可以是可配置的和可调整的。
在一个实施方案中,阈值214的数量和不同程度可由系统100的用户或设计者定义。可以指定不同的阈值,超出这些阈值后可以执行不同的警报和纠正动作。不同阈值的数量、阈值的值以及每个阈值的相关纠正动作可以是可配置的。例如,可以指定第一阈值l1,低于该阈值,频率或占空比被确定为出错。此外,可以指定第二阈值l1,低于该阈值,频率或占空比被确定为发生故障。低于第一阈值但高于第二阈值可以表示要执行附加诊断的操作状态,其中部件开始磨损,或者另一种非临界状态正在发生。然而,在第二阈值以下,系统100的操作可能受到阻碍或者可能出现危险状况。因此,低于第一阈值l1但高于第二阈值l2,控制逻辑部件202可以发出时钟警告。低于第二阈值l2,控制逻辑部件202可以发出时钟故障。类似地,上限阈值h1和h2可以包括在阈值214中。高于h1但低于h2的频率或占空比可能表示非临界的错误操作条件,其中时钟运行过快,诸如在超频情况下。控制逻辑部件202可发出时钟警告。超过h2的频率或占空比可能代表临界的错误操作条件,其中时钟运行过快。控制逻辑部件202可发出时钟故障。
此外,如上所述,在初始确定错误条件时,控制逻辑部件202可以被配置为重复时钟的测试,但是具有不同的参考。控制逻辑部件202可测试原始参考本身。控制逻辑部件202可重复此类测试,直到分离并识别真正的故障信号。控制逻辑部件202可保留纠正动作,直到识别出真正的故障信号。
图3a和图3b是根据本公开的实施方案的用于执行时钟监控的示例方法300的图示。方法300可以全部或部分由系统100的任何合适的元件实现,诸如由fscm104、处理器112或控制逻辑部件202实现。方法300可以包括比图3a和图3b所示更多或更少的步骤。方法300可在任何合适步骤处开始,诸如在305处。方法300的各种步骤和方法300的实例可重复进行、并行执行、递归执行或省略。
在305处,可以识别要测试的时钟信号、在时钟信号的测试中使用的参考时钟信号、测试的阈值以及诸如测试持续时间的其他参数。
在310处,被测时钟信号和参考时钟信号可以被划分,以便执行被测时钟信号的精确采样。
在315处,可对要测试的时钟信号进行采样。采样可由参考时钟信号计时或同步。
在320处,可以确定要测试的时钟信号是否在关于频率或占空比的指定阈值和参数内运行。如果是,则方法300可前进到380。否则,方法300可前进到325。
在325处,可以确定被测时钟信号是否有故障,或者用于对测试计时的参考时钟是否有故障。可以选择替代参考时钟信号以用于要测试的时钟信号的后续测试。替代参考时钟信号可以是第三独立时钟信号。在其他情况下,替代参考时钟信号可用于测试原始参考时钟信号。
在330处,被测时钟信号和替代参考时钟信号可以被划分,以便对被测时钟信号执行精确采样。
在335处,要测试的时钟信号可以被采样。采样可以由替代参考时钟信号计时或同步。
在340处,可以确定要测试的时钟信号是否在关于频率或占空比的指定阈值和参数内运行。如果是,原始参考时钟可能有故障,而不是要测试的时钟信号。方法300可前进到365。否则,方法300可前进到345。
在345处,可确定要测试的时钟信号有故障。可确定时钟信号违反了哪组阈值。如果要测试的时钟信号在超出临界阈值的情况下发生故障,则方法300可前进到360。如果时钟信号有故障但不超过临界阈值,则方法300可前进到350。
在350处,可以为要测试的时钟信号发出时钟警告信号。警告可能包含关于故障时钟和时钟故障程度的信息。可执行纠正动作,诸如通知用户。方法300可前进到380。
在360处,可以为要测试的时钟信号发出时钟故障信号。故障信号可包含关于故障时钟的信息。可执行纠正动作,诸如将时钟信号源切换到备份时钟。方法300可前进到380。
在365处,可确定原始参考时钟信号有故障。可以确定参考时钟信号违反了哪组阈值。如果参考时钟信号有故障超过临界阈值,则方法300可前进到375。如果参考时钟信号有故障但不超过临界阈值,则方法300可前进到370。
在350处,可以为参考时钟信号发出时钟警告信号。警告可能包含关于故障参考时钟和参考时钟故障程度的信息。可执行纠正动作,诸如通知用户。方法300可前进到380。
在360处,可以为参考时钟信号发出时钟故障信号。故障信号可包含关于故障参考时钟的信息。可执行纠正动作,诸如将参考时钟信号源切换到备份时钟。方法300可前进到380。
在380处,可确定是否重复或测试另一个时钟。如果是,则方法300可前进到305。否则,方法300可终止。
因此,本公开的实施方案可以监控诸如微控制器或其组件以不符合规格的时钟频率运行的情况。此类操作可能不稳定、缩短组件寿命或导致设备故障。诸如以太网、usb、uart、i2c等的串行通信可能具有此类不正确频率的错误。以不正确的时钟频率控制应用(诸如电源和电机控制)会对用户造成应用损坏或危险。系统100可以解决或减轻这些问题和其他问题。
已根据一个或多个实施方案描述了本公开,并且应当理解,除了明确陈述的那些之外,许多等同物、替代物、变型和修改是可能的并且在本公开的范围内。虽然本公开易受各种修改形式和替代形式的影响,但是其特定示例实施方案已经在附图中示出并且在本文中详细描述。然而,应当理解,本文对具体示例性实施方案的描述并非旨在将本公开限于本文所公开的特定形式。