本发明涉及到网络测量中的时间同步技术,具体涉及到一种网络测量中本地时钟与GPS时钟的时间同步方法及装置。
背景技术:
在无线通信系统的发展过程中,对网络的规划,测量环节必不可少,然而,在这些环节中的测量设备与本地设备的时间同步问题一直是一个极具挑战性的问题,设备秒计数周期和标准秒计数周期的差别等细微因素都会导致时间的不同步。时间不同步问题也直接导致网络规划、测量中参数的重大失误,如时间提前量参数,周期下行导频测量参数,随机接入相关参数等,这些失误的参数也由此失去了分析的意义。
现有技术网络测量设备与本地设备的时间同步大多采用以下两种方法:一是采用网络时间服务器进行同步,传输控制协议/网际协议TCP/IP中有专门用于校时的网络时间协议/简单网络时间协议NTP/SNTP,这两种协议能提供时间补偿,减少网络延时带来的时间延时。但是,此方法误差高达毫秒级,在精度要求较高的场合不宜采用。二是通过全球定位系统GPS进行时间同步,卫星导航定位系统可提供高精度、全天候的授时服务,具有GPS功能的设备可接收GPS上的时间信号。GPS时钟是一种基于GPS高精度定位授时模块开发的基础型授时应用产品,产品能够按照用户需求输出符合规约的时间信息格式,从而完成同步授时服务。但是,GPS时钟虽然精度高,但它仅能准确的表示1秒的开始时刻(通常称为秒头),在两个秒头之间则需要依靠设备本地时钟来进行保持。通常本地时钟的精度在10ppm到50ppm之间,这必然导致在两个秒头之间的时间存在误差。其次,在将本地时间作为高速率数据采集设备的数据时间标签使用时,时间精度要做到微秒,且不允许出现时间倒流的情况。显然,现有技术网络测量设备与本地设备的时间同步方法存在着误差较高,或者对本地时钟的精度和要求较高等问题。
技术实现要素:
为解决现有技术网络测量设备与本地设备的时间同步方法存在的误差较高,或者对本地时钟的精度和要求较高等问题,本发明提出一种网络测量中本地时钟与GPS时钟的时间同步方法及装置。
本发明网络测量中本地时钟与GPS时钟的时间同步方法,以基于全球定位系统的GPS时钟作为配置时间,根据本地时间与配置时间的偏差值进行时间同步操作;在时间同步时对本地时钟的秒计数周期误差进行修正;所述时间同步操作是指采用同步使能信号控制本地时钟的秒和微秒计数器工作并以该同步使能信号对应的时钟频率进行计数,使得本地时间与GPS配置时间同步;所述对本地时钟的秒计数周期误差进行修正是指采用修正使能信号得到同步使能信号,从而控制本地时钟的秒和微秒计数器以该同步使能信号的时钟频率进行计数,使得本地时钟秒计数周期与GPS时钟秒计数周期同步;其中,所述同步使能信号是指当该同步使能信号有效时计数器工作并以该同步使能信号对应时钟频率进行计数,该同步使能信号无效时计数器不工作;所述修正使能信号是指对本地时钟的时钟频率进行修正后得到的具有经过修正后的时钟频率的信号。
进一步的,所述本地时钟的时钟频率为100MHZ;所述本地时间秒计数周期是指本地时钟对100×106个脉冲计数实际所需的时间;所述本地时钟的秒计数周期误差是指本地时间秒计数周期与GPS时钟秒计数周期的差值。
进一步的,所述根据本地时间与配置时间的偏差值进行时间同步操作,包括,在配置开始时,即在每一个GPS_1PPS秒脉冲上升沿时刻,计算本地时间与GPS配置时间的偏差值n,判断本地时间与GPS配置时间的超前或滞后关系,即判断下式中n与0的大小关系:
n=(Sec_cnt-Cfg_sec)×1000000+(Us_cnt-Cfg_us)
式中,Sec_cnt为本地时间秒计数,Us_cnt为本地时间微秒计数,Cfg_sec为GPS配置时间的秒计数,Cfg_us为GPS配置时间的微秒计数,n的单位为微秒;
如果n大于0表示本地时间超前GPS配置时间,采用慢速跟进来等待配置时间,防止本地时间出现时间倒退现象;如果n小于0表示本地时间滞后GPS配置时间,将GPS配置时间写入本地时钟,以达到时间同步;如果n等于0表示本地时间准确,不采取任何操作。
进一步的,所述采用慢速跟进来等待配置时间,包括,从100MHZ时钟上进行10分频得到时钟频率为10MHZ的修正使能信号Cen10M,再将该修正使能信号Cen10M进行11分频得到时钟频率为0.909MHZ的同步使能信号Cen1M,采用该同步使能信号Cen1M控制本地时钟的秒和微秒计数器开始工作并以0.909MHZ的时钟频率进行计数;维持n×10个脉冲个数后,对修正使能信号Cen10M进行10分频得到时钟频率为1MHZ的同步使能信号Cen1M并以此控制本地时钟的秒和微秒计数器采用1MHZ的时钟频率进行计数;其中,n=(Sec_cnt-Cfg_sec)×1000000+(Us_cnt-Cfg_us),式中,Sec_cnt为本地时间秒计数,Us_cnt为本地时间微秒计数,Cfg_sec为GPS配置时间的秒计数,Cfg_us为GPS配置时间的微秒计数,n为本地时间与GPS配置时间的偏差值,单位为微秒。
进一步的,在计算本地时间与GPS配置时间的偏差值n的过程中,采用20bit有符号减法器、32bit有符号减法器、乘法器和加法器进行计算;其中,
20bit有符号减法器的输入为本地时间微秒计数Us_cnt和GPS配置时间微秒计数Cfg_us两个20bit的无符号数,将本地时间微秒计数减去GPS配置时间微秒计数,输出为21bit的有符号数,由此完成微秒的差值处理;
32bit有符号减法器的输入为本地时间秒计数Sec_cnt和GPS配置时间秒计数Cfg_sec两个32bit的无符号数,将本地时间秒计数减去GPS配置时间秒计数,输出为33bit的有符号数;由此完成秒的差值处理;其中,在32bit有符号减法器输出正值时,若结果大于32767,进行上限调节,将偏差值强制置为32767,否则,取其结果的低16bit使用;若输出负值时,当结果小于-255,进行上限调节,将偏差值强制置为-255;否则,取其结果的低16bit使用;
乘法器输入为上限调节后输出的16bit有符号数,输出为37bit有符号数;将上限调节单元输出的值乘以1000000后输出;
加法器输入为乘法器输出的37bit有符号数和20bit有符号减法器输出的21bit有符号数,输出为38bit有符号数;将微秒差和秒差相加,即得到输出本地时间与GPS配置时间的偏差值n。
进一步的,所述将GPS配置时间写入本地时钟,包括,从100MHZ时钟上进行10分频得到时钟频率为10MHZ的修正使能信号Cen10M,再将该修正使能信号Cen10M进行10分频得到时钟频率为1MHZ的同步使能信号Cen1M,将GPS配置时间的秒和微秒写入本地时钟的秒和微秒计数器,采用该同步使能信号Cen1M控制本地时钟的秒和微秒计数器开始工作并以1MHZ时钟频率进行计数。
进一步的,所述在时间同步时对本地时钟的秒计数周期误差进行修正,包括,在GPS配置秒信号GPS_1PPS与本地时钟秒信号同步时,对本地时钟在一个GPS时钟秒计数周期内的脉冲个数进行计数,计数个数记为Cnt_1;将100MHZ时钟标准脉冲个数100×106与Cnt_1相减得到脉冲个数误差值dfl,即dfl=100×106-Cnt_1;将Cnt_1与dfl相除得到本地时间秒计数周期误差修正的修正周期Perr,即Perr=Cnt_1/(100×106-Cnt_1),其中,Perr的正负符号位记为Dadj,Perr为正值时,Dadj为正,反之,Dadj为负;并且,在一个GPS时钟标准秒周期内需要修正的次数为Cnt_1/Perr;
如果Dadj为正值,说明本地时间秒计数周期大于GPS时钟标准秒计数周期,则每经过一个修正周期Perr对修正使能信号Cen10M的时钟频率进行一次修正;即从100MHZ时钟上进行9分频得到时钟频率11.11MHZ的修正使能信号Cen10M,在时间同步过程中采用该修正使能信号Cen10M得到同步使能信号Cen1M;维持100MHZ时钟信号的一个脉冲时间,在100MHZ时钟信号的下一个脉冲信号上升沿时刻,将修正使能信号Cen10M恢复为默认时钟频率10MHZ;
如果Dadj为负值,说明本地时间秒计数周期小于GPS时钟标准秒计数周期,则每经过一个修正周期Perr对修正使能信号Cen10M的时钟频率进行一次修正,即从100MHZ时钟上进行11分频得到时钟频率9.09MHZ修正使能信号Cen10M,在时间同步过程中采用该修正使能信号Cen10M得到同步使能信号Cen1M;维持100MHZ时钟信号的一个脉冲时间,在100MHZ时钟信号的下一个脉冲信号上升沿时刻,将修正使能信号Cen10M恢复为默认时钟频率10MHZ;
并且,在以后每次GPS配置秒信号GPS_1PPS与本地时钟秒信号同步时,均采用上述方法对本地时钟的秒计数周期误差进行修正。
进一步的,所述以基于全球定位系统的GPS时钟作为配置时间,根据本地时间与配置时间的偏差值进行时间同步操作,包括以下步骤:
S101、以全球定位系统GPS时钟作为配置时间,配置开始时,即在GPS_1PPS秒脉冲上升沿时刻开始计算本地时间与GPS配置时间的偏差值n,判断本地时间与GPS配置时间的超前或滞后关系,即判断下式中n与0的大小关系:
n=(Sec_cnt-Cfg_sec)×1000000+(Us_cnt-Cfg_us)
式中,Sec_cnt为本地时间秒计数,Us_cnt为本地时间微秒计数,Cfg_sec为GPS配置时间的秒计数,Cfg_us为GPS配置时间的微秒计数,n为本地时间与GPS配置时间的偏差值,单位为微秒;其中,所述本地时钟的时钟频率为100MHZ;
S102、判断n>0?是则,表示本地时间超前GPS配置时间,从100MHZ时钟上进行10分频得到时钟频率为10MHZ的修正使能信号Cen10M,再将该修正使能信号Cen10M进行11分频得到时钟频率为0.909MHZ的同步使能信号Cen1M,采用该同步使能信号Cen1M控制本地时钟的秒和微秒计数器开始工作并以0.909MHZ时钟频率进行计数;维持n×10个脉冲个数后,对修正使能信号Cen10M进行10分频得到时钟频率为1MHZ的同步使能信号Cen1M并以此控制本地时钟的秒和微秒计数器采用1MHZ的时钟频率进行计数,同步完成;其中,n为本地时间与GPS配置时间的偏差值,单位为微秒;n=(Sec_cnt-Cfg_sec)×1000000+(Us_cnt-Cfg_us),式中,Sec_cnt为本地时间秒计数,Us_cnt为本地时间微秒计数,Cfg_sec为GPS配置时间的秒计数,Cfg_us为GPS配置时间的微秒计数;否则,顺序执行步骤S103;
S103、判断n<0?是则,表示本地时间滞后GPS配置时间,将GPS配置时间写入本地时间,即从100MHZ时钟上进行10分频得到时钟频率为10MHZ的修正使能信号Cen10M,再将该修正使能信号Cen10M进行10分频得到时钟频率为1MHZ的同步使能信号Cen1M,将GPS配置时间的秒和微秒写入本地时钟的秒和微秒计数器,采用该同步使能信号Cen1M控制本地时间的秒和微秒计数器开始工作并以1MHZ时钟频率进行计数,同步完成;否则,顺序执行步骤S104;
S104、表示本地时间准确,不采取任何操作,同步完成;
S105、在整个测量过程中,重复执行步骤S101至S104;直至测量过程结束。
进一步的,所述在时间同步时对本地时钟的秒计数周期误差进行修正,包括以下步骤:
S201、在GPS配置秒信号GPS_1PPS与100MHZ时钟信号同步时,对本地时钟在一个GPS标准秒周期内的脉冲个数进行计数,计数个数记为Cnt_1;将100MHZ时钟秒周期内的脉冲个数100×106与Cnt_1相减得到误差值dfl,即dfl=100×106-Cnt_1;将Cnt_1与dfl相除得到本地时间秒计数周期误差调整的修正周期Perr,即Perr=Cnt_1/(100×106-Cnt_1),其中,Perr的正负符号位记为Dadj,Perr为正值时,Dadj为正,反之,Dadj为负;其中,所述本地时间秒计数周期是指本地时钟对100×106个脉冲计数实际所需的时间;所述本地时钟的秒计数周期误差是指本地时间秒计数周期与GPS时钟秒计数周期的差值;
S202、每经过一个修正周期Perr,对Dadj值的正负进行判断,如果Dadj为正值,执行步骤S203,否则,跳转执行步骤S204;
S203、Dadj为正值,说明本地时间秒计数周期大于GPS时钟标准秒计数周期,从100MHZ时钟上进行9分频得到时钟频率为11.11MHZ的修正使能信号Cen10M,跳转执行步骤S205;
S204、Dadj为负值,说明本地时间秒计数周期小于GPS时钟标准秒计数周期,从100MHZ时钟上进行11分频得到时钟频率为9.09MHZ的修正使能信号Cen10M;
S205、维持100MHZ时钟信号的一个脉冲时间,在100MHZ时钟信号的下一个脉冲信号上升沿时刻,对100MHZ时钟恢复为默认10分频,修正使能信号Cen10M恢复时钟频率10MHZ;
S206、判断GPS配置秒信号GPS_1PPS与100MHZ时钟信号是否再次同步;是则,返回并顺序执行步骤S201至S205;否则,返回并顺序执行步骤S202至S205;
S207、在整个测量过程中,重复执行步骤S201至S206;直至测量过程结束。
本发明网络测量中本地时钟与GPS时钟的时间同步装置,该同步装置单独设置且通过接口与网络测量设备配套使用,或者直接设置在网络测量设备中;采用FPGA模块作为硬件支撑,包括,在FPGA模块上设置有GPS时间秒配置模块、本地Cen10M时钟修正模块、同步使能信号产生模块、差值计算模块和配置模式控制模块;其中,
所述GPS时间秒配置模块用于将GPS时钟转化为秒单位,并在GPS_1PPS秒脉冲上升沿时刻发出配置信号;
所述本地Cen10M时钟修正模块用于对本地时钟的秒计数周期误差进行修正,包括9/10/11分频器、误差计数器、秒周期修正计数器、减法器和除法器,其中,
所述9/10/11分频器用于产生修正使能信号Cen10M且默认选择10分频,即修正使能信号Cen10M默认时钟频率为10MHZ,若选择9分频或11分频,则修正使能信号Cen10M的时钟频率分别为11.11MHZ或9.09MHZ;
误差计数器在GPS配置秒信号GPS_1PPS与100MHZ时钟信号同步时对本地时钟在一个GPS标准秒周期内脉冲个数进行计数,计数个数记为Cnt_1;
减法器将100MHZ时钟秒周期内的脉冲个数100×106与Cnt_1相减得到误差值dfl,即dfl=100×106-Cnt_1;
除法器将Cnt_1与dfl相除得到本地时间秒计数周期误差修正的修正周期Perr,即Perr=Cnt_1/(100×106-Cnt_1),其中,Perr的正负符号位记为Dadj,Perr为正值时,Dadj为正,反之,Dadj为负;
秒周期修正计数器每经过一个修正周期Perr计数一次,每次计数时对Dadj值的正负进行判断:其中,
如果Dadj为正值,说明本地时间秒计数周期大于GPS时钟标准秒计数周期,则每经过一个修正周期Perr对修正使能信号Cen10M的时钟频率进行一次修正;即从100MHZ时钟上进行9分频得到时钟频率11.11MHZ的修正使能信号Cen10M,在时间同步过程中采用该修正使能信号Cen10M得到同步使能信号Cen1M;维持100MHZ时钟信号的一个脉冲时间,在100MHZ时钟信号的下一个脉冲信号上升沿时刻,将修正使能信号Cen10M恢复为默认时钟频率10MHZ;
如果Dadj为负值,说明本地时间秒计数周期小于GPS时钟标准秒计数周期,则每经过一个修正周期Perr对修正使能信号Cen10M的时钟频率进行一次修正,即从100MHZ时钟上进行11分频得到时钟频率9.09MHZ修正使能信号Cen10M,在时间同步过程中采用该修正使能信号Cen10M得到同步使能信号Cen1M;维持100MHZ时钟信号的一个脉冲时间,在100MHZ时钟信号的下一个脉冲信号上升沿时刻,将修正使能信号Cen10M恢复为默认时钟频率10MHZ;
其中,修正周期Perr以100MHZ时钟信号为基准计数,在一个GPS标准秒周期内需要修正的次数为Cnt_1/Perr;所述n为本地时间与GPS配置时间的偏差值;
所述差值计算模块用于计算本地时间与GPS配置时间的偏差值,包括20bit有符号减法器,32bit有符号减法器、加法器、乘法器和上限调节单元;采用下式计算本地时间与GPS配置时间的偏差值n:
n=(Sec_cnt-Cfg_sec)×1000000+(Us_cnt-Cfg_us)
式中,Sec_cnt为本地时间秒计数,Us_cnt为本地时间微秒计数,Cfg_sec为GPS配置时间的秒计数,Cfg_us为GPS配置时间的微秒计数,n的单位为微秒;然后根据n与0的大小关系进行配置模式控制,完成时间同步操作;其中,
20bit有符号减法器:输入为本地时间微秒计数Us_cnt和GPS配置时间微秒计数Cfg_us两个20bit的无符号数,将本地时间微秒计数减去GPS配置时间微秒计数,输出为21bit的有符号数,由此完成微秒的差值处理;
32bit有符号减法器:输入为本地时间秒计数Sec_cnt和GPS配置时间秒计数Cfg_sec两个32bit的无符号数,将本地时间秒计数减去GPS配置时间秒计数,输出为33bit的有符号数。由此完成秒的差值处理;
上限调节单元:在32bit有符号减法器输出正值时,若结果大于32767,则将偏差值强制置为32767,否则,取其结果的低16bit使用;若输出负值时,当结果小于-255,将偏差值强制置为-255;否则,取其结果的低16bit使用;
乘法器:输入为上限调节单元输出的16bit有符号数,输出为37bit有符号数;将上限调节单元输出的值乘以1000000后输出;
加法器:输入为乘法器输出的37bit有符号数和20bit有符号减法器输出的21bit有符号数,输出为38bit有符号数;将微秒差和秒差相加,得到输出本地时间与GPS配置时间的偏差值n;
所述使能信号产生模块用于得到同步使能信号Cen1M,包括用于产生同步使能信号Cen1M的10/11分频器,可分别选择10分频或11分频,其同步使能信号Cen1M的时钟频率分别为1MHZ或0.909MHZ;其中,所述同步使能信号是指当使能信号有效时计数器工作并以该时钟使能信号对应时钟频率进行计数,同步使能信号无效时计数器不工作;
所述配置模式控制模块根据偏差值n计算结果控制同步使能信号产生模块的10/11分频器和计数器的加载,包括,
当配置启动时,配置时间的微秒Cfg_us置为0,配置时间的秒Cfg_sec置为GPS的时间秒值(GPS_CFG_SEC);
当配置启动时,如果n>0,表示本地时间超前GPS配置时间,所述9/10/11分频器以默认10分频从100MHZ时钟上分频得到Cen10M修正使能信号,所述10/11分频器将该修正使能信号Cen10M进行11分频得到时钟频率为0.909MHZ的同步使能信号Cen1M,采用该同步使能信号Cen1M控制本地时钟的秒和微秒计数器开始工作并以0.909MHZ时钟频率进行计数;维持n×10个脉冲个数后,对修正使能信号Cen10M进行10分频得到时钟频率为1MHZ的同步使能信号Cen1M并以此控制本地时钟的秒和微秒计数器采用1MHZ的时钟频率进行计数;其中,n为本地时间与GPS配置时间的偏差值,单位为微秒;n=(Sec_cnt-Cfg_sec)×1000000+(Us_cnt-Cfg_us),式中,Sec_cnt为本地时间秒计数,Us_cnt为本地时间微秒计数,Cfg_sec为GPS配置时间的秒,Cfg_us为GPS配置时间的微秒;
当配置启动时,如果n<0,表示本地时间滞后GPS配置时间,将GPS配置时间写入本地时间,所述9/10/11分频器以默认10分频从100MHZ时钟上分频得到Cen10M修正使能信号,所述10/11分频器置将该使能信号Cen10M进行10分频得到时钟频率1MHZ的同步使能信号Cen1M,将GPS配置时间的秒和微秒写入本地时间秒和微秒计数器,采用该同步使能信号Cen1M控制本地时间的秒和微秒计数器开始工作并以1MHZ时钟频率进行计数;
当配置启动时,如果n=0,说明本地时间准确,所述10/11分频器置为10分频,不采取任何操作。
本发明网络测量中本地时钟与GPS时钟的时间同步方法及装置的有益技术效果是采用GPS时钟作为配置时间实现时钟同步,采用CLK100M标准时钟的进行秒周期计数误差修正,其步骤简单,方便操作,可以在较低的成本下完成高精度的时间同步。
附图说明
附图1为本发明方法时钟同步的流程示意图;
附图2为本发明方法对本地时钟的秒计数周期误差进行修正的流程示意图;
附图3为本发明网络测量中本地时钟与GPS时钟的时间同步装置结构示意图。
下面结合附图对本发明网络测量中本地时钟与GPS时钟的时间同步方法及装置作进一步的说明。
具体实施方式
显而易见地,下面描述中的附图仅仅是本发明的一些实施例,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明网络测量中本地时钟与GPS时钟的时间同步方法,以基于全球定位系统的GPS时钟作为配置时间,根据本地时间与配置时间的偏差值进行时间同步操作;在时间同步时对本地时钟的秒计数周期误差进行修正;所述时间同步操作是指采用同步使能信号控制本地时钟的秒和微秒计数器工作并以该同步使能信号对应的时钟频率进行计数,使得本地时间与GPS配置时间同步;所述对本地时钟的秒计数周期误差进行修正是指采用修正使能信号得到同步使能信号,从而控制本地时钟的秒和微秒计数器以该同步使能信号的时钟频率进行计数,使得本地时钟秒计数周期与GPS时钟秒计数周期同步;其中,所述同步使能信号是指当该同步使能信号有效时计数器工作并以该同步使能信号对应时钟频率进行计数,该同步使能信号无效时计数器不工作;所述修正使能信号是指对本地时钟的时钟频率进行修正后得到的具有经过修正后的时钟频率的信号。
显然,本发明网络测量中本地时钟与GPS时钟的时间同步方法采用精度较高的GPS时钟作为基准,根据本地时间与配置时间的偏差值进行时间同步操作,能够保证本地时钟的秒头具有较高的精度。在时间同步的同时对本地时钟的秒周期计数进行修正,可以有效降低两个秒头之间的计时误差。由此降低了采用GPS时钟进行秒头同步时对本地时钟精度的要求,使得大多数本地测量设备都能直接应用到网络测量中,且保持较高的时间同步精度。其中,作为具体实施例,所述本地时钟的时钟频率为100MHZ;所述本地时间秒计数周期是指本地时钟对100×106个脉冲计数实际所需的时间;所述本地时钟的秒计数周期误差是指本地时间秒计数周期与GPS时钟秒计数周期的差值。显然,采用100MHZ的时钟频率作为本地时钟频率能过获得较高的计时精度,也有利于对两个秒头之间的计时误差进行修正。
作为具体实施例,所述根据本地时间与配置时间的偏差值进行时间同步操作,包括,在配置开始时,即在每一个GPS_1PPS秒脉冲上升沿时刻,计算本地时间与GPS配置时间的偏差值n,判断本地时间与GPS配置时间的超前或滞后关系,即判断下式中n与0的大小关系:
n=(Sec_cnt-Cfg_sec)×1000000+(Us_cnt-Cfg_us)
式中,Sec_cnt为本地时间秒计数,Us_cnt为本地时间微秒计数,Cfg_sec为GPS配置时间的秒计数,Cfg_us为GPS配置时间的微秒计数,n的单位为微秒;
如果n大于0表示本地时间超前GPS配置时间,采用慢速跟进来等待配置时间,防止本地时间出现时间倒退现象;如果n小于0表示本地时间滞后GPS配置时间,将GPS配置时间写入本地时钟,以达到时间同步;如果n等于0表示本地时间准确,不采取任何操作。其中,
所述采用慢速跟进来等待配置时间,包括,从100MHZ时钟上进行10分频得到时钟频率为10MHZ的修正使能信号Cen10M,再将该修正使能信号Cen10M进行11分频得到时钟频率为0.909MHZ的同步使能信号Cen1M,采用该同步使能信号Cen1M控制本地时钟的秒和微秒计数器开始工作并以0.909MHZ的时钟频率进行计数;维持n×10个脉冲个数后,对修正使能信号Cen10M进行10分频得到时钟频率为1MHZ的同步使能信号Cen1M并以此控制本地时钟的秒和微秒计数器采用1MHZ的时钟频率进行计数;其中,n=(Sec_cnt-Cfg_sec)×1000000+(Us_cnt-Cfg_us),式中,Sec_cnt为本地时间秒计数,Us_cnt为本地时间微秒计数,Cfg_sec为GPS配置时间的秒计数,Cfg_us为GPS配置时间的微秒计数,n为本地时间与GPS配置时间的偏差值,单位为微秒。
所述将GPS配置时间写入本地时钟,包括,从100MHZ时钟上进行10分频得到时钟频率为10MHZ的修正使能信号Cen10M,再将该修正使能信号Cen10M进行10分频得到时钟频率为1MHZ的同步使能信号Cen1M,将GPS配置时间的秒和微秒写入本地时钟的秒和微秒计数器,采用该同步使能信号Cen1M控制本地时钟的秒和微秒计数器开始工作并以1MHZ时钟频率进行计数。
显然,n与0的大小关系反映了本地时间相对于GPS配置时间的超前或滞后关系。当n大于0表示本地时间超前GPS配置时间,需要放慢本地时间,防止本地时间出现时间倒退现象。作为实施例,本发明采用慢速跟进来等待配置时间,采用时钟频率为0.909MHZ的同步使能信号Cen1M控制本地时间的秒和微秒计数器开始工作并以0.909MHZ时钟频率进行计数;维持n×10个脉冲个数后,对修正使能信号Cen10M进行10分频得到时钟频率为1MHZ的同步使能信号Cen1M并以此控制本地时钟的秒和微秒计数器采用1MHZ的时钟频率进行计数。可见,采用比正常值低的0.909MHZ时钟频率进行计数,可以“等待”GPS配置时间到来,实现本地时间与GPS配置时间的同步。当n小于0表示本地时间滞后GPS配置时间,可以直接将GPS配置时间写入本地时间,并采用时钟频率1MHZ的同步使能信号Cen1M控制本地时间的秒和微秒计数器开始工作并以1MHZ时钟频率进行计数。当n等于0表示本地时间准确,可以不采取任何操作。
作为具体实施例(参见附图3),本发明在计算本地时间与GPS配置时间的偏差值n的过程中,采用20bit有符号减法器、32bit有符号减法器、乘法器和加法器进行计算;其中,
20bit有符号减法器的输入为本地时间微秒计数Us_cnt和GPS配置时间微秒计数Cfg_us两个20bit的无符号数,将本地时间微秒计数减去GPS配置时间微秒计数,输出为21bit的有符号数,由此完成微秒的差值处理;
32bit有符号减法器的输入为本地时间秒计数Sec_cnt和GPS配置时间秒计数Cfg_sec两个32bit的无符号数,将本地时间秒计数减去GPS配置时间秒计数,输出为33bit的有符号数;由此完成秒的差值处理;其中,在32bit有符号减法器输出正值时,若结果大于32767,进行上限调节,将偏差值强制置为32767,否则,取其结果的低16bit使用;若输出负值时,当结果小于-255,进行上限调节,将偏差值强制置为-255;否则,取其结果的低16bit使用;
乘法器输入为上限调节后输出的16bit有符号数,输出为37bit有符号数;将上限调节单元输出的值乘以1000000后输出;
加法器输入为乘法器输出的37bit有符号数和20bit有符号减法器输出的21bit有符号数,输出为38bit有符号数;将微秒差和秒差相加,即得到输出本地时间与GPS配置时间的偏差值n。
作为具体实施例,所述在时间同步时对本地时钟的秒计数周期误差进行修正,包括,在GPS配置秒信号GPS_1PPS与本地时钟秒信号同步时,对本地时钟在一个GPS时钟秒计数周期内的脉冲个数进行计数,计数个数记为Cnt_1;将100MHZ时钟标准脉冲个数100×106与Cnt_1相减得到脉冲个数误差值dfl,即dfl=100×106-Cnt_1;将Cnt_1与dfl相除得到本地时间秒计数周期误差修正的修正周期Perr,即Perr=Cnt_1/(100×106-Cnt_1),其中,Perr的正负符号位记为Dadj,Perr为正值时,Dadj为正,反之,Dadj为负;并且,在一个GPS时钟标准秒周期内需要修正的次数为Cnt_1/Perr;
如果Dadj为正值,说明本地时间秒计数周期大于GPS时钟标准秒计数周期,说明本地时钟较GPS时钟“慢”,需要加快计数速度,即需要增大时钟频率。采取的措施是每经过一个修正周期Perr对修正使能信号Cen10M的时钟频率进行一次修正;即从100MHZ时钟上进行9分频得到时钟频率11.11MHZ的修正使能信号Cen10M,在时间同步过程中采用该修正使能信号Cen10M得到同步使能信号Cen1M;维持100MHZ时钟信号的一个脉冲时间,在100MHZ时钟信号的下一个脉冲信号上升沿时刻,将修正使能信号Cen10M恢复为默认时钟频率10MHZ;
如果Dadj为负值,说明本地时间秒计数周期小于GPS时钟标准秒计数周期,说明本地时钟较GPS时钟“快”,需要降低计数速度,即需要减小时钟频率。采取的措施是每经过一个修正周期Perr对修正使能信号Cen10M的时钟频率进行一次修正,即从100MHZ时钟上进行11分频得到时钟频率9.09MHZ修正使能信号Cen10M,在时间同步过程中采用该修正使能信号Cen10M得到同步使能信号Cen1M;维持100MHZ时钟信号的一个脉冲时间,在100MHZ时钟信号的下一个脉冲信号上升沿时刻,将修正使能信号Cen10M恢复为默认时钟频率10MHZ;
并且,在以后每次GPS配置秒信号GPS_1PPS与本地时钟秒信号同步时,均采用上述方法对本地时钟的秒计数周期误差进行修正。其中,修正周期Perr以100MHZ时钟信号为基准计数,在一个GPS时钟标准秒周期内需要修正的次数为Cnt_1/Perr;所述n为本地时间与GPS配置时间的偏差值。
附图1为本发明方法时钟同步的流程示意图,由图可知,所述以基于全球定位系统的GPS时钟作为配置时间,根据本地时间与配置时间的偏差值进行时间同步操作,包括以下步骤:
S101、以全球定位系统GPS时钟作为配置时间,配置开始时,即在GPS_1PPS秒脉冲上升沿时刻开始计算本地时间与GPS配置时间的偏差值n,判断本地时间与GPS配置时间的超前或滞后关系,即判断下式中n与0的大小关系:
n=(Sec_cnt-Cfg_sec)×1000000+(Us_cnt-Cfg_us)
式中,Sec_cnt为本地时间秒计数,Us_cnt为本地时间微秒计数,Cfg_sec为GPS配置时间的秒计数,Cfg_us为GPS配置时间的微秒计数,n为本地时间与GPS配置时间的偏差值,单位为微秒;其中,所述本地时钟的时钟频率为100MHZ;
S102、判断n>0?是则,表示本地时间超前GPS配置时间,从100MHZ时钟上进行10分频得到时钟频率为10MHZ的修正使能信号Cen10M,再将该修正使能信号Cen10M进行11分频得到时钟频率为0.909MHZ的同步使能信号Cen1M,采用该同步使能信号Cen1M控制本地时钟的秒和微秒计数器开始工作并以0.909MHZ时钟频率进行计数;维持n×10个脉冲个数后,对修正使能信号Cen10M进行10分频得到时钟频率为1MHZ的同步使能信号Cen1M并以此控制本地时钟的秒和微秒计数器采用1MHZ的时钟频率进行计数,同步完成;其中,n为本地时间与GPS配置时间的偏差值,单位为微秒;n=(Sec_cnt-Cfg_sec)×1000000+(Us_cnt-Cfg_us),式中,Sec_cnt为本地时间秒计数,Us_cnt为本地时间微秒计数,Cfg_sec为GPS配置时间的秒计数,Cfg_us为GPS配置时间的微秒计数;否则,顺序执行步骤S103;
S103、判断n<0?是则,表示本地时间滞后GPS配置时间,将GPS配置时间写入本地时间,即从100MHZ时钟上进行10分频得到时钟频率为10MHZ的修正使能信号Cen10M,再将该修正使能信号Cen10M进行10分频得到时钟频率为1MHZ的同步使能信号Cen1M,将GPS配置时间的秒和微秒写入本地时钟的秒和微秒计数器,采用该同步使能信号Cen1M控制本地时间的秒和微秒计数器开始工作并以1MHZ时钟频率进行计数,同步完成;否则,顺序执行步骤S104;
S104、表示本地时间准确,不采取任何操作,同步完成;
S105、在整个测量过程中,重复执行步骤S101至S104;直至测量过程结束。
附图2为本发明方法对本地时钟的秒计数周期误差进行修正的流程示意图,由图可知,所述在时间同步时对本地时钟的秒计数周期误差进行修正,包括以下步骤:
S201、在GPS配置秒信号GPS_1PPS与100MHZ时钟信号同步时,对本地时钟在一个GPS标准秒周期内的脉冲个数进行计数,计数个数记为Cnt_1;将100MHZ时钟秒周期内的脉冲个数100×106与Cnt_1相减得到误差值dfl,即dfl=100×106-Cnt_1;将Cnt_1与dfl相除得到本地时间秒计数周期误差调整的修正周期Perr,即Perr=Cnt_1/(100×106-Cnt_1),其中,Perr的正负符号位记为Dadj,Perr为正值时,Dadj为正,反之,Dadj为负;其中,所述本地时间秒计数周期是指本地时钟对100×106个脉冲计数实际所需的时间;所述本地时钟的秒计数周期误差是指本地时间秒计数周期与GPS时钟秒计数周期的差值;
S202、每经过一个修正周期Perr,对Dadj值的正负进行判断,如果Dadj为正值,执行步骤S203,否则,跳转执行步骤S204;
S203、Dadj为正值,说明本地时间秒计数周期大于GPS时钟标准秒计数周期,从100MHZ时钟上进行9分频得到时钟频率为11.11MHZ的修正使能信号Cen10M,跳转执行步骤S205;
S204、Dadj为负值,说明本地时间秒计数周期小于GPS时钟标准秒计数周期,从100MHZ时钟上进行11分频得到时钟频率为9.09MHZ的修正使能信号Cen10M;
S205、维持100MHZ时钟信号的一个脉冲时间,在100MHZ时钟信号的下一个脉冲信号上升沿时刻,对100MHZ时钟恢复为默认10分频,修正使能信号Cen10M恢复时钟频率10MHZ;
S206、判断GPS配置秒信号GPS_1PPS与100MHZ时钟信号是否再次同步;是则,返回并顺序执行步骤S201至S205;否则,返回并顺序执行步骤S202至S205;
S207、在整个测量过程中,重复执行步骤S201至S206;直至测量过程结束。
附图3为本发明网络测量中本地时钟与GPS时钟的时间同步装置结构示意图,由图可知,本发明网络测量中本地时钟与GPS时钟的时间同步装置,该同步装置单独设置且通过接口与网络测量设备配套使用,或者直接设置在网络测量设备中;采用FPGA模块作为硬件支撑,包括,在FPGA模块上设置有GPS时间秒配置模块、本地Cen10M时钟修正模块、同步使能信号产生模块、差值计算模块和配置模式控制模块;其中,
所述GPS时间秒配置模块用于将GPS时钟转化为秒单位,并在GPS_1PPS秒脉冲上升沿时刻发出配置信号;
所述本地Cen10M时钟修正模块用于对本地时钟的秒计数周期误差进行修正,包括9/10/11分频器、误差计数器、秒周期修正计数器、减法器和除法器,其中,
所述9/10/11分频器用于产生修正使能信号Cen10M且默认选择10分频,即修正使能信号Cen10M默认时钟频率为10MHZ,若选择9分频或11分频,则修正使能信号Cen10M的时钟频率分别为11.11MHZ或9.09MHZ;
误差计数器在GPS配置秒信号GPS_1PPS与100MHZ时钟信号同步时对本地时钟在一个GPS标准秒周期内脉冲个数进行计数,计数个数记为Cnt_1;
减法器将100MHZ时钟秒周期内的脉冲个数100×106与Cnt_1相减得到误差值dfl,即dfl=100×106-Cnt_1;
除法器将Cnt_1与dfl相除得到本地时间秒计数周期误差修正的修正周期Perr,即Perr=Cnt_1/(100×106-Cnt_1),其中,Perr的正负符号位记为Dadj,Perr为正值时,Dadj为正,反之,Dadj为负;
秒周期修正计数器每经过一个修正周期Perr计数一次,每次计数时对Dadj值的正负进行判断:其中,
如果Dadj为正值,说明本地时间秒计数周期大于GPS时钟标准秒计数周期,则每经过一个修正周期Perr对修正使能信号Cen10M的时钟频率进行一次修正;即从100MHZ时钟上进行9分频得到时钟频率11.11MHZ的修正使能信号Cen10M,在时间同步过程中采用该修正使能信号Cen10M得到同步使能信号Cen1M;维持100MHZ时钟信号的一个脉冲时间,在100MHZ时钟信号的下一个脉冲信号上升沿时刻,将修正使能信号Cen10M恢复为默认时钟频率10MHZ;
如果Dadj为负值,说明本地时间秒计数周期小于GPS时钟标准秒计数周期,则每经过一个修正周期Perr对修正使能信号Cen10M的时钟频率进行一次修正,即从100MHZ时钟上进行11分频得到时钟频率9.09MHZ修正使能信号Cen10M,在时间同步过程中采用该修正使能信号Cen10M得到同步使能信号Cen1M;维持100MHZ时钟信号的一个脉冲时间,在100MHZ时钟信号的下一个脉冲信号上升沿时刻,将修正使能信号Cen10M恢复为默认时钟频率10MHZ;
其中,修正周期Perr以100MHZ时钟信号为基准计数,在一个GPS标准秒周期内需要修正的次数为Cnt_1/Perr;所述n为本地时间与GPS配置时间的偏差值;
所述差值计算模块用于计算本地时间与GPS配置时间的偏差值,包括20bit有符号减法器,32bit有符号减法器、加法器、乘法器和上限调节单元;采用下式计算本地时间与GPS配置时间的偏差值n:
n=(Sec_cnt-Cfg_sec)×1000000+(Us_cnt-Cfg_us)
式中,Sec_cnt为本地时间秒计数,Us_cnt为本地时间微秒计数,Cfg_sec为GPS配置时间的秒计数,Cfg_us为GPS配置时间的微秒计数,n的单位为微秒;然后根据n与0的大小关系进行配置模式控制,完成时间同步操作;其中,
20bit有符号减法器:输入为本地时间微秒计数Us_cnt和GPS配置时间微秒计数Cfg_us两个20bit的无符号数,将本地时间微秒计数减去GPS配置时间微秒计数,输出为21bit的有符号数,由此完成微秒的差值处理;
32bit有符号减法器:输入为本地时间秒计数Sec_cnt和GPS配置时间秒计数Cfg_sec两个32bit的无符号数,将本地时间秒计数减去GPS配置时间秒计数,输出为33bit的有符号数。由此完成秒的差值处理;
上限调节单元:在32bit有符号减法器输出正值时,若结果大于32767,则将偏差值强制置为32767,否则,取其结果的低16bit使用;若输出负值时,当结果小于-255,将偏差值强制置为-255;否则,取其结果的低16bit使用;
乘法器:输入为上限调节单元输出的16bit有符号数,输出为37bit有符号数;将上限调节单元输出的值乘以1000000后输出;
加法器:输入为乘法器输出的37bit有符号数和20bit有符号减法器输出的21bit有符号数,输出为38bit有符号数;将微秒差和秒差相加,得到输出本地时间与GPS配置时间的偏差值n;
所述使能信号产生模块用于得到同步使能信号Cen1M,包括用于产生同步使能信号Cen1M的10/11分频器,可分别选择10分频或11分频,其同步使能信号Cen1M的时钟频率分别为1MHZ或0.909MHZ;其中,所述同步使能信号是指当使能信号有效时计数器工作并以该时钟使能信号对应时钟频率进行计数,同步使能信号无效时计数器不工作;
所述配置模式控制模块根据偏差值n计算结果控制同步使能信号产生模块的10/11分频器和计数器的加载,包括,
当配置启动时,配置时间的微秒Cfg_us置为0,配置时间的秒Cfg_sec置为GPS的时间秒值(GPS_CFG_SEC);
当配置启动时,如果n>0,表示本地时间超前GPS配置时间,所述9/10/11分频器以默认10分频从100MHZ时钟上分频得到Cen10M修正使能信号,所述10/11分频器将该修正使能信号Cen10M进行11分频得到时钟频率为0.909MHZ的同步使能信号Cen1M,采用该同步使能信号Cen1M控制本地时钟的秒和微秒计数器开始工作并以0.909MHZ时钟频率进行计数;维持n×10个脉冲个数后,对修正使能信号Cen10M进行10分频得到时钟频率为1MHZ的同步使能信号Cen1M并以此控制本地时钟的秒和微秒计数器采用1MHZ的时钟频率进行计数;其中,n为本地时间与GPS配置时间的偏差值,单位为微秒;n=(Sec_cnt-Cfg_sec)×1000000+(Us_cnt-Cfg_us),式中,Sec_cnt为本地时间秒计数,Us_cnt为本地时间微秒计数,Cfg_sec为GPS配置时间的秒,Cfg_us为GPS配置时间的微秒;
当配置启动时,如果n<0,表示本地时间滞后GPS配置时间,将GPS配置时间写入本地时间,所述9/10/11分频器以默认10分频从100MHZ时钟上分频得到Cen10M修正使能信号,所述10/11分频器置将该使能信号Cen10M进行10分频得到时钟频率1MHZ的同步使能信号Cen1M,将GPS配置时间的秒和微秒写入本地时间秒和微秒计数器,采用该同步使能信号Cen1M控制本地时间的秒和微秒计数器开始工作并以1MHZ时钟频率进行计数;
当配置启动时,如果n=0,说明本地时间准确,所述10/11分频器置为10分频,不采取任何操作。
显然,本发明网络测量中本地时钟与GPS时钟的时间同步方法及装置的有益技术效果是采用GPS时钟作为配置时间实现时钟同步,采用CLK100M标准时钟的进行秒周期计数误差修正,其步骤简单,方便操作,可以在较低的成本下完成高精度的时间同步。