3.2 核心模块设计
FPGA模块是本设计的核心模块,在FPGA模块中,主要包括时钟模块、DDS模块和波形存储模块,如图5所示。
图5 FPGA模块设计框图
系统时钟模块由FPGA芯片内部提供,DDS模块的核心是相位累加器,波形存储模块中存有信号发生器的波形数据,如正弦波或三角波等波形数据。
在FPGA模块中,波形发生器的控制电路是由外来控制信号以及高速时钟信号来向波形数据ROM发生地址信号的,发生地址信号的速度大小决定了输出波形的频率[7]。当以一个固定频率来扫描输出地址时,模拟输出的波形就是固定频率;当以周期性扫描输出地址时,则模拟输出波形就为扫频信号。波形数据ROM中存有信号发生器的波形数据,如正弦波或三角波等波形数据。在接受完来自FPGA的地址信号后,就会从数据线输出相应的波形数据[7]。地址变化得越快,则输出数据的速度越快,从而使D/A转换器输出的模拟信号的变化速度也越快。
波形数据ROM可以由多种方式实现:(1)在FPGA外面接普通ROM,通过逻辑方式在FPGA中实现;(2)由FPGA中的EBA模块来担当;(3)利用LPM_ROM实现。三种方式中,第1种方式的容量最大,但存在速度最慢的缺点,虽然第2种方式的容量最小,但其速度最快,而第3种方式兼顾了这两方面的优点[8]。
本设计使用的是用FPGA设计出ROM,在FPGA中存放波形数据,这里用到了Quartus II工具栏中的Tools下面的Mega Wizard Plug-In Manager来生成一个ROM。根据本设计的要求,经过设置,就可以生成一个用以存放波形数据ROM的IP核。当在波形ROM中存放所需波形的一个周期的幅度值后,由地址发生器产生的地址码对波形ROM进行寻址,依次可取出并送至D/A转换及滤波后即可以得到所需要的模拟波形输出。在ROM设计中用到了定制初始化数据文件,定制ROM查询表需要在软件Quartus II中载入.mif或.hex文件,这两种文件可由多种工具获得,如Quartus II的Text File编辑器、MATLAB、DSP Builder、Keil编译器、专用mif生成器等工具。本文选用专用mif生成器得到正弦波数字幅度值的.mif文件,如图6所示。
图6 专用mif波形生成器
图7 正弦波.mif文件
用Quartus II打开mif文件如图7所示。
3.3 D/A转换模块
信号处理后的结果往往要转换为实际的模拟量,以便实现对被控对象的控制,这种将数字量转换为模拟量的过程称为D/A转换(数模转换)。数模转换器的作用是将数字形式的波形幅值转换成所要求合成频率的模拟形式信号。DAC有电压和电流输出两种,其输出的信号并不能真正连续可变,而是以其绝对分辨率为最小单位的,所以其输出实际上是一个阶梯模拟信号.选择一个高速D/A转换器,将数据选择器的输出与D/A转换器的输入端连接,这里采用D/A转换芯片THS5651[9]。
THS5651是一个10位分辨率的数字模拟转换器(DAC)特别适合用于数字数据传输的优先和无线通信系统。THS5651是德州仪器公司制造的先进的高速混合信号CMOS工艺。它支持二进制和三三两两补充输入Word格式,能够实现灵活的借口与数字信号处理器。THS5651提供一个名义上的全面差分输出电流为20mA和大于300KW的输出阻抗,同时支持单端和差分应用。输出电流可以直接联储向负载(例如,外部电阻负载或变压器),没有额外的外部输出缓冲器需要。准确片上基准和控制放大器允许用户调整这个输出电流20mA到2mA,无显著退化的表现,这不仅降低了能源消耗,同时可以提供20dB增益范围控制能力。另外,一个外部参考电压和控制放大器可用于在程序使用的是乘法数模转换器,输出电压范围为1.25V。因为在该设计中需要输出的是电压,所以THS5651后需加放大电路,使电流转换成输出电压,所以电路图如图8所示。 VHDL基于FPGA的移相信号发生器设计+Quartus仿真+源程序(5):http://www.youerw.com/zidonghua/lunwen_808.html