FPGA和DDS在信号源中的应用

2015-06-02 08:34:31 来源:互联网
标签:

 

1引言

DDS同DSP(数字信号处理)一样,是一项关键的数字化技术。DDS是直接数字式频率合成器(DirectDigitalSynthesizer)的英文缩写。与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。在各行各业的测试应用中,信号源扮演着极为重要的作用。但信号源具有许多不同的类型,不同类型的信号源在功能和特性上各不相同,分别适用于许多不同的应用。目前,最常见的信号源类型包括任意波形发生器,函数发生器,RF信号源,以及基本的模拟输出模块。信号源中采用DDS技术在当前的测试测量行业已经逐渐称为一种主流的做法。但DDS专用器件价格较贵,输出波形单一,使用受到一定限制,特别不适合于输出波形多样化的应用场合。随着高速可编程逻辑器件FPGA的发展,电子工程师可根据实际需求,在单一FPGA上开发出性能优良的具有任意波形的DDS系统,极大限度地简化设计过程并提高效率。本文在讨论DDS的基础上,介绍利用FPGA设计的基于DDS的信号发生器。

2 DDS技术工作原理

一块DDS芯片中主要包括频率控制寄存器、高速相位累加器和正弦计算器三个部分(如Q2220)。频率控制寄存器可以串行或并行的方式装载并寄存用户输入的频率控制码;而相位累加器根据频率控制码在每个时钟周期内进行相位累加,得到一个相位值;正弦计算器则对该相位值计算数字化正弦波幅度(芯片一般通过查表得到)。DDS芯片输出的一般是数字化的正弦波,因此还需经过高速D/A转换器和低通滤波器才能得到一个可用的模拟频率信号。DDS信号发生器,主要由相位累加器、相位寄存器、波形存储器、D/A转换器和模拟低通滤波器组成如图1所示。fR为参考时钟,K为输入频率控制字,其值与输出频率相对应,因此,控制输入控制字K,就能有效控制输出频率值。通常情况下,K值由控制器写入。



图1 DDS信号发生器组成原理图


由图1可知,在参考时钟fR的控制下,频率控制字K与相位寄存器的输出反馈在相位累加器中完成加运算,并把计算结果寄存于相位寄存器,作为下一次加运算的一个输入值。相位累加器输出高位数据作为波形存储器的相位抽样地址值,查找波形存储器中相对应单元的电压幅值,得到波形二进制编码,实现相位到电压幅值的转变。波形二进制编码再通过D/A转换器,把数字信号转换成相应的模拟信号。低通滤波器可进一步滤除模拟信号中的高频成分,平滑模拟信号。在整个过程中,当相位累加器产生一次溢出时,DDS系统就完成一个周期输出任务。频率控制字K与输出波形频率的函数表达关系式为:

f0=(K/2N)fR(1)

式中,K为频率控制字;fR为参考时钟,N为累加器的位宽值。

当K=l时,可得DDS的最小分辨率为:

fmin=fR/2(2)

为了得到较小分辨率,在实际工程设计中,N一般取得较大值,该系统是N取32位设计的。

3关键器件选型

本设计所用到的关键器件主要是可编程逻辑器件(FPGA)和D/A转换器。考虑设计成本等因素,FPGA采用Altera公司的低成本Cyclone系列EPlC6Q240C8.该器件采用逻辑阵列模块(LAB)和查找表(LUT)结构,内核采用1.5 V电压供电,是低功耗元件。此外,Cyclone系列EPlC60240C8内部资源丰富,其内部内嵌5 980个逻辑单元(LE),20个4 KB双口存储单元(M 4 KB RAM block)和92 160 bit普通高速RAM等资源,因此,能较好满足该系统设计要求。而D/A转换器则采用National Semiconductor公司的DAC0832.

4 DDS的FPGA实现

4.1相位累加器与相位寄存器的设计

VerilogHDL是一种硬件描述语言(HDL:HardwareDiscriptionLanguage),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。VerilogHDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由GatewayDesignAutomation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。

相位累加器与相位寄存器主要完成累加,实现输出波形频率可调功能。利用Quartus II可编程逻辑器件系统开发工具进行设计。首先,打开Quartus II软件,新建一个工程管理文件,然后在此工程管理文件中新建一个Verilog HDL源程序文件,并用硬件描述语言Verilog HDL编写程序实现其功能。在设计过程中,可在一个模块中描述。一个参考的Verilog HDL程序如下:


4.2基于1/4波形的存储器设计

为了提高系统的分辨率和降低FPGA资源的利用率,采用基于1/4波形的存储器设计技术。利用正弦波对称性特点,只要存储[O~π/2]幅值,通过地址和幅值数据变换,即可得到整个周期内的正弦波,其设计原理如图2所示。
 



图2 1/4波形的存储器件设计原理框图


用相位累加器输出高2位,作为波形区间标志位。当最高位与次高位都为"0"时,表示输出正弦波正处在[0~π/2]区间内,这时,地址与输出数据都不需要变换;当最高位为"0",次高位为"l"时,输出正弦波正处在[π/2~π]区间内,这时,地址变换器对地址进行求补操作,而输出数据不变;当最高位为"l",次高位为"0"时,输出正弦波正处在[π~3π/2]区间内,这时,地址不变,而输出变换器对输出数据进行求补操作;当最高位与次高位都为"l"时,输出正弦波正处在[3π/2~2π]区间内,这时,地址和输出数据都进行求补操作。

5 D/A转换电路

数据转换器输出的数据是数字形式的电压值,为实现数字电压值与模拟电压值之间的转换,系统还专门设计D/A转换电路,其D/A转换电路原理图如图3所示。



图3 D/A转换电路

 

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
从易到难总结几种FPGA时序约束方法

从最近一段时间工作和学习的成果中,我总结了如下几种进行时序约束的方法。按照从易到难的顺序排列如下:

做好FPGA设计还需要具备的其它相关硬件技能

FPGA在各个领域都是必不可少的一种硬件工具,掌握并有效使用FPGA对当代的电子设计工程师来讲是非常必要的,如前面文章曾讲过的,要做到较好的FPGA设计需要具备的基本素质

8款适用于DDS信号发生器的高速并行DAC

信号源在电子产品测试中是非常重要的工具,采用FPGA+高速DAC的方式生成任意波形(AWG)是目前的主要方式,它不仅可以生成非常高精度的任意频率的任意波形,同时还能够通过FPGA的逻辑实现各种调制、滤波等数字信号处理功能,因此DDS对于电子系统的测试、通信传输以及了解信号的链路构成都非常重要。

基于PXI仪器生成NTSC与PAL制式的简单彩条信号

Autotestcon 2010的主旨“45年的支持创新——以光速前进”,这个主旨对军用ATE系统是非常有意义的,因为它强调努力保持二分法的最先进的测试能力,同时需要支持传统的老技术 – 可能是几十年,像Autotestcon本身一样长久。

FPGA时序约束方法汇总,从易到难的都有

从最近一段时间工作和学习的成果中,我总结了如下几种进行时序约束的方法。按照从易到难的顺序排列如下:

更多资讯
如何使用一个DSP block实现4个11位浮点型数据乘法运算

随着深度学习的发展,为了解决更加抽象,更加复杂的学习问题,深度学习的网络规模在不断的增加,计算和数据的复杂也随之剧增。INTEL FPGA具有高性能,可编程,低功耗等特点,为AI应用加速提供了一种灵活、确定的低延迟、高通量、节能的解决方案。

PCB设计中BGA器件布局布线经验谈
PCB设计中BGA器件布局布线经验谈

SMT(Surface Mount Technology 表面安装)技术顺应了智能电子产品小型化,轻型化的发展潮流,为实现电子产品的轻、薄、短、小打下了基础。SMT技术在90年代也走向成熟的阶段。

什么?Python+FPGA!?

早年,虽然Python是一款比较容易上手的脚本语言,而且有强大的社区支持,一些非计算机专业领域的人都选它作为入门语言。遗憾的是,它不能实现一些非常底层的操控,所以在硬件领域并不起眼。

一文读懂为什么要选择 Python做机器学习

随着机器学习的兴起,Python 逐步成为了「最受欢迎」的语言。它简单易用、逻辑明确并拥有海量的扩展包,因此其不仅成为机器学习与数据科学的首选语言,同时在网页、数据爬取可科学研究等方面成为不二选择。此外,很多入门级的机器学习开发者都是跟随大流选择 Python,但到底为什么要选择 Python 就是本文的核心内容。

简谈FPGA的上电复位

大家好,博主最近有事忙了几天,没有更新,今天正式回来了。那么又到了每日学习的时间了,今天咱们来聊一聊 简谈FPGA的上电复位,欢迎大家一起交流学习。

电路方案