基于FPGA的压控技术在授时系统中应用

权鹏飞 纪元法 孙希延
摘 要: 时钟源的稳定性在授时系统中扮演着重要角色,而晶振随着时间的推移会有不同程度的稳定度误差和累积误差,这给整个授时系统的授时精度带来了很大的误差。基于FPGA设计了一种压控晶振校频系统。通过分析影响晶振输出的几个重要因素,综合考虑后,对输出的码NCO值做加权求平均处理,使得输出更加稳定可靠。系统可以实现两块晶振同步的误差在短时间内达到基本同步的水平,为提高非同源条件下时间同步系统的授时精度提供了一种很好的方法。
关键词: 授时系统; 压控晶振; 码NCO; FPGA
中图分类号: TN91?34 文献标识码: A 文章编号: 1004?373X(2017)07?0048?04
Application of FPGA?based voltage controlled technology in time service system
QUAN Pengfei1, 2, JI Yuanfa1, 2, SUN Xiyan1, 2
(1. School of Information and Communication, Guilin University of Electronic Technology, Guilin 541004, China;
2. Guangxi Key Laboratory of Precision Navigation Technology and Application, Guilin 541004, China)
Abstract: The stability of clock source plays an important role in the time service system, but the different stability error and cumulative error of the crystal oscillator may occur as time goes on, which brings a big error for the time service accuracy of the whole time service system. A voltage controlled oscillator frequency calibration system was designed based on FPGA. Several important factors affecting on the output of the crystal oscillator are analyzed, and considered comprehensively to perform a weighted average for the value of the code NCO, so as to make the output stable and reliable. The system can realize the basic synchronization of the two crystal oscillators′ errors in a short time, which provides a better method to improve the time service accuracy of the time synchronization system under the non?homologous condition.
Keywords: time service system; voltage controlled crystal oscillator; code NCO; FPGA
0 引 言
随着科技的飞速发展,授时技术在各个行业的应用越来越广泛。传统情况下,高精度的授时需要高精度的晶振作为保障,而在实际应用中,高精度晶振的价格也是产品主要的成本之一。所以,实际应用中由于成本的原因限制了授时技术在大众行业的使用。
本设计是利用接收端捕获跟踪上后的码NCO去调整本地时钟,使其与信号产生端的晶振保持一致。信号产生端使用高精度晶振作为时钟源,并通过BPSK调制产生信号。接收端首先接收到信号,进行捕获跟踪后,利用输出的码NCO调整接收端晶振的控制量,从而使接收端的晶振与发射端的晶振的偏差稳定在一定范围内。
1 压控系统结构及工作原理
如图1所示,系统分为信號产生部分和信号接收部分,信号产生部分主要用来产生1 PPS作为标准的秒脉冲。接收部分主要是通过接收到信号之后进行捕获跟踪,通过计数输出一个PPS,跟标准的秒脉冲对比,可以得到压控晶振校准的效果。
2 系统功能设计
本系统的设计包括软件和硬件两个部分,如图2所示。软件部分主要是以Verilog HDL编程语言实现为主,主要实现了信号的产生、信号的捕获跟踪、对码NCO值的处理以及利用处理后的NCO值对电压进行控制;硬件部分主要是D/A转换器根据码NCO的值转换成模拟控制电压,再根据模拟电压校准频率,并将结果反馈给FPGA处理器。
2.1 信号产生
信号产生端的主要功能是实现对电文的扩频调制和基准秒脉冲的生成,其中电文可以通过串口输入,也可以固化在FPGA里面,本设计选择的是后者,并可以通过计数的方式得到基准秒脉冲。信号生成的流程图如图3所示。
首先电文[D(t)]与C/A码[x(t)]通过乘法器得到包含数据信息的复合码,该复合码再与余弦信号[Acos(2πf0+θ)]做BPSK调制得到中频信号[f(t)],其数学表达式为:
[f(t)=A(x(t)?D(t))?cos(2πf0t+θ)]
式中:[A]为信号的幅度值;[x(t)]为伪码序列;[D(t)]为电文比特序列;[f0]为载波的中心频率;[θ]为载波的初始相位。
2.2 信号的捕获跟踪
2.2.1 信号的捕获
信号的捕获采用的是并行码相位搜索算法,该算法是基于FFT的,相当于一个并行相关器。信号的捕获是信号跟踪的前提,捕获的目的主要是获取接收到的信号中载波相位和伪码相位的粗略值。信号的捕获流程如图4所示。
信号的捕获一般是通过对接收信号的载波频率和伪码相位进行二维扫描搜索完成的。对信号进行初步搜索时,需由事先的搜索策略确定本地复制的载波频率和码相位值。本地复制信号与接收信号做相关运算时,在其载波频率和码相位分别与接收信号中的载波频率和码相位对齐的情况下,相关器输出功率达到最大值。此时,如果输出功率的最大值超过了捕获门限值,则复制的参数值为对当前接收到信号的参数估计值,即捕获成功。
2.2.2 信号的跟踪
信号的跟踪可分为载波跟踪和码跟踪。其目的是让本地复制的载波频率和码相位与接收到的信号的载波频率和码相位保持高度的一致性。
在对载波进行分析时,除了要考虑频率值,还要考虑其相位值。捕获估算出来的载波相位只是粗略值,其精度并不是很好。由于锁频环具有较好的动态容忍性,所以信号要先进入一个锁频环,使本地载波尽量与接收到的载波频率保持一致。当信号被锁定后,跟踪环路转换为锁频环辅助锁相环。
码环有很多种,本设计采用的是延时锁定环路。通过控制复制生成的C/A码与接收到的信号中的C/A码相位保持一致,获取接收信号中C/A码的码相位值。如果接收机在某个时刻码环只复制一份C/A码,在与接收信号做相关运算之后,产生一个较大的相关值,由于没有可以比较的值,故不能确定这个是否为最大值。为了解决这个问题,码环复制两份只相差半个码片的C/A码与信号做相关运算。
2.3 频率偏差估计
本设计中时钟采用的是62 MHz,码速率是1.023 Mb/s。有如下公式:
[f0=M?fc2N]
式中:[f0]是码速率;[fc]为驱动时钟频率;[N]为寄存器的位数;[M]为码频率字。
本设计综合考虑各种因素,选取的寄存器的位数为32位,由上式可以得到,跟踪上之后码环输出的理论值为70 866 960。
本文使用的晶振型号是DX2116。晶振的输出为10 MHz,短期内频率稳定度为[5×10-12(τ=1S)],日频率老化率(晶振预热24 h后)为[5×10-10]([τ]为一天)。该晶振提供了一个电压控制端。通过电压控制端施加一个电压,晶振有±1 Hz的调整范围。其电路原理如图5所示。
当电压控制端增大输入电压时,输出的频率就会降低;当电压控制端减小输入电压时,输出的频率就会升高。由于晶振的频率稳定性受电压控制端输入电压噪声的影响,所以控制电压必须保证有较小的波动。为了分析晶振的电压控制端输入电压与输出频率之间的关系,对所用晶振进行了相应的测量。测得电压控制端输入电压值与输出频率之间的关系曲线如图6所示。
由图6(a)可见,电压控制端输入电压与输出频率的关系曲线呈非线性,且随着电压的升高输出频率递减。为了建立晶振频率控制模型,对图示曲线进行最小二乘多项式拟合(阶次为2),得出下式:
[V(f)=a+bf+cf2]
式中:[V(f)]为电压控制端输入电压;[f]为晶振的输出频率;[a,b,c]为拟合系数。
在理想的情况下,电压值影响频率值[f,]所以在进行频率的压控时,令[f=f0=10 ]MHz,可得:
[V(f)=V(f0)=a+bf0+cf20]
而在实际中,晶振总是存在频率漂移现象,随着时间的推移,在相同的电压控制下,晶振的输出是不同的,即输入电压和频率之间的函数关系发生了变化。
由于晶振本身的老化,使得其输出频率除了与电压控制端输入电压有关外,还与时间[t]有关。即频率输出是电压[V]和时间[t]的二元函数:
[F=G(V,t)]
由上式可知,晶振的频率偏移可分为两部分:一是忽略晶振老化的影响,仅由电压失调引起的频率偏差;二是当控制电压保持不变时,由于时间不同(考虑老化的影响)而造成的频率偏差。上述两种误差都可以通过调节电压进行校正。但是由于两种频偏产生的原因不同,所以当用电压进行控制时应区别对待,以下分别予以讨论:
(1) 由电壓失调引起频偏的控制
此时,控制输入电压与输出频率的关系曲线如图6(a)所示,且对[V(f)=a+bf+cf2]两边求导,得:
[dV=(b+2cf)df,-5≤V≤5]
其中[f]为标称频率10 MHz,则有:
[dV=(b+20×106c)df]
上式说明,当输出频率与标称频率相比有较小范围的偏移时,根据偏移的大小,由上式可以得到校正电压。
(2) 由老化引起频偏的控制
当输入电压值固定不变时,在不同的时间点,晶振的输出是不断变化的。即电压控制端输入电压保持不变,由于老化的原因,晶振的输出也会发生变化。在使用时认为经过一段预热时间后,在相同的时间段内,不同电压值由于晶振老化引起的频偏是相同的。综上所述,晶振的输出[f]与控制电压[V]以及时间[t]的函数关系是一族曲线,如图6(b)所示。这一族曲线是由图6(a)中的曲线在垂直方向上的上下拉伸而得到的。因此每条曲线上相同电压值对应的斜率是相等的,这样就可以把不同原因引起的频偏统一当作电压失调引起的频偏来处理,即将一族曲线当作一条曲线来处理。
假设图6(a)所示的曲线为[t=t0]时的曲线(曲线1),此时有:
[V(f)=a+bf+cf2]
当[t=t1]时,由于晶振的老化,使图6(a)所示的曲线向上平移了[Δf,]如图6(b)中的另一条曲线(曲线2),此时有:
[V=a+b(f-Δf)+c(f-Δf)2]
令[f=f0],为使输出频率为标称频率,对于曲线2,控制电压值为:
[V1=a+b(f0-Δf)+c(f0-Δf)2]
对于曲线1,当[f=f0-Δf]时,有:
[V2=a+b(f0-Δf)+c(f0-Δf)2]
由上面的分析可得[V1=V2,]因此可以把两条曲线统一成一条曲线来处理。对于电压失调和晶振老化引起的频偏,可以用同一个模型来处理。这样对晶振频率输出的控制就变得简单,且易于实现。
为了获得精确的晶振输出,需要将频偏值计算出来。频偏值是通过跟踪上后输出的码NCO值来体现的。可以用前文中的模型对输出的码NCO的偏差进行分析。实际上码环的输出是不断变化的,其变化的值反应了两个晶振之间的偏差。根据前文分析,晶振分频秒脉冲的时间序列的第[n]个秒脉冲的时间误差[e(x)]为:
[e(x)=a+bx+cx2]
式中:[a]为秒脉冲时间序列的初始误差;[b]为频率偏差的误差系数;[c]为频率线性漂移的误差系数。
通过一元二次回归分析可得上式的晶振误差估计值服从正态分布:
[e(x)=a+bx+cx2~Na+bx+cx2,D(e)]
由上式分析可得,当[x=n]时,秒脉冲的时间误差的方差[Dmax]达到最大,且样本数[n]越大,[Dmax]就越小。由于受FPGA资源的限制,样本数[n]不可能取无穷大,综合考虑,取[n=3,]可以满足要求。
本设计采用偏差频率求平均的方法,即在码环跟踪上信号之后,每ms输出一次码频率字,将连续3 ms输出的3个码频率字分别与标准的码频率字作差再取绝对值,三次作差得到的值相加再取平均,得到一个样本周期内的平均值。求得循环周期平均偏差值[E0=][E1+E2+E33]。在下一个样本周期开始,将上一个周期内的值反馈给晶振,调整晶振的输出频率。
具体的实现方法是:在码环跟踪上信号之后,每ms输出一次码频率字,将连续3 ms输出的3个码频率字分别与标准的码频率字作差再取绝对值,三次作差得到的值相加再取平均,得到一个样本周期内的平均值,该平均值作为压控晶振的输入,从而对晶振进行驯服。
3 测试结果
本地压控晶振经过压控后,频率稳定度和长期的累积误差都在一个范围内,达到了设计要求。图7为校正前后码频率字的对比结果(码频率字都减去70 866 960),其中图7(a)是校正前码NCO值的变化情况,图7(b)是校正后码NCO值的变化情况。由图7可知,校正后相对于校正前有明显的改善,基本上可以达到同源的数量级。
4 结 论
本文根据压控晶振长期累积误差的特点,以FPGA为主要控制器件,详细阐述了整个系统软件和硬件的设计,实现了本地压控晶振的数字同步时钟驯服控制。该系统结构简单,能够提供高精度的晶振输出,且可以节约成本,在实际应用中具有一定的应用价值。
参考文献
[1] 王军.基于FPGA的压控晶振同步頻率控制系统研究[D].南京:南京林业大学,2012.
[2] 谢钢.GPS原理与接收机设计[M].北京:电子工业出版社,2009.
[3] CURTIN M, O′BRIEN P. Phase?locked loops for high?frequency receivers and transmitters [R]. US: Analog Dialogue, 1999.
[4] 夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2003.
[5] BETZ J, KOLODZIEJSKI K R. Extended theory of early?late code tracking for a bandlimited GPS receiver [J]. Journal of the Institute of Navigation, 2000, 47(3): 211?226.
[6] 刘文焘,张亮,张向征.高精度秒脉冲信号的产生[J].飞行器测控学报,2011,30(6):31?32.
[7] 周启民.高精度守时电路设计及其在导航接收机的实现[D].武汉:武汉理工大学,2008.
[8] 王鹏.基于FPGA的绝对时间同步系统的设计研究[D].哈尔滨:哈尔滨工程大学,2007.
[9] 曾祥君,尹项根,林干,等.晶振信号同步GPS信号产生高精度时钟的方法及实现[J].电力系统自动化,2003,27(8):49?53.
[10] VAN NEE D J R, COENEN A J R M. New fast GPS code?acquisition technique using FFT [J]. Electronics letters, 1991, 27(2): 158?160.
[11] 王守亚.直接序列扩频通信系统伪码同步技术的研究[D].合肥:合肥工业大学,2013.