基于Proteus的波形发生器仿真设计.docx
《基于Proteus的波形发生器仿真设计.docx》由会员分享,可在线阅读,更多相关《基于Proteus的波形发生器仿真设计.docx(28页珍藏版)》请在冰豆网上搜索。
基于Proteus的波形发生器仿真设计
基于Proteus的波形发生器仿真设计
基于Proteus的波形发生器仿真设计
作者姓名:
孙亚飞专业班级:
2006060101指导教师:
吴建平
摘要
本文实现了多功能波形发生器的设计。
系统采用AT89C51单片机控制,DAC0832完成模数转换,键盘控制波形的频率、幅度。
发生器产生三角波、方波、正弦波等波形,波形的频率可通过键盘控制,波形清晰、频率调整十分方便、稳定性好,产生合成波形只需修改源程序,不需改装电路。
单片机的输出数字信号通过DAC0832转换成模拟信号,接入示波器就可以清晰的显示出系统产生的波形。
该系统由仿真软件产生波形,具有线路简单、结构紧凑、价格低廉、性能优越等特点。
关键词:
波形发生器,AT89S52单片机,D/A转换
BasedonthesimulationdesignProteuswaveformgenerator
ABSTRACT:
Inthispaper,implementingthedesignofmulti-waveformgenerator.ThesystemmakeuseofAT89S52microcontroller,andDAC0832completeconversion,keyboardcontrolwaveformfrequencyandamplitude.Systemproducetrianglewave,squarewave,sinewaveandotherwave,wavefrequencycanbecontrolledthroughthekeyboard,aclearwaveform,adjustconveniently.Thesystemstabilityandproducemorecomplexwaveformssimplythroughmodifythesource,withoutconversioncircuit.Theoutputofthemicrocontroller‘sdigitalsignalconverttoanalogsignalsthroughtheDAC0832,accessingtotheoscilloscopecandisplayaclearwaveformwhatthesystemproduce.Thesystemissimple,compact,lowcost,
superiorperformanceandsoon.
Keywords:
WaveformGenerator MCUADC
第1章前言
1.1波形发生器的概述
信号源有很多种,包括正弦波信号源、函数发生器、脉冲发生器、扫描发生器、任意波形发生器、合成信号源等。
一般来讲任意波形发生器是一种特殊的信号源,综合具有其它信号源生成能力,因而适合各种仿真实验的需要。
在基础实验中设计一种电路,需要验证其性能、可靠性与稳定性,就需要给它施加理想的波形以辨别真伪。
如可使用信号源的DC补偿功能对固态电路控制DC偏压电平,可对一个怀疑有故障的数字电路,利用信号源的方波输出作为数字电路的时钟,同时使用方波加DC补偿产生有效的逻辑电平模式输出,观察该电路的运行状况,而证实故障缺陷的地方,总之,利用任意波形发生器这方面的基础功能能仿真基础实验室所必须的信号[1]。
在实际的电子环境所设计的电路在运行中,由于各种干扰和响应的存在,实际电路往往存在各种信号缺陷和瞬变信号,例如过脉冲、尖峰、阻尼瞬变等(见图1-1,图1-2),这些情况的发生,如在设计之初没有考虑进去,有的将会产生灾难性的后果。
例如图1-1中a处过剑峰脉冲,如果给一个抗过冲能力差的电路,将可能会导致整个设备“烧坏”。
图1-1尖峰干扰脉冲图1-2阻尼瞬变
由于任意波形发生器特殊的功能,为了增强任意波形生成能力,它往往依赖计算机通讯输出波形数据。
在计算机传输中,通过波形编辑软件生成波形,有利于扩充仪器的能力,更进一步仿真模拟实验。
同时由于编辑一个任意波形有时需要花费很长的时间和精力,并且每次编辑的波形可能有所差异,一般会在任意波形发生器内配置一定数量的非易失性存储器。
可以把所需要的波形从计算机接口下载到任意波形发生器的存储器中。
综上所述,不论是在生产还是在科研与教学上,任意波形发生器是电子工程师信号仿真实验的最佳工具。
随着我国经济和科技的发展,对相应的测试仪器和测试手段也提出了更高的要求,而任意波形发生器己成为测试仪器中至关主要的一类,因此开发任意波形发生器具有重大意义。
1.2国内外波形发生器的发展状况
运用DDS技术是设计任意波形信号发生器的一种通用手段,DDS不仅可以产生正弦波同时也可以产生任意波,这是其他频率合成方式所没有,任意波在各个领域有着广泛的应用。
通过DDS这种方法产生任意波是一种简单、低成本的方法,通过增加波形点数可以使输出达到很高的精度,这都是其他方法所无法比拟的。
自80年代以来各国都在研制DDS产品,并广泛的应用于各个领域。
其中以AD公司的产品比较有代表性。
如AD7008、AD9850、AD985l、AD9852、AD9858等。
其系统时钟频率从30MHz到300MHz不等,其中的AD9858系统时钟更是达到了lGHz。
这些芯片还具有调制功能。
如AD7008可以产生正交调制信号,而AD9852也可以产生FSK、PSK、线性调频以及幅度调制的信号。
这些芯片集成度高,内部都集成了D/A转换器,精度最高可达12bit。
同时都采用了一些优化设计来提高性能。
如这些芯片中大多采用了流水技术,通过流水技术的使用,提高了相位累加器的工作频率,从而使得DDS芯片的输出频率可以进一步提高。
通过运用流水技术在保证相位累加器工作频率的前提下,相位累加器的字长可以设计得更长,如AD9852的相位累加器达到了48位。
而不是之前型号的32位,这样输出信号的频率分辨率大大提高了。
同时为了抑止杂散,这些芯片大多采用了随机抖动法提高无杂散动态范围(这是由于DDS的周期性,输出杂散频谱往往表现为离散谱线,随机抖动技术使离散谱线均匀化,从而提高输出频谱的无杂散动态范围)。
运用DDS技术生产的DDS任意波型信号发生器是较新的一类信号源,并且已经广泛投入使用。
它不仅能产生传统函数信号发生器能产生的正弦波、方波、三角波、锯齿波,还可以产生任意编辑的波形。
由于DDS的自身特点,还可以很容易的产生一些数字调制信号,如FSK、PSK等。
一些高端的信号发生器甚至可以产生通讯信号。
同时输出波形的频率分辨率、频率精度等指标也有很大的提高。
如HP公司的HP33120可以产生l0mHz~15MHz的正弦波和方波。
同时还可以产生l0mHz~5MHz的任意波形。
还具备调制功能,可以产生AM、FM、FSK、猝发、扫频等信号。
HP公司的HP33250可以产生1uHz~80MHz的正弦波和方波,产生1uHz到25MHz的任意波形。
BKPRECISION公司的4070A型函数级任意波形发生器产生的正弦波和方波输出频率DC-21.5MHz,频率分辨率10mHZ。
同时还具有AM、FM、PM、SSB、BPSK、FSK、猝发、DTMFGeneration和DTMFDetection的功能。
并且具有了和PC机良好的接口,可以通过WINDOWS界面的程序进行任意波形的编辑[2]。
除了在仪器中的应用外,DDS在通信系统和雷达系统中也有很重要的用途。
通过DDS可以比较容易的产生一些通信中常用的调制信号如:
频移键控(FSK)、二进制相移键控(BPSK)和正交相移键控(QPSK)等。
DDS可以产生两路相位严格正交的信号,在正交调制和解调中的到广泛应用,是一种很好的本振源。
为了进一步提高DDS的输出频率,产生了很多DDS与其他技术结合的频率合成方法。
如当输出信号是高频窄带信号的时候可以用混频滤波的方法扩展DDS的输出,也可以利用DDS的频谱特性来产生高频信号,如利用较高的镜像频率输出。
DDS和PLL相结合的方法也是一种有效的方法。
这种方法兼顾了两者的优点,既有较高的频率分辨率,又有较高的频谱纯度。
DDS和PLL相结合一般有两种实现方法:
DDS激励PLL的锁相倍频方式和PLL内插DDS方式。
在雷达中通过DDS和PLL相结合可以产生毫米波线性调频信号,DDS移相精度高、频率捷变快和发射波形可捷变等优点在雷达系统中也可以得到很好的发挥[4]。
可见,基于DDS技术的任意波形发生器的是能实现高稳定度、高精度、高分辨率的要求,频率切换速度快,体积小、价格便宜的特点,是一种很有发展前途的信号源。
所以本设计采用此方案。
近些年来,随着可编程逻辑器件(FPGA、CPLD等)的广泛应用,功能的不断强大,以及快速算法的不断出现。
任意波形发生器也向自动化、数字化、高精度化方向发展。
早期的DDS系统使用分离的数字器件搭接,随着整个电路系统运行频率的升高,采用分离器件构建的DDS电路有其自身无法克服的缺点,主要表现在电磁兼容和系统工作频率上。
后来出现的专用DDS芯片极大的推动了DDS技术的发展,但专用DDS芯片价格昂贵,且无法实现任意波形输出,近来,CPLD及FPGA的发展为实现DDS提供了更好的技术手段。
FPGA(FieldProgrammableGateArray)是目前广泛采用的一种可编程器件,它的应用不仅使得数字电路系统的设计非常方便,并且还大大缩短了系统研制的周期,缩小了数字电路系统的体积和所用芯片的品种。
而且它的时钟频率可达到几百兆赫兹,加上它的灵活性和高可靠性,非常适合用于实现波形发生器的数字电路部分。
1.3研制波形发生器的目的及意义
任意波形发生器是信号源的一种,它是具有信号源所具有的特点,更因它高的性能优势而倍受人们青睐。
信号源主要给被测电路提供所需要的己知信号(各种波形),然后用其它仪表测量感兴趣的参数。
可见信号源在各种实验应用和试验测试处理中,它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。
目前我国己经开始研制任意波形发生器,并取得了可喜的成果。
但总的来说,我国任意波形发生器还没有形成真正的产业。
就目前国内的成熟产品来看,多为一些PC仪器插口,独立的仪器和VX工系统的模块很少,并且我国目前在任意波形发生器的种类和性能都与国外同类产品存在较大的差距,因此加紧对这类产品的研制显得迫在眉睫。
见于这种情况下,本文实现了多功能波形发生器的设计。
系统采用AT89C51单片机,DAC0832完成模数转换,键盘控制波形的频率、幅度。
系统产生三角波、方波、正弦波等波形,波形的频率可通过键盘控制,波形清晰、频率调整十分方便、稳定性好,产生较复杂的波形只需修改源程序,不需改装电路。
将单片机的输出数字信号通过DAC0832转换成模拟信号,接入示波器就可以清晰的显示出系统产生的波形。
本系统具有线路简单、结构紧凑、价格低廉、性能优越等特点。
第2章Proteus的简介与使用
2.1Proteus的简介
Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,Proteus软件有近20年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,Proteus能够很容易的为用户建立了完备的电子设计开发环境。
Proteus产品系列也包含了革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。
不愧为一款非常优秀的单片机仿真软件。
Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。
此系统受益于15年来的持续开发,被《电子世界》在其对PCB设计系统的比较文章中评为最好产品—“TheRoutetoPCBCAD”。
Proteus产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。
用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。
其功能模块:
易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE仿真;ARESPCB设计.PROSPICE仿真器的一个扩展PROTEUSVSM:
便于包括所有相关的器件的基于微处理器设计的协同仿真。
此外,还可以结合微控制器软件使用动态的键盘、开关、按钮、LED甚至LCD显示CPU模型.
Ø支持许多通用的微控制器,如PIC,***R,HC11以及8051;
Ø交互的装置模型包括:
LED和LCD显示,RS232终端,通用键盘;
Ø强大的调试工具,包括寄存器和存储器,断点和单步模式;
ØIARC-SPY和KeiluVision2等开发工具的源层调试;
Ø应用特殊模型的DLL界面-提供有关元件库的全部文件。
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。
对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。
2.2Proteus界面
进入ProteusISIS双击桌面上的ISIS6Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus6Professional”→“ISIS6Professional”,出现如图2-1所示屏幕,表明进入ProteusISIS集成环境。
图2-1启动时屏幕
ProteusISIS的工作界面是一种标准的Windows界面,如图2-2所示。
包括:
标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
图2-2Proteus工作界面
2.3基本操作
2.3.1图形编辑窗口
在图形编辑窗口内完成电路原理图的编辑和绘制。
为了方便作图坐标系统(CO-ORDINATESYSTEM)ISIS中坐标系统的基本单位是10nm,主要是为了和ProteusARES保持一致。
但坐标系统的识别(read-out)单位被限制在1th。
坐标原点默认在图形编辑区的中间,图形的坐标值能够显示在屏幕的右下角的状态栏中。
点状栅格(TheDotGrid)与捕捉到栅格(SnappingtoaGrid)。
编辑窗口内有点状的栅格,可以通过View菜单的Grid命令在打开和关闭间切换。
点与点之间的间距由当前捕捉的设置决定。
捕捉的尺度可以由View菜单的Snap命令设置,或者直接使用快捷键F4、F3、F2和CTRL+F1。
如图2-3所示。
若键入F3或者通过View菜单的选中Snap100th。
图2-3View菜单选项
鼠标在图形编辑窗口内移动时,坐标值是以固定的步长100th变化,这称为捕捉,如果要确切地看到捕捉位置,可以使用View菜单的X-Cursor命令,选中后将会在捕捉点显示一个小的或大的交叉十字。
实时捕捉(RealTimeSnap)当鼠标指针指向管脚末端或者导线时,鼠标指针将会被捕捉到这些物体,这种功能被称为实时捕捉,该功能可以使你方便的实现导线和管脚的连接。
可以通过Tools菜单的RealTimeSnap命令或者是CTRL+S切换该功能。
可以通过View菜单的Redraw命令来刷新显示内容,同时预览窗口中的内容也将被刷新。
当执行其它命令导致显示错乱时可以使用该特性恢复显示。
视图的缩放与移动可以通过如下几种方式:
Ø用鼠标左键点击预览窗口中想要显示的位置,这将使编辑窗口显示以鼠标点击处为中心的内容。
Ø在编辑窗口内移动鼠标,按下SHIFT键,用鼠标“撞击”边框,这会使显示平移。
我们把这称为Shift-Pan。
Ø用鼠标指向编辑窗口并按缩放键或者操作鼠标的滚动键,会以鼠标指针位置为中心重新显示。
2.3.2预览窗口
该窗口通常显示整个电路图的缩略图。
在预览窗口上点击鼠标左键,将会有一个矩形蓝绿框标示出在编辑窗口的中显示的区域。
其他情况下,预览窗口显示将要放置的对象的预览。
这种PlacePreview特性在下列情况下被激活:
Ø当一个对象在选择器中被选中;
Ø当使用旋转或镜像按钮时;
Ø当为一个可以设定朝向的对象选择类型图标时(例如:
Componenticon,DevicePinicon等等);
Ø当放置对象或者执行其他非以上操作时,placepreview会自动消除;
Ø对象选择器(ObjectSelector)根据由图标决定的当前状态显示不同的内容。
显示对象的类型包括:
设备,终端,管脚,图形符号,标注和图形;
Ø在某些状态下,对象选择器有一个Pick切换按钮,点击该按钮可以弹出库元件选取窗体。
通过该窗体可以选择元件并置入对象选择器,在今后绘图时使用。
2.3.3图形编辑的基本操作
1.对象放置(ObjectPlacement)
放置对象的步骤如下(Toplaceanobject):
Ø根据对象的类别在工具箱选择相应模式的图标(modeicon)。
Ø根据对象的具体类型选择子模式图标(sub-modeicon)。
Ø如果对象类型是元件、端点、管脚、图形、符号或标记,从选择器里(selector)选择你想要的对象的名字。
对于元件、端点、管脚和符号,可能首先需要从库中调出。
Ø如果对象是有方向的,将会在预览窗口显示出来,你可以通过预览对象方位按钮对对象进行调整。
Ø最后,指向编辑窗口并点击鼠标左键放置对象。
2.选中对象(TagginganObject)
用鼠标指向对象并点击右键可以选中该对象。
该操作选中对象并使其高亮显示,然后可以进行编辑。
选中对象时该对象上的所有连线同时被选中。
要选中一组对象,可以通过依次在每个对象右击选中每个对象的方式。
也可以通过右键拖出一个选择框的方式,但只有完全位于选择框内的对象才可以被选中。
在空白处点击鼠标右键可以取消所有对象的选择。
3.删除对象(DeletinganObject)
用鼠标指向选中的对象并点击右键可以删除该对象,同时删除该对象的所有连线。
4.拖动对象(DragginganObject)
用鼠标指向选中的对象并用左键拖曳可以拖动该对象。
该方式不仅对整个对象有效,而且对对象中单独的labels也有效。
如果WireAutoRouter功能被使能的话,被拖动对象上所有的连线将会重新排布或者'fixedup'。
这将花费一定的时间(10秒左右),尤其在对象有很多连线的情况下,这时鼠标指针将显示为一个沙漏。
如果你误拖动一个对象,所有的连线都变成了一团糟,你可以使用Undo命令撤消操作恢复原来的状态。
5.拖动对象标签(DragginganObjectLabel)
许多类型的对象有一个或多个属性标签附着。
例如,每个元件有一个“reference”标签和一个“value”标签。
可以很容易地移动这些标签使你的电路图看起来更美观。
移动标签的步骤如下(Tomovealabel):
Ø选中对象;
Ø用鼠标指向标签,按下鼠标左键;
Ø拖动标签到你需要的位置。
如果想要定位的更精确的话,可以在拖动是改变捕捉的精度(使用F4、F3、F2、CTRL+F1键);
Ø释放鼠标。
6.调整对象大小(ResizinganObject)
子电路(Sub-circuits)、图表、线、框和圆可以调整大小。
当选中这些对象时,对象周围会出现黑色小方块叫做“手柄”,可以通过拖动这些“手柄”来调整对象的大小。
调整对象大小的步骤如下(Toresizeanobject):
Ø选中对象;
Ø如果对象可以调整大小,对象周围会出现黑色小方块,叫做“手柄”;
Ø用鼠标左键拖动这些“手柄”到新的位置,可以改变对象的大小。
在拖动的过程中手柄会消失以便不和对象的显示混叠。
7.调整对象的朝向(ReorientinganObject)
许多类型的对象可以调整朝向为0,90,270,360或通过x轴y轴镜象。
当该类型对象被选中后,“RotationandMirror”图标会从兰色变为红色,然后就可以来改变对象的朝向。
调整对象朝向的步骤如下(Toreorientanobject):
Ø选中对象;
Ø用鼠标左键点击Rotation图标可以使对象逆时针旋转,用鼠标右键点击Rotation图标可以使对象顺时针旋转;
Ø用鼠标左键点击Mirror图标可以使对象按x轴镜象,用鼠标右键点击Mirror图标可以使对象按y轴镜象。
毫无疑问当RotationandMirror图标是红色时,操作他们将回改变某个对象,即便你当前没有看到它,实际上,这中颜色的指示在你想对将要放置的新对象操作时是格外有用的。
当图标是红色时,首先取消对象的选择,此时图标会变成兰色,说明现在可以“安全”调整新对象了。
8.拷贝所有选中的对象(CopyingallTaggedObjects)
拷贝一整块电路的方式(Tocopyasectionofcircuitry):
选中需要的对象,具体的方式参照上文的TagginganObject部分;
Ø用鼠标左键点击Copy图标;
Ø把拷贝的轮廓拖到需要的位置,点击鼠标左键放置拷贝;
Ø重复步骤[3]放置多个拷贝;
Ø点击鼠标右键结束。
当一组元件被拷贝后,他们的标注自动重置为随机态,用来为下一步的自动标注做准备,防止出现重复的元件标注。
9.移动所有选中的对象(MovingallTaggedObjects)
移动一组对象的步骤是(Tomoveasetofobjects):
Ø选中需要的对象,具体的方式参照上文的TagginganObject部分;
Ø把轮廓拖到需要的位置,点击鼠标左键放置。
你可以使用块移动的方式来移动一组导线,而不移动任何对象。
10.删除所有选中的对象(DeletingallTaggedObjects)
删除一组对象的步骤是(Todeleteagroupofobjects):
Ø选中需要的对象,具体的方式参照上文的TagginganObject部分;
Ø用鼠标左键点击Delete图标。
如果错误删除了对象,可以使用Undo命令来恢复原状。
2.3.4原理图的绘制
1.画导线
Proteus的智能化可以在你想要画线的时候进行自动检测。
当鼠标的指针靠近一个对象的连接点时,跟着鼠标的指针就会出现一个“×”号,鼠标左键点击元器件的连接点,移动鼠标(不用一直按着左键)就。
出现了粉红色的连接线变成了深绿色。
如果你想让软件自动定出线路径,只需左击另一个连接点即可。
这就是Proteus的线路自动路径功能(简称WAR),如果你只是在两个连接点用鼠标左击,WAR将选择一个合适的线径。
WAR可通过使用工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。
如果你想自己决定走线路径,只需在想要拐点处点击鼠标左键即可。
在此过程的任何时刻,你都可以按ESC或者点击鼠标的右键来放弃画线。
2.画总线