文档介绍:基于FPGA的函数发生器
摘要:本系统主要有4个功能模块组成:数字波形发生,高速数模转换,显示控制、滤波及功率放大模块。数字波形发生模块通过将波形信号离散化存入到FPAG内部的ROM,FPGA再按照一定的频率读取输出。高速数模转换模块采用DAC902将FPGA输出的数字波形信号转换为模拟信号。滤波及功率放大模块将DAC902输出的模拟信号进行低通滤波,降低高频干扰,再进行功率,以驱动负载。频率控制,占空比控制和波形选择由单片机计算并写到FPGA中,显示用液晶12864来实现。
关键词:函数发生器,FPGA
一、方案选择
1波形发生器
方案一:
采用传统的直接频率合成技术,这种方法能实现快速频率变换,具有较高频率和低相位噪声,但由于采用大量倍、分频、混频,导致直接频率合成器结构复杂,体积庞大,成本高。这种方法只能实现正弦波以及由正弦波积分、微分等方法实现三角波、方波,无法满足题目中任意波形的输出。
方案二:
采用直接数字式频率合成器(DDS),用随机储存器ROM储存波形的采样数据,按输入频率以频率控制字K为步进,对相位累加器进行累加,以累加器的值作为地址码读取ROM中的数据,经DA转换,滤波,即可得到所需波形。由于DDS可以工作在很高频率,所以可以实现较高的频率输出,而且全数字化的结构,频率、相位、幅值均可实现程控。理论上可以实现任意波形,满足题目要求,故采用第二种方案。
方案三:
采用单片机函数发生器(如8038)8038可同时产生正弦波,脉冲波等。方法简单易行,用D/A转换器的输出来改变调节电压,也可以实现数控调整频率,但步长难以满足要求,且频率稳定性不太高。
2实现DDS技术方法
方法一:
采用高性能的DDS芯片,专用DDS芯片由于灵活性不强。采用特定的集成工艺,内部数字信号抖动很小,可以输出高质量的模拟信号,但控制方式是固定的,
方法二:
设计基于FPGA的个人方法,FPJA以其速度高,规模大,可编程,以及有强大的EDA软件支持等特性。十分适合实现DDS技术。FPGA也能输出高质量的信号,虽然达不到DDS的专业水平,但也在信号精度误差允许范围之内。而且灵活性强。故采用基于FPGA的自行设计方案,
3滤波
方案一:采用切比雪夫低通滤波器。切比雪夫滤波器的幅度响应在通带内在两个值之间波动,在截止频率附近有更好的衰减特性。
方案二:采用巴特沃思低通滤波器。巴特沃思滤波器的幅度函数是单调下降的,在通带内的幅度平坦程度较好。
本题目中我们要滤掉的主要是由D/A产生的1M和10M的高频分量,与我们要产生频率相隔很远,需要稳定的波形,相对来说,滤波器的平坦程度更为重要,所以我们决定采用第二种方案。
二、详细软硬件设计
波形发生器的参数设置由单片机AT89S52实现,并由液晶12864显示。单片机向FPGA写入频率控制字来实现对输出波形的频率控制,波形及其参数存储由FPGA中的 ROM 实现,波形发生器框图如下
ROM
滤波及功率放大
数模转换控制
FPGA
4X4键盘
液晶显示
AT89S52
单片机
一、硬件设计
1波形表生成模块
由于AT89S52单片机的片内储存空间有限,我们将正弦波,三角波的波形表(共1024个数据)存到FPGA中的ROM中,然后由键盘输入不同的波形选择命令,单