基于51单片机的波形发生器设计_本科毕业设计(论文)(编辑修改稿)内容摘要:

装置系统,它由HP8770A 任意波形数字化和 HP1776A 波形发生软件组成。 传统的波形发生器产生的波形比较单一,如正弦波、方波、脉冲波、三角波等。 随着科学实验研究的需求的不断发展,对波形种类的需求也 呈现出多样化的趋势。 如电子设备的性能指针测试中就需要能提供一些非常规的测试信号的信号源,即能产生现场所需要波形的任意波形发生器 (Arbitrary Waveform Generator, AWG)。 早期的任意波形发生器主要着重音频等低频频段,现在的任意波形发生器已扩展到射频频段,目前任意波形发生器的带宽可以达到 2GHz,足够仿真许多移动通信、卫星电视的复杂信号。 任意波形发生器的典型代表为 Lecroy 公司生产的的 9100 任意波形发生器 [2]。 现今市场上技术比较成熟的波形发生器产品有:安捷伦公司生产的33250A 函数任意波形发生器,其输出频率宽度范围为 1μHz80MHz,可应用于各供不同频段的设计。 该公司生产的 8648D 射频信号发生器大量应用于超高频的工业设计领域,频率宽度范围高达 9KHz4GHz[3]。 167。 选题意义 虽然我国对于波形发生器的研制起步较晚,但是通过几年的努力也取得了一些可喜的成果。 国产 SG1060 数字合成信号发生器可以双通道同时输出高分辨率、高精度、高可靠性的各种波形,其频率覆盖范围为 1μHz60MHz。 国产 S1000 数字合成扫频信号发生器的频率范围为 1MHz1024MHz,可应用于超高频领域。 但是总的来说,这些设计产品价格昂贵主要应用于航空、军事等高端领域,在日常民用方面并没有形成自己真正的产业。 目前国内成熟的产品多位一些 PC 仪器插卡,独立仪器少之又少。 并且我国现今的任意波形发生器的种类和性能与国外相比仍有很大差距,因此对此内产品的研究设计仍具有重要意义。 河南科技大学本科毕业设计(论文) 4 167。 本文研究的主要内容 本次设计的任务是运用新一代高性能数字芯片设计一种使用方便,性能良好的独立式波形发生器。 该波形发生器系统采用 51 单片机进行控制,DAC0832 芯片进行 D/A 转换。 本次设计所实现的基本功能如下: ( 1) 能够产生正 弦波、三角波、锯齿波和方波四种波形。 ( 2) 扩展有键盘模块用于对对波形类型、频率和 峰峰值 进行设定。 ( 3) 扩展有显示输出模块显示当前输出波形的类型、频率和 峰值 信息。 本篇论文主要讨论的是波形发生器设计的方案选择,系统硬件电路设计问题,单片机软件和生成常用波形软件编写问题,以及对本次设计中的主要芯片的介绍。 另外,本文还 分散的 对本次设计所采用的两种设计方案( 程控波形发生器设计 和基于硬件的波形发生器设计)的特点进行比较说明,并对两种设计的应用前景进行阐述。 167。 章节安排 本文对基于单片机的波形发生器设计进行了详细的说明,共分 六章。 第一章主要介绍了课题的研究背景、发展、意义,设计的整体内容以及任务安排。 第二章对设计前的系统方案以及各模块的实现方案进行比对和选择,从而确定出最终的两种设计方案,即程控波形发生器设计方案和硬件波形发生器设计方案。 第三章对本次设计所使用的主要芯片如 89C51 单片机、 8255A[3]、DAC0832 等进行了介绍,并且对这些芯片在系统设计运用的功能给予简要说明,在本章最后对系统设计所使用的开发软件予以介绍。 第四章对系统两种设计方案的硬件电路各模块的设计及工作方法分别进行详细介绍。 第五章对两种设计方案的各程序 模块的设计及流程图分别予以详细的说明。 第六章主要分为 4 个部分,首先对 PCB 设计进行了简要说明,然后对系统仿真结果及误差进行分析,接着对系统实现的功能及不足进行综合说明,组后对系统的可行性进行分析说明。 在文章的最后还附录了软件程序、硬件电路图和 PCB图。 河南科技大学本科毕业设计(论文) 5 第 2章 波形发生器系统方案设计及选择 167。 总体方案选择 波形发生器的设计可以通过多种方案来实现,在设计之前需要对各种设计方案进行比较和选择: 方案一:采用分立元件构成非稳态的多谐振荡器,然后根据所需波形的要求加入积分电路等构成波形发生器,如图 21 所示。 U0 输出为正弦波、U1 输出为方波、 U2 输出为三角波,三种波形输出频率相同。 通过调节第一级运放的 RC 参数,可以改变频率。 图 21 采用分立元件构成的简易波形发生器 方案二:采用单片机控制的单片函数发生器(如 8038 芯片)来进行波形发生器的设计。 8038 可以同时产生方波、三角波和正弦波专用集成电路 [4]。 方案三:利用专用直接数字合成 DDS 芯片去实现波形发生器的设计。 例如 专门用于波形发生器 的集成微处理器 8XC196MC/MD单片机可以直接产生高频率的各种常用信号波形 [5 ]。 方案四:对 51 单片机进行编程,在单 片机 ROM 中写入各种波形子程序,使其根据按键设定产生相应的波形数据,波形数据送入 D/A 转换芯片DAC0832 从而输出相应的波形。 我将此种方法称作 ―程控波形发生器设计 ‖[6]。 方案五:对 51 单片机进行编程,在生成波形之前单片机将各波形的离散数据写入 SRAM 中,随后由外部时钟控制 SRAM 将波形数据输送给 D/A转换器从而生成波形。 我将此种方法称作 ―硬件波形发生器设计 ‖ [7]。 河南科技大学本科毕业设计(论文) 6 对以上五个方案进行比较,可以得出如下结论: 方案一由于采用分立元件, 模拟信号容易受到干扰 难以保证高的精度(如放大器有饱和失真、截止失真 、交越失真,集成电路难免有零点漂移),且结构复杂,设备体积较大,不便于波形参数的调节。 方案二简单易行,但是 8038 产生的波形容易寄生高次谐波分量,且频率的稳定性差。 方案三虽然集成度高,生成的波形质量高,但是硬件成本较高。 方案四和方案五基于 51单片机设计软硬件结合,硬件成本低,软件起点低,优化型相对比较好,设计时间短,成本低,可靠性高,且满足设计要求。 方案四 ―程控波形发生器设计 ‖[8]是运用软件编写波形子程序,并通过单片机将数据向 D/A 转换器的传输。 这种方案如 节所说只能产生不高于10KHz 的波形,因此 只可用于低频波形发生器的设计。 但是此种方案所生成的波形完全由程序实现,所以 峰峰值 和频率在一定范围内连续可调,而且可以添加键盘和显示功能模块来提高人机交互性,这使得此种方案设计更接近于一个完整的系统。 基于这些考虑,此种设计产品仍有很大的应用前途,例如,用于实验教学的信号源或低频段的工业设计。 方案五 ―硬件波形发生器设计 ‖[9]首先它运用单片机将波形数据写入SRAM 中,然后由外部时钟源控制 SRAM 向 D/A 转换器输送数据进行转换。 这种方案生在单片机写入波形数据到 SRAM 后就解放了工作任务,剩下的波形输出任务完全由 外部时钟源控制,所以输出波的频率由外部时钟决定。 因此只要外部时钟源允许就可以生成任意频率的波形。 但是这也就带来了一个问题:如果要求对波的频率进行调节就需要更换外部时钟源。 由于这个问题也就造成了此种方案无法像方案四中那样实现频率的连续可调。 但是考虑到在实际的工业设计中所需的波形频率是有限的,针对特定的系统我们可以通过分频得到多个频率来满足系统的要求。 并且本方案中单片机在后期处于闲置状态,这时单片机作为控制器可以去完成更多的功能,如时钟显示功能,可见此种方案具有很好的可扩展性。 基于这些考虑,本方案的设计适于作为一个大系统中的波形发生器子系统,如雷达系统的波形发生器。 综上所述,本次设计采用方案四和方案五进行两种不同应用领域的波形发生器设计。 两种设计 方案 的具体实施在下文中将会分别予以介绍。 河南科技大学本科毕业设计(论文) 7 167。 子系统模块方案选择 本节对 本次设计中起主要作用的控制器、调频模块、调幅模块、按键模块、显示模块、 D/A 转换器和 SRAM 的设计方案和选型方法进行了具体的阐述。 下面分别予以介绍。 167。 控制器的选择 本次设计中提供了三种控制器方案,具体阐述如下: 方案一:选用 89C51 单片机作为控制器。 方案二:选用 FPGA、 CPLD 等可编程器件组 合构成控制模块 [10]。 方案三:选用专用于波形发生器的集成微处理器 8XC196MC/MD 作为控制器。 对以上方案综合比对,可以得出如下结论: 方案二中的 FPGA 可以实现各种复杂的逻辑功能,且具有密度高、速度快、稳定性好等优点。 但是 FPGA 在掉电后会丢失当前数据,需要增加额外的程序开销。 并且 FPGA 具有数字逻辑器件所共有的问题 ——竞争和冒险,所以设计时必须考虑抗干扰性。 另外 FPGA 相对于单片机的编程起点较高,增加编程的难度。 方案三中的专用处理器生成的波形频段宽,稳定性好,精度高,执行速度快,且编程简单,不需 要外围硬件电路,但是芯片价格昂贵。 方案一中 51 单片机使用灵活,软件起点低,功耗低,价格低廉,但是必须配合一定的外围硬件电路才能实现波形发生器的功能(其实外围电路并不复杂)。 从电路结构复杂程度和成本角度及综合性价比考虑,确定选择方案一。 167。 调频方案设计 本次设计提供了两种调频方案的构思,具体阐述如下: 方案一:通过硬件电路控制离散波形数据的输出速度从而实现频率的改变。 将外部时钟信号经过不同的分频作为储存离散波形数据的 SRAM 的输出译码地址,使 SRAM 按照一定的时间间隔输出波形数据给 DAC 进行转换。 河南科技大学本科毕业设计(论文) 8 通过外部 时钟分频器的设置来选择波形的频率档位。 (具体方法参见第四章 节 ) 方案 二 :通过对单片机的定时器(具体参见第三章 节第 3 部分 )的编程来实现调频。 将一个周期的波形数据离散成 256 个采样点数据(具体方法见第五章 节 ),然后令微处理器的累加器 A 自身循环增加,没增加一次即向 DAC 送出一个波形采样数据,并启用一次定时器延时。 当 8 位累加器 A 的内容达到最大的计数值 255 时在自增一次就变成最小值零,然后可以继续增加。 如此,周而复始就可以从 DAC 得到要求的波形输出。 当然通过对定时器初值的设定可以改变波形 的频率。 例如,单片机的晶振频率fOSC=12MHz,定时器采用方式 1,若产生周期为 T 的波形,定时器初值的计算方法如下: 单片机机械周期 Tmec 为: 61 2 1 2 1012O S CT m e c sf M H z    (21) 定时器初值 TC 为: / 25 62 L TTC Tmec (22) 定时器初值高位 TCH 为: / 256TCH TC (23) 定时器初值低位 TCL 为: 256T C L T C T C H   (24) 当要获得 1Hz 的波形时,按照上述方法可以算出: TC=61630, TCH=240, TCL=190 但是此种方案最大计数值为 65536,最小计数值为 1,所以决定了此种方法所能得到的波形的上限频率 fMAX 为: 1 3906256M A Xf H zTm e c (25) 下限频率 fMIN 为: 河南科技大学本科毕业设计(论文) 9 1 0 . 0 66 5 5 3 6 2 5 6M I Nf H zTm e c (26) 需要说明的是以上上限下限频率是对于将一周期波形离散成 256 个数据点的正弦波和锯齿波而言的。 对于三角波本次设计是将一个周期的波形离散成 512 个波形数据,所以能得到的波形的上限频率 fMAX 为: 1 1953512M A Xf H zTm e c (27) 下限频率 fMIN 为: 1 0 . 0 36 5 5 3 6 5 1 2M I Nf H zT m e c (28) 对于方波本次设计是将一个周期的波形离散成 2 个波形数据( 0 和 255),所以能得到的波形的上限频率 fMAX 为: 1 5002M A Xf KH zTm e c (29) 下限频率 fMIN 为: 1 7 . 6 36 5 5 3 6 2M I Nf H zTm e c (210) 可见方波输出的下限频率过高,所以进行方波的低频输出时需要进行特别的程序处理, 具体参见第五章 节方波子程序部分。 对以上方案综合比对,可以得出如下结论: 方案一主要是靠硬件实现调频,无上限频率和下限频率的限制,且频率的误差度可以忽略不计,但是频率的选择只可是外部时钟源的整倍数分频(如2 分频、 4 分频等),不可实现频率的连续可调。 方案二是靠软件来实现调频,综合可以看出此种方案的有效频段为 到 1953Hz,在此范围内输出波形频率连续可调。 但是由于输出高频时受到软件执行(例如对定时器的重新赋值指令需。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。