基于单片机与FPGA的实用信号源的设计.doc_第1页
基于单片机与FPGA的实用信号源的设计.doc_第2页
基于单片机与FPGA的实用信号源的设计.doc_第3页
基于单片机与FPGA的实用信号源的设计.doc_第4页
基于单片机与FPGA的实用信号源的设计.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机与fpga的实用信号源的设计熊旭生 (吉首大学物理科学与信息工程学院,湖南 吉首 416000)摘 要本设计的目的在于设计出一个具有实用价值的、性能较高的信号源。该信号源输出信号精度高,稳定性好,可实现数控调频、调相和波形选择。选用altera公司的epf1ok10lc84芯片作为数字处理主芯片、 atmel公司的at89c51单片机作为控制芯片,采用直接数字频率合成技术开发了一种新的实用信号源。利用max+plus ii 10.0并结合vhdl语言设计fpga,利用wave 6000并结合汇编语言设计mcu。经模拟仿真达到了预期的性能要求。证明采用软硬结合,利用dds技术设计信号源的方法是可行的。 关键词:信号源;直接数字频率合成;eda;fpga;单片机 the design of practical signal sourcebased on mcu and fpgaxiong xu-sheng(college of physics science and information engineering,jishou university,jishou 416000,hunan china)abstractthe purpose of the design is to design a signal source which is practical and high performance. the output of the signal source has high precision, good stability, and it can realize the numerical control of frequency and phase modulation, and selects waves. the epf10k10lc84 of the altera corporation is the chief chip which processes the digital signal, and the atmel at89c51 is the control chip. we develop a new kind of practical signal source from the direct digital frequency synthesis technology. we design the fpga in vhdl language with the max+plus ii 10.0,and design mcu with wave 6000 using assembly language. it has achieved the anticipated performance requirement after the analog simulation. it is proved that the designation of the signal source with the dds technology through the combination of the software and hardware is practicable. key words: signal source;dds;eda;fpga;mcu 目 录第一章 引言(1)1.1信号源的功能、特点和现状(1)1.2基于单片机和fpga的实用信号源的设计(2) 1.2.1设计的意义(2) 1.2.2 设计实现的功能(2) 1.2.3 设计的原理(2)第二章 信号源的设计技术(4) 2.1 频率合成技术的发展(4) 2.1.1 频率合成技术(4)2.1.2 频率合成技术的技术指标(5) 2.1.3 dds(直接数字合成)技术理论 (5)2.1.4 dds设计原理和结构 (5)2.2 eda技术与fpga器件(5)2.2.1 eda技术 (6) 2.2.2 fpga器件 (7)第三章 系统硬件电路实现 (7)3.1 系统硬件结构图 (8) 3.2 at89c51单片机介绍 (8)3.2.1 at89c51的性能 (8)3.2.2 at89c51的时钟电路 (8)3.2.3 at89c51的复位电路 (9)3.3 fpga芯片在系统电路中应用与设计 (9)3.3.1 fpga芯片的特性(10)3.3.2 芯片的应用功能及使用配置(11)3.4 外设及接口电路实现 (11) 3.4.1 液晶显示 (13)3.4.2 串口通信 (13)3.4.3 波形生成电路 (13)3.5 整体设计结构 (14)3.6 设计模块的划分和各模块设计、仿真 (16)3.6.1分频模块(counter_24) (17)3.6.2相位累加模块(phase_adder) (17)ii 3.6.3 相位锁存模块(phase_register) (18)3.6.4频率累加模块(adder_12) (18) 3.6.5 查找表模块(lmp_rom_sin) (18)3.7 芯片引脚功能定义 (19)第四章 控制系统软件设计 (20)4.1 各级菜单的设计 (20) 4.2 系统软件设计 (20) 4.2.1主程序设计及流程(21) 4.2.2 自检子程序 (21) 4.2.3 键盘扫描子程序 (22)4.2.4 串口通信子程序设计(23) 第五章 电路调试 (25)5.1 dds电路的模拟仿真 (25) 5.2 低通滤波器的设计 (26) 第六章 系统误差分析与改进措施 (28) 6.1 系统误差分析 (28)6.2 系统的改进措施(27)第七章 结语(30) 致谢 (31) 参考文献 (32)基于单片机与fpga的实用信号源的设计 引言 第一章 引言1.1 信号源的功能、特点和现状信号源是现代一些电子系统中不可缺少的一部分。在系统没有外部信号输入时,由其产生一组编码方式和实际接收信号完全相同的理想数据流,用来替代外部实际信号。它可用于系统的测试、自检、故障分析,也可用于理想试验。因此设计一个好的信号源非常重要13。传统信号源的电路基本上是由运算放大器和一些外接阻容元件组成的振荡电路,电路调试困难,工艺结构复杂,且对阻容元件参数的选择要求严格;另外,由于阻容元件的稳定性差,加上频率、相位的调节和换档是通过按钮改变桥路阻值来实现的,所以,其可靠性不高,难于保证输出的信号频率和波形的精确度,因而其应用范围受到一定的限制。采用直接数字频率合成技术的信号源与以往的射频信号源、锁相信号源和模拟频率合成信号源相比较,具有电路简单、所用阻容元件少、性能可靠、输出信号的波形频率精度和准确度高、易于程序控制和调试的优点。目前,利用直接数字频率合成技术制成的信号源概括起来有4种形式:采用微处理器和数模转换器组成的数字式低频信号源;利用dsp(digital signal processing,数字信号处理器);运用单片机、计数器、只读存储器、d/a转换器和滤波器等组成的信号源;利用单片机与精密函数发生器构成的程控信号源14。 自从90年代以来,单片机以其灵活的控制、丰富的接口在我国得到了广泛的应用。然而,单片机本身也有自己的缺点和不足。首先,单片机采用软件实现控制,这就决定了其低速性和处理的顺序性。其次,单片机接口终究有限,如果扩展,必须增加大量的外围电路,这就增加了子系统的复杂性,从而增加电路板的面积和布线的复杂度,导致系统的不稳定性增加。fpga(field programmable gate array,现场可编程门阵列)的出现弥补了这一不足。fpga采用硬件实现逻辑,其处理速度比单片机高两个数量级;再则,fpga的功能可以采用软件任意实现,这样,它可以实现所有数字外设的功能,节省大量外设,从而节省空间,增加系统的稳定性。本设计充分利用了单片机灵活的控制、丰富的外设处理能力和fpga器件的快速性、外设的替代性,采用最新的dds(direct digital frequency synthesis,直接数字频率合成)技术,实现频率、幅值可调的任意波形的输出。本信号源相对于传统的信号源具有体积小、可靠性强、准确度高等特点。采用fpga设计的信号源较采用专用芯片的信号源更灵活。因为,只要改变fpga中的查找表数据,dds就可以产生任意波形,因此具有相当大的灵活性。此外,fpga的功能完全取决于设计需求,可以复杂也可以简单,而且fpga芯片还支持在系统现场升级,虽然在精度和速度上稍有不足,但也能基本满足绝大多数系统的设计要求。另外,将dds设计嵌入到fpga芯片所构成的系统中,其系统成本并不会增加多少。本设计由于受到d/a转换器及运放速度的限制,只能输出最大频率为几十千hz的波形,如果采用高速d/a转换器和高速运放,可以实现几十mhz的输出。1.2 基于单片机和fpga的实用信号源的设计1.2.1设计的意义近些年来,对信号源的要求随技术的发展越来越高,以往的信号源只可输出单一的正弦或几种如三角、正弦、脉冲、方波等波形,且一台仪器的输出频率也较窄,一般只是在超低频或低频范围,波形的精度和稳定度等重要指标都不是很高。信号源有很多种,包括正弦波信号源、函数发生器、脉冲发生器、扫描发生器、任意波形发生器、合成信号源等15。本设计的目的在于设计出一个具有实用价值的,性能较高的信号源。该信号源输出信号的波形类型、频率、幅度、相位由使用者自行设置。1.2.2 设计实现的功能 本设计完成的信号源具有以下几个功能:(1)实现方波、矩形波、梯形波、锯齿波、三角波、正弦波、余弦波、指数波等任意波形的输出。 (2)输出波形频率、幅值、相位连续可调,输出波形频率最低可以达到0.0l hz,最大频率受器件性能限制。最小分辨率可以达到0.01 hz,输出波形幅值范围05v(峰峰值),可按步进0.1 v(峰峰值)调整。 (3)实现自定义波形的输出。 (4)能够采集波形,将采集的波形输出,实现波形的复制再现。 (5)具有非易失性存储器,能够存储十个波形的数据,能保存所采集的波形。1.2.3 设计的原理本设计采用dds技术,该技术是一种用数字控制信号的相位增量技术,具有频率分辨率高、稳定性好、可灵活产生多种信号的优点。基于dds技术的信号源是通过改变相位增量值(每个时钟周期的度数)来改变输出频率的。所有相位点的数据都放在查找表中。采用插值描点的方式,将要产生的波形用若干个点代替,然后依次输出,每个点的电平由查找表中的相应点的数据经过d/a得到。这个过程相当于采样保持及a/d转换的逆过程。将经过d/a转换器产生的波形经过低通滤波,就得到了所需要的波形。控制d/a转换器的参考电压,就可以实现幅值可调;控制两个插值点之间的相位,就可以实现频率可调13。本设计的控制器利用单片机完成,dds合成芯片利用fpga实现。单片机通过键盘进行人机交互,获得欲输出信号的波形,幅值,频率,或者,通过a/d转换器获得欲再生的波形;然后,将生成波形的参数送给fpga芯片,并控制启动fpga芯片工作。fpga芯片控制基准电源产生合适电压,作为d/a转换器的参考电压,然后从查找表中获得数据,送到d/a转换器,送出一个点的数值。依次处理完查找表一个周期数据后,再重新开始,输出下一个周期的波形。经过d/a转换的信号再经过低通滤波,滤掉插值频率和高次干扰波,就可以得到需要的任意波形。控制单片机上外接的a/d转换器和片外的eeprom,即可实现波形的采集与存储。根据设计要求、实际需要及实验室条件,相应地选择了以下器件及设计工具。在进行系统硬件电路设计时,选用atmel公司的at89c51单片机作为控制主芯片、altera公司的epf10k10lc84作为dds合成fpga芯片。选择capture cis设计系统电路的原理图,选择powerpcb 5.0设计pcb图,选择pspice软件和matlab软件进行模拟仿真。在进行fpga芯片设计时,选用了altera公司的max+plus ii 10.0 工具作为芯片设计平台,选择vhdl硬件描述语言进行设计;在进行单片机设计时,选用wave公司的wave6000和汇编语言进行设计。33基于单片机与fpga的实用信号源的设计 信号源的设计技术 第二章 信号源的设计技术2.1 频率合成技术的发展目前,频率合成的基本方法主要有3种:直接式频率合成(direct frequency synthesis,ds),间接式频率合成(indirect frequency synthesis,ifs),直接数字频率合成(direct digital frequency synthesis ,dds)。在设计信号源时,应该根据系统性能指标要求,综合三种基本方法,设计性能更好的信号源。2.1.1 频率合成技术频率合成是指以一个或多个参考频率源为基准,在某一频段内,综合产生并输出多个工作频率点的过程。基于此原理制成的频率源为频率合成器,简称频综。频率合成技术是现代通讯电子系统实现高性能指标的关键技术之一,很多电子设备的功能实现都依赖于所用频率合成器的性能,因此人们常将频率合成器比喻为众多电子系统的“心脏”,而频率合成理论也因此在二十世纪得到了飞跃的发展。2.1.2 频率合成技术的技术指标频率合成技术有着诸多技术指标,这些技术指标决定了频率合成技术的特性及优缺点,下面介绍一些基本得频率合成技术的技术指标22。频率范围:频率合成后生成频率的波动范围,由最小合成频率和最大合成频率决定,合成的频率介于两者之间。也常用相对带宽来衡量频率范围。 (2.1.2)分辨率: 频率合成后两相邻相位点之间的间隔,不同要求的频率合成对分辨率的要求差别很大。切换时间:从发出频率切换的指令开始,到频率切换完成,并进入允许的相位误差范围所需要的时间。它与频率合成的方式密切相关。谐波抑制与杂散抑制:谐波抑制是指载波整数倍频率处单根谱线的功率与载波功率之比,而杂散抑制指与载波频率成非谐波关系的离散谱功率与载波功率之比。它们表征了频率输出谱的纯度。频率源中的谐波和杂散主要由频率源中的非线性元件产生,也有频率源内外干扰的影响,还与频率合成的方式有关。长期频率稳定度:频率源在规定的外界条件下,在一定的时间(年、月、日)内工作频率的相对变化,它与所选用的参考源的长期频率稳定度相同。短期频率稳定度:主要指各种随机噪声造成的瞬时频率或相位起伏,即相位噪声,它可以用频域(单边带相位噪声谱密度)和时域(阿仑方差)来表征。2.1.3 dds(直接数字合成)技术理论dds技术是一种用数字控制信号的相位增量技术,具有相位连续、频率分辨率高、频率转换速率快、稳定性好、可灵活产生多种信号的优点。它采用插值取样的方式,将要合成的波形用若干个点代替,然后依次等时间间隔输出,每个取样点的电平由预先存贮好的数据经过d/a得到。这个过程相当于采样保持及a/d转换的逆过程。控制两个取样点之间的时间间隔及相位,就实现了频率连续可调。dds由于具有极高的频率分辨率,极快的变频速度,变频相位连续,相噪较低,易于功能扩展和全数字化便于集成等优点,因此在短短的二十多年里得到了飞速的发展和广泛的应用21。2.1.4 dds设计原理和结构图2.1.4是dds原理的电路结构图13:相 位累 加器(pr) 频 率控 制器(fc) 查 找 表(lut) 数 模变 换器 (dac) 低 通滤 波器(lpf)输 出频 率 时钟图2.1.4 dds原理的电路结构图其主要部件完成功能如下:(1) 相位累加器(phase register)功能是控制每次采样的相位增量,并输出模2的累积相位,相位累加器可用一累加器完成,当累加器是位字长时,则=,将一整周期的相位分割成最小相位增量为=2/的个离散相位,它们的代码为01。(2) 频率控制字fc(frequence control)决定了每次累加的相位增量,假设系统参考时钟频率为,则输出频率,其中k为频率控制字。可见,当一定时,输出频率大小仅取决于k。当k1时,频率分辨率,可见相位累加器的值决定了频率分辨力的大小。如果50 mhz,=32,则5.0/0.011625 hz。2.2 eda技术与fpga器件2.2.1 eda技术eda(electronic design automatic,电子设计自动化)技术研究的对象是电子设计的全过程,有系统级、电路级和物理级各个层次的设计;涉及的电子系统从低频、高频到微波,从线性到非线性,从模拟到数字,从通用集成电路到专用集成电路构造的电子系统。因此,eda技术研究的范畴相当广泛。eda是一种实现电子系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,是20世纪40年代初从cad( computer aided design,计算机辅助设计)、cam( computer aided manufacture,计算机辅助制造)、cat( computer aided test,计算机辅助测试)、cae( computer aided education,计算机辅助工程)的概念发展而来的。eda技术就是以计算机为工具,在eda软件平台上,根据硬件描述语言hdl完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局线、仿真,直至对于特定目标芯片的适配编译,逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在eda工具的帮助下和应用相应的pld器件,就可以得到最后的设计结果。尽管目标是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。当然,这里所谓eda主要是指数字系统的自动化设计,因为这一领域的软硬件方面的技术已经比较成熟,应用的普及程度也已比较高。而模拟电子系统的eda正在进入实用,其初期的eda工具不一定需要硬件描述语言。此外,从应用的广度和深度来说,由于电子信息领域的全面数字化,基于eda的数字系统的设计技术具有更大的应用市场和更紧迫的需求性。2.2.2 fpga器件随着微电子技术与工艺的飞速发展,可编程逻辑器件的发展取得了长足的进步。从早期的只能存储少量数据,完成简单逻辑功能的prom, eprom, eeprom,到今天己经发展成可以完成超大规模的cpld(complex programmable logic device,复杂可编程逻辑器件)和fpga。随着工艺技术的发展与市场需要,超大规模、高速、低功耗的新型fpga不断推陈出新。新一代的fpga甚至集成了cpu(中央处理器)或dsp(数字处理器)内核,在一片fpga上进行软硬件协同设计,为实现sopc(system on programmable chip,片上可编程系统)提供了强大的硬件支持。fpga已经成为pld器件的主流4。fpga一般由三种可编程电路和一个存放编程数据的sram组成,这三种可编程电路是:可编程逻辑块clb(configurable logic block)、输入/输出模块iob(i/o block)和互连资源ir(interconnect resource)2。fpga器件具有下列优点:高密度、高速率、系列化、标准化、小型化、多功能、低功耗、低成本、设计灵活方便,可无限次反复编程,并可现场模拟调试验证1。 基于单片机与fpga的实用信号源的设计 系统硬件电路实现 第三章 系统硬件电路实现3.1 系统硬件结构图硬件设计中,所遵循的原则是:尽量使电路简单和模块化,并充分利用软件智能化功能。因为硬件多了,不但增加体积和成本,而且也使系统的可靠性和性价比下降。本设计遵循这一原则,在实现硬件电路功能的前提下,尽量简化硬件电路设计,并将设计清晰地分成多个模块。系统的硬件结构图如图3.1所示。89c51单片机 altera epf10k10 信号源生成电路 fpga芯片dac0832基准电源dac0832低通滤波器串口通信振荡电路复位电路外接eeprom键盘输入lcd 显示时钟电路采样电路输出图3.1 系统的硬件结构图整个系统设计分为控制电路和数据处理电路两大部分,控制电路以atmel公司的at89c51单片机为核心,加上一些外围电路组成,主要完成人机对话、数据接口、显示信息以及控制数据处理电路工作等功能。数据处理电路以altera公司的fpga芯片为核心,结合d/a转换器以及低通滤波器,实现dds数据处理,完成任意波形的输出。 整个系统的工作过程是:首先单片机通过串口通信或键盘输入得到命令,然后将要生成波形的参数数据送入fpga芯片,最后控制启动fpga芯片工作。fpga芯片完成dds数据处理功能。将波形幅值数据送入第一个d/a转换器,其输出作为第二个d/a转换器的参考电压,以达到控制输出波形幅值的目的。将波形数据送入第二个d/a转换器,以实现任意波形的输出。 3.2 at89c51单片机介绍在图3.1中,我们可以看到控制电路的核心是单片机,整个信号源的采集、控制、通信、启动dds处理芯片等任务都是通过单片机来管理和协调的,因此单片机及外围电路的设计非常重要。3.2.1 at89c51的特性at89c51是一个8位低电压、高性能的cmos单片机。它内部有4k字节的可重复编程的flash存储器;可进行1000次擦写操作。全静态工作为0hz24mhz;有3级程序存储器锁定;内部含有1288位的ram;有32条可编程i/o端口;有2个16位定时/计数器;有6个中断源;有通用串行接口;有低电压空闲及电源掉电工作方式。其dip封装如图3.2.1所示17。图3.2.1 at89c51的dip封装3.2.2 at89c51的时钟电路 at89c51的时钟可以通过两种方式产生:内部振荡方式和外部振荡方式。本系统中采用内部振荡方式。即在xtal1和xtal2两端跨接石英晶体和两个微调电容,就可以构成稳定的自激振荡器并产生振荡时钟脉冲。其时钟电路如图3.2.2所示。图3.2.2 时钟电路3.2.3 at89c51的复位电路复位电路的功能是产生复位信号,即能在vcc、振荡器和反偏置发生器稳定后,给reset引脚提供至少能维持两个状态周期的低电平信号,而后由片内的上拉电路将reset引脚的电位拉高以使单片机执行10个状态周期的复位序列。at89c51的复位电路分片内、片外两部分,reset引脚为复位引脚,复位信号通过reset加到单片机的内部复位电路上。内部复位电路在每个机器周期s2p2对片外复位信号采样一次,当reset引脚上出现连续两个机器周期的高电平时,单片机就能完成一次复位。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的18。at89c51通常采用上电自动复位和按键手动复位两种方式。图3.2.3是系统的单片机复位电路。该复位电路既可以实现上电自动复位,又可以实现人工手动复位。在加电瞬间,电容通过电阻充电,就在reset端出现一定时间的高电平,只要高电平时间足够长,就可以使单片机有效的复位。当按下开关时,就在reset端就出现一段时间的高电平,使单片机复位。图3.2.3 复位电路3.3 fpga芯片在系统电路中应用与设计在本设计中,fpga芯片主要起着dds数据处理及波形生成的作用,另外因为单片机采用标准总线的方式进行扩展,配合该总线方式需要一个外部锁存器,然后单片机与液晶显示之间的接口中需要一个与非门,这些都可以利用fpga器件来实现。这样,可以减少器件数量,提高系统稳定性,充分利用pld器件可编程和丰富的i/o资源等特点。在实现dds功能时,fpga由硬件编程的方法实现。通过单片机对其进行控制,可以达到输出不同频率、幅值的任意波形的目的。3.3.1 fpga芯片的特性本设计中,fpga芯片选用了altera公司的epf1ok10lc84芯片。该芯片具有10000个可用门、576个le、72个lab、3个eab。能够提供6144位ram, 53个i/o引脚和多个特殊功能输入引脚,完全能够满足设计的需要。该芯片属于altera公司的flex1ok系列。该系列结构复杂,功能强大,其配置受内部sram控制,sram可以通过外部只读存储器或者微处理器对其写入8。flex1ok系列的内部可编程逻辑单元称为le(logic element),其包含一个4输入的查找表逻辑、与相邻单元的快速进位链和后续的一个可编程的触发器。这个触发器可以编程为d、t、jk或sr型的结构,还可以分别用全局信号或者局部信号来对其进行置位复位操作,如果选择旁路这个触发器,则该le配置成一个纯组合型的逻辑电路。查找表的输出直接驱动le的输出,每个le含有两个输出信号,一个用来驱动与之相邻的8个le,一个用来驱动通往全局的高速信号线。这两个信号可以分别控制,即该le的组合逻辑和触发器可以互不影响,这一特性可以使触发器得到更好的利用。flex1ok系列中的每个le中含有两条快速连线,一条是快速进位链,用来实现高速计数器和加法器等功能;另一条是级连线,可以实现诸如地址译码等输入数目很多的逻辑功能单元。3.3.2 芯片的应用功能及使用配置在本设计中,fpga有两个功能,其主要功能是进行dds处理,生成任意波形;第二个功能是作为功能寄存器,将单片机传来的64位数据分开成8位的波形选择寄存器、8位的幅值寄存器、12位的相位控制字、12位的频率控制字和24位的分频控制字寄存器,同时产生en信号,提供给液晶显示使用。与这两个功能对应,fpga芯片内部由功能寄存器模块和dds处理模块两个模块组成。(1)引脚及其功能该芯片共有84个引脚。除去下载电路和电源、地线所用去的引脚外,还有53个i/0引脚和2个全局输入时钟引脚可供使用。本设计使用了其中的38个引脚,下面按照其实现的功能将它们分成三组,各引脚功能说明如下:第一组实现功能寄存器功能,将单片机传来的64位数据分开。作为输入的信号有ad0ad7,接单片机p0口,ale引脚作为功能寄存器的控制信号,低电平时锁存,外部接单片机ale引脚。同时单片机的wr和rd引脚通过与非门产生en信号,控制液晶显示模块的工作。第二组实现dds数据处理功能,作为dds处理模块,需要连接数据总线,和地址总线。地址总线一共有3根,用来寻址dds内部的5个命令字寄存器,数据总线一共有8根,用来与单片机交换数据。clk作为全局时钟信号,为dds芯片提供工作时钟;ena引脚接单片机的a3,作为片选信号,低电平有效,此时可以将数据写入命令字寄存器。作为dds模块的输出有两组adp0adp7,adv0adv7。adv0adv7作为波形幅值控制信号输出,接第一个d/a转换器的数据端输入,其输出作为第二个d/a转换器的参考电压,以达到控制幅值的目的。adp0adp7接第二个d/a转换器的数据端输入,达到生成任意波形的目的。(2) fpga与单片机的连接方式 本设计中,fpga与单片机的连接方式如图3.3.2所示。可以看出,当作为dds数据处理芯片时,该芯片作为单片机的外围电路使用。在dds与单片机连接时,采用了直接访问方式。直接访问方式就是将dds模块的接口作为存储器或i/o设备直接挂在单片机总线上,单片机以访问存储器或i/o设备的方式控制dds模块的工作。图3.3.2 fpga与单片机的连接方式3.4 外设及接口电路实现3.4.1 液晶显示液晶显示作为单片机的外围电路,起着提供人机交互界面和提供系统运行状态的作用。市面上的液品显示屏很多,大多都己集成了液品显示控制电路。选用何种控制芯片的显示屏就决定了液晶显示屏的工作方式。根据本设计需要,选用了精电的mdls40266液晶显示屏。该液晶显示屏内置一块hd44780液晶显示驱动控制器。这种液晶显示电路简单,价格便宜,易于操作。它具有字符发生器rom,可显示192种字符19。具有64个字节的自定义字符和80个字节的ram,单5电源供电。其引脚功能如表3.4.1.1所示。表3.4.1.1 mdls40266的引脚功能引脚号符号状态功能1vss电源地2vdd5v逻辑电源3v0液晶驱动电源4rs输入寄存器选择 1:读;0:写5r/w输入读、写操作选择 1:读;0:写6e输入使能信号7db0三态数据总线(lsb)8db1三态数据总线9db2三态数据总线10db3三态数据总线11db4三态数据总线12db5三态数据总线13db6三态数据总线14db7三态数据总线(msb)15e1不用16e2不用mdls40266的信号真值表如表3.4.1.2所示。表3.4.1.2 信号真值表rsr/we功能00下降沿写指令代码01高电平读忙标志和ac值10下降沿写数据11高电平读数据液晶显示电路以直接访问的方式与单片机相连,其与单片机的连接电路如图3.4.1所示。图3.4.1 液晶显示器与单片机的连接电路3.4.2 串口通信为实现本系统与微机之间的通信,本系统利用at89c51的一个异步通信串行接口,并选用了max232芯片作为电平转换和收发器。其电路图如图3.4.2所示。图3.4.2 串口通信电路3.4.3 波形生成电路通过dds处理后的信号还是数字信号,只有通过d/a转换电路才能将数据转换成为我们需要的波形,波形生成电路如图3.4.3所示。可以看出该电路由两个d/a转换电路组成,dac0832是电流输出型d/a转换器,必须外接运放构成d/a转换电路。下面一个d/a转换器输入接dds芯片,输出接第二个d/a转换器的参考电压。这是输出波形幅值控制电路,控制输出波形电压。该电路采用单极性输出,输出电压反相,输出电压范围-50v,第二个转换器输入接dds芯片输出的波形数据,采用双极性输出,电压输出范围为-55v。该电路输出电压反相,但由于其参考电压已反相,所以输出波形正确。图3.4.3 波形生成电路3.5 整体设计结构本设计中,fpga芯片主要作为dds数据处理芯片,另外还附带一个其它功能:功能寄存器。因此,在fpga芯片设计时,整体上将fpga芯片划分为两个功能模块:功能寄存器模块和dds模块。功能寄存器模块的结构示意图如图3.5.1所示。图3.5.1 功能寄存器的结构示意图结合图3.5.1,介绍功能寄存器的工作过程。当ale来一个上升脉冲,8位锁存器把ad0ad7上的数据锁存到锁存器中,同时通过并串转换器把8位并行数据转换成一位位的数据。a0a2通过译码器译出5个控制寄存器的使能信号,当其使能信号有效时,便把并串转换器输出的数据一位位移入寄存器中。功能寄存器内部有5个控制寄存器,他们分别控制波形选择、幅值大小、相位、频率和分频系数。wr和rd信号通过与非门产生en信号控制液晶显示器的工作。dds模块的结构示意图如图3.5.2所示。图3.5.2 dds模块的结构示意图结合图3.5.2,dds模块工作的过程如下:dds模块在全局时钟clk的驱动下,启动24位分频器,对50mhz的时钟信号进行分频,分频系数由功能寄存器中的分频系数寄存器给出,分频器输出的新时钟信号驱动相位寄存器工作和控制查找表中各点的间隔。当a3信号有效时,启动频率、相位累加器工作。频率控制字通过累加器不断的在原来的基础上加上一个固定的值,然后通过相位寄存器输入到相位累加器中。相位累加器再把相位寄存器输出的值和相位控制字相加产生各点在查找表的有效地址。最后通过查询查找表中的数值,再通过波形选择开关将数值输出到第二个dac0832中。而幅值寄存器的输出直接通过锁存器输出到第一个dac0832中,作为第二个dac0832的基准电压,最后通过低通滤波器滤波后产生所需要的波形。3.6 设计模块的划分和各模块设计、仿真整个设计只有一个顶层模块,按照功能要求划分成两个功能模块,即功能寄存器模块和dds模块。功能寄存器模块主要是对单片机传过来的64位控制字进行分开,子模块比较简单,就不必细说了。设计的主要部分是dds模块,它是本系统的核心部分,可以分为6个主要的模块,即分频器模块、相位累加模块、相位锁存模块、频率累加模块和查找表模块。本设计中,功能寄存器模块的实现比较简单,下面主要介绍dds处理子模块的实现过程。 3.6.1 分频模块(counter_24)分频模块是实现对全局时钟进行分频,其实质上就是一个计数器,它有3个输入:clock,clr,fenpin_word;一个输出:newclk。其外部端口如图3.6.1.1所示:图3.6.1.1 counter_24的端口 观察仿真结果,在当clr信号无效,ena信号有效时,counter_24在clock信号的作用下,开始计数,当计数到达fenpin_word时就输出一个脉冲,这样就完成了对clock的分频。仿真结果如图3.6.1.2所示。图3.6.1.2 counter_24的仿真图3.6.2 相位累加模块(phase_adder)相位累加模块是实现对查找表地址的输出。它把从相位寄存器输出的相位值与相位控制字相加,从而产生查找表的地址。其外部端口如图3.6.2.1所示:图3.6.2.1 phase_adder的外部端口其仿真结果如图3.6.2.2所示。通过分析,在clr信号无效的情况下,当clk来一个上升沿时,phase_adder就将相位控制值和原来累加的相位进行相加,产生12位的地址。图3.6.2.2 phase_adder的仿真图3.6.3 相位锁存模块(phase_register)相位锁存模块主要是对每次累加后的新的相位进行锁存的作用。其外部端口如图3.6.3.1所示.图3.6.3.1 phase_register的外部端口由仿真结果图3.6.3.2可知,当clk来一次上升沿时,相位锁存模块就将输入的12位相位值锁存到相位锁存模块中。图3.6.3.2 phase_register的仿真图3.6.4 频率累加模块(adder_12)频率累加模块主要是实现产生初始累加相位的作用,实质上是一个12位的加法器。它有两个输入端口:频率控制字(phase_control)和经过相位锁存器锁存的12位原始相位。其外部端口如图3.6.4.1所示。图3.6.4.1 adder_12的外部端口其仿真结果如图3.6.4.2所示。经分析仿真图可以知道,它完全达到预期的设计效果。 图3.6.4.2 adder_12的仿真图3.6.5 查找表模块(lmp_rom_sin)查找表模块主要是存放一些波形数据,每一个数据都一一对应着一个地址。通过具体的地址就可以得到所需的波形数据。其外部端口如图3.6.5.1所示。基于单片机与fpga的实用信号源的设计 系统硬件电路实现 图3.6.5.1 lmp_rom_sin 的外部端口仿真结果如图3.6.5.2所示。通过分析,可以知道,每输入一个地址就会得到一个波形数值。 图3.6.5.2 lmp_rom_sin的仿真图3.7 芯片引脚功能定义 在设计一个系统时,选定器件型号后,i/o引脚及一些特定引脚就确定下来了。设计者要按照芯片的引脚定义进行原理图及pcb印制板设计,然后在max+plus ii软件中打开 pin/locationg/chip对话框,参考设计原理图来对顶层文件分配输入、输出引脚。图3.7是fpga芯片在系统中的连接图,根据该图可以看到系统用到了该芯片的43个引脚,其中有26个输入引脚,17个输出引脚。图3.7 fpga在系统原理图中的连接基于单片机与fpga的实用信号源的设计 控制系统软件设计 第四章 控制系统软件设计4.1 各级菜单的设计本系统采用英文菜单显示,通过菜单选择键来选取相应的子菜单和菜单项,系统菜单的结构如图4.1所示:图4.1系统菜单结构图整个操作菜单分为两级结构,通过44键盘进行选择,选中后按“确认”键,如果选中的是菜单项,程序就执行该选项;如果选中的是子菜单项,那么就进入子菜单。如果在子菜单中按“取消”键,则返回上一级菜单。主菜单包括两个子菜单和一个菜单项。当执行菜单项“当前状态”时,就显示当前输出的波形参数。选择“波形输出”子菜单,就进入输出波形设置界面。该菜单共有5个菜单项。“波形选择”设置要输出的信号波形,有正弦、余弦等波形,选中后,按“确认”键即可。“幅值设置”设置输出波形的幅值,输入范围为05v。“频率设置”设置输出波形的频率控制字。“相位设置”设置输出波形的相位控制字。“分频系数设置”设置输出波形的分频系数,可以控制fpga中的时钟信号。在主菜单中选择“通信功能”,即可以实现本系统与微机的串口通信。4.2系统软件设计整个系统软件设计采用wave公司的wave 6000集成开发环境,使用汇编语言进行编程。4.2.1主程序设计及流程图4.2.1 主程序流程图 本系统的主程序流程图见图4.2.1。首先,程序初始化,将系统中的所有命令状态和有关的存储单元置位成初始状态;然后程序进行系统自检,检查fpga芯片和外围硬件电路是否正常工作;若有错误则给出提示,否则在屏幕上显示主菜单,然后判断是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论