一种精度可调的数字控制移相原理
扫描二维码
随时随地手机看文章
1 引言 移相电路在现代通讯技术、波形调制和雷达扫描等许多方面有着大量的运用。目前实现方式大致可分为模拟和数字2类。模拟移相器的电路较为复杂、线性差、响应时间慢,抗电磁干扰能力差。而数字移相器主要分2类[1]:第一类是运用直接数字式频率合成技术dds。另一类是利用单片机计数延时的方法实现。其中使用dds的移相器的实现精度大多依照"360°/2°"的方式实现,即其能够实现180°,90°,45°,22.5°,11.25°等精度[2]。另外其实现电路也较为复杂;而第二类利用单片机虽然可以实现较高精度的移相,但使用的单片机属于硬核ip[2],在大规模集成和使用权问题上十分不方便。本文介绍的基于可编程数字控制方法的移相原理,其精度可以通过精度控制输入信号任意赋予(在本文中精度调制为1°来说明)。此原理的电路采用采样电路和精度为1°的360倍倍频器等进行延时输出波形,方法简便,电路结构简单,能够配合任意工艺特性加以实现,且能够方便地集成到大规模电路中去。2 基本原理 本系统是基于数字倍频器进行延时操作而实现的移相。实现原理是把输入模拟波形(如正弦信号)的周期tin转化为原来的1/data,tin/data即为移相精度,data值通过精度控制输入信号赋值。当data为360时,精度为1°;当data为720时,精度为0.5°;若要更小的精度,可依此类推。本文中为便于显示移相波形,把精度设置为1°。则精度为tin/360,所用的倍频器倍频因子即为360。这样经n个tin/360延时(n为移相的具体数值,由记时控制输入信号d赋值),再输出波形。和原波形相比就形成了移相。从实现的电路方面来讲,要把输入波形周期变为原来的1/360,或者说把输入波形的频率变为原来的360倍,最直接的办法就是采用倍频器。而数字倍频器的输入是数字信号,则应先把模拟量转化为数字量,这就需要一个模拟比较器。在得到倍频输出信号后,为了要得到希望的n值,还应在倍频器后添加数字定时输出计数器,以输出延时控制信号。最后把模拟信号输入a/d电路,通过rom存储,再在延时控制信号的作用下延时输出数字量,再经过d/a电路还原为模拟量,最终实现移相操作。其中倍频器具有360倍倍频能力。 输入模拟信号(如正弦波)经过信号比较器,波形电压与零伏比较后,高于零伏的电压段转化为高电平,低于的转化为低电平,这样输入信号就转化为周期相同的数字信号。a/d,rom,d/a和一些控制电路构成移相输出控制模块。其中移相控制部分的倍频器,定时输出计数器构成可编程数字控制部分,都可以通过硬件语言编译实现。2.1数字倍频器 这里使用的数字倍频器(电路如图2所示)的算法是基于采样的原理来实现[4],理论上能够实现任意倍倍频,这里为方便说明和显示波形,设置为360倍,即倍频因子为360,精度为1°。 当信号a经过比较器后,a转化为具有相同周期的数字信号da,他们的周期均为tclk_in。通过引入高频时钟信号(其周期为thf_clk)采样,以此来计数在一个tclk_in中含有的thf_clk的个数,把这个结果记为nhf。则有:nhf=tclk_in/thf_clk (1)
由于倍频因子是360,所以对于倍频后的结果clk_div_n1有:nhf_of_clk_dive_n1=nhf/360 (2)tclk_div_n1=nhf_of_clk_dive_n1×thf_clk (3)tclk_div_n1为倍频后倍频器输出波形的周期,nhf_of_clk_dive_n1为一个tclk_div_n1中含有的采样信号周期的个数。联立式(1),(2),(3),可得:tclk_div_n1=tclk_in/360 (4)亦即:fclk_in×360=fclk_div_n1 (5) 从而实现了360倍倍频。tclk_div_n1就是信号a相移27π/360(即1°)时所占的时间间隔。图3是本倍频器的仿真波形(这里把倍频因子固定为360)。在每次输入信号周期变化后,都按照新的周期进行360倍倍频这里应说明的几点是:
data就是精度控制信号,不难看出,实际上他也就是倍频器的倍频因子。当data=360时,移相精度为1°。那么当倍频因子改变时,移相精度随之而改变。若data为720,则移相精度为0.5°;若data为3 600,则移相精度为0.1°。这些都可以通过改变精度控制信号data来实现,从而达到精度可变的目的。 (2)reset为复位信号,在输入信号da(也就是电路图中信号clk_in)时应先复位。 (3)每隔一个tclk_in,nhf就会被重新计算一次,并与上次的结果作比较,这样输出信号cal_dif会在输入信号clk_in的周期发生变化时(也就是两个nhf数值不一样时),输出一个高电频。这个高电频就是下两个模块数字定时输出计数器和数模混合输出控制电路中一部分模块的复位信号,从而达到倍频器输出信号周期自调节的目的。 (4)式(1)~式(5)的推导实际上都忽略了除法中的余数问题。当式(1)除不尽时要考虑余数的四舍五入问题。式(2),式(4)应修改为:nhf_of_clk_dive_n1=nhf/360 (6)tclk_in=360×tclk_div_n1+r (7)