1、直接数字频率合成器课设DDS电子技术课程设计直接数字频率合成器学院:电子信息工程学院 专业,班级:通信071501 姓名:刘健 学号:200715030113 指导教师:高文华2009年12月目 录一、 设计任务与要求1 设计任务2 设计任务3 设计目的二、 总体框图1 设计方案及其描述三、 选择器件四、 功能模块五、 总体设计电路图六、 设计心得直接数字频率合成器概述: 1917年美国学者J.Tierncy、C.M.Reader和B.Gold提出了以全数学技术从相位概念出发直接合成所需波形的一种新的频率合成原理。随着技术和水平的提高,一种新的频率合成技术直接数字频率合成器(DDS)技术得到了
2、飞速发展。DDS技术是一种把一些列数字形式的信号通过DAC转换成模拟行驶的信号合成技术。 DDS技术具有频率切换时间短,频率分辨率高,频率稳定度高,输出信号的频率和相位可以快速控切换,输出相位可连续,可编程以及灵活性大等优点,它以有别于其他频率合成方法的优越性能和特点成为现代频率合成技术的姣姣者。DDS广泛用于接受机本振、信号发生器、仪器、通信系统、雷达系统等,尤其适合跳频无线通信系统。一、设计任务与要求设计任务:学习利用EDA技术和FPGA实现直接数字频率合成器DDS的设计。设计要求:1.详细叙述DDS的工作原理。 2.画出DDS基本原理组成框图。 3.DDS的FPGA实现设计。 4.编写V
3、HDL主要源程序。 5.完成系统仿真和硬件验证。二、总体框图直接数字频率合成器程序设计可以有多种的方法来实现,其中所用到的器件和很多基本的算法好思想都是相同的,DDS的工作原理是一致的,只是根据不同的硬件,具体的方法有所区别。在此次直接数字频率合成器的设计中预先有两种设计方案:方案一:如图11所示:1频率控制字M和相位控制字分别控制DDS输出正(余)弦波的频率和相位。2相位累加器是DDS系统的核心,它是由一个N位字长的加法器和一个N位相位寄存器组成,作用是对频率控制字进行线性累加,每来一个时钟脉冲,相位寄存器以步长M增加。相位寄存器的输出与相位控制字相加,其结果作为正(余)弦查找表的地址。3正
4、(余)弦查找表由ROM构成,内部存有一个完整周期正弦波的数字幅度信息,每个查找表的地址对应正弦波中0360范围内的一个相位点。查找表把输入的地址信息映射成正(余)弦波的数字幅度信号,同时输出到数模转换器D/A的输入端。4D/A转换器输入的是数字量,经转换后输出的是模拟量。有关D/A转换器的技术性能指标很多,例如分辨率、建立时间、接口形式、偏移量误差以及线性度等等。分辨率是D/A转换器对输入量变化的敏感程度,与输入数字的位数有关,数字量位数越多,分辨率也就越高,亦即转换器对输入量变化的敏感程度也就越高。使用时,应根据分辨率的需要来选定转换器的位数。DAC常可分为8位、10位和12位三种。本设计使
5、用8位D/A转换器。方案一有关设计框图: 图12 DDS内部组成框图方案二:DDS基本原理框图如图11所示,方案二有关设计DDS.vhd顶层原理框图如图13所示: 图13 DDS.vhd顶层原理图图13中共有四个元件,其中:1.波形数据ROM:其中放置一个周期为1024个点的正弦信号波形数据,精度10位,所以输出10位与实验系统的高速DAC相接。2.锁相环PLL20M的输入是20MHz(利用实验系统提供的时钟),输出是75MHz(根据实验需要选择)。3.FWORD是频率控制字输入,为了实验方便,选择输入8位,加法器的32位的其它位挂接在固定电平上。4.输出DAC_CLK用于作为外部工作时钟。以
6、上为设计时的两套方案,在实际操作实施过程中采用方案一。 三、器件选择在该方案设计时要采用的器件有:加法器,寄存器,D/A转换器芯片AD558, CPLD/FPGA芯片,示波器。1. CPLD/FPGA芯片:在现代电子系统中,数字系统所占的比例越来越大。系统发展的越势是数字化和集成化,而CPLD/FPGA作为可编程ASIC(专用集成电路)器件,它将在数字逻辑系统中发挥越来越重要的作用。2. 主芯片EPF10K10LC84-4:功能简介: 因内含SRAM,可在系统进行无限次实验。资源配备: 引脚84 ,最大用户I/O,引脚59 ,可用门数目10000,宏单元数目576 ,逻辑阵列块数目72 ,电源
7、电压5V ,最高时钟频率150MHz ,输出电流I(OH)/I(OL)4mA/12mA。3D/A转换器芯片AD558:AD558如图14所示,是一款完整的电压输出8位数模转换器,它将输出放大器、完全微处理器接口以及精密基准电压源集成在单芯片上。无需外部元件或调整,就能以全精度将8位数据总线与模拟系统进行接口。AD558提供四种性能等级产品。AD558J和AD558K的工作温度范围为0C至+70C,AD558S和AD558T则为-55C至+125C。J级和K级可采用16引脚塑料(N)或密封陶瓷(D) DIPS封装,也可采用20引脚JEDEC标准PLCC封装。S级和T级均采用16引脚密封陶瓷DIP
8、封装。AD558 特性 完整8位DAC 电压输出:两种校准范围 内部精密带隙基准电压源 单电源供电:+5 V至+15 V 完全微处理器接口 快速建立时间:1 s内电压达到1/2 LSB精度 低功耗:75 mW 无需用户调整 在工作温度范围内保证单调性 规定了 Tmin至Tmax的所有误差 小型16引脚DIP和20引脚PLCC封装 激光晶圆调整单芯片供混合使用 图14 数模转换器AD5584示波器:示波器是一种能把随时间变化的过程用图像显示出来的电子仪器。用它来观察电压(或转换成电压的电流)的波形,并测量电压的幅度、频率和相位等。因此,示波器被广泛地应用在无线电测量中。示波器的种类很多,但它们都
9、包含下列基本组成部分,如图15 所示。 图15 示波器基本组成部分四、功能模块1.相位累加器SUM99:模块如图16所示 图16相位累加器SUM99(1)相位累加器SUM99模块功能:是一个带有累加功能的6位加法器,它以设定的6位频率控制字K作为步长来进行加法运算,当其和满时,计数器清零,并进行重新运算。(2)相位累加器SUM99模块所用VHDL程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SUM99 IS PORT(K:IN STD_LOGIC_VECTOR(5 DOWNT
10、O 0); CLK:IN STD_LOGIC; EN:IN STD_LOGIC; RESET:IN STD_LOGIC; OUT1:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END ENTITY SUM99;ARCHITECTURE ART OF SUM99 IS SIGNAL TEMP:STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN PROCESS(CLK,EN,RESET) IS BEGIN IF RESET=0 THEN TEMP=000000; ELSE IF CLKEVENT AND CLK=1 THEN IF EN=1 THEN TE
11、MP=TEMP+K; END IF; END IF; END IF; OUT1=TEMP; END PROCESS;END ARCHITECTURE ART;(3)模块功能仿真:如图17所示 图17 相位累加器SUM99模块功能仿真图(4)分析:由图17中得知,2.相位寄存器REG1:模块如图18所示 图18相位寄存器REG1(1)相位寄存器REG1模块功能:是一个一般的6位寄存器,它对输入端输入的数据进行寄存,当下一个时钟到来时,输出寄存的数据。(2)相位寄存器REG1模块所用VHDL程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG
12、1 IS PORT(D:IN STD_LOGIC_VECTOR(5 DOWNTO 0); CLK:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END ENTITY REG1;ARCHITECTURE ART OF REG1 IS BEGIN PROCESS(CLK) IS BEGIN IF(CLKEVENT AND CLK=1) THEN Q=D; END IF; END PROCESS;END ARCHITECTURE ART;(3)模块功能仿真:如图19所示 图19相位寄存器REG1模块功能仿真图(4)分析:由图19中得知,3.正弦查找
13、表SIN(ROM): 模块如图110所示 图110正弦查找表SIN(ROM)(1)正弦查找表SIN(ROM)模块功能:是DDS最关键部分,也是最复杂的部分,设计时首先需对正弦函数进行采样,接着讲采样结果放到ROM模块的对应存储单元中,每一位地址对应一个数值,输出为8位。首先利用MATLAB或C语言编程对正弦函数进行采样,然后对采样数据进行二进制转换,其结果作为查找表地址的数值。参照EDA技术使用教程课本P163-164方法,用C语言编写的正弦函数数据采样集程序如下:#include “stdio.h”#include “math.h”Main()int I;Float s;For(i=1;i1
14、024;i+)s=sin(actan(1)*8*i/1024);Printf(“%d,%d;n”,(int)(s+1)*1023/2);然后将得到的所需波形数据数据填入MIF文件表中,如图111所示表。利用Mega Wizard Plug-In Manager 定制正弦信号数据ROM宏功能块,并将以上波形数据加载于此ROM中。具体步骤参考课本P165。 图111波形数据MIF文件表 (2)正弦查找表模块所用VHDL程序:- megafunction wizard: %LPM_ROM%有省略部分LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY al
15、tera_mf;USE altera_mf.all;ENTITY rom IS PORT ( address : IN STD_LOGIC_VECTOR (5 DOWNTO 0); clock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );END rom;ARCHITECTURE SYN OF rom IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (7 DOWNTO 0); COMPONENT altsyncram GENERIC ( address_aclr_a : STRING; init_
16、file : STRING; intended_device_family : STRING; lpm_hint : STRING; lpm_type : STRING; numwords_a : NATURAL; operation_mode : STRING; outdata_aclr_a : STRING; outdata_reg_a : STRING; widthad_a : NATURAL; width_a : NATURAL; width_byteena_a : NATURAL ); PORT ( clock0 : IN STD_LOGIC ; address_a : IN STD
17、_LOGIC_VECTOR (5 DOWNTO 0); q_a : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT;BEGIN q NONE, init_file = rom.mif, intended_device_family = Cyclone, lpm_hint = ENABLE_RUNTIME_MOD=NO, lpm_type = altsyncram, numwords_a = 64, operation_mode = ROM, outdata_aclr_a = NONE, outdata_reg_a = CLOCK0, wid
18、thad_a = 6, width_a = 8, width_byteena_a = 1 ) PORT MAP ( clock0 = clock, address_a = address, q_a = sub_wire0 );END SYN; 后面的程序略。(3)模块功能仿真:如图112所示 图112 正弦查找表仿真图(4)分析:由图112 中得知,五、总体(顶层)电路原理图1.总体(顶层)电路原理图,如图113所示 图113 DDS.vhd顶层原理图根据图113,输入信号有时钟输入CLK,时能端EN,复位端RESET,频率控制字K,输出信号为Q。整个系统各个模块是在同步时钟信号CLK的控制下协调工作的。(2)整体仿真结果:如图114 图114 DDS仿真图有仿真结果可验证输出的数据是正确的所需波形数据。(3)管脚分配图:如图115 图115 管脚分配图(4)EDA实验箱验证结果:如图116所示 图116输出波形
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1