资源描述
基于FPGA来完成直接数字频率合成器(DDS)的设计摘要在信号发生器的设计中,传统的用分立元件或通用数字电路元件设计电子线路的方法设计周期长,花费大,可移植性差。本设计是利用EDA技术设计的电路, 该信号发生器输出信号的频率范围为20Hz20KHz,幅度的峰-峰值为0.3V5V两路信号之间可实现0359的相位差。侧重叙述了用FPGA来完成直接数字频率合成器(DDS)的设计,DDS由相位累加器和正弦ROM查找表两个功能块组成,其中ROM查找表由兆功能模块LPM_ROM来实现。而通过设定不同的累加器初值(K1)和初始相位值(K2),可以调节两路相同频率正弦信号之间的相位差,从而产生两路数字式的频率、相位和幅值可调的正弦波信号,最后通过MAX+plusII演示仿真结果。与传统的频率合成方法相比,DDS合成信号具有频率切换时间短、频率分辨率高、相位变化连续等诸多优点。使用单片机灵活的控制能力与FPGA器件的高性能、高集成度相结合,可以克服传统DDS设计中的不足,从而设计开发出性能优良的DDS系统。关键词:单片机,现场可编程逻辑门阵列,直接数字频率合成,正弦信号发生器,硬件描述语言 Abstract In the designing of the signal generator, the traditional method, which designs electronic circuits using discrete components or general digital circuits components, takes a long time with high cost, whats more, the transplanting ability of it is unsatisfactory. In this design, the circuit is designed by means of EDA. Its output frequency range is 20Hz to 20KHz with an output amplitude range of 0.3V to 5V(P-P), and the phase difference between two outputs of the two sine signals can be modulated from 0to 359.The thesis emphasizing discusses the designing of DDS basing on FPGA. DDS is made up of the phrase accumulator and sine ROM looking-up table, which is realized by functional EAB chip. And through setting different initial accumulator value (K1) and initial phrase value (K2), the difference of phrase between the two sine signals can be changed. As a result, two serials of sine signals with changeable digital frequency, phrase and magnitude are produced. At last, we can show the total course and result with MAX+plusII.Compared with traditional methods of frequency synthesizing, direct digital frequency synthesizing (DDS) has lots of advantages, such as short time of quick frequency exchanging, high frequency resolution, continuous phase changing, etc. Micro-control unit has is characterized by. Many drawbacks can be overcome and a good DDS system with good performance can be developed after combining the flexible control capability of micro-control unit with high performance and integration of the FPGA devices in the same system.Keywords: MCU, FPGA, DDS, ROM sine wave generator, VHDL目录摘要IAbstractII1 绪言1.1 课题背景11.2 课题研究的目的和意义11.3 国内外概况21.4 课题的主要研究工作32 系统设计方案的研究2.1 系统的性能要求42.2 系统实现的原理42.2.1 DDS的基本原理52.2.2 FPGA实现的直接数字频率合成器62.2.3 移相原理62.3 系统实现方案分析与比较82.3.1 频率合成器方案82.3.2 移相方案102.3.3 存储器方案102.3.4 存储器寻址方案113 总体设计3.1 FPGA设计DDS电路的具体实现123.1.1 相位累加器部分123.1.2 相位/幅度转换电路123.1.3 波形表生成133.1.4 D/A转换电路133.1.5 系统控制电路133.2 单片机与FPGA的接口设计133.3现场可编程逻辑器件(FPGA)的选择153.4 其他电路设计163.4.1 晶体振荡电路163.4.2 地址计数脉冲产生电路173.4.3 幅度控制电路173.4.4 单片机外扩展存储器电路183.4.5 滤波、缓冲输出电路183.4.6 键盘和显示控制电路194 系统的实现4.1 系统的计算与仿真204.1.1 系统频率、相位和幅度的计算204.1.2 系统仿真214.2 单片机的编程实现225 总结与展望23致谢25参考文献26附录 128附录229附录332341 绪言1.1 课题背景在一些电子设备的电路板故障检测仪中,往往需要频率、幅度都能由计算机自动调节的信号源。采用诸如MAX038信号发生器芯片外加电阻及切换开关等器件虽然也能调节频率和幅度,但这种调节是离散的,且电路复杂,使用不方便1。而采用直接数字合成芯片DDS及外加D/A转换芯片构成的可控信号源,可产生正弦波、调频波、调幅波及方波等,并且其信号的频率和幅度可由微机来精确控制,调节非常方便。另外随着21世纪的到来,人类正在跨入信息时代。现代通信系统的发展方向是功能更强,体积更小,速度更快,功耗更低。而大规模可编程器件CPLD/FPGA在集成度、功能和速度上的优势正好满足通信系统的这些要求。所以今天无论是民用的移动电话、程控交换机、集群电台、广播发射机和调制解调器,还是军用的雷达设备、图形处理仪器、遥控遥测设备、加密通信机中,都已广泛地使用大规模可编程器件2。由于数字技术在处理和传输信息方面的各种优点,数字技术和数字集成电路的使用已经成为构成现代电子系统的重要标志。电子系统的集成化,不仅可使系统的体积小、重量轻且功耗低,更重要的是可使系统的可靠性大大提高。因此自集成电路问世以来,集成规模便以10倍/6年的速度增长。从20世纪90年代初以来,电子系统日趋数字化、复杂化和大规模集成化。为满足个人电脑、无绳电话和高速数据传输设备的发展需求,电子厂商们越加迫切地追求电子产品的高功能、优品质、低成本、微功耗和微小封装尺寸3。为达到此目标,必须采用少量的IC器件使面积尽可能小。1.2 课题研究的目的和意义正弦信号发生器作为电子技术领域中最基本的电子仪器,广泛应用于航空航天测控、通信系统、电子对抗、电子测量、科研等各个领域中。随着电子信息技术的发展,对其性能的要求也越来越高,如要求频率稳定性高、转换速度快,具有调幅、调频、调相等功能,另外还经常需要两路正弦信号不仅具有相同的频率,同时要有确定的相位差4。随着数字信号处理和集成电路技术的发展,直接数字频率合成(DDS)的应用也越来越广泛。DDS具有相位和频率分辨率高、稳定度好、频率转换时间短、输出相位连续、可以实现多种数字与模拟调制的优点,而可编程门阵列(FPGA)具有集成度高、通用性好、设计灵活、编程方便、可以实现芯片的动态重构等特点,因此可以快速地完成复杂的数字系统。由于模拟调相方法有生产性差、调试不方便、调制度控制不精确等缺点,因此采用数字方法实现各种模拟调制也越来越普遍5。现在许多DDS芯片都直接提供了实现多种数字调制的功能,实现起来比较简单,而要实现模拟线性调制具有一定的难度。因此本设计介绍了一种由单片机控制,并采用FPGA实现DDS功能,产生频率和相位可调的正弦波信号的方法。单片机是实现各种控制策略和算法的载体。波形发生器也可运用单片机技术,通过巧妙的软件设计和简易的硬件电路,产生数字式的正弦波相位、频率和幅值可调的信号。信号的频率、相位可通过键盘输入并显示。与现有各类型波形发生器比较而言,产生的数字信号干扰小,输出稳定,可靠性高,特别是操作简单方便,成本低。1.3 国内外概况目前市场上已有的信号发生器有很多种,其电路形式有采用运放及分立元件构成;也有采用单片集成的函数发生器;以及以单片机和FPGA为核心,辅以必要的模拟电路构成的DDFS数字信号发生器。在保证信号发生器的稳定性、频率范围、幅值范围等指标的同时,实现对输出信号的频率、相位和幅值的数字控制是现代信号发生器的发展方向。1971年,美国学者J.Tierney等人撰写的文章A Digital Frequency Synthesizer首次提出了以全数字技术,从相位概念出发直接合成所需波形的一种新的频率合成原理。限于当时的技术和器件水平,它的性能指标尚不能与已有的技术相比,故未受到重视。近10年间,随着微电子技术的迅速发展,直接数字频率合成器(Direct Digital Frequency Synthesis简称DDS或DDFS)得到了飞速的发展,它以有别于其它频率合成方法的优越性能和特点成为现代频率合成技术中的骄骄者6。DDS在相对带宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能。其优点如下:(1)输出频率相对带宽较宽:输出频率带宽为50%fs(理论值)。但考虑到低通滤波器的特性和设计难度以及对输出信号杂散的抑制,实际的输出频率带宽仍能达到40%fs。 (2)频率转换时间短:DDS是一个开环系统,无任何反馈环节,这种结构使得DDS的频率转换时间极短。事实上,在DDS的频率控制字改变之后,需经过一个时钟周期之后按照新的相位增量累加,才能实现频率的转换。因此,频率转换的时间等于频率控制字的传输时间,也就是一个时钟周期的时间。时钟频率越高,转换时间越短。DDS的频率转换时间可达纳秒数量级,比使用其它的频率合成方法都要短数个数量级。(3)频率分辨率极高:若时钟fs的频率不变,DDS的频率分辨率就由相位累加器的位数N决定。只要增加相位累加器的位数N即可获得任意小的频率分辨率。目前,大多数DDS的分辨率在1HZ数量级,许多小于1MHZ,甚至更小。 (4)相位变化连续:改变DDS输出频率,实际上改变的每一个时钟周期的相位增量,相位函数的曲线是连续的,只是在改变频率的瞬间其频率发生了突变,因而保持了信号相位的连续性。(5)其他优点:可产生宽带正交信号及其他多种调制信号、可编程和全数字化、功耗低、体积小、重量轻、可靠性高、控制灵活方便等方面,并具有极高的性价比。 当然DDS也有局限性,主要表现如下: (1)输出频带范围有限:由于受DDS内部DAC和波形存储器(ROM)的工作速度限制,使得DDS输出的最高频率有限。目前市场上采用CMOS、TTL、ECL工艺制作的DDS芯片,工作频率一般在几十MHZ至400MHZ左右。 (2)输出杂散大:由于DDS采用全数字结构,不可避免地引入了杂散。其来源主要有三个:相位累加器相位舍位误差造成的杂散;幅度量化误差由存储器有限字长引起造成的杂散和DAC非理想特性造成的杂散7。DDS问世之初,构成DDS的元器件的速度限制和数字化引起的噪声这两个主要缺点阻碍了DDS的发展与实际应用。随着近几年超高速数字电路的发展以及对DDS的深入研究,DDS的最高工作频率以及噪声性能已接近并达到锁相频率合成器相当的水平。近年来随着频率合成技术的发展,DDS已广泛应用于通讯、导航、雷达、遥控遥测、电子测量以及现代化的仪器仪表工业等领域8。1.4 课题的主要研究工作信号发生器一般是指能自动产生具有一定频率和幅度的正弦波、三角波(锯齿波)、方波(矩形波)、阶梯波等电压波形的电路或仪器9。本设计主要研究由单片机控制,用现场可编程逻辑器件FPGA实现DDS功能,产生两路频率、相位可调的正弦波信号,及其各功能模块由硬件描述语言VHDL来实现和仿真的方法。2 系统设计方案的研究 由于本系统由多部分构成,在此根据各部分的基本原理,对各方案进行分析和比较。2.1 系统的性能要求信号发生器由单片机、接口电路、FPGA、低通滤波器、D/A转换等部分组成,其中主要为用FPGA实现直接数字频率合成器(DDS)的功能及单片机的控制功能。其组成框图如图2.1所示。单片机通过接口电路控制FPGA构成的DDS系统,通过键盘送人频率控制字、相位控制字和幅值控制字,使其输出一定频率、相位和幅值的正弦波信号,经过低通滤波器后形成平滑的正弦波。图2.1 信号发生器的组成框图系统的性能要求:(1) 频率范围20Hz20KHZ,步进20Hz;(2)差0359,步进1;(3)两路输出正弦波信号,峰峰值分别在0.3V5V变化;(4)数字显示频率、相位差。2.2 系统实现的原理 本设计采用直接数字频率合成技术设计双通道正弦信号发生器,可以输出两路频率相同、相位差可调的正弦信号。该发生器具有频率稳定度高及调频、调相迅速的优点。由于本系统主要由单片机控制DDS实现,故在此着重介绍DDS的原理及其FPGA实现。2.2.1 DDS的基本原理直接数字频率合成器(DDFS)的基本原理:DDS是利用采样定理,根据相位间隔对正弦信号进行取样、量化、编码,然后储存在EPROM中构成一个正弦查询表,通过查表法产生波形10。它是由参考时钟、相位累加器、正弦查询表和DA转换器组成,如图2.2所示。图2.2 直接数字频率合成器原理框图相位累加器由N位加法器与N位累加寄存器级联构成,其原理框图如图2.3所示。每来一个时钟脉冲Fc,N位加法器将频率控制数据K与累加寄存器输出的累加相位数据相加,把相加后的结果Y送至累加寄存器的输入端。累加寄存器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,以使加法器在下一时钟的作用下继续与频率控制数据K相加;另一方面以相加后的结果形成正弦查询表的地址,取出表中与该相位对应的单元中的幅度量化正弦函数值,作为取样地址值送入幅度/相位转换电路(即图2.1中的波形存储器)。这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。图2.3 相位累加器原理框图由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位。当相位累加器加满量时就会产生一次溢出,溢出频率就是DDS输出的信号频率。相位累加器的最大计数长度与正弦查询表中所存储的相位分隔点数相同,在取样频率(由参考时钟频率决定)不变的情况下,由于相位累加器的相位增量不同,将导致一周期内的取样点数不同,输出信号的频率也相应变化。如果设定累加器的初始相位,则可以对输出信号进行相位控制。由采样原理可知,如果使用两个相同的频率合成器,并使其参考时钟相同,同时设定相同的频率控制字、不同的初始相位,那么在原理上就可以实现输出两路具有一定相位差的同频信号。2.2.2 FPGA实现的直接数字频率合成器本设计基于DDS的基本原理,利用Altera公司的FPGA芯片FLEX10系列器件设法将波形采样点的值依次通过数模转换器(MDAC)转换成模拟量输出,可达到预期的目的,具有较高的性价比。其基本环节由计数器(Counter)、只读存储器(EPROM)、数模转换器(MDAC)和滤波器等组成(同DDS原理)11。具体方案如下:累加器由加法器和D触发器级联组成。在时钟脉冲fc的控制下,对输入频率控制字K进行累加,累加满量时产生溢出。相位累加器的输出对应于该合成周期信号的相位,并且这个相位是周期性的,在02范围内起变化。相位累加器位数为N,最大输出为2-1,对应于2的相位,累加一次就输出一个相应的相位码,通过查表得到正弦信号的幅度,然后经D/A转换及低通滤波器滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。整个DDS电路的电路结构如图2.4所示。图2.4 FPGA实现的DDS原理框图2.2.3 移相原理所谓移相是指两路同频的信号,以其中的一路为参考,另一路相对于该参考作超前或滞后的移动,即称为相位的移动。两路信号的相位不同,便存在相位差,简称相差。若我们将一个信号周期看作是360,则相差的范围就在0360之间。例如在图2.5中,以A信号为参考,B信号相对于A信号作滞后移相,则称A超前B,或称B滞后A。图2.5 移相示意图若输出信号A和B的相位差可调,须保证两路信号同步,故应满足以下条件:(1)输入到两个频率合成器芯片的参考时钟之间的相位偏移要足够小。这个相移会导致输出信号之间产生与之成比例的相移。因此在布线时必须精心设计,使从FPGA输出参考时钟的引脚到两个频率合成器芯片的参考时钟输入引脚的引线距离相等,以保证系统时钟同步。另外,参考时钟上升下降沿的抖动应尽可能小,并且时间应尽可能短,因为不同频率合成器芯片输入电路的触发电压不同,因此参考时钟的上升下降沿时间太长会增加输出信号的相位误差。(2)频率控制字送到频率合成器的数据缓冲区后,还必须通过一个更新时钟才能将数据缓冲区中的数据送到相位累加器,成为有效数据后进行输出。频率合成器有两种更新时钟产生方式,一种由FPGA内部自动产生,另一种由外部提供。要使两路输出信号同步,必须使用外部IO更新时钟,同时必须使参考时钟信号(REFCLK)与外部IO更新时钟(UPDATE CLK)上升沿之间满足图2.6所示的时序关系。图2.6 参考时钟与更新时钟之间的时序关系图更新时钟的上升沿必须在参考时钟的下降沿0.3ns之后与下一个下降沿1.5ns之前之间(图2.6中深色区间为有效区域)产生,这样可以使两个频率合成器工作在相同的系统时钟(参考时钟乘以一定倍数)下,且它们的系统时钟脉冲数相差不能超过1个脉冲。(3)在第一次传送数据之前必须先使频率合成器复位,以保证其输出的相位是可知的。因为DDS芯片的相位输出是连续的,所示复位信号可使两个频率合成器的相位累加器复位到COS(0)状态。新的数据送到相位累加器时,它们之间的相位关系可以得到保持,也可以通过相位控制字来调节两片频率合成器之间的相位差12。2.3 系统实现方案分析与比较在这个系统中,较为困难的部分是由FPGA实现频率合成器的功能及移相功能的实现。因为要求产生两路正弦波,频率和相位可调,且都要以数字的形式进行控制和处理,所以在设计中将分别对部分电路提出几种实现方案并进行分析和论证。2.3.1 频率合成器方案频率合成是指对一个标准信号频率经过一系列算术运算,产生具有相同精度和稳定度的大量离散频率的技术13。频率合成有多种实现方法,其中直接数字频率合成技术与传统频率合成技术相比具有难以比拟的优点,如频率切换速度快、分辨率高、频率和相位易于控制等。因此得到越来越广泛的应用,成为当今现代电子系统及设备中频率源设计的首选。实现DDS的三种技术方案 :(1)采用高性能DDS单片电路的解决方案 :随着微电子技术的飞速发展,目前市场上性能优良的DDS产品不断推出,主要有Qualcomm、AD、Sciteg和Stanforc等公司单片电路(monolithic)。Qualcomm公司推出了DDS系列Q2220、Q2230、Q2334、Q2240、Q2368,其中Q2368的时钟频率为130MHZ,分辨率为0.03HZ,杂散控制为-76dBc,变频时间为0.1us;美国AD公司也相继推出了他们的DDS系列:AD9850、AD9851、可以实现线性调频的AD9852、两路正交输出的AD9854以及以DDS为核心的QPSK调制器AD9853、数字上变频器AD9856和AD9857。AD公司的DDS系列产品以其较高的性能价格比,目前取得了极为广泛的应用。下面仅对比较常用的AD9850芯片作一个简单介绍。 AD9850是AD公司采用先进的DDS技术,1996年推出的高集成度DDS频率合成器,它内部包括可编程DDS系统、高性能DAC及高速比较器,能实现全数字编程控制的频率合成器和时钟发生器。接上精密时钟源,AD9850可产生一个频谱纯净、频率和相位都可编程控制的模拟正弦波输出。此正弦波可直接用作频率信号源或转换成方波用作时钟输出。AD9850接口控制简单,可以用8位并行口或串行口直接输入频率、相位等控制数据。32位频率控制字,在125MHZ时钟下,输出频率分辨率达0.029HZ。先进的CMOS工艺使AD9850不仅性能指标一流,而且功耗少,在3.3V供电时,功耗仅为155mW。扩展工业级温度范围为-40+85摄氏度,其封装是28引脚的SSOP表面封装。 AD9850采用32位相位累加器,截断成14位,输入正弦查询表,查询表输出截断成10位,输入到DAC。DAC输出两个互补的模拟电流,接到滤波器上。调节DAC满量程输出电流,需外接一个电阻Rset,其调节关系是Iset=32(1.248V/Rset),满量程电流为1020mA14。(2)采用低频正弦波DDS单片电路的解决方案: Micro Linear公司的电源管理事业部推出低频正弦波DDS单片电路ML2035以其价格低廉、使用简单得到广泛应用。ML2035特性:(1)输出频率为025KHZ,在时钟输入为12.352MHZ时频率分辨率可达到1.5HZ(-0.75+0.75HZ),输出正弦波信号的峰峰值为Vcc;(2)高度集成化,无需或仅需极少的外接元件支持,自带312MHZ晶体振荡电路;(3)兼容的3线SPI串行输入口,带双缓冲,能方便地配合单片机使用;(4)增益误差和总谐波失真很低。 ML2035为DIP-8封装,各引脚功能如下: (1)Vss:-5V电源; (2)SCK:串行时钟输入,在上升沿将串行数据锁入16位移位寄存器; (3)SID:串行数据输入,该串行数据为频率控制字,决定6脚输出的频率; (4)LATI:串行数据锁存,在下降沿将频率控制字锁入16位数据锁存器; (5)VCC:+5V电源; (6)VOUT:模拟信号输出; (7)GND:公共地,输入、输出均以此点作为参考点; (8)CLK IN:时钟输入,可外接时钟或石英晶体。 ML2035生成的频率较低(025KHZ),一般应用于一些需产生的频率为工频和音频的场合。如用2片ML2035产生多频互控信号,并与AMS3104(多频接收芯片)或ML2031/2032(音频检波器)配合,制作通信系统中的收发电路等。 可编程正弦波发生器芯片ML2035设计巧妙,具有可编程、使用方便、价格低廉等优点,应用范围广泛,适合需要低成本、高可靠性的正弦信号的场合。 (3)自行设计的基于FPGA芯片的解决方案: DDS技术的实现依赖于高速、高性能的数字器件。可编程逻辑器件以其速度高、规模大、可编程,以及有强大EDA软件支持等特性,十分适合实现DDS技术。Altera是著名的PLD生产厂商,多年来一直占据着行业领先的地位。Altera的PLD具有高性能、高集成度和高性价比的优点,此外它还提供了功能全面的开发工具和丰富的IP核、宏功能库等,因此Altera的产品获得了广泛的应用。Altera的产品有多个系列,按照推出的先后顺序依次为Classic系列、MAX(Multiple Array Matrix)系列、FLEX(Flexible Logic Element Matrix)系列、APEX(Advanced Logic Element Matrix)系列、ACEX系列、Stratix系列以及Cyclone等15。 虽然有的专用DDS芯片的功能也比较多,但控制方式却是固定的,因此不一定是我们所需要的。而利用FPGA则可以根据需要方便地实现各种比较复杂的调频、调相和调幅功能,具有良好的实用性。就合成信号质量而言,专用DDS芯片由于采用特定的集成工艺,内部数字信号抖动很小,可以输出高质量的模拟信号;利用FPGA也能输出较高质量的信号,虽然达不到专用DDS芯片的水平,但信号精度误差在允许范围之内16。2.3.2 移相方案 要实现两路信号具有确定的相位差,采用数字移相技术,这是目前移相技术的潮流。数字移相技术的核心是先将模拟信号数字化,移相后再还原成模拟信号。 数字移相主要有两种形式:一种是先将正弦波信号数字化,并形成一张数据表存入ROM芯片中,此后可通过两片DA转换芯片在单片机的控制下连续地循环输出该数据表,就可获得两路正弦波信号,当两片DA转换芯片所获得的数据序列不同时,则转换所得到的两路正弦波信号就存在着相位差。相位差的值与数据表中数据的总个数及数据地址的偏移量有关。这种处理方式的实质是将数据地址的偏移量映射为信号间的相位值。另一种是先将参考信号整形为方波信号,并以此信号为基准,延时产生另一个同频的方波信号,再通过波形变换电路将方波信号还原成正弦波信号。以延时的长短来决定两信号间的相位值。这种处理方式的实质是将延时的时间映射为信号间的相位值。综合各方面考虑本设计采用前一种方式,具体调整方法如下:可预置计数器的初值不同,从ROM中读出周期信号函数采样信号时的起始地址就不同,对应的信号相位也就不同。故只要在初始时刻,通过对计数器预置不同的初值即可形成两路信号间不同的相位差,从而达到调节信号间相位的目的。2.3.3 存储器方案(1)波形表存储器 因为本设计是采用FPGA实现DDS的功能,所以使用FPGA作为数据转换的桥梁,将波形数据存储到其内部的RAM中,并由DDS系统产生波形输出。需存储在RAM中的波形数据是由单片机采集外部数据,对ROM中存储的标准波形进行各种相应的运算而得到。波形表存储器ROM有三种方法实现。方法一:外接ROM用单片机来完成。可采用并行两片32K的EEPROM存储器AT28C256,共16位位宽,可以实现12位波形表存储,150ns读取速度完全满足20KHZ的工作频率。实现方案:将归一化的正弦波存储在32KEEPROM中,波形存储64个点。然后由单片机根据键盘输入的不同要求,对各点数据乘相应系数并叠加,再将所得到的新数据存储在RAM中,此时便得到了所需要的波形数据表。方法二:由逻辑方式在FPGA中实现。方法三:利用Altera公司的含于EAB器件中的兆功能模块LPM_ROM,通过VHDL语言编程来实现。第一种方法容量最大,但速度最慢,且编程比较麻烦;第二种方法速度最快,但容量非常小;第三种方法兼顾了两者的优点,克服了其缺点。在选用FPGA芯片时,本设计选用的是Altera公司的FLEX10K系列芯片EPF10K10LC84_4, 有LPM_ROM模块,因此ROM选用第三种方法。(2)外存储器 由于本设计选用的单片机为MSC-51系列的8051,它相对于高速的FPGA来说速度太慢,因此对单片机扩展外部数据存储器和波形存储器。半导体存储器可分为三类:只读存储器(ROM、PROM、EPROM),随机存储器(SRAM、DRAM),不挥发性读写存储器(EEPROM、NOVRAM)。本设计要实现编辑功能,故必须选择随机存储器或不挥发性读写存储器。方案一:采用SRAM(6264:8KRAM)和EEPROM(2817:2KROM),通过总线隔离的办法实现,既能通过CPU改变存储器数据,又能通过相位累加实现读取波形存储器数据的功能。方案二:采用特殊存储器双口RAM。双口RAM有左右两套相同的I/O口,即两套数据总线,分别有两套地址、控制总线,并有一套竞争仲裁电路。它可通过左右两边的任一组I/O进行异步的存储器读写操作,避免了系统总线隔离17。 对比上述两种方案,方案一的硬件电路虽较复杂,但设计简单,成本低,容量大,故采用此方案。2.3.4 存储器寻址方案方案一:采用移位寄存器74164对BCD乘法器14527进行设置。BCD乘法器14527接成加法级联方式,输入频率由晶振提供,级联输出频率为: (2.1)式中K1、K2、K3、K4、K5为BCD乘法器置数。根据置数不同,可以输出不同的频率的计数脉冲,再经计数器计数对存储器寻址,频率控制寻址频率,从而控制输出波形的频率。此方案硬件接线复杂,频带不易拓宽。方案二:运用FPGA构成的相位累加器对EEPROM进行寻址。由单片机控制步长即可控制寻址频率,而相移也可方便地由单片机控制相位累加器的初始值来设定。比较两种方案,方案二设计简单,易于单片机控制,故选方案二。3 总体设计3.1 FPGA设计DDS电路的具体实现FPGA设计的DDS系统主要由相位累加器及相位/幅度转换电路组成。根据设计的具体要求,还设计了一个系统控制电路,这一电路可灵活设计,以突出FPGA的优点所在。另外采用VHDL硬件描述语言实现整个DDS电路,不仅利于设计文档的管理,而且方便设计的修改和扩充,还可以在不同FPGA器件之间实现移植。3.1.1 相位累加器部分在用FPGA设计DDS电路的时候,相位累加器是决定DDS电路性能的一个关键部分。小的累加器可以利用FLEX器件的进位链得到快速、高效的电路结构。然而由于进位链必须位于临近的LAB(逻辑阵列块)和LE(逻辑单元)内,因此长的进位链势必会减少其它逻辑使用的布线资源,同时过长的进位链也会制约整个系统速度的提高。另一种提高速度的办法是采用流水线技术,即把在一个时钟内要完成的逻辑操作分成几步较小的操作,并插入几个时钟周期来提高系统的数据吞吐率。但是流水线技术比较适合开环结构的电路,要用在累加器这样的闭环反馈的电路中必须谨慎考虑,以保证设计的准确无误。综合考虑后,相位累加器采用流水线技术来实现,这样能保证较高的资源利用率,又能提高系统的性能和速度。设计中整个系统只加入了一级流水线来提高速度。为了进一步提高速度,在设计相位累加器模块和加法器模块时并没有采用FPGA单元库中1632位加法器,尽管它们可以很容易地实现高达32位的相位累加器,但当工作频率较高时,它们较大的延时不能满足速度要求,故不可取。因此,具体实现时分别采用了4个和8个4位累加器,以流水线的方式实现16位累加器和32位加法器。采用流水线技术可以大大提高系统的工作速度18。3.1.2 相位/幅度转换电路相位/幅度转换电路是DDS电路中的另一个关键部分。该电路通常采用ROM结构,相位累加器的输出是一种数字式锯齿波,通过取它的若干位作为ROM的地址输入,而后通过查表和运算,ROM就能输出所需波形的量化数据。 在FPGA(针对Altera公司的器件)中,ROM一般由EAB实现,且ROM表的尺寸随地址位数或数据位数的增加成指数递增关系,因此在满足信号性能的前提下,如何有效利用FPGA的有限资源,成为相位/幅度转换电路中最关键的一点。在设计时可充分利用信号周期内的对称性和算术关系来减少EAB的开销。相位/幅度转换电路中的主要问题在于ROM的大小。由于本设计只需要输出正弦波,故考虑了以下的优化方式:正弦波信号对于x=直线成奇对称,基于此可以将ROM表减至原来的1/2,再利用左半周期内,波形对于点(/2,0)成偶对称,进一步将ROM表减至最初的1/4,因此通过一个正弦码表的前1/4周期就可以变换得到的正弦的整个周期码表,这样就节省了将近3/4的资源19。3.1.3 波形表生成由于DDS中波形表存储器是采用FPGA芯片内部的LPM_ROM实现,故波形表可以VHDL编程的.mif文件形式存入LPM_ROM中,具体实现见附录2。3.1.4 D/A转换电路 因为要产生两路具有相位差的正弦波,所以必须采用两片D/A转换芯片将两路信号分别转换成模拟量输出。在此选用转换速率为500ns的芯片AD7521作为数字量到模拟量的转换器件。3.1.5 系统控制电路 系统控制电路主要是根据是否需要相位调制及频率调制,系统时钟是否需要分频得到所需的基准时钟,频率码的输入方式是串行、并行还是微机接口方式,如何控制输出等具体要求而设计的,其功能实现见图2.4。3.2 单片机与FPGA的接口设计 在功能上,单片机与FPGA有很强的互补性。单片机具有性价比高、功能灵活、易于人机对话、良好的数据处理能力等特点;FPGA则具有高速、高可靠性以及开发便捷、规范等优点。用这两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中仍将被广泛应用。MCS51单片机(8051)系统是整个硬件系统的核心,其引脚如图3.1所示,它既是协调整机工作的控制器,又是数据处理器,其内部资源分配和性能如下:8位CPU、寻址能力达264K;4KB的ROM和128字节RAM;4个8位I/O接口电路;一个串行全双工异步接口;5个中断源和两个中断优先级20。图3.1 8051的引脚图单片机的功能主要是传送频率控制字K1和相位控制字K2给FPGA处理;生成波形表存储于EEPROM中;控制键盘的写入和LED的显示;控制DAC0832进行幅值转换。在每次加电前都要通过单片机初始化,将写好的程序加载在信号产生系统上,然后把从键盘上输入的数据送到中央处理芯片上,信号通过低通滤波器输出的同时,LED数码管显示信号的频率和相位差。单片机与FPGA的接口方式一般有两种,即总线方式与独立方式。因为单片机以总线方式与FPGA进行数据与控制信息通信有许多优点,如速度快;节省PLD芯片的I/O口线;编程简捷,控制可靠;另外在FPGA中通过逻辑切换,单片机易于与SRAM或ROM接口。故单片机与FPGA的接口方式选用总线方式。FPGA与单片机的总线接口如图3.2所示,其外部接口和VHDL设计见附录2。图3.2 FPGA与单片机的总线接口 MCS-51单片机的总线接口方式工作时序如图3.3所示,它以总线方式与FPGA进行数据与控制信息通信,其通信工作时序是纯硬件行为,只需一条单字节指令就能完成所需的读写时序,如:MOVX DPTR, A; MOVX A, DPTR根据时序图3.3来设计单片机与FPGA以总线方式通信的逻辑结构。其时序电平变化速度与单片机工作时钟频率有关。图3.3 MCS-51单片机总线接口方式工作时序图中,ALE为地址锁存使能信号,利用其下降沿将低8位地址锁存于FPGA中的地址锁存器(LATCH_ADDRES)中;当ALE将低8位地址通过P0锁存的同时,高8位地址已稳定建立于P2口,单片机利用读指令允许信号PSEN的低电平从外部ROM中将指令从P0口读入,由时序图可见,其指令读入的时机是在PSEN的上升沿之前。然后由P2口和P0口分别输出高8位和低8位的数据地址,并由ALE的下降沿 P0口的低8位地址锁存于地址锁存器。若需从FPGA中读出数据,单片机则通过指令“MOVX A,DPTR”使RD信号为低电平,由P0口将图3.1中锁存器LATCH_IN1中的数据读入累加器A;若要将累加器A的数据写入FPGA,则需通过指令”MOVX DPTR,A”和写允许信号WR。这时,DPTR的高8位和低8位数据作为高、低8位地址分别向P2和P0口输出,最后由WR的低电平结合译码,将累加器A的数据写入图中相关的锁存器。3.3现场可编程逻辑器件(FPGA)的选择FPGA是现场可编程门阵列(Field Programmable Gate Array)的英语缩写,它是在阵列的各个节点放上由门 、触发器等做成的逻辑单元,并在各个单元之间预先制作了许多连线。在FPGA中常用的编程工艺有反熔丝和SRAM两类。综合考虑设计、仿真和调试的全过程,在此主要考虑选用Altera公司的FLEX10K系列的FPGA芯片。FLEX10K是Altera公司1995年推出的产品系列,它集合了可编程器件的灵活性,采用0.5mCMOS SRAM工艺制造,器件规模从10000门到250000门,系统时钟可以达到204MHZ,兼容66MHZ,64 bit PIC,采用独特的嵌入式阵列和逻辑阵列的逻辑实现结构,同一系列相同封装的芯片在管脚上满足兼容21。同时,可为用户提供多达3K8位的片内RAM,其双口RAM为独立的读写操作提供了独立的读、写端口,且每个I/O口都有寄存器;PLL时钟管理和时钟增强电路提高了系统的性能,并且可以提供时钟倍频;专用进位链路,可实现快速加法器和计数器功能;专用级联链路,支持系统集成;支持多时钟系统的低时滞要求;具有JTAG边界扫描测试内速电路;Altera的I/O多重电压3.3V或3.0V工作模式和FineLine BGA封装极大的提高了FLEX10K系列的灵活性和适应性。并由Altera公司的MAX plus开发系列提供软件支持。本设计中采用Altera公司的FLEX10K系列芯片EPF10K10LC84-4,作为实现DDS的FPGA芯片。EPF10K10LC84-4的主要参数如表3.122:表3.1EPF10K10LC84-4的主要参数逻辑门数I/O门数电源 V速度等级/ns逻辑单元RAM /bit参数10000845.0-45766144其5V外部电源和TTL、CMOS电平兼,丰富的寄存器资源和I/O口,40MHZ的工作频率满足基准时钟10MHZ的要求,其优良的特性完全可以实现DDS芯片的功能。3.4 其他电路设计在设计中除单片机和FPGA之外,还需要很多外围电路来提供时钟源和波形调整等,以下将简要介绍各外围电路的设计及参数选择。3.4.1 晶体振荡电路 设计中取64个点组成一个周期的波形,且频率最小步进定为20HZ,这样需要产生1280HZ的方波作为锁相环电路的输入。将32.768KHZ的晶振通过整形电路整形和分频,即可得到频率为1280HZ的方波f1,如图3.4所示。图3.4 晶体振荡电路3.4.2 地址计数脉冲产生电路由于一个周期我们取的是64个样点,最小步进20HZ,因此如果计数器的计数脉冲频率为1280HZ,D/A转换器就会输出20HZ的波形。这样若要得到频率为F0(F0为20的倍数)赫兹的波形,只要输入频率为64F0(HZ)的计数脉冲即可。例如要得到20HZ的正弦波,计数脉冲频率应为1280HZ;要得到频率为20KHZ的正弦波,计数频率应为1.28MHZ。电路设计如图3.5所示,1280HZ的方波信号作为锁相环频率合成器4046的基准时钟,并配以可编程计数器8254实现基准时钟频率的262500倍频,这样就得到了地址计数器脉冲f2。图3.5 地址计数脉冲产生电路3.4.3 幅度控制电路波形的幅度控制利用带宽1MHZ的DAC0832控制23,利用DAC0832内部的分压网络,将经DDS产生的波形作为DAC0832的基准电压,由单片机控制输入的数字量,从而实现步进0.1V的幅度调整,幅值范围0.35V。如图3.6所示。图3.6 幅度控制电路3.4.4 单片机外扩展存储器电路采用外部存储器6264(SRAM:8KRAM)和2817(EEPROM:2KROM),通过总线隔离的办法实现,电路如图3.7所示。图3.7 外扩存储器电路3.4.5 滤波、缓冲输出电路 D/A输出后,通过滤波电路、输出缓冲电路,使信号平滑且具有负载能力。滤波采用二阶巴特沃兹低通滤波器,其幅度函数是单调下降的,且n阶巴特沃兹低通滤波器的前(2n-1)阶导数在=0处为零,所以它又称为最大平坦幅度滤波器24。由于本设计要求滤波的分量主要为由D/A产生的高频分量,和要保留的频率(小于20KHZ)相差很远,所以滤波器在通带内的平坦程度比其衰减陡度更为重要。另外,巴特沃兹低通滤波器也不像其它滤波器对元件值要求那么苛刻,因为在截止频率附近,频率响应钝化可能是这些滤波器在要求锐截止的地方不合要求。设计中主要是频率为20KHZ的正弦波。运放选用宽带运放LF351,电路设计如图3.8。正弦波的输出频率小于20.48KHZ,为保证20.48KHZ频带内输出幅度平坦,又要尽可能抑制谐波和高频噪声,综合考虑取:R1=1K,R2=1K,C1=100pF,C=100pF。图3.8 滤波、缓冲电路3.4.6 键盘和显示控制电路采用通用键盘接口芯片8279,通过74LS373和74LS377与单片机的P0口相连,控制44阵列键盘和4个数码管显示的键盘显示模块,用扫描方式由8279得到键盘码,由中断服务程序把数据送给单片机,以实现系统控制和显示功能。此方案不用单片机扫描,占用资源少,电路见附录1。用四个LED进行显示,这种方案的缺点是不能适时显示,但也能满足设计要求。本方案采用单片机控制, 由4511驱动4个共阴极数码管LED进行动态显示相位和频率。4 系统的实现4.1 系统的计算与仿真本设计是在EDA设计平台上实现系统的仿真,所以需要的装置主要有PC机和Altera公司的MAX+plus软件。Altera公司的MAX+plus软件是一款易于使用的开发工具,其界面友好,集成化程度高。支持FLEX、MAX、ACEX1K系列器件,可通过 MAX+plus图形编辑器创建图形设计文件(.gdf),通过MAX+plus文本编辑器使用VHDL语言创建文本设计文件(.vhd),还可以通过MAX+plus波形编辑器创建波形设计文件(.wdf)。通过MAX+plus编译器完成,可检查项目是否有错,并对项目进行逻辑综合,然后配置到一个ALTERA器件中,同时产生报告文件、编程文件和用于时间仿真的输出文件。4.1.1 系统频率、相位和幅度的计算正弦波可表示为:F=Asin(2),数字量最终转换为模拟量时可表示为: F=Asin(k-1+) (4.1)式中为输出正弦波频率,A为输出正弦波的幅度,为一个时钟周期Tclk的相位增量,即2Tclk。在实际操作中,对正弦波的一个周期2均分为2等份,则量化为B: B=int(*2/2) (4.2) 将=2Tclk带入4.2式得: B=2 (4.3)故设定相位累加器位数、B和基准时钟的值,就可以产生任一频率的输出。又因为输出信号频率步进为20HZ,若令=202,则=20B。将B表示为频率控制字K, 则输出信号波形的频率表示式为: K=20K (4.4) (4.5)式中K为频率控制字,N为累加器位数, M为相位增量寄存器位数。为保证输出频率20KHZ以上时,取样点数不小于64点,以减小失真,这样时钟频率必须大于1.28MHZ。又因为所选相位累加器位数为16位,故相位累加器时钟频率=20HZ=1.31072MHZ。又因为相位增量寄存器为10位,则由(4.5)式得最高输出频率为:=20.48KHZ最低输出频率为20HZ。由抽样定理,最高输出频率不得大于/2,而据实验所得,实际工作频率小于/3时较为合适。且的取值受到D/A转换速率的限制,因D/A转换器AD7521的转换速率为500ns,即频率为2MHZ,综合考虑选取晶振基准频率为1.4MHZ。 信号间的相位差的调节精度与信号相位增量寄存器的位数有关。给相位累加器预置的累加初值K(加在相位累加器的高A位),两路输出信号的相位差与累加初值 K的关系为:=(K/2)/360即K=(2)/360所以,其相位差调节分辨率为:360/2 。要达到相位调节步进1的要求,则A应为9,此时相位分辨率为0.7。 频率分辨率定义为: f=fc/=20HZ 由于FPGA的工作电压为5V,所以幅度分辨率为:Adiv=5/2=0.076mV,故都能达到指标要求。幅度控制是用DAC0832实现的,输出信号的幅度由D/A转换的参考电压决定。它以DAC0832的输出接到D/A转换的参考电压(Vref)输入端作为基准电压源输入25,其输出波形的幅度为:V= Vref。4.1.2 系统仿真用MAX+plus设计DDS系统数字部分最简单的方法是采用原理图输入。相位累加器调用lmp_add_sub加减法器模块,相位累加器设计的好坏将直接影响到整个系统的速度,采用流水线技术能大幅度地提升速度。波形存储器(ROM)通过调用lpm_rom元件实现,其LPM_FILE的值.mif是一个存放波形幅值的文件。波形存储器设计主要考虑的问题是其容量的大小,利用波形幅值的奇、偶对称特性,可以节省3/4的资源,这是非常可观的。为了进一步优化速度的设计,可以选择菜单Assignal Global
展开阅读全文