基于FPGA+DDS的控制设计

2008-12-19 11:54:48来源: 国外电子元器件

  1 引言

  随着数字信号处理和集成电路的发展,要求数据处理速度越来越高,基于单片机+DDS(直接数字频率合成)的频率合成技术已不能满足目前数据处理速度需求。针对这一现状,本文提出了基于FP—GA+DDS的控制设计.能够快速实现复杂数字系统

  的功能。

  2 AD9911简介

  AD99ll是ADI公司推出的一款单片DDS器件,内部时钟频率高达500 MHz,具有2、4、8、16级FSK、ASK、PSK等调制方式,可完成线性和非线性扫频等功能,内部集成有10位电流型D/A转换器、超高速比较器、4~20倍可编程参考时钟倍乘器、32位的可编程频率寄存器、14位的可编程相位偏置寄存器、10位幅度调制偏置寄存器;具有多器件通信模式和可编程功能;采用先进的O.35μm CMOS工艺,仅需3.3 V的供电电源可输出高达250 MHz的同步正交信号。通过其内部幅度、频率、相位寄存器控制输出信号的幅度、频率、相位。

  3 FPGA控制AD9911的具体实现

  采用Lattice公司的FPGALFXP6C-3T144C控制AD99ll,该器件的外部时钟频率为25 MHz,内部自带2个锁相环,通过PLL倍频时钟频率高达500 MHz,10个RAM块,每一个RAM块的容量都是9 Kbit,提供分布式RAM,5 800个LUT,720个PFU,共有8个模块144位的I/O端口,其中单独输入/输出设置101个端口。一个I/O端口用作外部时钟的输入,另一个I/0端口用作系统上电复位中断输入。LatticeXP器件将非易失的Flash单元和SRAM技术组合在一起,无需配置器件提供支持“瞬间”启动和无限可重复配置的单芯片解决方案。上电时。该配置在1 ms内从Flash存储器中被传送到SRAM中,可提供瞬时上电的FPGA。

  基于FPGA+DDS的控制设计

  FPGA与AD99ll的外围电路简单,无需外加任何驱动电路,从而节省了硬件电路设计和调试时间,如图l所示。其中SDIO_3用于控制I/O端口的工作状态,CS为片选信号,SDIO_0是数据传输线,I/Oupdate使能DDS内部各寄存器数据更新,SCLK用于输出数据交换的控制时钟,DDS_RET控制DDS的系统复位。另外,由于未采用多芯片数据通信,所以需将AD9911的l引脚和2引脚悬空,此时AD991l为单芯片独立通信模式。

  设置AD99ll的25个寄存器,其中地址为0X00~0X03的寄存器是控制寄存器,分别用于控制设置工作模式、比较器、输出度、系统时钟等。

  首先,设置地址为0X00的寄存器CSR,用于选择通道及通道输入/输出模式。本系统设计选用最基础的SINGLE-TONE工作模式,数据输入方式定义为MSB,则0X00寄存器中的内容应为0X20。

  地址为0X0l的寄存器FRl用于控制器件的工作模式,包括器件内部PLL倍乘器的开关与倍数、系统时钟开关、多芯片通信同步控制、Test—tone模式、Shift—Keying模式控制等。AD99ll外部采用25MHz的晶体振荡器,系统时钟设定为500 MHz,未使用Test—tone模式和Shift Keying模式,因此将0X0l寄存器中的VCO gain control位置为l,倍乘器倍数置为20,其他控制位全置为0。这样地址为0X0l寄存器中的内容应为0XDO_00_00。

  此外,地址为0X02的寄存器主要控制多芯片通信模式和线性扫频。地址为0X03的寄存器CFR主要控制器件的输出波形和线性扫频。由于本系统设计无需对相位累加器清零,只需使输出波形正弦化,因此该寄存器内容应为0X00_03_01。然后再设置频率寄存器、幅度寄存器、相位寄存器。由于采用Single-Tone工作模式,且只利用频率调制,因此只需设置地址为0X04的寄存器即可。该寄存器又称CTW0寄存器,用于控制波形频率,精度为32位。因此,该寄存器可控制频率为0~250 MHz。

  由于对输出波形的相位和幅度无特殊要求,因此,其他寄存器保存为默认值即可。

  对AD991l读写操作时,需要注意AD9911的时序要求,如图2和表1所示。由于FPGA的系统时钟可在100~300 MHz范围内选择,执行一个指令需占用时间约为3.3~10 ns。鉴于AD9911的时序要求,要求在时间控制方面特别注意。[page]

  基于FPGA+DDS的控制设计

  如图2所示,在SCLK上升沿,写入数据有效,FPGA控制SCLK信号的产生。SLCK的最大频率为200 MHz,即要求数据输入的最大频率不能大于200MHz。具体写入数据的程序代码(使用Verilog HDL编写)如下所示:

  基于FPGA+DDS的控制设计

  该指令用于对地址为0X00的通道选择寄存器CSR进行写操作,dds_clk控制SCLK。但鉴于FPGA的高速处理能力,在程序设计时需要注意一些特殊时序要求,如以下几方面问题。

  (1)在Single Bit Mode和2一Bit Mode模式下,SDIO_3作为SYNC_I/O,不能忽略应将其悬空,这将导致系统无法正常工作。当SDIO_3置0时,数据通信正常,而当SDIO_3置l或悬空时,通信中断。

  (2)AD99ll开始工作时必须先将其复位,复位时间至少应保持lO个系统工作周期。

  (3)如果系统工作需多次使用I/O Update,要注意I/O Update引脚置l的时间控制,这关系到系统是否能顺利设置各个寄存器。

  4 例程

  为了更好说明FPGA对AD9911的控制,以下给出相关例程:

  基于FPGA+DDS的控制设计430.jpg">

  例程中,将update信号设置为手动,通过频率控制寄存器写入频率控制字0X3C91_D14E,此数字转换成十进制为1 016 189 262,代入频率控制字的公式,计算出频率为118.29 MHz。使用示波器测量观察,如图3所示,图像中显示的是激光光绘机激光扫描驱动信号,可以看出,输出波形的频率为118.3 MHz,与初始设定值一致。由此可见,程序符合设计要求。

  基于FPGA+DDS的控制设计

  5 结语

  FPGA对AD9ll的控制是通过对其各控制寄存器进行相关设置来实现的。随着FPGA的广泛应用,以及更快的数据处理速度,基于FPGA+DDS在数据处理速度上的优势,FPGA控制DDS不仅可应用于雷达线性扫描和菲林产品的激光扫描驱动等领域。而且还将在更多领域得到广泛应用。

关键字:FPGA  DDS

编辑:冀凯 引用地址:http://www.eeworld.com.cn/FPGA/2008/1219/article_394.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
FPGA
DDS

小广播

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved