常用信号发生器的设计.docx
《常用信号发生器的设计.docx》由会员分享,可在线阅读,更多相关《常用信号发生器的设计.docx(43页珍藏版)》请在冰豆网上搜索。
![常用信号发生器的设计.docx](https://file1.bdocx.com/fileroot1/2023-2/22/386a1e7e-610d-4a35-9425-4a85eac12efe/386a1e7e-610d-4a35-9425-4a85eac12efe1.gif)
常用信号发生器的设计
下载之后可以联系QQ1074765680索取图纸,PPT,翻译=文档
摘要
本设计充分利用单片机灵活的控制、丰富的外设处理能力,采用DDS技术根据需要方便地实现各种比较复杂的调频、调相和调幅功能,具有良好的实用性。
该设计的硬件系统由单片机作为核心控制单元,通过可编程键盘显示接口芯片连接键盘控制电路和LED数码管显示电路,与单片机相连的还有D/A转换电路、复位电路、电源电路、时钟电路等。
任意波形发生器通过单片机向0832发送数字编码,产生不同的输出,先利用采样定理对各波形进行抽样,然后把各采样值进行编码,得到的数字量存入各个波形表,然后将波形数据存储于存储器中,而后用可程控的时钟信号为存储器提供扫描地址,与每个地址相对应的数据则代表波形在等间隔取样点上的幅度值。
数据被送至DAC,从而产生一个正比于其数字编码的电压值,每个电压值保持一个时钟周期,直至新的数据送至DAC,经数模转换后得到所需要的模拟电压波形。
执行程序时通过查表方法依次取出,经过D/A转换后输出就可以得到波形。
•
关键词:
任意波形发生器;AT89S51;D/A转换器;频率
THEDESIGNOFARBITRARYWAVEFORMGENERATORS
Abstract
ThisarticleintroducedonekindusestheMCS-51monolithicconstitutionthegenerator,itslineissimple,thestructureiscompact,thepriceisinexpensive.TheprofileproductioniscarriesoutsomeprofilethroughAT89S51tohavetheprocedure,hasthedatatotheD/Aswitchinputendaccordingtocertainrule,thusobtainsthecorrespondingvoltagewaveformintheD/Aswitchingcircuitout-port.
Meets5inat89S51P2mouthtopressturns,chooseseachkindofprofile,thepeak-to-peakvaluevoltageandthefrequencythroughthesoftwareprogramming,throughthesoftwareprogramming,hastheP0mouthbasepintomeet8279chipsinaddition,eachkindofprofilecorrespondsabutton.Themonolithicintegratedcircuitelectriccircuitfunctionformsthescanningcode,thekeyvaluerecognition,keyprocessing,theparameterestablishment;Producesfixedtimeinterrupts;Formstheprofilethedigitalcoding,andoutputstheD/Aconnectionelectriccircuitandthedemonstrationactuationelectriccircuit.Theprofilegeneratorsystemsoftwaredesignandhaseachkindofprofilesubroutinebythemasterroutine,thetimedelayprocedure,thedatasheetprocedureandsoon。
Keywords:
ArbitraryWaveformGenerators;AT89S51;D/ASwitchingCircuit;Frequency
1.引言
1.1课题的来源与技术背景
不论是在生产还是在科研与教学上,信号发生器都是电子工程师仿真实验的最佳工具。
随着我国经济和科技的发展,对相应的测试仪器和测试手段也提出了更高的要求,信号发生器己成为测试仪器中至关重要的一类,因此开发信号发生器具有重大意义。
传统的信号发生器采用专用芯片,成本高,控制方式不灵活。
本设计充分利用单片机灵活的控制、丰富的外设处理能力,采用DDS技术,实现频率、幅值可调的函数波形的输出,同时可以根据需要方便地实现各种比较复杂的调频、调相和调幅功能,具有良好的实用性。
根据其频率发生方法又可分为谐振法和合成法两种。
一般的传统发生器都是采用的谐振法,即用具有频率选择性的回路来产生正弦振荡,来获得所需频率,也可以根据频率合成技术来获得所需频率。
利用频率合成技术制成的合成波形发生器,通常被称为频率合成器或频率综合器。
频率综合器是指利用频率合成技术合成的频率源,它常常是没有调制的,也没有足够宽的和足够准确的输出电平调节,其工作范围往往也不宽,最小频率间隔也比较大,一般做专用设备使用,或做某一个系统中的一个组成部分。
1.2研究信号发生器的目的及意义
波形发生器是信号源的一种,主要给被测电路提供所需要的己知信号(各种波形),然后用其它仪表测量感兴趣的参数。
可见信号源在各种实验应用和试验测试处理中,它的应用非常广泛。
它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。
目前我国己经开始研制波形发生器,并取得了可喜的成果。
但总的来说,我国波形发生器还没有形成真正的产业。
就目前国内的成熟产品来看,多为一些PC仪器插卡,独立的仪器和VXI系统的模块很少,并且我国目前在波形发生器的种类和性能都与国外同类产品存在较大的差距,因此加紧对这类产品的研制显得迫在眉睫。
函数波形发生器发展很快近几年来,国际上波形发生器技术发展主要体现在以下几个方面:
(1)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。
波形发生器软件的开发正使波形数据的输入变得更加方便和容易。
波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。
同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成v=f(t)形式的波形方程的数学表达式产生。
从而促进了波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。
目前可以利用可视化编程语言(如VisualBasic,VisualC等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。
(2)与VXI资源结合。
目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。
由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。
在民用方面,VXI模块远远不如台式仪器更为方便。
(3)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。
不过现在新的台式仪器的形态,和几年前的己有很大的不同。
这些新一代台式仪器具有多种特性,可以执行多种功能。
而且外形尺寸与价格,都比过去的类似产品减少了一半。
1.3主要研究内容
(1)理论基础分析。
了解波形发生器的相关理论,包括几种常用波形,如正弦波、方波等,然后介绍了波形发生器的主要方案及原理。
(2)硬件系统设计。
主要包括以下几个模块:
串口电路;键盘、LED显示电路;单片机系统;DAC芯片和放大电路设计。
(3)软件系统设计。
主要有:
系统总体流程设计;串口程序设计;单片机程序设计;键盘响应程序设计;LED显示程序设计;DAC控制程序设计。
(4)系统仿真调试。
通过计算机进行模拟仿真调试。
2.信号发生器的理论分析与设计方案
在测试与测量技术过程中,常用到已知波形的数字化生成,它在许多与测量有关的领域有着不可替代的作用。
例如,数字化仿真,常被用于算法研究、模型研究、系统辨识或以蒙特卡罗法搜索模型与算法。
任意波形发生器出现以后,给人们提供的不仅是一个通用的基础技术平台,而是在人们面前打开了通往无限宽广空间的一扇门,使得人们对于信号波形的掌握与应用再也不必局限于简单的正弦波、方波等几种有限的波形了,它可以按照人们提供的测量序列产生出几乎任意形状的连续波形信号。
2.1常用波形介绍
函数波形的一般表达式可以表示为
,下面来介绍几种常用的函数波形[3]:
2.1.1正弦函数
正弦信号与余弦信号,两者只是在相位上相差2π,可以统称为正弦信号。
其一般形式为
f(t)=Asin(ωt+θ)
(1)
式中,A为振幅,ω是角频率,θ为初相位。
上述三量是正弦信号的三要素。
它的波形见图1。
正弦信号是周期信号,其周期T与频率f及角频率ω之间的关系为:
(2)
图1正弦波形
在实际应用中经常遇到单边指数衰减的正弦信号,其波形如图2所示,表达式为:
(3)
图2指数衰减的正弦信号波形
2.1.2方波波形函数
方波函数是一种常用的波形函数,其表达式为:
(4)
方波的波形如图2-3所示:
图3方波波形
2.2设计方案
目前信号发生的主要实现方法由直接模拟法、直接数字法两种。
2.2.1直接模拟法
图4直接模拟法框图
这是传统函数发生器的简化基本结构,一般都是由自由振荡器产生原始波形,然后经过转换电路将原始波形转换成其他波形,在上图中三角波是由振荡器产生的,方波是三角波通过比较器转变而成的,正弦波是三角波通过一个波形整形电路(正弦波整形器)演变而来的,所需要波形经过放大和衰减输出,显然这种方式产生的波形种类有限,每增加一种波形,都要增加相应的转换电路,整个电路变得很复杂,最重要的是要产生用户所需要的任意波形复杂的波形几乎不可能[5]。
2.2.2直接数字法
直接数字法是采用直接数字合成(DirectDigitalSynthesis)的方法实现信号产生。
该技术具有频率转换速度快、频率分辨率高、易于控制的突出特点。
直接数字合成技术近年来发展得很快,而要产生任意波形就必须采用直接数字很成技术。
随着DDS技术的发展,出现了各种各样的直接数字合成的结构,但基本上可以发成两种:
(1)基于地址计数器的数字频率合成法;
(2)基于相位累加器的数字频率合成法。
由于直接数字法在设计上的的优点,本课题设计采用的是基于地址计数器的直接数字合成法。
2.3信号发生器的基本结构框图
图5电路结构框图
信号发生器采用的是直接数字合成的方法,上图是信号产生电路的结构框图,该系统由单片机作为核心控制单元,通过可编程键盘显示接口芯片连接键盘控制电路和LED数码管显示电路,外围电路有DAC转换电路、复位电路、电源电路、时钟电路等。
单片机向0832发送数字编码,产生不同的输出。
先利用采样定理对各波形进行抽样,然后把各采样值进行编码,得到的数字量存入各个波形表,执行程序时通过查表方法依次取出,经过D/A转换后输出就可以得到波形。
假如N个点构成波形的一个周期,则0832输出N个样值点后,样值点形成运动轨迹,即一个周期。
重复输出N个点,成为第二个周期。
利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率,这样就控制了输出的波形及其幅值和频率。
将波形数据存储于存储器中,而后用可程控的时钟信号为存储器提供扫描地址,与每个地址相对应的数据则代表波形在等间隔取样点上的幅度值。
数据被送至DAC,从而产生一个正比于其数字编码的电压值,每个电压值保持一个时钟周期,直至新的数据送至DAC,经数模转换后得到所需要的模拟电压波形。
3.硬件系统设计
硬件系统主要分为以下几个模块:
单片机功能模块、显示接口电路,波形变换DAC转换模块、时钟电路、复位电路和电源电路等。
波形的产生是通过AT89S51执行某一波形发生程序,向D/A转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形。
在AT89S51的P2口接5个按扭,通过软件编程来选择各种波形、幅值电压和频率,另有P0口管脚接8279芯片,以驱动数码管显示电压幅值和频率,每种波形对应一个按钮。
波形的产生是通过单片机系统执行波形发生程序,在其数据线上送出一系列按一定规律变化的数据信息,通过D/A转换器和运算放大器转化为电压信号。
3.1单片机的选取
根据系统对控制芯片的要求,单片机功能模块选取AT89S51芯片,AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
该单片机的功能是形成扫描码,键值识别、键处理、参数设置;形成显示段码;产生定时中断;形成波形的数字编码,并输出到D/A接口电路和显示驱动电路。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
AT89S51的P2口作为功能按钮和TEC6122的接口,P1口做为D/A转换芯片0832的接口。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
3.2复位电路
复位电路如图6所示,控制引脚RST,引脚9,复位输入信号,振荡器工作时,该引脚上2个机器周期的高电平可以实现复位操作。
本文采用上电复位,上电复位要求接通电源后,自动实现复位操作。
图中电容C13和电阻R10对+5V的电源来说构成微分电路,使在刚启动电源时向RST引脚输入高电平信号,完成系统的复位操作。
图6复位电路
3.3时钟电路
时钟引脚XTAL1和XTAL2:
XTAL1,引脚18,内部振荡器外接晶振的一个输入端,XTAL2,引脚19,内部振荡器外接晶振的另一个输入端。
AT89S51内部有一个高增益的反相放大器,通过XTAL1和XTAL2引脚外接石晶振子、微调电容构成振荡器,该振荡器发出的脉冲直接送入内部时钟电路。
图7时钟电路
本设计中Y1为石英振子,当选用石英振子时,电容通常选择30PF,振荡频率范围为1—12MHz,该设计选用12MHz。
3.4可编程键盘/显示器接口芯片
8279是Intel公司生产的通用可编程键盘/显示器接口芯片。
8279可实现对键盘/显示器的自动扫描,并识别键盘上闭合键的键号。
这样不仅可节省CPU对键盘/显示器的操作时间,而且显示稳定,程序简单,不会出现误动作。
8279可按其功能分为:
键盘功能块;显示功能块;控制功能块;与CPU接口功能块控制功能块包括控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工作.
图88279芯片的键盘显示电路
8279能自动完成键盘输入和显示控制两种功能。
键盘控制部分提供一种扫描工作方式,可与64个按键的矩阵键盘连接,能对键盘进行自动扫描、自动消抖、自动识别出按下的键并给出编码,能同时按下双键或N键实行保护,其接收键盘上的输入信息存入内部FIFO缓冲器,并可在有键输入时向CPU请求中断。
8279提供了按扫描方式工作的显示接口,其内部有一个168的显示缓冲器,能对8位或16位LED自动进行扫描,将显示缓冲器的内容在LED上显示出来。
8279通过74LS138译码器扩展4×4键盘、6位显示器。
由3-8译码器对SL0~SL2译出键扫描线,由另一3-8译码器译出显示器的位扫描线,并采用了编码扫描方式。
为了防止出现重键现象,扫描输出线高位SL3不参加键扫描译码。
CPU对8279的监视采用了查询方式,故8279的中断请求信号IRQ悬空未用,整个电路结构见图。
3.5键盘控制电路
矩阵式键盘也称为行列式键盘。
行线通过上拉电阻接到VCC电源上,列线上逐列给低电平,如果有键按下,相应的行线就能够接收到低电平,据此就可以判断出相应的键值。
单片机中所需按键较少,多采用独立式键盘。
此种键盘结构简单,每只按键接单片机的一条I/O线,通过查询即可示别出每只按键的状态来。
但由于本系统按键较多,在这里采用矩阵式排列键盘,如图所示。
图9键盘控制电路
矩阵式键盘可以合理应用硬件资源,把16只按键排列成4*4矩阵形式,用一个8位I/O口控制,把键盘上的行和列分别接在IOA0~IOA3和IOA4~IOA7 先置IOA0~IOA3为带数据缓存器的高电平输出,置IOA4~IOA7为带下拉电阻的输管脚,此时若有键按下,取IOA4~IOA7的数据将得到一个值,把此值保存下来,再置IOA4~IOA7为带数据反相器的高电平输出,置IOA0~IOA3为带下拉电阻的输入管脚,此时若键仍没弹起,取IOA0~IOA3的数据将得到另一个值,把这两个值组合就可得知是哪个键按下了,再通过查表得到键值。
3.6数码显示电路
电路中74LS164的A、B联在一起,接收由单片机串口送来的信号,它的Q7输出端又与下一个164的A、B端联在一起,以此类推,实际组成了N
8位的移位寄存器,与数码管联接,可同时显示多位数字。
在设计中为了节省芯片资源,采用了汇编语言实现了日期和时间分屏,仅采用六个74164驱动六位的数码管,显示由于数码管实际上是由多个正常工作电压为3V的发光二极管组成的,系统没有必要单独为数码管提供电源,而是直接从主电源上引出一路为数码管供电,在实际应用中,可以在数码管电源与系统主电源之间加上三个二极管来降压,刚好使其端电压为3V左右,符合数码管长时间工作的要求。
数码管显示电路的具体联接方式图10所示。
图104位数码显示电路
3.7数模转换电路
与单片机相连的是D/A转换电路将波形样值的编码转换成模拟值,完成双极性的波形输出。
D/A转换电路是由一片DAC0832数模转换器和一块运算放大器uA741组成。
DAC0832是一个具有两个输入数据寄存器的8位DAC。
目前生产的DAC芯片分为两类,一类芯片内部设置有数据寄存器,不需要外加电路就可以直接与微型计算机接口。
另一类芯片内部没有数据寄存器,输出信号随数据输入线的状态变化而变化,因此不能直接与微型计算机接口,必须通过并行接口与微型计算机接口。
DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D/A转换,故不需要外加电路。
0832是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以由运算放大器实现,可以实现双极性输出。
图11D/A转换器的连接电路
D/A转换器采用DAC0832芯片,它由8位输入寄存器、8位DAC寄存器和8位D/A转换电路组成。
输入寄存器和DAC寄存器作为双缓冲,因为在CPU数据线直接接到DAC0832的输入端时,数据在输入端保持的时间仅仅是在CPU执行输出指令的瞬间内,输入寄存器可用于保存此瞬间出现的数据。
有时,微机控制系统要求同时输出多个模拟量参数,此时对应于每一种参数需要一片DAC0832,每片DAC0832的转换时间相同,就可采用DAC寄存器对CPU分时输入到输入寄存器的各参数在同一时刻开始锁存,进而同时产生各模拟信号。
转换的8位数字量由芯片的8位数据输入线D0~D7输入,经DAC0832转换后,通过2个电流输出端IOUT1和IOUT2输出,IOUT1是逻辑电平为"1"的各位输出电流之和,IOUT2是逻辑电平为"0"的各位输出电流之和。
另外,ILE、
、
、
和
是控制转换的控制信号。
8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。
输入可有28-256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。
3.8电源电路
电源电路如图13所示,采用220V供电,220交流电经过变压器T1降压、二极管D1~D4整流、电容C5滤波后产生12V直流电,可以作为控制继电器的驱动电压。
12V电压经过稳压器7805稳压后产生5V电压,作为控制电路的主电源。
电容C2作为高频旁路电容,将各种高频干扰信号旁路接地。
在设计的过程中,滤波电容C1要尽量选择的大,因为在单片机向EEPROM中写数据的过程中,持续时间很长,典型时间为8ms,这里选用的是2200uF。
所以只有选用较大容量的电容,才能在系统突然断电的情况下保证单片机有足够的时间将RAM中的数据写入EEPROM中。
图12电源电路图
4.系统软件设计
4.1系统程序总体框图
软件设计程序由主程序和子程序组成,两者都存放在AT89S51单片机中。
主程序的功能是:
开机以后负责查键,即做键盘扫描及显示工作,然后根据用户所按的键转到相应的子程序进行处理,主程序框图如图1所示。
子程序的功能有:
幅值输入处理、频率输入处理、正弦波输出、锯齿波输出、方波输出、显示等。
波形的产生是通过AT89S51执行某一波形发生程序,向D/A转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形。
在AT89S51的P2口接5个按扭,通过软件编程来选择各种波形、幅值电压和频率,另有3个P2口管脚接TEC6122芯片,以驱动数码管显示电压幅值和频率,每种波形对应一个按钮。
此方案的有点是电路原理比较简单,实现起来比较容易。
缺点是,采样频率由单片机内部产生故使整个系统的频率降低。
其波形发生器技术指标与操作设计如下:
图13整体流程图
(1)波形:
方波、正弦波、锯齿波;
(2)幅值电压:
1V、2V、3V、4V、5V;
(3)频率:
10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;
(4)上电后,系统初始化,数码显示6个‘-’,等待输入设置命令。
(5)按钮分别控制“幅值”、“频率”、“方波”、“正弦波”、“锯齿波”。
(6)“幅值“键初始值是1V,随后再次按下依次增长1V,到达5V后在按就回到1V。
(7)“频率“键初始值是10HZ,随后在按下依次为20HZ、50HZ、100HZ、200HZ、500HZ、1000HZ循环。
图14按键控制流程图
根据上面的要求,程序分为主程序和子程序两部分.其中主程序的主要功能为,开机后利用查表法,通过程序结合键盘控制,进行键盘扫描和显示工作,根据按下的按钮转入相应的子程序中去,子程序分为六部分程序,分别为:
幅值输入处理程序、频率输入处理程序、正弦波输出程序、锯齿波输出程序、方波输出程序、显示程序。