电子测量技术课程设计

上传人:1666****666 文档编号:37867043 上传时间:2021-11-04 格式:DOC 页数:14 大小:305.01KB
返回 下载 相关 举报
电子测量技术课程设计_第1页
第1页 / 共14页
电子测量技术课程设计_第2页
第2页 / 共14页
电子测量技术课程设计_第3页
第3页 / 共14页
点击查看更多>>
资源描述
电子测量技术课程设计本文从DDS基本原理出发,利用FPGA来产生正弦波,可以实现频率和相位的控制和调节。相对于现在的DDS芯片,FPGA更加的灵活和方便。同时,也是未来得发展方向。一、设计要求 1基本要求(1)制作完成一路正弦波信号输出,频率范围20Hz20kHz;(2)具有频率设置和频率步进功能,频率步进10Hz;(3)输出信号频率稳定度优于10-5,用示波器观察时无明显失真;(4)输出电压幅度:在10k负载电阻上的电压峰-峰值Vopp20V;(5)数字显示正弦波的电压有效值、频率等,电压有效值精度5%,频率精度0.1%。2发挥部分(1)将正弦波输出信号扩展到三相输出,波形无明显失真,频率可调范围扩展到1Hz30kHz,频率步进1Hz;(2)在上述信号频率范围内,任两相间的相位差在0359范围内可任意预置,相位差步进1;(3)在1Hz30kHz频率范围内,增加矩形波输出信号,频率可任意预置,频率步进2Hz,频率精度0.05%;矩形波信号的占空比可以预置,占空比步进,当占空比为时,误差;(4)信号发生器能输出载波频率约为10kHz的调频信号输出,要求调制信号频率在100Hz1kHz频率范围内可变,用示波器观察载波信号无明显失真; 二、设计方案方案一:用专用的DDS芯片ADI公司的AD9959,AD9959可以实现最多16电平的频率、相位和幅度调制,还可以工作在线性调频、调相或调幅模式。AD9959的应用范围包括相控阵列雷达卢纳系统、仪表、同步时钟和RF信号源,并且有4路带10位DAC的DDS通道,最高取样频率为500 MSPS,完全可以满足题目要求。方案二:FPGA实现DDS技术,把DDS中的ROM改用SRAM,SRAM作为一个波形抽样数据的公共存储器,只要改变存储波形信息的数据,就可以灵活地实现任意波形发生器。方案比较:方案一中使用到专用的DDS芯片,利用专门DDS芯片开发的信号源比较多,它们输出频率高、波形好、功能也较多,但它们的ROM里一般都只存有一种波形(正弦波),加上一些外围电路也能产生少数几种波形,但速度受到很大的限制,因此使用不是很灵活。用FPGA设计DDS电路比采用专用DDS芯片更为灵活。因为只要改变SRAM中的数据,就可以产生任意波形,因而具有相当大的灵活性。FPGA芯片还支持在线升级,将DDS设计嵌入到FPGA芯片所构成的系统中,并采用流水线技术,其系统成本并不会增加多少,而购买专用芯片的价格则是前者的很多倍。因此,采用FPGA来设计DDS系统具有很高的性能价格比。因此我们选择方案一。三、单元模块设计本系统由FPGA、单片机控制模块、键盘、LCD液晶显示屏、DAC输出电路和稳压电源电路构成。用FPGA实现直接数字频率合成技术(DDS),产生正弦波、方波、三角波,合成FSK、ASK、PSK、AM、FM 等信号。采用单片机ATMAGE128控制直接数字频率合成器(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 示波器 Luyang YB1731B 3A DC POWER SUPPLY;数英 TFG3150L DDS函数信号发生器六、设计总结 本设计提出了一种使用经济有效的低频信号发生器的设计方法,系统可以实现各种频率各种相位的输出,可以实现ASK、FSK调制信号的输出,其他的调制信号也可在以后系统升级中需要的时候设置,也可在载波位10K模拟调频信号的输出,调制信号在100HZ到1KHZ范围内可调。系统功能强大,更可以升级扩长,系统DDS部分用的是 Verilog HDL和VHDL混合编程实现,可以很方便的下载到FPGA芯片中测试,可以得到广泛的应用。 参考文献 1信号与系统,ALAN V.OPPENHEIM著,西安:西安交通大学出版社,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.all;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); 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.all;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_logic_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 : 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 quadrant_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); 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_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; quadrant_3_or_4_delay = quadrant_3_or_4; quadrant_3_or_4_2delay = quadrant_3_or_4_delay; lut_out_inv_delay = conv_std_logic_vector(-1*conv_integer(lut_out), AMPL_WIDTH); lut_out_delay = lut_out; end if; end process;end dds_synthesizer_arch;
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!