校正本地时间的方法以及时钟服务器 【技术领域】
本发明涉及通信技术领域,具体涉及校正本地时间的方法以及时钟服务器。
背景技术
第三代网络对同步提出了新的要求,例如,在采用时分同步的码分多址技术(TD-SCDMA,Time Division-Synchronous Code Division Multiple Access)的网络中,基站系统之间需要高精度的时间同步,例如优于1.5微秒(us)。
目前主用采用如下同步方式:全球定位系统(GPS,Global PositioningSystem)接收机或其它时钟源向时钟服务器发送秒脉冲(PPS,Pulse Per Second)信号。当时钟服务器接收到PPS信号的上升沿时,时钟服务器校正本地时间,包括将本地时间的秒以下的时间清0,以及将本地时间的秒数加一秒,从而使时钟服务器与时钟源保持同步。例如,若时钟服务器在本地时间为30.9999999秒时,接收到输入的PPS信号的上升沿,则时钟服务器将本地时间校正为31.0000000秒。
同时,时钟服务器为网络中的多个客户机提供授时,使客户机与时钟服务器保持同步,从而实现网络中的客户机之间保持同步。
在对现有技术的研究和实践过程中,本发明的发明人发现,现有技术中,每个时钟服务器从一个时钟源获得PPS信号,当时钟源失步时,时钟服务器无法发现而仍然使用该时钟源发送的PPS信号校正本地时间,从而造成较大面积的客户机失步。
【发明内容】
本发明实施例提供一种能够发现时钟源失步,能够避免因时钟源失步而造成较大面积的客户机失步的校正本地时间的方法以及时钟服务器。
本发明实施例提供了一种校正本地时间的方法,包括:时钟服务器接收至少三个时钟源发送的秒时钟信号;获取每两个秒时钟信号的上升沿到来时刻的差值;判断是否有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限;若是,则根据所述其它秒时钟信号的上升沿到来时刻校正本地时间。
本发明实施例提供了一种时钟服务器,包括:接收模块,用于接收至少三个时钟源发送的秒时钟信号;获取模块,用于获取每两个秒时钟信号的上升沿到来时刻的差值;判断模块,用于判断是否有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限,若是,则触发第一校正模块执行相关操作;第一校正模块,用于根据所述其它秒时钟信号的上升沿到来时刻校正本地时间。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,时钟服务器接收至少三个时钟源发送的秒时钟信号,并比较每两个秒时钟信号的上升沿到来时刻,若有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限,说明发送这一个秒时钟信号的时钟源失步,则时钟服务器根据除这一个秒时钟信号之外的其它秒时钟信号的上升沿到来时刻校正本地时间。可见,本实施例中的时钟服务器可以发现时钟源失步且不使用该时钟源发送的秒时钟信号校正本地时间,从而避免了因时钟源失步而造成较大面积的客户机失步的情况。
【附图说明】
图1是本发明实施例中校正本地时间的方法的一个实施例的流程图;
图2是本发明实施例中校正本地时间的方法的另一实施例的流程图;
图3是本发明实施例中校正本地时间的方法的另一实施例的流程图;
图4是本发明实施例中时钟服务器的一个实施例的示意图;
图5是本发明实施例中时钟服务器的另一实施例的示意图;
图6是本发明实施例中客户机的一个实施例的示意图。
【具体实施方式】
本发明实施例提供一种校正本地时间地方法以及时钟服务器,能够使时钟服务器发现时钟源失步,能够避免因时钟源失步而造成较大面积的客户机失步。以下分别进行详细说明。
请参阅图1,本发明实施例中校正本地时间的方法的一个实施例,包括:
101、时钟服务器接收至少三个时钟源发送的秒时钟信号;
时钟服务器接收至少三个时钟源发送的PPS信号,该至少三个时钟源是相互独立的,时钟源可以为GPS或北斗。
时钟服务器可以周期性地(每2秒或每1秒一次)接收时钟源发送的日时间(TOD,Time Of Date)信息,以校正本地时间的秒数,具体执行方式为现有公知技术,此处不作赘述。
102、时钟服务器获取每两个秒时钟信号的上升沿到来时刻的差值;
在101之后,时钟服务器获取接收到每两个PPS信号的上升沿到来时刻的差值。进一步的,进行比较的PPS信号可以是上升沿到来时刻相差不超过0.5秒的所有PPS信号。
可以在时钟服务器内部设置一个计时器和一个比较器,用于记录各个时钟源发送的PPS信号的上升沿到来时刻,并比较每两个PPS信号的上升沿到来时刻的差值。也可以采用其它现有公知技术获取每两个PPS信号的上升沿到来时刻的差值,此处不一一列举。
103、时钟服务器判断是否有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限,若是,则执行104,否则执行105;
在为时钟服务器提供PPS信号的所有时钟源中,同时有两个以上的时钟源出现失步的概率是非常低的,可以不作考虑。因此,本发明实施例中,以考虑有且仅有一个时钟源出现失步的情况为例进行说明。
由于时钟源的误差一般为200纳秒,因此,在各个时钟源不失步的情况下,每两个时钟源的上升沿到来时刻的差值应该不大于400纳秒,因此,可以将预置门限设置为400纳秒,那么,若有一个PPS信号的上升沿到来时刻与其它各PPS信号的上升沿到来时刻的差值均大于等于400纳秒,则可以确定发送这一个PPS信号的时钟源出现失步。
104、时钟服务器根据其它秒时钟信号的上升沿到来时刻校正本地时间;流程结束。
在103中若判定有一个PPS信号的上升沿到来时刻与其它各PPS信号的上升沿到来时刻的差值均大于等于预置门限,说明发送这一个PPS信号的时钟源失步,因此,时钟服务器可以根据除了这一个PPS之外的其它PPS信号的上升沿到来时刻校正本地时间,可见,本实施例中的时钟服务器可以发现失步的时钟源,并避免因时钟源失步而造成较大面积的客户机失步的情况。
此处需要说明的是,时钟服务器根据其它PPS信号的上升沿到来时刻校正本地时间,具体可以包括:根据其它秒时钟信号中的任一个秒时钟信号的上升沿到来时刻校正本地时间;具体也可以包括:获取其它秒时钟信号中的两个以上的秒时钟信号的上升沿到来时刻的平均值,并根据该平均值校正本地时间。
此处还需要说明的是,由于执行102和103需要一定的时间,因此,可以理解的是,时钟服务器根据其它秒时钟信号中的一个秒时钟信号的上升沿到来时刻校正本地时间,可以在该上升沿到来时刻延迟1秒(也可以延迟2秒或3秒......)后将本地时间的秒以下的时间清0,并将本地时间的秒数加1;同理,时钟服务器根据其它秒时钟信号中的两个以上的秒时钟信号的上升沿到来时刻的平均值校正本地时间,可以在该平均值延迟1秒(也可以延迟2秒或3秒......)后将本地时间的秒以下的时间清0,并将本地时间的秒数加1。
105、根据所有秒时钟信号的上升沿到来时刻校正本地时间,流程结束。
可以理解的是,若103中判定没有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限,说明没有时钟源失步,则时钟服务器可以根据所有秒时钟信号中的任一个的上升沿到来时刻校正本地时间;也可以获取所有秒时钟信号中的两个以上的秒时钟信号的上升沿到来时刻的平均值,并根据该平均值校正本地时间。
此处需要说明的是,当103中判定没有一个秒时钟信号与其它秒时钟信号的上升沿到来时刻的差值大于等于预置门限时,说明没有时钟源失步,时钟服务器可以不校正本地时间,虽然会导致本地时间的秒数没有加1,但可以根据接收的TOD信息校正本地时间的秒数,因此,105是可以省略的。
本实施例中,时钟服务器接收至少三个时钟源发送的秒时钟信号,并比较每两个秒时钟信号的上升沿到来时刻,若有一个秒时钟信号与其它秒时钟信号的上升沿到来时刻的差值大于等于预置门限,说明发送这一个秒时钟信号的时钟源失步,则时钟服务器根据除这一个秒时钟信号之外的其它秒时钟信号的上升沿到来时刻校正本地时间。可见,本实施例中的时钟服务器可以发现时钟源失步且不使用该时钟源发送的秒时钟信号校正本地时间,从而避免了因时钟源失步而造成较大面积的客户机失步的情况。
为便于理解,下面以一更具体的实施例,对本发明实施例中的校正本地时间的方法进行详细说明。请参阅图2,本发明实施例中的校正本地时间的方法的另一实施例包括:
201、时钟服务器接收三个时钟源发送的秒时钟信号;
本实施例中,时钟服务器固定接收其中一个时钟源发送的TOD信息,用于校正本地时间的秒数。
202、时钟服务器获取每两个秒时钟信号的上升沿到来时刻的差值;
本实施例中,在时钟服务器中设置了一个独立于本地时钟的计时器,用于确定每个秒时钟信号的上升沿到来时刻。
203、时钟服务器判断是否有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限,若是,则执行204,否则执行205;
本实施例中,预置门限可以设为500纳秒(含100纳秒的冗余)。
假设前后接收到的三个PPS信号的上升沿到来时刻分别为29.99999985秒、29.99999995秒和30.00000045秒,那么第一个接收到的PPS信号与第二个接收到的PPS信号的上升沿到来时刻的差值为100纳秒,第一个接收到的PPS信号与第三个接收到的PPS信号的上升沿到来时刻的差值为600纳秒,第二个接收到的PPS信号与第三个接收到的PPS信号的上升沿到来时刻的差值为500纳秒,因此,第三个接收的PPS信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值均大于等于500纳秒,因此,可以确定发送第三个接收的PPS信号的时钟源失步。
204、获取其它两个秒时钟信号的上升沿到来时刻的平均值,根据该平均值校正本地时间;流程结束。
对应于203中的假设,确定第三个接收的PPS信号与其它秒时钟信号的上升沿到来时刻的差值大于等于500纳秒之后,时钟服务器获取第一个和第二个接收的秒时钟信号的上升沿到来时刻的平均值,即29.99999985秒和29.99999995秒的平均值29.99999990秒,并根据该平均值校正本地时间,具体可以为:在计时器为30.99999990秒时将本地时间的秒以下的时间清0,并将本地时间的秒数加1。
可以理解的是,在确定第三个接收的PPS信号与其它秒时钟信号的上升沿到来时刻的差值大于等于500纳秒之后,也可以根据第一个或第二个接收的秒时钟信号的上升沿到来时刻校正本地时间,例如,在计时器为30.99999985秒时将本地时间的秒以下的时间清0,并将本地时间的秒数加1。
此处还需要说明的是,当判定有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限时,时钟服务器还可以发起告警,以通知运维人员进行处理。
205、获取三个秒时钟信号的上升沿到来时刻的平均值,并根据该平均值校正本地时间,流程结束。
若将203中的假设改为第三个接收的秒时钟信号的上升沿到来时刻为30.00000005秒,那么,第一个接收到的PPS信号与第二个接收到的PPS信号的上升沿到来时刻的差值为100纳秒,第一个接收到的PPS信号与第三个接收到的PPS信号的上升沿到来时刻的差值为200纳秒,第二个接收到的PPS信号与第三个接收到的PPS信号的上升沿到来时刻的差值为100纳秒,因此,203中判定没有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限,即确定没有时钟源失步,则时钟服务器获取接收到的三个秒时钟信号的上升沿到来时刻的平均值29.99999995秒,并根据该平均值校正本地时间,即在计时器为30.99999995秒时将本地时间的秒以下的时间清0,并将本地时间的秒数加1。
可以理解的是,若203中判定没有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限,则时钟服务器也可以根据第二个接收的秒时钟信号的上升沿到来时刻29.99999995秒校正本地时间,即在计时器为30.99999995秒时将本地时间的秒以下的时间清0,并将本地时间的秒数加1。
此外还需要说明的是,在204和205中获取平均值时可以根据时钟源自身的精度进行加权平均。例如,在204中,可以根据时钟源自身的精度,对其它两个秒时钟信号的上升沿到来时刻进行加权平均获得平均值。
本实施例中,时钟服务器接收三个时钟源发送的秒时钟信号,若有一个秒时钟信号的上升沿到来时刻与其它各两个秒时钟信号的上升沿到来时刻的差值大于等于预置门限,说明发送这一个秒时钟信号的时钟源失步,则时钟服务器根据其它两个秒时钟信号的上升沿到来时刻的平均值校正本地时间。可见,本实施例中的时钟服务器可以发现时钟源失步且不使用该时钟源发送的秒时钟信号校正本地时间,从而避免了因时钟源失步而造成较大面积的客户机失步的情况。并且,本实施例中的时钟服务器还能够提高时钟服务器的精度,能够在发现时钟源失步时发起告警,提高了用户体验。
可以理解的是,客户机根据时钟服务器的授时校正本地时间也可以采用本发明实施例中的核心思想。因此,请参阅图3,本发明实施例还提供校正本地时间的方法的另一实施例,包括:
301、客户机获取至少三个时钟服务器的授时;
现有技术中,客户机从一个时钟服务器获得授时,并根据该授时调整本地时间,以实现客户机与时钟服务器的同步。
本实施例中,客户机从至少三个时钟服务器获得授时,该至少三个时钟服务器是相互独立的。
302、客户机获取每两个时钟服务器的授时的差值;
303、客户机判断是否有一个时钟服务器的授时与其它各时钟服务器的授时的差值大于等于预置门限,若是,则执行304,否则执行305;
本实施例中,预置门限可以设为500纳秒(含100纳秒的冗余)。
假设客户机从三个时钟服务器甲、乙和丙获得授时,且从时钟服务器甲、乙和丙获得的授时分别为30分29.99999985秒、30分29.99999995秒和30分30.00000045秒,那么时钟服务器甲的授时与时钟服务器乙的授时的差值为100纳秒,时钟服务器甲的授时与时钟服务器丙的授时的差值为为600纳秒,时钟服务器乙的授时与时钟服务器丙的授时的差值为500纳秒,因此,时钟服务器丙的授时与其它各时钟服务器的授时的差值均大于等于500纳秒,因此,可以确定时钟服务器丙失步。
在为客户机提供授时的所有时钟服务器中,同时有两个以上的时钟服务器出现失步的概率是非常低的,可以不作考虑。因此,本发明实施例中,以考虑有且仅有一个时钟服务器出现失步的情况为例进行说明。
304、客户机根据其它时钟服务器的授时校正本地时间;结束流程。
若客户机判定有一个时钟服务器的授时与其它各时钟服务器的授时的差值大于等于预置门限,说明这一个时钟服务器失步,则客户机根据除了这一个时钟服务器之外的其他时钟服务器的授时校正本地时间。可见,本实施例中的客户机可以发现时钟服务器失步(包括因时钟源失步引起的时钟服务器失步),且不使用失步的时钟服务器的授时校正本地时间,从而可以发现时钟源失步,并避免因时钟源失步而造成较大面积的客户机失步的情况。
305、客户机根据所有时钟服务器的授时校正本地时间;结束流程。
若客户机判定没有一个时钟服务器的授时与其它各时钟服务器的授时的差值大于等于预置门限,说明没有时钟服务器失步,则客户机根据所有时钟服务器的授时校正本地时间,具体可以为:根据所有时钟服务器的授时的平均值,或根据其中一个时钟服务器的授时校正本地时间。
本实施例中,客户机获得至少三个时钟服务器的授时,并比较每两个时钟服务器的授时,若有一个时钟服务器的授时与其它各时钟服务器的授时的差值大于等于预置门限,说明这一个时钟服务器失步,则客户机根据除这一个时钟服务器之外的其他时钟服务器的授时校正本地时间。可见,本实施例中的客户机可以发现时钟服务器失步(包括因时钟源失步引起的时钟服务器失步),且不使用失步的时钟服务器的授时校正本地时间,从而可以发现时钟源失步,并避免因时钟源失步而造成较大面积的客户机失步的情况。
下面对本发明实施例中的时钟服务器进行详细说明,请参阅图4,本发明实施例中的时钟服务器的一个实施例包括:
接收模块401,用于接收至少三个时钟源发送的秒时钟信号;
获取模块402,用于比较接收模块401接收到的至少三个时钟源发送的秒时钟信号,获取每两个秒时钟信号的上升沿到来时刻的差值;
判断模块403,用于判断是否有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限,若是,则触发第一校正模块404执行相关操作,否则触发第二校正模块405执行相关操作;
第一校正模块404,用于收到判断模块403的触发后,根据其它秒时钟信号的上升沿到来时刻校正本地时间;或者
第二校正模块405,用于收到判断模块403的触发后,根据所有秒时钟信号的上升沿到来时刻校正本地时间。
此处需要说明的是,第一校正模块404用于根据其它秒时钟信号的上升沿到来时刻校正本地时间,具体可以用于根据其它秒时钟信号中的一个秒时钟信号的上升沿到来时刻校正本地时间;具体也可以用于获取其它秒时钟信号中的两个以上的秒时钟信号的上升沿到来时刻的平均值,并根据该平均值校正本地时间。
可以理解的是,第二校正模块405在判断模块判定没有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限时,可以与现有技术一样,根据其中一个秒时钟信号的上升沿到来时刻校正本地时间;也可以获取所有秒时钟信号中的两个以上的秒时钟信号的上升沿到来时刻的平均值,并根据该平均值校正本地时间。
此处需要说明的是,当判断模块403判定没有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限时,说明没有时钟源失步,时钟服务器可以不校正本地时间,虽然会导致本地时间的秒数没有加1,但可以根据接收的TOD信息校正本地时间的秒数,因此,第二校正模块405是可以省略的。
本实施例的时钟服务器中,接收模块401接收至少三个时钟源发送的秒时钟信号,获取模块402获取每两个秒时钟信号的上升沿到来时刻的差值,判断模块403判断是否有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限,若是,说明发送这一个秒时钟信号的时钟源失步,则第一校正模块404根据除这一个秒时钟信号之外的其它秒时钟信号的上升沿到来时刻校正本地时间。可见,本实施例中的时钟服务器可以发现时钟源失步且不使用该时钟源发送的秒时钟信号校正本地时间,从而避免了因时钟源失步而造成较大面积的客户机失步的情况。
为便于理解,下面以一更具体的实施例对本发明实施例中的时钟服务器进行详细说明。请参阅图5,本发明实施例中的时钟服务器的另一实施例包括:
接收模块501,用于接收至少三个时钟源发送的秒时钟信号;
获取模块502,用于获取接收模块501接收到的每两个秒时钟信号的上升沿到来时刻的差值;
判断模块503,用于判断是否有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限,若是,则触发第一校正模块504执行相关操作,否则触发第二校正模块505执行相关操作;
第一校正模块504,用于收到判断模块503的触发后,获取其它秒时钟信号的上升沿到来时刻的平均值,根据该平均值校正本地时间;
第二校正模块505,用于收到判断模块503的触发后,获取所有秒时钟信号的上升沿到来时刻的平均值,并根据该平均值对应的秒脉冲信号校正本地时间。
本实施例的时钟服务器中,接收模块501接收至少三个时钟源发送的秒时钟信号,获取模块502获取接收的每两个秒时钟信号的上升沿到来时刻的差值。
然后,判断模块503判断是否有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限,若是,则第一校正模块504获取其它秒时钟信号的上升沿到来时刻的平均值,根据该平均值校正本地时间;否则第二校正模块505获取所有秒时钟信号的上升沿到来时刻的平均值,并根据该平均值对应的秒脉冲信号校正本地时间。
此外,本实施例中的时钟服务器还可以包括告警模块506,用于发起告警;判断模块503在判定有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限时,除了触发第一校正模块504执行相关操作之外,还可以触发告警模块506执行相关操作。
本实施例的时钟服务器中,接收模块501接收至少三个时钟源发送的秒时钟信号,获取模块502获取每两个秒时钟信号的上升沿到来时刻的差值,判断模块503判断是否有一个秒时钟信号的上升沿到来时刻与其它各秒时钟信号的上升沿到来时刻的差值大于等于预置门限,若是,说明发送这一个秒时钟信号的时钟源失步,则第一校正模块504根据除这一个秒时钟信号之外的其它秒时钟信号的上升沿到来时刻校正本地时间,否则第二校正模块505根据所有秒时钟信号的上升沿到来时刻的平均值校正本地时间。可见,本实施例中的时钟服务器可以发现时钟源失步且不使用该时钟源发送的秒时钟信号校正本地时间,从而避免了因时钟源失步而造成较大面积的客户机失步的情况。并且,本实施例中的时钟服务器还能够提高时钟服务器的精度,能够在发现时钟源失步时发起告警,提高了用户体验。
相应于图3所示实施例,本发明实施例还提供一种客户机。请参阅图6,本发明实施例中客户机的一个实施例包括:
第一获取模块601,用于获取至少三个时钟服务器的授时;
第二获取模块602,用于获取第一获取模块601获取的每两个时钟服务器的授时的差值;
判断模块603,用于判断是否有一个时钟服务器的授时与其它各时钟服务器的授时的差值大于等于预置门限,若是,则触发第一校正模块604执行相关操作,否则触发第二校正模块605执行相关操作;
第一校正模块604,用于收到判断模块603的触发后,根据其它时钟服务器的授时校正本地时间;
第二校正模块605,用于收到判断模块603的触发后,根据所有时钟服务器的授时校正本地时间。
本实施例的客户机中,第一获取模块601获取至少三个时钟服务器的授时,第二获取模块602获取每两个时钟服务器的授时的差值,然后,判断模块603判断是否有一个时钟服务器的授时与其它各时钟服务器的授时的差值大于等于预置门限,若是,说明这一个时钟服务器失步,则第一校正模块604根据除这一个时钟服务器之外的其它时钟服务器的授时校正本地时间。可见,本实施例中的客户机可以发现时钟服务器失步(包括因时钟源失步引起的时钟服务器失步),且不使用失步的时钟服务器的授时校正本地时间,从而可以发现时钟源失步,并避免因时钟源失步而造成较大面积的客户机失步的情况。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读内存(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本发明实施例所提供的校正本地时间的方法以及时钟服务器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。