




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、直接数字频率合成器(DDS)设计 摘要直接数字合成(DDS)是一种数字式技术,产生的频率和相位可调输出信号引用到一个固定频率时钟源模块的精度数字数据技术。本质上,参考时钟脉冲频率间隔分开一个DDS结构提出的二进制控制字。控制字通常是24到48位长,使 DDS的实施提供优越的输出频率调谐分辨率。在日益竞争成本的今天,高性能,功能与作用相结合,DDS 产品正迅速地成为除传统的高速频率的模拟合成器解决办法之外的另一种选择。高速,高性能,D/A变换器和DDS结构到单片机(通常是一个完整DDS的解决办法)上的综合使这项技术能够瞄准广泛应用,而且在许多场合提供一种替代基于模拟的PLL合成器。在许多应用中,
2、使用DDS的解决方案拥有灵活的特性,相较模拟等效电路锁相环频率合成器它有一些独特的优势。DDS 优势: 微赫兹的输出频率和相位调整功能,这些全部在数字控制下完成。 极其快的调相输出频率(或者相位),相位频率连续无畸变/使未达到的相关模拟还原时间异常。 DDS数字化实现了消除了手工系统调谐的需要操控和零部件老化和温度模拟合成器解决办法。 DDS实现了数字的控制接口,当它在处理器下控制时系统可被遥控的环境变得容易、精确且尽可能完善。当它作为一个相位合成器时,DDS能够前所未有的匹配来控制I和Q的输出。 关键字直接频率合成器(DDS),任意的波形发生器,频率计 SummaryDirect digit
3、al synthesis (DDS) is a technique for using digital data processing blocks as a means to generate a frequency- and phase-tunable output signal referenced to a fixed-frequency precision clock source. In essence, the reference clock frequency is “divided down” in a DDS architecture by the scaling fact
4、or set forth in a programmable binary tuning word. The tuning word is typically 24-48 bits long which enables a DDS implementation to provide superior output frequency tuning resolution.Todays cost-competitive, high-performance, functionally-integrated, and small package-sized DDS products are fast
5、becoming an alternative to traditional frequency-agile analog synthesizer solutions. The integration of a high-speed, high-performance, D/A converter and DDS architecture onto a single chip (forming what is commonly known as a Complete-DDS solution) enabled this technology to target a wider range of
6、 applications and provide, in many cases, an attractive alternative to analog-based PLL synthesizers. For many applications, the DDS solution holds some distinct advantages over the equivalent agile analog frequency synthesizer employing PLL circuitry.DDS advantages:Micro-Hertz tuning resolution of
7、the output frequency and sub-degree phase tuning capability, all under complete digital control.Extremely fast “hopping speed” in tuning output frequency (or phase), phase-continuous frequency hops with no over/undershoot or analog-related loop settling time anomalies.The DDS digital architecture el
8、iminates the need for the manual system tuning and tweaking associated with component aging and temperature drift in analog synthesizer solutions.The digital control interface of the DDS architecture facilitates an environment where systems can be remotely controlled, and minutely optimized, under p
9、rocessor control.When utilized as a quadrature synthesizer, DDS afford unparalleled matching and control of I and Q synthesized outputs. KeywordsDirect digital synthesis (DDS),The generator of arbitrary wave form, Frequency measure目录I、 正文4一、设计要求说明4二、方案论证4三、各模块设计原理6 1、相位累加器6 2、建立ROM宏单元7 3、频率控制与相位控制模块
10、12 4、动态显示模块15 5、分频模块18 6、测频模块20 7、控制模块22四、总装图23五、编程下载24II、结论25III、参考文献25IV、实验感想26I、 正文一、 设计要求说明:本实验的内容是使用DDS的方法设计一个任意频率的正弦信号发生器,利用Quartus II完成设计、仿真等工作,并进行硬件测试。1、 基本要求:1) 利用QuartusII软件和SmartSOPC实验箱实现DDS的设计。2) 利用实验箱上的D/A转换器件将ROM输出的数字信号转换为模拟信号,能够通过示波器观察到正弦波形。3) 通过开关输入DDS的频率和相位控制字,可分别对波形的频率和相位进行调节,并能用示波
11、器观察加以验证。4) 设计实现一个频率计,可对波形频率加以测量,同时和示波器上显示的频率进行对比,绝对误差不能超过1Hz。2、 扩展要求:1) 设计能输出多种波形(三角波、锯齿波、方波等)的多功能波形发生器,并能通过开关对各种波形进行转换。2) 当ROM中只存储1/4个波形的时候,也能设计输出完整的波形。3) 可对输出的两路相位差进行测量,并且在数码管上显示。二、 方案论证:DDS即Direct Digital Synthesizer 数字合成器,是一种新型频率合成技术。具有相对带宽大、频率转换时间短、分辨力高、相位连续性好等优点,很容易实现频率、相位和幅度的数控调制,广泛应用于通讯领域。DD
12、S的基本结构如图2.1所示,主要由相位累加器、相位调制器、正弦波数据表(ROM)、D/A转换器构成。相位累加器由N位加法器N位寄存器构成。每来一个时CLOCK,加法器就将频率控制字fword与累加寄存器输出的累加相位数据相加,相加的结果又反馈送至累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。用相位累加器输出的数据作为波形存储器(ROM)的相位取
13、样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,由D/A转换器将数字信号转换成模拟信号输出,DDS信号波程示意图如图2.2所示。由于相位累加器为N位,相当于把正弦信号在相位上的精度定为N位(N的取值范围一般为2432),所以分辨率为1/2N。若系统时钟频率为Fclk,频率控制字fword为1,则输出频率为Fout=Fclk/2N,这个频率相当于“基频”。若fword 为B,则输出频率为:当系统输入时钟频率Fclk不变时,输出信号频率为频率控制字M所决定。由上式可得:其中B为频率字,注意B要取整,有时会有误差。选取
14、ROM的地址(即相位累加器的输出数据)时,可以间隔选项,相位寄存器输出的位数M一般取1016位,这种截取方法称为截断式用法,以减少ROM的容量。M太大会导致ROM容量的成倍一升,面输出精度受D/A位数的限制未有很大改善。图2.1 DDS的基本结构图ROMD/A低通滤波器相位累加器 图2.2 DDS工作流程示意图三、 各模块设计原理:1、 相位累加器:累加器由一个全加器和一个寄存器构成。从功能上看寄存器即是将输入的数据暂存,然后延时一个时钟频率后输出。可通过VHDL语言当中的IF语句实现。所以全加器和寄存器可以通过VHDL语言集成在一起,形成累加器。在累加的过程中,对频率控制字进行累加,对相位控
15、制字只加一次。整个累加器用VHDL语言描述如下:-累加器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity leijia2 isport( clk :in std_logic; ad_fw :in std_logic_vector(11 downto 0); -频率控制字 ad_pw :in std_logic_vector(11 downto 0); -相位控制字 result :buffer std_logic_vector(11 downto 0) ); end leijia2;a
16、rchitecture maxpld of leijia2 issignal res:std_logic_vector(11 downto 0);beginprocess(clk,ad_fw,ad_pw) begin if rising_edge(clk) then res=res+ad_fw; resultNew-Other Files 选中Memory Initialization file。之后会生成一个类似 Excel 的表单,我们只需要在每个的地址位置上填上相应的数据即可。如图3.6所示。图 3.6由于这手工填写的方法非常费时,所以最好的方法就是参照mif文件的格式,用程序或软件自动
17、生成一个mif文件,即是所说的第二种方法。在此介绍用C+语言生成ROM数据的方法,下面是产生ROM数据值的C+程序:#include stdio.h#include math.hint main(int argc, char *argv) int i=0; double s=0; for(i=0; isine.mif; /运行时要在romgen.exe文件所在的目录下生成sine.mif文件用记事本打开,加上如下所示的mif 文件的头部说明即可:DEPTH=4096; -数据个数为4096个WIDTH=10; -数据宽度为10bitsADDRESS_RADIX=DEC; -地址以10制显示DA
18、TA_RADIX=HEX; -数据以16进制显示CONTENTBEGIN -ROM的数据,每个数据必须占用一行,否则会错 ENDROM模块为图为:用相同的方法可实现三角波、锯齿波的ROM。3、 频率控制与相位控制模块:频率控制与相位控制一样,均是由一个模100计数器和一个BCD-二进制码转换器组成。模100计数器输出的是0100的BCD码,通过显示译码器之后可在数码管上显示。把模100计数器输出的BCD码输入BCD-二进制码转换器之后再分别输入到累加器的频率(ad_fw)、相位控制(ad_pw)端相加,就可实现对频率和相位的调节。1) 模100计数器由VHDL代码实现,具有清零功能,可级联。用
19、VHDL语言描述如下:-模100计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY cntm100 ISPORT(ci :in std_logic; -进位信号,输入 nreset :in std_logic; -清零信号(异步清零,低位有效),输入 clk :in std_logic; -时钟信号(下降沿触发),输入 co :out std_logic; -进位信号,输出 qh :buffer std_logic_vector(3 downto 0); -高位,输出 ql :bu
20、ffer std_logic_vector(3 downto 0) -低位,输出);END cntm100;ARCHITECTURE behave OF cntm100 ISBEGINco=1 when (qh=1001 and ql=1001 and ci=1) else 0;PROCESS(clk, nreset) BEGIN IF(nreset=0)THEN qh=0000; ql=0000; ELSIF(clk EVENT AND clk=0)THEN if(ci=1) then if(ql=9) then ql=0000; if(qh=9) then qh=0000; else qh
21、=qh+1; end if; else ql=ql+1; end if; end if; END IF; -END IF_resetEND PROCESS;END behave;模100计数器集成后模块为:模100计数器仿真波形为:2) BCD-二进制译码器由两个74184译码器组成。此处应该注意的是,由于计数器只能模100,译出的二进制码为只需7位,而ROM为12位。为了使接口匹配,我们可以在译出的二进制码前面加0或者在其后面加0。由于ROM中有4096(212)个样点。移相100位很不明显,也达不到设计要求。所以对于相位控制字在译码的时候我们在输出的二进制码后面添0,对于频率控制字在输出二
22、进制码前面添0即可。BCD-二进制译码器的74184组装图为:BCD-二进制译码器仿真波形为【BCD码(50)-二进制码()】:BCD-二进制译码器集成后模块为:模100计数器和BCD-二进制码译码器连接在一起即组成频率(相位)控制模块,组装图如下:4、 动态显示模块:动太显示模块由两部分构成,一是七选一控制电路,二是七段数码管显示译码器7447。理论上给七选一控制电路一个大于50Hz的频率(此处我们给1KHz),由于人眼的视觉暂留效应,我们仍然可以看到所有数码管均显示。七选一控制电路由VHDL代码实现,通进修改代码,最高可实现八路同时显示。用VHDL语言描述如下:-七选一的控制电路LIBRA
23、RY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY SEL ISPORT(CLK : IN STD_LOGIC; RST : IN STD_LOGIC; QIN1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN3 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN4 : IN STD_LOGIC_VECTO
24、R(3 DOWNTO 0); QIN5 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN6 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN7 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEL : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END SEL;ARCHITECTURE BEHAVE OF SEL ISBEGIN PROCESS(CLK,RST) VARIABLE CNT:INTEGER RANG
25、E 0 TO 6; BEGIN IF(RST=0) THEN CNT:=0; SEL=; QOUTQOUT=QIN1; SEL QOUT=QIN2; SEL QOUT=QIN3; SEL QOUT=QIN4; SEL QOUT=QIN5; SEL QOUT=QIN6; SEL QOUT=QIN7; SEL QOUT=QIN1; SEL =; END CASE; END IF; END PROCESS;END BEHAVE;七选一电路集成模块为:动态显示模块组装图为:动态显示集成模块图为:动态显示仿真图为(对QIN1=2时进行动显译码):5、 分频模块:分频器由VHDL编译形成。主要编程思想是,
26、设计一个变量用来计数,变量来的范围由分频数决定。前一半计数范围内使输出为0,后一半计数范围内使输出为1,即可实现分频,且占空比为50%。利用该思想,可轻易地对输入频率进行任意分频。本实验分频器可分出2KHz、1KHz、2Hz、1Hz、1MHz和0.5Hz的频率。用VHDL语言描述如下:-分频器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin1 is port(clk_in,reset : in std_logic;clk_out0,clk_out1,clk_out2,cl
27、k_out3,clk_out4,clk_out5 :out std_logic);end fenpin1;architecture structure of fenpin1 isconstant count0:integer:=24000;constant count1:integer:=48000;constant count2:integer:=;constant count3:integer:=;constant count4:integer:=48;constant count5:integer:=;begindivide_clk:process(clk_in,reset)variab
28、le n0:integer range 0 to 23999; variable n1:integer range 0 to 47999;variable n2:integer range 0 to ;variable n3:integer range 0 to ;variable n4:integer range 0 to 47;variable n5:integer range 0 to ;beginif (reset=1)thenn0:=0; n1:=0; n2:=0; n3:=0;clk_out0=0; clk_out1=0; clk_out2=0; clk_out3=0;clk_ou
29、t4=0;clk_out5=0;elsif falling_edge(clk_in)thenif(n0(count0/2)thenclk_out0=0;n0:=n0+1;elsif(n0count0)thenclk_out0=1;n0:=n0+1;elsen0:=0;end if; -2KHzif(n1(count1/2)thenclk_out1=0;n1:=n1+1;elsif(n1count1)thenclk_out1=1;n1:=n1+1;elsen1:=0;end if; -1KHzif(n2(count2/2)thenclk_out2=0;n2:=n2+1;elsif(n2count
30、2)thenclk_out2=1;n2:=n2+1;elsen2:=0;end if; -2Hzif(n3(count3/2)thenclk_out3=0;n3:=n3+1;elsif(n3count3)thenclk_out3=1;n3:=n3+1;elsen3:=0;end if; -1Hzif(n4(count4/2)thenclk_out4=0;n4:=n4+1;elsif(n4count4)thenclk_out4=1;n4:=n4+1;elsen4:=0;end if; -1MHz if(n5(count5/2)thenclk_out5=0;n5:=n5+1;elsif(n5cou
31、nt5)thenclk_out5=1;n5:=n5+1;elsen5:=0;end if; -0.5Hzend if;end process divide_clk;end architecture structure;分频器集成模块图为:分频器仿真图为:6、 测频模块:测频模块主要由两部分构成。一是模60K(本设计中频率最高为50K)的计数器,二是锁存器。模60K计数器由一个模60的计数器和一个模1000的计数器级联而成,前面已经讲过计数器的设计方法,这里不再赘述。至于锁存器即是将输入延时之后输出,用一个IF语句,条件为上升沿(或下降沿)到来即可实现.锁存器的时钟端输入0.5Hz的频率,同时将
32、0.5Hz频率进行反相延时之后输入模60K计数器的清零端。那么在2秒中之内,有1秒钟计数器在计数,1秒钟计数在清零。同时由于计数器中输入的0.5Hz经过了反相延时,所以正当计数器清零的时候锁存器将所计的1秒钟的脉冲个数(即是频率)锁存并输出到数码管显示。锁存器用VHDL语言描述如下:-锁存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY suocun ISPORT(LOAD :IN STD_LOGIC; DIN5 :IN STD_LOGIC_VECTOR(3 DOWNTO 0); D
33、IN4 :IN STD_LOGIC_VECTOR(3 DOWNTO 0); DIN3 :IN STD_LOGIC_VECTOR(3 DOWNTO 0); DIN2 :IN STD_LOGIC_VECTOR(3 DOWNTO 0); DIN1 :IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT5 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT4 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT3 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT2 :OUT STD_LOGIC_V
34、ECTOR(3 DOWNTO 0); DOUT1 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END;ARCHITECTURE BEHAVIOR OF suocun IS BEGIN PROCESS(LOAD,DIN1,DIN2,DIN3) BEGIN IF (LOAD EVENT AND LOAD=1) THEN DOUT5=DIN5; DOUT4=DIN4; DOUT3=DIN3; DOUT2=DIN2; DOUT1=DIN1; END IF; END PROCESS; END BEHAVIOR;测频器的总装图为:测频器仿真图为(图中显示频率为49Hz):7、
35、控制模块:在本实验中,由于数码管只有8个,但总共需要9个数码显示,所以需要将它们分开显示,并由一个开关控制。要显示两路正弦波,一路三角波和一路锯齿波,但D/A转换器只有两路,所以也需要控制开关对它们进行分开转换。本设计中控制模块依然由VHDL语言实现,设计思想大体等同于设计一个单刀双掷开关。当开关为1时输出一路,当开关为0时输出另外一路。两套控制模块设计大体相同,这里以分路进行D/A转换的设计为例,用VHDL语言实现如下:-ROM控制LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ROMKONG IS PORT(ROM1 :IN STD_LOGI
36、C_VECTOR(9 DOWNTO 0); ROM2 :IN STD_LOGIC_VECTOR(9 DOWNTO 0); key :IN STD_LOGIC; ROM :OUT STD_LOGIC_VECTOR(9 DOWNTO 0) );END ROMKONG;ARCHITECTURE behave OF ROMKONG IS BEGIN PROCESS(key) BEGIN IF (key=0) THEN ROM=ROM2; ELSE ROM=ROM1; END IF; END PROCESS;END behave;ROM控制集成模块图为:ROM控制模块仿真图为:四、 总装图:各模块设计完
37、成之后,对各模块按照图2.1所示的顶层图进行总装、调试。总装图如下:五、 编程下载:1、分配管脚在打开的Quartus II 7.0窗口中,选择“Assignments-Pins”,在Location下拉选择相应的管脚或直接输入相应的管脚号。管脚分配图如下:2、安全设置选择“Assignments-Setting”,在Device&Pin Options中点击Unused Pins标签页,设置不用的管脚为三态。3、全程编译选择“Processing”,在其下拉菜单中选择“Start Compilation”进行全程编译。4、下载点击工具栏上的 按钮,在Hardware Setup中点击Add
38、Hardware按钮,选定OK,将Hardware Setup改为ByteBlasterLPT1。在Program/configure列下的复选框中打勾后,点击 按钮,将电路下载至EDA实验系统的PLD器件中。下载结束后,实际操作,检查是否达到设计要求。II、 结论直接数字频率综合技术,即DDS技术,是一种新型的频率合成技术和信号产生方法。其电路系统具有较高的频率分辨率,可以实现快速的频率切换,并且在改变时能保持相位的连续,很容易实现频率、相位和幅度的数控调制。DDS在相对带宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能。DDS是利用采样定理,根据相位间隔对正弦信号进行取样、量化、编码,然后储存在ROM中构成一个正弦查询表,通过查表法产
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产业工人赋能新质生产力
- 民族工作培训课件
- 2025年耳鼻喉科常见疾病治疗方案考核答案及解析
- 挤压的概念及实计算
- 2025年肿瘤科恶性淋巴瘤分期与治疗模拟考试卷答案及解析
- 2025年肿瘤放疗计划设计模拟考试答案及解析
- 新质生产力理论与教育
- 2025年放射科医生影像学诊断实践考核答案及解析
- 2025年儿科感染性疾病诊治知识考核试卷答案及解析
- 2025年放射科常用影像学检查技术考核模拟答案及解析
- GB/T 11376-1997金属的磷酸盐转化膜
- FZ/T 64012.2-2001水刺法非织造布第2部分:卫生用卷材
- SCI论文的写作与发表课件
- 印刷产品检验报告
- 2022年贵州省人民医院医护人员招聘笔试试题及答案解析
- “数学悖论”-辛普森悖论
- 医疗器械临床试验GCP三套考试题
- 烧结岗位安全操作培训-PPT课件
- 【课件】1.2 点线传情——造型元素之点线面 课件-2021-2022学年高中美术人美版(2019)选修绘画
- 运动处方(课堂PPT)
- 物资储备与物流方案
评论
0/150
提交评论