波形发生器设计篇,基于FPGA的DDS任意波形发生器
扫描二维码
随时随地手机看文章
波形发生器具有多种类型,对于波形发生器,小编在系列文章中有过诸多介绍。本文中,小编将为大家介绍DDS任意波形发生器,主要内容在于探讨如何基于FPGA实现该波形发生器的设计。如果你对波形发生器具有兴趣,不妨继续往下阅读哦。
一、DDS概述
1.1 DDS基本原理
直接数字合成技术(Direet Digital Synthesis,简称DDS)是建立在采样定理基础上,首先对需要产生的波形进行采样,将采样值数字化后存入存储器作为查找表,然后通过查表读取数据,再经D/A转换器转换为模拟量,将保存的波形重新合成出来。DDS基本原理框图如图1所示。
由图l看出,除了滤波器(LPF)之外,DDS系统都是以数字集成电路实现,因此DDS系统易于集成和小型化。DDS系统的参考时钟源通常是一个具有高稳定性的晶体振荡器,整个系统的各个组成部分提供同步时钟。频率字(FSW)实际上是相位增量值(二进制编码),作为相位累加器的累加值。相位累加器在每一个参考时钟脉冲输入时,累加一次频率字,其输出相应增加一个步长的相位增量。由于相位累加器的输出连接在波形存储器(ROM)的地址线上,因此其输出的改变就相当于查表。这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出。ROM的输出送到D/A转换器,经D/A转换器转换成模拟量输出。
1.2 DDS的基本参数及其计算
在系统时钟脉冲的作用下,相位累加器不停累加,即不停查表,把波形数据送到D/A转换器转换成模拟量输出,从而合成波形。滤波器则进一步平滑D/A转换器输出的近似正弦波的锯齿阶梯波,同时衰减不必要的杂散信号。设频率字(FSW)的值为d,系统时钟频率为f,相位累加器的字长为N,则系统的输出频率为:
二、任意波形发生器的设计方案
基于DDS技术的任意波形发生器主要由微处理器控制模块、键盘与显示模块、DDS通道的FPGA实现模块、D/A转换模块以及滤波器模块组成。同时片外扩展了4 KB程序存储器SRAM和6 KB数据存储器ROM,分别用于存储波形抽样数据和3种标准输出波形抽样数据。本系统设计原理如图2所示。
2.1 微处理器控制模块
采用AT89C5l单片机完成数据处理和控制其他电路工作。将键盘接收的数据通过特定算法转换成二进制码,再将处理后的控制字、波形参数和其他器件的控制信号发送出去。
由于AT89C5l单片机主要接口有:微处理器与扩展器件的接口;微处理器与FPGA模块的接口;微处理器与键盘、显示模块的接口;微处理器与输出幅值调节电路的接口。由于单片机的输出引脚有限,需扩展其引脚。本设计采用8255器件扩展单片机的输出引脚,8255的PA用于相位控制字的输出;PB用于频率控制字的输出;PC是位可控输出端,用于DDS工作方式的控制字和波形参数的控制字输出引脚。AT89C5l单片机与FPGA的接口电路如图3所示。
2.2 键盘与显示模块
由于本系统设计的测量装置需要设置输出波形、频率、电压等参数,而且监控程序需要菜单驱动,因此需要设置键盘。键盘采用外接4×4软键盘,使用软件扫描方式获得按键信息。因为按键需要去抖动,因此采用软件编程方式实现,这样可以节省硬件资源,简化电路设计。
液晶显示可提供人机交互界面和系统运行状态,选用精工的MGLS 19264液晶显示屏。该液晶显示屏内置2块HD61202U液晶显示驱动控制器。其中CSA,CSB作为左、右屏片选信号,接单片机A8、A9引脚。同时单片机用地址Al作为R/W信号控制数据总线的数据流向;地址AO作为D/I信号控制寄存器的选择;E信号由单片机的读信号RD和写信号WR合成产生,实现计算机对内置HD61202U图形液晶显示模块的电路连接。电位器用来调节显示屏的对比度,如图4所示。液晶显示左半屏命令字地址为0EOOH;状态字地址为0EIOH;写显示命令字地址为0E0lH;读显示命令字地址为0EllH;右半屏对应地址为0D00H、0D10H、0D0lH、0DllH。
2.3 DDS通道的FPGA实现模块
该模块设计是DDS信号合成的关键部分,主要由相位累加器、地址总线控制器、数据总线控制器与SRAM组成。其中,除了SRAM外,其余3个模块都由FPGA实现。
相位累加器是整个DDS系统的关键,直接影响整个系统的功能。图5给出的FPGA结构框图中相位累加器实质上是一个带反馈的29位加法器,它把输出数据作为反馈数据和由微处理器送来的频率控制字连续相加,从而产生有规律的29位相位地址码。设计中采用流水线技术实现29位加法。当输入所需频率时,转换成频率控制字来驱动FPGA工作,从而产生所需波形频率。整个模块设计过程使用FPGA的开发软件实现并进行仿真。
2.4 D/A转换模块
D/A转换器是DDS系统的核心器件,其速度和特性直接影响整个系统的性能。从建立时间、尖峰脉冲能量、位数和积分线性等四个方面选择D/A转换器。因为DDS系统的工作频率一般都很高,因此首先应选用高速D/A转换器。其次是考虑信噪比问题,增大D/A转换器的位数,可减小电压幅值量化误差,增大信噪比,因此,采用了12位的D/A转换器。
2.5 滤波器模块
滤波器分为两组:一组是椭圆函数滤波器,用于正弦波的滤波;另一组是线性滤波器,用于其他标准波形的滤波。
以上便是此次小编带来的“波形发生器”相关内容,通过本文,希望大家对如何基于FPGA实现DDS任意波形发生器具备一定的认知。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!