本文主要围绕函数发生器输出的正弦、二角和方波二种基本波形的产生这一课题来展开,阐述了其中的直接数字合成(DDS、等精度测频等概念;分析了研制函数发生器所需攻克的关键技术,提出了技术解决途径;对方案软件进行编制和系统进行设计、安装调试,实现了课题功能;最后针对调试中出现的问题,进行了较深入的分析,并提出了实际的解决措施。
课题主要工作如下.
1.阐明整个函数发生器的工作流程以及各部分电路所完成的功能,并说明了三种波形产生的工作原理。
2.从DDS的原理出发,着重介绍了一种自行设计的基于可编程逻辑器件FPGA的DDS电路的实现方法,并对其高速相位累加器、RAM查找表等关键技术进行了详细讨论。
3.从等精度测频法的原理出发,介绍了测频电路的实现方法,并对其测频和测脉宽等功能的实现进行了详细介绍。
4.介绍了单片机控制软件在函数发生器中的作用,并详细说明了各软件模块的实现方法。
函数发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。它可以产生多种波形信号,如正弦波,二角波,方波等。顾名思义,函数发生器的主要功能就是函数功能,尤其是在基础实验中(如大学电子实验室、科研机构实验室、工厂开发实验室等),当我们设计了一种电路,需要验证其可靠性与稳定性时,就需要给它施加理想中的波形以辨别真伪。例如我们可对一个怀疑有故障的数字电路,利用信号源的方波输出作为数字电路的时钟,同时使用方波加DC补偿产生有效的逻辑电平模拟输出,观察该电路的运行状况,证实故障缺陷的地方。
近年来,函数发生技术结合最新的信号生成技术(DDS,产生了功能更加强大的函数发生器。DDS是从上世纪七十年代发展起来的一种频率合成技术,它采用数字处理模块,参照一个频率固定目_精确的时钟源,产生频率、相位均可调的输出信号。相对十直接法、锁相法等传统信号合成方法,DDS技术具有频率转换速度快、频率分辨率高、电路简单目_易十控制的优点。因此基十DDS技术的函数发生,但发展迅猛,市场份额日见扩大,已开始逐步取代传统的函数发生器。
函数发生器简介
目前,市面上函数发生器的种类很多,各种不同型号的函数发生器的功能和用途也不同。
2本课题指标及要求
研制基于DDS技术的100MSa/S函数发生器的计划,输出波形有正弦波,三角波和方波三种波形。
其主要指标如下:
(1)输出波形:
正弦、方波、三角波
(2)输出频率范围:
正弦波,方波0.1 Hz—20MHz
三角波: 0.1 Hz—MHz
(3) 频率分辨率
(4) 占空比:
20%-80%输出频率<10MHz
40%-60%输出频率>10MHz
3本课题研究内容
DDS电路是本系统的核心部分,它完成了对正弦、三角波两种波形的产生和输出。高速采样与保证良好的波形质量是整个系统实现的关键。在整个系统中,需要对DDS的各种控制字进行计算、对信号进行幅度的放大或衰减、改变信号的偏移等等,这些工作都将由单片机系统来完成。而对于测频部分的实现,主要是对FPGA自(可)编程硬件电路和单片机控制电路的设计,充分利用了单片机和FPGA的各自优势。
本论文围绕数字电路的设计而展开,重点将对基于EDA技术的DDS电路和测频电路、微处理器系统以及相应的控制软件设计进行介绍。其主要工作如下:
1.阐明整个函数发生器的工作流程以及各部分电路所完成的功能,并说明三种波形产生的工作原理。
2.从DDS的原理出发,着重介绍了一种自行设计的基十可编程器件FPGA的DDS电路的实现方法,并对其高速相位累加器、RAM查找表等关键技术进行了详细讨论。
3.从等精度测频法的原理出发,介绍测频电路的实现方法,并对其测频和测脉宽等功能的实现进行了详细介绍。
4.介绍单片机控制软件在函数波形发生器中的作用,并详细说明各软件模块的实现方法。
方案比较选择
方案一:利用8038芯片或MAX03 8可以实现压控的函数发生器,通过改变少量的外围兀件,可实现正弦波,方波,三角波,并可实现频率调节,但采用模拟器件由于元形件分散性太大,即使使用单片函数发生器,参数也与外部兀件有关,外接的电阻,电容对参数影响很大,因}fu产生的频率稳定度差,精度低,抗干扰能力差,调节困难,成本也高。而 灵活性差,不能实现智能化。实现步进更困难。但整个制作过程简单,目易于实现。
方案二:根据DDS原理利用FPGA自行设计DDS芯片。这种方法可以灵活的通过改变RAM表中的数据实现不同波形的产生,并且‘频率分辨率高,稳定度好。
经过比较,本项目采用第二种方案来产生函数波形。
总体设计方案
根据功能要求,整个系统分成两个主要部分:波形产生部分和测频部分。系统的总体框图如图2-1所示。
图2-1系统总体框架图
微处理器采用ATC52,负责键盘扫描与液晶显示控制,同时调动各功能电路协同工作;键盘和显示单元为用户提供友好的人机交互接口,FLASH存储器存放固有的正弦和三角波形数据;DDS采用FPGA自行设计累加器,辅以外部的RAM查找表和DAC,完成正弦和二角波形的产生;模拟通道由低通滤波器、方波形成电路以及信号调理单兀组成,完成方波的产生,输出波形的选择,输出信号幅度、偏移的控制等;测频单兀电路和整形电路配合,对输出波形的频率进行测量,反馈数据给微处理器,进行波形频率的调节操作。
当要求产生一个正弦信号时,首先微处理器从FLASH MEMORY中取出正弦波数据放入DDS电路的RAM查找表中,设置好DDS的频率控制字后启动DDS电路,DDS电路送出的信号经过滤波器电路滤除高次谐波分量后得到一个频谱很纯的正弦波信号,将这个信号经过信号调理电路就可以得到想要的正弦信号。三角波形的产生过程同正弦波一样,只是从FLASH MEMORY中取出的是三角波数据。如果要产生方波,就需要将输出的正弦信号通过方波形成电路来得到。
微处理器系统
微处理器负责键盘扫描与液晶显示控制,同时调动各功能电路协同工作。本项目采用ATMEL公司的高性能8位单片机ATC52 o ATC52的主要作用包括:
(1).键盘扫描,并根据获得的结果调用相关的操作。
(2).液晶显示控制,提供友好的人机交互界面。
(3).对 DDS、输出调理通道、测频单兀等进行控制。
(4).根据测频单兀电路反馈的结果,调节输出频率。
DDS电路
DDS电路用于产生频率连续可调的波形信号,是整个数字电路的核心。它主要包括以下几个部分:
1.相位累加器;
2.数据查找表(LZAM ) ;
3.DAC(数模变换器)。
D/A转换器的首要要求就是速度,应选用高速的D/A转换器。其次,增大D/A的位数可以减小电压幅值量化误差。综合上述要求,这里采用10位AD9751,它是一个双输入端口的超高速10位CMOS DAC数模转换器,内含一个高性能的10位D/A内核、一个基准电压和一个数字接口电路。
由FPGA芯片实现的相位累加器、数据查找表(LZAM), DAC(数模变换器)等电路就构成了函数发生器的核心DDS电路,产生连续可调的正弦波形和三角波形。
测频电路
测频电路采用等精度测频原理来实现,等精度测频不仅具有较高的测量精度,而且在整个测频区域都能保持恒定的测量精度,所以在性能上要优十传统的频率计。此外,输入的待测频率的信号必须经整形电路整形成方波,然后才能进行测频。整形电路具体工作原理如下:被测信号经限幅电路限幅后,由两级直接藕合放大器放大,最后再由施密特触发器整形,送入测频单元电路进行测频。由于测频并不是函数发生器的主要功能,所以它的性能指标要求并不很高,能够测到20M的频率即可。
外设部分
系统的键盘采用动态扫描,由PO口和P1口的二个I/O线组成,整个键盘设计电路不仅扩展了单片机的I/O口,还可以极大的增强系统的灵活性,为以后系统升级提供方便。
DDS电路的硬件设计
直接数字频率合成技术(简称DDS)的理论早在七十年代就被提出,它不同十我们己经熟悉的直接频率合成技术和锁相环频率合成技术。DDs利用采样定理,通过查表法产生波形。由于硬件技术的,DDs技术当时没能得到广泛应用。但是随着大规模集成电路技术的飞速发展,DDs技术易十程控,相位连续,输出频率稳定度高,分辨率高的优越性已逐步显现出来。
DDS原理
DDS结构框图
如图3-1,该DDS系统的核心是相位累加器,它由一个加法器和一个相位寄存器组成,每来一个时钟,相位寄存器以频率控制字为步长增加,相位寄存器的输出与相位控制字相加,一次,即意味着输出波形循环一周。故改变频率字即相位增量,就可以改变相位
累加器的溢出时间,在时钟频率不变的条件下就可以改变输出频率。 由此,可推出DDS输出正弦波频率为: (3 .1)
由式3. 1可得到频率控制字与输出信号频率和参考时钟频率之间的关系为:
(3 .2)
其中N是相位累加器的字长。频率控制字M与输出信号频率成正比。通常用
频率增量来表示频率合成器的分辨率,DDS的最小分辨率为
(3 .3)
这个增量也就是最低的合成频率。最高的合成频率受奈奎斯特抽样定理的,所以由取样定理,所产生的信号频率不能超过时钟频率的一半。
(3 .4)
在实际运用中,为了保证信号的输出质量,输出频率不要高于时钟频率的33%,以避免混叠或谐波落入有用输出频带内。
相位累加器设计
相位累加器实际上就是一个3 2-bits加法器。它的设计中需要重点考虑的是累加速度。如果采用全加器进行级联,当操作数的字长较大时,由于进位要经过多次传递,了这种电路的速度,各位产生的时刻也不相同。为了提高运算速度,在这里专门采用了行波进位加法器。行波进位加法器的原理实际上与全加器级联相同,只是换成从进位角度考虑加法问题。3 2-bits的行波加法器框图如图3-2,只有时钟到来的时候,此加法器才执行一次累加操作。然后输入到正弦查询表地址上。正弦查询表包含一个周期正弦波的数字幅度信息,每个地址对应正弦波中0-360度范围的一个相位点。由于相位累加器的输出连接在波形存储器(RAM)的地址线上,因此其输出的改变就相当十进行查表。这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出。RAM的输出送到D/A转换器,经D/A转换器转换成模拟量后输出。滤波器则进一步平滑D/A转换器输出的近似正弦波的锯齿阶梯波,同时衰减不必要的杂散信号,使输出成为所要求的光滑波形。由于相位累加器字长的,相位累加器累加到一定值后,其输出将会溢出,这样波形存储器的地址就会循环
图3-2 32-bits的行波加法器框图
相位累加器是DDS的最核心部分,如何保证高的累加速度是一个关键的问题。
Altera公司的FPGA芯片的逻辑阵列块(LAB)中包含有提高速度的结构,即级联链(Cascade chain)和进位链(Carry chain)。其中级联链能以很小的延时将多个逻辑单兀并联起来,有利于实现高“扇入”的逻辑功能;而进位链能够提供在一个逻辑阵列块中逻辑单元之间的快速进位,使芯片能够实现快速的加法器和计数器。所以灵活的使用进位链和级联链,既可以充分利用FPGA的片内资源,又能提高相位累加器的工作速度。另外,在输入设计时采用原理图输入的方法,综合时对时钟进行约束设计,也可以提高相位累加器的工作速度。总之,通过上述方法可以设计出累加速度符合本次设计的相位累加器。
RAM查询表设计
在设计中为节省R_AM的空间,尽量节省芯片资源,通常累加器的寄存器输出只有其高K位被用于频率合成,其余的较低的(N-K)位则都被丢弃不用。这就是所谓的相位截断。
图3-3相位码到幅度码的转换
这样就完成了整个波形的拼接,实现用RAM只存储1/4周期的波形而输出可以是整个周期。减少了RAM的地址线位数2位。整个的转换流程如图3-3所示。
RAM为一可编程存储器,每字长M位。相位累加器每输出一个相位数据值后,就对RAM寻址,然后输出一个相对应的正弦函数值。这表明RAM的作用就是把相位累加器提供的相位数据变换成合成正弦信号波形的数字幅度抽样。相位累加器依次产生的每一个相位值,RAM都要给符号求补器提供在该抽样时刻所要合成正弦波形幅度的数据,符号求补器根据控制位处理这些数据,以便产生对称的正弦波形。另要说明的是,每一个相位抽样对应的幅度编码的全部位都必须在同一时刻加到D/A转换器上,否则D/A转换器将会在两个抽样之间产生大的暂态,从而影响合成信号的频谱纯度。每位数据的同步由寄存器来完成。输出寄存器存储由符号求补器提供的数据,并把全部M+1位数据在下一个参考时钟脉冲输入时同时传送到D/A转换器上。符号求补器的数据定时传送给输出寄存器,以便保证在加到D/A转器之前,每一个值在参考时钟脉冲之间都保持定值。这样,D/A转换器的输出波形就是一个阶梯型的近似正弦波,最后经低通滤波器滤除高次谐波后输出合成的正弦波形。
滤波器电路设计
滤波器电路的作用就是要最大可能地抑制信号中的无用频谱,而保留有效成分。
下面首先介绍几种主要的滤波器的参数指标:
1.插入损耗
2.变换器损耗
3.相位特性
插入损耗是衡量滤波器效能的一个基本的参数,它是指未接滤波器时负载所吸收的功率几。与接入滤波器后负载所吸收的功率几的比值。一个良好的滤波器的插入损耗在通带内应该比较低,而在止带内应该比较高。理想的滤波器的插入损耗在通带内应该等于零,而在止带内应该是无穷大。
插入损耗是普通滤波器常用的参数。滤波电路具有的阻抗变换特性不难使负载在整个通带内与电源达成匹配。这时,负荷所吸收的功率将超过,而使插入损耗取得负值。根据电阻比值不同,插入损耗的这个负值也不一样。
当不同频率的信号通过滤波器时,除了得到不同的衰减外,还将得到不同的
相移,这就是滤波器的相位特性,它可以用滤波器电压转移函数的相角与频率的关系来表征。
电子设备中所传输的信号,一般都会包含许多的频率分量,也就是常说的带宽。若要不失真地传输这些信号,就必须使信号中各频率分量的幅度能保持原有比例传输,同时还必须使每个频率分量的传输速度相同。这就需要足够宽的带宽和良好的相位特性。
本设计中,滤波器的设计采用从插入损耗入手的方法,它是近年来应用比较广泛的设计方法。这种方法的具体设计过程是:根据所提出的技术要求,决定插入损耗与频率。的函数关系,然后根据这个函数关系,应用网络理论综合出具体的电路结构。这种方法的优点是设计准确,ifu }_设计是已经考虑到外接负载的影响,无需经过多次试探的手续。它的缺点是需要用到比较难深的网络理论。但是,这个缺点是可以弥补的,因为只要把满足各种要求的原型滤波器设计出来以后,后来的设计手续变成了简单的查表读图和应用数学方法换算数据。
整个设计流程如下图
滤波器设计流程
下面按照滤波器的设计流程详细介绍具体的设计过程。
一、设计要求
设计一滤波器时,最首要的是确定滤波器的具体设计要求
由于系统输出信号频率范围为0. 1HZ-20MHZ,因此采用的滤波器基本形式是低通滤波器,系统采样时钟频率为100MHZ,最高信号频率为20MHZ,这决定了滤波器的截止频率在20MHZ —30MHZ之间。截止频率高于20MHZ的低通滤波器,用有源的方式实现起来难度会比较大,而无源滤波器的带宽则要高得多,可达到100MHZ以上。系统输出波形种类中包含了单一频谱的连续正弦波和频谱较复杂的三角波等,因此必须根据信号的频谱特点选择相对应的滤波器完成滤波功能。通过计算和综合比较,这里采用截止特性比较陡峭的9阶椭圆滤波器来对连续正弦波进行滤波,而三角波形则是用截止特性比较平缓、群延迟特性好的7阶线性相位滤波器。
方波产生电路设计
DDS电路不能直接合成高频方波,当函数发生器需要产生方波时,DDS电路产生与所需方波同频率的正弦波形,然后其输出的正弦波经整形电路后产生方波。方波整形是由比较器完成的。最简单的电压比较器由一个运算放大器组成。
图3-11电压比较器电路图
图中,+Ec、-EE是电源,Ui是正弦波的输入电平值,Em,是比较电平,U。是输出方波电平。当比较器正常工作时,Em要小于输入正弦波的电压幅值。其具体工作原理如下:当Ui < Em时,Uo=-Ee;当Ui > Em时,Uo=+Ec。输出波形是与输入正弦波同频率的方波。另外,当需要调节方波占空比时,通过调节Em的大小可以达到要求。
差分迟滞比较器
考虑到比较电路的转换速度和抗干扰能力,这里比较电路采取差分迟滞比较形式来实现。
所谓差分比较,就是比较器的两路输入是一对差分信号,改变差分信号中一路信号的偏移电平即可改变占空比。差分形式主要是可以提高比较器的抗干扰能力,另外还扩宽了占空比的可调节范围。
差分比较示意图
迟滞比较器是一个具有正反馈回路的电路。正反馈使比较电路具有迟滞特性,同时也加速了比较器的转换过程。按照迟滞回路的方向可将迟滞比较器分为上行迟滞比较器和下行迟滞比较器。
上行迟滞比较器
如图所示,迟滞比较器具有两个门限电平,其差叫做门限宽度。当干扰电压在门限宽度以内时,比较器的输出状态不会翻转。这大大提高了比较器的抗干扰能力,但也使方波的可调占空比范围缩小了,而前述的差分形式的比较器可以相应的解决这个矛盾。
比较电路设计
整个比较电路主要由集成比较芯片、隔离电路、求和电路、反馈回路以及衰减电路五部分组成。
由于反馈电路的引入,比较器的输入端信号会有严重的畸变,因此在比较器和滤波器之间增加两个配置成固定状态的二极管,以将比较电路和主通道的信号隔离开来。
将正弦信号、反馈信号和占空比控制信号叠加到一起组成求和电路。它也是由电阻网络构成的。
方波信号和滤波器的输出信号都要进入相同的幅度控制通路处理,故它们的电压幅度应大致相同。比较器的输出电平要大十滤波器的输出,所以在比较器之后还要接一个分压电路作幅度匹配,也就是衰减电路。
比较器实际结构图
此外,为了尽量利用比较器的高速性能,在设计PCB印制板时需要采用高速电路板布线技术。
测频电路设计
测频电路部分采用等精度测频法的原理来实现,它不仅具有较高的测量精度,而且在整个测频区域都能保持恒定的测量精度,所以在性能上要优十传统的频率计。
图3-15测频原理图
等精度测频法的实现方法可用图3-15来说明。图中,预置门控信号是一个宽度为T的一个脉冲,CNTl和CNT2是两个可控计数器。标准频率信号从CNTl的时钟输入端CLK输入,其频率为fl,经整形后的被测信号从CNT2的时钟输入端CLK输入,其实际频率为f2。当预置门控信号为高时,经整形后的被测信号的上升沿通过D触发器的Q端同时启动计数器CNTl和CNT2。CNTl和CNT2分别对被测信号和I标准信号同时计数。当预置门信号为低电平时,随后}fu至的被测信号的上升沿将使两个计数器同时关闭。设在一次预置门时间Tp内对被测信号的计数值为Nx,对标准信号的计数值为Ns,则下式成立:
测频/测周期时,先由单片机给出控制信号,令TF=0, CHOISE=1,选择测频/测周,再由单片机将CLR端置高电平完成测试电路的初始化。接下来单片机将门控信号START置为高电平,由被测信号的上升沿将两个计数器同时打开,对被测频率和标准频率同时进行计数。定时结束后,单片机把CONTRL的START端置为低电平,在被测信号的下一个脉冲的上沿到来时,COUNT工停止计数,同时关断COUNT2对Fs的计数。计数结束后由EEND端输出的低电平来指示计数的结束,单片机即可通过ADRA, ADRB分别读回标准频率和被测频率的计数值。
当START为高电平时,紧接着FIN的下一个高电平使Q端置高,将标准频率由CLK2送入CONUT2进行计数,被测频率由CLKl送入COUNTl进行计数,同时将EEND置为高电平,作为结束状态标志。当START为低电平时,紧接着的FIN的下一个脉冲上升沿将两个计数器通道切断,并将EEND置为低电平,通知单片机计数已经结束。
脉宽测量电路图。在测量开始前先向电路的CLR端送一个正脉冲以便进行电路的工作状态初始化。然后将GATE的CNL端置为高电平,表示开始脉冲宽度的测量。在被测脉冲的上升沿到来时,CONTRL2的PUL端输出高电平,标准频率进入到COUNT2。在被测频率下降沿到来时,CONTRL2的PUL端输出低电平,计数器COUNT2被关断。最后由单片机读出计数结果,并通过测量原理中的计算公式得出脉冲宽度。CONTRL2子模块的主要特点是:电路的设计保证了只有CONTRL2被初始化过后才能工作,否则PUL输出始终为零。只有在先检测到上升沿后PUL才为高电平,然后在检测到下降沿时,PUL输出为低电平;ENDD输出高电平以便通知单片机计数己经结束;如果先检测到下降沿,PUL并无变化;在检测到上沿并紧接一个下沿后,CONTRL2不再发生变化直到下一个初始化信号到来。
图3-17脉宽测量电路
等精度测频电路既可以对本系统中的输出波形进行频率测量,实现输出波形频率的直观数字显示,并把测量结果反馈给微处理系统进行校正,还可以对外部输入信号进行频率测量,增强了函数发生器的功能。
DDS是整个系统的核心,它主要产生了正弦、三角两种波形。测频电路的设计使得函数发生器具有自校正功能,进一步改善了函数发生器的性能。把这两个部分联合起来就构成了整个函数发生器的数字电路部分。此外,DDS电路输出的正弦波经过滤波器电路滤除高次谐波,再经过方波产生电路形成方波。
单片机系统的控制软件设计
系统中控制软件占有很重要的地位。它不仅要产生波形数据,控制波形的发生,还要保持和上位机的通讯以及显示、键盘的控制,因此系统软件的好坏直接决定着系统的功能和稳定。
软件的总体结构
在本系统中,由于要求产生三种不同的函数波形,而且还要求可以程控,所以系统软件的设计占用了较多的时间和精力。
整个程序分成显示主菜单子程序、等待按键子程序、按键处理子程序、波形产生菜单子程序、频率测量子程序等五大部分组成,其中按键处理子程序又划分成几个分模块来实现。
显示主菜单主要完成显示波形产生界面和频率测量界面,分别实现函数发生器的函数输出和测量的显示。
软件总体流程图
软件的分模块设计
在初始化完成后,系统将显示液晶的初始页面,表示系统工作正常,等待用户的操作命令。由主程序框图可以看出,在用户按下任意键后,系统将显示出主菜单,主菜单主要包括“波形产生”和“频率测量”两个菜单,用户可以通过方向键来改变光标的位置,通过确认键来表示是否进入相应的下一级菜单。
“波形产生”菜单的第一行为波形选择,可以通过上下键改变,变为方波、三角波等。其后的数字显示为方波的占空比值,可通过上下键来改变它的值。第二行为频率数值的输入,其单位为“Hz"。第二行为电压幅值的输入,其单位为V
整个菜单的菜单级数示意图如图
系统菜单树
按键处理流程图
确定键处理流程图
数字键处理流程图
整个系统采用了模块化的程序设计,把较大的程序分解成较小的子程序模块,再对各个程序模块分别设计、编程和调试,最后再把各个调试好的程序模块联成一个完整的程序。利用模块化的程序设计使整个单片机的软件结构清晰,调试方便。
电路调试
在硬件设计中方案的论证及电路的设计是实现系统设计的基础,但为了设计出稳定可靠的系统,后期的电路调试过程尤为重要,而会占用大量的时间和精力。电路调试是电路设计过程中必不可少的一环。设计完全正确的电路,未必能正常地工作,因为我们不能确保电路中的每一个器件在安装的过程中都不出问题,更不能确保器件的参数都是一致的。调试的目的就是排除电路在生产过程中出现的故障。调试的难度在于要能够从故障现象发现故障根源,而有时候某些故障是交织在一起的,这就需要调试人员具有丰富的经验,对电路要有感性的认识。本系统中电路的调试主要包含以下内容:
(1)相位累加器电路的调试
(2)单片机系统的调试
(3) FLASH MEMORY电路的调试
(4)复位电路的调试
(5) DAC电路的调试
(6)滤波器电路的调试
(7)比较器电路调试
由于累加器电路在系统中的重要性,电路调试以累加器电路的调试最为重要,只有累加器正常工作时,函数发生器才能产生正确的波形。
累加器电路的调试
累加器电路采用FPGA设计,因此它的调试分为仿真调试和在线调试。
仿真调试
对可编程器件进行的仿真,又可分为功能仿真(前仿真)与时序仿真(后仿真)。根据电路设计编制仿真文件,在文件被综合前进行仿真(即前仿真),进行电路功能的验证;在保证电路已实现设计的功能后,进行综合并对综合的结果进行时序仿真(后仿真),以验证电路的时序是否满足要求。当电路的前仿真与后仿真都满足要求,则电路的设计是成功的;但在实际应用中是否满足要求,还要通过在线调试来验证。
在线调试
在成功的完成仿真调试后,进行在线调试。在线调试首先要对FPGA进行加载,只有确保加载的正确,才能确保实现设计功能。加载时专用加载脚上的理论波形如图5-2所示,实际的加载波形与之相比,
加载时专用引脚的信号
复位电路的调试
复位的主要功能是使整个电路处十一个确定的状态,以免引起错误的操作。在本函数发生器中,有两种复位,一种是上电复位,第二种是通过键盘输入外部命令进行复位。外部命令的复位通过单片机执行相应的复位指令完成。
微处理器系统的调试
微处理器系统的正常运行,是下面的调试工作能够顺利进行的保证。执行C52的调试程序,使用示波器观察PORTl的最高位引脚上的波形信号,出现的是一个方波波形,说明微处理器系统工作正常。
5.4 FLASH MEMORY电路的调试
FLASH MEMORY用来存储固定的波形数据。它能否正确的被写入和读出是能否产生正确的波形的关键。在保证累加器电路以及微处理器系统正确的前提下才开始FLASH MEMORY电路的调试。
需要连续的向FLASH MEMORY写入六个字节的指令才能完成页面或者是整个芯片的擦除操作。向FLASH MEMORY的某个页面写入一个全0的数据,然后将数据读入RAM查找表中,启动DDS,使用逻辑分析仪测试RAM的输出数据,然后再向FLASH MEMORY写入一个全1的数据,将数据读入RAM查找表,启动DDS,使用逻辑分析仪测试RAM的输出数据。经过测试,数据符合要求,分别为全0和全1,因此调试FLASH MEMORY电路成功。
DAC电路的调试
DAC电路将RAM查找表输出的离散的数字信号变换为连续的模拟信号。所采用的DAC芯片为10位AD9751,它是一个双输入端口的超高速10位CMOS DAC数模转换器。它内含一个高性能的10位D/A内核、一个基准电压以及一个数字接口电路。
图5-3 DAC电路的输出信号转换
因为电流无法直接测量,所以,在AD9751的输出端和地之间接一个502的电阻,将输出的电流转换为电压进行测量。
首先向RAM写入全1的数据,启动DDS,用示波器观察OUTA、OUTB引脚的电压, OUTA =1V, OUTB =0. 1V;再向RAM写入全0的数据,启动DDS,观察OUTA、OUTB引脚的电压, OUTA=0.1V,OUTB =1V,说明DAC电路的设计是成功的。
滤波器调试
对滤波器电路的调试主要从截至频率的方面来进行。
控制函数发生器输出正弦波信号,f=20MHz, VPP=1V。用示波器观察函数发生器输出信号的幅度。
比较器调试
比较器的调试主要从两方面进行。首先看比较器是否正常工作。控制函数发生器输出占空比为50%方波信号,f=1KHz, VPP=1V。用示波器观察比较器的输出脚是否有方波信号输出。
其次看方波占空比范围是否可以按要求调节。控制函数发生器输出占空比分别为20%, 80%的方波信号,f=1KHz, VPP=1V。用示波器观察其占空比是否可调。