《电子线路专业课程设计DDS.doc》由会员分享,可在线阅读,更多相关《电子线路专业课程设计DDS.doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、电子线路课程设计直接数字频率合成器姓名: 学号:院系:电光学院指引教师: 完毕时间:目录摘要2ABSTRACT2一、实验设计内容及规定31、内容32、设计基本规定33、设计提高某些4二、设计方案4三、子模块电路设计61、分频模块6(1)2分频电路7(2)5分频电路7(3)48分频电路8(4)100分频电路9(5)1000分频电路92、频率,相位预制和调节模块10(1)频率控制字电路10(2)相位控制字电路11(3)同步寄存器123、累加器模块124、加法器模块135、波形存储器14(1)正弦波14(2)余弦波17四、提高设计某些181、按键输入频率或相位控制字18(1)二进制BCD码转码电路1
2、9(2)译码显示模块202、测频模块213、各种波形23(1)锯齿波23(2)方波24五、总电路26六、调试、仿真、下载26七、实验中遇到问题及解决办法27八、实验收获与体会28九、参照文献29摘要本报告重要简介设计一种具备清零、使能、频率控制、相位控制、输出各种波形(涉及正余弦、锯齿波、方波)、通过D/A转换之后能在示波器上显示直接数字频率合成器。报告分析了DDS设计原理及电路工作原理。电路设计借助了QuartusII 7.0软件,并在SmartSOPC实验系统中进行硬件测试核心词:QuartusII SmartSOPC 正弦波 频率控制 相位控制 测频Abstract The report
3、 mainly intraoduced designing Direct digital synthesizer can control using、reset、change frequency and phase、output various wave form(including sine(cosine), sawtooth, square waveform)and after conversion after also displayed on the oscilloscope。Bsides,it analyzes the theory of the designing DDS and
4、the working principle of the circuit.The whole design works on the QuartusII 7.0,and finally tested on the SmartSOPC system.Key words:QuartusII SmartSOPC Sine wave Frequency-controlling Phase-controlling Frequency-measuring直接数字频率合成器一、实验设计内容及规定1、内容设计一种频率及相位均可控制具备正弦和余弦输出直接数字频率合成器(Direct Digital Freque
5、ncy Synthesizer 简称DDFS或DDS)。2、设计基本规定1、 运用QuartusII软件和SmartSOPC实验箱实现DDS设计;DDS中波形存储器模块用Altera公司Cyclone系列FPGA芯片中RAM实现,RAM构造配备成10类型;2、 详细参数规定:频率控制字K取4位;基准频率fc=1MHz,由实验板上系统时钟分频得到;3、 系统具备使能功能;4、 运用实验箱上D/A转换器件将ROM输出数字信号转换为模仿信号,可以通过示波器观测到正弦波形;5、 通过开关(实验箱上Ki)输入DDS频率和相位控制字,并能用示波器观测加以验证;3、设计提高某些1、 通过按键(实验箱上Si)
6、输入DDS频率和相位控制字,以扩大频率控制和相位控制范畴;(注意:按键后有消颤电路)2、 可以同步输出正余弦两路正交信号;3、 在数码管上显示生成波形频率;4、 充分考虑ROM构造及正弦函数特点,进行合理配备,提高计算精度;5、 设计能输出各种波形(三角波、锯齿波、方波等)多功能波形发生器;6、 基于DDSAM调制器设计;7、 考虑节约ROM空间设计,例如只提供四分之一波形或者半波形;8、 自己添加其她功能。二、设计方案DDS基本构造重要由相位累加器、相位调制器、正弦波数据表(ROM)、D/A转换器构成。如下图:相位累加器由N位加法器N位寄存器构成。每来一种CLOCK,加法器就将频率控制字fw
7、rod与累加寄存器输出累加相位数据相加,相加成果又反馈送至累加寄存器数据输入端,以使加法器在下一种时钟脉冲作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此,相位累加器在每一种时钟脉冲输入时,把频率控制字累加以此,相位累加器输出数据作为波形存储器相位取样地址,这样就可把存储在波形存储器内波形抽样值进行找表查出,完毕相位到幅值转换。由于相位累加器为N位,相称于把正弦信号在相位上精度定为N位,因此辨别率为1/2N。若系统时钟频率为fc,频率控制字fword为1,则输出频率为fOUT=fC/2N,这个频率相称于基频。若fword为K,则输出频率为:fou
8、t=K* fC/2N当系统输入时钟频率fC不变时,输出信号频率由频率控制字K所决定。由上式可得:K=2N*fout/fC其中,K为频率字,注意K要取整,有时会有误差。选用ROM地址时,可以间隔选项,相位寄存器输出位数D普通取10-16位,这种截取办法称为截断式用法,以减少ROM容量。D太大会导致ROM容量成倍上升,而输出精度受D/A位数限制未有很大改进。DDS工作流程示意图:三、子模块电路设计1、分频模块48MHZ48分频2分频2分频1000分频5分频100分频1/2HZ1HZ2HZ1MHZ1KHZ (1)2分频电路2分频电路是通过将D触发器端与D端接在一起就可以从Q端得到触发器信号2分频信号
9、,电路图如下:波形图如下:(2)5分频电路5分频器可由模为5计数器构成,由最高位输出即可得输入信号5分频信号。模5计数器由一片74160通过反馈置零法构成。电路图如下:波形图如下:(3)48分频电路48分频器可由模为48计数器构成,由最高位输出即可得输入信号48分频信号。模48计数器由两片74160通过反馈置数法构成。电路图如下:波形图如下:(4)100分频电路100分频器可由模为100计数器构成,由最高位输出即可得输入信号100分频信号。模48计数器由两片片片74160直接串联构成。电路图如下:(5)1000分频电路1000分频电路原理与100分频电路类似,多串联一块74160.电路图如下:
10、2、频率,相位预制和调节模块K为相位增量,也叫频率控制字。DDS输出频率表达式为fout=K* fC/2N,当K=1时,DDS输出最低频率(也即频率辨别率)为fc/2N,相称于“基频”。因而,当系统输入时钟FCLK不变时,输出信号频率为频率控制字k控制。同步为了为了稳定输入频率控制字需在频率控制字电路后年加上同步寄存器电路。相位控制电路与频率控制电路类似。(1)频率控制字电路通过控制频率低8位,使频率在0Hz255Hz间变化,达到控制频率目电路图如下:(2)相位控制字电路通过控制相位高4位,使相位较大幅度变化,达到变化相位目。电路图如下:(3)同步寄存器为了保证输出频率控制字相位控制字信号稳定
11、,需在其电路后加上同步寄存器电路。电路图如下:3、累加器模块相位累加器构成= N位加法器+N位寄存器。累加器是由12位加法器和12位寄存器构成。累加器在时钟fc控制下以频率控制字K为步长进行累加运算,产生所需频率控制数据。寄存器在时钟控制下,将加法器每次计算成果寄存下来,以使加法器在下一种时钟作用下继续与频率控制字进行相加。同步寄存器在时钟控制下把累加成果送入相位控制模块。当相位累加器累加满量时就会产生一次溢出,完毕一种周期性动作。原理图:电路图如下:4、加法器模块12位加法器是为了相位累加器输出与相位控制字相加,由3个74834位加法器级联而成。与累加器加法器某些类似。电路图如下:5、波形存
12、储器波形存储模块功能重要是完毕从相位到幅值转换,因而它输入应当是对相位量化地址数据,输出应当是量化幅值数据。其原理框图如下:建立ROM环节为:建立空白工程 新建ROM宏单元初始化文献*.mif(4096/10) 在当前使用工程中建立ROM宏单元,并调用*.mif文献。(1)正弦波下面以正弦波波形存储器建立为例。其采样数据由VC+程序获得,其程序如下:正弦波#includestdio.h#includemath.hint main(int argc,char*argv) int i;double s;for(i=0;i4096;i+)s=sin(atan(1)*8*i/4096);printf(
13、%d:%x;n,i,(int)(s+1)*1023/2);return 0;将数据导入Excel,取整后得到建立*.mif文献所用数据。如下图所示:在元器库中选用LPM-ROM,设立ROM信息,数据宽度为10bits,数据个数为4096;设立ROM为寄存器输出,不需要时钟和异步清零信号;指定ROM初始化数据来源,选取刚刚所生成mif文献。然后点击“finish”即可生成ROM单元了。电路图如下:(2)余弦波同理可生成余弦波romVC+程序:#includestdio.h#includemath.hint main(int argc,char*argv) int i;double s;for(i
14、=0;i4096;i+)s=sin(atan(1)*8*i/4096);printf(%d:%x;n,i,(int)(s+1)*1023/2);return 0;Mif文献:四、提高设计某些1、按键输入频率或相位控制字设计原理:将频率或相位预制产生信号在数码管上显示,通过控制开关来控制频率或相位预制电路使能端,当数码管显示成果为自己需要时,保持住。其中开关控制电路很简朴即在频率或相位预制电路留下使能端和清零端接口。比较复杂是显示电路。由于频率或相位预制电路使用是74161,产生是二进制信号因此在输入到数码管前还需要进行二进制BCD码转换,需设计转码电路。(1)二进制BCD码转码电路电路由 8片
15、二进制BCD码转换器74185构成(2)译码显示模块译码显示电路原理框图如下:显示电路重要有24选4数据选取器,计数器、74138译码器、7447显示译码器构成。由于规定是动态显示,需要以足够高频率来分别显示时钟时位、分位和秒位。计数器作用是驱动24选4数据选取器分别选取时钟时位、分位和秒位送给显示译码器7447去驱动数码管发光,同步又要通过译码器74138来选取使用哪个数码管显示时钟时位、分位和秒位。由于时、分、秒每个都需要两个数码管来显示,因此计数器应当为模6计数器。24选4计数器可由3个74157构成,其中每个74157相似输出相或后充当新输出。实际电路图如下:2、测频模块设计原理:测频
16、是计算1秒钟内脉冲个数。由于累加器以频率控制字K为间隔,当累加器满量时就会产生一次溢出,意味着达到一种周期 ,这个周期就是输出信号频率周期,因此将累加器最高位也就是溢出位作为测频电路技术器脉冲。将0.5Hz脉冲送入锁存器时钟端,0.5Hz反相延时后脉冲作为锁存器CLK信号。由于锁存器脉冲和计数器脉冲是反相,且有一定延时,因此当锁存器有效脉冲来届时,计数器是清零状态,锁存器就锁存前1s内计数器计数信号。这样就完毕了1s内脉冲计数,再将输出送入译码显示电路,即可显示输出频率。要注意是由于FPGA平台只有8片数码显示管,前面在显示频率控制字及相位控制字已完全用掉,因此在显示输出频率时设计一种二选一用
17、开关控制选取输出内容。原理图:测频电路图:显示选取电路:3、各种波形各种波形原理比较简朴,即再设计几种波形rom,我设计了方波和锯齿波,再通过一种三选一选取输出波形。Rom设计前文已经详细简介,下面只列出VC+代码段:(1)锯齿波:#includestdio.h#includemath.hint main(int argc,char*argv) int i;int s;for(i=0;i4096;i+)s=i/4;printf(%d:%x;n,i,s);return 0;(2)方波:前半周期:#includestdio.h#includemath.hint main(int argc,char
18、*argv) int i;int s;for(i=0;i2048;i+)s=1023;printf(%d:%x;n,i,s);return 0;后半周期:#includestdio.h#includemath.hint main(int argc,char*argv) int i;int s;for(i=2048;i4096;i+)s=0;printf(%d:%x;n,i,s);return 0;波形选取电路图:电路图:五、总电路六、调试、仿真、下载选取“Processing-start complication”进行全编译,编译通过后要进行管脚分派,选取“AssignmentsPins”,如
19、图:在打开对话框中“Location”栏中选取相应管脚填入,并将未用到管脚置为三态,最后将程序下载到SmartSOPC实验系统中运营。七、实验中遇到问题及解决办法1、一方面是波形存储器这一模块很不熟悉,此前也没有遇到过。虽然教师上课提了一某些,但是自己操作起来还是遇到不少困难。于是我将波形存储这一某些放到最后做,并且在实际操作前又查了几次资料,并与同窗进行了交流才解决了问题。2、第一次下载时还是比较成功,但是却遇到了用作显示复选开关没有作用。起初自己觉得是电路问题,重新进行仿真之后,发现仿真成果并没有错误。阐明电路没有错误,于是检查管脚分派发现果然是开关管脚分派浮现了问题,修改过来后下载成功。
20、3、测频附加电路设计时,一开始采用方案是高四位数码管显示频率,低四位显示频率控制字或相位控制字,用开关进行频率或相位复选。日后实际操作时发现一种问题,所测频率范畴超过了高四位量程,查找资料后,发现实验指引书上提供了一种解决方案一种用小数点变化量程办法,但是自己没能完全搞懂,于是另寻办法。通过思考后,决定变化初始设计方案,高四位显示相位控制字,低四位显示频率比控制字,显示复选后用8位显示频率,成功解决了测频电路显示问题。八、实验收获与体会由于这次实验前一周刚做完eda多功能数字时钟实验,有了前一周实验基本,这次实验相对而言轻松了一点。但是自己收获依然诸多。一方面还是电路设计能力提高,这次实验设计
21、电路相对而言还是比较大。因此模块化设计在此时显得很重要。而这实验也着重锻炼了我模块化设计理念与能力。让我学会了如何合理规划模块设计模块,如何合理设计各模块之间接口。另一方面就是从事科研品质,细心仍旧是首位,一种小小错位也会导致成果面目全非。尚有就是学会思考,不能人云亦云,不能只会盲目模仿书上东西,要要自己思考,遇到问题时不能总是期待别人协助,要自己多思考去解决问题,这样自己能力才会提高,在做附加电路设计时我对这一点感触最深。此外还要学会沟通,与同窗于与教师之间沟通,多听取她人意见,你会到诸多收获。虽然每次做实验时候都是比较痛苦,特别是在下载时遇到问题,而自己又无从下手时。但一周实验做完,当自己在FPGA平台上运营成功是,那种满足感与成绩感足以冲淡所有先前辛苦,感觉自己付出也是值得。最后还是感谢谭雪琴教师尚有同窗在实验中予以我协助。九、参照文献1 数字逻辑电路与系统设计 蒋立平主编 电子工业出版社2 EDA设计实验指引书 南京理工大学电子技术中心