基于FPGA的高速数字锁相环的设计与实现
电子元件,电子元器件深圳市创唯电子有限公司
您现在的位置: 首页 > 电子技术
基于FPGA的高速数字锁相环的设计与实现  2012/3/1
摘要:本文提出了一种利用边沿触发鉴相缩短锁相环捕获时间的方案,并详细介绍了该方案基于FPGA的实现方法。通过对所设计的锁相环进行计算机仿真和硬件测试,表明该方案确实可以提高锁相环的捕获性能。关键词:数字锁相环(DPLL);捕获时间;FPGA;VHDL引言捕获时间是锁相环的一个重要参数,指的是锁相环从起始状态到达锁定状态所需时间。在一些系统中,如跳频通信系统,由于系统工作频率不断地发生快速变化(每秒几百次到几千次,甚至高达上万
 

摘    要:本文提出了一种利用边沿触发鉴相缩短锁相环捕获时间的方案,并详细介绍了该方案基于FPGA的实现方法。通过对所设计的锁相环进行计算机仿真和硬件测试,表明该方案确实可以提高锁相环的捕获性能。
关键词:数字锁相环(DPLL);捕获时间;FPGA;VHDL

引言
捕获时间是锁相环的一个重要参数,指的是锁相环从起始状态到达锁定状态所需时间。在一些系统中,如跳频通信系统,由于系统工作频率不断地发生快速变化(每秒几百次到几千次,甚至高达上万次),要求锁相环能够对信号相位快速捕获。因此研究具有较短捕获时间的高速锁相环是十分有必要的。

边沿鉴相数字锁相环
全数字锁相环主要由数字鉴相器、数字环路滤波器和数控振荡器(NCO)组成。其中数字鉴相器在很大程度上决定着锁相环的性能。常见的鉴相方法包括异或门鉴相和边沿触发鉴相等。
基于异或门鉴相的锁相环只能以步进方式对输出信号的相位进行调整,从而导致捕获时间较长。为了缩短捕获时间,本文利用边沿触发鉴相器,直接对两信号的相位差进行测定,并依据相位差值对输出信号相位进行调整,系统结构如图1所示。
边沿触发鉴相器对输入信号和输出信号的正向过零点进行检测。当检测到输入信号的正向过零点后,启动计数器,检测到输出信号的正向过零点后停止计数,将计数值N送入环路滤波器。计数值N与两信号相位差之间的关系如下:
当输出信号滞后时:
      (1)
其中为计数器时钟频率,为输入信号的频率。
数字鉴频器对输入信号相邻的正向过零点进行检测,当检测到输出信号的正向过零点后,开始计数,直到检测到下一个正向过零点,将计数值输出,并将计数器清零,继续开始计数。计数值与输入信号频率的关系如下:
                       (2)
数字鉴频器可以精确地测定输入信号的频率,并可跟踪输入信号频率的微小变化,其精度取决于计数时钟频率。
环路滤波器具有低通性质,可以滤除高频干扰噪声,提高系统的稳定性。而且环路滤波器还可以对锁相环的性能参数进行调整。在本设计中采用了基于一阶平滑的数字环路滤波器,其结构如图2所示。其中,T为延时,G1和G2为权值。通过改变环路滤波器中的权值G1和G2,可以对锁相环的参数进行调整。增大G1、减小G2可以提高系统的灵敏度,缩短捕获时间;反之,则可以实现对高频成分和噪声更有效地抑制,提高系统的稳定性。

锁相环的FPGA实现
这里主要介绍边沿触发鉴相器和数字鉴频器的FPGA实现方法。
边沿触发鉴相器分两步实现:
1. 同时对输入信号和输出信号的正向过零点进行检测。当检测到正向过零点后,分别产生一个持续时间为一个系统时钟周期的正脉冲指示信号high_pulse_1和high_pulse_2。
2. 当检测到输入信号上升沿指示脉冲信号high_pulse_1,则启动计数器,在系统时钟脉冲的上升沿进行增计数,当检测到输出信号的上升沿指示脉冲信号high_pulse_2,则停止计数,并将计数值phase输出。计数值phase反映了输入/输出信号的相位差,具体关系见(1)式。
数字鉴频器设计的基本思想与边沿触发鉴相器类似。当检测到high_pulse_1,从0开始增计数,直到检测到下一个high_pulse_1,将计数值feq输出,计数器从0开始继续计数。计数值feq与输入信号频率之间的关系见(2)式。限于篇幅,锁相环的VHDL设计程序这里不再赘述。

仿真与硬件测试结果
本设计使用Altera公司的Quartus II 3.0进行设计和仿真。
系统时钟clk频率为32.768MHz,输入信号s_in的频率为1MKHz,cs为片选信号(高电平有效),输出信号为s_out,phase为鉴相器输出的与相位差相对应的计数值,cycle

与《基于FPGA的高速数字锁相环的设计与实现》相关列表
电话:400-900-3095
QQ:800152669
库存查询
Copyright(C) 2011-2021 Szcwdz.com 创唯电子 版权所有 备案号:粤ICP备11103613号
专注电子元件代理销售  QQ:800152669  电子邮件:sales@szcwdz.com  电话:400-900-3095