直接数字频率合成器(DDS)_第1页
直接数字频率合成器(DDS)_第2页
直接数字频率合成器(DDS)_第3页
直接数字频率合成器(DDS)_第4页
直接数字频率合成器(DDS)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 设计说明1.1 设计内容利用QuartusII软件和SmartSOPC实验箱设计一个频率及相位均可控制的具有正弦和余弦输出的直接数字频率合成器(Direct Digital Frequency Synthesizer 简称DDFS或DDS)。1.2 设计目的(1)学习EDA集成工具软件QuartusII的使用; (2)学习基于可编程逻辑器件的EDA设计流程; (3)学会基于可编程逻辑器件的电路设计。1.3 设计要求1.3.1 基本要求(1)利用QuartusII软件和SmartSOPC实验箱实现DDS的设计;(2)DDS中的波形存储器模块用Altera公司的Cyclone系列FPGA芯片中的

2、RAM实现,RAM结构配置成21210类型;(3)具体参数要求:频率控制字K取4位;基准频率fc=1MHz,由实验板上的系统时钟分频得到;(4)系统具有使能功能;(5)利用实验箱上的D/A转换器件将ROM输出的数字信号转换为模拟信号,能够通过示波器观察到正弦波形;(6)通过开关(实验箱上的Ki)输入DDS的频率和相位控制字,并能用示波器观察加以验证。1.3.2 提高要求(1)通过按键(实验箱上的Si)输入DDS的频率和相位控制字,以扩大频率控制和相位控制的范围;(注意:按键后有消颤电路);(2)在数码管上显示生成的波形频率;(3)设计能输出多种波形(三角波、锯齿波、方波等)的多功能波形发生器;

3、(4)充分考虑ROM结构及正弦函数的特点,进行合理的配置,提高计算精度;(5)基于DDS的AM调制器的设计;(6)自己添加其他功能。1.4 设计原理1.4.1 DDS概念DDS是将先进的数字处理理论与方法引入频率合成的一项新技术,DDS把一系列数字量形式的信号通过数/模转换器转换成模拟量形式的信号。在本系统中,DDS的具体工作过程是由N位相位累加器、N位加法器和N位累加寄存器组成。每来一个时钟脉冲,N位加法器将频率控制字K与N位累加寄存器输出的累加相位数据相加,并把相加后的结果送至累加寄存器的输入端。累加寄存器一方面将上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,使加法器在下一时

4、钟的作用下继续与频率控制字K相加;另一方面将这个值作为取样地址送入幅度/相位转换电路,幅度/相位转换电路根据这个地址输出相应的波形数据。1.4.2 DDS组成及工作原理主电路是由脉冲信号发生电路利用分频器产生1MHz的时钟信号,该时钟信号驱动地址累加电路循环产生12位地址信息。产生的地址信息同时输出到各种预存好函数信息的ROM的地址端,根据这一地址,各ROM便会输出地址所对应的函数值,再通过数据选通模块,根据我们的需要选择输出某路函数信息,送至实验箱上的D/A芯片,便能将二进制信息变为模拟量,最后用低通滤波器滤除高频分量,送至示波器便能输出较为清晰的函数图像。DDS的组成及其工作原理结构图如图

5、1.1所示:图1.1 DDS的组成及工作原理结构框图(1)频率预置与调节电路频率预置电路输入有清零、使能和频率控制字,频率控制字改变函数频率的原理主要是通过改变累加的步长改变输出信号的频率,没有频率控制字的时候,步长默认为1,当改变频率控制字为n时,频率则变为f/n. (2)累加器地址累加模块原理并不复杂,其主要由加法器和寄存器构成,累加的地址结果存储在寄存器中,每当一个时钟来到,原地址便加上预置的频率控制字成为新的地址并保存在寄存器中,以供稳定输出供ROM选择数据使用。相位累加器如图1.2所示,当相位累加器累加满量时就会产生一次溢出,完成一个周期性的动作,相位累加器的组成= N位加法器+N位

6、寄存器。图1.2 N位相位累加器(3)波形存储器ROM模块是本系统的核心部分之一,该模块中储存了所需要的函数信息,用Matlab生成储存函数信息的. mif文件,再用Quartus II 中编辑好的LPM ROM模块便能轻松产生对应的ROM模块,该系统所用的ROM有12位的地址线和10位的数据线,ROM中共有4096个数值。其原理图如图1.3所示:图1.3 波形存储器(4)D/A转换器D/A转换器的作用:把已经合成的正弦波的数字量转换成模拟量。其原理如图1.4所示:图1.4 D/A转换器工作原理图(5)低通滤波器 低通滤波器的作用:滤除生成的阶梯形正弦波中的高频成分,将其变成光滑的正弦波。如图

7、1.5所示:图1.5 低通滤波器工作原理(6)核心单元电路及工作流程DDS的基本结构主要由相位累加器、相位调制器、正弦波数据表(ROM)、D/A转换器构成。相位累加器由N位加法器N位寄存器构成。每来一个CLOCK,加法器就将频率控制字fwrod与累加寄存器输出的累加相位数据相加,相加的结果又反馈送至累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此,相位累加器在每一个时钟脉冲输入时,把频率控制字累加以此,相位累加器输出的数据作为波形存储器的相位取样地址,这样就可把存储在波形存储器内的波形抽样值进行

8、找表查出,完成相位到幅值的转换。频率和相位均可控制的具有正弦和余弦输出的DDS核心单元电路及其工作流程示意图如图1.6所示图1.6 核心单元电路及工作流程示意图2 实验电路设计2.1 电路总体设计图图2.1 总体电路设计图由电路总图可以直观的看出,该电路由5个模块组成,它们分别是分频电路、累加器及频率相位控制电路、显示电路、消颤电路和测频电路。在下文中将会对各个模块加以详细说明。2.2 各模块设计2.2.1 分频电路该实验平台已经提供了48MHz的时钟频率,本系统使用的基准频率是1Mhz的时钟频率,因此我们需要对48Mhz进行48分频,但是动态显示电路也需要1Khz、1Hz和0.5Hz的时钟,

9、因此我们需要设计多个分频器组合得到各种我们所需要的频率。(1)二分频二分频电路就是一个D触发器,其原理图如下所示:图2.2 二分频电路图封装后:图2.3 二分频封装图仿真波形图:图2.4 二分频波形图(2)三分频三分频电路由两个D触发器来实现,其原理图如下所示;图2.5 三分频电路图封装后:图2.6 三分频封装图波形仿真图:图2.7 三分频波形图(3)八分频 八分频是由3个二分频串联而成。如下图所示:图2.8 八分频电路图波形仿真图:图2.9 八分频波形图(4)十分频电路十分频电路是由74163来实现,如下图所示:图2.10 十分频电路图封装后:图2.11 十分频封装图(5)1000分频100

10、0分频是由3个十分频电路串联而成,其电路图如下所示:图2.11 1000分频电路图(6)分频电路总设计图图2.12 总分频电路封装后:图2.13 总分频封装图2.2.2 频率相位控制电路累加电路主要由加法器和寄存器构成,累加的地址结果存储在寄存器中,每当一个时钟来到,原地址便加上预置的频率控制字成为新的地址并保存在寄存器中,以供稳定输出供ROM选择数据使用。频率预置与调节电路由四部分组成,首先需将输入信号进行模100的计数,在将所记的8421BCD码转化为2进制数,以控制频率域相位的变化。该设计实现一个频率和相位自动递增的过程。频率变化范围由100HZ-8KHZ。通过开关K1和K2分别控制频率

11、的清零和保持端,以便计数到需要值时清零重新开始递增和保持同一频率显示。K3、K4作为相位控制按钮,与频率控制相同分别为清零和保持端。模100位计数器电路模100位计数器电路由两片74160芯片组成。利用74160的异步清零并输出来实现100位计数器,其原理图如下所示:图2.14 模100计数器电路图封装后:图2.15 模100计数器封装图(2)8421BCDbin2电路模100的输出信号经两片74184 BCD二进制转换芯片实现二进制转换。其原理如下所示:图2.16 8421BCDbin2电路图封装后:图2.17 8421BCDbin2封装图(3)频率控制电路频率控制电路由2片带公共时钟和复位

12、六D触发器74174组成。输出结果由累加器累加,实现频率自动按照一定步长累加变化。电路图如下所示:图2.18 频率控制电路图封装后:图2.19 频率控制封装图(4)相位控制电路相位控制电路实现对产生波形相位进行控制。电路由2片带公共时钟和复位六D触发器74174组成。相位控制字从74174输入端输入,送入后面的加法器。高四位,低8位置零,这样相位的变化能更明显。电路图如下所示:图2.20 相位控制电路图封装后:图2.21 相位控制封装(5)加法器加法器由3片4位加法器7483级联实现,使得4位频率控制字和4位相位控制字和寄存器里的内容不断相加。这里要注意的是频率控制字和寄存器的低四位相加,而相

13、位控制字是和寄存器的高四位相加,因为如果相位控制字和低四位相加的话,改变相位控制字的时候就不能再示波器上看出相位的明显变化。由于要求N=12,故选用2片寄存器74174组成12位寄存器。电路图连接如下:图2.22 加法器电路图封装后:图2.23 加法器封装图(6)累加器累加器由3片7483全加器和2片74174寄存器构成。每来一个时钟脉冲,加法器就将步长与寄存器输出的累加相位数据相加,再把相加后的结果送至寄存器的数据输入端。寄存器将加法器在上一个时钟作用后所产生的相位数据反馈到加法器的输入端;以使加法器在下一个时钟作用下继续与频率控制字进行相加。这样,相位累加器在时钟的作用下,进行相位累加。当

14、相位累加器达到满量时就会产生一次溢出,完成一个周期性的动作。因为ROM中设定的相位取样地址为12位,而本实验中我们取频率控制字K=4,所以将频率步长k3.0加在低4位,高8位置0。第一片7483产生的进位进入到第二片7483进行累加,依次往后从而实现累加的过程。其电路图如下图所示:图2.24 累加器电路图封装后:图2.25 累加器封装图(7)频率相位控制电路图图2.26 频率相位控制电路图2.2.3 波形存储器电路本实验中波形存储器模块用Altera公司的Cyclone系列FPGA芯片中的RAM实现,RAM结构配置成21210类型,其作用就是进行波形-幅值转换。利用下面的波形函数,通过C+编程

15、得到生产ROM的*.mif文件。正弦sin.mif程序如下:for i=1:1:4096 a(i,1)=i-1;endfor j=1:1:4096 a(j,2)=round(29-0.5)*sin(2*pi*(j-1)/212)+29-0.5);end fid=fopen(sin.txt,wt);fprintf(fid,%g : %g ;n ,a);fclose(fid);WIDTH=10;DEPTH=4096;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENT BEGIN余弦cos.mif程序如下:for i=1:1:4096 a(i,1)=i-1;endfor

16、 j=1:1:4096 a(j,2)=round(28)*cos(2*pi*(j-1)/212)+29-0.5);end fid=fopen(cos.mif,wt);fprintf(fid,%g : %g ;n ,a);fclose(fid);三角波sanjiaobo.mif程序如下: for i=1:1:4096 a(i,1)=i-1;endfor j=1:1:1024 a(j,2)=round(0.5*j+512);end for j=1025:1:3072 a(j,2)=round(1024-0.5*(j-1024);end for j=3073:1:4096 a(j,2)=round(

17、0.5*(j-3072);endfid=fopen(sanjiaobo.mif,wt);fprintf(fid,%g : %g ;n ,a);fclose(fid);方波fangbo.mif程序如下:for i=1:1:4096 a(i,1)=i-1;endfor j=1:1:2048 a(j,2)=1000;end for j=2049:1:4096 a(j,2)=100;end fid=fopen(fangbo.mif,wt);fprintf(fid,%g : %g ;n ,a);fclose(fid);锯齿波juchibo.mif程序如下:for i=1:1:4096 a(i,1)=i-

18、1;endfor j=1:1:4096 a(j,2)=round(j*0.25);end fid=fopen(juchibo.mif,wt);fprintf(fid,%g : %g ;n ,a);fclose(fid);建立ROM封装电路步骤如下:(1)新建Block Diagram/Schematic File文件,在名称栏输入lpm_rom,并点击OK;(2)在输出文件类型中选择VHDL,填写对应ROM文件的文件名,点击Next;(3)Wide和Memeory分别设置为10bit和4096words,点击Next;(4)在File name中选择对应*.mif文件路径,点击Next,再点击

19、Finish,结束创建。以上5种不同波形的ROM的创建方式均相同,可以得到封装好的ROM如下图所示: 图2.27 5种ROM封装图2.2.4 波形选择电路波形选择电路实现在余弦、三角波、方波和锯齿波中选择一个波形输出,通过开关K5和K6控制数据选择器地址端,来选择波形。电路封装后如下图所示:图2.28 波形选择封装图2.2.5 显示电路测频显示、频率字和相位字的显示共8位,一共8路信号。因此我使用八选一数据选择器依次选择八路信号单独通过译码器7447,并使用3-8译码器控制对应的数码管显示。而对于显示信号的输出,只需要使用一个模8计数器不断的循环计数就可以简单的实现控制。其中高四位显示测频电路

20、测出的频率,低四位显示相位和频率的步长。电路如下图所示:图2.29 显示电路图封装后:图2.30 显示电路封装图2.2.6 消颤电路为避免输出波形有毛刺,因为D触发器对毛刺不敏感,只是在时钟来时输出,所以设计了6个D触发寄存器来消除毛刺。电路图如下所示:图2.31 消颤电路图封装后:图2.32 消颤电路封装图2.2.7 测频电路测频就是计算1秒钟内脉冲的个数。我们利用计数器和锁存器实现这一功能。由于累加器以频率控制字K为间隔,当累加器满量时就会产生一次溢出,完成一次周期性的动作,这个周期也就是DDS信号的一个频率周期,所以将累加器的最高位作为测频电路技术器的脉冲。将1HZ的时钟信号二分频,得到

21、0.5Hz。将0.5Hz脉冲送入锁存器的时钟端,0.5Hz反相延时后的脉冲送入计数器的清零端。这样就使计数器在2s的脉冲周期内,1s内清零,1s内计数。由于锁存器的脉冲和计数器的脉冲是反相的,且有一定的延时,所以当锁存器有效脉冲来到时,计数器是清零状态,锁存器就锁存前1s内计数器的计数信号。这样就完成了1s内的脉冲计数,再将锁存器的输出送入译码显示电路,就可以在数码管上显示波形频率。其电路原理如下所示图2.33 测频电路图封装后:图2.34 测频电路封装图3 调试仿真及下载3.1 调试先保存,将上述电路以字母输入方式输入并保存在工程文件夹中。再将文件置顶,最后进行编译,在主菜单 中选择proc

22、essing项,在弹出的对话框中选择Start complication键,则编译开始。在编译过程中,若有任何信息、错误和警告消息,都将显示在自动打开的Message-Compiler窗口中;若由于文件出错而没有通过,则需要返回原文件进行修改,修改后存盘,再编译直至文件通过。3.2 仿真新建一个“Vector Waveform file”文件,并在下拉列表中选.vwf扩展名,生成波形文件。右键单击,在弹出的菜单中选Enter Nodes Frome SNF,在弹出的对话框中选择要观测的节点。选OptionGrid Size和FileEnd Time,设置相应选项,并给输入引脚加上适当的信号。然

23、后,选FileSave保存。接着选择主菜单中的Simulator项,打开模拟器,点击Start开始仿真。3.3 下载(1)在主菜单Assignments中选择Device项,在弹出的对话框中选择相应的器件EP1C12Q240C8。(2) 在主菜单Assignments 选“Pins”,打开平面布置图编辑器窗口,将设计的电路图中的各输入输出锁定在相应的管脚上。具体管脚分配如下图所示:图3.1 管脚分配图(3) 在主菜单选FileSave保存文件,再次编译项目,生成.sof文件,以用于下载。(4) 在主菜单Tools 选Programmer,在弹出的对话框中单击start,即可完成下载。(5) 要

24、注意在实验的不同阶段,系统板上各短路帽、跳线帽的插拔与否。4 实验结果4.1 仿真结果图4.1 总电路仿真波形4.2 示波器结果图4.2 实验线路连接图图4.3 正弦和余弦波图4.4 正弦和三角波图4.5 正弦和锯齿波图4.6 正弦和方波图4.7 测频显示4.3 实验结果不论是波形仿真结果还是实验箱实际调试结果都是符合设计要求的。(1)拨动清零开关K1,用示波器检测,能观察到到频率不断增加的双路输出的正余弦函数波形;(2)拨动使能开关K2,系统输出的双路输出的正余弦函数波形频率保持不变;拨动相位控制字调节开关K3、K3,当K7K6对应的二进制码为00时,为默认输出状态,两路正余弦波形相位差为/2;为01时,两波形相位差为;为10时,两波形相位差为3/2;为11时,两波形相位差为0;(3)拨动选择输出控制开关K5、K4,当K5K4对应的二进制码为00时,为默认输出状态,输出两路正余弦波形;为01时,只输出方波波形;为10时,只输出三角波波形;为11时,只输出矩形脉冲函数波形;(4)测频电路能准确、稳定工作,当调整频率控制字稳定后,数码管的能显示当前波形的频率,与示波器上所测得的频率基本一致,只有很小的误差。5 设计感想在实验调试过程中遇到了一些问题,例如刚开始使用4位开关控制相位,但由于低位控制相位变化为/16,变化不明显,故采用了2个开关控制相位,调整后拨动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论