




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生毕业设计(论文)基于DDS技术的波形发生器软件设计SoftwareDesignofWaveformGeneratorBasedonDDSTechnology总计:毕业设计(论文)27页表格:1个插图:13幅学院(系):电子与电气工程系专业:电子信息工程基于DDS技术的波形发生器软件设计[摘要]本设计设计的是基于DDS技术的波形发生器,本设计将直接频率合成技术,单片机控制技术有机地结合在一起,实现了一款基于DDS的低成本波形发生器。文中主要讨论基于DDS芯片AD9850的波形发生器软件设计。本设计首先介绍了DDS的基本原理;其次分模块介绍了系统软件的主要功能,并用C语言进行编程,DDS波形发生器主要分成以下几个模块:键盘模块、DDS模块、看门狗模块、LCD显示模块;最后进行了系统性能调试与仿真。[关键词]波形发生器;直接数字频率合成技术;89C51;看门狗 SoftwareDesignofWaveformgeneratorBasedonDDStechnologyAbstract:Thispaperisbasedonthedesignofaspurioustechnologywaveformgenerator,BycombiningdiretctdigitalfrequencysyntheiseandcontroltechnologyalowcostwaveforrngeneratorbasedonDDShasbeenrelized.PapermainlyintrouducedbasedonDDSAD9850chipofthewaveformgeneratorsoftwaredesign.Firstly,thetheiseanalyzesthebasicprincipleofDDS.Besides,inthedesignofsystemsoftware,theirmainfunctionswereintroducedaccordingtounits,Clanguageprogrammed,theDDSwaveforrngeneratorwouldbeclassifideintofourunits:keyboardunit,DDSunit,kanmendogunit,LCDunit;moreoverthesystemfunctionshadbeentested.Keywords:Waveformgenerator;DDS;89C51;watch
目录1引言 11.1绪论 11.2波形发生器的功能及发展现状 21.2.1波形发生器的功能 21.2.2波形发生器的发展现状 21.3基于DDS技术的波形发生器 31.3.1频率合成技术及性能指标 31.3.2DDS原理分析 61.3.3DDS技术特点 72波形发生器整体设计 73系统软件设计 83.1键盘模块软件设计 93.2DDS控制模块软件设计 113.2.1AD9850 113.2.2AD9850的控制字与控制时序 123.2.3AD9850软件设计 133.3看门狗模块软件设计 143.3.1X5045 143.3.2看门狗电路的软件设计 143.4LCD显示模块设计 154系统调试与仿真 17结束语 19参考文献 20附录 21致谢 271引言1.1绪论在电子技术领域,常常需要波形、频率、幅度都可调节的电信号,用于产生这种电信号的电子仪器称作信号发生器。信号发生器是一种常用的信号源,广泛应用于电子电路、自动控制和科学实验等领域。作为一种为电子测量和计量提供电信号的设备,它和万用表、示波器、频率计等仪器一样,是最普通、最基本,也是应用最广泛的电子仪器之一,几乎所有电参量的测量都需要用到信号发生器。从本质上看,测量是一个将客观物理量转换成测试信息量的变换过程。当测试对象为系统性能参数时,通常采用如下测量方法:在测试系统中,系统参数的测量基于输入激励和输出响应的对应关系,这种方法被称作“激励一响应”法[1],如图1所示。图1参数测量系统模型框图采用“激励一响应”方法进行系统参数测量时,需要产生已知的激励信号输入到被测系统,系统对激励信号输出相应的响应信号,通过对该响应的测定和分析找出被测系统的输入一输出关系,从而定义系统的性能。由此我们可以看出,高质量激励信号的产生是系统参数测量中一个重要的环节,标准理想的输入激励是整个测试系统正确工作的基础,它从根本上影响测量系统的性能。自从上世纪40年代惠普为美国海军实验室开发出第一台信号发生器开始,信号发生器一直随着电子技术、半导体技术和计算机技术的发展而发展,几乎成为这些技术发展的一个缩影。从技术上看,信号发生器经历了由模拟信号发生器、数字信号发生器到虚拟信号发生器的发展过程。发展到今天,信号发生器的种类已经多种多样,包括正弦信号发生器、脉冲发生器、函数发生器、扫描发生器、任意波形发生器等。按照应用范围又可分为专用信号发生器和通用信号发生器。传统的信号发生器一般基于模拟技术。它首先产生一定频率的正弦信号,然后再对这个正弦信号进行处理,从而输出其他波形信号(例如通过比较器可以输出方波信号,对方波信号通过积分器可以生成三角波信号等)。这种技术的关键在于如何产生特定频率的正弦信号。早期的信号发生器大都采用谐振法,后来出现采用锁相频率合成技术的信号发生器。但基于模拟技术的传统信号发生器能够产生的信号类型非常有限,一般只能生成正弦波、方波、三角波等少数的规则波形信号。如果需要产生较复杂的波形信号,电路的复杂度及设计难度都将大大增加。随着科学实验和研究需求的不断发展,传统的信号发生器在一些特定的场合已经不能满足要求,因为在许多应用及研究领域,不但需要一些规则的信号,同时还需要一些不规则信号用于系统特性的研究,如某些电子设备的性能指标测试、系统中各种瞬变波形和电子设备中出现的各种干扰的模拟研究,就需要能提供一些非常规测试信号甚至是任意信号的信号源,即能产生现场所需波形的任意波形发生器(AWG)。任意波形发生器是现代电子测试领域应用最为广泛的通用仪器之一,它的功能远比函数发生器强,可以产生各种理想及非理想的波形信号,对存在的各种波形都可以模拟,广泛应用于测试、通信、雷达、导航、宇航等领域。1.2波形发生器的功能及发展现状1.2.1波形发生器的功能任意波形发生器既具有其他信号源的信号生成能力,又可以通过各种编辑手段产生任意的波形采样数据,方便地合成其他信号源所不能生成的任意波形,从而满足测试和实验的要求。任意波形发生器的主要功能[2]包括:(1)函数发生功能基础实验中,为了验证电路功能、稳定性和可靠性,需要给它施加理想波形,任意波形发生器能替代函数发生器提供正弦波、方波、三角波、锯齿波等波形,还具有各种调制和扫频能力。利用任意波形发生器的这一基础功能就能满足一般实验的信号需求。(2)任意波形生成运行在实际电子环境中的设备,由于各种干扰的存在以及环境的变化,实际电路中往往存在各种信号缺陷和瞬变信号,例如过脉冲、尖峰、阻尼瞬变、频率突变等。任意波形发生器可以模拟这些特殊信号,以测试系统的实际性能。(3)信号还原功能在一些军事、航空等领域,有些电路运行环境很难估计,在设计完成之后,在现实环境中还需要更进一步的实验验证,而有些实验的成本很高或者风险性很大(如飞机试飞时发动机的运行情况),人们不可能重复作实验来判断所设计产品的可行性和稳定性。此时,可以利用任意波形发生器的信号还原功能。在做一些高耗费、高风险实验时,可以通过数字示波器把现实中的实际波形记录下来,再通过计算机接口下载到任意波形发生器,通过任意波形发生器还原实验中的实际波形并加到设计电路中,做进一步的实验验证工作。1.2.2波形发生器的发展现状目前市场上的波形发生器主要采用直接数字合成(DDS)技术,这种波形发生器不仅可以产生可变频的载频信号、各种调制信号,同时还能和计算机配合产生用户自定义的有限带宽的任意信号,可以为多领域的测试提供宽带宽、高分辨率的测试信号。波形发生器发展到今天,从产品结构形式来划分,主要包含三种:(1)独立仪器结构形式独立仪器结构形式是把任意波形发生器设计成单台仪器的形式,其优点是精度高,可独立工作。(2)PC总线式PC(PersonalComputer)总线式是将任意波形发生器板卡直接插在PC机的总线扩展槽或通过外部接口连接到PC总线上,利用PC机来控制任意波形发生器的工作状态,其优点是可以充分利用PC机的软硬件资源,在波形数据处理、波形参数修改方面,计算机有明显的优势。(3)VXI模块式VXI模块是一种新型的模块化仪器,它必须插在VXI总线机箱上才能使用,VXI总线机箱通过GPIB或者RS232C等接口与计算机相连,VXI模块仪器对组成自动测试系统特别有用,各个公司的VXI卡式仪器模块可以自由组合使用。1.3基于DDS技术的波形发生器1.3.1频率合成技术及性能指标所谓频率合成技术是指以一个或者多个高精确度和高稳定度的频率参考信号源为基准,在某一频段内,综合产生多个工作频率点的技术。频率合成技术是产生频率源的一种现代化手段,在通信、雷达、导航、广播电视、电子侦察、电子干扰与反干扰及现代仪器仪表中有着广泛的应用。依据频率合成原理制成的频率源称为频率合成器。对频率合成器的基本要求是既要合成所需频率,又要保证信号的纯净。综合来看,衡量频率合成器的主要性能指标[3]有:(1)输出频率范围输出频率范围是指频率合成器输出最低频率和最高频率之间的变化范围。最高频率和最低频率之差越大,频率合成器的输出频率范围越宽,有时候也用相对带宽来衡量其输出频率范围。(2)频率稳定度频率稳定度是指在规定的时间间隔内,频率合成器的实际输出频率与频率标定值偏差的数值,可分为长期、短期和瞬时稳定度。(3)频率分辨率频率合成器的输出频谱通常是不连续的。频率分辨率指两个输出频率之间的最小间隔。(4)频率切换时间频率切换时间指频率合成器输出频率由一个频率点切换到另一个频率点并达到稳定工作所需的时间。该指标与频率合成所采用的技术紧密关联。(5)频谱纯度频率合成技术中常常提到的一个指标就是频谱纯度,频谱纯度以杂散分量和相位噪声来衡量。杂散又称寄生信号,分为谐波分量和非谐波分量,主要由频率合成过程中的非线性失真产生,也有频率合成器内外干扰的影响,还与频率合成方式有关;相位噪声是瞬间频率稳定度的频域表示,在频谱上表现为主谱两边连续噪声边带。频谱纯度是衡量频率合成器质量的一个重要指标。(6)调制性能调制性能是指频率合成器的输出是否具有调幅、调频、调相、幅移键控、频移键控、相移键控、扫频、猝发等功能。频率合成理论形成于20世纪30年代,经过几十年的发展,经历了三代技术变革。第一代:直接频率合成技术。直接频率合成是一种早期的频率合成技术,它利用一个或者多个不同的晶体振荡器作为基准频率源,经过倍频、分频、混频及模拟开关等途径直接组合出多个离散频率的输出信号。在这种频率合成技术中,由控制信号选择不同输入信号进行混频,在频率合成器的输出端可以得到任意一个输入频率的频率值,或者任意两个或两个以上频率的和频或差频。这种方法得到的信号长期和短期稳定度高,频率切换速度快,但是大量混频器和滤波器的使用使大规模集成不可能实现,因而体积大、功耗大、调试难度大,并且杂散抑制不易做好,目前仍有些雷达信号的产生采用此方法。第二代:锁相频率合成技术。锁相频率合成也称间接频率合成,是20世纪50年代出现的频率合成技术。它是利用一个或者几个参考频率源,通过谐波发生器混频或分频,产生大量的谐波或组合频率,然后用锁相环把压控振荡器(VCO)的输出频率锁定在某一谐波或者组合频率上,由VCO间接产生所需频率的输出信号。锁相环频率合成器实际上是一个反馈系数可变的误差反馈控制系统。这种频率合成方法的优点是频率稳定度高、杂散抑制好、频谱纯度高、电路简单可靠、调试简便。锁相频率合成的这些优点使其具有广泛的用途其中一个重要的应用方向是用高稳定的参考频率振荡器作为参考时钟并使用环路锁定,以提供一系列高纯度、高稳定度的频率源。但是频率转换时间与参考频率成反比。提高频率分辨率要以增加频率切换时间为代价。目前解决这一问题的办法是采用小数分频合成方法。但总的来看,锁相频率合成引入了闭环系统,其频率切换速度比直接合成技术慢。在频率转换速度要求不高,但对相位噪声、杂散指标要求高的场合,锁相频率合成技术仍有着特殊的优势。第三代:直接数字频率合成(DDS)[4]技术。DDS技术的出现是频率合成技术的一次重大变革,它突破了前两代频率合成技术的原理,从“相位”的概念出发进行频率合成。DDS的原始结构如图2所示。图2DDS原始结构图图2所示是DDS的最初结构,这是一种基于数字存储器的波形产生系统,又被称作数字波形存储直读法或者直接数字波形合成(DDWS)。这种结构利用可程控的时钟信号作为地址计数器的计数时钟,地址计数器的输出作为波形存储器的扫描地址,波形存储器输出相应地址的数字幅度序列,再经过数模转换成模拟阶梯波形,最后通过低通滤波器平滑滤波得到输出波形假定地址计数器的时钟频率为fc,波形存储器内存有波形一周期内的n个采样值,那么合成波形的频率如(1)式所示:(1)采用图2结构进行频率合成,输出信号的的频率必须通过改变参考时钟频率或者波形存储中的数据点个数来实现。通过进一步的研究,人们提出了一种更为灵活的DDS结构。图3所示是基于相位累加器的DDS改进模型。图3DDS改进结构为了区分它跟DDWS的不同,将这种结构称为直接数字频率合成(DDFS)。这种结构用相位累加器取代了原来的地址计数器,使得输出信号的频率控制变得更加简便,只需要通过修改频率控制字就能实现。随着对DDS技术研究和工程应用的不断深入,DDFS已经逐渐成为DDS的主流结构,故习惯于用DDS来特指DDFS。DDS具有频率分辨率高、初始相位可控及频率切换时间快等突出优点,但其同时存在比较严重的杂散。通过对DDS杂散形成机理及特点的深入研究,提出了一系列改进措施,大大提高了其输出信号的杂散指标。DDS另外一大优势在于它能方便地产生任意波形,在具体应用中,只需要修改波形存储器内的波形数据即可。在综合考虑DDS技术的这些优势后,本设计决定采用DDS来实现任意波形发生器,同时引入杂散抑制技术来降低DDS的杂散指标。1.3.2DDS原理分析DDS与大多数的数字信号处理技术一样,它的基础仍然是奈奎斯特采样定理。奈奎斯特采样定理是任何模拟信号进行数字化处理的基础,它描述的是一个带限的模拟信号经抽样变成离散序列后可不可以由这些离散序列恢复出原始模拟信号的问题。奈奎斯特采样定理告诉我们,当抽样频率大于或者等于模拟信号最高频率的两倍时,可以由抽样得到的离散序列无失真地恢复出原始模拟信号。只不过在DDS技术中,这个过程被颠倒过来了。DDS不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。DDS电路一般由参考时钟、相位累加器、波形存储器、D/A转换器(DAC)和低通滤波器(LPF)组成[5]。其结构如图3所示。DDS的输出频率公式如式(2)所示:(2)其中,为参考时钟频率,K为频率控制字,N为相位累加器位数。由式(2)可知,当K=1时,DDS系统输出信号的频率最小,而这个最小频率同时也是DDS系统的分辨率,即分辨率公式如式(3)所示:(3)DDS系统中的参考时钟通常由一个高稳定度的晶体振荡器来产生,用来作为整个系统各个组成部分的同步时钟。频率控制字(FrequencyControlWord,FCW)实际上是二进制编码的相位增量值,它作为相位累加器的输入。相位累加器由加法器和寄存器级联而成,它将寄存器的输出反馈到加法器的输入端实现累加的功能。在每一个时钟脉冲fc,相位累加器把频率字K累加一次,累加器的输出相应增加一个步长的相位增量,由此可以看出,相位累加器的输出数据实质上是以K为步长的线性递增序列(在相位累加器产生溢出以前),它反映了合成信号的相位信息。相位累加器的输出与波形存储器的地址线相连,相当于对波形存储器进行查表,这样就可以把存储在波形存储器中的信号抽样值(二进制编码值)查出。在系统时钟脉冲的作用下,相位累加器不停的累加,即不停的查表。波形存储器的输出数据送到D/A转换器,D/A转换器将数字量形式的波形幅度值转换成一定频率的模拟信号,从而将波形重新合成出来。若波形存储器中存放的是正弦波幅度量化数据,那么D/A转换器的输出是近似正弦波的阶梯波,还需要后级的低通平滑滤波器进一步抑制不必要的杂波就可以得到频谱比较纯净的正弦波信号。由于受到字长的限制,相位累加器累加到一定值后,就会产生一次累加溢出,这样波形存储器的地址就会循环一次,输出波形循环一周。相位累加器的溢出频率即为合成信号的频率。可见,频率控制字K越大,相位累加器产生溢出的速度越快,输出频率也就越高。故改变频率字(即相位增量),就可以改变相位累加器的溢出时间,在参考频率不变的条件下就可以改变输出信号的频率。1.3.3DDS技术特点DDS系统的优点有很多,它的很多特性是其他频率合成技术所没有的,其中最主要的特性有以下三点:(1)DDS技术可以用于产生任意波形基于前面对DDS系统的基本结构分析,很容易理解,只要改变存储在波形存储器中的波形数据,就可以改变输出波形。所以对于任何周期性波形,只要满足采样定理,都可以利用DDS技术来实现。(2)DDS系统具有很高的频率分辨率DDS系统输出频率的分辨率和频点数随相位累加器的位数成指数增长,由DDS系统的频率分辨率可知,在系统时钟频率不变的情况下,只要增大相位累加器的位数N,就可以得到几乎是任意小的频率分辨率,可以满足精细频率控制的要求。DDS如此精细的频率分辨率,使其输出频率已十分逼近连续变化。(3)输出频率切换速度快且相位保持连续与锁相频率合成相比,由于DDS系统是一个开环系统,所以当一个新的频率控制字送到时,它会迅速合成这个新的频率,实际的频率切换时间可以达nS级。同时,频率切换时,DDS系统的输出波形的相位是连续的。由于DDS采用数字化技术,最终合成信号是经过D/A转换得到的,所以不可避免的存在着以下缺点:(1)DDS在工程中的最高输出频率一般只能达到系统时钟频率的40%,要想获得较高的频率,就必须提高系统时钟频率,也就是说DDS的相位累加器、波形存储器和D/A转换器都将工作在较高的时钟频率下,它的实现依赖于高速数字电路和高速D/A转换器。这也是DDS系统在早期没有受到重视,而直到最近几年才迅速发展的原因。(2)DDS系统采用数字合成技术,先离散信号再变换成模拟信号输出,这其中导致了各种误差,尤其是相位截断误差,因此各种杂波是不可避免的。2波形发生器整体设计本设计是用AT89C51[6]单片机控制,利用DDS芯片AD9850实现多种波形。其硬件部分包括键盘模块、DDS电路、看门狗电路、LCD显示电路,其整体系统框图如图4所示。其工作原理:单片机采用C51编程,首先要完成初始化工作,比如时钟初始化,端口设置,看门狗设置,开机初始化等工作;然后通过单片机来控制AD9850产生波形,并通过判断键盘的键值来决定产生哪种波形,该波形通过LCD显示出来。其中,单片机用来实现对整个系统的控制。这里选用性价比高、低功耗、高性能的CMOS8位单片机AT89C51,它有4KB的可编程闪存以及可擦写只读存储器。所要信号的频率、相位的数据通过与单片机相连接的键盘(4×4)输入,并通过点阵LCD显示屏显示系统各种参数。DDS芯片选用ADI公司生产的DDS芯片AD9850,单片机AT89C51与AD9850芯片的接口可采用并行接口方式,也可采用串行接口方式,这里考虑到单片机本身的硬件资源及接口时序,采用的是8位并行接口方式和单片机的系统总线相连,使系统的接口电路达到最简化,也简化了程序的设计方法,单片机只需以访问外部存储器的方式来访问DDS芯片即可实现两者的通信。图4整体系统框图3系统软件设计应用系统中,系统软件的设计是建立在具体硬件电路基础之上,根据系统功能要求可靠地实现系统的各种功能。系统软件设计采用模块化设计的方法,它是把一个功能完整的较大的程序分解为若干个功能相对独立的较小的程序模块,对各个程序模块分别进行设计、编程和调试,最后把各个调试好的程序模块合并成一个大的程序。模块化程序设计的优点:单个功能明确,设计和调试比较方便、容易,一个模块可以为多个程序所共享。模块化编程的具体体现是把各个功能相对独立的模块作为子函数,主程序是一个不断循环检测结构。当系统上电自检、初始化后,进入信号输出的循环,并自动查询面板按键的状态,以检测用户可能输入的指令,确定程序将要执行的功能。本章主要分模块介绍其软件设计,其软件部分包括键盘模块程序设计、DDS模块程序设计、看门狗模块程序设计和LCD显示模块程序设计。单片机采用C51编程,首先要完成初始化工作,比如时钟初始化,端口设置,看门狗设置,开机初始化等工作,然后等待中断,进入键盘扫描和各种按键的处理程序,判断键盘是否有键按下,若有键按下,则传送给AD9850,并通过LCD显示器显示出波形;若键盘无键按下,则重新扫描。LCD显示出来的是正弦波,进行微分即可得出方波,进行积分即可得出三角波。软件部分的总体流程图如图5所示。其中按键判断采用LCD(液晶显示器)显示菜单操作,通过键盘完成幅度和频率的步进调整。程序见附录。图5系统程序流程图3.1键盘模块软件设计本系统的键盘采用4×4按键设计,这种键盘与独立式按键键盘相比,要节省很多的I/O口线。键盘工作原理[7]:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。平时无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由此与此行线相连的列线电平决定。列线电平如果为低,则行线电平为低;列线电平如果为高,则行线电平也为高。由于键盘扫描的速度很快,而人按键时总会持续一定的时间,因此只要单片机处在等待输入的状态,这个键盘扫描程序基本上不会错过任何一个按键信号。由于按键时会有抖动,抖动信号会造成键盘扫描时会出现一些错误的信号,因此需要一个消除抖动的程序。在第一次检测到有键按下时,执行一段延时10ms的子程序后再确认该键电平是否仍保持闭合状态电平,若保持闭合状态电平则确认为真正有键按下,从而消除抖动的影响。键盘扫描程序的流程图如图6所示。图6键盘扫描程序流程图上电初始化后开始执行键盘扫描程序,判断是否有按键按下,若没有就返回到键盘扫描;若有则向下执行。以延时来消除抖动后,继续判断有无键闭合,若无就返回到键盘扫描;若有则向下执行,并确定按键位置,确定按键位置后,判断闭合键是否释放,若无释放则返回继续判断;若有释放则送入按键A。程序见附录。键盘扫描子程序中完成如下功能[8]:(1)判断键盘上有无键按下。其方法为PC口低4位输出全0,读P3口状态,若P3.0~P3.7为全1,则说明键盘无键按下;若不全为1,则说明键盘有键按下。(2)消除按键抖动的影响。其方法为,在判断有键按下后,用软件延时的方法延时10ms,再判断键盘状态,如果仍为有键按下状态,则认为有一个确定的键按下,否则当作按键抖动处理。(3)求按键位置。根据扫描法,进行逐行置0扫描,最后确定按键位置。(4)键闭合一次仅进行一次按键的处理。方法是等待按键释放之后,再进行按键功能的处理操作。3.2DDS控制模块软件设计DDS控制字传送方式是信号发生器的关键部分,DDS以AD9850[9]芯片为核心,DDS初始化时,单片机首先检测是否有其它波形键按下,如有则根据输入按键改变波形;如果有数字键按下,并且按下确认键,则将按键值转换为频率控制字,送入DDS,输出相应的频率和波形。3.2.1AD9850AD9850采用CMOS工艺,其功耗在3.3V供电时仅为155mW,扩展工业级温度范围为-40℃~80℃,采用28脚SSOP表面封装形式。AD9850可编程DDS系统的核心是相位累加器,它由一个加法器和一个N位相位寄存器组成,N一般为24~32。每来一个外部参考时钟,相位寄存器便以步长递加。相位寄存器的输出与相位控制字相加后可输入到正弦查询表地址上。正弦查询表包含一个正弦波周期的数字幅度信息,每一个地址对应正弦波中0°~360°范围的一个相位点。查询表把输入地址的相位信息映射成正弦波幅度信号,然后驱动D/A转换器以输出模式量。其组成框图如图7所示。专用DDS芯片AD9850内含可编程DDS系统和高速比较器,能实现全数字编程控制的频率合成。通过其内部可编程DDS系统可产生高频率分辨率的(在125MHz时钟下,其输出频率分辨率达0.0291Hz)正弦波,但考虑到高速参考时钟可能产生相位误差,采用了30MHz的晶振便可满足优于0.001的频率稳定度。为了输出较纯的正弦波信号,通过滤波电路对信号进行处理。图7AD9850组成框图3.2.2AD9850的控制字与控制时序AD9850的控制字有40位,其中32位是频率控制位,5位是相位控制位,1位是电源休眠控制位,2位是工作方式选择控制位。在应用中,工作方式选择位设为00,因为01,10,11已经预留作为工厂测试用。相位控制位按增量180°,90°,45°,22.5°,11.25°或这些组合来调整。频率控制位如(4)式所示:(4)其中:为输出的频率值;为参考时钟频率;K为相应的十进制频率控制字,然后转换为十六进制即可。AD9850有并行和串行两种控制命令字写入方式[10]。其中在并行输入方式中,通过8位总线D0…..D7将数据输入到寄存器,在重复5次之后再在FQ_UD上升沿把40位数据从输入寄存器装入到频率/相位数据寄存器(更新DDS输出频率和相位),同时把地址指针复位到第一个输入寄存器。接着在W_CLK的上升沿装入8位数据,并把指针指向下一个输入寄存器,连续5个W_CLK上升沿后,W_CLK边沿就不再起作用,直到复位信号或FQ_UD上升沿把地址指针复位到第一个寄存器。在串行写入方式,是采用D7作为数据输入端,每次W_CLK的上升沿把一个数据串行移人到输入寄存器,40位数据都移入后,FQ_UD上升沿完成输出信号频率和相位的更新。并行控制字的写入时序如图8所示。AD9850的复位(RESET)信号为高电平有效,且脉冲宽度不小于5个参考时钟周期。AD9850的参考时钟频率一般远高于单片机的时钟频率,因此AD9850的复位(RESET)端可与单片机的复位端直接相连。用于选择工作方式的两个控制位,无论并行还是串行最好都写成00,并行时的10、01和串行时的10、01、11都是测试用的保留控制字,在一般使用时不能随便进行设置,否则可能会导致不可预知的后果。图8并行写入时序图3.2.3AD9850软件设计进入DDS子程序后,首先根据式(3)单片机将预置频率转化为32位频率控制字K。系统工作时,通过8位数据总线D0~D7在W_CLK上升沿把40位控制字Kx(x=0,1,2,3,4)送入AD9850的数据输入寄存器,重复5次之后在FQ_UD的上升沿将这40位数据从输入寄存器装入到频率\相位数据寄存器,更新AD9850输出的频率和相位。子程序流程图如图9所示。程序见附录。图9AD9850子程序流程图3.3看门狗模块软件设计随着AT89C51系列单片机的发展,其芯片价格在不断下降,但同时也带来了单片机芯片的抗干扰问题,当干扰信号进入系统时,常导致程序的跑飞,而程序跑飞的根本原因是由于程序计数器PC错位引起的。在程序存储器中,指令码与存放指令码的地址是一一对应的,PC的内容是要执行的指令码地址,若修改了PC的内容,打破单片机的取指操作,导致程序的非正常运行,甚至出现致命的故障。因此为了克服这一问题,在系统中采用看门狗电路监视程序的运行[11]。若程序跑飞,则看门狗电路产生复位信号,使单片机重新返回程序正常运行状态。为此,本设计选用X5045芯片[12]大大简化了硬件设计,提高了系统的可靠性,减少了对印制电路板的空间要求,降低了成本和系统功耗,是一种理想的单片机外围芯片。3.3.1X5045X5045是一种集上电复位、看门狗、电压监控和串行EEPROM四种功能于一身的可编程控制电路,它有助于简化应用系统的设计,减少电路板的占用面积,提高可靠性。(1)上电复位X5045加电时会激活其内部的上电复位电路,从而使RESET引脚有效。该信号可避免系统微处理器在电压不足或振荡器未稳定的情况下工作。当VCC超过器件的Vtrip限值时,电路将在200ms(典型)延时后释放RESET以允许系统开始工作。(2)低电压检测工作时,X5045对VCC电平进行监测,若电源电压跌落至预置的最小Vtrip以下时,系统即确认RESET,从而避免微处理器在电源失效或断开的情况下工作。当RESET被确认后,该RESET信号将一直保持有效,直到电压跌到低于1V而当VCC返回并超过Vtrip达200ms时,系统重新开始工作。3.3.2看门狗电路的软件设计看门狗电路的软件设计设计的是硬件看门狗的喂狗子程序,使主程序中在需要的地方调用,若程序出问题,不能及时喂狗,则看门狗会产生复位信号给单片机。X5045芯片内包含有一个看门狗定时器,看门狗定时器的预置时间是通过X5045的状态寄存器的相应位来设定的。X5045状态寄存器共有6位有含义,其中WD1、WD0和看门狗电路有关,其余位和EEPR0M的工作设置有关。微处理器可以通过指令来改变WD1和WD0这两个位,从而改变看门狗定时时间的长短。WD1=0,WD0=0,预置时间为1.4S。WD1=0,WD0=1,预置时间为0.6S。WD1=l,WD0=0,预置时间为0.2S。WD1=l,WD0=1,禁止看门狗工作。看门狗定时器监测/CS引脚的输入来判断微处理器是否工作正常。在设定的定时时间以内,微处理器必须在/CS引脚上产生一个由高到低的电平的变化,以清内部定时器,即“喂狗”,否则X5045将产生一个复位信号。喂狗的流程图如图10所示。图10看门狗子程序流程图当由于某种原因系统出现程序跑飞或死循环时,CPU就执行不到喂狗程序,因得不到喂狗信号,看门狗电路就会判断系统运行出现故障,并发出复位信号。看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正常工作时最大循环周期的时间略长即可。编程时,可在软件的合适地方加一条喂狗指令,使看门狗的定时时间永远达不到预置时间,系统就不会复位而正常工作。当系统跑飞,用软件陷阱等别的方法无法捕捉回程序时,则看门狗定时时间很快增长到预置时间,迫使系统复位。程序见附录。3.4LCD显示模块设计本设计的液晶屏采用ZY12864D[13]。如图11是ZY12864D的结构框图。IC1为行驱动器,IC2、IC3为列驱动器,外部的CPU通过13根线对模块进行控制。ZY12864D有D0—D78位双向数据线;RS位寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器;R\W位读写信号线,高电平进行读操作,低电平进行写操作;E端为使能端,当E端由高电平跳变成低电平时,液晶执行命令;CSA和CSB为选屏信号,CSA高电平选中左半屏,CSB高电平选中右半屏。CSA是通过CSB接的反相器得到的,所以CSA和CSB不能同时为高电平。模块及背光电源均由外部提供+5V电源。通过调节外接的电位器的阻值,用户可以控制LCD模块显示图形的清晰度。图11LCDZY12864D的结构框图12864D液晶模块内部的控制器共有7条控制指令[14],如表1所示。它的读写操作、屏幕和光标的操作都是通过指令编程实现。表112864液晶模块内部的控制命令指令1:显示开关控制,D高电平开显示,低电平关显示。指令2:设置显示起始行。指令3:设置X地址(页地址)。指令4:设置Y地址(列地址)。指令5:读状态。BF:忙标志,高电平表示忙,此时模块不能接受命令或数据,低电平表示空闲;RST:复位标志位,高电平表示正处于复位初始化状态,低电平表示正常状态;ON\OFF:显示标志位,高电平表示显示关闭,低电平表示显示开。指令6:写显示数据。写指令执行后Y地址计数器自动加1。指令7:读显示数据。写指令执行后Y地址计数器自动加1。LCD显示模块程序流程图如12所示。程序见附录。图12LCD显示程序模块流程图4系统调试与仿真在系统调试完成以后,根据设计指标对系统的性能进行了测试。本设计主要对正弦波进行了仿真。在Proteus中画好仿真电路图后,即完成硬件部分工件[17]。然后,进入KeilμVision2开发集成环境[18],创建一个新项目(Project),并为该项目选定合适的单片机CPU器件,编写好程序后,编译并生成以HEX为扩展名的文件。在Proteus的编辑状态,点击单片机芯片,在出现的单片机属性设置窗口中,选择ProgramFile栏目,选择编译软件对程序编译后产生的“.HEX”结尾的目标文件,就可以将目标文件写入Proteus中的单片机芯片中,点击运行即可实现单片机仿真,软件和硬件的结合,就是一个完整的单片机应用系统,能够运行单片机仿真,观察实践效果。单击仿真运行开始按钮,能清楚地观察到虚拟终端的变化。在仿真运行开始后,若虚拟终端没有显示,可单击Proteus的调试(debug)菜单,然后单击virtualterminal-VT1。观察仿真波形。仿真波形如图13所示。图13模拟仿真波形图本设计中对所设计的电路进行了仿真,由于所用软件Proteus中没有AD9850元件,所以只能对设计进行模拟仿真,所获得的波形是模拟真实的波形,但不是实际电路所产生的波形。由于时间有限只对正弦波进行了模拟仿真。结束语本设计以51单片机和DDS芯片AD9850为核心设计了基于DDS的波形发生器。经过近期不断的学习以及与伙伴的精心合作,并在老师的指导下,已经基本完成了设计任务,主要完成了以下工作:(1)深入学习了DDS的基本结构、工作原理。DDS电路是一个开环电路,其电路结构简单,具有很高的频率分辨率,输出频率切换速度快并且相位保持连续。一般由参考时钟、相位累加器、波形存储器、D/A转换器(DAC)和低通滤波器(LPF)组成。(2)掌握了基于DDS技术的波形发生器的硬件设计。了解了AD9850芯片的基本组成、芯片性能及管脚功能。掌握了AD9850的控制字与控制时序。单片机和AD9850采用并行接口方式完成了设计。(3)进一步掌握了4×4键盘的工作原理和扫描方法,设计了键盘扫描程序的流程图,通过两次判断是否有键按下来确定按键位置,并编写了键盘扫描程序。利用键盘来控制波形的频率和幅度,完成了键盘模块软件设计。(4)本设计采用DDS芯片AD9850,设计了总系统软件流程图。单片机通过检测是否有数字键按下,如果有则根据输入按键改变波形,并且按下确认键,则将预置频率转化为频率控制字,并把频率控制字送入AD9850的数据输入寄存器,完成了DDS模块软件设计。(5)本设计采用了X5045芯片,并设计出了看门狗子程序流程图,解决了单片机工作时,系统程序跑飞问题。(6)在以上设计基础上,完成了基于DDS技术的波形发生器的整体设计,并在Keil软件中进行了编译,并验证了其正确性。(7)将软硬件相结合,完成了电路的仿真与调试,在Proteus中仿真出了模拟波形。在本次的设计过程中,学习和参阅国内外相关的文献,并从网络上获取最新的软件开发指南和芯片开发手册,同时不断向身边的老师请教和学习,通过系统的学习和实际工作的锻炼,积累了必要的基础知识,培养了实际的开发技能。通过本次设计,基本掌握了DDS技术,单片机系统的设计,芯片AD9850和X5045的基本原理及工作过程,掌握了行列式键盘的工作原理,以及LCD显示的原理及显示方式,进一步加深了对单片机技术的理解,提高了自己的硬件设计能力。由于时间和经验的限制,本文设计的波形发生器还是存有不足之处。本设计仿真结果只能输出模拟波形,显示屏上不能显示其频率,频率和幅度只能通过键盘来控制。但是,它采用DDS技术来实现波形发生器的设计思想是完全可行的,所采用的核心技术与国外产品相同,如果能在此基础上经过进一步完善,可以成为一个很好的产品。参考文献[1]张永瑞,刘振起.电子测量技术基础.西安:西安电子科技大学出版社.2004.[2]张学峰,胡长江.功能各异的各种波形发生器.国外电子测量技术.2000.4.17-18.[3]毛敏.基于DDS的高精度方波信号发生器的研究.西安电子科技大学工程硕士论文.[4]JosephTierney,CharlesM.Rader,Bernard.Gold.ADigitalFrequencySynthesizer.IEEETranscationsOnAudioandElectroacoustics.Vol.Au-19,No.1.March1971.[5]DonaldC.Larson.HighSpeedDigitalSynthesisTechniquesandApplication.IEEE.1998.209-212[6]钱逸秋.单片机原理与应用.北京:电子工业出版社.2002.[7]李朝青.单片机原理及接口技术(第3版).北京:北京航空航天大学出版社.2005.[8]王福瑞.单片微机测控系统设计大全.北京:北京航空航天大学出版社.1999.7.[9]李柯.一种高性能的DDS芯片AD9850.DDS技术与应用研讨会论文集.1997.12.[10]石雄.125MHZ时钟DDS频率合成器AD9850的原理与应用.力源电子工程.2000.114.[11]王福瑞.单片微机测控系统设计大全[M],北京航空航天大学出版社.1998.4.[12]何立明.单片机应用系统抗干扰技术[M].北京:北京航空航天大学出版社.2000.[13]王忠诚.电子电路元器件入门教程.北京:电子工业出版社.2006.5.[14]王锁萍.电子设计自动化教程.电子科技大学出版社.2000.[15]何立民.单片机应用文集.北京航空航天大学出版社.1994.6.[16]肖洪兵等.跟我学单片机.北京:机械工业出版社.1997.9.[17]李平编.电子设计自动化快速入门教程.高等教育出版社.2005.[18]刘义涛.protelDXP设计及应用教程.北京:清华大学出版社.2000.6.[19]王忠诚.电子电路用元器件入门教程.北京:电子工业出版社.2006.5.附录(1)AD9850初始化程序//头文件#include"c8051f040.h"#include"intrins.h"//宏定义#define AD9850_BUS P5//子函数的声明voidsysclk_init(void);voidport_init(void);voidAD9850_Write(longfreq);voidAD9850_Send(longfreq);voiddelayms(unsignedinttime);// voiddelayus(unsignedinttime);//全局变量的定义sbitAD9850_WCLK=P6^0;sbitAD9850_FQUD=P6^1;sbitAD9850_RST=P6^2;/************主函数*********/voidmain(void){ WDTCN=0xDE; WDTCN=0xAD; sysclk_init(); port_init(); AD9850_Send(100); while(1) { }}/**********子函数的定义*************///系统时钟定义函数//内部时钟//系统时钟为24.5MHZvoidsysclk_init(void){ SFRPAGE=CONFIG_PAGE; CLKSEL=0x00; OSCXCN=0x00; OSCICN=0x83;}//IO初始化函数//P5->漏极开路输出//p6->推挽输出voidport_init(void){ SFRPAGE=CONFIG_PAGE; XBR2=0x40; P5MDOUT=0x00; P6MDOUT=0x0f;}//延时NmS子函数/*voiddelayus(unsignedinttime){ while(time--) { _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); }} voiddelayms(unsignedinttime){ unsignedintj; for(;time>0;time--) for(j=3060;j>0;j--);}//向AD9850发送数据函数//WCLK->P6^0;//FQ_UD->P6^1;//longfreq :为要设置的频率voidAD9850_Write(longfreq){ longdat; unsignedcharw0,w1,w2,w3,w4,i; unsignedcharctrl_word[5]; SFRPAGE=CONFIG_PAGE; AD9850_FQUD=0; dat=(long)(freq*34.36); w0=0x40; //相位偏移90度 w4=dat&0x000000ff; w3=(dat>>8)&0x000000ff;w2=(dat>>16)&0x000000ff; w1=(dat>>24)&0x000000ff; ctrl_word[0]=w0; ctrl_word[1]=w1; ctrl_word[2]=w2; ctrl_word[3]=w3; ctrl_word[4]=w4; AD9850_WCLK=0; AD9850_FQUD=0; //SubsequentW_CLKrisingedgesloadthe8-bitdataonwords[7:0]//andmovethepointertothenextregister. AD9850_RST=0; for(i=0;i<5;i++) { AD9850_WCLK=0; AD9850_WCLK=0; AD9850_WCLK=0;// AD9850_BUS=ctrl_word[i]; AD9850_BUS=ctrl_word[i]; AD9850_BUS=ctrl_word[i];// delayus(5); AD9850_WCLK=1; AD9850_WCLK=1; AD9850_WCLK=1;// delayus(5); } //TherisingedgeofFQ_UDloadsthe(upto)40-bitcontroldata-wordintothedevice //andresetstheaddresspointertothefirstregister. AD9850_RST=1; AD9850_FQUD=1; delayms(1); AD9850_FQUD=0;}(2)看门狗程序在C语言中要增加一个声明语句。在AT89C51.h声明文件中增加一行sfrWDTRST=0xA6;Main(){
WDTRST=0x1E;
WDTRST=0xE1;
//初始化看门狗。
While(1)
{
WDTRST=0x1E;
WDTRST=0xE1;
//喂狗指令
}}(3)LCD初始化程序#
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《婴幼儿行为观察与记录》 项目六任务二思考与练习答案
- 基本公共卫生服务项目政策解析
- 代理销售合同
- 房屋抵债协议书参考
- 不要孩子双方同意离婚合同
- 2025年公司迁移是否合法地导致员工合同终止
- 2025综合装修合同范本
- 项目合作协议范本
- 讲师合作合同协议
- 2025租房合同附件格式
- 2024年化粪池清理合同协议书范本
- 企业业务账号管理办法
- YY 0793.2-2023血液透析和相关治疗用液体的制备和质量管理第2部分:血液透析和相关治疗用水
- 手术患者转运交接及注意事项
- 思维障碍的诊断与治疗方法
- 产房人文关怀护理课件
- 卫生知识培训资料
- 《统计学-基于Python》 课件 第6章 参数估计(Python-1)
- 读书分享读书交流会《人生》课件
- 《童年》读书分享PPT
- 神经外科类医用耗材省际联盟
评论
0/150
提交评论