数控移相信号发生器.docx
- 文档编号:30751200
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:16
- 大小:176.75KB
数控移相信号发生器.docx
《数控移相信号发生器.docx》由会员分享,可在线阅读,更多相关《数控移相信号发生器.docx(16页珍藏版)》请在冰豆网上搜索。
数控移相信号发生器
湖南人文科技学院
课程设计报告
课程名称:
VHDL语言与EDA课程设计
设计题目:
数控移相信号发生器
系别:
通信与控制工程系
专业:
电子信息工程
班级:
2008级1班
学生姓名:
叶小华稂雄伟
学号:
0840910608409141
起止日期:
2011年6月13日~2011年6月27日
指导教师:
田汉平周桃云岳舟
教研室主任:
谢四莲
指导教师评语:
指导教师签名:
年月日
成绩评定
项目
权重
成绩
叶小华
稂雄伟
1、设计过程中出勤、学习态度等方面
0.2
2、课程设计质量与答辩
0.5
3、设计报告书写及图纸规范程度
0.3
总成绩
教研室审核意见:
教研室主任签字:
年月日
教学系审核意见:
主任签字:
年月日
摘要
随着现代电子测量技术的发展,能够产生各种波形信号的数字式信号发生器的应用越来越广泛,本系统介绍了一种以DDS为基本单元的数字移相信号发生器的设计方法。
根据课题要求,我们需要设计一个数控移相信号发生器,能通过按键进行移相控制,每按一键增加或减小相位差1~2度,输出信号的频率为50KHZ。
输出波形峰-峰值大于2V。
根据本学期所学习的,我们利用QuartusⅡ和Matlab/Simulink之间的接口工具DSPBuilder来完成整个设计要求。
首先在Matlab中DSPBuild的Simulink中进行建模,系统仿真通过SignalCompiler将模型设计文件转换成相应的硬件描述语言(VHDL),在QuartusⅡ平台上进行综合生成网表文件,并适配下载至FPGA。
利用FPGA设计的DDS对整个功能的实现更为灵活,大大减少了外围硬件电路的设计,增加了系统的稳定性和可靠性。
设计者只需要掌握有关该设计所使用的软件即可自行设计,大大的简化了设计的过程。
关键词:
DDS,数控,信号发生器,移相,MATLAB
目录
设计要求1
1设计方案论证1
1.1方案一1
1.2方案二2
1.3方案选择2
2系统总体方案设计及实现3
2.1数控移相信号发生器设计3
2.1.1DDS3
2.1.2相位字输入的计算4
2.1.2输出波形峰峰值的计算5
2.1.3相位差的计算5
2.1.4数控移相信号发生器电路模型图5
2.1.5Simulink模型的仿真6
2.2SignalCompiler的使用6
2.2.1分析当前的模块6
2.2.2设置SignalCompiler6
2.2.3把模型文件MDL转换成VHDL6
2.2.4综合6
2.2.5QuartusⅡ试配6
2.3各模块的功能说明7
2.4嵌入式锁相环的设计8
2.5引脚的锁定8
3设计结果9
4设计结论10
5结束语及致谢11
6元器件及仪器设备明细表11
7参考文献11
数控移相信号发生器
设计要求
能通过按键进行移相控制,每按一键增加或减小相位差1~2度,输出信号的频率为50KHZ。
输出波形峰-峰值大于2V。
1设计方案论证
1.1方案一
图1方案一原理框图,该方案根据矩阵式键盘输入给FPGA送出频率控制字与相位控制字,用于设定输出正弦波的频率与相位。
高速D/A转换器用于正弦波的DA转换。
FPGA构成DDS的核心部分,用于接收送来的频率字与相位字,同时给DA转换器输出正弦波数据。
采用字符型液晶显示屏实时显示输出的频率与相位。
该方案需借助QuartusⅡ来完成。
1.2方案二
图2方案二原理框图,该方案是基于DSPBuilder与DDS并借助于MATLAB进行设计的。
首先在Matlab中DSPBuild的Simulink中进行建模,系统仿真通过SignalCompiler将模型设计文件转换成相应的硬件描述语言(VHDL),在QuartusⅡ平台上进行综合生成网表文件,并适配下载至FPGA。
在这个方案中,有两路正弦信号,一路为参考信号,另一路是可数控的移动信号,并且这两路可同步进行幅度和频率数控,即对于这两路输出的正弦信号,在相位、频率和幅度3个参数上都能完成等步长数控步进,而且还能对指定的参数进行设定。
1.3方案选择
方案一是基于QuartusⅡ,在设计的过程中,利用VHDL完成电路设计,必须借助于EDA工具中的综合器、适配器、时序仿真器和编程器等工具进行相应的处理,才能使此项设计在FPGA上完成硬件实现并得到硬件测试,在进行HDL文本输入设计流程中比较繁琐,而且容易出错。
而方案二是基于DSPBuilder进行手动流程设计,在设计过程中,DSPBuilder会自动完成VHDL的转换、综合、适配,而不像方案一那样要进行HDL文本输入,这样的话就能避免文本输入过程中的绝大多数错误。
因而我们选择方案二。
2系统总体方案设计及实现
2.1数控移相信号发生器设计
2.1.1DDS
图3是DDS基本结构原理图,它主要由相位累加器、相位调制器、正弦ROM查找表、D/A转换器等组成。
系统时钟clk由一个稳定的晶体振荡器产生,用来同步整个合成器的各组成部分。
同步寄存器的使用是为了当输入的频率字改变时不会干扰相位累加器的正常工作。
相位累加器是整个DDS的核心,它由N位加法器和N位相位寄存器级联构成,类似一个简单的加法器,完成上面推导中的相位累加功能。
每来一个时钟脉冲,加法器就将输入的N位频率字与相位寄存器输出的累加相位数据相加,然后将相加后的结果送至相位累加器的输入端,相位寄存器就将在上一个时钟作用后产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟的作用下继续将相位数据与输入的频率字相加。
当相位累加器累加满量(2π)时,就会产生一次溢出,完成一个周期性的动作,这个周期就是合成信号的一个周期,累加器的溢出频率就是DDS的合成信号频率。
相位调制器接收相位累加器的相位输出,并与一个相位偏移值相加,主要用于信号的相位调制,如PSK(相移键控)等。
在不使用时可去掉该部分,或加一个固定的相位字输入。
注意相位字输入也要用同步寄存器保持同步,但相位字输入的宽度M与频率字输入N往往是不相等的,一般M 正弦ROM查找表的作用是完成查表转换,或理解为相位到幅度的转换。 将相位累加器或相位调制器输出的相位数据作为取样地址,来寻找正弦ROM表进行相位到幅度的变换,输出不同的幅度编码。 经D/A转换器得到相应的阶梯波,最后经过低通滤波器对阶梯波进行平滑处理,得到由输入的频率字决定的连续变化的输出正弦波。 下面的即为基本DDS结构的常用参数计算公式: 输出频率: 频率字: 其中 是频率控制字, 为系统基准时钟的频率值,N为相位累加器的数据位宽,也是频率控制字的数据位宽。 频率控制字的可调整性使得系统输出频率非常容易调整。 输出正弦波频率f=fclk*frequword/2^20,系统时钟,频率控制字DDS系统时钟12MHz,异步于CPU时钟20bit频率控制字,8bit相位控制字,8bit数据输出每波形抽样256个点。 2.1.2相位字输入的计算 由DDS的频率输入字公式: 计算,式中N为相位累加器的数据位宽,也是频率输入字的数据位宽,fclk是系统基准时钟的频率值。 本设计中N=20,fclk=12MHZ,fout=50KHZ根据计算得出频率输入字为4369。 2.1.2输出波形峰峰值的计算 本设计中正弦查找模块输入地址为8位,输出位宽为10位,且输入地址总线为无符号整数,可设置起始值为0、结束值为2π、步进值为2π/26。 为了得到完整满度的波形输出,计算式可写成: 511*sin[0: 2*pi/2^8]: 2*pi]+512 2.1.3相位差的计算 因为本设计中是,8bit相位控制字,8bit数据输出每波形抽样2^8=256个点,所以每按一键增加或减小相位差为3600/256=1.400即符合设计要求。 2.1.4数控移相信号发生器电路模型图 基于DDS的数字移相信号发生器是整个系统的设计核心部分,其电路模型图如图4所示。 图4基于DDS的数控移相信号发生器MDL模型 2.1.5各模块的功能说明 (1)如图5所示,该部分实现相位累加器的功能。 图5相位累加器 (2)如图6所示,该部分是频率字输入,不同的频率字输入会使得信号输出波形的频率不同。 图6频率字输入 (3)如图7所示,该部分是输入地址为6位,输出值位宽为8的正弦查找表模块,且输入地址总线为无符号整数。 图7LUT模块 2.1.6Simulink模型的仿真 在Sinout模型编辑窗口中,选择Slimulation→Start命令,开始仿真,等待仿真结束后,双击Scope模块,打开Scope观察窗口。 2.2SignalCompiler的使用 2.2.1分析当前的模块 双击Sinout模型中的SignalCompiler模块,之后单击Analyze按钮后,SignalCompiler就会对Sinout模型进行分析,检查模型有无错误,并在MATLAB主窗口中弹出对话框,并给出相关信息。 2.2.2设置SignalCompiler SignalCompiler窗口中大致分为3个功能部分: 项目设置选项 硬件编译流程 信息框 2.2.3把模型文件MDL转换成VHDL 当设置好Device和Synthesis后,右侧的硬件编译部分就会列出一个操作: (1)ConvertMDLtoVHDL (2)Synthesis (3)QuartusⅡ 2.2.4综合 单击步骤 (2)的图标,完成综合过程。 2.2.5QuartusⅡ试配 单击步骤(3)的图标,调用QuartusⅡ完成编译试配过程,生成编译文件。 编译文件可以直接用于FPGA的编译配置。 2.3各模块的功能说明 (1)如图5所示,该部分实现相位累加器的功能。 图5相位累加器 (2)如图6所示,该部分是频率字输入,不同的频率字输入会使得信号输出波形的频率不同。 图6频率字输入 (3)如图7所示,该部分是输入地址为6位,输出值位宽为8的正弦查找表模块,且输入地址总线为无符号整数。 图7LUT模块 2.4嵌入式锁相环的设计 当输出波形频率较高时,由于采样一个完整周期的波形数据点数减少,势必引起波形失真,要消除波形失真,一是可以增加采样波形数据的点数,二是提高系统的主工作时钟频率。 若不增加外配ROM的情况下,可以使用后一种方法。 本系统设计时在充分利用FPGA的存储空间的情况下,为了提高波形的输出频率(在不失真的条件下),还使用了Cyclone器件中的嵌入式锁相环,提高系统的主工作时钟频率,在实际工作时的主时钟频率达12MHz。 其在QuartusⅡ下的仿真图如图5所示。 图5在QuartusⅡ下的仿真图 2.5引脚的锁定 设计中各引脚的锁定如图6所示。 本设计选择工作模式1,通过键盘控制波形输出的频率和相位,从而达到数控移相的目的。 其中,按1,2键控制相位的变化,按7键清零。 图6各引脚的锁定 3设计结果 最后D/A输出的信号经过滤波后得到的数字移相信号发生器输出波形如图3-1所示, 1. 图3-1数控移相信号发生器输出波形 4设计结论 通过设计和实验,得出以下结论: (1)本设计通过键盘控制波形输出的频率和相位,每按一键增加或减小相位差1~2度,输出信号的频率为50KHZ。 输出波形峰-峰值大于2V。 (2)波形失真度与储存波形ROM的位数及主工作时钟频率有关。 (3)使用FPGA中的嵌入式锁相环或者增加采样波形数据的点数(此时需要外配置ROM),可以大大提高主工作时钟的频率,消除波形失真。 采用哪种方法或同时采用两种方法,取决于实际应用的需要。 (4)基于FPGA和VHDL的在系统可重编程的特点,系统更新只需修改VHDL程序即可,无需重新制作系统。 (5)本设计中的电路灵活性好,可生成任意波形,频率分辨率高,转换速度快,稳定性好,精度高,且均可对频率、相位、幅度实现程控。 5结束语及致谢 经过两周的努力,设计小组完成了题目要求的全部要求。 在这要感谢各位老师平时的谆谆教导和耐心的辅导。 特别是田老师、周老师和岳老师,在我们设计过程中给予了我们设计小组详细的指导和各种中肯的批评和建议,让我们很快的解决设计过程中碰到的各种难题。 在此对于他们表示感谢和深深的敬意。 在完成课题的过程中我们的实践能力增强了许多,而且对相关的理论知识认识了更深。 6元器件及仪器设备明细表 设备与器件名 数量 备注 计算机 1台 MATLAB软件 1套 MATLAB7.0 DSPBuilder软件 1套 DSPBuilder6.0 Quartus开发软件 1套 QuartusII6.0 EDA实验箱 1个 GW48-PK2 数字示波器 1台 ADS7022S 7参考文献 [1].边计年,薛宏熙译.用VHDL设计电子线路.北京: 清华大学出版社,2000。 [2].黄正谨,徐坚等.CPLD系统设计技术入门与应用.北京: 电子工业出版社,2002。 [3].蒋璇,蔵春华.数学系统设计与PLD应用技术.北京: 电子工业出版社,2001。 [4].李宗伯,王蓉晖译.VHDL设计表示和综合.北京: 机械工业出版社,2002。 [5].潘松,黄继业,王国栋.现代DSP技术.西安: 西安电子科技大学出版社,2003。 [6].王金明,杨吉斌.数字系统设计与VerilogHDL.北京: 电子工业出版社,2002。 [7].王锁萍.电子设计自动化(EDA)教程.成都: 电子科技大学出版社,2000。 [8].徐志军,徐光辉.CPLD/FPGA开发与应用.北京: 电子工业出版社,2002。 [9].AlteraCorporation.AlteraDigitalLibrary.Altera,2002。 [10].XilinxInc.DataBook2001.Xilinx,2000。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数控 相信 发生器
![提示](https://static.bdocx.com/images/bang_tan.gif)