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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于FPGA的DDS波形发生器Word格式.docx

1、 姓名:焦春焕 学号:080230159 基于FPGA的DDS波形发生器设计【摘要】 详细阐述了直接数字频率合成器的原理与设计,利用Verilog HDL语言实现了DDS功能。【概述】将现场可编程逻辑器件FPGA 和DDS 技术相结合,具体的体现了基于VHDL语言的灵活设计和修改方式是对传统频率合成实现方法的一次重要改进。FPGA器件作为系统控制的核心,其灵活的现场可更改性,可再配置能力,对系统的各种改进非常方便,在不更改硬件设计部分电路的基础上还可以进一步提高系统的性能。文章给出仿真结果,经过验证本设计能够达到其预期性能指标。【系统设计部分】1 整个设计组织结构DDS基本原理 DDS建立在采

2、样定理基础上,首先对需要产生的波形进行采样,将采样值数字化后存入存储器作为查找表,然后通过查表读取数据,再经DA转换器转换为模拟量,将保存的波形重新合成出来。DDS基本原理框图如图1所示。除了滤波器(LPF)之外,DDS系统都是通过数字集成电路实现的,易于集成和小型化。系统的参考时钟源通常是一个具有高稳定性的晶体振荡器,为各组成部分提供同步时钟。频率控制字(FSW)实际上是相位增量值(二进制编码)作为相位累加器的累加值。相位累加器在每一个参考时钟脉冲输入时,累加一次频率字,其输出相应增加一个步长的相位增量。由于相位累加器的输出连接在波形存储器(ROM)的地址线上,因此其输出的改变就相当于查表。

3、这样就可以通过查表把存储在波形存储器内的波形抽样值(二进制编码)查找出来。ROM的输出送到DA转换器,经DA转换器转换成模拟量输出。系统总体方案设计 该设计以FPGA开发平台为核心,将各波形的幅值相位量化数据存储在ROM内,按照设定频率,以相应频率控制字k为步进,对相位进行累加,以累加相位值作为地址码读取存放在存储器内的波形数据,经DA转换和幅度控制、滤波即可得到所需波形。波形发生器采取全数字化结构,用硬件描述语言Verilog设计实现其频率可调可显示。经开发平台的DA转化和外加滤波整形处理波形数据,理论上能够实现任意频率的各种波形。系统总体设计方框图如图2所示。2系统功能各个子单元设计实现(

4、1) 波形数据产生单元 波形数据产生单元是信号发生器设计的主体。在此,采用DDS原理设计的信号发生器能完成三种波形(正弦、三角和方波)数据的产生,而且根据控制信号还可完成选定波形指定频率的输出。波形数据产生单元按功能实现上的相互联系可划分为频率控制字生成模块、相位累加器模块和波形数据ROM表模块,如图3所示。其中,频率控制字生成模块可根据输入产生指定频率字,同时显示输入频率数字。相位累加器模块负责对所选波形的相位寻址,以频率控制字作为步长反复进行累加运算。波形数据ROM表模块存放三种波形的幅值相位量化值,通过地址选择相应波形的数据。系统输入控制使用44键盘键盘主要按键功能介绍如下: “09”:

5、数字键,设定信号频率; “确定”:用于对波形信号设置的确认,波形信号的设置必须“确定”后才有效;“”:删除已输入信号频率数字的最后一位,用于修改设置的频率; “清零”:将频率数字快速全部清零; “”:步进增大控制; “”:步进减小控制。 设定频率输出范围为1 kHz10 MHz,频率步进为50 Hz。系统输出采用8个LED数码管,以扫描方式显示(单位为Hz)频率数字。根据DDS原理,以步进值50Hz作为频率控制字1,那么最大值10 MHz对应的频率控制字为200 000,用18位二进制数值就可以表示(218200 000)。从抽样值恢复出原波形数据,理论上每个周期波形数据至少抽取2个点,考虑到

6、实际应用时受频率损耗、线间串扰等因素的限制,该设计采用22 b的频率控制字和相位累加器,4 Kb的8位波形ROM表,取相位累加器输出的高12 b寻址波形数据,三种波形按幅值相位对应关系分别存储782个数据。故各波形数据单位周期有800 768(782210)个相位状态,完全满足任一波形在单位周期内取4个幅值点的要求,可保证即使输出最大频率的波形仍能达到较好的效果。波形选择功能由两位开关组合实现,共有四种状态,其中三组用来表征不同的波型,另一组留作扩展波形用。(2) DA转换单元 数模转换单元是继波形数据产生单元之后,将数字量形式的波形幅值转换成所要求的合成频率的模拟量形式信号。DAC输出信号实

7、际上是阶梯模拟信号,需在数模转换后利用低通滤波器对波形进行平滑处理。在此,采用ADI公司生产的单片双8位CMOS乘法数模转换器AD7528,线性度达到12,转换时间达到纳秒级,可以很准确地进行10 MHz信号的量化运算。(3 )滤波处理单元 滤波器是一种能通过有用频率信号而同时抑制(或衰减)无用频率信号的电子装置。由于运算放大器具有近似理想的特性,且可以省去电感,得到接近理论预测的频率响应特性。构成有源滤波电路后还具有一定的电压放大和缓冲作用,并能减小体积。综合考虑,系统采用运算放大器SL560构成二阶低通滤波器。3 各个子单元之间的接口关系 硬件系统设计硬件系统由 4 部分组成:必要的外围电

8、路用于频率控制、以FPGA 为控制核心的处理系统用于DDS 信号发生、DAC 模块用于数模转换,滤波器用于对模拟输出进行平滑和去噪,其中FPGA 模块又由串口接收模块,双口RAM 模块以及DDS 模块组成。硬件系统实现框图如图4 所示。由于 DAC 模块和滤波模块电路简单,容易实现,本文不予以详细叙述,仅给出FPGA核心电路设计。(1) DDS 模块设计DDS 模块由三个底层模块组成:相位累加器(ADDER26B)、寄存器(REG26B)和波形数据存储器(sin_rom)。各模块之间的联系可以从DDS 模块顶层实体图(图5)中看出。ADDER26B 为波形发生器的相位控制器;REG26B 为相

9、位寄存器,起到数据缓冲的作用;sin_rom 为波形数据存储器,用于存储串口接收到的波形数据。(2) 波形存储模块该模块是使用MegaWizard Plug-In Manager 定制的宏功能模块,用来存储一个周期的波形数据。本设计定制的双口RAM 控制模块具有读写两个端口,通过两路时钟和两套地址系统,对RAM 进行操作:串口模块对RAM 进行写操作,更新波形数据;DDS 模块对RAM进行读取操作,产生阶梯序列。(3) 串口模块串口模块用 Verilog 语言编写,用于接收上位机发送的波形数据,同时配合双口RAM控制器将数据存储到嵌入在FPGA 内部的双口RAM 内。数据帧格式为:1 位起始位

10、,8 位数据位,1 位停止位。为串口模块顶层符号图。4该设计与其它设计关系DDS 系统中的参考时钟通常是一个高稳定性的晶体振荡器,用来作为系统时钟同步整个系统的各组成部分。频率控制字(FSW - Frequeency Setting Word)实际就是相位增量值,用来做相位累加器的累加值。相位累加器在每一个参考时钟脉冲输入时, 把频率字累加一次,其输出相应地增加一个步长的相位增量,由于相位累加器的输出连接在波形存储器地址线上, 因此其输出的改变就相当于进行查表。这样就可把存储在波形存储器内的波形采样值经过查表查出, 输出到D/A转换器。在系统时钟脉冲的作用下, 相位累加器不停地累加,也即不停地

11、查表,不停地把波形数据送到D/A转换器转换成模拟量输出, 从而合成波形输出。滤波器则进一步平滑D/A转换器输出的近似所需波型的锯齿阶梯波,同时滤除不必要的杂波。同时由于相位累加器字长的限制, 相位累加器累加到一定数值后, 其输出将会溢出,产生的波形存储器的地址数值就会循环一次,意味着输出的波形完成了一个周期。所以改变频率控制字,就可以改变累加器的循环频率,在时钟频率不变的情况下就可以改变输出率3。【仿真综合部分】1关键节点部分位置,作用及其测试波形描述频率控制字的生成直接影响着波形数据的寻址,该模块负责快速记录并实时显示输入的频率数字,准确计算得到相应的频率控制字。系统键盘为高速动态扫描(频率

12、为200Hz),采用状态机设计,设置了按键去抖动功能。在FPGA开发平台对该模块进行功能验证,整体无误操作产生,几乎没有时滞效应,按键的防抖动效果也良好,达到了预期的目的。本设计多次用到寄存器,D32、D32CO、它们大概原理相同,但有些细小的差别。本质都是一个32位的D触发器,在一个上升沿到来时开始存储。 用VHDL设计32位的触发器,其模块如图3.4所示仿真与分析:D32系列触发器仿真波形如图5、6所示 图5 D32仿真波形 图 6 D322CO仿真波形本设计采用L=32,N=8。正弦ROM查找表完成的查表转换,也可以理解成相位到幅度的转换,它的输入是相位累加器的输出,事实上就是ROM的地

13、址值;输出送往D/A,转化成模拟信号。用VHDL设计8位ROM,其模块如图7所示正弦波ROM仿真如图8所示 图8 正弦波仿真波形2 I/O引脚名称,作用及其测试波形描述DAC0832引脚及其功能图9中,当ILE为高电平,片选信号 /CS 和写信号 /WR1为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。此后,当 /WR1由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据DB的变化而变化。对第二级锁存来说,传送控制信号 /XFER 和写信号 /WR2同时为低电平时,二级锁存控制信号为高电平,8位的DAC寄存器的输

14、出随输入而变化,此后,当 /WR2由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到DAC寄存器中。图9中其余各引脚的功能定义如下:(1)、DI7DI0 :8位的数据输入端,DI7为最高位。(2)、IOUT1 :模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当 DAC寄存器中数据全为0时,输出电流为0。(3)、IOUT2 :模拟电流输出端2, IOUT2与IOUT1的和为一个常数,即IOUT1IOUT2常数。(4)、RFB :反馈电阻引出端,DAC0832内部已经有反馈电阻,所以 RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的

15、输出端和输入端之间。(5)、VREF :参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10-10)V。VREF端与D/A内部T形电阻网络相连。(6)、Vcc :芯片供电电压,范围为(+5 15)V。(7)、AGND :模拟量地,即模拟电路接地端。(8)、DGND :数字量地。图10 DAC0832内部结构图3 采用的pld器件型号4 片篇内各种资源的使用情况与下位机通信本设计通过串行通信实现PC 机与硬件系统间的数据传输。串口通信遵循固定的协议,PC 端软件和硬件系统都需要对串口通信模块进行设置,保证通信双方采用相同的波特率。当串口对象和硬件设备连接成功,就可以收发数据。硬件系统设计硬件系统由 4 部分组成:由于 DAC 模块和滤波模块电路简单,容易实现,本文不予以详细叙述,仅给出FPGA核心电路设计

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

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