1、 本科 毕业 论文 (设计 ) (二零 届) 基于 FPGA 的 DDS 正弦波发生器设计 所在学院 专业班级 电气工程及其自动化 学生姓名 学号 指导教师 职称 完成日期 年 月 - 1 - 摘 要 现代 测试领域 中,经常需要信号发生器提供多种多样的测试信号去检验实际电路中存在的设计问题 ,目前以 FPGA 为主控的 DDS 正弦波信号发生器 正在得到广泛的应用。该 系统 主要 由健盘电路、 LED 显示、 FPGA 单元、 D A 转化和低通滤波器构成 , 以 FPGA 为主控制芯片,结合 DDS 直接数字频率合成技术产生正弦波信号, 同时 产生 稳定的 正弦波 。该设计只要通过改变 F
2、PGA 中 ROM 内的数据和控制参数, DDS 就可以产生任意调制波形,且分辨率高。该正弦波发生器具有相当大的灵活性。最后利用 VHDL 语言进行编译并通过 Quartus软件进行仿真,经过实际仿真表明,正弦波信号发生器工作正常,结果基本符合设计要求。 关键词: FPGA; DDS; 正弦波信号发生器 ; Quartus II - 2 - Abstract Signal generator is often needed to provide diverse test signal for testing the design problem of circuit in the modern
3、 testing field. At present, a testing system named DDS sine wave signal generator which is based on the FPGA is being used broadly. This system is composed of keyboard circuit, LED display, FPGA module, D/A conversion and low Low-pass filter. The FPGA works as the control chip combines with the dire
4、ct digital frequency synthesis produces stable sine wave and sine wave signal simultaneously. This design can help the DDS emerging any kind of wave form with a high resolution ratio only through changing the ROM data and controls parameter of FPGA and the sign-wave generator is extremely flexible.
5、At last, you can use the VHDL for compiling and Quartus II for emulating. Through this process, if the sign-wave generator operates smoothly, this system is proved to be complied with the design demand basically. Keywords:FPGA; DDS; Sine wave signal generator; Quartus II - 3 - 目录 1 引言 .1 2 实现方案的确定 .
6、2 2.1 DDS的实现原理 .2 2.2 DDS芯片实现信号发生器 .4 2.3 利用微处理器实现 DDS信号发生器 .4 2.4 利用 FPGA实现 DDS信号发生器 .5 3 功能模块设计与实现 .8 3.1 数字 /模拟转换器模块 .8 3.2 波形数据表模块 .10 3.3 相位累加器模 块 . 11 3.4 显示电路模块 .12 3.5 键盘电路模块 .14 3.6 控制时钟电路模块 .16 4 综合调试和结论 .18 4.1 顶层电路 .18 4.2 过程调试 .19 5 展望 .23 致谢 .23 参考文献 .24 附录 1 VHDL程序清单 .25 - 1 - 1 引言 这些
7、年来随着我国对超大规模集成电路的重视,也发表了许多关于 DDS技术的论文,逐步走上了发展的道路,但是在这之中主要是利用 DDS技术去实现功能的改进和对性能指标的提高,几乎是没有关于 DDS芯片的设计和研发,因此我国在 DDS的研究上与国际水平还是有很大的差距。但是近几年来我国芯片产业的快速发展,对 DDS的研究已经有了突破性的进展从而推动数字信号处理器的飞速发展,使微处理器具有先进的数字信号处理技术,能实现多种功能,对正弦波发生器而言,随着 DDS技术的诞生,使波形发生器技术得到进一步的飞 跃。相对与其他频率合成技术, DDS技术产生的正弦波具有 全数字化、输出频率精度高、波形失真小、频率稳定
8、度高、分辨率高、输出相位连续可调、控制灵活方便、可产生宽带正交信号及其他多种调制信号以及等特点 1。 现场可编程门阵列( FPGA)作为一种新型的可编程逻辑器件,在短短二十多年的时间就成为了数字系统的核心器件,在诸多领域得到了广泛的应用,如计算机硬件、航空航天等。随着工艺技术的进步和设计理念的创新,推动着集成电路产业不断向前发展。现场可编程门阵列 FPGA是大规模可编程器件,它具有速度高、规模大、可编程以及有强 大的 EDA软件设计平台的支持等特性。同时, FPGA厂商正努力将 CPU/DSP、存储器、模拟电路与可编程逻辑器件集成在一起,使 FPGA向着片上硬件可编程系统方向发展的主流。 本次
9、研究课题是基于 FPGA的 DDS正弦波发生器设计,采用 FPGA设计实现 DDS电路的可行性和可靠性,也更为灵活,可以根据不同的需要对控制方式和接口进行相应的修改,要想使 DDS电路产生正弦波形,只要对 FPGA中 ROM表的数据进行修改。另外 FPGA设计还具有相对较宽的带宽、频率转换时间较短、相位连续变化、频率分辨率高等优点。同时 FPGA芯片还 可以对体统进行现场修改和调试,性能也使用要求,所以将 DDS设计嵌入到 FPGA片所构成的系统中,将使系统具有很高的性价比 2。 - 2 - 2 实现方案的确定 目前实现 DDS的主要有三种实现方案:采用 DDS信号发生器芯片实现 DDS信号发
10、生器、利用微处理器实现 DDS信号发生器和利用 FPGA实现 DDS信号发生器。 2.1 DDS 的实现原理 一个基本的 DDS系统由数控振荡器 (NCO)、数模转换器 (DAC)和低通滤波器(LPF)3部分构成,如图 2-1所示。 图 2-1 DDS 的 基本原理 数控振荡器 (NOC)产生频率可控制的数字正弦载波,通过数模转换器 (DAC)得到模拟正弦波,最后经过低通滤波器 (LPF)除去各种干扰信号。 另外 DDS工作原理框图如图 2-2所示。 图 2-2 DDS 原理框图 DDS工作原理的实质是以基准频率源 (系统时钟 )对相位进行等间隔采样。如图 2-2所示, DDS由相位累加器和波
11、形存储器 (即 ROM查询表 )构成的数控振荡器(Numerically Controlled Oscillators, NCO)、数模转化器 (DAC)以及低通滤波器 (LPF)3部分组成。在每一个时钟周期, N位相位累加器与其反馈值进行累加,相位累加器 ROM查 询 表 DAC 滤波器 频率控制字 NCO M N N L NCO DAC LPF FW(N-1:0) fc Fout Fout - 3 - 其结果的高 L位作为查询表的地址,然后从 ROM中读出相应的幅度值送到 DAC。再由 DAC将其转换成阶梯模拟波形,最后由具有内插作用的 LPF将其平滑为连续的正弦波形作为输出 3。因此,通
12、过改变频率控制字 K就可以改变输出频率 f0。 在 DDS的设计中其最基本的构造是相位累加器和波形存储器。通常也可在波形存储器前面加一个相位调制器,使其具有相位调制的功能,为了防止频率控制字、相位控制字改变时干扰相位累加 器和相位调制器的正常工作,分别在这两个模块前面加入两组寄存器,从而灵活且稳定地控制频率字和相位字的输入,如图2-3所示。 图 2-3 DDS 设计结构 图 2-3中相位累加器 (Phase accumulator)是整个 DDS系统的核心,在这里完成相位累加功能,其输入是相位增量,又可称为频率控制字。 相位调制器 (Phase modulator)接收相位累加器的相位输出,在
13、这里加一个相位偏移值,主要用于实现信号的相 位调制,如 PSK(相移键控 )等,在不使用时可以去掉该部分,或加一个固定的相位控制字。 波形存储器 (即正弦 ROM查找表 )( Waveform Memory)把存储在相位累加器中的抽样值转换成正弦波幅度的数字量函数,可理解相位到幅度的转换。它的输入是相位调制器输出的高 M位 (而并非全部 N位 )值,将其作为正弦 ROM查找表的地址值 ;查找表把输入的地址相位信息映射成正弦波幅度信号 ;输出送往 DAC,转化为模拟信号 4。 寄存器 寄存器 正弦ROM查找表 D/A 寄存器 相位输入字 频率输入字 系统时钟 Clk 相位累加器 相位调制器 N
14、N N M - 4 - 2.2 DDS 芯片实现信号发生器 目前常见的 DDS 信号发生器芯片主要有 AD9850,器功能框图如图 2-4所示。 图 2-4 AD9850 的功能方框图 AD9850把 DDS技术和高速数字 /模拟转换器结合在一起,形成一个全数字化、可编程的信号发生器。在一个精确的参考时钟源的控制下,它可以产生一个频谱较纯、频率 /相位可编程的模拟正弦信号,这个正弦信号就是用作信号源。 AD9850的频率控制字为 32位;相位控制字为 5位;时钟最高频率为 125MHz;输出频率调节速率达每秒 23兆次。当采用 125MHZ的时钟频率 时, AD9850的频率分辨率为 0.02
15、91Hz,最高输出频率为 62.5MHz。 使用 DDS信号发生器芯片的最大优点是输出频率较高,缺点是用户不能修改输出信号波形。 2.3 利用微处理器实现 DDS信号发生器 利用微处理器能够实现相位累加器、希望产生波形的数据表以及数字 /模拟转换器的控制时序。 相位累加器的位数越多,输出信号的频率分辨率越好,也就是输出信号的频率可以被调整的越准确。如果使用微处理器数据位数低于累加器的位数,这时可高速 DDS 频率 /相位数据寄存器 输入数据寄存器 10 位数字、模拟转化器 32位频率控制字 5 位相位控制字 并行装载 正弦信号输出 正弦信号输入 参考时钟输入 芯片复位 输出刷新 控制字装载 比
16、较器 串行装载 1 位 X40 8 位 X5 方波信号输出 - 5 - 以通过多次运算来完成相位累加。 例如,使用 MSCS51系列单片机,单片机时钟电路的频 率为 12MHz,数字 /模拟转换器使用 DA0832产生正弦波,采用查表的方法输出一个正弦函数值将需要 14个机器周期,即 14us。如果正弦波的数字波形表用 36个点来描述一个完整的正弦波,因此所产生的正弦信号的最小周期为 504us,即最高频率有 1984Hz。 系统产生的正弦信号频率的调整可以通过在程序中添加具有延时功能的指令或者子程序来实现。在产生一个正弦函数值的过程中增加一句空操作指令 NOP可以实现 1us的最小延时,这时
17、系统产生一个正弦函数值则需要 15个机器周期,即 15us。产生一个完整正弦波则需要 540个机器 周期,即 540us,对应的信号频率约为 1851Hz。 综上所述,从原理来说,利用微处理器能够实现 DDS技术的电路结构,并能产生所需要的任意波形,但是输出信号的最高频率受到很大的限制。使用具有高数据位数和高时钟频率的微处理器在一定程度上可以克服这个缺点,但这将导致成本提高。 2.4 利用 FPGA实现 DDS信号发生器 基于 FPGA设计的正弦信号 发生器组成框图如图 2-5所示,它包括显示电路、键盘电路、可编程逻辑器件电路、模拟信号放大电路和低通滤波器 5。 图 2-5 正弦信号发 生器组
18、成框架 如图 2-5所示的正弦信号产生器的输出频率是由键盘控制。由于输出信号频率包含多位数据,因此在使用键盘输入信息的过程之中,输出信号频率需要保持不变。当所有信息输入完成之后,通过按下执行键,刷新 DDS核的输入频率字,使得输出信号频率发生相应的变化。 显示电路在这里也是既被用来显示输出信号的频率值,也被用来显示键盘电路的调整过程。小型系统的显示电路常采用数码管或者液晶显示器件。前者电路显示电路 键盘 电路 DDS 核电路 DAC7611 模拟信号放大电路 低通滤 波器 信号输出 - 6 - 简单,后者不仅可以显示数据,而且可以显示字符。为简化设计,这里采用数码管。 现场可编程门阵列器件被用
19、来实现相位累加器、 希望产生波形的数据表以及数字模拟转换器的控制时序。这些具体的电路功能可以使用 Quartus II集成开发软件来开发,这部分是本设计的核心部分。 由波形的数据表输出的数据波形通过数字模拟转换器的控制代码送到数字模拟转换器 DAC7611,产生需要的正弦波形。 DAC7611是一种具有串行同步接口的12位数字模拟转换器,使用该器件简化电路,但是它的转换速率对输出信号的最高频率有影响。 数字模拟转换器输出的正弦信号是由许多小台阶来模拟产生的,基于 DDS原理的信号源,无论它的工作频率如何,这些小台阶的周期都是一个确定值 ,因此一个上限频率确定的低通滤波器可以被用来滤除输出信号中
20、的谐波分量。 电路中所使用运算放大器的频带宽度需要被仔细考虑以满足输出频率范围的要求。由于随着工作频率的提高,运算放大器的放大倍数将下降,因此需要选择具有足够工作频率范围的运算放大器器件。另外,通过合适的选择运算放大器的器件型号还可以同时实现低通滤波器的作用。 如图 2-6所示正弦信号产生器的系统代码框图中,键盘识别模块用来完成按键有效地识别,并产生相应的按键有效信号。由于输入的频率包括多位有效数字,键盘输入处理模块需要识别当前正在调整的数位,并根据具 体情况调整对应数位的数值。 图 2-6 正弦信号发生器的系统代码框图 输入的信号频率值采用十进制,单位为 Hz。这个频率值一方面被送到显示模块;一方面被送到译码模块。在显示模块中,这个频率值也要进行译码,转换成对应的显示代码,用来驱动多位 7段数码管。在译码模块中,这个频率值将被转键盘识别 显示 译码 相位累加器 波形数据形 频率字