一种锁定相位编程可调全数字锁相环设计
扫描二维码
随时随地手机看文章
1 引 言
锁相技术在信号处理、调制解调、时钟同步、倍频、频率综合等领域都得到了广泛的应用。目前锁相技术的实现主要有模拟锁相环(APLL)、全数字锁相环(DPLL)、模拟数字混合锁相环与延迟锁相环(DLL)四种。全数字锁相环(DPLL)具有精度高且不受温度和电压影响,环路带宽和中心频率编程可调等优点.得到了广泛应用。
经典全数字锁相环路由数字鉴相器、K模可逆计数器、脉冲加减控制电路和N分频器4部分组成。在输入信号频率稳定条件下,锁相环锁定时输出信号与输入信号正交。在通信和其他很多应用领域,不仅需要输出信号与输入信号保持正交关系,有时也需要他们保持某些特定的相位差。本文在经典结构基础上稍做改进,提出了一种输出信号与输入信号的锁定相位编程可调的全数字锁相环路的设计。经过计算机仿真分析、FPGA实现及板级系统实验,证明了系统的可行性和可靠性。
2 经典数字锁相环路结构及工作原理
图1示出了采用异或门鉴相器的经典数字锁相环路的结构框图。各个模块的结构和功能如下:
2.1 异或门鉴相器
异或门鉴相器将锁相环路输入信号Fin与输出信号Fout做减法,输出相位差Se作为K模可逆计数器的计数方向信号。当环路锁定时输出信号与输入信号稳定正交,Se是一占空比为50%的方波信号。
2.2 K模可逆计数器
K模可逆计数器产生进位和借位脉冲并起到环路滤波的作用。他由系统时钟Clk(频率M?0)控制对异或门鉴相器输出的相位差信号Se进行采样计数,当Se为低电平时做加计数,计数值达到预定模值K时输出进位脉冲inc同时计数器回零;当Se为高电平时做减计数,计数值为零时输出借位脉冲dec同时计数器置K。当环路锁定Se是一占空比为50%的方波信号时,交替输出进位和借位脉冲。计数器模值K的大小决定了环路进入锁定的时间,K值越大环路锁定时间越长。
2.3 脉冲加减控制器和N分频器
脉冲加减控制器实现数字压控振荡器的功能。当K模可逆计数器有进位脉冲输出时,控制器捕获该脉冲信号,并在输出信号Clk_nf中插入一个系统时钟周期的脉冲,N分频器对Clk_nf信号分频,从而使环路输出信号Fout超前一个时钟周期的相位;同样的,当有借位脉冲时控制器在Clk_nf减去一个系统时钟周期的脉冲,从而使输出信号Fout滞后一个时钟周期,这样就起到了相位调节的作用。当环路锁定时交替出现的进位和借位脉冲调相作用相互抵消,输出时钟Fout 稳定。
3 改进的数宇锁相环结构及工作原理
3.1 改进的数字锁相环设计思路及其结构
如图2所示,在异或门鉴相器与K模可逆计数器之间插入一个Se的调节器对Se的波形进行调节,即给了K模计数器一个虚假的输出信号与输入信号的相位差Se_out。当伪相位差信号Se_out为方波时输出与输入信号锁定在一个特定的相位。
3.2 Se调节器的设计实现
我们假定输出信号Fout与输入信号Fin正交时二者相差为零。设输出信号滞后于输入信号环路锁定相位羞为负,输出信号超前于输入信号环路锁定相位差为正。用Option信号选择锁定方式并输入相位差值。分别分析锁定相位差为负和锁定相位差为正环路进入锁定时各个信号之间的相位关系,很直观地得到Se调节器的实现方法。
3.2.1 锁定相位差为负Se调节器的设计实现
系统时钟Clk,输入信号Fin、输出信号Fout,相位差信号Se与伪相位差信号Se_out的相位关系如图3所示。伪相位差信号Se_out为一占空比为50%的方波,系统锁定。此时输出信号滞后于输入信号一定的相位,记为off-set。相位差信号Se高电平占空比低于伪相位差信号Se_out高电平占空比的值就是输出信号滞后于输人信号的相位offset。Se调节器要完成的工作就是将Se调整为Se_out的波形,即将Se为低电平宽度为offset的区域转换成高电平。具体实现为:设计一个预置值为offset的计数器。在Se为高电平时Se保持不变,同时计数器计数值保持为O,在Se由高电平变为低电平后开始加计数,当计数值未达到预置值offset。时Se仍保持为高电平,当计数值超过预置值offset时,将Se置低电平,这样得到的波形就是所需要的se_out。
3.2.2 锁定相位差为正Se调节器的设计实现
系统时钟Clk、输入信号Fin,输出信号Fout,相位差信号Se与伪相位差信号Se_out的相位关系如图4所示。与输出信号滞后于输人信号环路锁定类似:设计一个预置值为offset的计数器。在Se为低电平时Se保持不变,同时计数器计数值保持为O,在Se由低电平变为高电平后开始加计数,当计数值未达到预置值offset时Se仍保持为低电平,当计数值超过预置值offset时,将Se置高电平,这样得到的波形就是所需要的Se_out。
3.3 Se调节器性能分析
锁相环开始工作时,输出信号是落后于输入信号的,对输出信号Fout的相位不断调整是在系统时钟控制下对相位差信号Se为高电平部分逐渐加宽的过程。不同的Se调节器对此过程的响应性能不同。又系统时钟Clk与输入信号Fin之间的相位关系决定了输出信号与输入信号的锁定误差,Se调节器存在固有误差。
3.3.1 锁定相位差为负的Se调节器
锁定相位差为负的Se调节器本身就是对Se为高电平不断加宽,工作过程中计数器对Se为低电平计数总可以达到满足offset,进而对Se out进行调整。系统时钟Clk与输入信号Fin伪同相(Fin二升沿与Clk上升沿同步)时,环路锁定存在半个系统时钟周期的系统固有误差;Clk与Fin伪反相(Fin上升沿与Clk下降沿同步)时,环路锁定不存在系统固有误差。
3.3.2 锁定相位差为正的Se调节
锁定相位差为正的Se调节器本身是对Se为高电平部分不断减少,而实际的调节是将其不段加宽,在一定时间内Se_out保持为低电平,系统时钟Clk在此结构下造成的系统固有误差均为正向。Clk与Fin伪同相时存在一个系统时钟周期的系统固有误差,CIk与Fin伪反相时存在半个系统时钟周期的系统固有误差。将内部将计数器的预置值设为offset减1,则系统最大固有误差降为半个系统时钟周期。
4 计算机仿真与FPGA实现
4.1 计算机仿真
设计采用Verilog硬件描述语言,在Mentor Graphics公司的FPGA设计平台FPGA Advantage with PS 7.1上进行了设计、综合及仿真,仿真器为Modelsim 6.1a。
图5和图6分别示出了系统时钟Clk与输入信号Fin伪反相,可逆计数器K值为10,分频数N为16,锁定相差为负3和正3时环路锁定的过程。可以看出,Se的调节都时将Se为高电平部分逐渐展宽的过程。锁定相差为负3时误差为0,由于汁数器补偿的作用,锁定相位差为正3时误差也为0。
4.2 FPGA实现及板级系统实验
设计采用Xilinx公司的ISE 7.1i开发环境和Spar-tan3 xc3s400-4pq208 FPGA进行了实现,并在板级系统上搭建了实验环境,用数字示波器进行了波形测试,系统工作稳定,达到了设计要求。
5 结 语
设计对经典全数字锁相环路进行改进,通过增加相位差调节器的方法实现输出信号与输入信号的多相位锁定。采用Verilog语言对整个设计进行了描述,进行了计算机仿真、FPGA实现和板级系统实验,实现了锁定相位编程可调的全数字锁相环路,完成了设计目标。