一种信号发生器及其波表重组方法

文档序号:7518323阅读:412来源:国知局
专利名称:一种信号发生器及其波表重组方法
技术领域
本发明是关于信号处理技术,特别是关于信号发生器技术,具体的将是关于一种直接数字合成(Direct Digital Synthesis DDS)方法。
背景技术
目前市场上的存储器种类非常多,主要有易失性的RAM和DRAM、非易失性的 EEPR0M、R0M、EPR0M、N0R、NAND闪存、铁电存储器(FeRAM)和新兴的磁性存储器(MRAM)。应用信号发生器时,要选择合适的存储器。SRAM具有丰富的访问接口,控制简单、访问速度也很快;但是它的一个基本单元通常由4 6个晶体管组成,成本很高,尤其在信号源要求大容量的任意波时,成本尤其难以接受。某些基于现场可编程门阵列FPGA的信号源产品使用内嵌的存储器单元作为波形内存,如基于SRAM工艺的现场可编程门阵列FPGA内部存储单元,但是由于容量有限,也不适合大容量任意波的需求。Flash具有非易失性,但其操作方式,以及较低的擦除、写入、读取效率显然不适合对输出频率要求越来越高的信号源产品。DRAM的一个存储单元大约需要一个晶体管和一个电容,由于实现工艺的不同,结构较SRAM要简单许多,无论集成度、生成成本以及体积、容量,DRAM都比SRAM具有优势。但是DRAM需要不断的刷新,才能保存数据,并且系统接口复杂,读写速度不如SRAM。DRAM+FPGA能实现高采样率、大波表的任意波输出,并能通过修改采样时钟的频率以及任意波波表的长度来修改最终输出波形的频率,成为很多任意波发生器(AWG)的首选解决方案。图1为现有技术中的信号发生器的结构示意图,信号发生器包括主板101、现场可编程门阵列FPGA106、数模转换芯片(DAC) 107、模拟电路108及外部波形存储器109。主板包括CPU102、CPU外围设备、IXD屏103、键盘104及时钟源105等。现场可编程门阵列 FPGA106包括CPU接口模块110,时钟模块111,外部存储控制器112,内部信号源113,地址累加器114,数据选择模块115,先入先出(First Input First Output FIFO)模块116,数据处理模块117及外设控制模块118。发明人在实现本发明过程中,发现现有技术中至少存在下面问题由于DRAM的工作特点,它的总线利用率不可能达到100%,以一颗200M工作频率、 16bits数据位宽的DDR2SDRAM为例,在最理想的逐点读取的情况下,总线利用率约为80%, 吞吐量为640MByte/S ;如果是跳点读取,总线利用率最低会急剧下降到10%。上述信号发生器只有逐点读取DRAM,才能满足高采样率输出的要求,在波表长度较大的情况下,无法输出较高频率的波形。举例说来,上述信号发生器产品,采样率可调范围IOM 1. 25GSa/S,波形长度128 8MPts,输出频率只有9. 76MHz 1. 25Hz的范围
发明内容
本发明提供一种信号发生器及其波表重组方法,以提高大波表任意波的输出频率范围和频率精度。在一实施例中,本发明提供一种信号发生器,包括CPU、现场可编程门阵列FPGA、 外部波形存储器、数模转换芯片及模拟电路,所述的现场可编程门阵列FPGA通过CPU接口连接所述CPU,所述外部波形存储器与所述现场可编程门阵列FPGA中的外部存储控制器连接,所述的外部波形存储器包含用户波表存储模块及缓冲波表存储模块,所述的用户波表存储模块用于存储用户波表;所述现场可编程门阵列FPGA包括工作模式判断模块,位于所述CPU接口中,用于判断任意波的工作模式是否为抽点模式;波表重组模块,与所述CPU 接口连接,控制所述外部存储控制器从所述用户波表存储模块中抽取波表,将抽取的波表存储到所述缓冲波表存储模块,并输出存储的波表。在另一实施例中,本发明提供一种一种波表重组方法,利用权利要求1所述的信号发生器,其特征在于,所述的方法包括判断任意波的工作模式是否为抽点模式;如果是,从用户波表存储模块中抽取波表;将抽取的波表存储到缓冲波表存储模块;输出所述缓冲波表存储模块中存储的波表。本发明的有益技术效果本发明提高了大波表任意波的输出频率范围和频率精度。本发明实现频率改变时只需要计算抽点频率字、抽点周期数等参数,节省了 CPU花费的时间。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中图1为现有技术中信号发生器的结构示意图;图2是基于DDS技术的任意函数发生器(Are)的简化结构图;图3为本发明实施例信号发生器的结构示意图;图4为本发明实施例波表重组方法流程图;图5为本发明实施例信号发生器的工作流程图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。信号发生器作为一种信号源,因其能够产生不同频率、不同幅度的规则或者不规则的波形,在电子系统的测量、校验及维护中得到了广泛的应用。随着现在电子芯片集成化的发展,仪器设备的结构越来越复杂,工作频率越来越高,对信号发生器的输出频率和波形形状提出了更高的要求。直接数字合成(Direct Digital Synthesis,以下简称DDS)是目前频率合成中的一种主要技术,具有低成本、高分辨率、快速转换时间、可以产生任意波形以及切换时输出波形相位连续等特点,在信号发生器设计中被广泛采用。图2是一个典型的基于DDS技术的任意函数发生器(Are)的简化结构图。在固定频率(fc)的固定时钟101的控制下,N位的相位累加器106累加频率控制字K105得到相码,相码经过相位寄存器107寻址波形存储器102进行相码-幅码变换输出不同的幅度编码,再经过数模变换器(DAC) 103得到相应的阶梯波,最后经过包括低通波器在内的模拟电路104处理后,即得到由频率控制字K决定的连续变化的输出波形。输出信号的频率为 K*fc/2N,输出信号的频率分辨率为fC//2N。其中N是相位累加器的位数,假设t时刻其累加值为Kt,则在下一采样时钟信号fc的上升沿,其值增加K,即经过一个时钟周期,地址信号增加K,所以Kw = Kt+K,gKw > 2N则溢出,余数将保留并参加下一次累加。由于一般情况下为提高波形精度,N值会取的较大,所以只取累加结果的高A位(A< N),作为波形内存的地址,对其进行寻址。图3为本发明实施例信号发生器的结构示意图;如图3所示,本发明实施例的信号发生器包括主板101、现场可编程门阵列FPGA106、数模转换芯片(DAC) 107、模拟电路108 及外部波形存储器301。外部波形存储器301容量较大,用于存储较大长度的大波表;信号发生器用的2G bits的DDR2 SDRAM。外部波形存储器301包括用户波表存储模块301及缓冲波表存储模块302,所述的用户波表存储模块301用于存储CPU下发的波表,该波表可以是CPU从非易失性存储器中读出的波表、上位机下发的波表。主板101包括核心部分CPU102、CPU外围设备(图中未示出包括用于系统控制的数字信号处理器(DSP),用于辅助DSP工作的存储器Flash和SDRAM,用于连接上位机或者网络的LAN、GPIB、USB等总线接口模块)、!XD屏103、键盘104及时钟源105等,时钟源105 为整个系统提供高精度的频率可调的时钟,不过频率可调范围很小,且只有在仪器校准时才修改频率。现场可编程门阵列FPGA106通过CPU接口连接主板101的CPU。现场可编程门阵列FPGA106是波形处理的核心装置,用于将CPU下发的波表数据经过处理后送给DAC,现场可编程门阵列FPGA106包括CPU接口模块110,时钟模块 111,外部存储控制器112,内部信号源113,地址累加器114,数据选择模块115,先入先出 (Firstlnput First Output FIFO)模块116,数据处理模块117及外设控制模块118。外部波形存储器301与所述现场可编程门阵列FPGA中的外部存储控制器112连接。110CPU接口模块可以实现现场可编程门阵列FPGA与CPU之间的通信,以便CPU控制现场可编程门阵列FPGA内部的其它模块;简单起见,在图3中,除了时钟模块111标明了时钟信号的来源,现场可编程门阵列FPGA内部其它模块的控制信号均来自CPU接口模块, 图中没有标出。CPU接口模块110中包括工作模式判断模块(图中未示出),工作模式判断模块用于判断任意波的工作模式是否为抽点模式。现场可编程门阵列FPGA106还包括波表重组模块304,与所述CPU接口 110连接, 当工作模式判断模块判断出任意波的工作模式是否为抽点模式时,波表重组模块304控制所述外部存储控制器从所述用户波表存储模块中抽取波表,将抽取的波表存储到所述缓冲波表存储模块,并输出所述缓冲波表存储模块中存储的波表。如果任意波的工作模式不是抽点模式,而是播放模式,就不需要利用波表重组模块,数据选择模块115直接选择用户波表存储模块302中的波表数据写人到FIFO模块116。
时钟模块111利用现场可编程门阵列FPGA内嵌的频率合成软核对时钟源提供的 IOMHz时钟作频率合成,产生现场可编程门阵列FPGA内部其它模块以及外部波形存储器和 DAC的工作时钟。外部存储控制器112,实现现场可编程门阵列FPGA与外部波形存储器的连接与控制,按照CPU配置的参数(包括波表起始地址、波表长度等)将CPU下发的波表写入外部波形存储器301的用户波表存储模块302中;在要求输出波形时,将外部波形存储器112的波表数据读出送给数据选择模块。内部信号源113除了存储于外部波形存储器301的任意波,还可以输出标准规则的基本波形如正弦波、锯齿波等,这些波表存储在现场可编程门阵列FPGA内嵌的存储单元构成的内部波形存储器(图中未示)中。内部源产生的基本波表数据也送给数据选择单元。地址累加器114根据CPU设置的频率控制字,累加地址,将累加结果分别送给外部存储控制器301和内部信号源里的内部波形存储器;数据选择模块115根据CPU的参数设置,从用户波表存储模块301及缓冲波表存储模块302的两路波表数据中选出一路作为写数据写入FIFO模块。FIFO模块116是指具有先入先出特点的存储器;为了便于控制,FIFO模块116写入侧的时钟和读出侧的时钟由时钟模块分别产生;FIFO模块116根据FIFO的存储情况送出一个反馈信号给地址累加器114,控制地址累加器114进行正常累加还是暂停累加,正常累加所产生的相位地址对应的波表数据会写入FIFO,暂停累加时也就暂停写入FIFO。数据处理模块117对从FIFO模块116中读出的数据作二次处理,如并串转换、输出关闭时输出空闲电平等;处理后的数据送给外部数模转换芯片107。外设控制模块118按照CPU设置的参数控制外部模拟器件,例如放大电路的增益系数、偏置电压、滤波器的选择等等。数模转换芯片107将现场可编程门阵列FPGA送出的数字格式的波形数据转换为模拟量,输出给模拟电路108输出;模拟电路108处理DAC输出的模拟信号,包括低通滤波、 幅度衰减、放大、偏置等。CPU可以向波表重组模块304下发的配置参数,所述配置参数包括抽点频率字及抽点周期数。波表重组模块304根据CPU下发的配置参数生成波表重组指令,通过波表重组指令控制所述外部存储控制器从所述用户波表存储模块中抽取波表,将抽取的波表存储到所述缓冲波表存储模块,并输出存储的波表。所述波表重组指令包括波表抽取指令,波表存储指令及波表输出指令;波表抽取指令用于控制所述外部存储控制器从所述用户波表存储模块中抽取波表;波表存储指令用于控制所述外部存储控制器将抽取的波表存储到所述缓冲波表存储模块;波表输出指令用于控制所述外部存储控制器输出所述缓冲波表存储模块中存储的波表。进一步地,波表输出指令包括输出判断命令,用于判断抽取的波表是否达到抽点周期数;波表输出命令,当抽取的波表达到抽点周期数时,用于控制所述外部存储控制器输出所述缓冲波表存储模块中存储的波表。如图4所示,本发明提供一种波表重组方法,应用于图3所示的信号发生器,所述的方法包括
步骤S401 工作模式判断模块判断任意波的工作模式是否为抽点模式;步骤S402 如果是,从用户波表存储模块中抽取波表;步骤S403 将抽取的波表存储到缓冲波表存储模块;步骤S404 输出所述缓冲波表存储模块中存储的波表。进一步地,所述方法还包括根据CPU下发的包括抽点频率字及抽点周期数配置参数生成波表重组指令。所述波表重组指令包括波表抽取指令,用于控制所述外部存储控制器从所述用户波表存储模块中抽取波表;波表存储指令,用于控制所述外部存储控制器将抽取的波表存储到所述缓冲波表存储模块;波表输出指令,用于控制所述外部存储控制器输出存储的波表。进一步地,波表输出指令包括输出判断命令,用于判断抽取的波表是否达到抽点周期数;波表输出命令,当抽取的波表达到抽点周期数时,用于控制所述外部存储控制器输出存储的波表。图5为本发明实施例信号发生器的工作流程图,包括如下步骤步骤S501 用户设置参数,包括用户波表数据和波表长度的选择,输出波表频率的设定及工作模式的选择(选择抽点模式)。步骤S502 =CPU将各个参数配置给现场可编程门阵列FPGA,参数配置包括波表数据、波表长度、工作模式的设定(选择抽点模式),输出波表频率的设定等。。步骤S503 判读波形是否为任意波,如果是,进入步骤S504。如果不是任意波,不属于本发明要解决的问题,不再赘述。步骤S504 将CPU下发的波表存储到外部波形存储器301的用户波表存储模块 302中。CPU下发的波表可以是从非易失性存储器中读出的波表、或者上位机下发的波表。步骤S505 判断波表是否存储完成,如果存储完成,进入步骤S506(DDS启动),否则进行继续执行步骤S504。步骤S506 工作模式判断模块判断工作模式是否为抽点模式,如果是,进行步骤 S507 ;否则,工作模式为播放模式,进行步骤S510。步骤S507 从所述用户波表存储模块中抽取波表。步骤S508 根据波表存储指令将抽取的波表存储到所述缓冲波表存储模块。步骤S509 根据波表输出指令输出所述缓冲波表存储模块中存储的波表。步骤S507至步骤S509为波表重组步骤,为本发明的关键部分。CPU会向CPU下发的包括抽点频率字及抽点周期数的配置参数,生成波表重组指令,波表重组指令包括波表抽取指令,波表存储指令及波表输出指令,波表重组模块304将波表抽取指令,波表存储指令及波表输出指令发送给外部存储控制器112。外部存储控制器112首先根据波表抽取指令从所述用户波表存储模块中抽取波表,按照CPU设置的抽点频率字从用户波表中抽点读取一段样点;为了降低现场可编程门阵列FPGA内部资源的占用,信号发生器里每次一般最多读出96个样点;然后,外部存储控制器112根据波表存储指令将抽取的波表存储到所述缓冲波表存储模块;将该段样点按照DDR2SDRAM要求的格式逐个写入到缓冲波表区。最后, 外部存储控制器112根据波表输出指令输出所述缓冲波表存储模块中存储的波表。波表输出指令包括输出判断命令,用于判断抽取的波表是否达到抽点周期数;波表输出命令,当抽取的波表达到抽点周期数时,用于输出所述缓冲波表存储模块中存储的波表。在抽点过程中判断是否满足CPU设置的抽点周期数,如果已经达到周期数,说明波表重组完成;如果未达到周期数,则继续抽点。步骤S510 判读FIFO是否可写入,如果是,进入步骤S511,否则进入步骤S512。 DDS地址累加器逐点累加;在累加过程中,判断FIFO的“水位”状态,一旦FIFO不能继续写入,就暂停累加,进入步骤S512;等FIFO可以继续写入时,再继续累加。步骤S511 累加器逐点累加DDS地址。步骤S512 读取缓冲波表存储模块303中的波表。根据DDS累加后的地址,工作模式为播放模式时从整个外部波形存储器112的用户波表存储模块302逐点读取波形,工作模式为抽点模式时从外部波形存储器的缓冲波表存储模块303逐点读取波形。步骤S513 将读取的波形写入FIFO。步骤S514 读取FIFO中的波形。步骤S515 波形经过数据处理后输出给DAC,转化为模拟量,然后进入模拟电路进行处理。本发明主要应用于任意波抽点方式,外部波表存储器有USMPts的空间,划分为用户波表区和缓冲波表区,信号发生器里分别为固定的16MPts和112MPts。当然也可以根据用户波表的实际长度灵活设置。对于给定长度(L)的原始波表,CPU根据用户要求的输出频率0 ),计算出如下参数送给现场可编程门阵列FPGA 现场可编程门阵列FPGA以抽点频率字K对原始波表抽点出P个周期的样点,存储到缓冲波表区,然后以采样时钟Fc逐点输出。这些参数的关系如公式1 Fo = P*Fc/INT(P*L/K) (1)其中INT表示取整;对原始波表抽点后每个周期的样点数是L/K ;总的样点数是 P*L/K,这个值很可能不是整数,但显然写入到缓冲波表区的样点数只会是整数。公式1中,Fc是采样时钟,在信号发生器里的频率是固定的IGHz ;抽点频率字位宽40b,抽点周期数位宽Mb,由上面的公式1可以算出输出频率的精度是5位,可调范围 IuHz 50MHz。实际上最高频率还可以更高,但限于滤波器的性能,所以将任意波的输出频率限制到合适的水平。本发明实现频率改变时的频率切换时间主要是CPU计算相关参数的时间以及现场可编程门阵列FPGA重组波表所需要的时间。因为只需要计算抽点频率字、抽点周期数等参数,CPU花费时间很短,信号发生器目前不超过50mS ;现场可编程门阵列FPGA重组时间取决于重组后波表的样点数,每个样点数平均耗时50nS。总的说来,本发明的频率切换时间优于传统的任意波处理方式,它们通常是采用修改任意波长度,由软件重新组织任意波再写入到波形内存里。本发明的有益技术效果本发明提高了大波表任意波的输出频率范围和频率精度。本发明实现频率改变时只需要计算抽点频率字、抽点周期数等参数,节省了 CPU花费的时间。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种信号发生器,包括CPU、现场可编程门阵列FPGA、外部波形存储器、数模转换芯片及模拟电路,所述的现场可编程门阵列FPGA通过CPU接口连接所述CPU,所述外部波形存储器与所述现场可编程门阵列FPGA中的外部存储控制器连接,其特征在于所述的外部波形存储器包含用户波表存储模块及缓冲波表存储模块,所述的用户波表存储模块用于存储波表;所述现场可编程门阵列FPGA包括工作模式判断模块,设置于所述CPU接口中,用于判断任意波的工作模式是否为抽点模式;波表重组模块,与所述CPU接口连接,控制所述外部存储控制器从所述用户波表存储模块中抽取波表,将抽取的波表存储到所述缓冲波表存储模块,并输出所述缓冲波表存储模块中存储的波表。
2.如权利要求1所述的信号发生器,其特征在于所述波表重组模块根据CPU下发的配置参数生成波表重组指令,通过波表重组指令控制所述外部存储控制器从所述用户波表存储模块中抽取波表,将抽取的波表存储到所述缓冲波表存储模块,并输出所述缓冲波表存储模块中存储的波表。
3.如权利要求2所述的信号发生器,其特征在于所述配置参数包括抽点频率字及抽点周期数。
4.如权利要求3所述的信号发生器,其特征在于所述波表重组指令包括波表抽取指令,用于控制所述外部存储控制器从所述用户波表存储模块中抽取波表; 波表存储指令,用于控制所述外部存储控制器将抽取的波表存储到所述缓冲波表存储模块;波表输出指令,用于控制所述外部存储控制器输出所述缓冲波表存储模块中存储的波表。
5.如权利要求4所述的信号发生器,其特征在于波表输出指令包括 输出判断命令,用于判断抽取的波表是否达到抽点周期数;波表输出命令,当抽取的波表达到抽点周期数时,用于控制所述外部存储控制器输出所述缓冲波表存储模块中存储的波表。
6.一种应用于权利要求1的信号发生器的波表重组方法,其特征在于,所述的方法包括判断任意波的工作模式是否为抽点模式; 如果是,从用户波表存储模块中抽取波表; 将抽取的波表存储到缓冲波表存储模块; 输出所述缓冲波表存储模块中存储的波表。
7.如权利要求6所述的方法,其特征在于所述方法还包括根据CPU下发的配置参数生成波表重组指令。
8.如权利要求7所述的方法,其特征在于所述配置参数包括抽点频率字及抽点周期数。
9.如权利要求8所述的方法,其特征在于所述波表重组指令包括波表抽取指令,用于控制所述外部存储控制器从所述用户波表存储模块中抽取波表;波表存储指令,用于控制所述外部存储控制器将抽取的波表存储到所述缓冲波表存储模块;波表输出指令,用于控制所述外部存储控制器输出存储的波表。
10.如权利要求9所述的方法,其特征在于波表输出指令包括 输出判断命令,用于判断抽取的波表是否达到抽点周期数;波表输出命令,当抽取的波表达到抽点周期数时,用于控制所述外部存储控制器输出存储的波表。
全文摘要
一种信号发生器及其波表重组方法,该信号发生器包括CPU、现场可编程门阵列FPGA、外部波形存储器、数模转换芯片及模拟电路,该现场可编程门阵列FPGA通过CPU接口连接该CPU,该外部波形存储器与该现场可编程门阵列FPGA中的外部存储控制器连接,该外部波形存储器包含用户波表存储模块及缓冲波表存储模块,该用户波表存储模块用于存储用户波表;该现场可编程门阵列FPGA包括工作模式判断模块,位于该CPU接口中,用于判断任意波的工作模式是否为抽点模式;波表重组模块,与该CPU接口连接,控制该外部存储控制器从该用户波表存储模块中抽取波表,将抽取的波表存储到该缓冲波表存储模块,并输出存储的波表。本发明提高了大波表任意波的输出频率范围和频率精度。
文档编号H03K3/02GK102468829SQ20101053113
公开日2012年5月23日 申请日期2010年11月3日 优先权日2010年11月3日
发明者李维森, 王悦, 王铁军 申请人:北京普源精电科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1