专利名称:通信系统中的时钟同步方法及装置的制作方法
技术领域:
本发明涉及通信领域,具体而言,涉及一种通信系统中的时钟同步方法及装置。
背景技术:
各类通讯产品和设备中广泛应用晶体振荡器作为本地的时钟源。晶振的根本作用是为设备提供一个时钟信号源。在对时钟要求比较严格的场所,例cdma、wimax基站等,时钟在整个协议中相当重要,如果网元中时钟不同步,就无法实现网元同步、切换基站等功能,导致用户无法通讯。采用GPS(Global Positioning System,全球定位系统)接收机通过接收到的卫星携带的标准时间,经过接收机内部算法计算后输出稳定的PPlS脉冲作为标准的I秒,来修正本地时钟,可以使时钟输出信号达到基站所需要的高精度和稳定度。
在通讯产品中,CPU外接66M晶振,用于软件控制。66M晶振频率虽然高,但稳定度要求并不太高,并且具有振荡频率不可控的特点,为了保证基站对时钟准确度、稳定度的要求,在基站上另外应用了 OCXO或TCXO晶振作为时钟源。由于0CX0、TCXO晶振产生的时钟受温度、老化等的影响,在短时间内稳定,长期运行后会有偏差,而GPS接收机输出的PPlS脉冲是通过接收多颗卫星的原子钟信号合成的,具有长时稳定性。卫星采用原子时钟,精度极其准确,GPS接收机内部具有固化的算法,进行计算后输出非常稳定的ls,认为该Is是准确的,具有长时稳定性,但是搜星受外部环境如天气、硬件状况影响,而且I秒才能搜一次,不能完全代替本地时钟高频率时钟,所以结合两者的优点,采用本地时钟计数IOM次作为本地的ls,用GPS接收机发出的PP1S,每I秒同步一次本地时钟,两个Is比较得到的偏差,通过PID运算得到晶振控制电压,不断调节晶振,形成一个闭环控制,使得晶振输出的时钟能够不断向GPS接收机发出的IS靠近,从而提供高精度和高稳定度的时钟。由于GPS本身故障或其它原因可能导致GPS接收机的PPlS中断丢失,在失去GPS接收机的PPlS中断作为参考的情况下,时钟处于不可控、不可恢复状态。在GPS接收机的PPlS中断丢失的情况下如何进行时钟的同步是待解决的问题。
发明内容
本发明的主要目的在于提供一种通信系统中的时钟同步方法及装置,以至少解决上述在GPS接收机的PPlS中断丢失的情况下如何进行时钟的同步问题。根据本发明的一个方面,提供了一种通信系统中的时钟同步方法,包括根据接收的GPS信号产生主参考时钟信号,并根据系统CPU的晶振获取辅助参考时钟信号;在GPS信号正常时,根据主参考时钟信号产生本地时钟同步信号;在GPS信号异常时,根据辅助参考时钟信号产生本地时钟同步信号。优选地,主参考时钟信号为PPlS中断。优选地,辅助参考时钟信号为根据CPU的晶振产生的辅助定时器中断。优选地,在GPS信号异常时,根据辅助参考时钟信号产生本地时钟同步信号,包括将辅助定时器中断的时间间隔设置为N,划分出M个时间片,其中NXM = I秒,在每一轮中依次执行各时间片,并设置一计数器用于计数所执行的时间片,每一轮开始时,计数器清零;在每一轮的同一个时间片中读取系统的FPGA输出的鉴相值;在执行第M个时间片之前,修改辅助定时器中断的频率以使辅助定时器中断跨过I秒这一时间点;在辅助定时器中断跨过I秒时间点后,当系统检测到PPlS中断丢失,则将本轮各时间片运行的总时间减去I秒,得到多运行的时间,然后以多运行的时间除以时间间隔N,得出下一轮需要从第几个时间片开始执行;重复执行上述操作,根据每相邻两轮中读取鉴相值的时间间隔作为参考I秒来产生本地时钟同步信号。优选地,当GPS信号恢复正常时,根据主参考时钟信号修正辅助参考时钟信号。优选地,当GPS信号恢复正常时,根据主参考时钟信号修正辅助参考时钟信号,包括当系统检测到PPlS中断到来时,将计数器清零,将辅助定时器中断的时间间隔设置为 N,并立即跳转至第一时间片开始执行。根据本发明的另一方面,提供了一种通信系统中的时钟同步装置,包括GPS接收机,用于接收GPS信号,并根据GPS信号产生主参考时钟信号;辅助参考时钟信号单元,用于根据系统CPU的晶振获取辅助参考时钟信号;第一同步单元,用于在GPS信号正常时,根据主参考时钟信号产生本地时钟同步信号;第二同步单元,用于在GPS信号异常时,根据辅助参考时钟信号产生本地时钟同步信号。优选地,主参考时钟信号为PPlS中断。优选地,辅助参考时钟信号单元包括辅助定时器,与CPU的晶振相连,用于根据CPU的晶振产生辅助定时器中断。优选地,第二同步单元包括初始化模块,用于将辅助定时器中断的时间间隔设置为N,划分出M个时间片,其中NXM = I秒,在每一轮中依次执行各时间片;计数器模块,用于计数所执行的时间片,每一轮开始时,计数器清零;读鉴相值模块,用于在每一轮的同一个时间片中读取系统的FPGA输出的鉴相值;频率修改模块,用于在执行第M个时间片之前,修改辅助定时中断的频率以使辅助定时器中断跨过I秒这一时间点;运算模块,用于在辅助定时中断跨过I秒时间点后,当系统检测到PPlS中断丢失,则将本轮各时间片运行的总时间减去I秒,得到多运行的时间,然后以多运行的时间除以时间间隔N,得出下一轮需要从第几个时间片开始执行;同步信号模块,用于根据每相邻两轮中读取鉴相值的时间间隔作为参考I秒来产生本地时钟同步信号。优选地,第二同步单元还包括修正模块,用于当系统检测到PPlS中断到来时,将计数器清零,将辅助定时器中断的时间间隔设置为N,并立即跳转至第一时间片开始执行。通过本发明,采用系统CPU的晶振获取辅助参考时钟信号,在GPS信号异常时,根据辅助参考时钟信号产生本地时钟同步信号,从而解决了在GPS接收机的PPlS中断丢失的情况下如何进行时钟的同步的问题,进而提高通信系统中时钟同步的可靠性。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I是根据本发明实施例一的时钟同步方法流程图2是根据本发明实施例二的时钟同步方法流程图;图3是根据本发明实施例三的时钟同步方法流程图;图4是根据本发明实施例三的实时控制任务流程图;图5是根据本发明实施例三的PPlS中断处理流程图;图6是根据本发明实施例四的时钟同步装置结构示意图;图7是根据本发明实施例五的时钟同步装置结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的 情况下,本申请中的实施例及实施例中的特征可以相互组合。实施例一图I是根据本发明实施例一的时钟同步方法流程图,如图I所示,包括以下步骤步骤S102,根据接收的GPS信号产生主参考时钟信号,并根据系统CPU的晶振获取辅助参考时钟信号。步骤S104,在GPS信号正常时,根据主参考时钟信号产生本地时钟同步信号。步骤S106,在GPS信号异常时,根据辅助参考时钟信号产生本地时钟同步信号。在本实施例中,采用系统CPU的晶振获取辅助参考时钟信号,在GPS信号异常时,根据辅助参考时钟信号产生本地时钟同步信号,从而解决了在GPS接收机的PPlS中断丢失的情况下如何进行时钟的同步的问题,进而提高通信系统中时钟同步的可靠性。其中,步骤S102中的主参考时钟信号为GPS接收机输出的PPlS脉冲,这个PPlS脉冲是一个精准的I秒。GPS接收机将PPlS脉冲送往FPGA,FPGA检测到该脉冲,则输出一个PPlS中断,送往系统CPU,作为本地时钟同步的参考。其中,步骤S102中的辅助参考时钟信号是一个辅助定时器中断,辅助时钟挂在CPU的66M晶振发出的主时钟下面,辅助时钟定时器中断的时间间隔可以任意设置,设置后启动辅助时钟中断,则在定时器时间到后向CPU送出一个中断,然后定时器自己重新计时,在下一个定时器时间间隔到后再次发给CPU —个中断。其中,根据辅助参考时钟信号产生本地时钟同步信号的步骤包括将辅助定时器中断的时间间隔设置为N,划分出M个时间片,其中NXM = I秒,在每一轮中依次执行各时间片,并设置一计数器用于计数所执行的时间片,每一轮开始时,计数器清零;在每一轮的同一个时间片中读取系统的FPGA输出的鉴相值;在执行第M个时间片之前,修改辅助定时器中断的频率以使辅助定时器中断跨过I秒这一时间点;在辅助定时器中断跨过I秒时间点后,当系统检测到PPlS中断丢失,则将本轮各时间片运行的总时间减去I秒,得到多运行的时间,然后以多运行的时间除以时间间隔N,得出下一轮需要从第几个时间片开始执行;重复执行上述操作,根据每相邻两轮中读取鉴相值的时间间隔作为参考I秒来产生本地时钟同步信号。其中,当GPS信号恢复正常时,可根据主参考时钟信号修正辅助参考时钟信号,包括以下处理当系统检测到PPlS中断到来时,将计数器清零,将辅助定时器中断的时间间隔设置为N,并立即跳转至第一时间片开始执行。实施例二
图2是根据本发明实施例二的时钟同步方法流程图,如图2所示,包括以下步骤步骤S202,软件在初始化时把PPlS中断处理函数和硬件送往CPU的PPlS中断(夕卜部中断)挂在一起,把辅助时钟中断处理函数和辅助时钟中断(内部中断)挂在一起,并创建一个任务优先级为最高的任务R,该任务不断的获取一个信号量,获取不到信号量则处于阻塞状态。该信号量由辅助时钟中断处理函数中释放,辅助时钟中断的时间间隔一般以ms为单位,例如,可设置为20ms,则每20ms来一个中断,在辅助时钟中断处理函数中释放一次信号量,则每一次辅助时钟时间到后,任务R激活一次,进行一次处理。步骤S204,在任务R内部,首先对一个全局变量的计数器C进行累加,然后根据计数器C的值采用switch case进行分片处理,case根据I秒除以辅助时钟中断的时间间隔来划分为若干个case,在其中固定的一个时间片读取FPGA输出的鉴相值,这样相邻两轮读出的鉴相值就是标准的Is的鉴相值。在每一次定时器中断到来时,可分别执行一次读鉴相值、PID运算、状态跃迁判断和holdover数据累积等的操作,避免一次定时器间隔内处理不 完,打乱正常的流程。步骤S206,在临近I秒的case里面,禁止该辅助时钟定时器,并且修改定时器的频率跨过I秒(跨过I秒是防止PPlS中断和辅助时钟中断同时到来时抢占CPU而丢中断)。步骤S208,在PPlS正常到来时,PPlS中断处理函数中强制重启该辅助时钟中断,并把时间间隔改回原来的时间间隔,并把计数器C的值改为O。则任务运行一轮的时间必然是标准的I秒。步骤S210,在PPlS中断丢失时,在临近I秒的case中,软件收不到PPlS中断,没有清除计数器C,也没有修改定时器间隔,则任务R会从临近I秒的case中继续按照新时间间隔执行下去。在跨过I秒后一段时间后,由系统检测到,认为PPlS丢失,则计算系统运行到这里的总时间减去一秒,得到多运行的时间,然后除以定时器时间间隔,得到需要从哪一个case开始执行,保证系统运行的时间仍然是一秒。本实施例详细描述了在GPS接收机发出的PPlS中断丢失的情况下,如何利用CPU的66M晶振的输出,通过软件计算来保证有接近于标准Is的输出,代替GPS接收机的PPlS供IOM晶振作为参考,使得系统在一段时间内能够继续稳定的运行,输出稳定的I秒供基带芯片应用,从而对中断丢失的这种异常情况进行保护。实施例三图3是根据本发明实施例三的时钟同步方法流程图,如图3所示,包括以下步骤步骤S302,系统在初始化设置的辅助时钟定时器时间间隔为20ms,则运行一秒是50个case,20ms*50 = I秒,(每一个case最多可执行20ms)。在case 49时,把定时器频率从50hz到40hz,那么case 50的执行时间间隔由原来的20ms修改为25ms。这样跨过了一秒。也可以设置定时器频率为其它时间,例如设为5ms,则在case 199时接近一秒,此时修改定时器间隔为IOms或者15ms等,使得case 200时执行时间为IOms或者15ms,来保证跨过一秒,这也是可以的。步骤S304,在PPlS中断正常到来时,case 50虽然执行时间为25ms,但是仍然在20ms这一点PPIS中断到来,PPIS中断处理函数中强制重启该辅助时钟中断,并把时间间隔由25ms改回20ms,并把计数器C的值改为O。则任务运行一轮的时间必然是标准的I秒。
步骤S306,如果PPlS中断丢失,则从case 50开始,继续每25ms执行一次,这样一直执行到case 53,共执行了 4个25ms,那么任务运行时间49*20ms+4*25ms = 980+100 =1080ms。在case 53时,认为PPlS中断丢失,在这里重启定时器并且修改时间间隔为20ms,并且把计数器C的值改为4,从case4开始执行(caseO Case30不进行任何处理,可以跳过),并对本地时间加一秒保证输出的时间也正常。这样从上一轮任务的caseO到case53,再跳到本轮任务的case 4,则系统共执行了 49*20ms+4*25ms-20*4ms = 1080ms-80ms = I秒。保证了任务运行一轮仍然是标准的I秒,则鉴相值仍然是标准I秒读出的鉴相值。上述的Case53是为了计算后得到一个标准的一秒,也可以在case 56等地方做这些处理也可以,只要保证最终结果能够计算出I秒即可。如果PPlS中断一直丢失,则一直重复按照从case 4到case53来运行,运行时间为1080ms-20ms*4 = ls,保证了任务中主要流程不变,这样就能够保证FPGA的鉴相值都是在I秒的间隔内采出的,在一段时间内该值接近于GPS接收机PPlS脉冲存在时的鉴相值。
步骤S308,如果PPlS中断由于温度虚焊等丢失,则有时会自行恢复,则在case 50 时PPlS中断到来,PPlS中断处理函数中设置计数器C为0,修改定时器间隔为20ms,这样只有PPlS中断第一次到达的这一秒的鉴相值由于时间不是标准的一秒而异常(出现某一次的鉴相值异常,对系统影响很小,可忽略不计),下一秒开始流程恢复为caseO Case50,仍然是标准的一秒读一次鉴相值,则鉴相值不受任何影响,这样对系统没有什么影响。这种方法保证了系统的丢失中断时进行异常保护和中断恢复时能够进行自愈。图4是根据本发明实施例三的实时控制任务流程图,如图4所示,包括以下步骤步骤S402,实时控制任务判断是否获取到信号量,如果否,则继续获取信号量判断,如果是,则执行步骤S404。步骤S404,执行计数器加I操作。步骤S406,switch case进行分片处理,在各时间片中可分别执行读鉴相值、PID运算、状态跃迁判断和holdover数据累积等的操作。图5是根据本发明实施例三的PPlS中断处理流程图,如图5所示,包括以下步骤步骤S502,判断接收机是否初始化完成,如果是,则执行步骤S504 ;如果否,则执行步骤S506。步骤S504,计数器清零,并清除接收机的串口物理buf (缓存)。步骤S506,维护本地时间。步骤S508,重启辅助时钟定时器,修改定时器间隔为20ms。实施例四图6是根据本发明实施例四的时钟同步装置结构示意图,如图6所示,包括GPS接收机10、辅助参考时钟信号单元20、第一同步单元30和第二同步单元40。其中,GPS接收机10用于接收GPS信号,并根据GPS信号产生主参考时钟信号。辅助参考时钟信号单元20用于根据系统CPU的晶振获取辅助参考时钟信号。第一同步单元30用于在GPS信号正常时,根据主参考时钟信号产生本地时钟同步信号。第二同步单元40用于在GPS信号异常时,根据辅助参考时钟信号产生本地时钟同步信号。在本实施例中,采用系统CPU的晶振获取辅助参考时钟信号,在GPS信号异常时,根据辅助参考时钟信号产生本地时钟同步信号,从而解决了在GPS接收机的PPlS中断丢失的情况下如何进行时钟的同步的问题,进而提高通信系统中时钟同步的可靠性。实施例五图I是根据本发明实施例五的时钟同步装置结构示意图。如图I所示,本实施例包括了实施四中的各功能部件。其中,辅助参考时钟信号单元20包括辅助定时器21,辅助定时器21与CPU的晶振相连,用于根据CPU的晶振产生辅助定时器中断。第二同步单元40包括初始化模块41、计数器模块42、读鉴相值模块43、频率修改模块44、运算模块45、同步信号模块46和修正模块47。各模块的功能如下 初始化模块41,用于将辅助定时器中断的时间间隔设置为N,划分出M个时间片,其中NXM = I秒,在每一轮中依次执彳丁各时间片。计数器模块42,用于计数所执行的时间片,每一轮开始时,计数器清零。读鉴相值模块43,用于在每一轮的同一个时间片中读取系统的FPGA输出的鉴相值。频率修改模块44,用于在执行第M个时间片之前,修改辅助定时中断的频率以使辅助定时器中断跨过I秒这一时间点。运算模块45,用于在辅助定时中断跨过I秒时间点后,当系统检测到PPlS中断丢失,则将本轮各时间片运行的总时间减去I秒,得到多运行的时间,然后以多运行的时间除以时间间隔N,得出下一轮需要从第几个时间片开始执行。同步信号模块46,用于根据每相邻两轮中读取鉴相值的时间间隔作为参考I秒来产生本地时钟同步信号。修正模块47,用于当系统检测到PPlS中断到来时,将计数器清零,将辅助定时器中断的时间间隔设置为N,并立即跳转至第一时间片开始执行。在本发明的上述各实施例中,提供了在失去GPS接收机发出的PPlS中断时,怎样利用CPU的晶振来控制时钟继续稳定输出的方法和装置,从而达到尽可能稳定输出晶体的效果,提高了系统的可靠性。所采用的方法简捷清晰,易于实现且无额外软硬件资源需求,该方法可以作为具有GPS参考的晶体在GPS接收机送往CPU的PPlS中断丢失时,继续稳定输出时钟的一个通用方法,对于电信基站等对时钟要求非常严格的系统,具有重要意义。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种通信系统中的时钟同步方法,其特征在于,包括 根据接收的GPS信号产生主参考时钟信号,并根据系统CPU的晶振获取辅助参考时钟信号; 在所述GPS信号正常时,根据所述主参考时钟信号产生本地时钟同步信号; 在所述GPS信号异常时,根据所述辅助参考时钟信号产生本地时钟同步信号。
2.根据权利要求I所述的方法,其特征在于,所述主参考时钟信号为PPlS中断。
3.根据权利要求I或2所述的方法,其特征在于,所述辅助参考时钟信号为根据所述CPU的晶振产生的辅助定时器中断。
4.根据权利要求3所述的方法,其特征在于,在所述GPS信号异常时,根据所述辅助参考时钟信号产生本地时钟同步信号,包括 将所述辅助定时器中断的时间间隔设置为N,划分出M个时间片,其中NXM = I秒,在每一轮中依次执行各时间片,并设置一计数器用于计数所执行的时间片,每一轮开始时,所述计数器清零; 在每一轮的同一个时间片中读取系统的FPGA输出的鉴相值; 在执行第M个时间片之前,修改所述辅助定时器中断的频率以使辅助定时器中断跨过I秒这一时间点; 在所述辅助定时器中断跨过I秒时间点后,当系统检测到所述PPlS中断丢失,则将本轮各时间片运行的总时间减去I秒,得到多运行的时间,然后以所述多运行的时间除以时间间隔N,得出下一轮需要从第几个时间片开始执行; 重复执行上述操作,根据每相邻两轮中读取所述鉴相值的时间间隔作为参考I秒来产生本地时钟同步信号。
5.根据权利要求4所述的方法,其特征在于,当所述GPS信号恢复正常时,根据所述主参考时钟信号修正所述辅助参考时钟信号。
6.根据权利要求5所述的方法,其特征在于,当所述GPS信号恢复正常时,根据所述主参考时钟信号修正所述辅助参考时钟信号,包括 当系统检测到所述PPlS中断到来时,将所述计数器清零,将所述辅助定时器中断的时间间隔设置为N,并立即跳转至第一时间片开始执行。
7.一种通信系统中的时钟同步装置,其特征在于,包括 GPS接收机,用于接收GPS信号,并根据所述GPS信号产生主参考时钟信号; 辅助参考时钟信号单元,用于根据系统CPU的晶振获取辅助参考时钟信号; 第一同步单元,用于在所述GPS信号正常时,根据所述主参考时钟信号产生本地时钟同步信号; 第二同步单元,用于在所述GPS信号异常时,根据所述辅助参考时钟信号产生本地时钟同步信号。
8.根据权利要求7所述的装置,其特征在于,所述主参考时钟信号为PPlS中断。
9.根据权利要求7或8所述的装置,其特征在于,所述辅助参考时钟信号单元包括 辅助定时器,与所述CPU的晶振相连,用于根据所述CPU的晶振产生辅助定时器中断。
10.根据权利要求9所述的装置,其特征在于,所述第二同步单元包括 初始化模块,用于将所述辅助定时器中断的时间间隔设置为N,划分出M个时间片,其中NXM = I秒,在每一轮中依次执彳丁各时间片; 计数器模块,用于计数所执行的时间片,每一轮开始时,所述计数器清零; 读鉴相值模块,用于在每一轮的同一个时间片中读取系统的FPGA输出的鉴相值;频率修改模块,用于在执行第M个时间片之前,修改所述辅助定时中断的频率以使辅助定时器中断跨过I秒这一时间点; 运算模块,用于在辅助定时中断跨过I秒时间点后,当系统检测到所述PPlS中断丢失,则将本轮各时间片运行的总时间减去I秒,得到多运行的时间,然后以所述多运行的时间除以时间间隔N,得出下一轮需要从第几个时间片开始执行; 同步信号模块,用于根据每相邻两轮中读取所述鉴相值的时间间隔作为参考I秒来产生本地时钟同步信号。
11.根据权利要求10所述的装置,其特征在于,所述第二同步单元还包括 修正模块,用于当系统检测到所述PPis中断到来时,将所述计数器清零,将所述辅助定时器中断的时间间隔设置为N,并立即跳转至第一时间片开始执行。
全文摘要
本发明提供了一种通信系统中的时钟同步方法及装置,该方法包括根据接收的GPS信号产生主参考时钟信号,并根据系统CPU的晶振获取辅助参考时钟信号;在GPS信号正常时,根据主参考时钟信号产生本地时钟同步信号;在GPS信号异常时,根据辅助参考时钟信号产生本地时钟同步信号。通过本发明,采用系统CPU的晶振获取辅助参考时钟信号,在GPS信号异常时,根据辅助参考时钟信号产生本地时钟同步信号,从而解决了在GPS接收机的PP1S中断丢失的情况下如何进行时钟的同步的问题,进而提高通信系统中时钟同步的可靠性。
文档编号H04L7/027GK102780555SQ20111012354
公开日2012年11月14日 申请日期2011年5月13日 优先权日2011年5月13日
发明者马凤乾 申请人:中兴通讯股份有限公司