基于FPGA的DDS设计及实现_第1页
基于FPGA的DDS设计及实现_第2页
基于FPGA的DDS设计及实现_第3页
基于FPGA的DDS设计及实现_第4页
基于FPGA的DDS设计及实现_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于FPGA的DDS设计及实现0 引言 随着现代电子技术的不断发展,在通信系统中往往需要在一定频率范围内提供一系列稳定和准确的频率信号,一般的振荡器己不能满足要求,这就需要频率合成技术。直接数字频率合成(Direct Digital Frequency Synthesis,DDS)是把一系列数据量形式的信号通过DA转换器转换成模拟量形式的信号合成技术。DDS具有相对带宽宽、频率转换时间短、频率分辨率高、输出相位连续、可产生宽带正交信号及其他多种调制信号等优点,已成为现代频率合成技术中的姣姣者。目前在高频领域中,专用DDS芯片在控制方式、频率控制等方面与系统的要求差距很大,利用FPGA来设计符合

2、自己需要的DDS系统就是一个很好的解决方法。 现场可编程门阵列(FPGA)器件具有工作速度快、集成度高、可靠性高和现场可编程等优点,并且FPGA支持系统现场修改和调试,由此设计的DDS电路简单,性能稳定,也基本能满足绝大多数通信系统的使用要求。1 DDS的结构原理 DDS的基本原理是利用有限的离散数据,通过查表法得到信号的幅值,通过数模转换器DA后生成连续波。DDS的原理框图如图1所示。 其中:频率控制字为fword;相位累加器的位数为N。相位累加器以步长fword做累加,产生所需的频率控制数据;把得到的频率控制数据作为地址对ROM存储器进行寻址。数据存储器(ROM)实质是一个相位幅度转换电路

3、,ROM中存储二进制码表示所需合成信号的相位幅度值,相位寄存器每寻址一次ROM,就输出一个相对应的信号相位幅度值。 理想情况下,累加器的N位全部用来寻址时,DDS的合成频率为: 式中:fword为频率控制字;N为相位累加器位数;fclk为输入时钟。当fworld=1时,得DDS的最小分辨率。如果改变频率控制字,就可以改变合成的频率的频偏。2 DDS调频系统在FPGA中的实现21 累加控制模块的设计 累加控制模块通过调用Quartus中模块化库LPM进行设计。即由加法器lpm_add_sub和乘法器lpm_mult及累加器altaccumulate模块构成。若要求DDS系统精度高,相位累加器的位

4、数N须较大。现在大多数专用的DDS芯片的位数都在2432位之间,这里取N=32。累加控制模块如图2所示。ADC转换芯片处理后的8位数字信号,为了使DDS合成的频率较大,末尾补4个O作为参数化模块lpm_add_sub的12位输入datai。由于ADC信号输出的是8位二进制偏移码,与计算机处理的二进制补码形式不同,需将二进制偏移码转换成二进制补码,在这里与另一路输入信号常数2 048做减法,就能达到求补的目的,并输出12位有符号数。 12位的输出接入lpm_mult模块,lpm_mult的另一路输入为12位任意数输入。乘法器的输出直接影响累加器累加相位的速度。当乘以一个比较大的数,则频率变化加快

5、。 同理,为了使合成频率较大,乘法器的24位输出在末尾补O成为32位数datab送到累加模块altaccumulate中。为了节省ROM容量,最后取altaccumulate输出的高10位作为ROM查找表的地址信号。累加控制模块的时序仿真如图3所示。 22 ROM查找表的设计 针对不同的可编程器件,ROM查找表的设计采用的方法也不相同。主要是基于lpm_rom和VHDL选择语句这两种方法。使用lpm_rom的波形存储表只需要产生数据文件*mif,然后直接在定制lpm_rom时,添加数据文件即可。不过这种方法在FPGA支持内部嵌入式阵列块(EAB)时才可以使用;使用VHDL选择语句比较直观,但当

6、输入数据量大的时候,这种方法是比较繁琐的。此次设计采用第一种方法。 mif文件是在编译和仿真过程中作为存储器(ROM或RAM)初始化输入的文件,即memory initialization file。创建mif文件的方式有很多种,在这次设计中,在Matlab中采用C语言来生成mif文件。mif文件编写格式如下: 通常相位累加器的位数N很大,实际设计中受到体积和成本的限制。为了节省ROM的容量采用相位截断的方法,一般只取累加器输出的高几位作为ROM的寻址地址。设计中取累加结果的高10(M=10)位来进行查表,也就是说正余弦ROM有210=1 024个寻址地址,数据宽度为12。如图4所示,设计了2

7、个lpm_rom模块,分别是sin波形存储器和cos波形存储器。3 单片机控制电路 此次选择的FPGA芯片为Altera公司的ACEXlK系列的EPlK30TTl44-2。它可以采用专用的配置器件来配置,也可以采用单片机来配置。前者价格昂贵,而且专用配置器件的ROM为一次性编程,不易实现FPGA的系统功能转换。采用单片机C8051F330D对FPGA进行被动串行(PS方式)配置,使用可多次修改的AT24C512(E2PROM)作为配置文件存储器,真正做到“现场可编程”,对提高生产率、降低生产成本均有好处。 系统的配置电路如图5所示。其电路的工作过程为:经Quartus编译生成的配置文件(rbf

8、),利用PC机端的控制程序,通过PC机的串行通信口,经U1存储在U2中,U1再根据系统的要求通过P06,P1O,P11,P16和P17等5个IO口将其存储在U2中的配置数据下载到电路中的FPGA器件U3中。PC机的控制程序在此略。4 设计结果 累加控制器、ROM查找表组成一个整体,实现了一个基本的DDS系统。DDS系统的最后仿真结果如图6所示。 图6中的pllclk,acum,dai,daq分别代表时钟输入、累加输出及正弦波和余弦波输出。把O2的相位分成3FF段,取出相应的幅度值存储于ROM中。ROM中存储数据如下,相位数据(O3FF),幅度数据(OFFF)。从仿真图可以看出dai11O输出从EFFFFF0EFF变化,daq11O输出从FFFOFFF变化。最后通过单片机配置FPGA运行,把得出的信号通过DA转换和滤波能够得到所需的正弦波和余弦波信号。5 结语 给出了基于FPGA的DDS设计的实现方案。通过仿真分析可以看出,DDS输出信号具有如下特点: (1)频率稳定性好,转换时间短,分辨率高,相位变化连续。 (2)设计者只需要通过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论