基于FPGA+DDS的控制设计

2008-12-19 11:54:48来源: 国外电子元器件 关键字:FPGA  DDS

  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的控制设计

  例程中,将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
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:如何利用可编程器件设计车用显示系统
下一篇:基于Actel Fusion FPGA的无刷电机控制器

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
FPGA
DDS

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源

夏宇闻老师专栏

你问我答FPGA设计

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

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