陕西理工学院毕业论文(设计)
3 整体方案设计
3.1系统的功能设计
直接数字频率合成器的基本原理:DDS是利用采样定理,根据相位间隔对正弦信号进行取样、量化、编码,然后储存在EPROM中构成一个正弦查询表,通过查表法产生波形。它是由参考时钟、相位累加器、正弦查询表和D/A转换器组成,如图3-1所示。 时钟 相 位 波 形 N 位 A位 D位 D/A 查询表 频率控制字K 累加器 低 通 滤波器 输出
图3-1 直接数字频率合成器原理框图
在一个完整的数字系统设计中,我们遵循的是自顶向下的设计思想,整个系统由很多的模块来实现。在基于DDS的可编程波形发生器的设计中包括了频率子控制寄存器、相位累加器、同步寄存器、波形查找表、多路选择器。
3.2设计方案
采用直接数字频率合成器,可用软件实现。即用累加器按频率要求相对应的相位增量进行累加,再以累加相位值作为地址码,取存放于ROM中的波形数据,经D/A转换、滤波即得所需波形。方法简单,频率稳定度高,易于程控。 3.2.1 相位累加器
相位累加器由N位加法器与N位累加寄存器级联构成,其原理框图如图3-2所示。每来一个时钟脉冲Fc,N位加法器将频率控制数据K与累加寄存器输出的累加相位数据相加,把相加后的结果Y送至累加寄存器的输入端。累加寄存器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,以使加法器在下一时钟的作用下继续与频率控制数据K相加;另一方面以相加后的结果形成正弦查询表的地址,取出表中与该相位对应的单元中的幅度量化正弦函数值,作为取样地址值送入幅度/相位转换电路。这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。
图3-2 相位累加器原理框图
第 11 页 共 36 页
陕西理工学院毕业论文(设计)
由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位。当相位累加器加满量时就会产生一次溢出,溢出频率就是DDS输出的信号频率。
相位累加器的最大计数长度与正弦查询表中所存储的相位分隔点数相同,在取样频率(由参考时钟频率决定)不变的情况下,由于相位累加器的相位增量不同,将导致一周期内的取样点数不同,输出信号的频率也相应变化。如果设定累加器的初始相位,则可以对输出信号进行相位控制。由采样原理可知,如果使用两个相同的频率合成器,并使其参考时钟相同,同时设定相同的频率控制字、不同的初始相位,那么在原理上就可以实现输出两路具有一定相位差的同频信号。
3.2.2 波形采样点数据文件
因为本设计是采用FPGA实现DDS的功能,所以使用FPGA作为数据转换的桥梁,将波形数据存储到其内部的RAM中,并由DDS系统产生波形输出。需存储在RAM中的波形数据是由单片机采集外部数据,对ROM中存储的标准波形进行各种相应的运算而得到。波形表存储器ROM有三种方法实现。 方法一:外接ROM用单片机来完成。可采用并行两片32K的EEPROM存储器AT28C256,共16位位宽,可以实现12位波形表存储,150ns读取速度完全满足20KHZ的工作频率。实现方案:将归一化的正弦波存储在32KEEPROM中,波形存储64个点。然后由单片机根据键盘输入的不同要求,对各点数据乘相应系数并叠加,再将所得到的新数据存储在RAM中,此时便得到了所需要的波形数据表。 方法二:由逻辑方式在FPGA中实现。
方法三:利用Altera公司的含于EAB器件中的兆功能模块LPM_ROM,通过VHDL语言编程来实现。
第一种方法容量最大,但速度最慢,且编程比较麻烦;第二种方法速度最快,但容量非常小;第三种方法兼顾了两者的优点,克服了其缺点。在选用FPGA芯片时,本设计选用的是Altera公司的FLEX10K系列芯片EPF10K10LC84_4, 有LPM_ROM模块,因此ROM选用第三种方法。
由于DDS中波形表存储器是采用FPGA芯片内部的LPM_ROM实现,故波形表以VHDL编程的.mif文件形式存入LPM_ROM中。
波形数据点采样文件可以通过程序语言生成,比如用c语言,下面是生成\”数据值的程序。
#cnclude
{s=sin(atan(1)*8*1/1024);
Printf(\ }
第 12 页 共 36 页
陕西理工学院毕业论文(设计)
}
把上述c程序编译成程序后,在DOS命令下执行此行: romgen>rom_data.mif;
生成“rom_data.mif”文件后,再加上.mif文件的头部文件说明即可,这里romgen是假设的编译后程序名。上面的程序是是生成正弦波采样点数据文件,方波和三角波同理也可如此生成,改动相应的c程序语句即可。 3.2.3 LPM_ROM定制
(1)、进入MAX-plusⅡ,选菜单File→MegaWizard Plug-In Manager,选择“Creat a new??”,然后按“next”键,进入图3-3所示界面。选择LPM-ROM;最后在Browse下的栏中键入路径与输出文件名:d:\\sin_g\\sindata.vhd,注意后缀vhd小写。
(2)、单击“next”键,将出现图3-4所示界面,选择数据位宽度为8,地址线宽度为6,即设置此ROM能存储8位二进制数据共64个,然后进入图2.9所示的窗口。
(3)、通过在图3-5所示窗口的“browse”键,找到ROM中的加载文件路径和文件名:d:\\sin_g\\sindata.vhd。注意ROM元件的inclock实地址锁存器。
图3-3 定制LPM-ROM文件
第 13 页 共 36 页
陕西理工学院毕业论文(设计)
图3-4 选择ROM参数
图3-5 加入初始化文件
(4)、在MAX-plusⅡ中打开已定制的ROM文件,观察文件中的实体表达COMPONEN语句、例化语句和初始化文件的路径和文件名:
LPM_FILE=>“D:\\SIN_G\\DATA\\sin_data.mif”。
(5)、最后将其设置成工程,并确定目标器件,进行测试,可以发现,此定制ROM的功能完全正常。
3.2.4 D/A转换器
D/A转换器的作用是把已经合成的正弦波、方波、三角波的数字量转换成模拟量.合成波形的幅度量化序列经D/A转换后变成了包络分别为正弦波、方波、三角波的阶梯波.需要注意的是,频率合成器对D/A转换器的分辨率有一定的要求,D/A转换器的分辨率越高,合成波形的台阶数就越多,输出波形的精度也就越高.本设计采用DAC0832进行数模转换。 3.2.5 低通滤波器
一个理想的滤波器应在要求的频带内具有均匀而稳定的增益,而在通带以外则具有无穷大的衰
第 14 页 共 36 页
陕西理工学院毕业论文(设计)
减.然而实际的滤波器距此有一定的差异,为此人们采用各种函数来逼近理想滤波器的频率特性.用运算放大器和RC网络组成的有源滤波器具有许多独特的优点.因为不用电感元件,所以免除了电感所固有的非线性特性、磁场屏蔽、损耗、体积和重量过大等缺点.由于运算放大器的增益和输人阻抗高,输出阻抗低,所以能提供一定的信号增益和缓冲作用.本此设计可采用二阶RC有源低通滤波器.
第 15 页 共 36 页