发明内容
本发明提供了一种基于脉冲中心的同步锁相方法,克服现有数字锁相方法的不足,利用光耦等低成本的整形电路输出的脉冲信号中心相对原正弦信号的相位是稳定的特性,以脉冲中心为跟踪目标,解决脉冲变化沿对应信号相位的不确定问题,实现信号相位的准确跟踪和同步。
为了解决上述问题,本发明提供一种基于脉冲中心的同步锁相方法,包括以下步骤:
S100、对输入的被锁信号sig1进行滤毛刺处理,得到平滑的整形信号sig2;
S200、对整形信号sig2和经延时程序控制得到的锁相延时信号spll2进行数字鉴相处理,得到输入信号和输出信号的相位误差信号CPD;所述数字鉴相处理包括:基于鉴相时钟信号clk1对整形信号sig2上升沿到锁相延时信号spll2上升沿进行计数,获得计数值为C1(n);基于鉴相时钟信号clk1对锁相延时信号spll2上升沿到整形信号sig2下降沿进行计数,获得计数值为C2(n);以(C1(n)-C2(n))作为整形信号sig2的正脉冲中心鉴相输出;基于鉴相时钟clk1对整形信号sig2下降沿到锁相延时信号spll2下降沿进行计数,获得计数值为C3(n),基于鉴相时钟信号clk1对锁相延时信号spll2下降沿到整形信号sig2上升沿进行计数,获得计数值为C4(n);以(C3(n)-C4(n))作为整形信号sig2的负脉冲中心鉴相输出,(C1(n)-C2(n))和(C3(n)-C4(n))作为鉴相误差输出相位误差信号CPD;
S300、相位误差信号CPD经过锁相控制得到控制信号Nc;控制信号Nc在可控振荡器的控制下得到同步倍频信号sdco,同步倍频信号sdco的一部分作为输出信号,另一部分反馈到M倍分频器;
S400、同步倍频信号sdco经过M倍分频器得到锁相信号spll1;锁相信号spll1经过延时处理得到所述锁相延时信号spll2;整形信号sig2的频率和锁相延时信号spll2的频率相等时,环路被锁定。
本发明提供的基于脉冲中心的同步锁相方法还具有以下技术特征:
进一步地,步骤S100中的所述滤毛刺处理采用延时比较法或积分法。
进一步地,步骤S300中的所述锁相控制采用比例积分控制,在整形信号sig2下降沿和整形信号sig2上升沿,依据相位误差信号CPD采用比例积分控制算法获得控制信号Nc。
进一步的,步骤S300中的所述可控振荡器为具有小数控制位的数控振荡器。
进一步的,步骤S400中的所述延时处理为:通过计数器法和存储器法来实现脉冲延时调控。
本发明具有如下有益效果:利用光耦等低成本的整形电路输出的脉冲信号中心相对原正弦信号的相位是稳定的特性,以脉冲中心为跟踪目标,解决了脉冲变化沿对应信号相位的不确定问题,实现了信号相位的准确跟踪和同步;在工频过零点同步过程中,通过对延时处理中的延时进行设置,将可得到实际过零点信号,锁相准确可靠。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
如图1所示的现有技术中基于光耦的工频电压同步信号电路图,当输入电平0-1.5V时,可视为低电平“0”,光敏三极管截止,输出为高电平“1”;当输入电平3.5V-24V,可视为高电平“1”,光敏三极管饱和导通,输出为低电平“0”,由于光耦中发光二极管的导通电压是不能消除的,所以整形后同步信号正脉冲宽带和负脉冲宽带的比值不固定,同时,因为光耦中发光二极管的导通电压随不同器件型号、工作环境变化而变化,使得脉冲变化沿与实际对应的正弦电压信号相位也是变化的。
如图2至图10所示的本发明的基于脉冲中心的同步锁相方法的实施例中,该基于脉冲中心的同步锁相方法包括以下步骤:
S100、对输入的被锁信号sig1进行滤毛刺处理,得到平滑的整形信号sig2;
S200、对整形信号sig2和经延时程序控制得到的锁相延时信号spll2进行数字鉴相处理,得到输入信号和输出信号的相位误差信号CPD;所述数字鉴相处理包括:基于鉴相时钟信号clk1对整形信号sig2上升沿到锁相延时信号spll2上升沿进行计数,获得计数值为C1(n);基于鉴相时钟信号clk1对锁相延时信号spll2上升沿到整形信号sig2下降沿进行计数,获得计数值为C2(n);以(C1(n)-C2(n))作为整形信号sig2的正脉冲中心鉴相输出;基于鉴相时钟clk1对整形信号sig2下降沿到锁相延时信号spll2下降沿进行计数,获得计数值为C3(n),基于鉴相时钟信号clk1对锁相延时信号spll2下降沿到整形信号sig2上升沿进行计数,获得计数值为C4(n);以(C3(n)-C4(n))作为整形信号sig2的负脉冲中心鉴相输出,(C1(n)-C2(n))和(C3(n)-C4(n))作为鉴相误差输出相位误差信号CPD;
S300、相位误差信号CPD经过锁相控制得到控制信号Nc;控制信号Nc在可控振荡器的控制下得到同步倍频信号sdco,同步倍频信号sdco的一部分作为输出信号,另一部分反馈到M倍分频器;
S400、同步倍频信号sdco经过M倍分频器得到锁相信号spll1;锁相信号spll1经过延时处理得到所述锁相延时信号spll2;整形信号sig2的频率和锁相延时信号spll2的频率相等时,环路被锁定。
上述实施例中的基于脉冲中心的同步锁相方法,利用光耦等低成本的整形电路输出的脉冲信号中心相对原正弦信号的相位是稳定的特性,以脉冲中心为跟踪目标,解决了脉冲变化沿对应信号相位的不确定问题,实现了信号相位的准确跟踪和同步;在工频过零点同步过程中,通过对延时处理中的延时进行设置,将可得到实际过零点信号,锁相准确可靠。
在上述实施例中,基于脉冲中心的同步锁相方法还具有以下技术特征:其中的所述滤毛刺处理采用延时比较法或积分法;所述锁相控制采用比例积分控制,在整形信号sig2下降沿和整形信号sig2上升沿,依据相位误差信号CPD采用比例积分控制算法获得控制信号Nc;所述可控振荡器为具有小数控制位的数控振荡器;所述延时处理为:通过计数器法和存储器法来实现脉冲延时调控。
在上述实施例中,滤毛刺处理采用延时比较法或积分法,或者二者并用。比较法就是若干个时钟周期读取的数据相同则认为收到了一个稳定的数据,否则认为是过渡态;采用若干位的移位寄存器,当寄存器是全“1”或全“0”时才开始读数。积分法就是用一个增减计数器,当输入信号为“1”时计数器递增计数直到计数器全“1”停止计数、否则计数器递减计数直到全“0”停止计数,计数器的MSB即为输入信号的去抖信号。如果采用二者结合,前端用几个比特的移位寄存器实现比较,比较结果作为计数使能来控制接下来的增减计数器的计数。
在上述实施例中,鉴相的鉴相时钟信号clk1从整形信号sig2上升沿到锁相延时信号spll2上升沿的计数值为C1(n),锁相延时信号spll2上升沿到整形信号sig2下降沿的计数值为C2(n)。(C1(n)-C2(n))作为整形信号sig2正脉冲中心鉴相输出。如果C1(n)>C2(n),锁相环输出频率增加,周期时间缩短。如果C1(n)<C2(n),锁相环输出频率降低,周期时间增长。类似地,鉴相部分的鉴相时钟clk1从整形信号sig2下降沿到锁相延时信号spll2下降沿的计数值为C3(n),锁相延时信号spll2下降沿到整形信号sig2上升沿的计数值为C4(n)。(C3(n)-C4(n))作为整形信号sig2负脉冲中心鉴相输出。如果C3(n)>C4(n),锁相环输出频率增加,周期时间缩短。如果C3(n)<C4(n),锁相环输出频率降低,周期时间增长。被锁信号和锁相信号的相位误差为Δθ,则(C1(n)-C2(n))或(C3(n)-C4(n))作为鉴相误差输出CPD,等于(Δθπ)·(Fclk1/Fsig1)。据此,如果进行线性化近似,在每个被锁信号变化沿单位相位误差与鉴相误差输出CPD的传递函数关系为:
其中,Fsig1是被锁输入信号sig1的频率,Fclk1是鉴相时钟信号clk1的频率。
在上述实施例中,锁相控制采用比例积分控制方式。在整形信号sig2下降沿,或整形信号sig2上升沿,依据鉴相误差CPD调整。采用比例积分调节,比例系数为KP,积分系数为KI。
比例输出为:
其中,NPMAX是比例输出上限阈值,NPMIN是比例输出下限阈值。
积分输出为:
其中,NI(m-1)和NI(m)分别是上一次和当前计算的积分输出值,NIMAX是比例输出上限阈值,NIMIN是比例输出下限阈值。
锁相控制输出NC为:
其中,NC(m)分别是上一次和当前计算的积分输出值,NIMAX是比例输出上限阈值,NIMIN是比例输出下限阈值。
锁相控制的总传递函数为:
在上述实施例中,可控振荡器采用具有小数控制位的数控振荡器,对固定频率的时钟信号进行分频,其原理结构如图3所示。首先将输入的控制信号Nc分解为二进制长度为k的低位部分NL和其余的高位部分NH。NL输入到一个k位加法器中,同步倍频信号即输出信号sdco反馈回来作为这个加法器的时钟控制信号。在信号sdco的控制下,数据NL与加法器当前输出的求和数据进行累加,并再次更新加法器的求和输出。同时加法器依据求和计算中的数据溢出状态产生一个进位信号。这个进位信号将进一步控制一个可控的计数分频器的工作,使计数分频器依据进位信号选择对固定频率的时钟信号clk2进行NH倍或者NH+1倍的分频。
输出的同步倍频信号sdco的频率Fsdco与固定时钟信号clk2的频率Fclk2的关系是:
由于相位是频率的积分,所以信号sdco的相位θsdco(s)可以表达为:
M倍分频器的传递函数为:
延时处理是可控的,通过计数器法和存储器法来实现脉冲延时调控。计数器法通过设定计数器的预置数,调节计数时间,使计数时间等于延时时间,从而达到脉冲延时。预置数设置,根据需要延时的时间和系统时钟频率计算出计数器预置数并加载到计数器中,预置数的计算公式为:
d=t×f;
式中,d—预置数;
t—需要延时的时间;
f—系统时钟频率。
脉冲延时流程图如图4所示,首先把预置数加载到计数器内,将需要延时的锁相信号spll1作为触发脉冲,当触发脉冲上升沿到达时,计数器清零,开始计数。时钟频率为计数器提供计数脉冲,根据程序可以选择加法或减法计数器,若为加法计数器,当到达预置数值,输出与原始信号对应的一个时钟周期宽度的正脉冲后,停止计数,而后计数器复位,直到被下一个触发脉冲上升沿清零,进入下一轮计数,如此循环计数,输出脉冲。
存储器法通过高速时钟对锁相信号spll1进行采样,并把采样结果存入FIFO中,同时通过延时控制模块对FIFO的输出进行控制,生成锁相延时信号spll2,存储器法的电路组成框图如图5所示。延时控制模块,当写入FIFO的数据时间长度等于延时值时,开始使FIFO读信号,直到FIFO中的数据被读空,FIFO的输出即为锁相延时信号spll2。若要实现延时值连续可变的脉冲延时控制,应采用两路FIFO轮流对锁相信号spll1进行延时,当延时值更新时,切换FIFO,且两路FIFO的输出相或后作为最终输出脉冲即锁相延时信号spll2。
忽略滤毛刺处理,对锁相输出信号spll1的延时设置为0,θsig1(s)是输入被锁脉冲信号sig1的相位,θsdco(s)是锁相环输出的同步倍频信号sdco的相位,θspll(s)是信号sdco经M倍分频后得到的锁相输出信号spll1的相位,Δθsig1(s)、Δθsdco(s)和Δθspll1(s)为相应的局部扰动量,Kpd、Kc、Kdco和KM分别是鉴相部分、锁相控制部分、可控振荡部分和分频部分的传递函数。该系统的局部动态数学模型如图6所示。数控振荡部分的传递函数等于相位θsdco(s)关于Nc的变化率,
即:
该系统的局部动态数学模型的传递函数Hdpll(s),锁相输出信号对应被锁信号的正峰和负峰,所以系统在锁相稳定时锁相输出信号频率Fspll1是被锁信号频率Fsig1的一倍,即:即Fclk2=M·NC·Fsig1/2k-1,化简传递函数Hdpll(s),最终可以得到:
其中,
Hdpll(s)是一个二阶系统的传递函数形式,而且具有两个负实极点,所以该系统是稳定的。Hdpll(s)的分母部分决定了该系统的局部性能,将其分母表示为:
其中,二阶系统的自然频率ωn为:
二阶系统的阻尼系数ξ为:
振荡频率ωd为:
根据自然频率ωn和阻尼系数ξ的形式,若设计参数K12、M、k、KP和KI都确定后,则自然频率ωn将与被锁信号频率Fsig1成正比,而阻尼系数ξ具有确定的数值,即ξ与被锁信号状态无关。另一方面,依据自动控制理论,二阶系统的阻尼系数ξ决定了系统达到稳定的响应形式;而当阻尼系数ξ固定后,二阶系统的自然频率ωn决定了系统达到稳定的速度。据此,由于本锁相系统在不同的被锁频点具有相同的阻尼系数,所以在被锁频点的局部范围内锁相跟踪过程将以相同的形式达到稳定。另一方面,由于自然频率ωn与被锁信号频率Fsig1成正比,这说明本锁相环从被锁信号频率附近出发锁定被锁信号时,锁相趋于稳定所需的时间与被锁信号的周期成正比。所以可以得出结论,当被锁信号的频率范围较宽时,该系统在不同的被锁频点的局部范围内都具有一致的锁相速度和稳定特性。
本发明锁相控制部分采用具有快速变化能力的积分环节,即使当锁相信号和被锁信号之间的频率差别比较大时,积分环节的作用将提高控制信号NC的调整速度,使系统能够快速锁相跟踪上输入的被锁信号,所以本发明在宽的频率范围内锁定输入信号时,也具有快速的响应速度。
此外,如果锁相启动刚开始,则处于锁相失锁;未等到本地锁相输出脉冲,出现新的输入信号变化沿;或者本地锁相输出脉冲产生后未出现新的输入信号变化沿;如果|C1(n)-C2(n)|或|C3(n)-C4(n)|大于失锁阈值CTH_UNLOCKED,则判断失锁。如果判断失锁,则锁相环重新启动同步跟踪。鉴相时钟信号clk1记录整形信号sig2的第一个变化沿(上升沿/下降沿)到第二个变化沿(下降沿/上升沿)的时间Cab,整形信号sig2的第二个变化沿(上升沿/下降沿)到第三个变化沿(下降沿/上升沿)的时间Cbc,由此设置锁相控制参数:
此时,对应第三个变化沿,可控振荡器输出脉冲倒计数预设为:floor((Cab/(2K12·M)-1)*2k)。
M倍分频器倒计数预设为:(M-1)。
等运行到可控振荡器输出脉冲倒计数为0,M倍分频器倒计数为0时,可控振荡器发出第一个脉冲,失锁标志取消。并且如果则继续;否则仍判断失锁。
继续运行初始设置:
NP=0
可控振荡器依据Nc,开始正常运行。
本发明的实施例1基于以下参数设置:
1)被锁信号的输入频率范围是从40Hz到70Hz;
2)锁相环中的分频倍数M=2;
3)鉴相器的固定时钟信号clk1的频率Fclk1为1000kHz;
4)数字控制振荡部分的二进制小数分频控制位数k等于4;
5)数控振荡部分的工作时钟clk2的频率Fclk2也选择1000kHz,K12等于1;
6)比例增减计数的最大阈值取NPMAX=8000,最小阈值取NPMIN=-8000;
7)积分增减计数的最大阈值取NIMAX=102400,最小阈值取NIMIN=56000。
8)失锁判断Nc向右移位值KSHT_LCK=3,相位差阈值ΔθPLL=11.25°。
9)延时处理中的延时设置为0。
图7给出了KP分别为21和20.5,KI为2-1时的锁相跟踪相位误差曲线。自然频率ωn、阻尼系数ξ与参数KP、KI对应的关系为:
KP=21,KI=2-1,自然频率ωn=1Fsig1,阻尼系数ξ=0.5,振荡频率ωd=0.866Fsig1;
KP=20.5,KI=2-1,自然频率ωn=1Fsig1,阻尼系数ξ=0.354,振荡频率ωd=0.935Fsig1。
图8给出了KP为21,KI分别为2-2和2-3时的锁相跟踪相位误差曲线。自然频率ωn、阻尼系数ξ与参数KP、KI对应的关系为:
KP=21,KI=2-2,自然频率ωn=0.707Fsig1,阻尼系数ξ=0.707,振荡频率ωd=0.5Fsig1;
KP=21,KI=2-3,自然频率ωn=0.5Fsig1,阻尼系数ξ=1。
本发明的实施例2基于实施例1所设参数,锁相环中的分频倍数M改为4,延迟处理中的延时设置为(C1(n)+C2(n)+C3(n)+C4(n))/4。
图9给出了KP分别为1和2-0.5,KI为2-2时的锁相跟踪相位误差曲线。自然频率ωn、阻尼系数ξ与参数KP、KI对应的关系为:
KP=1,KI=2-2,自然频率ωn=1Fsig1,阻尼系数ξ=0.5,振荡频率ωd=0.866Fsig1;
KP=2-0.5,KI=2-2,自然频率ωn=1Fsig1,阻尼系数ξ=0.354,振荡频率ωd=0.935Fsig1。
图10给出了KP为1,KI分别为2-3和2-4时的锁相跟踪相位误差曲线。自然频率ωn、阻尼系数ξ与参数KP、KI对应的关系为:
KP=1,KI=2-3,自然频率ωn=0.707Fsig1,阻尼系数ξ=0.707,振荡频率ωd=0.5Fsig1;
KP=1,KI=2-4,自然频率ωn=0.5Fsig1,阻尼系数ξ=1。
由波形可见,锁相信号spll1与原始信号过零点同步。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。