版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 电子测量技术课程设计本文从dds基本原理出发,利用fpga来产生正弦波,可以实现频率和相位的控制和调节。相对于现在的dds芯片,fpga更加的灵活和方便。同时,也是未来得发展方向。一、设计要求 1基本要求(1)制作完成一路正弦波信号输出,频率范围20hz20khz;(2)具有频率设置和频率步进功能,频率步进10hz;(3)输出信号频率稳定度优于10-5,用示波器观察时无明显失真;(4)输出电压幅度:在10k负载电阻上的电压峰-峰值vopp20v;(5)数字显示正弦波的电压有效值、频率等,电压有效值精度5%,频率精度0.1%。2发挥部分(1)将正弦波输出信号扩展到三相输出,波形无明显失真,频率
2、可调范围扩展到1hz30khz,频率步进1hz;(2)在上述信号频率范围内,任两相间的相位差在0359范围内可任意预置,相位差步进1;(3)在1hz30khz频率范围内,增加矩形波输出信号,频率可任意预置,频率步进2hz,频率精度0.05%;矩形波信号的占空比可以预置,占空比步进,当占空比为时,误差;(4)信号发生器能输出载波频率约为10khz的调频信号输出,要求调制信号频率在100hz1khz频率范围内可变,用示波器观察载波信号无明显失真; 二、设计方案方案一:用专用的dds芯片adi公司的ad9959,ad9959可以实现最多16电平的频率、相位和幅度调制,还可以工作在线性调频、调相或调幅
3、模式。ad9959的应用范围包括相控阵列雷达卢纳系统、仪表、同步时钟和rf信号源,并且有4路带10位dac的dds通道,最高取样频率为500 msps,完全可以满足题目要求。方案二:fpga实现dds技术,把dds中的rom改用sram,sram作为一个波形抽样数据的公共存储器,只要改变存储波形信息的数据,就可以灵活地实现任意波形发生器。方案比较:方案一中使用到专用的dds芯片,利用专门dds芯片开发的信号源比较多,它们输出频率高、波形好、功能也较多,但它们的rom里一般都只存有一种波形(正弦波),加上一些外围电路也能产生少数几种波形,但速度受到很大的限制,因此使用不是很灵活。用fpga设计d
4、ds电路比采用专用dds芯片更为灵活。因为只要改变sram中的数据,就可以产生任意波形,因而具有相当大的灵活性。fpga芯片还支持在线升级,将dds设计嵌入到fpga芯片所构成的系统中,并采用流水线技术,其系统成本并不会增加多少,而购买专用芯片的价格则是前者的很多倍。因此,采用fpga来设计dds系统具有很高的性能价格比。因此我们选择方案一。三、单元模块设计本系统由fpga、单片机控制模块、键盘、lcd液晶显示屏、dac输出电路和稳压电源电路构成。用fpga实现直接数字频率合成技术(dds),产生正弦波、方波、三角波,合成fsk、ask、psk、am、fm 等信号。采用单片机atmage128
5、控制直接数字频率合成器(dds)的工作、按键及显示。整个系统结构紧凑,电路简单,功能强大,可扩展性强1. 系统框图2、fpga dds模块(参考附录)3、单片机最小系统级显示电路4、da转换器模块5、3路opa452,后级运算放大电路四、系统软件设计1、单片机显示控制程序流程图(如附录a)五、系统功能、指标参数1、系统功能:实现三相三相正弦信号输出设定输出误差506hz505.8hz0.2hz1000hz999.7hz0.3hz20548hz20547.5hz0.5hz50000hz49999.9hz0.1hz从以上数据可以得出,系统完全符合指标。测试仪器tektronix tds 2024b
6、 示波器 luyang yb1731b 3a dc power supply;数英 tfg3150l dds函数信号发生器六、设计总结 本设计提出了一种使用经济有效的低频信号发生器的设计方法,系统可以实现各种频率各种相位的输出,可以实现ask、fsk调制信号的输出,其他的调制信号也可在以后系统升级中需要的时候设置,也可在载波位10k模拟调频信号的输出,调制信号在100hz到1khz范围内可调。系统功能强大,更可以升级扩长,系统dds部分用的是 verilog hdl和vhdl混合编程实现,可以很方便的下载到fpga芯片中测试,可以得到广泛的应用。 参考文献 1信号与系统,alan v.oppe
7、nheim著,西安:西安交通大学出版社,1997年; 2vhdl高等教程,刘明业著,北京:清华大学出版社,2004年; 3verilog 数字系统设计,夏宇闻著,北京:北京航空航天大学出版社,2008年; 4基于fpga的dds调频信号得研究与实现,石伟,宋跃,李琳著,湖南:湖南科技大学,2000年;附录a 附录b 附录c dds得vhdl程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;use work.sine_lut_pkg.al
8、l;package dds_synthesizer_pkg is component dds_synthesizer generic( ftw_width : integer ); port( clk_i : in std_logic; rst_i : in std_logic; ftw_i : in std_logic_vector(ftw_width-1 downto 0); phase_i : in std_logic_vector(phase_width-1 downto 0); phase_o : out std_logic_vector(phase_width-1 downto 0
9、); ampl_o : out std_logic_vector(ampl_width-1 downto 0) ); end component;end dds_synthesizer_pkg;package body dds_synthesizer_pkg isend dds_synthesizer_pkg;- entity definitionlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;use work.sine_lut_pkg.a
10、ll;entity dds_synthesizer is generic( ftw_width : integer := 32 ); port( clk_i : in std_logic; rst_i : in std_logic; ftw_i : in std_logic_vector(ftw_width-1 downto 0); phase_i : in std_logic_vector(phase_width-1 downto 0); phase_o : out std_logic_vector(phase_width-1 downto 0); ampl_o : out std_logi
11、c_vector(ampl_width-1 downto 0) );end dds_synthesizer;architecture dds_synthesizer_arch of dds_synthesizer is signal ftw_accu : std_logic_vector(ftw_width-1 downto 0); signal phase : std_logic_vector(phase_width-1 downto 0); signal lut_in : std_logic_vector(phase_width-3 downto 0); signal lut_out :
12、std_logic_vector(ampl_width-1 downto 0); signal lut_out_delay : std_logic_vector(ampl_width-1 downto 0); signal lut_out_inv_delay : std_logic_vector(ampl_width-1 downto 0); signal quadrant_2_or_4 : std_logic; signal quadrant_3_or_4 : std_logic; signal quadrant_3_or_4_delay : std_logic; signal quadra
13、nt_3_or_4_2delay : std_logic;begin phase_o = phase; quadrant_2_or_4 = phase(phase_width-2); quadrant_3_or_4 = phase(phase_width-1); lut_in = phase(phase_width-3 downto 0) when quadrant_2_or_4 = 0 else conv_std_logic_vector(2*(phase_width-2)-conv_integer(phase(phase_width-3 downto 0), phase_width-2);
14、 ampl_o = lut_out_delay when quadrant_3_or_4_2delay = 0 else lut_out_inv_delay; process (clk_i, rst_i) begin if rst_i = 1 then ftw_accu 0); phase 0); elsif clk_ievent and clk_i = 1 then ftw_accu = conv_std_logic_vector(conv_integer(ftw_accu) + conv_integer(ftw_i), ftw_width); phase = conv_std_logic_
15、vector(conv_integer(ftw_accu(ftw_width-1 downto ftw_width-phase_width) + conv_integer(phase_i), phase_width); if quadrant_2_or_4 = 1 and phase(phase_width - 3 downto 0) = conv_std_logic_vector (0, phase_width - 2) then lut_out = conv_std_logic_vector(2*(ampl_width - 1) - 1, ampl_width); else lut_out = sine_lut(conv_integer(lut_in); end if; q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度生态园区场地租赁合同标准范本6篇
- 二零二五年新能源发电设施建设泥工劳务合同3篇
- 二零二五版海上货物运输合同适用范围与船舶代理服务合同3篇
- 二零二五年度环境安全检测技术服务合同2篇
- 二零二五年度防火门销售、推广及市场拓展合同3篇
- 二零二五版智慧城市基础设施建设项目施工合同6篇
- 二零二五版新材料研发中心与实验员劳务合同2篇
- 二零二五年度游戏运营合同3篇
- 二零二五版医疗器械贴牌研发及销售合同3篇
- 二零二五版304不锈钢建筑结构材料采购合同2篇
- 品质经理工作总结
- 供电抢修述职报告
- 集成电路设计工艺节点演进趋势
- 新型电力系统简介演示
- 特种设备行业团队建设工作方案
- 眼内炎患者护理查房课件
- 肯德基经营策略分析报告总结
- 买卖合同签订和履行风险控制
- 中央空调现场施工技术总结(附图)
- 水质-浊度的测定原始记录
- 数字美的智慧工业白皮书-2023.09
评论
0/150
提交评论