基于FPGA和MCU的相位测量仪的设计毕业设计

上传人:1666****666 文档编号:37487699 上传时间:2021-11-03 格式:DOC 页数:58 大小:861KB
返回 下载 相关 举报
基于FPGA和MCU的相位测量仪的设计毕业设计_第1页
第1页 / 共58页
基于FPGA和MCU的相位测量仪的设计毕业设计_第2页
第2页 / 共58页
基于FPGA和MCU的相位测量仪的设计毕业设计_第3页
第3页 / 共58页
点击查看更多>>
资源描述
存档日期:存档日期: 存档编号:存档编号: 本科生毕业设计(论文)本科生毕业设计(论文)论论 文文 题题 目:目:基于 FPGA 和 MCU 的相位测量仪的设计 学学 院:院: 电气工程及自动化学院 专专 业:业: 电气工程及其自动化 XXXX 大学教务处印制大学教务处印制I摘摘 要要随着社会和历史的不断进步,相位测量技术广泛应用于国防、科研、生产等各个领域,对相位测量的要求也逐步向高精度、高智能化方向发展,在低频范围内,数字式相位测量仪因其高精度的测量分辨率以及高度的智能化、直观化的特点得到越来越广泛的应用。本文首先论述了相位测量技术的国内外发展概况,并根据现状设计了此相位测量系统。该设计包括系统设计的理论分析,系统结构设计及硬件实现,最终验证了该测量系统的可行性和有效性。该设计采用单片机与 FPGA 相结合的电路实现方案,很好地发挥了 FPGA 的运算速度快、资源丰富、编程方便的特点,并利用了单片机的较强运算、控制功能,使得整个系统模块化、硬件电路简单、使用操作方便。文章主要介绍设计方案的论证、系统硬件和软件的设计,给出了详细的系统硬件电路图和系统软件主程序流程图。关键词关键词: : 数字式相位测量仪 单片机 FPGA 设计方案IIAbstractAlong with the social and historical progress, phase measurement technology is widely used in national defense, scientific research, production and other fields, on the phase measurement requirements are also gradually to high precision, high intelligent direction, in the range of low frequency digital phase measurement instrument, because of its high precision measurement resolution and highly intelligent, intuitive characteristics have been more and more widely applied. This text first discusses the phase measuring technology development in domestic and international, and according to the present situation designs the phase measuring system. The design includes system design theory analysis, system structure design and hardware realization, finally verified the feasibility and validity of the system. The combination of MCU and FPGA is adopted in the design .It has the features of FPGA high operating speed, abundant resources and convenient programming. And the use of MCUs strong operation and control function, which makes the whole system modularized, the hardware circuit is simple and the operation is convenient. The paper mainly introduces the designs of the demonstration, hardware and software, the hardware circuits and main software program are given in detail.IIIKeywords: Digital phase measuring instrument MCU FPGA Design strategyIV目目 录录摘摘 要要 .I IAbstractAbstract .IIII1 1 绪绪 论论 .11.1 课题背景及研究意义 .11.2 国内外发展动态 .11.3 课题设计任务 .32 2 设计方案论证设计方案论证 .42.1 以 MCU 为核心的实现方案 .42.2 以 MCU 和 FPGA 相结合的实现方案 .82.3 两个设计方案的比较 .113 3 系统硬件设计系统硬件设计 .133.1 输入模块设计 .133.2 基于 FPGA 的数据采集模块设计 .143.3 基于 MCU 的数据处理模块设计 .163.4 显示模块设计 .204 4 系统软件设计系统软件设计 .204.1 FPGA 的 Verilog HDL 程序设计 .204.2 MCU 的汇编语言程序设计.245 5 系统设计总结系统设计总结 .29致致 谢谢 .30 参考文献参考文献 .31V附录附录 1 1.32附录附录 2 2.33XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计11 绪 论 1.1 课题背景及研究意义随着社会和历史的不断进步,科学技术突飞猛进的发展,电子技术广泛应用于工业、交通、国防、科研、生产等各个领域,而相位测量技术又是电子技术中进行信息检测的重要手段,在现代科学技术中占有举足轻重的作用和地位。对相位测量的要求也逐步向高精度、高智能化方向发展。在低频范围内,相位测量在电力、机械等部门有着尤其重要的意义,对于低频相位的测量,用传统的模拟指针式仪表显然不能够满足所需的精度要求,随着电子技术以及微机技术的发展,数字式仪表因其高精度的测量分辨率以及高度的智能化、直观化的特点得到越来越广泛的应用。相位差是工业测控领域经常需要测量的参数,如电力系统中功率因数的测量、铁路系统中相敏轨道电路相位差的测量以及科氏质量流量计中的相位差测量等等。而相位差的测量又不同于传统的电压、电流信号或物位、温度量的测量。首先,相位差信号依附于电压、电流信号中,如何剔除电压、电流、频率变化对相位差测量的影响是相位差测量中很重要的一个方面;其次相位差是一个比较量,测量两路信号之间的相位差不仅需要保证两路信号的频率相同,而且要排除由于两路信号的幅值等其它因素不一致而对测量造成的影响。因此,如何准确可靠地测量相位差是值得研究的课题1。相位测量仪的用途极为广泛,可以测量两电压、两电流及电压电流之间的相位,是电力部门、工厂和矿山、石油化工、冶金系统正确把握电力使用情况的理想仪表。相位测量仪可应用于变压器件生产厂,收录机,电视机,整机生产厂或有关科研单位,作为产品验收,检验,样品分析的测试仪器,是提高产品质量和工作效率的最佳辅助工具。1.2 国内外发展动态 经过几十年,特别是近十几年的建设与发展,我国仪器仪表行业已经初步形成产品门类品种比较齐全,具有一定生产规模和开发能力的产业体系,成为亚洲除日本以外第二大仪器仪表生产国。而数字化测量技术则已经成为数字化XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计2制造技术的一个不可或缺的关键组成部分,采用适度先进的信息化数字测量技术和产品来迅速提升我国装备制造业水平,是当前一个重要的发展方向。 传统的测量方法很多,有示波器测量法,可变延迟法,基于数据采集板的相位测量新方法,将相位差转化为时间间隔法,电压测量法,示零法等。 通常的测量方法是对两路输入信号进行处理,应用过零检测的方法使其变换成两个方波,然后对这两个方波进行比较得到鉴相脉冲,即相位差脉宽。再由鉴相脉冲来控制计数器的关停,即用高频时钟脉冲去填充两个信号的相位差,从而实现相位差的测量。 相位的数字测量方法基本分为硬件电路测量和 A/D 采样后利用软件计算两种。硬件法测量由于电路结构比较复杂、易受外界干扰影响以及准确度较差的缺点,限制了它的进一步发展。近年来,随着计算机软硬件及其外围设备的日益发展,以数字信号处理为核心的软件法测量技术在相位差的测量中得到了越来越多的关注,并取得了较快的发展。 FPGA 是 20 世纪 90 年代发展起来的大规模可编程逻辑器件,随着 EDA(电子设计自动化)技术和微电子技术的进步,FPGA 在超高速、实时测控方面有非常广阔的应用前景;并且 FPGA 具有高集成度、高可靠性,几乎可将整个设计系统下载于同一芯片中,从而大大缩小了电路的体积2。目前,单片机的主流仍然是 8 位高性能单片机。其发展具体体现在 CPU 功能的增强,内部资源的增多,引脚的多功能化、低电压、低功耗等方面。单片机的发展是为了满足不断增长的自动检测、控制的要求,具体体现在传感器的接口、各种工业对象的电气接口、功率驱动接口、人机接口、通信网络接口等。这些接口性能的发展体现在高速的 I/O 能力、程序运行监控能力、信号实时处理能力等。总之,单片机将向高性能、高可靠性、低电压、低功耗、低噪音、低成本的方向发展1。现在采用单片机与 FPGA 相结合的电路实现方案,很好地发挥了 FPGA 运算速度快、资源丰富、编程方便的特点,并利用了单片机较强的运算、控制功能,使得整个系统模块化、硬件电路简单、使用操作方便。而且可以很好地完成该设计所要求的各项指标。XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计31.3 课题设计任务设计一个低频数字式相位测量仪,要具有频率测量和数字显示功能,并且要求能提高测量、显示精度和系统稳定性,使显示结果更加精确。其设计示意图如图 1-1 所示。数字显示相位测量A 输入B 输入 图 1-1 相位测量仪示意图该设计要满足的要求有:频率范围:20HZ20KHZ、相位测量仪的输入阻抗100、允许两路输入正弦信号峰-峰值可分别在 1V5V 范围内变化、相位测量绝对误差2、具有频率测量及数字显示功能、相位差数字显示:相位读数为 0359.9,分辨率为 0.1。XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计42 设计方案论证从功能角度来看,相位测量仪要完成信号频率的测量和相位差的测量。相位测量仪有两路输入信号,也就是被测信号,它们是两个同频率的正弦信号,频率范围为 20HZ20KHZ(正好是音频范围) ,而这两个被测信号的幅度分别为Up-p=1V5V(可以扩展到 0.3V5V) ,但两者幅度不一定相等。不妨令两个同频率的正弦信号为,则相位差)sin()()sin()(02220111tAtAtAtAmm,由此可以看出,相位差在数值上等于初相02010201)()(tt位之差, 是一个角度。令,式中是相位差 对应的时间差,且令为信号周期,则有TTT360,由此可以看出,相位差 与有一一对应的关系,我们可以TTT通过测量时间差及信号周期而计算出相位差 ,这就是相位差测量的基本TT原理。因此,相位差的测量本质上就是时间的测量,而时间的测量就要用到电子计数器5。时间的测量方法有很多种,而本设计关于相位测量仪的技术指标要求会影响到我们对方案的选择。我们知道,MCU 应用系统一般能较好地实现各种不同的测量和控制功能,但有的时候却达不到设计要求的技术指标。而 FPGA 具有集成度高,I/O 资源丰富,稳定可靠,工作速度快,可现场在线编程等优点,往往能满足一些设计要求比较高的技术指标。因此,人们在进行电子系统设计的时候,用 MCU 实现系统功能,FPGA 完成系统指标。2.1 以 MCU 为核心的实现方案 以单片机为核心的相位测量仪的原理框图如图 2-1 所示。XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计5鉴相器 整形电路 整形电路MCUINTi 键盘显示待测信号1 待测信号2 图 2-1 以 MCU 为核心的相位测量仪的原理框图两路待测信号经电路整形后变成了矩形波信号、,而且和是同频率但不同相位的矩形波。MCU 对信号频率的测量可以采用直接测量频率法和测量周期法。当信号频率较高时,我们一般采用直接测量频率的方法,而信号频率较低时,则采用测量周期的方法。(1) 直接测频率的方法测信号频率用定时器/计数器对外部事件计数,并让定时器/计数器定时 1s,只1T0T有在这 1s 内启动对外部事件(即信号)计数,的计数值就是待测信号1T1T的频率。(2) 测周期的方法测量信号频率对信号进行二分频,分频后高电平的宽度正好对应信号的周期,我们将此高电平信号作为 MCU 内部定时器的硬件启动/停止信号,便可测得周期,再由公式,计算得到频率。TTf1f在对相位差进行测量时,我们采用的是测量信号、相位差所对应的时间差,再根据公式T (2-T1)通过计算求出相位差 。XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计6MCS-51 系列单片机芯片内部集成了两个 16 位的硬件定时器/计数器,他们是、,均是二进制加法计数器,当计数器计满回零时能自动产生溢出中断0T1T请求,表示定时时间已到或计数已终止。MCU 芯片内部的硬件定时器/计数器有3 个特点:定时器/计数器可以与 CPU 并行工作;定时器/计数器可以采用中断方式与系统协调工作;定时器/计数器可以由软件或硬件控制启动或停止。单片机的定时器/计数器受 TMOD 及 TCON 的控制,如图 2-2 所示。TMOD TCON T1 T01TF1TR0TF0TR1IE1IT0IE0IT图 2-2 TMOD 及 TCON 的控制(1) 若 GATE=0,则由控制定时器/计数器的启动和停止。iTR(2) 若 GATE=1,=1,则由引脚的外部信号控制定时器/计数器的启动iTRiTNI和停止。(3) 若 GATE=1,则由和引脚的外部信号混合控制定时器/计数器的启iTRiTNI动和停止。我们让定时器/计数器工作在定时工作方式,其计数器对内部机器周期进行加 1 计数,而定时器/计数器的工作启动、停止则采用外部硬件控制。该方案实现的电路图如图 2-3 所示,该电路由整形电路、门电路、单片机等部分组成,由定时器/计数器、分别测量周期和时间差。 0T1TGATETC /1M0MGATETC /1M0MXX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计7待测信号1整形电路整形电路二分频=1 MCU-51_ INT0 (P3.2) P3.6_ INT1 (P3.3)1待测信号2图 2-3 MCU 测量时间差和周期的电路图需要说明的是,本系统要由软件创建一个标志位 2FH.1,当输入引脚P3.6=0 时,CPU 置位标志位 2FH.1,而当 P3.6=1 时,CPU 在读取时间差数据后清零标志位 2FH.1。在引脚 P3.6 的信号高电平期间 CPU 读数据一次,标志位2FH.1 用于保证在 P3.6=1 期间只读一次数据。再设计 MCU 的软件时,系统要连续 3 次测量时间差和周期,每一次测量时间差和周期占用两个待测信号周期 T 的时间。MCU 在处理数据(数字滤波、计算、数据显示、键盘处理)期间,使用软件停止定时器工作。显示部分采用UART 方式 0 串行送数据给 74LS164,由 74LS164 驱动 LED 数码管显示,这样可以减轻 CPU 的负担(相对动态扫描而言)。键盘处理实际上就是一个按键切1S换显示不同的内容,即显示频率或相位差5。系统主程序是一个顺序执行的循环程序,其流程图如图 2-4 所示。子程序SUB1 完成的功能是:执行 3 次测量时间差和周期,并保存到内存中,子程序SUB1 的流程图如图 2-5 所示。因为第 1 次测量时间差和周期的起始时刻有一定的随机性,这是由于软件启动定时器/计数器、的时刻是随机的,因此定时0T1T器/计数器、第 1 次测得的时间差和周期是不准确的,所以舍弃不要。0T1TXX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计8开始系统初始化) 1 , 0( 1iTRi调用子程序 SUB1:执行 3 次并保存到内存0iTR中值数字滤波计算频率、相位差送数据显示键盘处理入口(R4 是计数器)44RP3.6=1?2FH.1=1?44R保存周期 TH0、TL0保存时间差 TH1、TL1清零定时器 T0、T1清零标志位 2FH.114R?04R出口SETB 2FH.1NNNNYY图 2-4 主程序流程图 图 2-5 SUB1 流程图2.2 以 MCU 和 FPGA 相结合的实现方案XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计9系统主要由现场可编程门阵列 FPGA 和 MCU 组成,其原理框图如图 2-6 所示。整形电路整形电路FPGAMCU显示待测信号 1待测信号 2AB图 2-6 以 FPGA 和 MCU 相结合的相位测量仪电路本设计采用单片机和现场可编程门阵列(FPGA)作为数字相位测量仪的核心部分。考虑到 FPGA 具有集成度高,I/O 资源丰富,稳定可靠,可现场在线编程等优点,而单片机具有很好的人机接口和运算控制功能,本设计拟用 FPGA 和单片机相结合,来完成整个测控的主体部分。其中,让 FPGA 实现两个待测信号相位差所对应的时间差的采集,而 MCU 则负责读取 FPGA 采集到的数据,并根据这些数据计算待测信号的相位差,同时把得到的信号频率和相位差送到 LED 数码管显示3。(1)FPGA 的工作情况待测信号 1 和待测信号 2 经整形电路整形后,变为两个矩形波,令它们为A、B。并且,A、B 是两个频率相同但是有相位差的矩形波。信号 A、B 进入FPGA 后,经过其处理获得以二进制形式表示的信号频率以及相位差所对应的时间差。对频率的测量采用测周期的方法,即在信号周期 T 时间内,对时标信号进行计数。设时标信号频率为,时标信号周期为,对信号 A 二分频后的信号0f0T的高电平宽度就是信号周期 T,以此高电平宽度作为控制信号来控制计数器在时间 T 内对进行计数,则有0f (2-TfN01/4)则被测信号的频率为:XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计10 (2-10/1NfTf5)上式中,是计数器的计数值,当一定时,它的大小表示信号频率的大小。1N0f相位差对应的时间差的测量跟频率测量的方法类似,不过闸门控制信号T为的高电平宽度,则有BA (2-TfN02/6)因为相位差的绝对误差,而 FPGA 在测量时有一个字的误差,对待测2T信号频率而言,有kHzf20 (2-sT5036027)可以得到 ,这就是说,FPGA 在采集相位差对应的时间差时,sT278. 0T至少要能分辨出的时间间隔。为了兼顾 MCU 计算的方便和时标信号获得s278. 0的方便,我们采用的是,即的时钟脉冲作为时标信号。sT1 . 00MHzf100当选定后,就可以确定 FPGA 采用的二进制数据的位数。对于MHzf100待测信号频率而言,对应取最大值,因为时,周期Hzf201NHzf20,在 50ms 内对计数,计数值为,然而,msT500T5000001 . 0/501smsN,所以有262144218524288219 (2-1918250000028)故 FPGA 的二进制数据位的位数应为 19 位。(2)MCU 的工作情况MCU 要从 FPGA 中获得两种数据,这两种数据都是 19 位无符号二进制数。一种是被测信号周期 T 所对应的二进制数据(单位是 0.1) ;另一种是两个待sXX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计11测信号的相位差所对应的时间差(单位是 0.1) 。这样一来,FPGA 和 MCUTs之间要有握手信号,因此设置两个握手信号 DSEL、FEN。实际上,DSEL 和 FEN是 MCU 发给 FPGA 的控制信号,设置情况如下:a. DSEL=0 且 FEN=1 时,MCU 从 FPGA 中读取 19 位的周期数据。b.DSEL=1 且 FEN=1 时,MCU 从 FPGA 中读取 19 位的时间差数据。c.FEN=0 时,FPGA 内部电路不予理睬。MCU 要完成的任务有 3 个:一是从 FPGA 中获得 19 位的二进制数据,并控制 FPGA 的工作;二是对时所获得的数据进行处理(完全由软件实现) ;三是将处理后的数据送给 LED 数码管显示。由于送到 LED 数码管显示的数据有频率和相位差两种,所以应设置一个按键开关,以便实现显示内容的切换。2.3 两个设计方案的比较上述所提出的以 MCU 为核心的系统可以实现对频率的测量和对相位差的测量。但是,该系统不一定该设计所要求的技术指标。而且在同一个单片机应用程序中实现频率和相位差的测量,程序设计也相当复杂。根据设计要求,输入信号频率范围是 20HZ20KHZ,相位测量绝对误差 2在采用以 MCU 为核心的设计相位测量仪时,令单片机的外接晶振为 12MHZ,则定时器/计数器的计数误差为正负一个机器周期,即1S 。当输入信号频率时,输入周期则为,可以认为定时器/kHzf20sT50计数器的计数误差为1 个字。此时的相位绝对误差为 7.2,其计算过程如下: (2-:1360:50ss2)由公式(2-2)可以推导出 (2-2 . 750)1360(ss3)同理,若外接晶振为 24MHZ 时,相位差绝对误差为。这不满足相位测6 . 3量绝对误差2的要求。所以以单片机为核心的设计方案当待测信号频率较高时很难满足设计要求。XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计12以 FPGA 和 MCU 相结合的设计方案中,让 FPGA 实现两路待测信号的相位差所对应的时间差的采集,而 MCU 则负责读取 FPGA 采集到的数据,并根据这些数据计算待测信号的相位差,同时把得到的信号频率和相位差送到 LED 数码管显示。FPGA 在采集相位差对应的时间差时,至少要能分辨出的时间间Ts278. 0隔。为了兼顾 MCU 计算的方便和时标信号获得的方便,我们采用的是,sT1 . 00即的时钟脉冲作为时标信号。MHzf100MCU 要完成的任务有 3 个:一是从 FPGA 中获得 19 位的二进制数据,并控制 FPGA 的工作;二是对时所获得的数据进行处理(完全由软件实现) ;三是将处理后的数据送给 LED 数码管显示。这种设计方案发挥了单片机控制运算能力强的特点,同时也充分的利用了FPGA 数据采样速度快、资源丰富的特点。将数据采集交 FPGA 完成,可以准确的采集到两个同频正弦信号的相位差所对应的时间差以及信号的周期,从而提高了系统的可靠性。由于单片机具有较强的运算、控制能力,因此,我们使用单片机最小系统完成读取 FPGA 的数据,并根据所读取的数据计算待测信号的频率及两路同频信号之间的相位差,同时通过功能键切换,由显示模块可以显示待测信号的频率和相位差。所以,我们最终采用以 FPGA 和 MCU 相结合的设计方案。XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计133 系统硬件设计 本设计采用 FPGA 和 MCU 相结合的方案来完成低频数字式相位测量仪的设计。单片机与 FPGA 相结合的方案,将系统的硬件部分分为数据采样处理和单片机最小系统两部分。3.1 输入模块设计而被测信号是周期相同,幅度和相位不同的两路正弦信号,所以为了准输入电路起到波形变换及整形的作用。由于 FPGA 对脉冲信号比较敏感,为了准确的测量出两路正弦信号的相位差及其频率,需要对输入波形进行整形,使输入信号变成矩形波信号,并送给 FPGA 进行处理。我们知道,通常情况下,输入信号往往会含有干扰,这样单门限电压比较器的整形电路整形就不太准确。由于有干扰信号,导致单门限电压比较器在输入信号过零点时会产生多次触发翻转的现象,这样就会导致 FPGA 采集数据(计数)不准确,从而使单片机无法计算出正确的被测信号的频率和相位差的数值。在相位差测量过程中,不允许两路被测信号在整形后发生相对相移,或者应该使得两路被测信号在整形输入电路中引起的附加相移是相同的。因此,我们在对 A、B 两路信号整形时要采用相同的整形电路。为了避免被测输入信号在过零点时多次触发翻转的现象,我们决定采用由施密特触发器组成的整形电路。施密特触发器在单门限电压比较器的基础上引入了正反馈网络。因为正反馈的作用,它的门限电压随着输出电压的变化而改变。因为施密特触发器有0U两个门限电压,所以可以提高输入电路的抗干扰能力,其电路原理图如图 3-1所示。电路中使用两个施密特触发器对两路被测输入信号进行整行,在图中,比较器 LM339 连接成施密特触发器的形式,为了保证输入电路在相位差测量的时候不会有误差,必须保证两个施密特触发器的两个门限电平对应相等,这可以通过调节电位器来使得两个施密特触发器的门限电平对应相等3。8RXX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计14123456ABCD654321DCBAT itleNum berRevisionSizeBDate:1-J un-2011 Sheet of File:D:PROT EL_99_SE_CNEX AM PLESM yDesign.ddbDrawn By:UIALM 339LM 339R110KR910KR310KR4100R510K123J4CON3AINSGNDBIN SR6510R7100R2510R810KUIBGNDGNDGNDGND+5V+5V+5V+5VBINAIN图 3-1 由施密特触发器构成的整形电路由上图分析计算有: (3-VURRRRUUKPN0471. 065441)则其阀值电压。当输入的正弦信号电压大于VUVUTT0471. 0,0471. 0时,输出电压等于;当输入的正弦信号电压小于时,输出电压等于NUTUNU。TU3.2 基于 FPGA 的数据采集模块设计设计中,我们选择的是 Altera 公司的 FPGA,芯片型号为 EPF10K10LC84-4。本设计充分利用了 FPGA 可编程资源多、速度快、口线多、实时采样性好等特点。该芯片特点如下5:1. 高密度XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计15典型门为 30000 个,可用门为 119000 个,逻辑单元为 1728 个,嵌入式阵列块(EAB)为 6 个,24576 个内部 RAM,可用 I/O 为 102 个。2. 低功耗和多电压 I/O 接口该器件的核心电压为 2.5V 供电,功耗小,支持高电压 I/O 接口,引脚可以与 2.5V、3.3V、5V 电压器件兼容,并且可以进行摆率控制和漏极开路输出。3. 增强型嵌入式结构每个 EAB 有以 25616、5128、10244、20482 位任意组合的 RAM,可做单口 RAM,也可以设计成双口 RAM。4. 时钟锁定和时钟自举该器件为设计人员提供了可供选择的时钟锁定(clock lock)和时钟自举(clock boost)电路。这两种电路都含有锁相环(PLL) ,时钟锁定电路为一个同步的 PLL,可以减小器件内的时钟延迟和偏移。时钟自举电路提供了一个时钟乘法器,可以很容易的实现时域逻辑乘法,并减少资源的使用。EPF10K10LC84-4 能够满足多功能、低功耗、低成本、高性能的系统设计。FPGA 电路的设计我们采用实验室已有的 FPGA 适配板来实现,该适配板包含芯片 EPF10K10LC84-4、下载电路、FPGA 配置存储器、FPGA 内部所需电源模块等。当 FPGA 配置存储器中下载配置文件后,该适配板只需要接入+5V 电源就可以正常工作与用户应用系统中。为了进一步提高测量精度,同时便于计算,我们采用 10MHZ 的矩形波信号作为 FPGA 数据采样的信号。FPGA 在 10MHZ 时钟信号作用下对待测信号周期进行计数,并对两个同频率的正弦波信号的相位差所对应的时间差进行计数,分别得到 19 位数字量,其物理单位是 0.1S。FPGA 的时钟信号 clk 采用 40MHZ四引脚石英晶体多谢振荡器信号源,由 FPGA 内部的分频模块对 40MHZ 信号进行四分频,得到 10MHZ 的数据采样时标信号,采样周期为 0.1S。FPGA 与单片机的连接框图如图 3-2 所示。XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计16CLKaCLKb FPGA 适配板 FEN DSELCLKAT89C51AINBIN40MHZ 石英晶体多谐振荡器图 3-2 FPGA 与单片机的连接图从 FPGA 中获得的数据要通过 19 位数据接口送到单片机中,其引脚端口对应的关系如表 3-1 所示。表 3-1 引脚端口对应关系AT89C51P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7FPGA 引脚名称P28P53P55P57P59P61P62P82FPGA 引脚号PIN28PIN53PIN55PIN57PIN59PIN61PIN62PIN82P0口引脚定义DATA0DATA1DATA2DATA3DATA4DATA5DATA6DATA7AT89C51P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7FPGA 引脚名称P130P128P126P124P100IO38IO36IO34FPGA 引脚号PIN130PIN128PIN126PIN124PIN100PIN83PIN77PIN75P2口引脚定义DATA8DATA9DATA10DATA11DATA12DATA13DATA14DATA15AT89C51P1.0P1.1P1.2P1.3P1.4P1.5FPGA 引脚名称P31P54P56P58NCP60FPGA 引脚号PIN31PIN54PIN56PIN58空端口PIN60P1口引脚定义DATA16DATA17DATA18RSEL无ENXX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计173.3 基于 MCU 的数据处理模块设计这部分电路由单片机、晶振电路、按键电路等组成。该电路充分地利用了单片机的较强的运算能力和控制能力:使用单片机的 P0 口、P2 口以及P1.0、P1.1、P1.2 接受 FPGA 发送过来的对应的被测输入信号的周期和相位差的 19 位二进制数据,并且在单片机内部完成对这 19 位二进制数据的处理和相关运算。P1 口的 P1.6、P1.7 接入两个轻触按键,结合软件编程来实现频率与相位差显示切换功能。单片机完成对 FPGA 的控制,使 FPGA 按照单片机的要求通过 19 根 I/O 连接线分别发送被测输入信号的周期和相位差所对应的时间差的数据。FPGA 和 MCU 的握手信号 FEN 和 DSEL 分别接在 P1.3 和 P1.5 引脚,即Pin4 和 Pin6。除此之外,在设计中还要用到单片机的串口 UART,将待显示的信息送给显示模块显示。该模块使用的单片机型号为 AT89C51,它是美国 Atmel 公司生产的 8 位单片机。该器件采用 Atmel 高密度非易失存储器制造技术,与工业标准的 MCS-51指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在一个芯片中,Atmel 的 AT89C51 是一种高效率的微处理器,为很多嵌入式控制系统提供了一种灵活方便且物美价廉的方案。AT89C51 的主要特性有:片内数据存储器内含有 128 字节的 RAM;与 MCS-51 相兼容;内部集成有 4KB 的 FLASH 的存储器;允许在线编程擦写 1000 次;具有 32 根可编程 I/O 线;数据可保留 10 年;具有两个 16 位可编程定时器;5个中断源;024MHZ 全静态工作方式;低功耗的闲置和掉电模式;片内含振荡器和时钟电路;可编程串行通道;具有掉电状态下的中断回复模式基于以上特性,AT89C51 完全可以满足本设计的需要。它要构成最小系统时只要将单片机接上外部的晶体、时钟电路和复位电路即可。为了提高 MCU 的I/O 口带负载的能力,本设计中加入了 3 个上拉排电阻。该设计采用的是上电自动复位和按键手动复位电路,如图 3-3 所示。按下按键 S,电源对 C 充电,使 RESET 端快速达到高电平,松开按键,C 向芯片的内阻放电,恢复为低电平,从而使单片机可靠复位。即可上电复位,又可按键复位,一般 R1 选 470,R2选 8.2K,C 选 22F1。XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计18123456ABCD654321DCBAT itleNum berR e visionS iz eBDa te :11-M a y-2012S hee t of F ile:D:PR OT EL_99_S E_C NEX AM PLES M yDe sign.ddbDrawn B y:R 1R 2C22FSR ES ET AT 89C 51V C CGND图 3-3 上电/ 按键手动复位电路片内振荡电路输出端要接晶体振荡器与电路构成的稳定的自激振荡器,最常见的接法如图 3-4 所示。其中晶振可选用振荡频率为 12MHZ 的石英晶体,电容器一般选用 30PF 左右。123456ABCD654321DCBAT itleNum berRevisionSizeBDate:11-May-2012Sheet of File:D:Protel_99_SE_cnExam plesMyDesign1.ddbDrawn By:C130PFC230PFCR12MHZAT 89C51X 1X 2GND图 3-4 片内震荡电路输出端综上所述,MCU 的电路图如图 3-5 所示。该电路的工作原理是:单片机通过向 FPGA 发送数据传送指令,使 FPGA 按照单片机的要求发送数据,同时通过单片机的串口,将待显示的数据信息发送给显示电路显示。系统硬件电路中FPGA 和 MCU 进行数据交换时占用了 P0 口、P2 口、和 P1.0、P1.1、P1.2,其引脚功能如下所示。P0 口:32 39 脚为 P0.0 P0.7 输入/输出引脚。P0 口为双向 8 位三态XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计19I/O 口,它既可作为通用 I/O 口,又可作为外部扩展时的数据总线及低 8 位地址总线的分时复用口。作为通用 I/O 口时,需要外接上拉电阻,输出数据可以得到锁存,最为输出口,每个引脚可以驱动 8 个 TTL 负载。P1 口:18 脚为 P1.0 P1.7 输入/输出引脚。P1 口为 8 位准双向 I/O 口,内部具有上拉电阻,一般作通用 I/O 口使用,它的每一位都可以分别定义为输入线或输出线,作为输入时,锁存器必须置 1,每个引脚可以驱动 4 个 TTL 负载。P2 口:21 28 脚为 P2.0 P2.7 输入/输出引脚。P2 口为 8 位准双向 I/O口,内部具有上拉电阻,可直接连接外部 I/O 设备,每个引脚可以驱动 4 个TTL 负载。用作输入时,先将引脚置 1,由内部上拉电阻将其提高到高电平。若负载为低电平,则通过内部上拉电阻向外输出电流。它与地址总线高 8 位复用,一般作为外部扩展时的高 8 位地址总线使用。P3 口:1017 脚为 P3.0 P3.7 输入/输出引脚。P3 口为 8 位准双向 I/O口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动 4 个 TTL 负载。作为通用 I/O 口时,功能与 P1 口相同,常用第二功能,作为第二功能使用时,各位的作用如表 3-2 所示。表 3-2P3 口的复用功能端口引脚 复用功能P3.0 RXD:串行输入口P3.1 TXD:串行输出口P3.2 (外部中断 0 中断请求输入端)0INTP3.3 (外部中断 1 中断请求输入端)1INTP3.4 T0(定时器 0 的外部输入)P3.5 T1(定时器 1 的外部输入)P3.6 (外部数据存储器写选通)WRP3.7 (外部数据存储器读选通)RDXX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计20123456ABCD654321DCBATitleNum berRevisionSizeBDate:11-May-2012Sheet of File:D:Protel_99_SE_cnExam plesMyDesign1.ddbDrawn By:C130PFC230PFCR12MHZGNDR1R2C22FSVCCGNDS1S2GND39 D038 D137 D236 D335 D434 D533 D632 D721 A822 A923 A1024 A1125 A1226 A1327 A1428 A1510 RXD11 TXD30 ALE123456789RP210k 8123456789J3123456789J1VCCVCCVCC10k 810k 8DSELTextP00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27RXDTXDALE/PPSENP10P11P12P13P14P15P16P17INT1INT2T1T0-EA/VPX1X2RESET-RD-WDAT89C51P1.7P1.6X1X2U1图 3-5 MCU 电路图3.4 显示模块设计在单片机系统中,通常使用八段单字节数码显示器来显示各种数据或符号。应为它具有显示清晰、亮度高、使用电压低、寿命长等特点,所以被广泛应用与各种显示电路中。本设计采用的是 LED 数码管静态显示方式。静态显示系统中,每位显示器都有自己的锁存器、译码器和驱动器,它的每一次显示输出后可以保持不变,仅在待显示数据需要改变时,才更新其显示内容。这种显示方式的优点是占用机时少,显示稳定可靠4。该显示电路由 8 个共阴极 7 段 LED 数码管和 8 片串入/并出的 74LS164 芯片组成。这种显示方式不仅可以得到较为简单的硬件电路,而且可以得到稳定的数据输出显示。这种连接方式不仅占用单片机端口少,而且可以充分利用单片机芯片内部的串行口资源,可以很容易的掌握其编程规律,简化软件编程。实践证明,该显示模块具有较高的可靠性,其电路图如图 3-6 所示。XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计21123456ABCD654321DCBATitleNum berRevisionSizeBDate:23-May-2012Sheet of File:D:Protel_99_SE_cnExam plesMyDesign1.ddbDrawn By:Q0Q3Q2Q1Q4Q5Q6Q7A BCLK -M R74LS164Q0Q3Q2Q1Q4Q5Q6Q7A BCLK -M R74LS164Q0Q3Q2Q1Q4Q5Q6Q7A BCLK -M R74LS164+5V+5V+5V+5VRX DTX D . .RRRR82K 82K 82K abfcgdeDPY1234567abcdefg8dpdpLEDabfcgdeDPY1234567abcdefg8dpdpLEDabfcgdeDPY1234567abcdefg8dpdpLED图 3-6 显示模块电路图单片机从 FPGA 中读取信息并进行处理后,再将信号送到输出端显示出来。在系统的显示模块中,74LS164 的连接方式为:输出引脚 Q0-Q7 分别接在 LED数码管的 a、b、c、d、e、f、g 和 dp 引脚,并且 Q7 接下一个 74LS164 芯片的A、B 两端,时钟信号 CLK 连接单片机的 TXD 端,第一个芯片的 A、B 端接单片机的 RXD 端。共阴极 7 段 LED 数码管的段码编码如表 3-3 所示。表 3-3 共阴极 LED 数码管的段码表显示数码0123456789段码3FH06H5BH4FH66H6DH7DH07H7FH6FH显示数码ABCDEF-.熄灭段码77H7CH39H5EH79H7EH40H80H00HXX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计204 系统软件设计系统的软件设计包括 FPGA 的 Verilog HDL 程序设计以及 MCU 的汇编语言程序设计。4.1 FPGA 的 Verilog HDL 程序设计FPGA 主要完成对数据的采集,它可以准确的采集到两个同频正弦信号的相位差所对应的时间差以及信号的周期。4.1.14.1.1 FPGAFPGA 的工作时序的工作时序FPGA 的工作时序如图 4-1 所示。由时序图可以看出,FPGA 在待测信号的两个响铃的周期内获取一次数据,在待测输入信号的第一个周期内完成数据采集,并在后接的下一个待测输入信号的在周期内完成数据传输送以及清零,在设计时,我采用了同步信号来实现同步清零和同步数据传送,这样可以增强系统的抗干扰能力,提高系统的稳定性和可靠性。clkacla(ena)clkb(滞后)clr(clka)XOR(clkb)clkb(超前)(clka)XOR(clkb)da计数清零da(同步于clkf)该时刻传送周期数据,从da到dataa且以clr取反后的信号为使能信号 该时刻传送时间差数据,从da到datab该时刻传送时间差数据,从da到datab图 4-1 FPGA 的工作时序图XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计214.1.24.1.2 FPGAFPGA 芯片内部电路框图芯片内部电路框图根据以上设计思路,我们可以得出,FPGA 的数据采集电路可以分为以下几个模块:时钟信号分频模块、测量控制信号发生模块、被测信号有关时间检测模块、数据寄存器模块、19 位加 1 计数器模块、二选一数据选择器模块。其中时钟信号分频模块的作用是将输入的信号分频成我们所需的信号频率;测量控制信号发生模块的作用是根据两路被测信号整形后的矩形波信号产生有关测控信号,包括时间检测使能信号 ENA,时间检测清零信号等;被测信号有关时间检测模块的作用是在控制信号 ENA 和 CLR 的控制下,对测控基准时钟信号 CLKF 进行计数和清零,以便于获取有关的频率和相位差数据;数据寄存器模块的作用是暂存 19 位数据 dataa、datab 和 data;19 位的加 1 计数器模块的作用是完成对 clkf 的计数,以便分别得到待测信号的周期数据 dataa 和相位差对应的时间差数据 datab;二选一数据选择器模块的做作用是有选择的将数据dataa 或 datab 送到 FPGA 的输出端 data。FPGA 芯片内部的逻辑电路框图如图4-2 所示。二分频器二分频器DQcp1enclrcpencpdatabdatabcpen二选一数据选择器四分频器data寄存器1寄存器219位加1计数器preenaclrclkaclkbfendselclkfclkAB40MHZ图 4-2 FPGA 芯片内部逻辑电路框图XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计224.1.34.1.3 FPGAFPGA 中主要模块设计中主要模块设计在该设计中,FPGA 主要完成对整形后的两路待测信号(A、B)进行数据采集。其主要模块有:1. 对输入的 40MHZ 时钟脉冲进行四分频,得到我们所需要的 10MHZ 信号。2. 利用 D 触发器的特点进行信号的超前/滞后检测。设置 Q 为输出端口信号,满足 Q=1 时,表示信号 A 超前信号 B;反之,当 Q=0 时,信号 A 滞后信号 B。图 4-3 D 触发器模块module D_FF(q,d,cp,set,reset);input d,cp,set,reset;output q;reg q;always(posedge cp or posedge set)begin if (set) begin q=1;endelse if (reset) begin q=0;endelse begin q=d;endendendmodule319 位的加 1 计数器完成对 clk 的计数,以便分别得到待测信号的周期数据dataa 和相位差对应的时间差数据 datab。它们都是 19 位的二进制数据,时间单位为 0.1S。图 4-4 19 位计数器模块XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计23module count19(out,reset,clk);input reset,clk;output 18:0 out;reg 18:0 out;always(posedge clk)beginif (reset) out=0;else out=out+1;endendmodule4. 利用两个 19 位寄存器分别存放得到的待测信号的周期数据 dataa 和相位差对应的时间差数据 datab,以便二选一数据选择器进行数据调用。图 4-5 19 位寄存器模块module reg19(out_data,in_data,cp,en);output 18:0 out_data;input 18:0 in_data;input cp,en;reg 18:0 out_data;always (posedge cp or posedge en)begin if(en) out_data=0;else out_data=in_data;endendmodule5. 利用一个二选一数据选择器完成有选择的将数据 dataa 或 datab 送到 FPGAXX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计24的输出端 data。FPGA 和 MCU 之间的数据传输是通过 19 根 I/O 口线输送的。二选一数据选择器的选择信号来自 FPGA 和 MCU 之间的握手信号 FEN 和 DSEL,为了实现这个功能,系统中还应该包含 3 个 19 位的数据寄存器,分别存放数据dataa、datab、data。图 4-6 2 选 1 数据选择模块module mux2_1(data,dataa,datab,fen,dsel);output data;input dataa,datab;input 1:0 dsel,fen;reg out;always (dataa or datab or dsel or fen)beginif(fen=1) when (dsel=0) data=dataa;when (dsel=1) data=datab;else data=null;endendmodule6. 该模块中还应该含有计数器清零信号、计数器使能信号和其它控制信号的外围电路。4.2 MCU 的汇编语言程序设计XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计254.2.1 MCU 的主程序流程的主程序流程单片机从 FPGA 中读取被测信号的周期和相位差所对应的时间差数据,并在单片机内部进行相关的计算,然后送给显示模块,实现被测信号的频率和相位差的显示。这两种数据都是 19 位无符号的二进制数据,其程序流程图如图 4-7所示。开始系统初始化从FPGA读取周期和时间差数据计算频率和相位差键盘处理送数显示图 4-7 主程序流程图4.2.24.2.2 读取数据流程读取数据流程 单片机从 FPGA 中读取两种数据:一种是待测信号的周期 T,另一种是待测信号的相位差所对应的时间差,它们都是 19 位无符号的二进制数据。读T入哪一种数据由两者之间的握手信号 fen 和 dsel 控制,其程序流程图如图 4-8所示。XX 大学本科生毕业设计 基于 FPGA 和 MCU 的相位测量仪的设计26 入口发送周期选通信号fen=1、dsel=0读入周期数据并存入缓冲区禁止FPGA释放数据fen=
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!