本发明的目的在于提供一种采用微处理器控制的时钟同步方法,它针对上述要求和困难,通过修正上级基准在传输过程中造成的损伤,识别、选择质量好的基准,并可靠、快速、准确地同步于上级节点的频率基准,从而为下级节点提供一个稳定、准确、可靠的频率基准。
本发明所述的采用微处理器控制的时钟同步方法包括以下的步骤:
1.确定二阶锁相电路数学模型的参数;
2.进入恒温槽晶体振荡器的上电预热过程;
3.置锁相状态标志为快捕标志,初始化控制参数与控制变量;
4.选择并输入频率基准信号;
5.通过数字鉴相器获取鉴相计数值;
6.对鉴相计数值进行线性化处理;
7.检查锁相状态标志,若为快捕标志,则进入快捕状态,进行快捕参数的二阶锁相环控制,以使锁相环快速进入锁定状态,进入步骤8;若为跟踪标志,则进入步骤9;
8.进行跟踪判别,若满足判别条件,则置锁相状态标志为跟踪标志,进行快捕至跟踪参数的转换,转至步骤11;
9.进入跟踪状态阶段,进行跟踪参数的二阶锁相环控制,使环路维持锁定状态;
10.进行跟踪判别,若失锁,则置锁相状态标志为快捕状态,重新初始化控制参数与控制变量,进入快捕状态;
11.检查选用的基准是否丢失,滤除输入基准相位的跃变,若丢失则重新回到步骤4;
12.检查选用基准是否降质,若降质,则重选合格基准,返回步骤5。
所述步骤2的上电预热过程包括:1)设置两个字节的上电测试标志字节;2)检测标志字节是否为5AH和0A5H:若不是,则3)进入上电预热阶段,预热结束后将测试标志字节置为5AH和0A5H;若是,则4)跳过预热阶段。
所述步骤6的鉴相计数值线性化处理过程包括:1)将第一次读入的鉴相计数值定义为初始相位差;2)读入新的鉴相计数值,并减去前一时刻的鉴相计数值,得到相位差增量;3)对相位差增量进行线性化处理;4)得到新的相位差是前一时刻的相位差与相位差增量的和;5)将新获得的鉴相计数值存入“前一时刻鉴相计数值”单元。
所述步骤7或所述步骤9中的二阶锁相环控制过程包括:1)由定时器计算两次压控振荡器VCO电压调整的时间间隔的精确值;2)计算当前相位差的时间积分;3)计算压控振荡器VCO的控制电压;4)将上一步的计算结果转化为整型量,即获得输出到数字鉴相器DAC的数字化控制电压。
所述步骤8或所述步骤10中的跟踪判别过程包括:1)判断当前是否处于跟踪状态:若是,则2)判断压控振荡器VCO的控制电压在前面5分钟内变化是否不超过128LSB;若不是,则3)判断相位差的绝对值在前面5分钟内是否一直小于20。
所述步骤8中的快捕至跟踪参数的转换过程包括:1)将压控振荡器VCO的控制电压做平滑处理;2)将处理后的控制电压代入参数变换的算式进行变换。
所述步骤11包括:1)设置相位值重读标志RE_READ_F;2)检查选用的基准是否丢失:若丢失,则3)将RE_READ_F置为1,返回步骤4,并将读入的鉴相计数值存入“前一时刻鉴相计数值”单元,该鉴相计数值即为初始相位差,将RE_READ_F值清零;若未丢失,则4)进入步骤12。
所述步骤12只引用基准降质判别的结果,其判别过程是在实现判别降质算法的那个处理器中实现的。
所述压控振荡器VCO控制电压平滑处理的方法是将控制电压每隔8ms计算一次,对2048个控制电压值求算术平均。
所述基准降质判别过程包括:1)判断外基准能否使锁相环进入跟踪状态,直至满足连续5分钟处于跟踪状态;2)将对外基准锁相以后的输出与本地晶振进行比相,其结果作为判别的校验值;3)进行降质判别;4)判断是否需更新校验值;5)判断当前选用的基准是否正常;若失效,则切换所选用的基准。
下面结合附图进一步详细说明本发明。
图1是本发明所依据的理论基础,二阶锁相电路的阻尼系数ζ和自由振荡频率ωn可通过对图1的分析获得,从而进一步获得二阶锁相电路的其它参数。
在图1所示的二阶锁相环数学模型中,F(s)为低通滤波器的传递函数,Kv为环路增益。F(s)选择如下形式:
F(s)=1+a/s
(1)a为积分系数。锁相环的闭环传递函数为: 相位误差传递函数为: 式(2)、(3)中, ζ为阻尼系数,ωn为自由振荡频率。
可以看出,H(s)具有低通特性,只要ζ、ωn选择得当,就可以很好地滤除输入相位的抖动。
当输入信号频率为阶跃函数时,即
ωi(t)=αU(t)
(6)则输入相位随时间的变化为: 对(7)作拉氏变换:
θ(s)=a/s2
(8)由终值定理,求得稳定的相位误差:
(9)式说明,二阶锁相环对基准频率跃变且稳定在某一频率的情况,锁相的最终结果是相位保持一致,当然频率也是一致的。按照同样的分析,若基准频率随时间呈线性变化,结果是经二阶锁相环锁相后,输入与输出之间有一稳定的相位差,而输入与输出频率相同。
数学分析表明,快捕时选择ζ=0.707,ωn=0.007rad/s,可以比较快地进入跟踪状态;而跟踪时选择ζ=4.0,ωn=5.6×10-5rad/s,可以较有效地消除输入相位的抖动。
图2所示为本发明实际锁相电路的数字模型。图中低通滤波器的传递函数及各种参数转换均由微处理器实现。Km为数字鉴相器的相差计数输出值至相位差的转换系数;K0为鉴相灵敏度,即单位相位差应输出的控制电压;Kn为压控振荡器VCO控制电压数字化转换系数,即将压控振荡器VCO电压转换为DAC的数字化电压值;Kf为压控振荡器VCO的压控灵敏度,即单位控制电压所引起的压控振荡器VCO的频率变化值。Kf、K0与环路增益Kv之间有如下关系:
Kv=Kf·Kθ
(10)
对选定的压控振荡器VCO而言,Kf为已知,Kv由选定的ζ、ωn通过式(4)和(5)确定,由式(10)则可确定Kθ。当数字鉴相器的时钟计数频率确定后,Km也即确定。数字鉴相器的工作原理是将两个信号的相位差转化为数字脉冲的宽度,用此脉冲去控制计数器计数,计数值的大小反应了脉冲的宽度,这实际上是用计数器时钟的周期为单位来测量脉冲的宽度。若参与锁相的两个信号的标称频率为f0,计数器时钟频率为fc,则Km为:
Km=2πf0/fc
(11)
若鉴相计数器得到的鉴相计数值为m,则相位差θe为:
θe=Km·m
(12)Km的物理意义是单位鉴相计数值代表的相位差。
若DAC选定,Kn即确定。设DAC的分辨率是b位,DAC最大输出电压为Vmax,最小输出电压为Vmin,则
Kn的物理意义是单位电压需多少个DAC的基本量化电压来表示。若DAC的数字化电压直接用补码表示(如DAC714),则DAC输出电压V和数字化电压代码n之间的关系为:
V=Kn·n
(14)
若DAC的数字化电压代码不是用补码形式表示,则要根据具体情况作适当转换,此时不能直接引用式(14)。图2的模型适用于数字化电压代码用补码形式表示的DAC。
图2中的积分系数a由选定的ζ和ωn通过式(4)、(5)获得。
至此,二阶锁相电路的所有控制参数都已求得,可以按照图2根据鉴相计数值直接获得DAC的数字化电压代码(补码形式)。
图3所示的总流程图表现了本发明所述方法的完整流程。下面依据图3的流程,结合图4至图8,对各步骤进行说明。
晶体振荡器的频率及其稳定度与温度有十分密切的关系。恒温槽晶体振荡器在加电之初,由于还未达到热平衡,其初始输出频率与标称频率将会有一个较大的差值。若一开始就进入快捕流程,将会使相位差及其对时间的积分远远地偏离锁定以后的值,导致快捕过程的漫长。显然,不希望有这种现象出现。
为此,进入快捕流程前需要有一段时间的上电预热过程,以等待恒温槽晶体振荡器基本稳定下来。在正常复位的情况下,则可以跳过上电预热过程直接进入快捕流程。具体的做法是:设置两个字节的上电测试标志字节,若检测到该标志字节不是5AH和0A5H,则表明是新上电,则进入上电预热阶段,预热结束后将测试标志字节置为5AH和0A5H,表明已经过预热。若正常复位使处理器重新进入初始化程序段,则由于已设立了有效的上电测试标志字节,因而可跳过预热流程。
实现环路时间常数可变的二阶锁相环的算法需对鉴相计数值进行线性化处理,在由快捕进入跟踪时还需进行参数转化处理。
图4说明了鉴相计数值进行线性化处理的必要性。图4中信号a表示输入的基准信号,信号b是锁相环中的压控振荡器VCO产生的用于比相的信号,信号c是比相产生的表示相位差的脉冲,送入鉴相计数器产生鉴相计数值,波形d是信号a相位延迟一段的结果,波形e表示此时产生的相位差脉冲。不难看出,虽然只滞后了一个小的相位差,而鉴相的结果却产生了一个大的跳跃。究其原因是因为鉴相器仅仅在局部范围内是线性的,而对全局而言是非线性的。
对于图2的线性系统模型,只有当鉴相器是线性时才能准确描述,有关线性系统的结论才能成立。由线性系统的理论可知,当阻尼系数ζ>0时,系统总是稳定的。鉴相计数值线性化处理后,使得锁相环的捕捉范围大大扩展,几乎仅受压控振荡器VCO压控范围的影响。由此可见,线性化处理是至关重要的。
为实现线性化处理,引进了变量θe。线性化处理的流程如图5。
将第一次读入的鉴相计数值赋给θe,即为初始相位差,任何时刻的相位差是前一时刻的相位差加上该时刻与前一时刻时段内相位差的增量。参照图4,不难看出,若基准频率高于环路比相信号的频率,则信号b相对于信号a的相位一直会滞后下去,即波形b相对于波形a向右运动,波形a和波形b的脉冲上升沿对齐时,比相脉冲的宽度为0,得到的鉴相计数值也为0。随着波形b的右移,比相脉冲宽度增加,鉴相计数值也增加,直到波形a的脉冲上升沿又与波形b的脉冲上升沿对齐为止,比相脉冲宽度一下从最大值降至0,鉴相器出现了非线性。不难推知,若波形b右移,则鉴相值的跃变是负的,若波形b左移,跃变则是正的。因此,线性化处理必须要识别出相位差的跃变。另外,相位差还存在折叠模糊区。分析表明,当压控振荡器VCO的频率在0.5f0~1.5f0之间变化时(f0为基准频率),折叠模糊区不复存在。实际上,对二级钟而言,有关标准要求的最大同步范围为±4×10-7,对三级钟而言为±4.6×10-6,这些指标大大低于会产生相位折叠模糊的条件,因而这里是不可能有相位折叠模糊存在的。
前已说明,快捕时的锁相环控制参数与跟踪时是不一样的。快捕时要求快和准,跟踪时则主要要求稳。要求快则环路时间常数要小,以便灵敏地捕捉基准频率的变化,但考虑实际抖动的存在,环路时间常数也不宜过小。跟踪时要滤除抖动和漂移的影响,则要求环路时间常数要大,应在10000秒以上。如此大的环路时间常数要用电路来实现,但由于电容器有漏电流存在,实际上是不可能做到的。而用微处理器实现环路时间常数的可变,则比较容易。
根据二阶锁相环的算法,压控振荡器VCO控制电压由下式计算得到:
Vctl=Kd·(θe+a·sθe)
(15)式(15)中,Vctl是压控振荡器VCO控制电压,θe是以鉴相计数值为单位的经线性化处理后的相位差,sθe是θe对时间的积分,a为积分系数,Kd为Km、Kn和K0三者之积。
实现二阶锁相环控制的流程如图6所示。先由定时器计算两次压控振荡器VCO的控制电压调整的时间间隔的精确值,再计算当前相位差的时间积分sθe,根据公式计算压控振荡器VCO的控制电压Vctl,并将该值转化为整型量,获得输出到数字鉴相器DAC的数字化控制电压。
由于在快捕阶段和跟踪阶段使用了各自适合的环路控制参数,因此在快捕向跟踪转换时要进行参数变换处理,以确保平滑过渡。跟踪判定和参数变换的流程图见图7。
参数变换处理的原理叙述如下。理论分析可知,二阶锁相环稳态相位误差为零(即θe=0)。又由式(15)知,若锁相环已处于锁定状态,此时θe为0,则控制电压Vctl决定于sθe和锁相环的控制参数Kd、a。在快捕进入跟踪时,Vctl应保持不变,θe也应认为为零。而控制参数则变为跟踪时的控制参数Kd *和a*。因此为了使Vctl保持不变,就应对sθe进行变换,按下式进行:
sθe=Vctl/(Kd·a)
(16)
式(16)就是快捕至跟踪参数进行变换的算式。实际上,由于漂移和抖动的存在,θe不太可能为0。因此判定锁相环是否入锁是在一段时间内(5分钟)θe的变化不超过零附近的某一范围(绝对值不超过20,在fc为16.384MHz条件下)。由于漂移和抖动的存在,又因为快捕时环路时间常数较小,使得Vctl也存在波动。为了不把快捕时外基准漂移和抖动的影响带入跟踪阶段,须对Vctl做平滑处理。方法是将足够多次的Vctl作平均后得到的算术平均值代入式(16)进行参数变换运算。Vctl每隔8ms计算一次,对2048个Vctl值求算术平均,因此能消除或削弱周期小于16秒的抖动和漂移的影响。
由于传输通路有可能出现故障,基准就有可能会丢失。在进行基准切换时,锁相环输出的频率和相位都不应产生变化。不同的基准之间有很大的相位差存在,在切换基准时,输入会有相位跃变,输入相位跃变不应对锁相环输出产生扰动。在线性化处理流程中,对输入相位的跃变有滤除作用。据前述,线性化θe的计算方法是相位差当前值加上相位差的增量而得。因此,只要识别出由于基准切换产生的相位差增量并将其丢弃即可。具体做法是设置一个相位值重读标志RE_READ_F。初始时,RE_READ_F设为1,此时从鉴相器读入的鉴相计数值存入“前一时刻鉴相计数值”单元,并将RE_READ_F清零,表示已存在有效的前一时刻鉴相计数值。当经8ms后再次获得鉴相计数值后,新的鉴相计数值减去前一时刻鉴相计数值即为相位差增量,并通过线性化处理流程更新θe值,同时将新获得的鉴相计数值存入“前一时刻鉴相计数值”单元。在读入新的鉴相值之前,总是先检查选用的基准是否丢失。若丢失,则总是将RE_READ_F置1,因此,当选用新基准时,RE_READ_F总为1。由前面所述处理方法可知,相位差的增量就不会因为基准相位的跃变而产生跃变。前述方法使相位差的增量真正反映的是输入基准与本地压控振荡器VCO的相对频差。
由于通讯网络的复杂性,有时会发生这样的情况,某路由基准严重偏离正常频率,此时又还未建立基准降质判别的依据,一时难以判定优劣的情况下,偏偏又选中了该非正常基准进行锁相,则会将θe和sθe拉偏至非常远离正常值,即使基准正常后,要θe和sθe调节至正常值也需相当长的时间。为避免此种情况产生,在锁相流程中若发现快捕时间超过半个小时,就自动复位使处理器重新进入初始化程序段。
基准降质判别是十分重要的一个环节,本发明中给出了判别时钟降质的方法。它是通过测定两时钟信号相位差的变化实现的。
设fi是外来的频率基准,fl是本地频率恒定的高稳晶体振荡器输出频率,则在t1~t2时段内的相位差变化Δθe可表示为:
式(17)表明,若两个时钟频率相同,即fi等于fl,则Δθe为0,它们之间的相位差将保持恒定不变。若频率不相等,则相位差随时间增大,且频率差越大,相位差随时间的变化越快。因此可以通过监测相位差的变化推测两时钟的频率差异,从而判定时钟是否降质。
相位差由数字鉴相器测量。设数字鉴相器的计数频率为fc,两个比相信号的相对频差为2×10-8,则每秒时间间隔内相位差计数值的变化量为2×10-8-8fc,现fc取32.768MHz,则相位差计数值每秒的变化量为0.655LSB,也即相位差计数值变化1LSB所需的时间为1.53秒。由于计数器存在±1LSB的计数误差,若要使这一原理性误差控制在5%以内,必须延长比相时间,以使相位差计数值的变化达20LSB,则这段时间为20×1.53=30.6秒,即要测量2×10-8的相对频差,若要求测量的精度优于5%,则用32.768MHz的相位差计数器所需的测量时间为30.6秒。从另一个角度还可以说,若在30.6秒时间内,用32.768MHz相位差计数器的计数值变化不超过20LSB,则两个比相信号的频率差在2×10-8以内。
若本地晶体振荡器十分稳定,其短稳优于1×10-10秒,则fi在短时间内基本可视为不变(相对于2×10-8而言)。基准频率fi可看成fi0+Δfi,其中fi0是fi的恒定分量,Δfi是fi的波动分量。设Δθc1是t1~t2内外来基准与本地晶体振荡器之间相位差的变化,Δθe2是t3~t4时间内外来基准与本地晶体振荡器之间相位差的变化,且假定t2-t1=t4-t3,则:
式(18)表明,若本地晶体振荡器十分稳定,则相位差增量的变化反映的是外来基准频率变化的程度。因此,相位差增量的变化可以作为外来基准降质判别的定量判别依据。按照前面的计算分析,若取t2-t1=t4-t3=30.6秒,且Δθe2-Δθe1不超过20LSB,则可认为外来基准不降质,反之,则可判为降质。
若Δθe1不是由外来基准与本地晶体振荡器直接比相获得的,而是任何一个正常的外来基准经锁相后的输出信号与本地晶体振荡器比相的结果,设为Δθe0,则由于锁相环已将外来基准抖动部分滤除,式(18)变为:
式(19)表明,若Δθe0是任一外来基准经锁相后的输出信号与本地晶体振荡器比相获得的,则Δθe2-Δθe0直接反映了外来基准偏离恒定分量fi0的程度,可以将其作为降质判别的定量依据。另外,由于大环路时间常数的锁相环具有很好的抗干扰能力,Δθe0比Δθc1更不易受传输损伤的影响,知信度高,将它作为判别外来基准是否降质的校验值更合适。
降质判别的流程示于图8。为得到正确的校验值,采取如下原则:首先判断外来基准能否使锁相环进入跟踪状态,若连续5分钟都处于跟踪状态,则说明外来基准和锁相都正常,则可以通过将对外来基准锁相以后的输出与本地晶体振荡器比相的结果作为降质判别的校验值。由于本地晶体振荡器存在老化现象,求得的校验值需每隔一段时间更新一次,一般是一天。当判别到外来基准降质时,也存在由于本地晶体振荡器损坏导致误判的可能性,但这种可能性相对于外来基准出现故障的情况而言是很小的,因为压控晶体振荡器VCXO的MTBF一般都在十年以上。
本发明采用微处理器控制的环路时间常数可变的二阶锁相环方法和比相法频率基准质量判别方法,很好地解决了快捕过程和跟踪过程对环路时间常数有不同要求的问题,有一定的捕捉带宽和跟踪带宽,达到了稳、准、快地同步于基准频率的目的,并削弱、消除了抖动和漂移的影响,提高了网同步的可靠性和准确性。另外还采用了鉴相器输出的线性化处理、频率基准相位跃变的滤除以及晶振上电预热处理等辅助的手段,进一步完善本发明,更好地实现了本发明的目的。