《{推荐}数控高精度低频正弦信号发生器》由会员分享,可在线阅读,更多相关《{推荐}数控高精度低频正弦信号发生器(29页珍藏版)》请在金锄头文库上搜索。
1、数控高精度低频正弦信号发生器高精度数控低频正弦信号发生器任务书一、 任务设计一款基于AT89C51单片机和锁相技术的高精度数控低频正弦信号发生器。二、设计要求1、 基本要求采用DDFS(直接数字频率合成)和锁相技术,实现1Hz1KHz变化的正弦信号。通过面板键盘控制输出频率,频率最小步进1Hz。输出双极性。用LED数码管实时显示波形的相关参数。写出详细的设计报告,给出全部电路和源程序。2、 发挥部分不改变硬件设计,将上限频率扩展到10KHz。不改变硬件设计,扩展实现三角波和方波信号。可通过PC机上的“虚拟键盘”,实现频率等参数的控制。实现对幅度的控制。高精度数控低频正弦信号发生器函数信号发生器
2、作为一种常用的信号源,广泛应用于电子电路、自动控制和科学研究等领域7。它是一种为电子测量和计量工作提供符合严格技术要求的电信号设备,因此是电子测试系统的重要部件,是决定电子测试系统性能的关键设备。它与示波器、电压表、频率计等仪器一样是最普通、最基本的,也是得到最广泛应用的电子仪器之一。1 总体方案论证与设计数字式函数信号发生器的实现方案很多,主要有如下几种:方案一:采用微处理器和数模转换器直接合成的数字式函数信号发生器。这种信号发生器具有价格低,在低频范围内可靠性好,体积小,功耗低,使用方便等特点,它输出的频率是由微处理器向数模转换输出数据的频率和信号在一个周期内的采样点数(N)来决定的,因此
3、受单片机的时钟频率的限制很大,如果单片机的晶振取12MHz,则单片机的工作频率为1MHz,若在一个周期内输出360个数据,则输出信号的频率理论上最高只能达到2777Hz。实际上单片机完成一次数据访问并输出到D/A电路,至少要5个机器周期,因此实际输出信号的频率只有500Hz左右。即使增大晶振频率,减小一个周期内输出数据个数,在稍高的频率下输出的波形频率误差也是很大的,而且计算烦琐,软件编程麻烦,控制不方便。方案二:利用单片机与精密函数发生器构成的程控信号发生器。这种信号发生器能够克服常规信号发生器的缺陷,保证在某个信号的频带内正弦波的失真度小于0.5。它的输出信号频率调整和幅值调整都由单片机完
4、成。但是,由于数模转换器的非线性误差和函数发生器本身的非线性误差,这种信号发生器输出信号的频率与理论值会有一定的偏差。方案三:利用DSP处理器,根据幅值,频率参数,计算产生高精度的信号所需数据表,经数模转换后输出,形成需要的信号波形。这种信号发生器可实现程控调幅,调频。但这种信号发生器输出频率不能连续可调,计算烦琐,控制也不便。方案四:基于单片机,锁相环,可编程分频、相位累加、存储器波形存储以及D/A转换器等组成的数字式函数信号发生器。输出的频率的大小由锁相环和可编程计数器来控制,最终由地址发生器对存储器中的波形数据硬件扫描,单片机提供要输出的波形数据给存储器。这种方案电路简洁,不受单片机的时
5、钟频率的限制,输出信号精度高,频率“连续”,稳定性好,可靠性高,功耗低,调频,调幅都很方便,而且可简化软件设计,实现模块化设计的要求。综合考虑,方案四各项性能和指标都优于其他几种方案,能使输出频率有较好的稳定性,充分体现了模块化设计的要求,而且这些芯片及器件均为通用器件,在市场上较常见,价格也低廉,样品制作成功的可能性比较大,所以本设计采用方案四。其系统组成原理框图如图1所示。图1系统组成原理结构图图1中主要有2大块,即波形发生部分(上半部)和键盘/显示部分。波形发生部分是本设计的核心,主要由可编程基准信号、锁相倍频电路、相位累加地址发生、EPROM存储器、数/模转换和滤波驱动等组成,如图2所
6、示。图2系统波形发生模块键盘输入和显示部分在控制仪器中起着人机交互的作用,这两部分的设计是仪器和操作者进行联系并得到实际应用的关键之一,并关系到用户使用的满意度。键盘/显示模块设计的常用方法有:采用8279可编程接口芯片来实现系统的键盘/显示器扩展功能,该芯片40引脚,体积较大,成本不低,编程也不方便。由单片机AT89C2051控制共阳数码管、按键构成动态显示模块。该方案最多只能扩展16个按键,且数码管需8只三极管驱动。LCD液晶显示加键盘等,该方案成本不低,接口复杂。考虑到成本及电路的复杂度,本设计采用一款新颖的HD7279专用键盘/显示芯片。HD7279芯片价格低廉,内部含有译码器,并具有
7、多种控制指令,如消隐、闪烁、左移、右移、段寻址等。在设计时,外围电路简单,只需一个电阻和一个电容即可解决键盘/显示电路的外围设计,且有成熟的现成程序可借鉴。2频率控制机理及其硬件设计我们把锁相+直接数字频率合成称为PDDFS技术,频率控制是本设计的关键。频率控制模块的主要硬件支持是锁相环CD4046和可编程分频器INTEL8254,锁相环CD4046是本系统工作的关键所在,可编程分频器INTEL8254和其相互配合,为相位累加器CD4518提供时钟脉冲,从而最终实现对输出波形函数信号频率的改变。2.1锁相环介绍锁相环PLL(PhaseLockLoop)是一个能完成两个电信号相位同步的自动控制闭
8、环系统。它是比较输入信号和压控振荡器输出信号之间的相位差,比较结果产生的误差输出电压正比于输入信号和压控振荡器输出信号两个信号的相位差,原理如图3所示。图3锁相环原理框图在环路开始工作时,通常输入信号的频率与压控振荡器末加控制电压时的振荡频率是不同的,由于两信号之间存在固有的频率差,它们之间的相位差势必不断地变化,在这种误差电压控制之下,压控振荡器的频率也就在相应的范围之内变化。若压控振荡器的频率能够变化到与输入信号相等,便有可能在这个频率上稳定下来(当然只有在一定的条件下才可能这样)。达到稳定之后,输入信号和压控振荡器输出信号之间的频差为零,相位差不再随时间变化,误差控制电压为一固定值,这时
9、环路就进入“锁定”状态。当锁相环入锁时,它还具有“捕捉”信号的能力,VCO可在某一范围内自动跟踪输入信号的变化,如果输入信号频率在锁相环的捕捉范围内发生变化,锁相环能捕捉到输人信号频率,并强迫VCO锁定在这个频率上。本系统选用的是CD4046锁相环,其特点是电源电压范围宽(为3V18V),输入阻抗高(约100M),动态功耗小,在中心频率f0为10kHz下功耗仅为600W,属微功耗器件。它采用16脚双列直插式,各引脚功能如下: 1脚相位输出端,环路人锁时为高电平,环路失锁时为低电平。 2脚相位比较器的输出端。 3脚比较信号输入端。 4脚压控振荡器输出端。 5脚禁止端,高电平时禁止,低电平时允许压
10、控振荡器工作。 6、7脚外接振荡电容。 8、16脚电源的负端和正端。 9脚压控振荡器的控制端。 10脚解调输出端,用于FM解调。 11、12脚外接振荡电阻。 13脚相位比较器的输出端。 14脚信号输入端。 15脚内部独立的齐纳稳压管负极。图4是CD4046功能图,主要由相位比较、压控振荡器(VCO)、线性放大器、源跟随器、整形电路等部分构成。图4CD4046锁相环的功能图时,锁相环的振荡频率可表示为:(1)当,VCOin=Vcc/2时,锁相环的振荡频率(中心频率)可表示为:(2)当锁相环锁定时,压控振荡器能在某一范围内自动跟踪输入信号的变化,这个范围称作锁定范围。通常锁定范围大于捕捉范围,锁相
11、环能搜寻和捕捉的输入信号的频带定义为捕捉范围。对于CD4046内部有两个比较器,用相位比较器的情况下它的捕捉范围和锁定范围的关系为:(3)其中RC组成一个低通滤波器,即图4中的R3,R4,C2部分。对RC时间常数的选择有一定的要求,既要避免环路自激,又要保证对输入频率的变化有合理快的响应速度,一般R用两个电阻,分别取R3=,R4=100(这个电阻也可以不要接),C=C2=1,因此捕捉范围,就会比较低,并且对相位比较器,它要求Ui、Uo的占空比均为50(即方波),这样才能使锁定范围为最大。对于频率输入的变化不大的场合,用相位比较器时其捕捉范围和锁定范围一样,与低通滤波器的RC无关.而且最大锁定范
12、围与输入信号波形的占空比无关,并且压控振荡器的输出脉冲占空比为50%,与输入信号的占空比没有关系。图5为系统进入锁相状态时各引脚的典型波形。其输出频率最大最小分别为:(4)(5)在VDD=5V条件下,为了使输出频率最大,可取R1=10K,C1=50PF,R2=,此时。图5锁定时各引脚波形图2.2可编程分频器及其频率控制的原理(1)可编程分频器本系统的分频器是由INTEL8254可编程计数器完成的,INTEL8254可编程计数器内部有三个相互独立的16位的计数器,其计数速率可达到8MHz(INTEL8253的计数速率只有2MHz)。一个具有三态双向的8位数据总线缓冲器为8254芯片提供与系统总线
13、相接口的能力,它在读/写逻辑的控制下接收来自系统总线的命令和数据,并将8254的状态字送上系统总线。控制寄存器接收来自数据总线缓冲器中关于命令的数据,并暂存这些数据。命令的数据经内译码后产生整个器件的控制信号,并设置每个计数器的工作方式。每一个计数器是完全独立的,并有各自独立的工作方式。8254的内部功能通过系统软件的编程来确定。系统通过接口传送所要求的工作方式和数值来初始化计数器。每一个计数器都是独立地通过一个命令数据来编程。每个计数器有6种工作模式,本系统计数器0、计数器1均采用工作方式3,即方波发生器。当进入工作方式3,GATE为高电平并装入计数值n后,若n为偶数,则OUTi端输出的周期
14、为nCLKi周期,占空比为1:1的方波序列;若n为奇数,则OUTi端输出的周期为nCLKi周期,占空比为的近似方波序列。(2)INTEL8254初始输入基准时钟INTEL8254的初始输入时钟信号,直接取自单片机AT89S52的ALE引脚信号,其频率为单片机晶振频率的六分之一,本系统的单片机用6MHz的晶振,所以输入到INTEL8254的基准时钟频率为1MHz。(3)频率控制原理输出信号的频率控制主要通过对地址发生器扫描频率的改变来实现,其控制模块主要由计数器INTEL8254、锁相环CD4046组成。其频率控制原理如图2所示。设计时,图2中的分频器M由INTEL8254第0个计数器与第1个计
15、数器级联组成,因此可将计数器看作32位计数器。初始时钟信号从第0个计数器输入,通过8254计数器0、计数器1进行M分频后,其输出信号作为CD4046的信号输入AIN;图2中的分频器N由INTEL8254第2个计数器完成,而CD4046的压控振荡器的输出端,接入INTEL8254第2个计数器的时钟输入端,经过分频后接到锁相环比较器输入端BIN。当相位锁定时,CD4046的压控振荡器的输出频率也即相位累加器的输入频率等于计数器1的输出频率与计数器2的分频值的乘积,即(6)INTEL8254计数器2的分频值,受AT89S52单片机控制。相位累加地址发生器CD4518对2764扫描速度随的值改变而改变,从而可以控制最终输出波形的频率值。假定相位累加地址发生器相位字长为,如图2所示。则输出波形的频率可表示为:(7)由上式可知,要改变输出频率,则可通过改变分频值、和相位累加字长。为了在软件设计宜实现,设计时将计数器0、1都进行100分频,即M取10000。因系统采用的晶振为6MHz,所以为1MHz,则经过计数器0、1分频后的输出频率为100HZ,式(6)、(7)可分别表示为:(7)(9)根据式(7),取值为100时,最终输出频率为:(10)分频值可取265536之间的任意自然数,因此输出频率最小频率步进1HZ。但从式(10)可知,输出频率最小只能到达2Hz