摘要:针对信号发生器时输出频率精度高和幅值可调的要求,采用直接数字频率合成(DDS)技术,提出一种基于FPGA的幅值、频率均可调的、高分辨率、高稳定度的信号发生器设计方案。采用AT89S52单片机为控制器,控制FPGA产生波形的数字信号,结合双数模(D/A)转换器及低通滤波器,最终实现输出信号幅值0~5 V可调,分辨率为10 bits;频率范围1 Hz~10 MHz可调,最小分辨率为1 Hz;频率稳定度优于10-4。信号参数可通过键盘进行设置,并在LCD上输出。由于FPGA的可编程性,易于对系统进行升级和优化。
关键词:FPGA;信号发生器;DDS;单片机;VHDL
直接数字频率合成(DDS)技术具有相对频带宽、频率转换时间短、频率分辨率高、输出信号相位连续、能够实现全数字自动化控制等优点,已经逐步成为高性能信号发生器的核心技术。现场可编程门阵列(FPGA)器件具有工作速度快、集成度高、可靠性好和现场可编程等优点,在现代电子设备中的应用越来越广。
本文采用DDS技术和FPGA芯片设计了一种频率可调的信号发生器,可输出正弦波、方波、三角波和锯齿波等数字信号,其频率范围广,稳定性好,精度高,系统灵活,易于升级。
1 系统总体设计
系统框图如图1所示,它由单片机控制模块、FPGA波形产生模块、幅度控制模块、数模转换(DAC)模块、低通滤波模块、键盘输入和液晶显示模块组成。FPGA模块采用DDS技术,可产生正弦波、方波、三角波或锯齿波的数字信号,经D/A转换、低通滤波后输出。其波形类型及频率大小通过单片机直接控制,输出信号幅度的控制由单片机通过幅度控制模块改变数模转换模块的参考电压来间接实现。
2 功能模块设计
2.1 FPGA模块
该模块根据MCU提供的频率控制字K及波形选择字,利用DDS技术产生波形数字信号,通过数模转换器DAC变成阶梯波,再经过低通滤波器平滑后就可以得到合成的信号波形。此模块主要由相位累加器、相位寄存器和波形查找表构成,其原理框图如图2所示。其中,fc为输入基准时钟频率,fo为输出信号频率,K、N、L分别为频率控制字、相位累加/寄存器、波形查找表和D/A转换器的字长。
www.55dianzi.com
DAC是本模块的核心器件,其转换速度等特性直接影响整个系统的性能。DAC器件的选择应从分辨率、转换速度、量化误差和线性度等几个方面考虑。因为本系统的工作频率较高,所以首先应选用高速DAC。其次是考虑分辨率和量化误差问题,增大DAC的位数可减小量化误差,提高分辨率。因此,本文采用的DAC器件是德州仪器公司生产的高速低功耗、10位分辨率的DAC芯片THS5651。
DAC的参考电压可通过EXTL0端来选择内部或外部。当该端口为低电平时(即:EXTL0=AGND),选择内部参考电压;当该端口为高电平时(即:EXTL0=AVDD),选择外部参考电压。只要改变参考电压的大小,就可以改变输出波形的幅值。THS5651外部参考电压范围为0~5V,因此,采用10位DAC(最小分辨率为4.88x10-2V)。图中第2片THS5651的输出接到第1片THS5651的参考电压输入端EXT10,通过单片机控制第2片THS5651输出,进而控制第1片THS5651的参考电压。
2.3 低通滤波模块
经过D/A转换后输出的阶梯波信号通常含有较多的时钟成分及较为陡峭的跃变边缘,为了减少输出波形的抖动、抑制高次谐波、取出主频fo,必须在D/A转换器的输出端接入截止频率为fc/2的低通滤波器。
2.4 键盘与显示模块
本系统需要设置并显示输出波形的类型、频率和幅值等参数。为使系统拥有一个友好、便捷、美观的用户界面,设计中采用键盘和液晶显示器作为系统的输入输出模块。键盘输入模块选用8279控制4x4阵列键盘,采用扫描方式由8279得到键盘码并由中断服务程序把数据送给单片机。此方案不用单片机扫描,占用资源少。输出模块采用Hz128-64D20汉显液晶模块,该模块自带一、二级汉字字库点阵,通过串行接口与单片机相连。用液晶显示器可以实现多级菜单,用户界面友好,操作方便。
3 系统软件设计
FPGA系统采用硬件描述语言VHDL按模块化方式进行设计,并将各模块集成于FPGA芯片中,然后通过QUARTusⅡ软件开发平台对设计文件进行编译、优化、综合、布局布线和逻辑仿真,最后对FPGA芯片进行编程,实现系统的设计要求。单片机控制程序采用C语言进行设计,设计中采用了结构化和层次化的设计方法,通过按键判断程序选择进入不同的模式:波形选择、频率设置、幅度设置、波形参数显示4种模式和1个复位模式(图中省略)。在不同的模式下分别执行相应的子程序,最后分别向FPGA写入相应的控制字。该系统程序流程如图4所示。
4 系统测试
由键盘设置输出信号波形的类型、频率和幅度等参数,在50Ω负载下,用示波器测试输出波形的频率和幅值,并与设置值进行比较。由于在FPGA中经分/倍频后的结果与计算时钟存在一定误差,因此,需通过软件进行补偿修正,以便使频率误差降到最低。对于信号幅度的控制,在程序中也采用软件进行补偿修正。经过多次测试和反复改进,最终实现了如下技术指标:
本文关键字:信号发生器 DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术