基于单片机的函数信号发生器设计.docx
- 文档编号:10012638
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:41
- 大小:625.41KB
基于单片机的函数信号发生器设计.docx
《基于单片机的函数信号发生器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的函数信号发生器设计.docx(41页珍藏版)》请在冰豆网上搜索。
基于单片机的函数信号发生器设计
摘要
直接数字频率合成(简称DDS)是一种以固定的精确时钟源为基准,利用数字处理模块产生频率和相位均可调的输出信号的技术。
随着超大规模集成电路和微电子技术的发展,现代高性能、高集成度和小体积的DDS产品正快速取代传统的模拟信号频率合成技术,成为了这类问题新的解决方案。
本文主要介绍用单片机芯片89C51控制直接数字频率合成器(DDS)芯片EP1K30设计的高精度信号发生器,并产生稳幅正弦波和方波。
本文着重讨论了89C51与外部电路的接口,单片微机控制系统的硬件结构及软件设计框图。
整个系统电路简单,功能强大,可扩展性强。
文章首先介绍了DDS函数信号发生器的产生背景以及课题的主要任务,然后介绍了基于DDS信号发生器的系统方案的提出、总体结构及其特点。
之后介绍了在硬件电路设计过程中所使用的主要芯片及其功能,之后是详细的硬件电路设计方案和单片机程序及流程图。
然后介绍EDA工具和电路调试。
还有FPGA/CPLD的结构及其原理、各模块程序及其仿真结果、顶层程序及顶视图。
最后针对设计过程中所遇到的问题对方案提出了进一步的改进及总结。
[关键词]单片机流程图硬件电路FPGA
Abstract
DirectDigitalSynthesis(DDS)isaconstantsourceofaccurateclockasthebase,usingdigitalprocessingmodulecanbegeneratedfrequencyandphasefortheoutputsignaltechnology.Withtheultra-large-scaleintegratedcircuitsandmicro-electronicstechnology,modernhigh-performance,highlevelofintegrationandsmallsizeoftheDDSproductsarerapidlyreplacingtraditionalanalogfrequencysynthesistechnology,suchastheissueofnewsolutions.
Thispaperintroducedonekindofmulti-signalgeneratorbasedonDDSchipEP1K30andderectlycontroledbyMCU89C51,andasteadyincreasesineandsquare.Thisarticlefocusesonthe89C51interfacewiththeoutsideofthecircuit,single-chipcomputercontrolsystemhardwareandsoftwaredesignstructurediagram.Thewholesystemcircuitsimple,powerful,scalableandstrong.
First,thisthesisintroductsthebackgroundanddesignofmainmissionoftheDDSfunctionsignaloccurrencemachineofcreation.Thenintroductdirectnumeralthefrequencysynthesize(DDS)atechniqueanditapplication,machinehappenaccordingtotheDDSsignalofputforwardofsystemproject,totalstructureanditscharacteristics.Thenintroductiondesignintheprocessmainchipforuseanditsfunction,hardwareelectriccircuitofdesign.Afterdetailedrelatedstructureanditsprinciple,eachmoldpieceprocedureofFPGA/CPLDanditimitatetrueresult,crestlayerprocedureandcrestseediagram.Theendaimatadesignprocessintheproblemtheotherpartycasemeetputforwardfurtherofimprovementandsummary.
[Keyword]MicroControllerUnit
FlowChart
HardwareCircuit
FieldProgrammableGateArray
绪论
一、课题背景
随着数字技术在仪表和通信系统中的广泛应用,一种从参考频率源生成多种频率的数字控制方法应运而生,这种技术就是DDS(即直接数字合成)。
DDS技术是一种从相位概念出发直接合成所需波形的一种新的全数字频率合成技术。
在电子行业的基础设施和制造等领域,函数发生器都是有效的通用仪器。
它可以生成不同频率和幅度的大量信号,用来评估新电路的运行情况,代替时钟信号,对新产品进行制造测试,及用于许多其它用途。
自第一部正弦波发生器问世以来,函数发生器的设计已经发生了多次演进,在当前数字领域中,大多数新型函数发生器正采用DDS这种新技术。
DDS在大部分操作中使用数字电路,从而提供了数字操作拥有的许多优势。
由于信号只在合成的最后阶段转换到模拟域中,所以在多个方面降低了函数发生器的复杂度,提高了函数发生器的稳定性。
最新的函数发生器利用了DDS的优势,能够把多台不同仪器中的功能融合到一部仪器中。
基于DDS的函数发生器现在不仅可以执行函数发生器的功能,还可以执行任意波形发生器(ARB)的功能。
除此之外,某些仪器还是功能强大的脉冲发生器。
这些功能将会给传统测试方案带来一次革命。
二、DDS函数信号发生器概述
从本质上看,DDS是一个以恒定高频率运行的多位计数器。
在溢出时,通过利用一个多位控制字来设置计数器步进的尺寸,允许计数器过零。
计数器的高阶位用来寻址存储设备,该设备保持有生成的一个波形周期的数字记录。
高频时钟每前进一单位,计数器便步进一次,存储器也将生成一个新的地址字,而新的波形数据值将会发送到DAC。
DAC输出的是取样模拟波形,该波形经重构滤波器之后由发生器输出。
如果利用RAM波形存储器,那么DDS函数信号发生器可以重现几乎任何波形。
DDS发生器通过播放存储器中存储的波形来运行。
DDS电路有存储波形的RAM,那么控制器电路可以把任何波形写入RAM,并通过合成器重放波形。
三、课题的主要任务
本课题主要是利用现场可编程逻辑门阵列FPGA实现直接数字频率合成(DDS)的原理,以DDS为核心的信号发生器生成正弦波以及方波,并在其基础上制定改进方案。
其中包括系统硬件电路部分的设计以及软件(单片机和VHDL)部分的设计。
针对EDA的发展趋势以及DDS的重要作用,并结合本次课题的基本要求,主要工作如下:
1、论述数字频率合成(DDS)技术及其应用,发展趋势。
2、基于DDS信号发生器的系统设计方案的提出,并且描述该方案的特点,构建总体结构。
3、硬件电路的各子模块及总体设计与调试,并且在EWB上进行仿真测试。
介绍FPGA/CPLD的结构及其原理,并用硬件描述语言(VHDL)编写各模块子程序及顶层总程序,设计顶视图,并将各程序及顶层视图进行仿真测试。
需要完成的指标要求有:
1、DDS信号发生器的功能特点及指标要求:
(1)正弦波信号源:
①信号频率:
20Hz~200kHz步进调整,步长为5Hz
②频率稳定度:
优于10-4
③非线性失真系数≤3%
(2)脉冲波信号源
①信号频率:
20Hz~200kHz步进调整,步长为5Hz
②上升时间和下降时间:
≤1μs
③平顶斜降:
≤5%
④脉冲占空比:
2%~98%步进可调,步长为2%
(3)频率可预置。
显示器:
十进制数字显示。
(4)自行设计满足本设计任务要求的稳压电源。
2、为了让毕业论文更加清晰明了,更加有说服力,有必要附加一些电路图和事物图。
(1)图纸内容及张数:
①基于FPGA设计的DDS信号发生器顶视图
②基于PROTEL99SE设计的电路原理图
③基于EDA开发装置实现电路原理图
④基于MAXPLUSⅡ的各种波形仿真图
(2)实物要求:
①基于MAXPLUSⅡ的各种仿真结果
②在EDA开发装置上实现并调试所设计的电路及结果
③基于EWB或MULTISIM的硬件电路仿真及调试结果
④基于PROTEL的SCH图及PCB图
第一章基于DDS函数信号发生器设计方案
一、基于DDS信号发生器的系统设计方案的提出
1、采用高性能的DDS单片电路解决方案
随着DDS技术和VLSI的不断发展,DDS式频率合成器单片化在九十年代就已经完成。
由于DDS芯片性能日趋完善,需求量激增,其中AD公司的DDS系列产品以其较高的性价比,目前取得了极为广泛的应用。
2、自行设计基于FPGA芯片的解决方案
DDS技术的实现依赖于高速、高性能的数字器件。
可编程逻辑器件以其速度高、规模大、可编程,以及有强大的EDA软件支持等特性,十分适合实现DDS系统的数字部分。
在高可靠应用领域,如果设计得当,将不会存在类似MCU的复位不可靠等问题。
而且由于它的高集成度,完全可以将整个系统下载于同一芯片中,实现所谓的片上系统,从而大大缩小产品的体积,提高系统的可靠性。
另外可编程逻辑器件的开发一般都是利用先进的EDA工具进行电子系统设计和产品开发。
开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件硬件结构无关联,使得设计成功的各类逻辑功能软件具有良好的兼容性和可移植性。
二、本系统所采用的方案及其特点
由于条件有限,所以采用了自行设计基于FPGA芯片的解决方案。
这种方案的特点:
1、利用FPGA则可以根据需要方便地实现各种比较复杂的调频、调相和
调幅功能,具有良好的实用性。
2、设计操作平台简单:
Max+plusII是Altera提供的一个完整的EDA开发软件,可完成从设备输入、编译、逻辑综合、器件适配、设计仿真、定时分析、器件编程的所有过程。
用Max+plusII设计DDS系统数字部分最简单的方法是采用原理图输入。
3、利用FPGA先进的结构特点,可以用FPGA实现的DDS能够用在很高的频率上。
第二章主要芯片的选择及其功能
一、单片机AT89C51
89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器。
主要性能:
·128*8位内部RAM
·4个8位I/O口
·片内有4KB可在线重复编程的快闪擦写存储器
·存储数据保存时间为10年
·宽工作电压范围:
Vcc可为2.7V到6V
·全静态工作:
可从0Hz至16MHz
·程序存储器具有3级加密保护
·三个16位定时器/计数器
·中断结构具有6个中断源和4个优先级
·可编程全双工串行通道
·空闲状态维持低功耗和掉电状态保存存储内容
·4个8位I/O口
·全双工增强型UART
·可编程时钟输出
·异步端口复位
·低EMI(禁止ALE以及6时钟模式)
·掉电模式可通过外部中断唤醒
其引脚结构如图2-1所示。
图2-1AT89C51引脚结构
引脚功能简述:
·VCC:
供电电压。
·GND:
接地。
·P0~P3:
可编程输入输出口。
·RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
·ALE/
:
地址锁存允许信号。
在存取外部存储器时,这个信号用于锁存低字节地址。
·
:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次
有效。
但在访问外部数据存储器时,这两次有效的
信号将不出现。
·
/VPP:
当
保持低电平时,在此期间外部程序存储器,不管是否有内部程序存储器。
注意加密方式1时,
将内部锁定为RESET;当
端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源。
·XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
·XTAL2:
来自反向振荡器的输出。
二、移位寄存器74LS164
8位移位寄存器(串行输入,并行输出)
引出端排列图如图2-2所示
图2-2引出端排列图
引出端符号功能简述:
CLOCK时钟输入端
CLEAR同步清除输入端(低电平有效)
A,B串行数据输入端
QA-QH输出端
当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。
串行数据输入端(A,B)可控制数据。
当A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0为低电平。
当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态。
三、8路D/A转换器DAC0832
DAC0832是8位分辨率D/A转换集成芯片,与处理器完全兼容,其价格低廉,接口电路及程序简单,转换控制容易等优点,在单片机应用系统中得到了广泛的应用。
它由三大部分组成:
一个8位输入寄存器,一个8位DAC寄存器和一个8位D/A转换器。
其引脚结构如图2-3所示:
图2-3DAC0832的引脚图
引脚功能简述:
DI0~DI7:
数据输入线,TLL电平。
ILE:
数据锁存允许控制信号输入线,高电平有效。
CS:
片选信号输入线,低电平有效。
WR1:
为输入寄存器的写选通信号。
XFER:
数据传送控制信号输入线,低电平有效。
WR2:
为DAC寄存器写选通输入线。
Iout1:
电流输出线。
当输入全为1时Iout1最大。
Iout2:
电流输出线。
其值与Iout1之和为一常数。
Rfb:
反馈信号输入线,芯片内部有反馈电阻
Vcc:
电源输入线(+5v~+15v)
Vref:
基准电压输入线(-10v~+10v)。
AGND:
模拟地,摸拟信号和基准电源的参考地。
DGND:
数字地,两种地线在基准电源处共地比较好。
四、3线-8线译码器74LS138
引脚结构如图2-4所示:
图2-474LS138的引脚图
引脚功能简述:
、
、
:
译码地址输入端
:
选通端
、
:
选通端(低电平有效)
~
:
译码输出端(低电平有效)
低电平时,可将地址端(
、
、
)的二进制编码在一个对应的输出端以低电平译出。
利用
、
和
可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。
若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
功能表如图2-5所示:
五、EP1K30
EP1K30芯片属ALTERA公司的ACEX系列,该系列是ALTERA公司着眼于通信、音频处理及类似场合应用而推出的FPGA器件系列芯片,它采用0.22/0.18微米混合工艺,密度从10000门到100000门。
所有ACEX系列器件均兼容64bit、66MHz的PCI,并支持锁相环电路。
ACEX1K采用查找表(LUT)和EAB(嵌入式阵列块)相结合的结构,可用来实现存储器、专用逻辑功能和通用逻辑功能,每个EBA能提供4096比特的存储空间,每个LE包含4个输入LUT、一个可编程的触发器、进位链和一个层叠链。
合理运用进位链能够提高系统运行速度。
引脚结构如图2-5所示:
图2-5EP1K30引脚结构
引脚功能如图2-6所示:
图2-6EP1K30引脚功能表
第三章硬件电路的设计
一、键盘接口电路的设计
键盘输入的硬件图,如图3-1所示。
图3-1键盘输入电路
键盘的工作方式一般有程控扫描方式、定时扫描方式、中断扫描方式三种。
程控扫描方式就是只有当单片机空闲时,才调用键盘扫描子程序,反复的扫描键盘,等待用户从键盘上输入命令或数据,来响应键盘的输入请求。
程控扫描方式的一般步骤为:
判断有无键按下,扫描键盘得按键参数,计算键号,判断闭合键是否释放,执行键操作子程序,返回。
定时扫描方式即利用内部定时器,产生10ms的定时中断,CPU响应中断时对键盘进行扫描,在有键按下时识别出该键,并执行相应键处理功能程序。
定时扫描方式的键盘右键电路和程控扫描方式相同。
键盘工作于程控扫描状态时,CPU要不间断的对键盘进行扫描工作,以监视键盘的输入情况,知道有键按下为止。
其间CPU不能干任何其他工作,如果CPU工作量大,这种方式将不能适应,定时扫描进了一步,除了定时监视一下键盘输入情况外,其余时间可进行其他任务的处理,因此CPU效率提高了,为了进一步提高CPU工作效率,可采用中断扫描方式,即只有在键盘按下时,才执行键盘扫描并执行该按键功能程序。
图3-1示出了图个4×4键盘,此键盘即采用中断扫描方式,当键盘上有键闭合式产生中断请求,执行中断服务程序,判别键盘上闭合键的键号,并做出相应处理。
键盘的列线接到P1口的低4位,键盘的行线通过74LS04反相器连接到P1口的高四位,因此P1.0~P1.3作为键输入线,P1.4~P1.7作为扫描输出线,初态时P1.4~P1.7全为“0”。
键盘上没有闭合键时,
为高电平,当键盘上有任意一个键按下时,
变低,向CPU发出中断请求,若CPU开放外部中断,则响应中断请求,执行中断服务程序扫描键盘。
经查阅相关资料可得,正常情况下,当操作人员进行按键操作时,由于机械触点的弹性作用,在闭合及断开瞬间均有抖动过程,会出现一系列负脉冲。
抖动时间的长短,与开关的机械特性有关,一般为5~10ms.而按键的稳定期,又由操作人员的按键动作所确定,一般为十分之几秒到几秒的时间。
为了保证单片机对键的一次闭合,仅作一次键输入处理,必须取出抖动的影响。
常用的去抖动的措施有硬、软件两种方法。
在这里,我们采用的是软件去抖动,既实用又有效。
其工作方式为:
当检测到有按键按下后,先将键值送寄存器,然后执行一个10ms的延时,再次执行键盘扫描程序,如果本次程序执行后,该键依然存在,则认为出现了一个有效按键,下面就根据其键值转到相应的处理子程序,完成相应的操作。
图3-2LED数码显示电路
在显示方面,需要8位LED显示,为了简化硬件电路,将所有位的段选线相应的并联在一起,通过单向移位寄存器74LS164,采用串行方式,直接利用单片机的串行口,将需要显示的数据直接输送到LED。
数据从RXD引脚串行输出,TXD引脚输出同步脉冲。
当一个数据写入串行口发送缓冲器时,串行口即将8位数据以
的波特率从RXD引脚输出,从低位到高位,发送完后置中断标志位TI为“1”。
在LED的入口处,再利用单向移位寄存器74LS164进行串并转换,再显示出来,节省了端口。
74LS164属于位移位串并转换芯片,在接收到移位数据和移位脉冲之后,会将这一位数据显示到74LS164的Q0端,同时将原来端口上的Q0~Q6移位到Q1~Q7,同时原来Q7端口上的数据将自然丢失。
在此,我们利用这一特性,达到多位显示的功能。
并利用二进制译码器74LS138达到对LED进行选通的目的。
LED显示器采用的是共阳极LED,所以在二进制译码器的输出端加一个反相器4069,以达到高电平选通的目的。
在把数据送显示后,要执行一个延时,使输送的数据在LED上能够暂存一段时间,由于人眼的视觉暂存时延为0.1秒左右,所以显示的数据要保留0.1秒以上,但考虑到如果闪动的频率过高,会对人眼带来相当大的负担,同时造成眼疲劳。
三、D/A转换电路的设计
图3-3D/A转换电路
在D/A转换方面,采用8位D/A转换器DAC0832和运算放大器OP-07构成D/A转换电路。
如图3-3所示,EP1K30与DAC0832之间不加锁存器,直接利用DAC0832内部锁存器,待转换的8位数字量由芯片的8位数据输入线DI0~DI7输入,经DAC0832转换后,通过2个电流输出端IOUT1和IOUT2输出,IOUT1是逻辑电平为"1"的各位输出电流之和,IOUT2是逻辑电平为"0"的各位输出电流之和。
另外,
、
、
、
和
是控制转换的控制信号。
DAC0832由8位输入寄存器、8位DAC寄存器和8位D/A转换电路组成。
输入寄存器和DAC寄存器作为双缓冲,因为在CPU数据线直接接到DAC0832的输入端时,数据在输入端保持的时间仅仅是在CPU执行输出指令的瞬间内,输入寄存器可用于保存此瞬间出现的数据。
有时,微机控制系统要求同时输出多个模拟量参数,此时对应于每一种参数需要一片DAC0832,每片DAC0832的转换时间相同,就可采用DAC寄存器对CPU分时输入到输入寄存器的各参数在同一时刻开始锁存,进而同时产生各模拟信号。
控制信号
、
、
用来控制输入寄存器。
当
为高电平,
为低电平,
为负脉冲时,在LE产生正脉冲;其中LE为高电平时,输入寄存器的状态随数据输入线状态变化,LE的负跳变将输入数据线上的信息存入输入寄存器。
控制信号
和
用来控制8位A/D转换器。
当
为低电平,
输入负脉冲时,则在LE产生正脉冲;其中LE为高电平时,DAC寄存器的输入与输出的状态一致,LE负跳变,输入寄存器内容存入DAC寄存器。
四、看门狗电路部分硬件设计
为了防止系统由于种种原因进入死循环或者程序跑飞,在外围又设置了看门狗芯片IMP813L,汇编程序在设计时,有意识的在部分子程序的开始处加入了简单的喂狗程序段:
CLRWDOG ;将喂狗端置0
LCALLD25US ;调用25μS的延时,保证足够长的时钟宽度
NOP
NOP
NOP;空操作,继续延时,无意义
SETBWDOG;再次将喂狗端拉高,完成一次喂狗
这样,由于本芯片的喂狗时钟溢出上限为1.6秒,而单片机程序完成一次主循环的时间是远远短于这个时间,所以,只要程序不跑偏,不进入死循环,主程序在每一个循环中,会数次完成喂狗操作,而在系统出现跑偏等非正常情况时,最长1.6秒之后,系统就会复位,重新开始主循环,而单片机在复位时,虽然端口和特殊寄存器全部回到初始值,但其内部的RAM数据保持不变,所以,复位后的单片机会很快回到复位前的工作状态,而在短暂的1.6秒时间内,系统的变化并不是很大,完全可以忽略在这段时间内的变化。
在外加看门狗芯片后可以发现,系统的稳定性被大大加强,运行更加稳定。
五、电源电路的设计
原理图如图3-5所示:
图3-5电源电路
在电源的设计过程中,最需要考虑的依然是干扰的抑制问题,在前面也已经提到了,使用弱电的CPU部分对外界的干扰相当敏感,一不小心就会带来灾难性的后果。
而且作为零电位的地线,如果共地的元件过多,或者连接的线路过长,也有可能使干扰从地线引入,造成无法预期的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 函数 信号发生器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)