电子线路2629806679文档.docx

上传人:b****6 文档编号:7869179 上传时间:2023-01-26 格式:DOCX 页数:26 大小:620.27KB
下载 相关 举报
电子线路2629806679文档.docx_第1页
第1页 / 共26页
电子线路2629806679文档.docx_第2页
第2页 / 共26页
电子线路2629806679文档.docx_第3页
第3页 / 共26页
电子线路2629806679文档.docx_第4页
第4页 / 共26页
电子线路2629806679文档.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

电子线路2629806679文档.docx

《电子线路2629806679文档.docx》由会员分享,可在线阅读,更多相关《电子线路2629806679文档.docx(26页珍藏版)》请在冰豆网上搜索。

电子线路2629806679文档.docx

电子线路2629806679文档

南京理工大学

电子线路实验报告

——直接数字频率合成器(DDS)

 

作者:

王长胜

学号:

0904480128

学院(系):

电子工程与光电技术

专业:

信息对抗技术

 

花汉兵

指导老师:

实验日期:

10.31-11.04

摘要

报告内容为设计一个具有清零、使能、频率控制、输出多种波形(包括正余弦、三角波、锯齿波、方波)、经过D/A转换之后能在示波器上显示的直接数字频率合成器。

直接数字频率合成技术是一项非常实用的技术,它广泛的应用于数字通信系统。

报告分析了DDS的设计原理和整个电路的工作原理,介绍了ROM查找表设计和相位累加器设计,还分别说明了各子模块的设计原理和调试、仿真、编程下载的过程。

在试验中我们用到了QuartusII7.0软件。

关键字

DDSROMQUARTUSII输出波形频率相位控制

Abstract

ThereporttellsDirectdigitalsynthesizercancontrolusing、reset、changefrequencyandphase、outputvariouswaveform(includingsine(cosine),trianglewave,sawtooth,squarewaveform)andafterconversionafteralsodisplayedontheoscilloscope。

Directdigitalsynthesizertechnologyisausefulsubject,it’swidelyappliedindigitalcommunication。

Also,itanalyzesthetheoryanddesignaboutdirectdigitalsynthesize(DDS)andanalyzedtheprincipleofallworkandexplainedthedesigningprincipleofdifferentpartsseparatelyanddescribestheprincipleandfeaturesofDDS。

TherealizingmethodofROMfinding-tableandphasecounterandintroducedindetail。

Atthesametimeitintroducedthedebugging,simulating,compiling,programming。

withthehelpofQuartusII7.0wecompletewell。

Keywords

DirectdigitalsynthesizerROMQuartusIIoutputvariouswaveform

frequencyandphase

实验要求说明………………………………………………….4

1、实验内容……………………………………………………4

2、实验目的……………………………………………………4

3、实验要求……………………………………………………4

整体电路设计原理…………………………………………….5

1、基本框图…………………………………………………….5

2、工作原理…………………………………………………….5

3、整体电路图……….…………………………………………6

各子模块设计原理…………………………………………….6

1、消颤电路…………………………………………………….6

2、脉冲发生电路……………………………………………….7

3、频率预置和调节电路………………………………………10

4、累加器………………………………………………………11

5、波形存储器…………………………………………………13

6、测频电路……………………………………………………15

7、转化电路(B-BCD)………………………………………….18

8、动态显示电路………………………………………………20

9、输出多波形………………………………………………….22

10、异或电路(提高精度)…………………………………...23

11、开关功能说明…………………………………...................24

调试、仿真、编程下载过程………………………………24

示波器波形…………………………………………….…...25

实验心得……………………………………………………26

参考文献……………………………………………………27

实验要求说明

1.实验内容

本实验的内容是使用DDS的方法设计一个任意频率的正弦信号发生器,利用Quartus

完成设计、仿真等工作,并进行硬件测试,通过示波器观察输出信号波形。

2.实验目的

学习使用FPGA实现直接数字频率合成器(DDS)。

3.实验要求

1)利用QuartusII软件和SmartSOPC实验箱实现DDS的设计;

2)DDS中的波形存储器模块用Altera公司的Cyclone系列FPGA芯片中的ROM实现,ROM结构配置成4096×10类型;

3)具体参数要求:

频率控制字K取4位;基准频率fc=1MHz,由实验板上的系统时钟分频得到;

4)系统具有清零和使能的功能;

5)利用实验箱上的D/A转换器件将ROM输出的数字信号转换为模拟信号,能够通过示波器观察到正弦波形;

6)通过开关控制改变DDS的频率和相位控制字,并能用示波器观察加以验证;

7)在数码管上显示生成的波形频率;

8)充分考虑ROM结构及正弦函数的特点,进行合理的配置,提高计算精度;

9)设计能输出多种波形(三角波、锯齿波、方波等)的多功能波形发生器;

10)考虑节省ROM空间的设计,例如只提供四分之一的波形或者半波形。

整体电路设计原理

一.基本框图

图1:

整体框图

4、工作原理

DDS的基本结构主要由相位累加器、相位调制器、正弦波数据表(ROM)、D/A转换器构成。

相位累加器由N位加法器N位寄存器构成。

每来一个CLOCK,加法器就将频率控制字fwrod与累加寄存器输出的累加相位数据相加,相加的结果又反馈送至累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。

这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。

由此,相位累加器在每一个时钟脉冲输入时,把频率控制字累加以此,相位累加器输出的数据作为波形存储器的相位取样地址,这样就可把存储在波形存储器内的波形抽样值进行找表查出,完成相位到幅值的转换。

由于相位累加器为N位,相当于把正弦信号在相位上的精度定为N位,所以分辨率为1/2N。

若系统时钟频率为fc,频率控制字fword为1,则输出频率为fOUT=fC/2N,这个频率相当于"基频"。

若fword为K,则输出频率为:

fout=K*fC/2N

当系统输入时钟频率fC不变时,输出信号的频率由频率控制字K所决定。

由上式可得:

K=2N*fout/fC

其中,K为频率字,注意K要取整,有时会有误差。

选取ROM的地址时,可以间隔选项,相位寄存器输出的位数D一般取10-16位,这种截取方法称为截断式用法,以减少ROM的容量。

D太大会导致ROM容量的成倍上升,而输出精度受D/A位数的限制未有很大改善。

DDS工作流程示意图:

图2:

工作流程

5、整体电路图

图3:

整体电路

图4:

整体电路仿真输出

各子模块设计原理

一、消颤电路

(1)引入原因:

一般的机械开关,在接通或断开的过程中,由于受触电金属片弹性影响,通常会产生一段脉冲式的振动。

如果将它装在电路当中,则会相应的引起一串电脉冲,若不采取措施,将造成电路的误操作,引起计数变成乱码。

在实验当中,用到8个开关(分别用于清零、保持,快速校分、快速校时、界面切换、分定时、时定时),对这8个开关都要进行消颤处理。

在实验中,我们用D触发器来实现消颤的。

(2)实现原理图如下:

原理图封装图

图4:

消颤开关实现原理

二、脉冲发生电路

脉冲发生电路,也就是分频电路,产生我们所需要的所有频率。

由于实验板上提供的是48MHz的脉冲信号,因此要得到测频脉冲即1Hz脉冲,必须经过多次分频。

分频顺序为:

48MHz→6MHz→1MHz→1kHz→1Hz,6MHz→2MHz主要采用由D触发器构成的二分频电路和同步十进制74160。

首先进行各个模块的设计,我们需要设计一个6分频,8分频和1000分频。

6分频:

2分频和3分频即组成一个6分频的电路,2分频的的设计思想即D触发器的

连接到D上,每经过一个周期反转一次,即组成一个二分频的电路。

3分频可以使用74160进行模三置数,具体的电路图如下:

图5:

六分频电路

图6:

六分频电路的仿真输出

8分频:

8分频的电路比较简单,可以用三个2分频的电路成8分频,电路图如下:

图7:

八分频电路

图8:

八分频电路的仿真输出

1000分频:

一个模1000的计数器由三个74160组成,采用同步计数法,计时钟信号有统一个时钟控制。

74160本身是模10的计数器,三个用前一个74160的进位信号控制后一个74160的使能端组成模1000的计数器,考虑到信号的带宽问题,开始使用进位信号,带宽太窄,效果太差,然后使用QD信号,在试验过程中发现QC的信号的带宽比QD还好,最终选择了QC。

电路图如下:

图9:

1000分频的电路图

图10:

1000分频电路的仿真输出

各个模块的封装图:

6分频8分频1000分频

图11:

各个模块的封装图

总的思想:

48MHz→8分频6MHz→6分频1MHz→1千分频1KHz→1千分频1Hz

3分频2MHz

图12:

分频电路

由于它们之间的倍数关系太大,48MHz到1Hz的仿真输出就不展示了。

此为分频点路的总的图样,分别输出2MHz,1KHz,1Hz。

图13:

分频点路的封装图

三、频率预置和调节电路

1)设计原理:

K为相位增量,也叫频率控制字。

DDS的输出频率表达式为fout=K*fC/2N,当K=1时,DDS输出最低频率(也即频率分辨率)为fc/2N,而DDS的最高输出频率由Nyquist采样定理决定,即fc/2,也就是说K的最大值为2N-1。

因此,只要N足够大,DDS可以得到很细的频率间隔。

要改变DDS的输出频率,只要改变频率控制字K即可。

设计模块时,用74161设计模16模块,1HZ信号输入让其变化。

该模块有清零和保持端,由开关控制,以便计数到需要值时保持或清零。

输出作为频率控制字低四位,高八位置零,输入累加器进行累加。

2)电路图:

图14:

字的步长(STEP)

四、累加器

1)设计原理:

相位累加器由12位加法器与12位寄存器级联构成。

每来一个时钟脉冲,加法器将频率控制字K与寄存器输出的累加相位数据相加,再把相加后的结果送至寄存器的数据输入端。

寄存器将加法器的上一个时钟作用后所产生的相位数据反馈至加法器的输入端,以使加法器在下一个时钟作用下继续与频率控制字进行相加。

这样,相位累加器在时钟作用下,进行相位累加。

当相位累加器累加满量时就会产生一次溢出,完成一个周期性的动作。

2)原理如

图16:

累加器

3)电路图如下:

加法器的电路图:

图17:

加法器(ADD)

寄存器的电路图:

图18:

寄存器(jicun)

加法器寄存器

图19:

封装图

图20:

累加器的仿真输出

内部图封装图

图21:

累加器

五、波形存储器

1)LPM_ROM的设定

利用VC程序产生ROM数据值,程序如下:

#include"stdio。

h"

#include"math。

h"

intmain(intargc,char*argv[])

{

inti;

doubles;

for(i=0;i<4096;i++)

{

s=sin(atan

(1)*8*i/4096);

printf("%d:

%x;\n",i,(int)((s+1)*1023/2));

}

return0;

}

上述程序编译后,生成一个可执行文件rogen。

exe,在DOS命令下执行:

rogen>sine。

mif

生成sine。

mif文件,再加上*。

mif文件的头部说明即可,

格式如下:

DEPTH=256;

WIDTH=10;

ADDRESS_RADIX=DEC;

DATA_RADIX=HEX;

CONTENT

BEGIN

END

然后把0~2047部分保留,把剩下的值改为最大值,即1023,即得出余弦和方波的组合:

在元器库中选取LPM-ROM,设置ROM的信息,数据宽度为10bits,数据个数为4096;设置ROM为寄存器输出,不需要时钟和异步清零信号;指定ROM的初始化数据来源,选择刚刚所生成的mif文件。

然后点击“finish”即可生成ROM单元了。

图22:

rom中数据的图形

图23:

rom的封装图

六、测频电路

1)设计原理:

测频就是计算1秒钟内脉冲的个数。

我们利用计数器和锁存器实现这一功能。

由于累加器以频率控制字K为间隔,当累加器满量时就会产生一次溢出,完成一次周期性的动作,这个周期也就是DDS信号的一个频率周期,所以将累加器的最高位作为测频电路技术器的脉冲。

将1HZ的时钟信号二分频,得到0.5Hz。

将0.5Hz脉冲送入锁存器的时钟端,0.5Hz反相延时后的脉冲送入计数器的清零端。

这样就使计数器在2s的脉冲周期内,1s内清零,1s内计数。

由于锁存器的脉冲和计数器的脉冲是反相的,且有一定的延时,所以当锁存器有效脉冲来到时,计数器是清零状态,锁存器就锁存前1s内计数器的计数信号。

这样就完成了1s内的脉冲计数,再将锁存器的输出送入译码显示电路,就可以在数码管上显示波形频率了。

2)原理如下图:

电路波形示意图如图24所示。

 

 

图24.测频电路波形示意图

单位时钟进过二分频之后得到周期为2秒的时钟信号,利用这个时钟信号,使计数器在1秒钟的时间内对待测信号进行计数,在下一秒的时间内对计数结果进行锁存并输出。

这里利用了反相器的演示效应,否则锁存器的输出永远都会是0000,而且在编译成功后进行仿真时会发现,功能仿真是输不出结果的,这就是因为软件进行的功能仿真是理想仿真,忽略了门电路的实际延时效应,所以即使计数器输出正确,锁存器的也还是没有结果输出的,只有将总电路下载到试验箱才能检测测频器是否正确。

 

电路图:

图25:

测频的计数器(ce1)

图26:

测频的寄存器(ce2)

图27:

测频电路(cepin)

七、转化电路(B-BCD)

频率控制字和相位控制字都是四位的二进制码,要转换成8421BCD码才能在数码管上显示。

输出频率本身就是8421BCD码,不需要转换。

频率控制字和相位控制字都是只有从0000到1111十六个状态,也就是从十进制的0到15,各需要2各数码管,加上频率的四位数正好需要8各数码管。

首先看频率控制字和相位控制字的转换电路。

频率控制字和相位控制字的数据类型相同,所以可以用同样的转换电路。

以下以频率控制字的转换为例。

本设计是依据下表来进行码制转换的。

表1.二进制与8421BCD码

频率控制字k

十进制个位(L[3..0])

十进制十位(M[3..0])

0000(0)

0000(0)

0000

0001

(1)

0001

(1)

0000

0010

(2)

0010

(2)

0000

0011(3)

0011(3)

0000

0100(4)

0100(4)

0000

0101(5)

0101(5)

0000

0110(6)

0110(6)

0000

0111(7)

0111(7)

0000

1000(8)

1000(8)

0000

1001(9)

1001(9)

0000

1010(10)

0000(0)

0001

1011(11)

0001

(1)

0001

1100(12)

0010

(2)

0001

1101(13)

0011(3)

0001

1110(14)

0100(4)

0001

1111(15)

0101(5)

0001

从上表可以一看出,当K从0000到1001时,也就是从0到9是1位数时,转换后的8421BCD只有个位计数,十位保持0000,并且此时个位L[3..0]=K;

当K从1010到1111,也就是从10到15上升为两位数时,转换后的8421BCD码十位一直保持是0001,个位是从0000到0101,也就是从0到5,所以此时个位L[3..0]=K-1010,也就是当K上升为两位数以后减去10就是转换后的个位。

所以设计电路如图15

图28.频率控制字码制转换电路(B-BCD)

图29:

转化电路的仿真输出

如图15所示,图中K[3..0]是频率控制字,首先通过一片4线16线译码器74154判断L是一位数还是两位数。

当L是一位数时,译码器只有q0—q9中的一个为0其余均为1;当L是两位数时,译码器只有q10—q15中的一个为0其余均为1。

所以,将q[9..0]全部与非得到信号c,将q[15..10]全部与非得到信号d,c和d不可能同时为1或者同时为0,当c=1时,可以判断L是一位数,当d=1时,可以判断L是两位数。

根据表2,当L是一位数即c=1时,L=K,M=0;当K是两位数即d=1时,L=K-10,M=1。

对于转换后的十位,只需要输出最后一位即可,因为M只有0000和0001两个状态,所以前三位全部置零,最后一位直接用d信号表示即可。

对于个位,当K是两位数时,L=K-10,减10即减1010,也即加上0101再加1,所以L=K-1010=K+0110,本设计采用一片4位加法器7483实现加法器输出P[3..0]信号。

所以现在再通过一个二选一电路就可以得到L[3..0]。

原理如下:

L[3..0]=c&K[3..0]+d&P[3..0]

这样频率控制字就从四位二进制数转换成为8421BCD码,可以在数码管上显示,相位控制字的转换原理同上。

八、动态显示电路

(1)原理:

按照实验要求,使用动态显示电路,即就是在某一时刻只有一个LED灯亮,但因为显示切换过程中频率特别高,利用人眼的视觉暂留特性是我们感到八个LED灯好像是同时亮起。

首先要设计一个32选4的数据选择器,从测频,频率控制字,相位控制字中选择一个值送入7447译码管中,同时控制相应七段数码管的位码DIG有效,即可实现在每一时刻点亮一个LED灯。

具体的实现过程在以下每步中给出。

(2)32选4显示电路原理图

先进行两两分组,1和2位,3和4位,5和6位,7和8位,奇数称为地位,偶数称为高位,用4片74157数据选择器分别选出其高位或低位,当SEL=0时,选择各自高位;SEL=1时选择低位。

1KHz的CLOCK输入的74160的计数器,以很高的频率循环选通三片74157的控制端SEL、使能端GN以及数码管的位码DIG。

1将计数器的QA端接入74157的控制选通端SEL,循坏选通高低位;

2计数器的QA,QB,QC,QD端接入三八译码器74138的控制端A,B,C,D循环选通Y0N~Y7N,用Y0N~Y7N控制数码管的位码DIG。

当Y0N、Y1N有效时使第一片74157的使能有效,即在输出000、001时1位和2位数据选择器使能端有效,000时SEL=0,选出的是频率控制字的的低四位即1位,001时SEL=1选出频率控制字的高四位即2位,相应的在000时DIG0输出低电平,共阴极的数码管位码输入有效,即会在实验板上最右端显示频率控制个位的输出。

001时DIG1有效,在右边第二位显示频率控制十位。

以此类推,从左到右顺序显示:

频率的千位,百位,十位,个位,相位控制字的十位,个位,频率控制字的十位,个位。

以下:

图30:

32选4原理图(32xuan4.bdf)

图31:

控制32选4选通及每一位在实验板上显示的位置(xuanLED.bdf)

图32:

总的显示原理图(XIANSHI.bdf)

九、输出多波形

多波形的输入主要使波形集成于一片rom中,前一半,即0~2047(000000000000~0111111111111)放入正弦波形,后2048~4096(1000000000000~1111111111111)放入方波,我们可以控制最高位的值来选择输出的波形,当最高位为0时,输出的波形为正弦波,当最高位为1时,输出的波形为方波,电路如下:

图33:

多波形控制(add3)

如上图,Q[11]被单独分离出来并接到开关上,我们人为的去控制波形的输出,当我们需要正弦波的输出时就把开关S4调到0,当我们需要放波的输出时就把开关S4调到1。

十、异或电路(提高精度)

多波形的输入主要使波形集成于一片rom中,前一半,即0~2047(000000000000~0111111111111)放入正弦波形,后2048~4096(1000000000000~1111111111111)放入方波,如图所示:

当累加器从000000000000~0111111111111时只扫描了正弦的半个周期,而剩下的半个周期我们要把它反褶下来,所以我们要利用Q[11](此Q[11]不是开关控制的,而是累加器输出的),当Q[11]为0时正常扫描,当Q[11]为1时进行反褶,所以可以把输出的数与Q[11]进行异或。

输出的数与0异或还为本身,与1异或即取相反的数,即只用一半的图像可以完成完整图像的输出,使其精度提高了二分之一。

封装图如下:

图34:

异或封装图

异或的电路图:

图35:

异或的电路结构

十、开关功能说明

开关

功能

key1

使频率控制字和相位控制字清零

key2

频率控制字计数开关:

k3=1频率控制字以1Hz的频率递增,k3=0保持当前的频率控制字

key3

相位控制字计数开关:

k3=1相位控制字以1Hz的频率递增,k3=0保持当前的相位控制字

key4

多输入波形切换,使波形在正弦方波,余弦锯齿波之见切换

调试、仿真、编程下载过程

调试

先保存,将上述电路以字母输入方式输入并保存在工程文件夹中。

再将文件置顶,最后进行编译,在主菜单中选择processing项,在弹出的对话框中选择Startcomplication键,则编译开始。

在编译过程中,若有任何信息、错误和警告消息,都将显示在自动打开的Message-Compiler窗口中;若由于文件出错而没有通过,则需要返回原文件进行修改,修改后存盘,再编译直至文件通过。

仿真

新建一个“VectorWaveformfile”文件,并在下拉列表中选.vwf扩展名,生成波形文件。

右键单击,在弹出的菜单中选EnterNodesFromeSNF,在弹出的对话框中选择要观测的节点。

选Option\GridSize和File\EndTime,设置相应选项,并给输入引脚加上适当的信号。

然后,选File\Save保存。

接着选择主

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1