APP下载

一种基于虚拟仪器技术的任意波形发生器

2013-03-11王水鱼冯晓靖

网络安全与数据管理 2013年18期
关键词:累加器存储器寄存器

王水鱼,冯晓靖

(西安理工大学 自动化与信息工程学院,陕西 西安710048)

传统的信号发生器采用模拟电路技术[1],由分立元件构成振荡电路和整形电路来产生各种波形。采用这种技术的波形发生器电路结构复杂、体积庞大、稳定度和准确度较差,难以产生较为复杂的波形信号。虚拟仪器[2]的出现是仪器发展史上的一场革命,代表着仪器发展的最新方向和潮流,是信息技术的一个重要领域。本文的主要工作是结合虚拟仪器技术进行任意波形发生器的研究与设计。

1 DDS基本原理

DDS的基本原理是利用采样原理,然后根据查表产生波形。一个完整的DDS原理如图1所示。

图1 DDS原理图

其电路一般包括基准时钟、相位累加器、波形存储器、D/A转换器和低通滤波器(LPF)[3]。每来一个时钟脉冲fclk,就送入相位累加器一个频率控制字X。相位累加器包括一个N位加法器和一个累加寄存器,N位加法器将频率控制字X与相位累加寄存器寄存输出的累加相位数据相加,把X与反馈的累加器输出端的相位数据之和再次送至累加寄存器的输入端。而相位累加器模块中的累加寄存器在上一系统时钟信号周期作用下一方面将已经存储在寄存器中的相位数据反馈到相位累加器中加法器的其中一个输入端,以便加法器将其用于在下个时钟信号的作用下继续与控制模块发出的频率控制字X相加;另一方面,将这个数据作为相位累加器的输出值送入波形存储器按照相位查找表查找,并由波形存储器输出。最后,波形存储器的输出结果经数/模转换(D/A Converter)和低通滤波器(Low Pass Filter)[4-5]的滤波将其转换成所需要的模拟波形。相位累加器在时钟的作用下,连续不断地进行频率控制字的线性累加,直至满量时产生溢出,这样就完成了一个周期,也是DDS合成信号的一个频率周期。

DDS的输出频率由频率控制字X决定。输出频率与系统时钟的关系为:

离散样本的个数由相位累加器位数N决定,可以看出在参考时钟频率SYSCLK不变的情况下,通过改变频率控制字X就可以改变输出波形的频率,并且当频率控制字X=1时DDS的输出频率最小。因此,DDS输出分辨率与相位累加器位数N之间的关系为:

2 系统整体设计方案

图2 系统整体设计方案框图

本设计系统整体框图如图2所示。LabVIEW[6]上位机界面主要实现波形的选择调整和绘制,即实现对基于FPGA的下位机硬件部分的控制。基于FPGA的下位机硬件部分主要包含了DDS模块以及外围电路部分。其工作过程如下:LabVIEW上位机负责波形的选择和调整,当产生固定波形时,LabVIEW上位机将所选择的波形种类和频率范围传输给FPGA器件生成的NiosⅡ内核,由NiosⅡ首先向相位累加器模块输出频率控制字,相位累加器通过频率控制字的累加输出至波形存储器中进行波形寻址,将寻址到的波形输出送入数据选通器[7-8]。NiosⅡ同时向数据选通器送出一个数据选通信号,数据选通器根据选通信号决定输出波形的种类,然后将确定要输出的波形数据送入幅度控制电路,幅度控制电路根据NiosⅡ送来的幅度控制数据对波形数据进行幅值调整然后送入DAC与运放电路,经过变换后输出。如需产生任意手绘波形,则波形数据直接由NiosⅡ内核送至数据选通器,经选择幅度变换和D/A转换后输出。

2.1 FPGA硬件电路部分整体结构设计

系统硬件主要由PLL锁相环[9]、MY CPU微控制器(Nios II)、波形数据ROM存储器、相位累加器等核心部分以及外围电路(包括数/模转换、放大和通信模块等)组成。Nios II处理器用于与上位机LabVIEW进行通信、控制输出选通器、写任意波形数据至缓存器并输出,以及调整频率控制字、幅度控制字等;波形存储器用于存储正弦波、方波和三角波的波形数据;相位累加器是DDS的核心部分,由两个模块构成,分别是一个移位寄存器和一个累加器;输出选通器用于选择将要输出的波形信号形式(正弦波、方波、三角波或任意波形)。

配置方面采用了JATG+AS的配置方法[10],其好处是可以在调试和设计阶段先用JTAG方式调试编写的程序,待最终验证所有的程序已经完好无误后,再使用AS模式把已经修改好的程序下载写入到配置芯片里去。此处用到了一块EPCS4SI8N芯片对其进行配置,配置芯片以及两种配置连接如图3所示。

2.2 上位机软件设计

LabVIEW上位机主面板设计如图4所示。可以看出,主程序面板上提供了波形选择、频率调节、幅度调节等功能,其中波形选择包括了正弦波、方波和三角波以及手工波形绘制;频率调节支持上下箭头和手工输入;幅度调节支持上下箭头调节。

在波形绘制界面中,使用者可以通过鼠标点击在波形绘制面板上进行手工绘制。手工绘制波形时,使用者按鼠标左键不放,在面板左侧的空白区域进行绘图,右侧第一个窗口按照使用者绘制的鼠标图像进行采样取值,显示采样点以及采样数据,绘制完成后点击停止。手绘波形功能的程序框图如图5所示,手绘波形的过程中定义了鼠标左键点击、鼠标移动、鼠标松开等几个用户事件。

图3 FPGA配置图

图4 主面板

图5 手绘波形功能的程序框图

3 调试及实验结果

通过下位机输出端连接示波器显示产生的三种固定波形(正弦波、方波、三角波)和任意手绘分别如图6~图9所示。

图6 正弦波

图7 方波

图8 三角波

图9 任意手绘波

4 结果分析

信号源的主要指标为频率指标,包括最大输出频率和频率分辨率。经过对不同状态下不同波形的数据采集,得出表1所示的波形数据表格。

表1 设定频率与输出频率

经过表格数据计算,输出信号的平均精度为0.004 065 76%,最大输出频率为5 MHz,且在信号频率大于5 MHz后失真严重。

[1]陈永泰,潘志浪.基于FPGA的DDS信号源设计[J].电子元器件应用,2007,9(9)∶45-47.

[2]黄轶程.采用虚拟仪器技术的任意波形发生器的研制[D].南京:东南大学,2005.

[3]俞一鸣,唐薇,陆晓鹏,等.Altera可编程逻辑器件的应用与设计[M].北京:机械工业出版社,2007.

[4]王诚,吴继华,范丽珍,等.Altera FPGA/CPLD设计(基础篇)[M].北京:人民邮电出版社,2005.

[5]王伟,赵吉祥.基于FPGA+DDS的控制设计[J].国外电子元器件,2008(6)∶13-15.

[6]王呈贵,徐以涛.高分辨率DDS的FPGA设计[J].解放军理工大学学报,2003,4(4)∶20-22.

[7]豆卫敏.基于全数字锁相环的时间数字转换器的研究[D].杭州∶浙江工业大学,2009.

[8]夏瀑.基于分布式算法的FIR滤波器设计及FPGA实现[D].大连∶大连海事大学,2008.

[9]Altera.Cyclone II devise handbook[Z].2008.

[10]EDA先锋工作室,王诚,蔡海宁,等.Altera FPGA-CPLD设计(基础篇)[M].北京:人民邮电出版社,2011.

猜你喜欢

累加器存储器寄存器
密码累加器研究进展及应用
STM32和51单片机寄存器映射原理异同分析
静态随机存储器在轨自检算法
Lite寄存器模型的设计与实现
移位寄存器及算术运算应用
Fpga的信号发生器设计原理
基于霍夫变换的工位点识别算法设计与实现
任意2~k点存储器结构傅里叶处理器
用于时间延迟积分型图像传感器的流水采样列级运放共享累加器*
存储器——安格尔(墨西哥)▲