资源描述:
《基于FPGA和单片机的波形发生器的设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于单片机与FPGA的波形发生器摘要:基于单片机与FPGA的波形发生器,核心技术是直接数字频率合成。FPGA集成了固定分频器、单片机通信模块、波形合成器及波形选择等模块,其输出的8位数据通过D/A转换并经功率放大后即得所需波形。单片机控制键盘与显示模块,提供了良好的人机界面。经过设计和电路测试,系统能产生正弦波、三角波和方波等波形,控制灵活,输出波形性能良好。关键词:波形发生器;DDS技术;单片机;FPGA器件;D/A转换器1.引言波形发生器在信号源、变频电源、逆变电器和检测仪表等电子设备中得到广泛的应用。在通信系统的科研实验
2、中,也常常需要用到多种不同频率和相位的信号,如正弦波、三角波、方波和锯齿波等。因此多波形的信号发生器的应用十分广泛。现今的波形发生器是以DDS为基础的数字波形发生器。近年来,可编程逻辑器件FPGA也被广泛地应用于数字系统,也特别适合波形发生器的设计,结合单片机控制灵活的特性,可以设计输出波形性能非常好的波形发生器。2.DDS(直接数字频率合成)技术DDS技术是一种应用全数字技术,从相位概念出发把一系列数字形式的信号通过DAC转换成模拟形式的信号的合成技术。DDS技术建立在采样定理的基础上,它首先对需要产生的波形进行采样,将采样
3、值数字化后存入存储器作为查找表,然后再通过查表将数据读出,经过D/A转换器转换成模拟量,把存入的数据重新合成出来。DDS的基本原理框图见图1。从图中可以看出DDS由四个重要的组成部分:相位累加器,波形ROM,D/A转换器和低通滤波器。在每一个时钟周期T内,频率控制字K与N比特相位累加器累加一次,并同时对2N取模运算,得到的相位值以二进制代码的形式对存储相应波形数据的RAM进行寻址,输出与该相位值相对应的数字化幅度值,再经DAC数模转换完成离散信号到连续信号的转变,最后经低通滤波器滤波即可得到信号输出。由上述原理可知,输出频率满
4、足:Fout=(K*[Fclk])/2N;则当K=1时,DDS有最小频率输出,则DDS的最小频率分辨率可达:Fmin=(K*[Fclk])/2N;这其实也就是输出频率分辨率,可以看出,当N不断增加的时候输出频率分辨率可以不断的提高。当然在实际中N的增加受到种种因素的制约。但是就目前的技术水平来说,已经可以产生很高的频率分辨率了。3.系统设计本系统利用DDS技术,结合单片机的灵活控制特点和FPGA高速、可编程等优点,设计完成能产生正弦波、三角波、方波等多种波形的波形发生器。该系统主要由单片机控制模块和波形发生模块两个主模块,各主
5、模块又由多个子模块组成。系统框图如图2所示。4.硬件设计与实现由于单片机的强控制能力,多输入口子,软件编程简单、灵活,所以选用带内部程序存储器的89S52单片机作为整个系统的控制计算核心。它采用中断的方法采集键盘命令,当有按键按下的时候,根据波形、频率、上调及下调等按键的功能,转去执行相应的子程序。电路原理如图3所示。本设计使用的是SpartanTM-ⅡEPQ208封装系列XC2S100E型号的FPGA芯片。该芯片具有100000门规模,600个CLB,40K的BlockRAM,202个I/O口,4个延迟锁相环,资源丰富,非常
6、满足设计要求。单片机与FPGA接口主要是向FPGA传入控制信号和频率控制字。FPGA则接收来自单片机的数据信息,输出波形。5.FPGA硬件设计采用模块化的设计方法,顶层模块的主要作用是连接各子功能模块,将分散独立的子模块组成一个系统,子模块的连接情况如图4所示。从图中可以看出系统主要由8个模块组成,分别是时钟分频模块,与单片机通信模块,相位累加模块,数据存储寻址模块,各波形数据存储模块和数据选择模块。6.系统软件设计如图5为单片机部分程序设计,主要实现对输入的按键值进行判断,根据判断结果执行相应的处理,并将输入的按键值按一定的
7、顺序显示出来。考虑到系统需要通过键盘输入的信息较多,包括频率信号,波形信号,频率上调和下调等,为了便于与FPGA通信,这些信息的输入有必要按一定的流程进行操作。因此,本系统设置了如下功能键:(1)准备键:设置波形时首先按准备键准备接收波形的频率、类型等信息,同时对显示器清屏,对部分存储器赋初值;(2)波形类型选择键:按此键后,按数字键0~2的任意键表示选择一种波形;(3)频率输入准备键:按此键后可输入5位的十进制频率数据;(4)回车键:按此键后单片机将输入的信息按一定的顺序传送给FPGA,清空部分存储器或标志位;(5)上调/下
8、调键:输出频率分别增加10Hz或减小10Hz。