摘 要:晶振老化是影响时钟守时精度的最主要原因,一般的解决方法是采用GPS校准锁相环微调压控晶振的振荡周期进行补偿的电路方案。介绍了一种由固定频率晶振驱动的分频比可精细微调的基于加法器的时钟电路。提出了一种新颖的基于该时钟电路,采用GPS接收机、单片机、可编程逻辑器件和TDC构成的全数字化守时钟电路方案。该方案具有守时精度高、全数字化设计、简单和便于集成等优点,特别适合于只校时不锁频场合。最后以一个守时精度为1毫秒/日的守时钟为例说明了该电路的设计方法和步骤,给出了实测结果。
1 引 言
GPS(global positioNIng system)是当今授时精度最高、应用最为广泛的全球定位授时系统。基于GPS接收机的各种同步授时装置已广泛应用于电力、金融和航天等领域。目前一台价格适中的授时型GPS接收机定位后即可提供精度为20 ns的1PPS信号输出[1]。这样的授时精度可以满足绝大多数同步定时要求。然而一旦GPS信号丢失,接收机的授时精度急剧下降,因此研究高性能的守时钟就显的越来越重要。
所谓守时是指己被校准的时钟在自主运行的状态下,保持其时间与标准时间的误差尽可能小的能力。守时精度是衡量时钟性能优劣的一个重要的技术指标。该指标可定义为:在一定的外部条件下,时钟自主运行的时间和在此期间产生的时间偏差之比。
GPS校准的高精度守时钟一般是由温补晶振(TCXO)或恒温晶振(OCXO)或原子频标(由于价格昂贵在此不做讨论)、分频器、计数器和GPS接收机等构成。GPS接收机定位后同步时钟,测量出晶振的频率偏差并进行适当的补偿;当接收机失锁后时钟进入守时状态,其守时能力主要取决于补偿后晶振的频率准确度和稳定度。
晶振的老化是指其输出频率的准确度会随着时间的流逝产生不可逆转的偏差。文献[2]提到的一种进口超薄型双恒温槽超精密恒温晶振OCXO的频率稳定度高达±1×10E-10,但是其年老化率却只有±1×10E-8/年,比稳定度低2个数量级。由此可见老化是导致时钟守时精度下降的最主要原因。解决的方法是利用GPS接收机输出的标准时间信号测算出晶振输出信号频率的准确度偏差,并进行适当校正补偿。
本文先简述了时钟电路的几种补偿晶振频偏的方法,详细介绍了一种分频比可微调的基于加法器的时钟电路(adderbased clock,ABC电路)[3-4],提出了一种基于ABC电路的GPS校准的高精度守时钟的实现方案。在只需要守时无需锁频的情况下,该方案具有电路全数字化、电源种类单一、功耗低、设计简单和便于集成等优点。本文还介绍了该守时钟的工作状态转换图和一种简单实用的均值滤波时钟步距调整算法。最后通过一个守时系统实例说明了ABC电路的具体设计方法,给出了实测结果。
2 时钟电路补偿晶振老化的几种方法
晶振老化导致其频率发生准确度误差,也即晶振的振荡周期与额定周期值发生微小偏差。校正补偿的途径只有2个:微调晶振的振荡频率或改变时钟电路的分频比。
1)压控振荡器锁相环方案
这是一种最常见的微调晶振频率的方案。方案由压控恒温晶振(VOCXO)、鉴相器、环路滤波器或滤波算法、调节器(多为PI规律)、DAC和GPS接收机等部件构成锁相环[5-6,14]。鉴相器先检测出接收机1PPS信号和晶振分频产生的秒脉冲信号之间的相位差,采用滤波算法计算出晶振的频率偏差并生成补偿量,再将补偿量通过DAC转换成电压微调VOCXO的输出频率使其锁定在额定的频率上,达到锁频守时的目的。这种方案的优点是在实现守时的同时也实现了锁频;其缺点是电路复杂,需要采用高精度的DAC、多路电源和需要仔细设计的模拟电路。
2)基于加法器的ABC时钟电路方案
这是一种改变分频比的方案。在一般的时钟电路中,晶振(额定频率fo,周期值To=1/fo)的每个振荡周期分频计数器的最低位都要加1,等效于分频计数器累加了To的时间值,计满后溢出产生秒脉冲。在ABC时钟方案中,与晶振实际周期值对应的二进制数值存储在一个位数足够多的时钟步距寄存器中,在晶振的每一个振荡周期分频计数器(应称为分频累加器)与时钟步距寄存器相加一次,计满后溢出产生秒脉冲。由此可见改变时钟步距值即改变了分频比,达到了补偿晶振周期微小变化的效果。该方案的电路是全数字化的,具有上述的一系列优点,其缺点是无锁频信号输出,对逻辑芯片的运行速度和资源有较高的要求。在只需要守时无需锁频的前提下这是一个最佳的选择。
3)“吞”和“吐”脉冲计数方案
这是一种拼凑分频法,也是改变分频比[7]。例如要实现49分频,可控制分频器前4次按十进制分频,第5次按九进制分频即“吞”掉一个脉冲,减小分频比。类似地可实现“吐”脉冲增大分频比。由于该方案无固定设计规律可循,且不易实现平滑地微调分频比,在此不加讨论。
3 基于ABC的守时钟电路结构
图1示出了基于ABC时钟电路的GPS校准的全数字式守时钟的一般性结构框图。该守时钟方案由GPS接收机和天线、单片机、ABC时钟电路(由可编程逻辑器件实现)、晶振(TCXO或OCXO)和时间间隔测量芯片TDC(tmi e to digit converter)等构成。
TDC芯片采用德国ACAM公司的TDC-GP2,其时间测量分辨率高达50 ps,测量范围为0~±1.6μs[8]。GPS接收机输出的秒脉冲GPS-1PPS分别送入单片机的中断输入脚INT1、ABC时钟电路和TDC的STOP2脚;GPS接收机输出的NMEA-0183定位授时报文送入单片机串行口。单片机从报文中解析出定位和时间信息并判定GPS接收机是否已定位(锁定4颗及以上的卫星为定位),并据此控制守时钟进入不同的工作状态。

ABC时钟电路采用大规模可编程逻辑器件CPLD或FPGA实现,其主要功能是将晶振信号按指定的分频比分频产生秒脉冲ABC-1PPS并送入TDC的STOP1脚。TDC在START信号的启动下,测量STOP1和STOP2两个脉冲信号前沿的时差。单片机通过SPI总线读取测量数据,将多次测量的数据进行滤波处理后计算出晶振的频差,再根据频差值生产分频比补偿量,然后通过单片机的数据总线DBUS、地址总线ABUS和控制信号CS、WR、SELE和SYN将补偿量写入ABC时钟电路微调其分频比达到高精度守时的目的。
4 ABC时钟电路的逻辑框图和工作原理
图2是在可编程逻辑器件中实现的ABC时钟电路逻辑框图。它包括一个r位(二进制位数范围[-1位, -r位])的秒时间值累加器、一个(r-p+1)位([-p位,-r位])的步距值寄存器、一个(r-q+1)位([-q位, -r位])的步距微调寄存器、一个(r-p+1)位([-p位,-r位])的额定步距值常数、加法器1、加法器2、或门、2选1选择器和与门。表1给出了每一个二进制数位(秒以下位号定义为负值)对应的等价时间值[3]。步距值寄存器中存储的是晶振周期To=1/fo的二进制量化值。

如图2所示晶振的输出驱动整个时钟电路运转,即每一个晶振周期秒时间值累加器的数值[-1位, -r位]与步距值寄存器[-p位, -r位]进行一次无符号数相加后送回到秒时间值累加器中;当秒时间值累加器溢出时产生秒脉冲ABC-1PPS。改变步距值寄存器的数值即可改变时钟电路的分频比,而步距值寄存器的数值[-p位,-r位]是由额定步距值常数[-p位, -r位]和步距微调寄存器[-q位, -r位]在同步清零脉冲SYN-CLR的作用下进行符号扩展和补码相加后产生的。步距微调寄存器的数值则是由单片机写入的一个[-q位, -r位]的补码量,其中最高位(即: -q位)为符号位,其他位为数值位。相加前, [-q位, -r位]的补码先符号扩展为[-p位, -r位]后再与[-p位, -r位]的额定步距值常数相加生成新的时钟步距值并写入步距值寄存器中。当写入的步距微调值为正数时,生成的时钟步距值增大,秒时间值累加器溢出时刻提前,对应的秒脉冲ABC-1PPS周期减小,相当于减小了电路的分频比;当写入的步距微调值为负数时,结果正好相反。
如图2所示GPS-1PPS和ABC-1PPS两个脉冲信号“或”运算后产生GorA-1PPS作为TDC的START启动信号。单片机发出的同步信号SYN与GPS-1PPS相“与”后产生同步清零信号SYN-CLR。在该信号的上升沿一方面将秒时间值累加器清零实现同步,另一方面控制加法器2产生出新的时钟步距值。单片机发出的选择SELE信号加在2选1数据选择器上,从GPS-1PPS和ABC-1PPS中选出最准确的秒脉冲OPT-1PPS,并送入单片机INT2脚。
5 守时钟的工作状态
图3是守时钟的工作状态转换图。单片机根据GPS接收机的工作状态,控制守时钟在各个状态之间转换。

1)“初始化”状态:上电后进入,由于GPS-1PPS和ABC-1PPS都不准确,单片机发SELE信号,选择GPS-1PPS作为OPT-1PPS输出,等待GPS接收机定位(锁定4颗及以上卫星)。
2)“测量状态”:GPS接收机必须定位才能进入该状态,每次进入后必须立即完成1次同步操作(发SYN信号)后,才能开始每秒一次的GPS-1PPS和ABC-1PPS时差测量,选择GPS-1PPS作为OPT-1PPS输出。
3)“守时状态”:GPS接收机失锁(锁定卫星数少于4颗)进入,进入后立即完成1次同步操作,并以最后一次计算所得的时钟步距值进行守时,选择ABC-1PPS作为OPT-1PPS输出。
4)“更新步距”状态:当满足下述2个条件之一时进入该状态。由于GPS-1PPS脉冲存在随机抖动,单片机必须采用卡尔曼滤波算法或其他算法对多次记录的测量结果进行滤波后测算出晶振的准确度误差并进一步计算出相应的时钟步距补偿值并写入步距微调寄存器中。该状态是一个非稳定状态,守时钟只在该状态停留1秒即返回“测量”状态。
条件①:GPS-1PPS和ABC-1PPS两个脉冲的时间差超出TDC测量范围;
条件②:在“测量状态”连续测量时间差的次数超出预先设定的一个上限次数值;
当因条件①进入时表明当前时钟步距值误差过大必须粗调步距值;当因条件②进入时表明连续测量记录的数据已足够多可计算出一个精度满足要求的新的步距值进行细调。
当处于“测量”状态时,单片机从GPS接收机输出的NMEA-0183报文中解析出年月日时分秒等信息;处于“守时”状态时,单片机根据OPT-1PPS秒脉冲产生的中断自动完成秒、分、时、日、月、年的加1计数和闰年闰月调整。
6 一个高精度守时钟设计实例
下面通过一个实例来说明根据守时精度这个技术指标选择晶振参数、设计ABC时钟电路的步骤和一种简单实用的时钟步距值调整算法。假定目标守时精度是优于±1ms/d(即:±1 000μs/86 400 s=±11.574 ns/s,等效于晶振总的频率准确度必须优于±11.574×10-9。
1)选择晶振
晶振最重要的参数是其频率温度稳定度,选取时应优于对其总的频率准确度的要求,且留有余量。故选用频率稳定度为±2×10E-9(即±2×10-9,约5倍余量)的国产某款额定频率为20MHz(周期To=50 ns)高稳恒温OCXO晶振。厂家提供的其他主要技术指标为:日老化率±0.15×10-9,年老化率±50×10-9,初始(出厂)频率准确度优于±2×10-9。
晶振老化率也是对守时精度产生极大影响的参数。若不采取补偿措施,系统运行约365 d×11. 574/50=84 d后就有可能超出对总的频率准确度要求。因此守时系统必须定期进行校准,并保证2次校准期间晶振老化产生的最大频率准确度误差不大于总的准确度误差要求(即:11.574×10-9)。
2)设计ABC时钟电路(即确定图2中参数p、q和r的位数)
确定秒时间值累加器的位数r:由于采用有限位二进制数表示晶振周期必然会产生截断误差,这里取截断误差不大于0.2 ns/s(应小于频率温度稳定度2×10-9=2 ns/s一个数量级),其对应的每个晶振周期的截断误差应不大于0. 2 ns/20MHz=1×10E-17 s=10as,查表1知-57位对应6.94as满足要求,故取:r =57位。
确定额定步距值常数和位数p:由于晶振的额定周期To=50 ns,查表1可以确定位数p必须是-25位(对应时间分值为: 29. 80 ns),故额定步距值常数的二进制数范围是[-25位, -57位]共33位。
额定步距值常数的计算方法为:额定周期值/最低位时间值。具体计算如下:
To/2-r=50×10-9/2-57≈(7 205 759 404)10=(1AD7F29AC)16
确定步距微调寄存器的位数q:该数值决定了电路可补偿晶振的最大准确度偏差范围。假定守时钟在工作多年后,晶振的初始准确度误差,老化累积误差和稳定度等其他因素造成的总的准确度误差不超过:±2×10-6(按给定晶振的老化率参数计算,超差需要40 a)。由此可确定ABC-1PPS秒脉冲的周期最大调节范围是:±2μs/秒,对应每个晶振周期的最大可调节范围是:±2μs/20MHz=±100 fs/晶振周期。查表1知-44位对应的时间分辨率为56. 84 fs满足要求,因此可确定步距微调寄存器的二进制数范围是[-42位, -57位]位数,增加了2位共计16位,便于数据传输。其中第-42位为符号位,故允许补码输入实现快慢双向调节。

3)一个简单实用的时钟步距值调整算法
GPS接收机输出的1PPS秒脉冲的前沿相对于UTC时间整秒时刻存在着一个前后抖动的误差量,这个误差量一般可认为是一个零均值的正态分布随机变量[9-10]。如图4所示采用时差法测出的GPS_1PPS和ABC_1PPS的时差Δt1、Δt2、…中也包含了这种随机误差。由于晶振存在频差,时差值的绝对值会随着时间逐渐增大。假定同 步后第n秒(时差值为Δtn)后开始更新步距,则时差值每秒变化量的平均值可估算为:Δtn/n;对应每个晶振周期的变化量平均值ΔTo=Δtn/(n×fo)。将ΔTo除以2-r可得到时钟步距值的调整量值,再用该调整量值的负值修正步距微调寄存器中的当前时钟步距微调值即可实现频差补偿。为避免调节振荡,该调整量值要乘一个小于1接近1的系数。
若同步后测量的时间越长,则Δtn/n中由于接收机随机抖动值产生的计算误差越小,频差补偿精度越高。故上述算法实质上是一种便于实现的均值滤波算法。可参见文献[12-13]设计出性能更好的数据处理滤波算法,限于篇幅此处不再赘述。

7 实验结果
1)实验平台的建立
为了验证上述设计实例能到达1 ms/d的守时精度,采用Motorola公司的M12M tmi ing授时型GPS接收机配30 m有源天线,TI公司的MSP430单片机,Xilinx公司的XC95288XL型CPLD和德国ACAM公司的TDC-GP2,按照图1构建守时钟系统。ABC电路的逻辑采用Verilog语言设计,经Xilinx ISE 9. 1版软件编译后烧写在CPLD中。57位的ABC时钟电路运算一次的最大耗时不超过40.9 ns(仿真结果,小于晶振周期50 ns)。整个逻辑占用XC95288XL的逻辑资源为: 55%宏单元、88%乘积项和42%寄存器。
2)守时精度测量和结果分析
为便于比对,测量分为OCXO直接分频的守时精度测量和GPS校准ABC后的守时精度测量2种。在第1种测量中,将OCXO的输出直接分频20M倍后产生直接分频秒脉冲,用GPS接收机输出的秒脉冲同步一次后,连续测量2个秒脉冲的时间差,一个小时后就达到+64.3μs(示波器观测, GPS-1PPS超前直接分频秒脉冲,晶振‘走慢’)。由此可推算出该晶振的频率准确度误差约为: -64.3μs/3 600 s=-17.86×10-9,已超出上限±11.574×10-9,故直接分频不能满足守时精度要求。
其原因是该晶振已出厂运行约5个月,老化产生的频率误差已远大于初始频率准确度误差。
第2种测量分两步进行:先采用GPS校准求解出ABC时钟电路补偿频率偏差的最佳时钟步距值,再将该步距值输入到ABC时钟电路中测量守时精度。在求解最佳时钟 步距值过程中,要确保GPS接收机始终处于定位状态,单片机程序按图3所示的状态图运行。初始情况下时钟步距微调值设置为0,即图2中步距值寄存器的初始值为额定步距值常数。由于晶振存在着较大的频率准确度误差,GPS-1PPS和ABC-1PPS两脉冲的时间差很快(约90 s,该值称为测量溢出时间)超出TDC-GP2的时差测量范围(+1.6μs)。根据时差测量范围和测量溢出时间,按上文提出的时钟步距值调整算法计算出新的时钟步距微调值和新的时钟步距值并输入到ABC时钟电路中,重新开始求解最佳步距值。如此循环往复多次,经过4~5次求解后时钟步距值接近或达到最佳值。通过多次测量可求出最佳时钟步距值范围稳定在7 205 759 511~7 205 759 561范围内(对应步距微调值范围107~157),测量溢出时间稳定在7~20min范围内。溢出时GPS-1PPS可能超前也可能滞后于ABC-1PPS,即超出TDC-GP2的双向时差测量范围(±1.6μs)。ABC时钟电路补偿频率偏差后的守时精度实际上可以从测量溢出时间估算出来,以最短的溢出时间为例可推算出守时精度为:±1. 6×24×60/7 =±0.329ms/d,满足设计要求。实际测量时,是分别将上述步距微调最大值157和最小值107输入ABC时钟电路测出守时精度(+0.361ms/d, -0.312ms/d),其结果也是满足设计要求的。
3)结果讨论
由于晶振老化持续不断地进行,上述最佳时钟步距值范围也是不断变化的。时钟步距值的区间(最大值-最小值=50)也即步距微调区间变化不大,主要与环境温度变化,供电电压变化等因素有关。在本实例中,步距微调区间只有50个数字,故对时钟电路的调整是十分粗糙的,远没有达到最佳值。解决的方法是增加加法器的位数,但带来的问题是需要太多的逻辑资源现有的CPLD装不下,此外加法器更新一次的运行时间也可能大于晶振的周期。选用性能更好的CPLD或FPGA可以在一定程度上加以解决。
精密时间测量采用了TDC-GP2导致守时系统的造价高且不利于系统集成。若采用文献[15]提出的用通用FPGA实现时间间隔测量则可将测时部分的逻辑和ABC电路逻辑集成在一起,提高集成度降低造价。
8 结 论
相对于文献[9-11]提出的几种守时方案,本文提出的基于加法器的守时钟电路方案具有以下突出优点: 1)通过改变时钟步距值来改变时钟速率,其优点是速率改变迅速且具无非线性; 2)采用频率稳定度更高的固定频率的OCXO而不是VOCXO有利于提高时钟的守时性能;3)电路全数字化、电源种类单一、功耗低、设计简单便于集成。
尽管目前时钟步距的调节和频率偏差的补偿还比较粗糙,随着可编程器件的进步,会出现加法器位数更高分频比调节更精细的时钟电路。由此可见在只校时不锁频的情况下基于ABC的守时电路是一种有发展前途的守时钟电路方案。性能更好的滤波和时钟步距调整算法还有待进一步研究。
参考文献
[ 1 ] MUMFORD P J.Relative timing characteristics of the onepulse per second (1PPS) output pulse of three GPS re-ceivers[C]. 6th International Symposium on SatelliteNavigation Technogy IncludingMobile Positioning& Lo-cation Services, 2003.
[ 2 ] 党晓圆.卫星授时校频系统研究[D].长沙:湖南大学, 2009: 57-58.
[ 3 ] SCHOSSMAIER K, SCHMID U, HORAUERM et a.lSpecification and implementation of the universal timeco-ordinated synchronization unit (UTCSU)[J]. Real-TimeSystems, 1997, 12(3): 295-327.
[ 4 ] HORAUER M, SCBORSMAIER K, SCHMID U, et a.lPSynUTC-evaluation of a high precision time synchroni-zation prototype system for ethernet LANs[ J]. PreciseTime and Time Interval (PTTI), 2002.
[ 5 ] 单庆晓,杨俊.卫星驯服时钟系统的新进展[J].测试技术学报, 2009, 2(53): 396-401.
[ 6 ] 赵军祥,李建辉. GPS授时校频方法研究与试验结果[J].北京航空航天大学学报, 2004, 30(8): 762-766.
[ 7 ] 岳金山.分数分频锁相环频率合成器的研究[D].成都:电子科技大学, 2005: 8-15.
[ 8 ] 仲峰,万莉萍,岳宇军.高精度时间测量芯片TDC-GP2在激光测距中的应用[J].工业控制计算机, 2007, 20(4): 69-72.
[ 9 ] 曾祥君,尹项根.晶振信号同步GPS信号产生高精度时钟的方法及实现[ J].电力系统自动化, 2003, 27(8): 49-53.
[10] 张莹.基于GPS校准高稳晶振系统的研究与实现[D].西安:西安电子科技大学, 2005: 40-41.
[11] 黄翔,江道灼.GPS同步时钟的高精度守时方案[J].电力系统自动化, 2010, 34(9): 74-77.
[12] 杨旭海,翟惠生.基于新校频算法的GPS可驯铷钟系统研究[J].仪器仪表学报, 2005, 26(1): 41-44.
[13] 崔保健,王玉珍. GPS驯服铷钟频标数据处理方法研究[J].电子测量与仪器学报, 2010, 24(9): 808-813.
[14] 李俊强,和军平.GPS校频系统的优化带宽设计[J].电子测量与仪器学报, 2009, 23(1): 32-36.
[15] 屈八一,周渭.高精度时间间隔测量仪的研制[J].仪器仪表学报, 2009, 30(7): 1476-1480.
作者简介
魏丰, 1982年于华中工学院获得学士学位, 1987年于英国帝国理工学院获得硕士学位,现为华中科技大学控制科学与工程系副教授硕士生导师,主要研究方向为网络时钟同步、检测装置与自动化仪表等。E-mai:l hustweifeng@ 126. com
朱广伟,2008年毕业于湘潭大学获学士学位,现为华中科技大学控制科学与工程系2009级硕士研究生,主要研究方向为检测装置与自动化仪表。




