基于FPGA的DDS信号发生器的设计

时间:2020-08-14 13:09:38 硕士毕业论文 我要投稿

基于FPGA的DDS信号发生器的设计

引言
  
  直接数字频率合成(Direct Digital Frequency Synthesis)是一种以奈奎斯特采样定理及数字信号处理为基础,从相位概念出发的全数字频率合成方法。实现DDS 功能可用专用的DDS芯片,也可利用高性能的现场可编程门阵列(Field Programmable Gate Array)。与前者相比,后者具有设计简单,开发灵活,应用成本低等优点。本文以FPGA 为基础,设计DDS 信号发生器。设计目标:输出频率范围1Hz~1MHz,频率可调,输出频率精度大于0.1%,输出频率峰峰值为5V。
  
  1 DDS 基本原理
  
  由奈奎斯特采样定理可知,当采样频率大于被采样信号最高频率的2 倍时,通过采样得到的数字信号可完整的还原被采样信号。基于奈奎斯特采样定理,系统首先对需要产生的信号进行采样,量化后存入数据存储器。在参考时钟作用下,相位累加器按照预先设定的频率控制器进行地址累加,此地址即为信号在数据表中对应地址。根据地址从数据表中依次读取数据,产生数字化的信号,此信号通过D/A 转换和低通滤波等处理即可变成所需模拟信号[3]。  
  下面以正弦波信号的产生为例说明DDS 的工作原理。假设某一频率的正弦信号可表示为
  v(t) = Asin(wt +θ )
  式中,A 为正弦波幅值,w 为正弦信号角频率,θ 为初始相位。由于A 和θ 不变,则令A=1,θ =0,得到归一化表达式
  v(t) = Asin(wt)
  对于连续的正弦波信号,其相位与时间呈线性关系[2]。由这一关系可知,在一定频率的时钟信号作用下,通过一个线性的相位累加器对相应的波形存储器扫描,即可周期性地读取波形存储器中的数据,从而合成相应的正弦波信号。如果提高时钟信号频率,则数据的扫描频率加快,数据读取速度加快,读取一个正弦波数据的时间就会缩短,输出信号的频率增大,反之亦然[5]。
  
  2 DDS 的实现方案
  
  DDS 系统主要由FPGA 核心电路、D/A 转换电路、低通滤波电路、键盘电路和显示电路组成。系统具体实现框所示。
  系统分别以Altera Cyclone II 系列FPGA EP2C8 和VerilogHDL语言为硬件及软件平台,在此基础上构建DDS 核以及相关模块。FPGA 核心电路产生的阶梯数字信号通过D/A 转换电路转换为对应的模拟信号。综合考虑,采用TLC5620 为D/A 转换芯片。该芯片为8 位串行输入D/A 转换器,选择其参考电压为5V,输出电压控制位选择为1 倍输出。由于转换后的数字信号是阶梯形的模拟信号,在D/A 转化后利用低通滤波对信号进行平滑处理。低通滤波电路以OP07 为核心,设计为压控压源的二阶低通滤波。为方便用户操作,在系统中引入键盘电路和数码管显示电路,用户可自由调节输出频率,并通过数码管观察实时输出频率。
  
  3 设计优化
  
  3.1 相位累加器的优化
  相位累加器是决定DDS 性能的关键部分。在系统的参考时钟一定时,相位累加器的位数决定了输出频率的分辨率[7]。但是,相位累加器的位数越大,整个系统的速度就越慢。为此,在相位累加器中引入流水线技术。即把一个时钟周期内要完成的逻辑操作分成几步小的操作,并在各个操作中插入时钟周期,以此提高数据的吞吐速率。相位累加器优化结构图如所示。
  图中32 位的相位累加器采用4 级流水线结构。每条流水线完成8 位数据的运算,流水线之间进行级联。流水线最后的数据通过一级寄存器输出。输出寄存器同时提取相位累加器的高8 位作为波形存储器的查找地址,与波形存储器相连。实验表明,运用流水线技术可以成倍提高相位累加器的运算速度,但是这也大大消耗了FPGA 的逻辑资源。
  
  3.2 波形存储器的优化
  波形存储器中存储着完整的波形采样数据。如果正弦波采样深度为N 位,那么M 位相位累加器就决定了波形存储器所需存储空间为N*2M 位。当M=32,N=8 时,则需要4096M的存储空间,可见,必须对波形存储器进行优化,提高其利用率。在相位累加器的优化中,已经利用最后一级寄存器对输出地址进行了截位处理,但这还远远不够。因此,还必须利用正弦波的对称性对波形存储器进行进一步优化[4]。其优化结构图如所示。