智能信号发生器.docx
- 文档编号:8236717
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:20
- 大小:396.14KB
智能信号发生器.docx
《智能信号发生器.docx》由会员分享,可在线阅读,更多相关《智能信号发生器.docx(20页珍藏版)》请在冰豆网上搜索。
智能信号发生器
单片机技术课程设计说明书
智能信号发生器
专业
电气工程及其自动化
学生姓名
班级
学号
指导教师
完成日期
2015年12月11日
目录
课题认识························································2
一、系统设计与方案论证·······································3
1.1课题要求与内容··········································3
1.2系统方案设计············································3
1.3主控模块的选择 ········································4
1.4系统设计总框图··········································5
二、系统硬件电路设计···········································5
2.1单片机最小系统设计······································5
2.2信号发生模块电路设计····································7
2.2.1D/A转换元件的选择·····································7
2.2.2系统的D/A转换电路 ··································7
2.2.3TLC5615的时序分析 ·······························8
2.3开关电路设计············································8
三、系统软件设计···············································9
3.1系统软件流程图 ········································9
3.2主控制器软件设计········································9
3.3波形产生模块的子程序设计································10
四、实践应用···················································11
4.1开发工具及环境··········································11
4.1.1系统软件设计环境与步骤································11
4.1.2系统硬件设计环境与电路的绘制··························12
4.2系统出现的问题:
·········································12
4.3硬件静态的调试故障措施:
·································12
五、仿真图及结果分析 ·········································13
六、结束语·····················································15
参考文献·······················································16
附录···························································17
附录一智能信号发生器总接线图······························17
附录二总程序··············································18
课题认识
波形发生器是一种常用的信号源,广泛地应用于电子工程、通信工程、自动控制、遥测控制、测量仪器、仪表和计算机等技术领域。
基于直接频率合成(DDS)技术实现的波形发生器具有频率分辨率高,频率切换速度快,输出信号噪声低,易于集成等优点,具有较高的实用价值。
直接数字频率合成技术(DDS),就是将要产生的波形数据存入波形存储器中,然后在参考脉冲的作用下,对输入的频率数据进行累加并将累加器的输出经过转换后作为读取波形存储器的地址,读出的波形数据经过数\模转换后变为电压信号,也就是连续的阶梯信号,再加一级低通滤波电路,过滤掉波形信号里的高频成分,即可得到较为理想的波形信号。
单片机以其体积小,功能齐全,价格低廉,可靠性高等方面所具有的独特优点,长期以来被广泛的应用在各个领域。
作为一种优秀的控制装置,当只要求波形发生装置工作在频率较低的频段时,用单片机取代专用DDS芯片和FPGA,通样可以得到频率精确可调的高质量的波形信号。
本系统将波形数据存放在单片机的存储器中,利用软件编程的方法模拟DDS原理,实现直接数字频率合成的功能。
本设计主要由主控制器模块和信号发生模块两大部分组成。
采用AT89C52单片机为主控制器,由它来控制DDS芯片通过TLC5615完成数字量输入到模拟量输出的转换,然后经运放调节电压幅度,产生1MHz~15MHz的正弦波、锯齿波和三角波,最后由示波器显示。
本论文其重点讨论了TLC5615基本工作原理、DAC数模转换及其与89C52单片机控制系统的硬件结构和软件设计框图。
一、系统设计与方案论证
1.1课题要求与内容
设计目的:
(1)了解D/A转换与单片机的接口方法;
(2)了解D/A转换芯片的性能及编程方法;
(3)了解单片机系统中扩展D/A转换的基本方法
设计要求:
利用数字序列输出一个从0V开始逐渐升至5V再降至0V的可变电压,循环并且利用示波器观测波形。
制作信号发生器,并且讨论精度及其提高的方法。
(使用TLC5615)
本文共分为四个大部分:
第一部分:
系统总体方案设计,提出了信号发生器系统的总体设计方案,并进行比较,最终选择了最优方案进行设计。
第二部分:
系统硬件设计部分,详细说明了系统的硬件设计,以及各模块的硬件设计说明。
第三部分:
系统软件设计部分,阐述了系统主流程图以及各子程序流程图。
第四部分:
系统的调试,阐述了系统软硬件调试过程。
1.2系统方案设计
目前,波形发生器设计方案主要有以下几种:
1.方案一
用分立元件组成的函数发生器。
分立器件是相对于集成芯片而言的。
随着科学技术的不断发展,人们渐渐步入电子时代,分立器件也被也被广泛应用到消费电子、计算机及外设、网络通信,汽车电子、LED显示平等领域。
它包括:
半导体二极管、半导体三极管、电容、电阻、逻辑器件、传感器、敏感器件以及装好的压电晶体类似半导体器件等。
用分立器件组成的函数信号发生器通常机构简单、成本较低。
但是由于元器件的分散性及环境条件的改变等因素,致使波形频率产生偏差,它通常是单函数发生器且平率不高,其工作不很稳定,不易调试。
2.方案二
制作函数信号发生器可用运放IC、晶体管等通用元器件。
晶体管、运放IC等通用器件均可以制作函数信号发生器,用专业的发生器产生信号则是普遍选择。
函数信号发生器IC在早些时候,如M8045、CA102、XR5547等,不仅精度不够高,功能也比较少,频率上限只有200kHz,若想产生更高的频率信号是难以实现的,再加上不够灵活的调节方式,频率,占空比无法单独调节。
由于用通用器件制作的信号发生器同样具有频率不高的缺点,因此,在本论文设计中,此种方案也不宜采用。
3.方案三
采用TLC5615通过查表得方式输出需要的波形,通过单片机定时向DAC转化器发送转换数据,实现不同的幅值和频率的输出。
这种方法能够实现各种需要的波形的输出,成本也不高,只是在扩展外设的时候浪费了大量的接口,以后的系统扩展可能会有影响。
4.方案四
利用专用直接数字合成DDS芯片制作的函数信号发生器。
DDS有如下优点:
(1)速度快,可达到μs数量级;
(2)频率分辨率较高,输出频点多,可达多个频点切换;
(3)能够输出正交信号;
(4)频率切换时能实现相位连续;
(5)可以产生任意的波形;
(6)输出噪声低,对参数频率源的噪声有改善作用;
虽然DDS有上述诸多优点,而且利用直接数字合成DDS芯片实现的函数信号发生器能够产生任意波形并达到很高的频率,克服了方案一、方案二的多数缺点,但是限于本人学识有限与课程要求,故本设计采用方案三。
1.3主控模块的选择
方案一:
用单片AT89C52作为系统的主控核心。
单片机具有体积小,使用灵活的,易于人机对话和良好的数据处理,有较强的指令寻址和运算功能等优点。
且单片机功耗低,价格低廉的优点。
方案二:
C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。
片内集成了控制系统和数据采集中常用的模拟部件和其他数字外设及功能部件,还具有标准8052的数字外设部件,而且执行速度快,但其价格较贵。
方案三:
用FPGA等可编程器件作为控制模块。
FPGA可以实现各种复杂的逻辑功能,密度高,速度快,稳定性好等许多有点。
FPGA在掉电后会丢失数据上电后须进行一次配置,因此FPGA在应用中需要配置电路和一定的程序。
并且FPGA作为数字逻辑器件,竞争、冒险是数字逻辑器件较为突出的问题,因此在使用时必须注意毛刺的产生、消除及抗干扰性。
在此系统中,采用AT89C52单片机作为控制比采用C8051F005单片机、FPGA实现更简便。
基于综合性价比,确定选择方案一。
1.4系统设计总框图
开关模块三角波
信号发
晶振电路主控制模块生模块锯齿波
复位电路正弦波
图1.系统设计总框图
本系统主要包括以下几个模块:
主控制器及其接口电路模块,波形产生模块。
其中,主控制器负责接收并处理来自开关的命令输入,由信号发生模块输出模拟信号,再由示波器显示当前波形的频率值或幅值。
二、系统硬件电路设计
根据系统框图可知,本系统的硬件电路设计应包括单片机最小系统设计、信号发生模块设计和开关提示电路设计等。
2.1单片机最小系统设计
单片机最小系统是指在保证控制器正常工作的前提下,所需的最小计硬件电路,它主要包括:
晶振电路、复位电路、供电电路。
单片机最小系统如图2所示:
图2.单片机最小系统
下面分析一下电路中各个部分的作用:
1. 供电电路:
40脚接电源+5V,20脚接地,这样便完成了单片机的供电。
2. 选择使用内部ROM:
我们下载程序的时候是将程序下载到单片机内部的ROM里面存放,将EA/VPP端接到高电平(+5V),就告诉单片机系统我们选择的是内部的ROM,这样单片机工作的时候就会执行内部ROM里面的代码了。
如果将EA/VPP接地,单片机就会执行扩展的外部ROM,我们没有扩展ROM呀,以后在没有扩展ROM的时候我们都将它接高电平就可以。
3. 复位电路:
复位电路的原理是单片机RST引脚接收到2us的电平信号,只要保证电容的充放电时间大于2us可实现复位,所以电路中的电容值是可以改变的。
按键按下系统复位,电解电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。
单片机最小系统复位电路的电解电容C3大小直接影响单片机的复位时间,一般采用10~30uF,单片机最小系统容值越大需要的复位时间越短。
本次设计选用10uF的电解电容。
4. 时钟电路:
时钟电路由C1、C2和晶振X1组成。
时钟电路的作用是给单片机提供时钟脉冲,只有给单片机提供时钟脉冲单片机才会执行程序。
单片机最小系统晶振X1以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
本次设计选用12MHz的常用晶振。
单片机最小系统起振电容C1、C2一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好。
本次设计选用30pF的起振电容。
在电路图中,电容的的大小是10uF,电阻的大小是10k。
所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。
也就是说在电脑启动的0.1S内,电容两端的电压时在0~3.5V增加。
这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。
所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。
在5V正常工作的AT89C52单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。
所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。
在单片机启动0.1S后,电解电容C3两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。
当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。
随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。
根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。
单片机系统自动复位。
2.2信号发生模块电路设计
2.2.1D/A转换元件的选择
设计要求中要求用到TLC549元件,但基于TLC549的功能是实现A/D转换,与本设计的要求不符,故选择与之相关的TLC5615元件,而其功能则是实现D/A转换,符合设计要求。
2.2.2系统的D/A转换电路
原理图如图所示:
图3.TLC5615D/A转换接线图
脚1DIN(串行数据输入端)与AT89C52单片机的P1.7相连;
脚2SCLK(串行时钟输入端)与AT89C52单片机的P1.5相连;
脚3CS(芯片选用通端,低电平有效)与AT89C52单片机的P1.6相连;
脚4DOUT(用于级联时的串行数据输出端)本设计不需用;
脚6REFIN(基准电压输入端)通过100Ω的电阻与+5V电源相连;
脚7OUT(DAC模拟电压输出端)本次设计的信号输出端,可与示波器相连,检查输出波形是否满足要求;
脚5AGND(模拟地)与脚8VDD(正电源端)在元件内部已经准备就绪,仿真元件此时并不显示出引脚。
D/A转换器经常用于信号发生器的设计中,通过它可以生成各种波形。
其基本原理如下:
利用D/A转换器输出模拟量与输入数字量成正比这一特点,通过程序控制CPU向TLC5615送出随时间成一定规律变化的数字,则D/A转换器输出端就可输出随时间按一定规律变化的波形。
D/A是先把数字量转换成模拟量,在单片机设计中经常用到。
众所周知,单片机输出信号为数字量,而本设计旨在输出各种波形,属模拟量,所以单片机的数字量必须经过D/A的转换变为模拟信号才能满足要求。
2.2.3TLC5615的时序分析
TLC5615的时序如图所示:
图4. TLC5615的时序分析图
由时序图可以看出,当片选CS为低电平时,输入数据DIN由时钟SCLK同步输入或输出,而且最高有效位在前,低有效位在后。
输入时SCLK的上升沿把串行输入数据DIN移入内部的16位移位寄存器,SCLK的下降沿输出串行数据DOUT,片选CS的上升沿把数据传送至DAC寄存器。
当片选CS为高电平时,串行输入数据DIN不能由时钟同步送入移位寄存器;输出数据DOUT保持最近的数值不变而不进入高阻状态。
由此要想串行输入数据和输出数据必须满足两个条件:
第一时钟SCLK的有效跳变;第二片选CS为低电平。
这里,为了使时钟的内部馈通最小,当片选CS为高电平时,输入时钟SCLK应当为低电平。
串行数模转换器TLC5615的使用有两种方式,即级联方式和非级联方式。
如不使用级联方式,DIN只需输入12位数据。
DIN输入的12位数据中,前10位为TLC5615输入的D/A转换数据,且输入时高位在前,低位在后,后两位必须写入数值为零的低于LSB的位,因为 TLC5615的DAC输入锁存器为12位宽。
如果使用TL5615的级联功能,来自DOUT的数据需要输入16位时钟下降沿,因此完成一次数据输入需要 16个时钟周期,输入的数据也应为16位。
输入的数据中,前4位为高虚拟位,中间10位为D/A转换数据,最后2位为低于LSB的位即零。
2.3开关电路设计
开关电路如图所示:
图5.开关电路
开关输入引脚4、5、6分别与单片机的P3.2、P3.1、P3.0相连;由于P3口无论作为输入口使用还是第二功能信号的输入,锁存器输出和“第二输出功能”线都应保持高电平,所以开关的输出引脚1、2、3都必须与地相连。
开关一(S1):
输出三角波。
当开关S1打开时,信号输出端输出三角波;当S1关闭时,信号立即降为0V。
开关二(S2):
输出锯齿波。
当开关S2打开时,信号输出端输出锯齿波;当S2关闭时,信号立即降为0V。
开关三(S3):
输出正弦波。
当开关S3打开时,信号输出端输出正弦波;当S3关闭时,信号立即降为0V。
特殊情况:
当S1打开,输出三角波时,如果再打开S2或S3或同时打开S2、S3时,输出的信号将立即降为0。
这种情况同样适用于先打开S2或S3,再打开其余开关的场合。
三、系统软件设计
3.1系统软件流程图
系统软件流程图如图所示:
图6.系统软件流程图
3.2主控制器软件设计
主控制器AT89C52负责接收并处理来自开关的命令输入,驱动TLC5615当前波形的频率值或幅值,向波形产生模块发送当前波形的频率值数据,向幅值调节模块发送当前波形的幅值数据。
主控制器对开关的操作是通过不断地扫描来完成的,当有开关按下,并根据键值调用相应的功能函数。
主控制器其他功能的实现,也是分别调用相应的功能函数。
具体细节在后面每个模块的软件设计分析中详细介绍。
3.3波形产生模块的子程序设计
本模块设计实现的功能为:
接收来自主控制器的频率值数据,模拟DDS原理输出波形。
按照系统整体设计要求,本模块软件部分设计实现如下功能:
(1)三角波的输出
图7.三角波输出流程图
当程序进行波形选择时,单片机不断地扫描开关。
当检测到S1打开时,则程序进行下一环节——输出三角波;当再次检测到S1关闭时,则三角波信号停止输出,单片机会重新进行开关扫描,直到检测到有一开关打开。
(2)锯齿波的输出
图8.锯齿波输出流程图
当程序进行波形选择时,单片机不断地扫描开关。
当检测到S2打开时,则程序进行下一环节——输出锯齿波;当再次检测到S2关闭时,则锯齿波信号停止输出,单片机会重新进行开关扫描,直到检测到有一开关打开。
(3)正弦波的输出
图9.正弦波输出流程图
当程序进行波形选择时,单片机不断地扫描开关。
当检测到S3打开时,则程序进行下一环节——输出正弦波;当再次检测到S3关闭时,则正弦波信号停止输出,单片机会重新进行开关扫描,直到检测到有一开关打开。
四、实践运用
4.1开发工具及环境
4.1.1系统软件设计环境与步骤
51单片机系列的编程语言常用的有两种,一种是汇编语言,一种是C语言。
本文件系统采用单片机C语言实现,编译器为Keil uVision3。
KEIL公司的C51编译器DOS版本曾通过美国Franklin公司在市场上畅销多年,最早传入我国并得到广泛使用的是Franklin C51 V3.2版本。
随着时间的推移,KEIL公司的产品不断升级,V5.0以上版本C51编译器就配有基于Windows的uVision集成开发环境和dScope软件模拟调试程序。
现KEIL公司的编译器有支持经典8051和8051派生产品的版本,统称为Cx51。
新版本uVision3把uVision1用的模拟调试器dScope与集成开发环境无缝结合起来,界面更友好,使用更方便,支持的单片机品种更多。
因此,Keil uVision3是单片机程序开发的理想环境。
C语言,是一种计算机程序设计的语言。
它既具有高级语言的优势,又具有汇编语言的特点。
它既可以作为系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖硬件的应用程序。
因此,它的应用范围非常广泛,不仅仅是在各种软件开发上,而且各类科学研究都会用到C语言,一些具体应用,比如单片机以及嵌入式系统开发。
首先新建一个工程文件,点击“Project->New Project…”菜单,选择工程文件要存放的路径 ,输入工程文件名“***”, 最后单击保存。
在弹出的对话框中选择 CPU 厂商及型号选择好Atmel公司的AT89S52后,单击确定。
然后新建一个“***.C”文件,保存。
保存好后把此文件加入到工程中,再打开,输入本设计的总程序,再编译。
要生成“***.hex”烧写文件,先单击Options for Target,在框图中,我们单击 Output,选中Create HEX F,再单击“确定”。
打开文件夹‘***’,查看是否生成了HEX文件。
如果没有生成,在执行一遍步骤。
4.1.2系统硬件设计环境与电路的绘制
本次设计采用Proteus仿真工具及环境。
Proteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。
对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。
绘制电路图,首先单击绘图工具栏中的按钮,再单击对象选择按钮P,出现挑选元件对话框,在元件列表中左键选取AT89C52,在原理图编辑窗口中适当的位置单击左键,这样AT89C52就被放到原理图编辑窗口中了,同样放置TLC5615、DIPSW3、晶振、电解电容、电阻等须用到的电气元件及电源。
右击选元件后再左击即可编辑元件的属性,也可以右击后在快捷菜单中选择命令Edit Prorerties,然后设置元器件的参数。
然后进行元器件之间的连线,保存文件。
绘制电路图完成后,对AT89C51的属性进行编辑时要加入仿真文件,在Program File中单击出现文件浏览对话框,找出Keil编译程序后生成的***.hex文件,单击确定完成添加文件,单击OK退出。
点击运行按钮,进行仿真。
如若出现问题,进行调试。
4.2系统出现的问题:
本设计软件与硬件关系不是十分紧密,故在完成硬件及软件调试后,联调难度不大。
测试中,误差来源主要有以下几点:
(1)示波器本身在测量上存在误差。
(2)AT89C52参考时钟芯片晶振误差。
(3)由于布线非专业布线,未考虑到布线对信号的影响,且手工焊接质量难以保证,故此造成杂波频率叠加也会影响频率值精度。
4.3硬件静态的调试故障措施:
(1)排除逻辑故障
这类故障往往由于设计和加工制板过程中工艺性错误所造成的。
主要包括错线、开路、短路。
排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。
应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。
必要时利用数字万用表的短路测试功能,可以缩短排错时间。
(2)排除元器件失效
造成这类错误
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 信号发生器