DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1309|回复: 0
打印 上一主题 下一主题

[待整理] 基于FPGA和虚拟仪器的DDS信号发生器设计

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-27 06:59:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
将虚拟仪器技术同FPGA技术结合,设计了一个频率可控的DDS任意波形信号发生器。在阐述直接数字频率合成技术的工作原理、电路构成的基础上,分别介绍了上位机虚拟仪器监控面板的功能和结构,以及实现DDS功能的下位机FPGA器件各模块化电路的作用。经过设计和电路测试,输出波形达到了技术要求,工作稳定可靠。
       
       
        信号发生器是一种常用的信号源,广泛应用于通信、测量、科研等现代电子技术领域。信号发生器的核心技术是频率合成技术,主要方法有:直接模拟频率合成、锁相环频率合成(PLL)、直接数字合成技术(DDS)。DDS是开环系统,无反馈环节,输出响应速度快,频率稳定度高。因此直接数字频率合成技术是目前频率合成的主要技术之一。文中的主要内容是采用FPGA结合虚拟仪器技术,进行DDS信号发生器的开发。
       
        1 DDS工作原理
       
        图1是DDS基本结构框图。以正弦波信号发生器为例,利用DDS技术可以根据要求产生不同频率的正弦波。
         
       
       
       
        DDS电路主要由相位累加器、相位调制器、正弦ROM查找表、DAC和低通滤波器构成。其中,相位累加器是整个DDS的核心,完成相位累加的功能。下面对相位累加器的输入即相位增量进行分析。
       
        对于正弦信号发生器,它的输出可以用下式来描述:Sout=Asinωt=Asin(2πfoutt) (1)
       
        其中Sout是指该信号发生器的输出信号波形,fout指输出信号对应的频率。正弦信号的相位:θ=2πfoutt.在一个clk周期Tclk,相位θ的变化量为:
       
       
        为了用数字化逻辑实现电路,必须对△θ进行数字量化,把2π切割成2N份,由此每个clk周期的相位增量△θ用量化值B△θ来表述:
       
       
        其中θk-1指前一个clk周期的相位值。
       
        由上面的推导可以看出,只要对相位的量化值进行简单的累加运算,就可以得到正弦信号的当前相位值,而用于累加的相位增量量化值B△θ(也叫频率控制字)决定了信号的输出频率fout,并呈现简单的线性关系。直接数字合成器DDS就是根据上述原理而设计的数字控制频率合成器。
       
        从本质上看,DDS是一个恒定高频率运行的多位计数器。在溢出时,通过利用一个多位控制字来设置计数器步进的尺寸,允许计数器过零。计数器的高阶位用来寻址存储设备,该设备保持生成的一个波形周期的数字记录。高频时钟每前进一单位,计数器便步进一次,存储器也将生成一个新的地址字,而新的波形数据值将会发送到DAC.DDS主要有3个优点:1)输出信号的频率精度可以达到作为发生器参考信号使用的晶体控制振荡器的水平;2)DDS发生器可以生成非常高的频率精度;3)如果有RAM波形存储器,那么DDS函数发生器可以重现几乎任何波形。
       
        2系统设计
         
        该系统采用LabVIEW软件完成上位机虚拟仪器的开发,生成正弦波、方波、三角波、手工绘制波形和公式波形等波形数据,实时显示于前面板并通过VISA串口将波形数据传送至FPGA存储器。下位机采用Alter公司的FPGA芯片EP1C3T144C8开发,通过VHDL语言软件式的硬件设计方法完成DDS模块开发,根据频率控制字数值读取ROM中的波形数据送入D/A转换器,最后通过低通滤波器完成平滑滤波输出。
       
        2.1虚拟仪器上位机面板开发
       
        通过图形化的虚拟仪器开发工具LabVIEW完成上位机的设计,主要功能有波形预览、参数设置、数据传送及数据保存。
       
       
       
        图2为虚拟仪器上位机主面板,通过串口设置窗口选择通信端口,采用cluster捆绑各操作类型并通过case结构判断所选操作,选择常规波形、公式波形及手绘波形会分别弹出对应的编辑窗口显示波形数据。如图3和图4所示,为选择常规波形和手绘波形弹出的波形参数设置对话框,设置完相应的波形后,单击done按钮确认。设置完波形后,可以点击保存波形数据,把绘制好的波形以二进制文本形式进行保存。
         
       
        2.2 FPGA下位机开发
       
        下位机主要完成DDS数字合成器的功能,采用Ahera公司的EP1C3T144C8芯片,它具有104个可供用户自行配置的I/O端口,使用VHDL语言在QuartusⅡ开发工具中实现。
       
        直接数字合成器由3部分组成,如图5所示。
         
       
       
       
        其中:1)ADDER32B作为32位数据加法器,提供可控步进的频率值;2)REG32B作为32位移位寄存器,与ADDER32B一起组成累加器,将接收到的32位数据反馈到ADDER32B完成以外部端口F为键控频率字(即上文提到的)的步进;3)ROM作为读取存储器波形数据,根据步进地址读取存储器中的10位长度的波形数据,送入DA转换器。
       
        3 DDS信号发生器
       
        结果分析图6为仿真波形,可以看到,对于不同的频率控制字F给出的不同值,对应每一个时钟输出的采样点的步幅变化不同。图7为采用QuartusⅡ自带的测试工具SignalTapⅡ(嵌入式逻辑分析仪)对设计结果进行分析,如图7所示为F键控频率字设为16H时生成的正弦信号。图8是在示波器上观察的由DAC产生经低通滤波器处理后的真实波形。
         
       
       
       
        4结束语
       
        文中采用LabVIEW虚拟仪器技术结合FPGA技术实现的DDS信号发生器,通过利用计算机的强大功能,把传统仪器的设计、编辑都放到计算机上完成,并通过通讯接口传输数据,实现不同波形的输出。通过对系统仿真和实际测试,结果表明该DDS信号发生器不仅能产生理想的输出信号,还具有集成度高。稳定性好和扩展性强等优点。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-27 00:57 , 耗时 0.088327 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表