基于FPGA的幅值可调信号发生器设计

时间:2011-09-20来源:网络

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所示。

h.JPG



4 系统测试
由键盘设置输出信号波形的类型、频率和幅度等参数,在50Ω负载下,用示波器测试输出波形的频率和幅值,并与设置值进行比较。由于在FPGA中经分/倍频后的结果与计算时钟存在一定误差,因此,需通过软件进行补偿修正,以便使频率误差降到最低。对于信号幅度的控制,在程序中也采用软件进行补偿修正。经过多次测试和反复改进,最终实现了如下技术指标:
1)输出波形正弦波、方波、三角波、锯齿波。通过对波形查找表ROM的修改,可实现其它波形,易于系统升级。
2)输出频率1 Hz~10MHz。
3)频率分辨率 1Hz~1MHz时为1Hz。1~10MHz时为10Hz。
4)频率稳定度优于10-4。
5)输出电压0~5V。
6)幅度分辨率10bits。

5 结束语
本文给出了一种基于FPGA和DDS技术的信号发生器设计方案,解决了输出信号幅值可调的问题,能产生较为理想的正弦波、方波、三角波和锯齿波等信号波形,波形平滑,无明显毛刺,响应速度快,频率范围广,稳定性好,幅值调节精度高。系统实现简单、灵活,易于升级,实用性较强,具有较好的应用前景。

1 2 3

关键词: FPGA 幅值 信号发生器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版