具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例作进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例提供一种DDS信号发生器,图1为本发明实施例中DDS信号发生器的结构示意图。
如图1所示,该DDS信号发生器包括相位累加器101、加法器102和波形存储器103;该DDS信号发生器还包括:频率控制字存储单元104和取点控制单元105;其中,
频率控制字存储单元104用于存储频率控制字表,频率控制字表包括多个根据用户设置的频率计算的频率控制字;
取点控制单元105根据跳频间隔从频率控制字表中获取频率控制字,使得DDS信号发生器根据频率控制字来控制输出频率,以实现跳频。
通过上述DDS信号发生器可实现跳频功能,设计成本低;并且,跳频功能具有良好的可扩展和可升级性能。
以下以FPGA实现的DDS信号发生器为例,详细描述在DDS信号发生器的基础上实现跳频功能。
图2为通过FPGA内部实现的DDS信号发生器的原理示意图。如图2所示,DDS信号发生器事先将要输出的波形幅度码值存放在波形存储器中,波形中各点均匀分布在360度的相位上。
然后,相位累加器在时钟的控制下以设置的频率控制字为步进进行累加,并与相位控制字相加后作为波形存储器的地址,对波形存储器进行寻址,取出对应的幅度码值,送入数模转换器(DAC,Digital Analog Converter)转换后通过低通滤波电路、幅度/偏移控制电路等模拟信号调理电路后输出。
如图2所示,用户可设置的参数有频率控制字、相位控制字以及波表。频率控制字由用户设置的频率、参考时钟计算得到,计算公式如下:
其中,f0为用户设置的频率,fc为时钟,N为频率控制字的位宽。由上式可以看出,在时钟一定的前提下,频率控制字的位宽N的大小决定了最小频率间隔,而最大输出频率由Nyquist采样定理决定,即fc/2。
在本实施例中,时钟fc为1GHz,频率控制字的位宽N为64bit。因而理论上频率分辨率可达到5.4×10-5uHz。
相位控制字由用户设置的初始相位计算得到,计算公式如下:
其中,p0为用户设置的相位,M为相位控制字的位宽。由上式可以看出,相位控制字的位宽M的大小决定了最小相位间隔,最大相位即为360度。
在本实施例中,相位控制字的位宽M的大小为14bit,因而理论相位分辨率可达到0.02197度。
波表中存放的均是对应于模拟电压值的数字量,计算公式由DAC决定。本实施例中使用的DAC具有14bit垂直分辨率,因此波表中的幅度码值也具有14bit垂直分辨率,即波表中每个波形点具有14bit有效位,即最大值为16384。在用户通过前面板选择不同波形时(或者自定义波形时),即将内部存储的波表或者用户自己编辑的波表发送到波形存储器中,供FPGA的DDS模块使用。
因此,一旦用户输入的频率、起始相位、波形确定后,DDS模块则一直按照配置的频率控制字、相位控制字和波形循环输出固定的频率、相位的波形,直到下一次用户再配置频率或者相位或者波表。
从上面的分析可以看出,要想改变频率,只要用户通过前面板输入新的频率即可实现。由于DDS信号发生器具有频率捷变性、分辨率高、相位连续、相噪小,且容易控制,为实现跳频功能提供了可能。
在本实施例中,如果在数字信号处理(DSP,Digital Signal Processing)软件内部做一个定时控制,按照一定时间间隔自动根据用户事先设定的规则修改频率控制字,则就不必每次都要用户手动修改频率,即可实现简单的频率跳变功能。
图3为本发明实施例中通过DSP实现跳频的原理示意图。如图3所示,取点控制单元在定时单元的作用下,根据跳频间隔从频率控制字表中获取频率控制字,DDS信号发生器可通过频率控制字改变输出频率,实现跳频的功能。
不过,这种方法对DSP的工作频率要求较高,如果DSP的工作频率太低,就无法实现较快的跳频间隔。对于DSP仅用于实现单一跳频功能,不做其它任何用途(如键盘输入、显示界面绘制)的情况,虽然具有一定的可行性,但从成本控制上来说是不可取的。并且,DSP或者其它处理器中的代码一般是串行执行,无法得到较精确的跳频间隔。在实际设计中,DSP或者其它处理器总是会负担许多其它工作,因此,不容易得到良好的跳频性能。
优选地,可以对FPGA内部实现的DDS模块进行简单改进,为实现跳频功能提供支持,而将跳频功能的各种参数配置,包括跳频图案的生成交由DSP软件完成。
这样,由于FPGA中的代码是可以并行执行的,各个模块同时工作时互不干扰,而且并行的处理速度一般是高于串行处理速度的,所以在FPGA内部提供跳频功能的支持是一个较好的选择。
在本实施例中,可将多个频率字提前存放在FPGA内部的缓冲区中,让FPGA自动按照一定的时间间隔从该缓冲区中取频率控制字控制DDS的输出频率,即可实现跳频功能。也就是说,只需要将原来的单个频率控制字换成一张频率控制字的表,并增加一个自动取频率控制字的控制模块即可实现跳频功能。
如图1所示,取点控制单元104可通过现场可编程门阵列(FPGA)实现。频率控制字表即为跳频图案,每个频率控制字占据64bit(4word),一般跳频点数为几十到几千,则要求的存储空间为几百Bytes到几十KBytes。
例如,如果最大跳频点数为4096,则要求存储空间需要32768个Bytes。在FPGA内部RAM的大小一般从几KBytes到几MBytes。因此,如果选择内部RAM较大的FPGA,存放32Kbytes的数据是完全可行的。但是一般内部RAM较大的FPGA价格都比较高,或者内部RAM虽然很大价格也不高,但是其它资源很少,不足以承担很多工作。
因此,用外部扩展的存储器是一个比较折中的选择,虽然访问外部存储器的速度远不及访问内部RAM,但是价格上是有较大优势的,如果利用电路中本来就有的外部存储器,则还可以省去跳频专用的外部存储器的成本。
优选地,为了实现128Mpts的超大任意波表功能,电路上原本增加了4个并行的64Mbytes DDRII,在跳频时就可以复用这些DDRII。如图4所示,频率控制字存储单元405可为DDRII;取点控制单元404从DDRII中的频率控制表中并行获取频率控制字。
图4为将频率控制字串行存放在DDRII中的示意图。如图4所示,从DDRII中取点时只能按存放顺序依次取,速度比较慢。进一步地,可将数据点采用并行存放的方式存放在DDRII中,以增加访问位宽。
图5为将频率控制字并行存放在DDRII中的示意图。如图5所示,每个DDRII在一次时钟的控制下可以取出2个word,则4个并行的DDRII在一个时钟下就可以取出8个word。速度比串行存储的方式提高了4倍。如果DDRII工作在Burst模式下,则每次访问DDRII均会进行两个时钟的操作,即一次存取16个word(两个频率控制字)。
图6为取点控制单元104的结构示意图。如图6所示,取点控制单元可由三个计数器组成。第一计数器601用于控制获取频率控制字的地址;第二计数器602用于控制获取所述频率控制字的速度;第三计数器603用于控制频率控制字的输出速度。
在本实施例中,第一计数器601具体用于:根据用户配置的跳频图案的点数计算出取点地址上限,每次从DDRII中取出16个word后均自动将地址往后增加16个word,并和地址上限比较,如果达到地址上限则自动回到起始位置。
第二计数器602具体用于:根据用户配置的跳频间隔算出需要的DDRII时钟的个数,对DDRII时钟进行计数,以控制速度。例如,DDRII时钟为125MHz(8ns),用户配置的跳频间隔为80ns(指每个频率控制字之间间隔80ns),由于每访问一次DDRII会连续使用两个时钟,一次取出16Word(4个频率控制字),则取点计数器的计数上限设置为80/8*4,即每计满40个DDRII时钟周期就访问DDRII一次,一次取出16个Word(4个频率控制字)的数据。
第三计数器603具体用于:控制从内部缓冲区中获取频率控制字的速度,计算方法和第二计数器602类似,不同之处在于第三计数器603控制的是最终的跳频速度,是以频率点为单位的,即每次取4个word(计数器B每次访问DDRII取16个word)。所以,根据125MHz的时钟,实现80ns的跳频间隔时,第三计数器603的计数上限为80/8,即每计满10个DDRII时钟周期就从缓冲区中更换一次频率控制字。在设计时需要保证第二计数器602和第三计数器603之间同步,避免发生缓冲区溢出。
如图1所示,DDS信号发生器还可包括:跳频设置单元106;跳频设置单元106与频率控制字存储单元105和取点控制单元104连接,用于输入和配置跳频参数,所述跳频参数可包括:跳频开关、跳频间隔、跳频图案以及显示方式的一种或其组合。
在本实施例中,为了充分支持用户对跳频功能的控制,跳频设置单元106可通过DSP实现DSP用户接口,来输入和配置跳频参数。DSP用户接口可显示在前面板的LCD屏上,用户可以通过前面板按键进行各种参数输入。
图7为跳频参数布局以及前面板布局的示意图。如图7所示,用户可通过按下对应菜单选择相应的参数,然后进行参数的修改,修改参数方式可包括:(1)反复按下对应菜单软键对可选参数值进行切换;(2)数字键盘输入数字后按下对应单位菜单软键直接设置参数值;(3)旋转旋钮修改当前选择的具备光标的参数值。
在本实施例中,DSP软件提供的用户接口包括如下参数可以设置:跳频开关、跳频间隔、跳频图案以及显示方式。从用户设置到最终配置之间需要进行各种参数合法性的验证。例如,当前载波是方波时,如果试图打开跳频功能,则会弹出非法操作的提示。
下面通过实例对各个参数合法性的限制进行描述:
(1)当载波为Sine,模式为基本载波模式或者AM调制模式时,允许打开跳频功能,否则均不允许打开跳频功能。
(2)跳频间隔的最小值为80ns,最大值为1s。
(3)显示起始点——用于控制跳频图案在屏幕上显示的起始点编号,不大于当前使用的跳频图案的总点数。
(4)跳频图案:包括4个内建的跳频图案可供选择,还可以选择已存的跳频图案,或者进行自定义跳频图案编辑。最小跳频图案点数为2个点,最大跳频图案点数为4096个点。
(5)进行跳频图案编辑时,用户可以分别编辑跳频表和跳频序列,并提供了4个内建跳频表,分别为2点、4点、8点和16点,以及3种内建跳频序列方式,分别为顺序、大M序列、小m序列。
(5)跳频表中各频率点的值不能超过250MHz,不能低于1.5MHz。
在本实施例中,参数验证合法后,就开始配置到FPGA的各个模块。跳频开关只需要配置相应寄存器使能即可。其中,跳频速率控制字由跳频间隔转换过来的,也就是取点控制单元用来控制从跳频表中取频率控制字的快慢。跳频速率控制字用下式计算:
其中,f0为用户设置的跳频速率,fc为DDRII时钟,N为跳频速率控制字的位宽,计算结果K即为跳频速率控制字,实际就是第二计数器602和第三计数器603的计数上限。跳频点数和跳频图案的配置需要根据用户选择的跳频图案的点数来进行计算确定最终配置的点数以及跳频图案。
如前所述,访问DDRII时一次就取出了4个跳频频率字,因此要求跳频图案的点数为4的倍数,这样的话就保证了访问DDRII时每次均能取到有效数据。同时要求不改变跳频图案的周期,因此一旦开始复制原始跳频图案就要复制整个原始跳频图案。
例如:用户设置跳频图案点数为3,依次编号为(A、B、C),3不是4的倍数,因此需要进行复制,如果只复制A,虽然最终点数达到了4的倍数,但是最终跳频图案会变成(A、B、C、A),输出时,跳频重复周期即从(A、B、C)变成了(A、B、C、A),这就改变了用户要求的跳频重复周期。
为了满足4的倍数,且不改变跳频图案周期,因此需要复制4次完整的原始数据,变成(A、B、C、A、B、C、A、B、C、A、B、C),长度为4的倍数,循环周期也仍然为(A、B、C)。这一过程在DSP配置跳频点数和跳频图案时完成,虽然增加了DSP的运算量,但避免FPGA内部实现的跳频模块采用复杂的判断机制去实现,减少了FPGA资源占用。
由上述实施例可知,在现有的DDS信号发生器的基础上通过FPGA和DSP实现了跳频功能,带宽达到1.5MHz~250MHz,跳频速率达到了12.5Mpt/s,跳频图案点数最大达到了4096个点;并且提高了多种内建跳频图案,以及大M跳频序列和小m跳频序列。由于完全是在现有硬件资源上实现跳频功能的,对于硬件成本没有任何增加,并且提供了友好便捷的用户操作界面。此外,将作为独立设备的跳频源功能引入到普通信号发生器中,丰富了信号发生器的功能。
本发明实施例还提供一种跳频方法,应用于DDS信号发生器,如图8所示,所述跳频方法包括:
步骤801,DDS信号发生器存储频率控制字表,频率控制字表包括多个根据用户设置的频率计算的频率控制字;
步骤802,根据跳频间隔从频率控制字表中获取频率控制字,使得DDS信号发生器根据频率控制字来控制输出频率,以实现跳频。
优选地,频率控制字表存储在DDRII中;并且,根据跳频间隔从DDRII中并行获取频率控制字。
优选地,通过现场可编程门阵列(FPGA)实现根据跳频间隔从频率控制字表中获取频率控制字。
在本实施例中,根据跳频间隔从频率控制字表中获取频率控制字,具体包括:通过第一计数器控制获取频率控制字的地址;通过第二计数器控制获取频率控制字的速度;通过第三计数器控制频率控制字的输出速度。
在本实施例中,所述跳频方法还包括:输入和配置跳频参数。优选地,所述输入和配置跳频参数通过DSP实现,跳频参数包括:跳频开关、跳频间隔、跳频图案以及显示方式中的一种或其组合。
由上述实施例可知,在现有DDS信号发生器的硬件资源上实现跳频功能,设计成本低;并且,跳频功能具有良好的可扩展和可升级性能。
本领域普通技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。