ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:444.77KB ,
资源ID:20822400      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20822400.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(信号发生器Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

信号发生器Word文档格式.docx

1、一、方案设计与论证1、方案方案一:基于单片机的方式。以单片机为控制中心,通过专门的DDS芯片如AD9852编程,产生所需的正弦波信号,然后用硬件电路搭建产生其他各种调制波信号,该方案简单,易于实现。方案二:数字锁相环频率合成技术,利用锁相环把压控振荡器的输出频率锁定在所需的频率上,可以很好的选择所需的频率信号,抑制杂散分量,可以采用集成芯片,但这种锁相环倍频电路中,要减小频率间隙,就必须减小频率fi,导致频率转换时间增加,而减小输出间隙与减小频率转换时间是矛盾的,且输出频率在很大范围变化时,N也要随之变化,环路增益也要增大幅度变化,从而使环路的动态性急剧变化。方案三:采用基于以FPGA为平台的

2、DDS直接数字频率合成技术,以单片机和FPGA相结合的方式完成,用单片机完成人机交互;系统控制部分,用FPGA完成波形发生以及各种调制功能,本方案利用了单片机在软件控制设计方面的通用性和FPGA在逻辑设计上的优势,可以很好的完成系统设计。2、方案确定综合考虑以上三种方案的优缺点以及题目的基本要求和发挥要求,以及成本问题,我们选择了第三种方案,即基于FPGA和单片机结合的设计方案,利用新技术、新的解决方案来实现本题目的各项功能。FPGA选择cyclone II系列的EP2C5T144C8。单片机采用STM32芯片来实现,显示部分采用性价比较高的NOKIA5110液晶显示器。控制键盘采用4X4的矩

3、阵键盘。二、系统设计和理论分析1.DDS的基本原理是利用采样定理,通过查表的方法产生波形。DDS的结构有很多种,其中基本的电路原理图可以用下图表示:采用FPGA实现DDS,可以将要输出的波形数据预先存放在RAM中,然后在系统标准时钟频率下,按照一定的顺序从RAM单元中读出数据,再进行DA转换和低通滤波,就可以得到一定频率的输出波形。上述过程可使用HDL硬件描述语言对FPGA编程实现。2.全数字实现各种波形(1)基本波形:正弦波,方波,三角波。直接采用DDS技术,在三个不同的RAM中存放三种不同的波形数据,然后经过描述语言对其输出数据和数据的选择做适当的处理,即得到三种不同的波形。QUARTUS

4、 II 综合RTL图如下图所示:(2)幅度调制信号(AM)采用AM信号的基本公式结合Verilog HDL语言中对有符号数的计算,来实现AM信号的产生,QUARTUS II 综合RTL图:Count模块是复杂的信号处理模块(3)模拟频率调制信号(FM)基于FM的原理,根据调平信号变化的规律采用数字方式控制DDS信号发生的频率控制字,直接作用于输出波形的频率值,即实现了对信号源的频率的调节,该方式下,DDS调制信号输出的波形频率与调制信号频率控制字成正比,而载波信号的频率控制字又随调制信号成正比例变化,本系统采用调制信号,固定为1KHZ,而改变载波频率控制字的方式来实现的。流程图:(4)键控法产

5、生ASK信号通过HDL语言在FPGA里实现时,数字电路内的0,1数字及代码作为选择开关信号对应于键控信号,DDS波形发生器对于载波发生器,如下图:其中用分频时钟作为0,1基带码产生的数据流(5)键控法产生PSK信号和ASK信号类似,同样用时钟模拟0,1基带码的基带流来模拟开关选择,具体实现用到HDL语言和原理图结合的方法,RTL图如下:三、系统组成本系统包括FPGA,模拟以及外设三部分。由于基本波形以及各种调制信号发生的功能都是通过DDS方式在FPGA内实现的,因此模拟部分仅包含高速DA,滤波电路,带宽运放部分,控制部分和显示控制部分,采用32位的STM32 单片机实现。电路图见附录。四、硬件

6、设计1.数字部分即用DDS原理在FPGA里构建一个能产生正弦,方波,三角波,还有AM,FM,ASK,PSK信号的系统,并且能够受控制和选择输出想要的波形和频率等信息。QUARTUS II RTL图具体在附件:2.模拟部分(1)部分采用十二位高速DA转换器DAC902,作为本系统的,然后通过opa690差分输出。电路截图如下:五、测试方法与数据(1)正弦,方波,三角波信号设定频率测试频率相对误差峰峰值/v100HZ6.4500HZ1000HZ2000HZ3KHZ4KHZ5KHZ6KHZ7KHZ8KHZ9KHZ1MZ5.15MZ4.810MZ4.2(2)AM信号示波器观察在载波频率增大时AM频率也

7、加大的,而调制度从10%到100%调节时信号的幅度越来越小。(3)FM信号示波器观察在载波频率加大时FM频率也在加大,但频偏不随之改变,当改变最大频偏时,测得的最大频偏也随之改变。(4)ASK和PSKASK100khzPSK200khz以上都符合调制规则,说明准确完成了题目要求。六、测试结论(1)输出频率范围为100HZ到10MHZ以上,步进100HZ,稳定度优于10-4;(2)AM信号可以在10%到100%程控调节,步进10%;(3)FM信号最大频偏为10KHZ,且可二级程控调节载波信号频率;(4)实现,信号;(5)扩展实现方波跟三角波的发生。附录:STM32部分程序void key_con

8、(void) if(key00) Delay(100); state=1; while(key00); if(state) if(key01) num+; if(num=65536)num=1; while(key01); if(key02) num-; if(num=0)num=65535; while(key02); if(key11) if(key11) if(num=65280)num=1; else num=(num-(num%256)+256;=65536)num=1; while(key11); if(key12) if(num256)num=num; else num=(num

9、-(num%256)-256;=1)num=65535; while(key12); if(key03) state=0; while(key03); if(key20) bo+; if(bo=8)bo=1; while(key20); if(key21&AM=1) ma+; if(ma=1024)ma=1; LCD_WriteString_En(10,130,chengkong(AM),RED,0xffff); LCD_WriteNumber(150,130,ma ,0x0000,0xffff); if(key22& ma-; if(ma=0)ma=1023; if(key23& ma=ma

10、*10; if(key33) ff+; if(ff%2=0&FM=1) GPIO_SetBits(GPIOB , GPIO_Pin_8); LCD_WriteString_En(10,110,PPG 50%(5KHZ) else if(ff%2=1&FM=1) GPIO_ResetBits(GPIOB , GPIO_Pin_8);PPG 100%(10KHZ) while(key33); if(bo!=0) switch(bo) case 1: GPIO_SetBits(GPIOB , GPIO_Pin_2); FM=0; AM=0; /正弦波 GPIO_ResetBits(GPIOB , G

11、PIO_Pin_3); GPIO_ResetBits(GPIOB , GPIO_Pin_4); / Pant(0xffff); LCD_WriteString_En(20,85,SIN /显示正弦标志 break; case 2: GPIO_ResetBits(GPIOB , GPIO_Pin_2);/方波 GPIO_SetBits(GPIOB , GPIO_Pin_3); LCD_WriteString_En(20,85,FANG case 3:AM=0;/三角波 GPIO_SetBits(GPIOB , GPIO_Pin_3);SAN case 4:FM=1;/FM GPIO_SetBit

12、s(GPIOB , GPIO_Pin_4);FM case 5:AM=1; /AM GPIO_ResetBits(GPIOB , GPIO_Pin_3);AM case 6: /ASK GPIO_ResetBits(GPIOB , GPIO_Pin_2);FM=0;ASK case 7: /PSKPSK / /把控制字转换为频率值显示在液晶上 / / /频率控制字是32位的,现在我们只取其中的/ /16位用单片机输入,这里去L位地位的位值/ /H位高位的位值,以方便做计算。/ u32 num_to_data(u16 num) u32 data; data=SYS_CLK*(N2(L)*num+

13、(N2(L)-1)/N2(Z); return data; uint64_t N2(u8 X) uint64_t S=1; u16 i; for(i=0;iX;i+) S=S*2; return S;FPGA部分程序和原理图module xinhao(clk,rst_n,in_data,en_1,en_2,en_3, datar_out );input clk;input en_1,en_2,en_3;input rst_n;input 15:0in_data;output 9:0 datar_out;wire 9:0data_out_1;0data_out_2;0data_out_3;wir

14、e 15:0 in_data_1;0 data_out_r;wire rst_n;/wire clk_system;assign in_data_1=in_data;reg 9:wire clk;/assign rst_n_r=rst_n;/assign en_1_r=en_1,en_2_r=en_2,en_3_r=en_3;add_dff32 add_dff32_inst( .data(in_data_1) , / .rst_n(rst_n) , / input rst_n_sig .clk(clk) , / input clk_sig .data_out(data_out_r) / out

15、put data_out_sig);rom_zheng rom_zheng_inst ( .address ( data_out_r), .clken ( en_1 ), .clock ( clk ), .q ( data_out_1)rom_fang rom_fang_inst ( .clken ( en_2), .clock ( clk), .q ( data_out_2)ron_san ron_san_inst ( .address (data_out_r), .clken ( en_3), .q (data_out_3)always (posedge clk or negedge rs

16、t_n) begin if(!rst_n) datar_out=10d0; else if(en_1) datar_out=data_out_1; else if(en_2) datar_out=data_out_2; else if(en_3) datar_out=data_out_3; else datar_outend endmodulemodule count( mul1,mul2,pm,out_data );input signed 9:0 mul1,mul2;input 9:0pm;output unsigned 9:0out_data;0 ph=10d512;wire unsig

17、ned9:wire signed 9:0data_1;0data_2;wire signed 19:0out_data_1;0out_data_2;0out_data_3;0out_data_4;assign data_1=mul1-ph;assign data_2=mul2-ph;assign out_data_1=data_29?-(ph-data_28:0)*pm):data_28:0*pm;assign out_data_2=out_data_119:10;assign out_data_3=(out_data_29=1&data_19=1)?(ph-out_data_28:0)*(ph-data_18:0): (out_data_29=0&-(out_data_28:0*(ph-data_18:0): (out_data_29=1&data_19=0)?-(ph-out_data_28:0)*data_18: out_data_2*data_1:out_data_2*data_1;assign out_data_4=out_data_319:assign out_data =out_data_49?out_data_48:0:(out_data_48:0+ph);顶层文件截图部分RTL模块图波形选择输出块:AM实现块:AM程控数据控制块:

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

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