当前位置:文档之家› 基于单片机的多功能信号发生器的系统设计与应用

基于单片机的多功能信号发生器的系统设计与应用

基于单片机的多功能信号发生器的系统设计与应用信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。

各种波形曲线均可以用三角函数方程式来表示。

例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。

在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。

随着集成芯片制造工艺的进一步发展,一些高性能的波形产生专用芯片逐渐被应用到该领域并获得成功。

波形发生装置的电路设计得到进一步简化,而与此同时,所产生的波形的质量却得到了显著提高。

例如应用比较广泛的DDS芯片AD9833系列,能制作出各种频带宽,质量高的波形信号,例如应用高性能的AD9833芯片,可以做出频率1GHZ以上,频率分辨率0.1HZ以下的优质波形[2]。

科技不断发展,在各个领域对信号产生电路提出了越来越高的要求。

以往那些只具有单一优势的波形发生装置的应用越来越受到限制。

例如用模拟器件构成的波形发生器电路简单可靠、信号频率较高,但可调节性差;采用数字电路为核心的波形发生装置所产生的信号可调节性好,但电路复杂,而频率又不易做的很高。

较为理想的波形发生装置应该同时具备多方面的优良品质,信号的频带应该较宽,而且步进精确。

另外,微型化也是信号产生装置的发展趋势之一,这样,才能将信号发生装置方便的嵌入到各种仪器设备中。

随着芯片制造工艺的不断提高,性能更高、体积更小的专用信号处理芯片必将会越来越多地应用到信号产生电路中,使更高质量的信号的产生成为可能。

DDS技术的实现,一般有如下几种可选的方案。

首先是使用专用的DDS芯片,例如应用比较广泛的DDS芯片AD9833系列。

专用DDS芯片性能可靠,特别是在高频领域,有着无可替代的地位。

但在中低频领域,专用DDS芯片却不一定是唯一的选择。

其次是基于可编程逻辑器件FPGA的实现方法。

这也是一种较为成熟的实现方法,FPGA 是把相应的逻辑“暂时”固化为硬件电路了,而且FPGA在编程使用时也十分灵活,因此,利用FPGA作为核心器件再辅以低通滤波等辅助电路就可以得到质量较高的波形信号[4]。

单片机以其体积小,功能齐全,价格低廉,可靠性高等方面所具有的独特优点,长期以来被广泛的应用在各个领域。

作为一种优秀的控制装置,当只要求波形发生装置工作在频率较低的频段时,用单片机取代专用DDS芯片和FPGA,通样可以得到频率精确可调的高质量的波形信号。

本系统将波形数据存放在单片机的存储器中,利用软件编程的方法模拟DDS原理,实现直接数字频率合成的功能[5]。

1 系统设计与方案论证1.1 信号发生器实现的功能本系统设计信号发生器欲实现的功能如下:(1)本系统需要设计显示器,用以显示当前信号发生器的波形类型,以及信号发生器输出波形的幅度及频率;(2)本系统需要设计键盘电路,用以调节信号发生器输出波形的幅度值和频率值;(3)本系统需要设计的信号发生器可以输出三种不同的波形,波形类型分别为矩形波、正弦波和三角波;(4)本系统需设计的信号发生器可以实现输出频率在1Hz和100MHz之间。

1.2 系统方案设计目前,波形发生器设计方案主要有以下几种:1.方案一用分立元件组成的函数发生器。

分立器件是相对于集成芯片而言的。

随着科学技术的不断发展,人们渐渐步入电子时代,分立器件也被也被广泛应用到消费电子、计算机及外设、网络通信,汽车电子、LED显示平等领域。

它包括:半导体二极管、半导体三极管、电容、电阻、逻辑器件、传感器、敏感器件以及装好的压电晶体类似半导体器件等。

用分立器件组成的函数信号发生器通常机构简单、成本较低。

但是由于元器件的分散性及环境条件的改变等因素,致使波形频率产生偏差,它通常是单函数发生器且平率不高,其工作不很稳定,不易调试[6]。

2.方案二制作函数信号发生器可用运放IC、晶体管等通用元器件。

晶体管、运放IC等通用器件均可以制作函数信号发生器,用专业的发生器产生信号则是普遍选择。

函数信号发生器IC在早些时候,如M8045、CA102、XR5547等,不仅精度不够高,功能也比较少,频率上限只有200kHz,若想产生更高的频率信号是难以实现的,再加上不够灵活的调节方式,频率,占空比无法单独调节。

由于用通用器件制作的信号发生器同样具有频率不高的缺点,因此,在本论文设计中,此种方案也不宜采用。

3.方案三利用专用直接数字合成DDS芯片制作的函数信号发生器。

DDS有如下优点:(1)速度快,可达到μs数量级;(2)频率分辨率较高,输出频点多,可达多个频点切换;(3)能够输出正交信号;(4)频率切换时能实现相位连续;(5)可以产生任意的波形;(6)输出噪声低,对参数频率源的噪声有改善作用;(7)全数字化实现便于集成,体积小,重量轻。

DDS芯片的时钟频率从几十兆赫兹到几百赫兹不等,芯片从一般功能到集成有D/A转换器和正交调制器[7]。

DDS有上述诸多优点,而且利用直接数字合成DDS芯片实现的函数信号发生器能够产生任意波形并达到很高的频率,克服了方案一、方案二的多数缺点,故本设计采用方案三。

1.3 系统模块设计思路根据毕业设计要求,以及方案的比较结果,拟采用DDS芯片实现设计内容。

本设计采用模块化思想,即将不同功能器件分别做成不同模块。

根据功能要求,共分为五大模块:输入模块、显示模块、造波模块、调幅模块和控制模块。

其中输入模块为键盘,输出模块为LCD1602液晶显示器。

1.3.1 主控模块的选择方案一:用单片STC89C52作为系统的主控核心。

单片机具有体积小,使用灵活的,易于人机对话和良好的数据处理,有较强的指令寻址和运算功能等优点。

且单片机功耗低,价格低廉的优点。

方案二:C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。

片内集成了控制系统和数据采集中常用的模拟部件和其他数字外设及功能部件,还具有标准8052的数字外设部件,而且执行速度快,但其价格较贵。

在此系统中,采用STC89C52单片机作为控制比采用C8051F005单片机、FPGA实现更简便。

基于综合性价比,确定选择方案一。

1.3.2 显示模块的选择方案一:采用LED数码管。

LED数码管由8个发光二极管组成,每只数码管轮流显示各自的字符。

由于人眼具有视觉暂留特性,当每只数码管显示的时间间隔小于1/16s 时人眼感觉不到闪动,看到的是每只数码管常亮。

使用数码管显示编程较易,但要显示内容多,而且数码管不能显示字母。

方案二:采用LCD液晶显示器1602。

其功率小,效果明显,显示编程容易控制,可以显示字母。

优点是显示信息非常丰富,可以很形象的显示信号发生器的各个参数。

占用的I/O资源比较少,不需要循环扫描,节省了大量的程序开销。

以上两种方案综合考虑,本设计选择方案二。

1.3.3 功率放大模块的选择方案一:采用多级放大电路。

由两个晶体管构成共射——共集放大电路如图1.3所示,第一级起到电压放大作用,达到正弦信号峰-峰值输出,第二级为跟随器,主要为了能够带50欧的负载,使其负载上的正弦信号的输出电压的峰-峰值达到题目的要求。

此电路只是在调试选定具体参数中比较麻烦,但工作比较稳定,比较易于实现。

图1.3 共射-共基放大电路的交流通路方案二:采用可变增益放大器。

增益放大器直接与AD9833相接,用来实现电压的放大并且控制波形的失真,精确度高,且较稳定,实现简单。

系统可以采用AD603,这种芯片具有程控增益调整功能。

是一个90MHz带宽增益可调、低噪的集成运放,如用分贝表示增益,则控制电压与增益成线性关系,压摆率为275V/μs。

可编程的增益范围由管脚间的连接方式决定,增益在-11~+30dB时的带宽为90Mhz,增益在+9~+41dB 时具有9MHz带宽,改变管脚间的连接电阻,可使增益处在所需范围内[10]。

综上所述,本设计采用方案二。

1.4 开发工具和开发环境本文件系统采用单片机C语言实现,编译器为Keil uVision2。

C语言具有可读性好的优势,更容易使大家相互借鉴,提高自己的程序设计水平。

C语言具有模块化程序结构的特点,使程序模块化,不断丰富。

采用C语言,可针对常用的功能模块、算法等编制相应的函数可针对单片机,常用的接口芯片编制通用的驱动函数。

这些函数经过整理可形成库函数,供广大的单片机爱好者使用和完善。

目前,8051系列单片机上的C语言的代码长度,在未加入优化的条件下做到了最优汇编程序水平的1.2—1.5倍,达到了中等程序员的水平。

在仿真器水平提高的前提下,优化水平还会继续提高。

在软件质量和开发速度及结构严谨性等方面,C语言的优势绝非汇编语言所能比拟[11]。

KEIL公司的C51编译器DOS版本曾通过美国Franklin公司在市场上畅销多年,最早传入我国并得到广泛使用的是Franklin C51 V3.2版本。

随着时间的推移,KEIL公司的产品不断升级,V5.0以上版本C51编译器就配有基于Windows的uVision集成开发环境和dScope软件模拟调试程序。

现KEIL公司的编译器有支持经典8051和8051派生产品的版本,统称为Cx51。

新版本uVision2把uVision1用的模拟调试器dScope与集成开发环境无缝结合起来,界面更友好,使用更方便,支持的单片机品种更多。

因此,Keil uVision2是单片机程序开发的理想环境[12]。

1.5 系统设计总框图本系统的设计总框图如图1.4所示。

图1.4 系统总体框图本系统主要包括以下几个模块:主控制器及其接口电路模块,键盘及液晶显示模块,波形产生模块,幅值调节模块。

其中,主控制器负责接收并处理来自键盘的命令输入,驱动液晶显示当前波形的频率值或幅值,向波形产生模块发送当前波形的频率值数据,向幅值调节模块发送当前波形的幅值数据,以此实现对整个系统的统一协调管理。

2 系统硬件电路设计根据系统框图可知,本系统的硬件电路设计应包括单片机最小系统设计、信号发生模块设计、显示电路设计、D/A转换电路与功率放大模块设计和按键提示电路设计等。

2.1 单片机最小系统设计单片机最小系统是指在保证控制器正常工作的前提下,所需的最小计硬件电路,它主要包括:晶振电路、复位电路、供电电路。

晶振电路在单片机系统中的作用非常大,它为单片机电路内部工作提供时钟频率。

时钟频率越高,系统工作越快,它是单片机内部一切指令的时钟基础。

在正常条件下,普通的晶振频率绝对精度可达百万分之五十,可靠性很高,通常外部晶振电路与系统内部锁相环电路配合使用,用来提供系统所需的时钟频率。

对于级联系统,如果不同子系统需要不同频率的时钟基准信号,可以用与同一个晶振相连的不同锁相环来提供。

相关主题