现在的位置: 首页CPLD介绍及应用正文

利用单片机和CPLD实现直接数字频率合成

  直接数字频率合成(DDS)技术是美国学者J.Tierncy,C.M.Rader和B.Gold在1971年首次提出的。这是一种全数字技术,该技术从相位概念出发直接合成所需要的波形。同传统的频率合成技术相比,DDS技术具有很多优点:频率切换时间短、频率分辨率高、相位变化连续、容易实现对输出信号的多种调制等[5]。但是由于当时的技术以及器件水平的限制,它的性能指标还无法与已有的技术相比,因此该技术当时并没有引起足够的重视。最近几年来,随着技术和器件水平的提高,国外一些公司先后推出各种各样的DDS专用芯片,如 Qualcomm公司的Q2230、Q2334, AD公司的AD9955、AD9850等[3]。这些产品的问世,为电路设计者提供了良机,满足了工程实际的需要。然而,商用DDS专用电路芯片也有它的的局限性,并不能满足所有要求。例如,在实现线性调频(LFM)等复杂的调制功能时,利用现有的商用芯片就会遇到一些困难[8]。由于近几年来可编程器件CPLD 、现场可编程门阵列FPGA技术的迅速发展和广泛应用,使用可编程器件实现DDS技术也越来越受到人们的关注。

1 DDS工作原理
  DDS工作原理其实质是以参考频率源(系统时钟)对相位进行等可控间隔的采样。DDS包括由相位累加器和ROM查询表构成的数控振荡源(NCO)、DAC以及低通滤波器(LPF)3部分。在每一个时钟周期,N位相位累加器与其反馈值进行累加,其结果的高M位作为ROM查询表的地址,然后从ROM中读出相应的幅度值送到DAC。低通滤波器LPF用于滤除DAC输出中的高次谐波。因此通过改变频率控制字K就可以改变输出频率fout。容易得到输出频率fout与频率控制字K的关系为:fout=Kfc/2N,其中fc为相位累加器的时钟频率,N为相位累加器的位数。

2 系统的总体设计
  本系统主要由单片机部分、DDS主通道部分、键盘及显示部分以及输出信号调理等部分组成。
  单片机芯片采用的是比较常见的AT80C31芯片。同时片外还各扩展了1片程序存储器2764与数据存储器6264,分别用来存放运行中所需的程序与随机数据。
  DDS主通道部分是我们设计的关键所在,该部分主要由相位累加模块、地址总线控制模块、数据总线控制模块与波形数据存储器EPROM、SRAM等组成。其中相位累加模块、地址总线控制模块和数据总线控制模块都是在CPLD上实现,采用的芯片是ALTERA公司的FLEX10K系列器件。我们将所需要合成的波形采样数据固化在EPROM 2764中,但是我们知道EPROM的读周期比较长,很难满足系统的访问时间要求。因此设计中又使用了1片HSRAM,在DDS系统合成波形的过程中,代替ROM进行波形数据的快速查询。
  键盘和显示部分是系统和用户进行交互的重要手段。这一部分的逻辑功能,也是在CPLD上实现的。
  输出信号调理部分是把从HSRAM中读出的波形的数字幅度值首先转换成模拟信号,然后再进行放大、滤波处理后输出。这一部份包括D/A转换器、幅度放大器和滤波器。DAC器件采用AD公司的12位AD9713B,该器件特点是具有较高的更新速率(100 MSPS)和较低的功耗(725 mW)[1],因此特别适合于DDS信号合成。幅度调节电路使用的是双极性放大器AD708、AD9617和AD9713所组成的电路。

3 系统总体工作状态说明
  前面已经提到过,由于EPROM的读取时间比较长,很难满足系统对时间的要求,因此在系统中又增加了1片高速SRAM,作为波形数据缓存器。这样,系统就有两个工作状态:首先,系统开始工作时,需要将波形数据从EPROM调到HSRAM中,即波形数据的加载状态;数据加载完毕后,按照DDS合成原理进行信号合成,即信号的合成状态。系统设计中使用单片机的P1口控制这两种工作状态之间的切换。
  3.1 波形数据的加载
    单片机系统上电自检完毕后,开始进行波形数据加载过程。此时,地址总线控制模块和数据总线控制模块,将总线的控制权交给单片机系统。在该过程中,EPROM处于读状态,而SRAM为写状态。8031 按照EPROM、SRAM的时序要求,将8 k的波形数据从EPROM加载到HSRAM中。该过程大概需要几毫秒时间。
    由此我们知道,用这种方法不仅能够合成标准波形(如:正弦波、方波、三角波等),而且还可以合成各种非标准波形。对此我们只要通过数据采集器或PC机获得8 K的波形数据,然后存入到EPROM中,就可以按所需要的频率输出相应波形。

  3.2 波形合成电路的设计
    当波形数据加载完毕后,系统就可以进行信号合成。单片机将接收到的频率值转换成频率控制字,送到相位累加器。相位累加器在每一个时钟周期进行相位累加,然后将每次的累加和作为地址去寻址SRAM,读出与该地址所对应的波形幅度值,然后送到D/A转换器转换成模拟信号,最后经幅度放大、滤波输出。
    3.2.1 频率值的接收与显示
      键盘、显示部分用来实现用户与单片机的交互。系统采用中断查询的方式接收通过键盘输入的频率值。该频率值一方面送到数码显示接口进行显示,另一方面转化成频率控制字送往相位累加模块。

    3.2.2 数控振荡源(NCO)设计实现
      这一部分是DDS信号合成中的关键部分,由DDS系统原理可知,这一部分主要是由相位累加器、地址总线控制器、数据总线控制器与SRAM组成。其中,除了SRAM外,其余3个模块都是在CPLD上实现。
      相位累加器是整个DDS系统运转的关键,它设计的好坏直接影响到整个系统的功能,它实质上是1个带反馈的32位加法器,性能。把输出数据作为另一路输入数据和从微处理器送来的频率控制字进行连续相加,产生有规律的32位相位地址码。设计中采用流水线技术实现32位加法器,通过在组合逻辑之间插入触发器,降低了寄存器之间的传输延时,从而保证系统能够在较高的时钟速度下运行。
      地址总线控制模块和数据总线控制模块是根据系统工作状态的不同,对系统的地址总线、数据总线以及控制线进行切换,这一部分的设计比较容易实现,

    3.2.3 输出信号调理部分
      这一部分是由D/A转换器、幅度放大器和滤波器构成。
      DA器件选用的是AD公司的高速芯片9713B,该芯片的输入是12位的。幅度调节电路是由放大器组成。这是1个电流反馈的高速放大电路。它把DA输出的电流转换成电压,通过反馈电阻RFB的电流决定9617输出的幅度。RL和RFF起分流作用,限制用于I/V转换的电流,同时在9617内部提供一个输出电压幅度。流过R2的电流给9617 输出端提供一个直流偏置,调节R1的阻值可以调整偏置电流的大小。整个放大电路最大的幅度是±4.096 V。模拟输出的最后部分是滤波电路,滤波器的选择主要取决与系统所要输出的波形。譬如我们在用DDS技术合成正弦信号时,可以选用椭圆滤波器滤波。

4  结语
  与传统的频率合成方法相比,DDS合成方法具有频率切换快、频率分辨率高、相位变化连续等一系列突出优点。使用单片机灵活的控制能力以及良好的人机对话功能与CPLD的高性能、高集成度相结合,能够突破传统设计中的许多设计瓶颈,使系统性能大幅度提高;同时,用这种方法实现的DDS电路具有很大灵活性,它可以根据用户的需要设计,满足用户的特殊要求。因此,该系统具有很好的开发、应用前景。
  同时,我们也应该注意到由于DDS数字化实现的固有特点,像相位累加器的相位舍位、波形幅度量化和DAC器件非理想特性,使得输出信号频谱杂散较大。当合成信号的输出频率比较高时,表现得尤为突出,从而限制了输出信号的频率范围。对此,我们一方面在设计过程中应尽量减小能够引起杂散的各种因素,另外更重要的是采取一些便于CPLD实现而同时能够有效降低输出杂散的技术,如对DDS相位累加器的改进[2]、ROM数据压缩[3]、使用抖动注入技术[4]等。从而使开发出的DDS系统性能更加优良。

在线咨询