发明内容
本发明的目的是提供一种简单、高效、通用,可普遍应用于VCO线性度校正的电路,该校正电路包括:FPGA数字电路、DAC数模转换电路、放大滤波电路、分频电路、驱动滤波电路;FPGA数字电路分别与驱动滤波电路、DAC数模转换电路连接,DAC数模转换电路与放大滤波电路连接,驱动滤波电路与分频电路连接;其中FPGA数字电路主要包括:ROM、RAM、CPU、频率测量模块、DA模块、AVALON总线模块,ROM、RAM、CPU、频率测量模块、DA模块分别与AVALON总线模块连接,且频率测量模块与驱动滤波电路连接,DA模块与DAC数模转换电路连接。
优选地,分频电路例如是20倍的分频电路。
优选地,CPU采用Altera公司的NIOS。
优选地,在FPGA数字电路中运用如下校正方法进行VCO线性度校正,具体包括如下步骤:
1)FPGA中的CPU通过DA模块向DAC数模转换电路发出电压控制字VCTRL;
2)DAC数模转换电路将控制字VCTRL转换为相应的电流;
3)放大滤波电路将电流转换为电压并滤波,并将电压值放大到-10V到+10V之间,记为vturn;
4)压控振荡器VCO利用输入的电压vturn控制其输出信号的频率;
5)压控振荡器VCO输出信号的频率经过分频电路,形成分频信号FDIV,频率范围在100MHZ到200MHZ之间;
6)驱动滤波电路对分频信号FDIV进行驱动滤波;
7)将驱动滤波后的分频信号FDIV输入到FPGA的频率测量模块,测量输入信号的频率;
8)FPGA中的CPU读取频率测量模块测得的频率值,判断得到的频率值与预期的频率值之间的相对误差在0.1%以内,若相对误差大于0.1%,则重复1到7步骤,直到相对误差在0.1%以内,将此时的电压控制字存储到RAM中,至此完成VCO一个频点的电压校正。
优选地,在FPGA数字电路中还运用如下校正方法进行VCO线性度校正,具体包括如下步骤:
1)根据压控振荡器VCO频率范围和需要校正的点数M,计算得到M个离散待校正频点值,形成预设频点数组F,并将此数组存储到ROM内,供PFGA使用;
2)FPGA读取预设频点数组F里第m个值F[m],F[m]即为第m个待校正频点,执行第m个待校正频点的校正过程,m为1至M之间的自然数;
3)进行第m个待校正频点的校正时DA电压控制字初值的选定:若m=1,则初始电压控制字采用预定的电压控制字(V_turn[0]),此控制字使得DAC数模转换电路输出电流为0,即输出电压0V;若m不等于1,则其初始电压控制字选择第m-1个预设频点的校正电压值(V[m-1]);
4)执行第m个频点的校正,包括如下步骤:
4.1)FPGA中的CPU通过DA模块向DAC数模转换电路发出初始电压控制字VCTRL;
4.2)DAC数模转换电路将控制字VCTRL转换为相应的电流;
4.3)放大滤波电路将电流转换为电压,并将电压值放大到-10v到+10V之间,记为vturn;
4.4)压控振荡器VCO利用输入的电压vturn控制其输出信号的频率;
4.5)压控振荡器VCO输出信号的频率经过分频电路,形成分频信号FDIV,频率范围在100MHZ到200MHZ之间,驱动滤波电路对分频信号FDIV进行驱动滤波;
4.6)将驱动滤波后的分频信号FDIV输入FPGA的频率测量模块,测量输入信号的频率;
4.7)频率测量模块测量压控振荡器VCO反馈的分频信号的频率测量值(f_check[i]),若测得的频率值(f_check[i])小于第m个频点的预设频点值F[m],则电压控制字(V_turn)累加,即V_turn[i+1]=V_turn[i]+1,并将累加后的电压控制字(V_turn[i+1])发送给DAC数模转换电路,频率测量模块再次测量压控振荡器VCO反馈的分频信号的频率测量值(f_check[i+1]),直至测得的频率值大于等于第m个频点的预设频点值(f_check[i+1]>=F[m]);此时比较累加前后测得的频率值与预设频点值F[m]之间的频率差值,若|f_check[i]-F[m]|<|f_check[i+1]-F[m]|,则表示此次累加前的电压控制字V_turn[i]代表的VCO输出频率更接近预设频点值F[m],将V_turn[i]存储到RAM中,反之,此次累加后的电压控制字V_turn[i+1]代表的VCO输出频率更接近预设频点值F[m],并将V_turn[i+1]存储到RAM中,至此完成第m个频点的校正;
m+1,从第2)步重复执行,直至完成M点预设频点值的校正,得到M个电压控制字,并存储在RAM中。
本发明的有益效果是:通过实验验证,该电路结构简洁,设计巧妙,能够有效校正VCO的线性度,实时性高、及时可靠、通用性高,线性度校正准确,解决了目前VCO线性度校正存在的诸多局限性问题。
具体实施方式
发明原理
VCO扫频非线性校正技术是实现高精度及高分辨率线性调频连续波雷达的关键技术之一,目前研究较多的是基于延迟一鉴相法,它以数字处理系统为核心的闭环数字校正方法。其工作原理是:对混频输出的差频信号经A/D采样后由数字信号处理器利用算法对相位进行精确计算,从而得到频率偏移函数,进而可以得出下一周期的控制电压,经D/A转换后再去控制VCO,不断重复此过程实现对VCO线性度校正,使得VCO输出波形接近理想线性调频信号。闭环数字校正系统的核心部分即数字处理系统原理,从精确度上来考虑,理论上闭环数字校正系统随着采样率的提高和算法的完善,线性度会得到极大的改善。但问题也由此产生,采样点数的提高会导致数据量的增大,数字信号处理器的工作量加大,特别是若算法复杂,将影响系统的速度,同时采用高速器件将使得系统的成本提高。
本发明的发明人经过大量研究,结合数字信号处理,发现了下述的技术特点。VCO压频特性图如图2所示。
由图2可知,VCO压频曲线有两个明显的特点:一是它会随电路板的温度发生变化,二是VCO压频曲线的低电压部分基本是线性,而高电压部分则发生了变形。若把整个VCO频率范围分为M(m=0:M-1)个频点F[m],每个频点对应的的电压值为V[m],只要找到每个频点对应的电压值就可对VCO的线性度进行校正。VCO输出的信号是毫米波,信号频率分布在。要对此信号直接进行时域或频域分析非常困难。若给VCO一固定电压V_turn,则其输出信号为一单频,设其频率为W。若对此单频信号进行N倍分频,可得到频率较低的信号。低频信号可使用数字信号处理的算法对其进行测频,得到的频率值设为F,那么VCO的输出频率W=N*F。使用此方法可方便的测到VCO的频率。根据得到的频率值W,反复调整V_turn使得W等于预设的频点F[m],那么此电压V_turn对应的VCO频率为F[m],将此电压V_turn存储到V[m]中。以此方法对每个频点校正,得到M个电压值,从而实现VCO的线性度校正。
本发明利用这一技术特点,提供了一种新的基于FPGA的闭环VCO线性度校正电路,以FPGA为主要控制器件,辅以DAC数模转换电路、分频电路等外围电路,实现对VCO的高效、高精度校正,此电路可靠性高、通用性好,线性度校正精度高,环境适应性好,同时扫频信号线性度校正的效率高。
下面结合附图和实施例对发明的基于FPGA的闭环VCO线性度校正电路进行详细介绍。
如图1所示,该基于FPGA的闭环VCO线性度校正电路主要包括:FPGA数字电路、DAC数模转换电路、放大滤波电路、分频电路、驱动滤波电路;FPGA数字电路分别与驱动滤波电路、DAC数模转换电路连接,DAC数模转换电路与放大滤波电路连接,驱动滤波电路与分频电路连接;其中FPGA数字电路主要包括:ROM、RAM、CPU、频率测量模块、DA模块、AVALON总线模块,ROM、RAM、CPU、频率测量模块、DA模块分别与AVALON总线模块连接,且频率测量模块与驱动滤波电路连接,DA模块与DAC数模转换电路连接。
分频电路例如是20倍的分频电路。
下面对该校正电路中的各核心电路进行阐述:
第一部分是FPGA数字电路,包括:
(1)ROM,其中存储的是预设频点F[m]的值,此值根据系统的特点事先计算好,并预存到ROM里。
(2)RAM,其中存储的是每个预设频点F[m]校正后的电压值V[m];
(3)频率测量模块,完成对分频信号的频率测量,并将此测量值传送给CPU;
(4)DA模块,完成对FPGA外部的DAC数模转换电路的数据传输,控制DAC数模转换电路的输出电压;
(5)CPU,CPU与上述四个模块通过Avalon总线模块连接,CPU里的控制算法程序完成对四个模块的通信与控制。
第二部分是外围电路,分为:
(1)DAC数模转换电路,将电压控制字转换为相应的模拟电信号;
(2)放大滤波电路,将模拟电信号放大滤波,转换为模拟电压;
(3)分频电路,对VCO输出的射频信号进行分频;
(4)驱动滤波电路,加强分频电路输出信号的驱动能力,滤除噪声。
在FPGA数字电路中运用如下校正方法进行VCO线性度校正,具体包括如下步骤:
1 FPGA中的CPU通过DA模块向DAC数模转换电路发出电压控制字VCTRL;
2 DAC数模转换电路将控制字VCTRL转换为相应的电流;
3 放大滤波电路将电流转换为电压并滤波,并将电压值放大到-10V到+10V之间,记为vturn;
4 压控振荡器VCO利用输入的电压vturn控制其输出信号的频率;
5 压控振荡器VCO输出信号的频率经过分频电路,形成分频信号FDIV,频率范围在100MHZ到200MHZ之间;
6 驱动滤波电路对分频信号FDIV进行驱动滤波;
7 将驱动滤波后的分频信号FDIV输入到FPGA的频率测量模块,测量输入信号的频率;
8 FPGA中的CPU读取频率测量模块测得的频率值,判断得到的频率值与预期的频率值之间的相对误差在0.1%以内,若相对误差大于0.1%,则重复1到7步骤,直到相对误差在0.1%以内,将此时的电压控制字存储到RAM中,至此完成VCO一个频点的电压校正。
当校正VCO的整个频率范围时,只需将VCO的频率范围分为N个频点,采用以上步骤将每个频点校正好,此时得到N个点的电压控制字,将他们存储到RAM中,根据需要按照一定的时序读取发送出去,即可控制VCO输出信号的频率。具体的校正方法如下步骤:
5)根据压控振荡器VCO频率范围和需要校正的点数M,计算得到M个离散待校正频点值,形成预设频点数组F,并将此数组存储到ROM内,供PFGA使用;
6)FPGA读取预设频点数组F里第m个值F[m],F[m]即为第m个待校正频点,执行第m个待校正频点的校正过程,m为1至M之间的自然数;
7)进行第m个待校正频点的校正时DA电压控制字初值的选定:
若m=1,则初始电压控制字采用预定的电压控制字(V_turn[0]),此控制字使得DAC数模转换电路输出电流为0,即输出电压0V;
若m不等于1,则其初始电压控制字选择第m-1个预设频点的校正电压值(V[m-1]);
8)执行第m个频点的校正,包括如下步骤:
4.1)FPGA中的CPU通过DA模块向DAC数模转换电路发出初始电压控制字VCTRL;
4.2)DAC数模转换电路将控制字VCTRL转换为相应的电流;
4.3)放大滤波电路将电流转换为电压,并将电压值放大到-10v到+10V之间,记为vturn;
4.4)压控振荡器VCO利用输入的电压vturn控制其输出信号的频率;
4.5)压控振荡器VCO输出信号的频率经过分频电路,形成分频信号FDIV,频率范围在100MHZ到200MHZ之间,驱动滤波电路对分频信号FDIV进行驱动滤波;
4.6)将驱动滤波后的分频信号FDIV输入FPGA的频率测量模块,测量输入信号的频率;
4.7)频率测量模块测量压控振荡器VCO反馈的分频信号的频率测量值(f_check[i]),若测得的频率值(f_check[i])小于第m个频点的预设频点值F[m],则电压控制字(V_turn)累加,即V_turn[i+1]=V_turn[i]+1,并将累加后的电压控制字(V_turn[i+1])发送给DAC数模转换电路,频率测量模块再次测量压控振荡器VCO反馈的分频信号的频率测量值(f_check[i+1]),直至测得的频率值大于等于第m个频点的预设频点值(f_check[i+1]>=F[m]);此时比较累加前后测得的频率值与预设频点值F[m]之间的频率差值,若|f_check[i]-F[m]|<|f_check[i+1]-F[m]|,则表示此次累加前的电压控制字V_turn[i]代表的VCO输出频率更接近预设频点值F[m],将V_turn[i]存储到RAM中,反之,此次累加后的电压控制字V_turn[i+1]代表的VCO输出频率更接近预设频点值F[m],并将V_turn[i+1]存储到RAM中,至此完成第m个频点的校正;
9)m+1,从第2)步重复执行,直至完成M点预设频点值的校正,得到M个电压控制字,并存储在RAM中。
在进行扫频信号线性校正过程中,第3)步采用前一频点校正后的电压控制字作为当前频点校正的初始电压控制字,缩短了该频点的校正时间,提高了校正效率;在第4.7)步校正过程中,只要测得频率值大于预设频点值即终止校正过程,同样缩短了该频点的校正时间,提高了校正效率。
在频率测量模块中使用VerilogHDL编写测频算法,完成对分频信号的频率测量。
设在一次实际闸门时间t中计数器对被测信号的计数值为N
X,对标准信号的计数值为N
S,标准信号频率为f
s,则被测信号的频率
在测量过程中,有两个计数器分别对标准和被测信号同时计数。首先给出闸门开启信号(预置闸门上升沿).此时计数器并不开始计数,而是等到被测信号的上升沿到来时,计数器才真正开始计数。然后预置闸门关闭信号(下降沿)到时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才结束计数,完成一次测量过程.可以看出,实际闸门时间t与预置闸门时间tr。并不严格相等,但差值不会超过被测信号的一个周期。设在一次实际闸门时间t中计数器对被测信号的计数值为NX,对标准信号的计数值为NS,标准信号的频率为fs,则被测信号的频率为
经试验验证,本发明的基于FPGA的闭环VCO线性度校正电路辅以一定的软件控制算法,能够可靠、精确地校正VCO的线性度,校正后的线性度能达到0.3%以内。
以上实施例仅为阐述本发明之用,其并不表示对本发明保护范围的限定,任何基于本发明思想所作的修改、改进,均在本发明保护范围之内。