模块冗余系统中时钟同步的方法与流程

文档序号:12133370阅读:873来源:国知局
模块冗余系统中时钟同步的方法与流程

本发明涉及一种时钟同步的方法,具体地,涉及一种模块冗余系统中时钟同步的方法。



背景技术:

晶振电路的作用是为系统提供基本的时钟信号,通常一个系统共用一个晶振,便于各部分保持同步。在模块冗余系统中,需要将冗余模块时钟保持同步,目前有多种方法可以使用:一种方法是冗余模块共用一个时钟源,这种方法面临的问题是如果此时钟源发生问题,冗余模块将全部发生故障,冗余作用不复存在;另一种方法是在各冗余模块上分别装晶振,不做处理,这种方法面临的问题是各晶振的稳定度不能保证,存在累积误差,将会导致冗余模块行为不一致,产生错误数据。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种模块冗余系统中时钟同步的方法,其在冗余模块中分别安装同频率晶振,但在FPGA芯片中对晶振进行同步处理,使冗余模块产生保持相位差不变的中断信号,从而到达同步效果。

根据本发明的一个方面,提供一种模块冗余系统中时钟同步的方法,其特征在于,包括以下步骤:系统启动复位后,FPGA芯片分别对多个冗余模块时钟上升沿进行计数,当计数值达到N后,输出一个中断信号;当计数值达到M且M>N后,输出一个标志;当其中两个冗余模块均输出标志后,对各冗余模块的标志进行三取二表决后输出清零信号,清零信号将各冗余模块计数值异步清零,此时各冗余模块同步开始计数,从而使冗余模块在能够产生保持相位差不变的中断信号;M和N都是自然数。

优选地,所述多个冗余模块时钟为第一时钟、第二时钟、第三时钟。

优选地,所述中断信号采用第一中断信号、第二中断信号、第三中断信号。

优选地,所述系统启动复位采用系统复位信号。

与现有技术相比,本发明具有如下的有益效果:本发明有效解决了模块冗余系统中时钟同步问题,实现真正的模块冗余。本发明在冗余模块中分别安装同频率晶振,但在FPGA芯片中对晶振进行同步处理,使冗余模块产生保持相位差不变的中断信号,从而到达同步效果。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为模块冗余系统中时钟同步的方法的原理图。

图2为第一种时钟发生偏移情况的波形图。

图3为第一种时钟发生偏移情况的波形图。

图4为第一种时钟发生偏移情况的波形图。

具体实施方式

如图1所示,本发明模块冗余系统中在冗余模块中分别安装同频率晶振,但在FPGA芯片中对晶振进行同步处理。模块冗余系统中时钟同步的方法包括以下步骤:系统启动复位后,FPGA芯片分别对多个冗余模块时钟上升沿进行计数,当计数值达到N后,输出一个中断信号;当计数值达到M且M>N后,输出一个标志Flag;当其中两个冗余模块均输出标志Flag后,对各冗余模块的标志Flag进行三取二表决后输出清零信号Clr,清零信号Clr将各冗余模块计数值异步清零,此时各冗余模块同步开始重新计数,当计数值达到N后,输出中断信号,从而使冗余模块在能够产生保持相位差不变的中断信号(其中第一、二个中断信号进行处理不予输出,因为第一、二个中断信号与后面输出的中断信号不同步);M和N都是自然数。

系统启动复位采用系统复位信号。多个冗余模块时钟为第一时钟1、第二时钟2、第三时钟3;中断信号采用第一中断信号1、第二中断信号2、第三中断信号3。

图2中的仿真设计输入时钟周期均为40ps。第二时钟2与第一时钟1偏移5ps,第三时钟3与第一时钟1偏移10ps时,第一中断信号1、第二中断信号2、第三中断信号3为输出的同步中断信号。

图3中的仿真设计输入时钟周期均为40ps。第二时钟2与第一时钟1偏移10ps,第三时钟3与第一时钟1偏移10ps时,第一中断信号1、第二中断信号2、第三中断信号3为输出的同步中断信号。

图4中的仿真设计输入时钟周期均为40ps。第二时钟2与第一时钟1偏移10ps,第三时钟3与第一时钟1偏移半个时钟周期20ps时,第一中断信号1、第二中断信号2、第三中断信号3为输出的同步中断信号。

在图2、图3、图4三种仿真条件下,冗余模块均能正确输出保持相位差不变的中断信号,可见此方法能够有效的解决模块冗余系统中时钟同步问题。

具体实施例如下:某型号火箭的计算机上就采取了此时钟同步方法实现了冗余模块的毫秒中断同步输出。此计算机有三个数据处理冗余模块,在程序运行过程中需要给CPU周期提供毫秒中断信号,正是采用了本文提出的是时钟同步方法,对三个模块时钟信号进行处理,给出了同步毫秒中断信号。三个数据处理模块上电复位启动后运行FPGA芯片中的程序,开始对10MHz时钟信号进行上升沿计数,当计数到5000是输出一个中断信号,当计数到10000时输出一个计数标志。每个模块的计数标志Flag均发送到另外两个模块,当其中有两个模块计数满10000后,FPGA中进行三取二处理,各模块FPGA内部同时输出一个清零信号Clr将计数值异步清零,计数从零开始,这样就将三个模块的计数开始时刻进行了同步。完成同步计数后,FPGA芯片继续对10MHz时钟信号进行上升沿计数,当计数到5000是输出一个中断信号,当计数到10000时就进行计数值清零(此时不再输出计数标志Flag,不再使用清零信号Clr)。在FPGA芯片中的程序对中断信号的输出进行处理,程序运行后第一中断信号、二个中断信号不予输出,从产生第三个中断信号开始输出,这样三个模块的毫秒中断信号将保持相位差不变的情况下同步输出。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

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