一种DDS信号发生器的制作方法

文档序号:18127064发布日期:2019-07-10 09:57阅读:282来源:国知局
一种DDS信号发生器的制作方法

本申请涉及电子仪器领域,尤其是一种DDS信号发生器。



背景技术:

DDS是直接数字式频率合成器(DirectDigital Synthesizer),目前的信号发生器普遍采用DDS技术来产生波形,与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电子仪器领域,是实现设备全数字化的一项关键技术。

现有技术中通常以FPGA或DSP作为DDS产生装置,通过将待输出的波形量化成一张波形数据表,截取相位累加器输出的高N位作为波形数据表的查表地址,按照该地址在FPGA或DSP内置的RAM内进行查找,查找到的地址对应的数据就是待输出的波形点,再通过对该数据经过DAC并滤波后,形成所需的波形。由于只截取相位累加器的高N位,舍去低位后,不可避免地会造成相位截断误差,为了减少误差,N需尽量大,N每增加1位,杂散可改善-6db。但是,N每增加1位,RAM的容量需要相应地增加一倍,而FPGA或DSP内置的RAM往往容量较小,资源相当有限,导致查找表的大小有限,导致N较小,导致输出波形的杂散相对较高,输出波形质量较差。



技术实现要素:

本申请提供一种DDS信号发生器,解决RAM容量较小、波形的杂散较高、输出波形质量较差的缺点。

根据本申请的第一方面,本申请提供一种DDS信号发生器,包微处理器、数据处理模块、数模转换器和至少一个DDS处理单元,每个DDS处理单元分别与微处理器和数据处理模块相连;

所述DDS信号发生器还包括至少一个SDRAM模块,每个SDRAM模块分别和一个DDS处理单元对应相连;

所述DDS处理单元包括依次连接的相位累加器和存储控制器;

所述微处理器用于接收用户设置的初始相位和频率,并将所述频率转换为频率控制字;

所述相位累加器用于根据所述初始相位和所述频率控制字在每个时钟周期进行相位累计,输出相位值;

所述存储控制器,用于截取所述相位值的高N位作为查表地址,并根据所述查表地址查找波形数据表,得到待生成信号的波形数据信息,所述高N位由所述SDRAM模块的容量决定;

所述SDRAM模块与所述存储控制器相连接,用于存储波形数据表,所述波形数据表按地址存放生成信号需要的波形数据信息;

所述数据处理模块用于根据查表所得的波形数据信息,生成波形点数据;

所述数模转换器用于对所述波形点数据进行数模转换,输出模拟信号作为信号发生器的生成信号。

在一些实施例中,所述存储控制器包括至少a个队列组,每个所述队列组包括一一对应的1个地址队列和1个数据队列,所述地址队列用于传输地址信息,所述数据队列用于传输数据信息;所述该公式表示向上取整的运算,其中,fclk为所述DDS处理单元的时钟频率,f2表示所述存储控制器的时钟频率,η表示所述SDRAM模块的效率。

在一些实施例中,所述存储控制器包括1队列组,所述SDRAM模块包括至少a个SDRAM;所述存储控制器还包括数据选择模块,根据地址队列的地址,从数据队列选择并读取数据发送到数据处理模块;待生成信号的频率满足:fout*2N<f2*2*η*d*a,d=2或4,fout表示待生成信号的频率,f2表示所述存储控制器的时钟频率,f1表示所述SDRAM的时钟频率,η表示所述SDRAM的效率。

在一些实施例中,所述SDRAM包括一般的SDRAM、DDR2SDRAM和DDR3SDRAM。

在一些实施例中,所述SDRAM模块为DR3SDRAM;所述存储控制器的带宽为f2*n,满足f2*n=f1*m*2,f2表示所述存储控制器的时钟频率,n表示所述存储控制器的数据位宽,f1表示所述SDRAM的时钟频率,m表示SDRAM的数据位宽。

在一些实施例中,所述数模转换器的数据位宽小于或等于所述SDRAM模块的数据位宽。

根据本申请的第二方面,本申请提供一种多路DDS信号发生器每一路DDS包括上述信号发生器的所述DDS处理单元和所述SDRAM模块,包括至少w对所述DDS处理单元和所述SDRAM模块,w为DDS路数,w为大于1的正整数。

本申请的有益效果是:本申请的DDS信号发生器,由于将波形数据表置于DDS处理单元外部,用SDRAM作为波形数据表的存储器,再用存储控制器进行读写控制,使得信号发生器的存储容量增大,占用的资源较小,大大增加N的取值,存储控制器可截取相位值高N位较多,舍弃的低位较少,减少了相位截断误差,使得输出波形的杂散较小,输出波形质量较好。进一步,通过将每个DDS处理单元均外置一个SDRAM模块,多个DDS处理单元并行运行,再经数据处理模块合路输出,可实现更高频率的信号输出;对于低频信号或一些特定频率的信号,可采取一个fifo组处理多个SDRAM的数据或多路DDS的数据,使得DDS信号发生器的形式最简,在较小代价情况下输出波形的杂散较小、质量较好,节约了资源。

附图说明

图1为本申请提供的一种单路DDS信号发生器结构框图;

图2为本申请提供的一种多路DDS信号发生器结构框图;

图3为本申请提供的另一种单路DDS信号发生器结构框图;

图4为本申请提供的另一种多路DDS信号发生器结构框图。

具体实施方式

下面通过具体实施方式结合附图对本申请作进一步详细说明。

请参考图1,本实施例提供了一种DDS信号发生器,该信号发生器为单路信号发生器,包括微处理器1、DDS处理单元2、SDRAM模块3、数据处理模块4和数模转换器5。

微处理器1用于接收用户设置的初始相位和频率,并将频率转换为频率控制字。SDRAM模块3用于存储波形数据表,波形数据表按地址存放生成信号需要的数据信息。DDS处理单元2用于根据初始相位和频率控制字,生成波形点数据。数据处理模块4用于根据查找到的波形数据信息,生成波形点数据。数模转换器5用于对波形点数据进行数模转换,输出模拟信号,即生成的信号。

DDS处理单元2又包括相位累加器22和存储控制器21。相位累加器22用于根据初始相位和频率控制字在每个时钟周期进行相位累计,输出相位值。存储控制器21,用于截取相位累加器22输出的相位值的高N位作为查表地址,并根据地址查找波形数据表,得到待生成信号的波形数据信息,该高N位由SDRAM模块得容量决定,SDRAM模块容量越大,N的取值越大,N的取值越大,存储控制器21截取相位值高N位越多,舍弃的低位越少,可减少相位截断误差,使得输出波形的杂散较小,输出波形质量较好。

存储控制器21包括a对队列组,每个所述队列组包括一一对应的1个地址队列和1个数据队列,在一些实施例中,队列组为先进先出队列(fifo),每个fifo包括一一对应的1个地址fifo和1个数据fifo,将相位累加器21输出的相位的高N位作为地址信息存入地址队列,当存储控制器21接收到SDRAM模块3的可读信号时,存储控制器21根据地址fifo中地址,读取存储于SDRAM模块3中波形数据表该地址的波形数据信息,并将其存入数据队列以供数据处理模块4使用。因此,存储控制器21包括a对地址fifo和数据fifo,地址队列用于传输地址信息,数据队列用于传输数据信息,相应地,SDRAM模块3包括a个SDRAM30。其中,

上述公式中表示向上取整的运算,即Ceiling运算,其中,fclk为DDS处理单元2的时钟频率,f2表示存储控制器4的时钟频率,η表示所述SDRAM模块3的效率。

在一些实施例中,当a=1时,参考图1,存储控制器21包括1个地址队列211和1个数据队列212,即地址fifo211和数据fifo212。相应地,SDRAM模块3仅包括1个SDRAM30,SDRAM30分别与地址fifo211和数据fifo212相连接。

在另一些实施例中,当a为大于1的正整数时,参考图2,存储控制器21包括a个地址队列211和a个数据队列212,即地址fifo-1、…、地址fifo-a和数据fifo-1、…、数据fifo-a。相应地,SDRAM模块3包括a个SDRAM30,,即SDRAM-1、…、SDRAM-a,a个SDRAM30分别与a个地址队列211和a个数据队列212相连接。

对于上述DDS信号发生器,一般情况下,数模转换器5的数据位宽小于或等于SDRAM模块3的数据位宽,即数模转换器5的一个数据对应SDRAM模块3的一个地址。如果数模转换器5的数据位宽大于SDRAM模块3的数据位宽,则需要增大SDRAM模块3的数据位宽,即增加SDRAM的数量,比如,数模转换器5的数据位宽为16bit,SDRAM模块3的数据位宽为8bit,则模拟转换器4的一个数据对应SDRAM模块3的2个地址,将使得模拟转换器4输出的模拟信号非待生成的信号,SDRAM模块3的数据位宽应增加到至少16bit,就是选取位宽大于等于16bit的SDRAM,或者选取2片8bit的SDRAM拼起来使用,以保证数模转换器5的一个数据对应SDRAM模块3的一个地址。

SDRAM30包括DDR SDRAM、DDR2SDRAM和DDR3SDRAM等。对于DDR SDRAM,带宽等于SDRAM的时钟频率f1乘以的SDRAM数据位宽m,即f1*m,例如,f1=200MHz,m=16bit,则一般的SDRAM的带宽为200MHz*16bit。对于DDR3SDRAM,由于双沿时钟的特性,其带宽是DDR SDRAM的2倍,即f1*m*2。

由于SDRAM的工作频率相对较低,不能满足高频率信号的输出,在本一些具体实施例中SDRAM30为DDR3SDRAM30。又由于DDR SDRAM30不能连续读写的特性,因此本实施中,数据fifo不可过小,需能保证数据的连续性。存储控制器21的带宽等于存储控制器21的时钟频率f2乘以存储控制器21的数据位宽n,即f2*n,由于带宽的相等性,可得SDRAM模块3和存储控制器21的带宽关系为f2*n=f1*m*2。

由于器件的读写开销,SDRAM模块3的有效带宽为f1*m*2*η,其中,f1*m*2为SDRAM模块3的带宽,η为SDRAM模块3的效率。η的值由SDRAM芯片决定,随机读写地址时,一般的为0.3~0.8;连续读写一段地址时,效率可达0.8以上。

需指出的是,由于采用SDRAM模块3作为波形数据表的存储器,DDS信号发生器的容量较大,存储控制器21截取的相位值高N位的N值较大,舍去的低位较小,从而减少了相位截断误差,改善了杂散现象,使得输出的波形信号质量较好。

下面根据具体情况,说明DDS信号发生器的波形数据表查找过程。

DDS处理单元2为FPGA、DSP或ARM,DDS处理单元2的时钟频率为fclk,数据位宽为n,则DDS处理单元2的带宽为fclk*n。SDRAM模块3的有效带宽为f1*m*2*η=f2*n*η。

情况一:在一些实施例中,当DDS处理单元2的带宽小于SDRAM模块3时,即fclk<f2*η,参考图1所示的DDS信号发生器,该信号发生器包括1个存储控制器21和1个DDR3SDRAM30,存储控制器21包括1对数据fifo和地址fifo,共1个fifo组和1个DDR3SDRAM30。查找波形数据表的过程为:

将相位累加器21输出相位值的高N位作为地址存入地址fifo211,当存储控制器21接收到DDR3SDRAM30的可读信号时,存储控制器21向DDR3SDRAM30发出一次读命令,根据地址fifo211中地址信息读取该地址的波形数据信息,并将其存入数据fifo212以供数据处理模块4读取。

情况二:在另一些实施例中,当DDS处理单元2的带宽大于SDRAM模块3时,即fclk>f2*η,参考图2所示的DDS信号发生器,该信号发生器包括1个存储控制器21和1个SDRAM模块3,SDRAM模块3包括a个DDR3SDRAM30,1个存储控制器21包括a对数据fifo和地址fifo,共1个fifo组和a个DDR3SDRAM30。查找波形数据表的过程为:

将相位累加器输出相位值的高N位作为地址依次存入地址fifo-1到地址fifo-a,当存储控制器21接收到SDRAM模块3的可读信号时,存储控制器21向SDRAM模块3发出一次读命令,根据地址fifo-1至地址fifo-a中地址信息读取该地址的波形数据信息,并将其依次存入相应的数据fifo,然后数据处理模块4依次读取各个数据fifo的波形数据信息,使得波形顺序正确,保证输出波形正常。

参考图2,本实施例提供了一种多路DDS信号发生器,多路DDS之间为并联,包括微处理器1、w个DDS处理单元2、w个SDRAM模块3、1个数据处理模块4和数模转换器5,其中w代表路数。下面根据具体情况,对本申请提供的多路DDS信号发生器进行分析。

情况三:在一些实施例中,当fclk<f2*η时,每一路DDS结构与图1中相同且a=1。参考图1和图2,多路DDS信号发生器包括w个存储控制器21和w个SDRAM模块3,每个存储控制器21包括1对数据fifo和地址fifo,每个SDRAM模块3包括1个DDR3SDRAM30,共w个fifo组和w个DDR3SDRAM30;多路DDS信号发生器的每一路DDS查找波形数据表的过程与情况一相同。

情况四:在另一些实施例中,当fclk>f2*η时,每一路DDS与图1中相同且a为大于1的正整数。参考图1和图2,多路DDS信号发生器包括w个存储控制器21和w个SDRAM模块3,每个存储控制器21包括a对数据fifo和地址fifo,每个SDRAM模块3包括a个DDR3SDRAM30,共a*w个fifo组和a*w个DDR3SDRAM30;多路DDS信号发生器的每一路DDS查找波形数据表的过程与情况二相同。其中,

a为大于0的正整数

上述公式表示向上取整的运算,即Ceiling运算,其中,fclk为DDS处理单元2的时钟频率,f2表示存储控制器4的时钟频率,η表示所述DDR3SDRAM模块3的效率。

通常DDR3SDRAM30的时钟频率f1是存储控制器21时钟频率f2的d倍,d=2或4,因为f2*n=f1*m*2,则存储控制器21的数据位宽n=m*2*d。也就是说,存储控制器21每读取波形数据表中数据的一次,将读取到2d个数据,而此2d个数据中,第一个数据对应的地址为读命令发送的地址,第二个数据对应的地址为读命令发送的地址+1对应的数据,以此类推。

当待生成的波形信号为低频信号,其频率时(通常小于10kHz),低频信号的波形数据对应的地址的步进量小于1,可以只利用1对fifo组和1个数据选择模块213来对多路波形数据进行处理,提高DDR3SDRAM30的利用率。下面根据具体情况,对本申请提供的DDS信号发生器生成低频信号的情况进行分析。

情况五:在一些实施例中,对于低频信号,若fclk<f2*η,参考图1,其中,a=1,信号发生器包括1个存储控制器21和1个DDR3SDRAM30,1个存储控制器21包括1对数据fifo211和地址fifo212,共1个fifo组和1个DDR3SDRAM30,查找波形数据表的过程与情况一相同。

情况六:在另一些实施例中,对于低频信号,当fclk>f2*η时,与情况二不同,可以不采用图1的DDS信号发生器。参考图3,本实施例提供了另一种单路DDS信号发生器,包括1个存储控制器21和1个SDRAM模块3,1个存储控制器21包括1个数据fifo211、1个地址fifo212以及数据选择模块213;SDRAM模块3包括a个DDR3SDRAM30,共1个fifo组和a个DDR3SDRAM30,此处的a个DDR3SDRAM30用于数据位宽的扩展,a个16bit的DDR3SDRAM30可看成一个a*16bit的DDR3SDRAM3来用。查找波形数据表的过程与情况二不相同,具体地,首先设定一个初始相位,存储控制器21从初始相位对应的地址开始从波形数据表中读取数据存入数据fifo211;然后对该地址做如下运算:该地址+2*d*a,继续读取数据,如此循环,把存储器里的数据循环读出到数据fifo211,直至数据fifo211读满;接下来,数据选择模块213根据地址fifo211里的地址,有选择性的从数据fifo212里读取数据发送到数据处理模块4,具体地,当从地址fifo212读到的地址等于上一个地址,则重复输出上一个波形数据到数据处理模块4;当地址比上一个地址大1时,则从数据fifo211里读出1个数据,并将该发送到数据处理模块4;当地址比上一个地址大2时,则从数据fifo211里读出2个数据,并将第二个数据发送到数据处理模块4,以此类推。此时,待生成波形信号频率fout的上限满足:

即fout*2N<f2*2*η*d*a,N为所截取的高N位中的N。

由此可见,对于单路信号发生器,若待生成的波形信号为低频信号,当fclk>f2*η时,DDS信号发生器的结构可在一定程度上简化,不需要采用图1所示的结构,而采用图3所示的结构,使得存储器控制器21包括一对fifo组和aDDR3SDRAM30个,提高DDR3SDRAM30的利用率,从而节省DDR3SDRAM30的数量。

本实施例通过将波形数据表置于DDR3SDRAM30中,使得信号发生器的存储容量增大,N的取值大大增加,并在实现输出波形的杂散较小、质量较好的同时简化DDS信号发生器结构,使得实现代价较小,节约资源。

对于多路信号发生器,当待生成的波形信号为低频信号,其频率时(通常小于10kHz),w为路数,低频信号的波形数据对应的地址的步进量小于1。下面根据具体情况,对本申请提供的DDS信号发生器生成多路低频信号的情况进行分析。

情况七:在一些实施例中,对于低频信号,当fclk<f2*η时,可不采用图2的多路DDS信号发生器。参考图4,本实施例提供了另一种多路DDS信号发生器,包括1个存储控制器21和a个DDR3SDRAM30,此处a不限定,可以为1,1个存储控制器21包括1对数据fifo和地址fifo,共1个fifo组和1个DDR3SDRAM30;查找波形数据表的过程为:先将多路相位累加器输出的相位值的高N位依次插入到地址fifo211,再按情况六的方法查找波形数据表。此时,待生成波形信号频率fout的上限满足:fout*2N<f2*2*η*d*a。

情况八:在另一些实施例中,对于低频信号,当fclk>f2*η时,与情况四不同,每一路DDS可以不采用图1的DDS信号发生器。参考图2和图3,多路DDS信号发生器包括w路,包括w个存储控制器21和w个SDRAM模块3,每一路DDS与图3中相同,每个存储控制器21包括1对数据fifo和地址fifo,每个SDRAM模块3包括a个DDR3SDRAM30,共w个fifo组和a*w个DDR3SDRAM30;多路DDS的每一路DDS查找波形数据表的过程与情况六相同。此时,待生成波形信号频率fout的上限满足:fout*2N<f2*2*η*d*a*w。若fout*2N<f2*2*η*d*a,还可采用如图4的多路DDS信号发生器,其中a最小可取1,其查找波形数据表的过程与情况七相同。

由此可见,若待生成的波形信号为低频信号,多路DDS信号发生器可不采用图2的多路结构,而采用图4所示的多路结构,另外采用图2的多路结构,当fclk>f2*η时,多路DDS信号发生器的每一路DDS可不采用图1所示的结构,而采用图3所示的结构。本实施例通过将波形数据表置于DDR3SDRAM30中,使得信号发生器的存储容量增大,N的取值大大增加,并在实现输出波形的杂散较小、质量较好的同时简化DDS信号发生器结构,使得实现代价较小,节约资源。

在一些实施例中,对于一些特定频率的信号,若频率满足其中,h表示简化成不可约分形式后的分子,X表示SDRAM模块3的容量,Y表示数模转换器5的分辨率,其中,fclk*w不可过大,满足fclk*w<f2*2*η*d*a,分子h的值便是波形数据循环一次需要的个数。例如,fout=3MHz,fclk=100MHz,w=2,则h=200,即只需要200个波形点即可完整输出该波形。若要输出这些特定频率的信号,DDS信号发生器可采用最简的结构,参考图1,其中,a=1,该信号发生器包括1个存储控制器21和1个DDR3SDRAM30,1个存储控制器21包括1对数据fifo和地址fifo。查找波形数据表的过程为:先选取一个较大的N,制作一个较大的波形数据表,然后根据输入的频率,模仿DDS处理单元2的运行,计算出要输出的全部数据点,然后存于DDR3SDRAM30中,DDS处理单元2循环读取数据点并输出即可。

综上所述,本申请的DDS信号发生器,由于将波形数据表置于DDS处理单元外部,用SDRAM作为波形数据表的存储器,再用存储控制器进行读写控制,使得信号发生器的存储容量增大,占用的资源较小,大大增加N的取值,存储控制器可截取相位值高N位较多,舍弃的低位较少,减少了相位截断误差,使得输出波形的杂散较小,输出波形质量较好。通过将每个DDS处理单元均外置一个SDRAM模块,多个DDS处理单元并行运行,再经数据处理模块合路输出,可实现更高频率的信号输出;对于低频信号或一些特定频率的信号,可采取一个fifo组处理多个SDRAM的数据或多路DDS的数据,使得DDS信号发生器的形式最简,在较小代价情况下输出波形的杂散较小、质量较好,节约了资源

以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请发明构思的前提下,还可以做出若干简单推演或替换。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1