《于基fpga和mcu的相位测量仪的设计.doc》由会员分享,可在线阅读,更多相关《于基fpga和mcu的相位测量仪的设计.doc(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、存档日期: 存档编号: 本科生毕业设计(论文)论 文 题 目:基于FPGA和MCU的相位测量仪的设计 学 院: 电气工程及自动化学院 专 业: 电气工程及其自动化 XX大学教务处印制摘 要随着社会和历史的不断进步,相位测量技术广泛应用于国防、科研、生产等各个领域,对相位测量的要求也逐步向高精度、高智能化方向发展,在低频范围内,数字式相位测量仪因其高精度的测量分辨率以及高度的智能化、直观化的特点得到越来越广泛的应用。本文首先论述了相位测量技术的国内外发展概况,并根据现状设计了此相位测量系统。该设计包括系统设计的理论分析,系统结构设计及硬件实现,最终验证了该测量系统的可行性和有效性。该设计采用单片
2、机与FPGA相结合的电路实现方案,很好地发挥了FPGA的运算速度快、资源丰富、编程方便的特点,并利用了单片机的较强运算、控制功能,使得整个系统模块化、硬件电路简单、使用操作方便。文章主要介绍设计方案的论证、系统硬件和软件的设计,给出了详细的系统硬件电路图和系统软件主程序流程图。关键词: 数字式相位测量仪 单片机 FPGA 设计方案AbstractAlong with the social and historical progress, phase measurement technology is widely used in national defense, scientific res
3、earch, 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 chara
4、cteristics 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
5、 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
6、, 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.Keywords: Digital phase measuring instr
7、ument MCU FPGA Design strategy目 录摘 要IABSTRACTII1 绪 论11.1 课题背景及研究意义11.2 国内外发展动态11.3 课题设计任务32 设计方案论证42.1 以MCU为核心的实现方案42.2 以MCU和FPGA相结合的实现方案82.3 两个设计方案的比较113 系统硬件设计133.1 输入模块设计133.2 基于FPGA的数据采集模块设计143.3 基于MCU的数据处理模块设计163.4 显示模块设计204 系统软件设计204.1 FPGA的Verilog HDL程序设计204.2 MCU的汇编语言程序设计245 系统设计总结29致 谢30参考文
8、献31附录132附录23350XX大学本科生毕业设计 基于FPGA和MCU的相位测量仪的设计1 绪 论 1.1 课题背景及研究意义随着社会和历史的不断进步,科学技术突飞猛进的发展,电子技术广泛应用于工业、交通、国防、科研、生产等各个领域,而相位测量技术又是电子技术中进行信息检测的重要手段,在现代科学技术中占有举足轻重的作用和地位。对相位测量的要求也逐步向高精度、高智能化方向发展。在低频范围内,相位测量在电力、机械等部门有着尤其重要的意义,对于低频相位的测量,用传统的模拟指针式仪表显然不能够满足所需的精度要求,随着电子技术以及微机技术的发展,数字式仪表因其高精度的测量分辨率以及高度的智能化、直观
9、化的特点得到越来越广泛的应用。相位差是工业测控领域经常需要测量的参数,如电力系统中功率因数的测量、铁路系统中相敏轨道电路相位差的测量以及科氏质量流量计中的相位差测量等等。而相位差的测量又不同于传统的电压、电流信号或物位、温度量的测量。首先,相位差信号依附于电压、电流信号中,如何剔除电压、电流、频率变化对相位差测量的影响是相位差测量中很重要的一个方面;其次相位差是一个比较量,测量两路信号之间的相位差不仅需要保证两路信号的频率相同,而且要排除由于两路信号的幅值等其它因素不一致而对测量造成的影响。因此,如何准确可靠地测量相位差是值得研究的课题1。相位测量仪的用途极为广泛,可以测量两电压、两电流及电压
10、电流之间的相位,是电力部门、工厂和矿山、石油化工、冶金系统正确把握电力使用情况的理想仪表。相位测量仪可应用于变压器件生产厂,收录机,电视机,整机生产厂或有关科研单位,作为产品验收,检验,样品分析的测试仪器,是提高产品质量和工作效率的最佳辅助工具。1.2 国内外发展动态 经过几十年,特别是近十几年的建设与发展,我国仪器仪表行业已经初步形成产品门类品种比较齐全,具有一定生产规模和开发能力的产业体系,成为亚洲除日本以外第二大仪器仪表生产国。而数字化测量技术则已经成为数字化制造技术的一个不可或缺的关键组成部分,采用适度先进的信息化数字测量技术和产品来迅速提升我国装备制造业水平,是当前一个重要的发展方向
11、。 传统的测量方法很多,有示波器测量法,可变延迟法,基于数据采集板的相位测量新方法,将相位差转化为时间间隔法,电压测量法,示零法等。 通常的测量方法是对两路输入信号进行处理,应用过零检测的方法使其变换成两个方波,然后对这两个方波进行比较得到鉴相脉冲,即相位差脉宽。再由鉴相脉冲来控制计数器的关停,即用高频时钟脉冲去填充两个信号的相位差,从而实现相位差的测量。 相位的数字测量方法基本分为硬件电路测量和A/D采样后利用软件计算两种。硬件法测量由于电路结构比较复杂、易受外界干扰影响以及准确度较差的缺点,限制了它的进一步发展。近年来,随着计算机软硬件及其外围设备的日益发展,以数字信号处理为核心的软件法测
12、量技术在相位差的测量中得到了越来越多的关注,并取得了较快的发展。 FPGA是20世纪90年代发展起来的大规模可编程逻辑器件,随着EDA(电子设计自动化)技术和微电子技术的进步,FPGA在超高速、实时测控方面有非常广阔的应用前景;并且FPGA具有高集成度、高可靠性,几乎可将整个设计系统下载于同一芯片中,从而大大缩小了电路的体积2。目前,单片机的主流仍然是8位高性能单片机。其发展具体体现在CPU功能的增强,内部资源的增多,引脚的多功能化、低电压、低功耗等方面。单片机的发展是为了满足不断增长的自动检测、控制的要求,具体体现在传感器的接口、各种工业对象的电气接口、功率驱动接口、人机接口、通信网络接口等
13、。这些接口性能的发展体现在高速的I/O能力、程序运行监控能力、信号实时处理能力等。总之,单片机将向高性能、高可靠性、低电压、低功耗、低噪音、低成本的方向发展1。现在采用单片机与FPGA相结合的电路实现方案,很好地发挥了FPGA运算速度快、资源丰富、编程方便的特点,并利用了单片机较强的运算、控制功能,使得整个系统模块化、硬件电路简单、使用操作方便。而且可以很好地完成该设计所要求的各项指标。1.3 课题设计任务设计一个低频数字式相位测量仪,要具有频率测量和数字显示功能,并且要求能提高测量、显示精度和系统稳定性,使显示结果更加精确。其设计示意图如图1-1所示。数字显示相位测量A输入B输入 图1-1
14、相位测量仪示意图该设计要满足的要求有:频率范围:20HZ20KHZ、相位测量仪的输入阻抗100、允许两路输入正弦信号峰-峰值可分别在1V5V范围内变化、相位测量绝对误差2、具有频率测量及数字显示功能、相位差数字显示:相位读数为0359.9,分辨率为0.1。2 设计方案论证从功能角度来看,相位测量仪要完成信号频率的测量和相位差的测量。相位测量仪有两路输入信号,也就是被测信号,它们是两个同频率的正弦信号,频率范围为20HZ20KHZ(正好是音频范围),而这两个被测信号的幅度分别为Up-p=1V5V(可以扩展到0.3V5V),但两者幅度不一定相等。不妨令两个同频率的正弦信号为,则相位差,由此可以看出
15、,相位差在数值上等于初相位之差,是一个角度。令,式中是相位差对应的时间差,且令为信号周期,则有360,由此可以看出,相位差与有一一对应的关系,我们可以通过测量时间差及信号周期而计算出相位差,这就是相位差测量的基本原理。因此,相位差的测量本质上就是时间的测量,而时间的测量就要用到电子计数器5。时间的测量方法有很多种,而本设计关于相位测量仪的技术指标要求会影响到我们对方案的选择。我们知道,MCU应用系统一般能较好地实现各种不同的测量和控制功能,但有的时候却达不到设计要求的技术指标。而FPGA具有集成度高,I/O资源丰富,稳定可靠,工作速度快,可现场在线编程等优点,往往能满足一些设计要求比较高的技术
16、指标。因此,人们在进行电子系统设计的时候,用MCU实现系统功能,FPGA完成系统指标。2.1 以MCU为核心的实现方案 以单片机为核心的相位测量仪的原理框图如图2-1所示。图2-1 以MCU为核心的相位测量仪的原理框图两路待测信号经电路整形后变成了矩形波信号、,而且和是同频率但不同相位的矩形波。MCU对信号频率的测量可以采用直接测量频率法和测量周期法。当信号频率较高时,我们一般采用直接测量频率的方法,而信号频率较低时,则采用测量周期的方法。(1) 直接测频率的方法测信号频率用定时器/计数器对外部事件计数,并让定时器/计数器定时1s,只有在这1s内启动对外部事件(即信号)计数,的计数值就是待测信
17、号的频率。(2) 测周期的方法测量信号频率对信号进行二分频,分频后高电平的宽度正好对应信号的周期,我们将此高电平信号作为MCU内部定时器的硬件启动/停止信号,便可测得周期,再由公式,计算得到频率。在对相位差进行测量时,我们采用的是测量信号、相位差所对应的时间差,再根据公式 (2-1)通过计算求出相位差。MCS-51系列单片机芯片内部集成了两个16位的硬件定时器/计数器,他们是、,均是二进制加法计数器,当计数器计满回零时能自动产生溢出中断请求,表示定时时间已到或计数已终止。MCU芯片内部的硬件定时器/计数器有3个特点:定时器/计数器可以与CPU并行工作;定时器/计数器可以采用中断方式与系统协调工
18、作;定时器/计数器可以由软件或硬件控制启动或停止。单片机的定时器/计数器受TMOD及TCON的控制,如图2-2所示。TMOD TCON T1 T0图2-2 TMOD及TCON的控制(1) 若GATE=0,则由控制定时器/计数器的启动和停止。(2) 若GATE=1,=1,则由引脚的外部信号控制定时器/计数器的启动和停止。(3) 若GATE=1,则由和引脚的外部信号混合控制定时器/计数器的启动和停止。我们让定时器/计数器工作在定时工作方式,其计数器对内部机器周期进行加1计数,而定时器/计数器的工作启动、停止则采用外部硬件控制。该方案实现的电路图如图2-3所示,该电路由整形电路、门电路、单片机等部分
19、组成,由定时器/计数器、分别测量周期和时间差。 图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串行送数据给74L
20、S164,由74LS164驱动LED数码管显示,这样可以减轻CPU的负担(相对动态扫描而言)。键盘处理实际上就是一个按键切换显示不同的内容,即显示频率或相位差5。系统主程序是一个顺序执行的循环程序,其流程图如图2-4所示。子程序SUB1完成的功能是:执行3次测量时间差和周期,并保存到内存中,子程序SUB1的流程图如图2-5所示。因为第1次测量时间差和周期的起始时刻有一定的随机性,这是由于软件启动定时器/计数器、的时刻是随机的,因此定时器/计数器、第1次测得的时间差和周期是不准确的,所以舍弃不要。开始系统初始化调用子程序SUB1:执行3次并保存到内存中值数字滤波计算频率、相位差送数据显示键盘处理
21、入口(R4是计数器)P3.6=1?2FH.1=1?保存周期TH0、TL0保存时间差TH1、TL1清零定时器T0、T1清零标志位2FH.1?出口SETB 2FH.1NNNNYY图2-4 主程序流程图 图2-5 SUB1流程图2.2 以MCU和FPGA相结合的实现方案系统主要由现场可编程门阵列FPGA和MCU组成,其原理框图如图2-6所示。整形电路整形电路FPGAMCU显示待测信号1待测信号2AB图2-6 以FPGA和MCU相结合的相位测量仪电路本设计采用单片机和现场可编程门阵列(FPGA)作为数字相位测量仪的核心部分。考虑到FPGA具有集成度高,I/O资源丰富,稳定可靠,可现场在线编程等优点,而
22、单片机具有很好的人机接口和运算控制功能,本设计拟用FPGA和单片机相结合,来完成整个测控的主体部分。其中,让FPGA实现两个待测信号相位差所对应的时间差的采集,而MCU则负责读取FPGA采集到的数据,并根据这些数据计算待测信号的相位差,同时把得到的信号频率和相位差送到LED数码管显示3。(1)FPGA的工作情况待测信号1和待测信号2经整形电路整形后,变为两个矩形波,令它们为A、B。并且,A、B是两个频率相同但是有相位差的矩形波。信号A、B进入FPGA后,经过其处理获得以二进制形式表示的信号频率以及相位差所对应的时间差。对频率的测量采用测周期的方法,即在信号周期T时间内,对时标信号进行计数。设时
23、标信号频率为,时标信号周期为,对信号A二分频后的信号的高电平宽度就是信号周期T,以此高电平宽度作为控制信号来控制计数器在时间T内对进行计数,则有 (2-4)则被测信号的频率为: (2-5)上式中,是计数器的计数值,当一定时,它的大小表示信号频率的大小。相位差对应的时间差的测量跟频率测量的方法类似,不过闸门控制信号为的高电平宽度,则有 (2-6)因为相位差的绝对误差,而FPGA在测量时有一个字的误差,对待测信号频率而言,有 (2-7)可以得到 ,这就是说,FPGA在采集相位差对应的时间差时,至少要能分辨出的时间间隔。为了兼顾MCU计算的方便和时标信号获得的方便,我们采用的是,即的时钟脉冲作为时标
24、信号。当选定后,就可以确定FPGA采用的二进制数据的位数。对于待测信号频率而言,对应取最大值,因为时,周期,在50ms内对计数,计数值为,然而,所以有 (2-8)故FPGA的二进制数据位的位数应为19位。(2)MCU的工作情况MCU要从FPGA中获得两种数据,这两种数据都是19位无符号二进制数。一种是被测信号周期T所对应的二进制数据(单位是0.1);另一种是两个待测信号的相位差所对应的时间差(单位是0.1)。这样一来,FPGA和MCU之间要有握手信号,因此设置两个握手信号DSEL、FEN。实际上,DSEL和FEN是MCU发给FPGA的控制信号,设置情况如下:a. DSEL=0且FEN=1时,M
25、CU从FPGA中读取19位的周期数据。b. DSEL=1且FEN=1时,MCU从FPGA中读取19位的时间差数据。c. FEN=0时,FPGA内部电路不予理睬。MCU要完成的任务有3个:一是从FPGA中获得19位的二进制数据,并控制FPGA的工作;二是对时所获得的数据进行处理(完全由软件实现);三是将处理后的数据送给LED数码管显示。由于送到LED数码管显示的数据有频率和相位差两种,所以应设置一个按键开关,以便实现显示内容的切换。2.3 两个设计方案的比较上述所提出的以MCU为核心的系统可以实现对频率的测量和对相位差的测量。但是,该系统不一定该设计所要求的技术指标。而且在同一个单片机应用程序中
26、实现频率和相位差的测量,程序设计也相当复杂。根据设计要求,输入信号频率范围是20HZ20KHZ,相位测量绝对误差 2在采用以MCU为核心的设计相位测量仪时,令单片机的外接晶振为12MHZ,则定时器/计数器的计数误差为正负一个机器周期,即1S 。当输入信号频率时,输入周期则为,可以认为定时器/计数器的计数误差为1个字。此时的相位绝对误差为7.2,其计算过程如下: (2-2)由公式(2-2)可以推导出 (2-3)同理,若外接晶振为24MHZ时,相位差绝对误差为。这不满足相位测量绝对误差2的要求。所以以单片机为核心的设计方案当待测信号频率较高时很难满足设计要求。以FPGA和MCU相结合的设计方案中,
27、让FPGA实现两路待测信号的相位差所对应的时间差的采集,而MCU则负责读取FPGA采集到的数据,并根据这些数据计算待测信号的相位差,同时把得到的信号频率和相位差送到LED数码管显示。FPGA在采集相位差对应的时间差时,至少要能分辨出的时间间隔。为了兼顾MCU计算的方便和时标信号获得的方便,我们采用的是,即的时钟脉冲作为时标信号。MCU要完成的任务有3个:一是从FPGA中获得19位的二进制数据,并控制FPGA的工作;二是对时所获得的数据进行处理(完全由软件实现);三是将处理后的数据送给LED数码管显示。这种设计方案发挥了单片机控制运算能力强的特点,同时也充分的利用了FPGA数据采样速度快、资源丰
28、富的特点。将数据采集交FPGA完成,可以准确的采集到两个同频正弦信号的相位差所对应的时间差以及信号的周期,从而提高了系统的可靠性。由于单片机具有较强的运算、控制能力,因此,我们使用单片机最小系统完成读取FPGA的数据,并根据所读取的数据计算待测信号的频率及两路同频信号之间的相位差,同时通过功能键切换,由显示模块可以显示待测信号的频率和相位差。所以,我们最终采用以FPGA和MCU相结合的设计方案。3 系统硬件设计 本设计采用FPGA和MCU相结合的方案来完成低频数字式相位测量仪的设计。单片机与FPGA相结合的方案,将系统的硬件部分分为数据采样处理和单片机最小系统两部分。3.1 输入模块设计而被测
29、信号是周期相同,幅度和相位不同的两路正弦信号,所以为了准输入电路起到波形变换及整形的作用。由于FPGA对脉冲信号比较敏感,为了准确的测量出两路正弦信号的相位差及其频率,需要对输入波形进行整形,使输入信号变成矩形波信号,并送给FPGA进行处理。我们知道,通常情况下,输入信号往往会含有干扰,这样单门限电压比较器的整形电路整形就不太准确。由于有干扰信号,导致单门限电压比较器在输入信号过零点时会产生多次触发翻转的现象,这样就会导致FPGA采集数据(计数)不准确,从而使单片机无法计算出正确的被测信号的频率和相位差的数值。在相位差测量过程中,不允许两路被测信号在整形后发生相对相移,或者应该使得两路被测信号
30、在整形输入电路中引起的附加相移是相同的。因此,我们在对A、B两路信号整形时要采用相同的整形电路。为了避免被测输入信号在过零点时多次触发翻转的现象,我们决定采用由施密特触发器组成的整形电路。施密特触发器在单门限电压比较器的基础上引入了正反馈网络。因为正反馈的作用,它的门限电压随着输出电压的变化而改变。因为施密特触发器有两个门限电压,所以可以提高输入电路的抗干扰能力,其电路原理图如图3-1所示。电路中使用两个施密特触发器对两路被测输入信号进行整行,在图中,比较器LM339连接成施密特触发器的形式,为了保证输入电路在相位差测量的时候不会有误差,必须保证两个施密特触发器的两个门限电平对应相等,这可以通
31、过调节电位器来使得两个施密特触发器的门限电平对应相等3。图3-1 由施密特触发器构成的整形电路由上图分析计算有: (3-1)则其阀值电压。当输入的正弦信号电压大于时,输出电压等于;当输入的正弦信号电压小于时,输出电压等于。3.2 基于FPGA的数据采集模块设计设计中,我们选择的是Altera公司的FPGA,芯片型号为EPF10K10LC84-4。本设计充分利用了FPGA可编程资源多、速度快、口线多、实时采样性好等特点。该芯片特点如下5:1. 高密度典型门为30000个,可用门为119000个,逻辑单元为1728个,嵌入式阵列块(EAB)为6个,24576个内部RAM,可用I/O为102个。2.
32、 低功耗和多电压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,可以减小器件内的时钟延迟和偏移。时钟自举电路提供了一个时钟乘法器,可以很容易的实现时域逻辑乘
33、法,并减少资源的使用。EPF10K10LC84-4能够满足多功能、低功耗、低成本、高性能的系统设计。FPGA电路的设计我们采用实验室已有的FPGA适配板来实现,该适配板包含芯片EPF10K10LC84-4、下载电路、FPGA配置存储器、FPGA内部所需电源模块等。当FPGA配置存储器中下载配置文件后,该适配板只需要接入+5V电源就可以正常工作与用户应用系统中。为了进一步提高测量精度,同时便于计算,我们采用10MHZ的矩形波信号作为FPGA数据采样的信号。FPGA在10MHZ时钟信号作用下对待测信号周期进行计数,并对两个同频率的正弦波信号的相位差所对应的时间差进行计数,分别得到19位数字量,其物
34、理单位是0.1S。FPGA的时钟信号clk采用40MHZ四引脚石英晶体多谢振荡器信号源,由FPGA内部的分频模块对40MHZ信号进行四分频,得到10MHZ的数据采样时标信号,采样周期为0.1S。FPGA与单片机的连接框图如图3-2所示。CLKaCLKb FPGA适配板 FEN DSELCLKAT89C51AINBIN40MHZ石英晶体多谐振荡器图3-2 FPGA与单片机的连接图从FPGA中获得的数据要通过19位数据接口送到单片机中,其引脚端口对应的关系如表3-1所示。表3-1 引脚端口对应关系P0口AT89C51P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7FPGA引脚名称P
35、28P53P55P57P59P61P62P82FPGA引脚号PIN28PIN53PIN55PIN57PIN59PIN61PIN62PIN82引脚定义DATA0DATA1DATA2DATA3DATA4DATA5DATA6DATA7P2口AT89C51P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7FPGA引脚名称P130P128P126P124P100IO38IO36IO34FPGA引脚号PIN130PIN128PIN126PIN124PIN100PIN83PIN77PIN75引脚定义DATA8DATA9DATA10DATA11DATA12DATA13DATA14DATA15P1
36、口AT89C51P1.0P1.1P1.2P1.3P1.4P1.5FPGA引脚名称P31P54P56P58NCP60FPGA引脚号PIN31PIN54PIN56PIN58空端口PIN60引脚定义DATA16DATA17DATA18RSEL无EN3.3 基于MCU的数据处理模块设计这部分电路由单片机、晶振电路、按键电路等组成。该电路充分地利用了单片机的较强的运算能力和控制能力:使用单片机的P0口、P2口以及P1.0、P1.1、P1.2接受FPGA发送过来的对应的被测输入信号的周期和相位差的19位二进制数据,并且在单片机内部完成对这19位二进制数据的处理和相关运算。P1口的P1.6、P1.7接入两个
37、轻触按键,结合软件编程来实现频率与相位差显示切换功能。单片机完成对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
38、的AT89C51是一种高效率的微处理器,为很多嵌入式控制系统提供了一种灵活方便且物美价廉的方案。AT89C51的主要特性有:片内数据存储器内含有128字节的RAM;与MCS-51相兼容;内部集成有4KB的FLASH的存储器;允许在线编程擦写1000次;具有32根可编程I/O线;数据可保留10年;具有两个16位可编程定时器;5个中断源;024MHZ全静态工作方式;低功耗的闲置和掉电模式;片内含振荡器和时钟电路;可编程串行通道;具有掉电状态下的中断回复模式基于以上特性,AT89C51完全可以满足本设计的需要。它要构成最小系统时只要将单片机接上外部的晶体、时钟电路和复位电路即可。为了提高MCU的I/
39、O口带负载的能力,本设计中加入了3个上拉排电阻。该设计采用的是上电自动复位和按键手动复位电路,如图3-3所示。按下按键S,电源对C充电,使RESET端快速达到高电平,松开按键,C向芯片的内阻放电,恢复为低电平,从而使单片机可靠复位。即可上电复位,又可按键复位,一般R1选470,R2选8.2K,C选22F1。图3-3 上电/ 按键手动复位电路片内振荡电路输出端要接晶体振荡器与电路构成的稳定的自激振荡器,最常见的接法如图3-4所示。其中晶振可选用振荡频率为12MHZ的石英晶体,电容器一般选用30PF左右。图3-4 片内震荡电路输出端综上所述,MCU的电路图如图3-5所示。该电路的工作原理是:单片机
40、通过向FPGA发送数据传送指令,使FPGA按照单片机的要求发送数据,同时通过单片机的串口,将待显示的数据信息发送给显示电路显示。系统硬件电路中FPGA和MCU进行数据交换时占用了P0口、P2口、和P1.0、P1.1、P1.2,其引脚功能如下所示。P0口:32 39脚为P0.0 P0.7输入/输出引脚。P0口为双向8位三态I/O口,它既可作为通用I/O口,又可作为外部扩展时的数据总线及低8位地址总线的分时复用口。作为通用I/O口时,需要外接上拉电阻,输出数据可以得到锁存,最为输出口,每个引脚可以驱动8个TTL负载。P1口:18脚为P1.0 P1.7输入/输出引脚。P1口为8位准双向I/O口,内部
41、具有上拉电阻,一般作通用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口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱
42、动4个TTL负载。作为通用I/O口时,功能与P1口相同,常用第二功能,作为第二功能使用时,各位的作用如表3-2所示。表3-2P3口的复用功能端口引脚 复用功能P3.0 RXD:串行输入口P3.1 TXD:串行输出口P3.2 (外部中断0中断请求输入端)P3.3 (外部中断1中断请求输入端)P3.4 T0(定时器0的外部输入)P3.5 T1(定时器1的外部输入)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)图3-5 MCU电路图3.4 显示模块设计在单片机系统中,通常使用八段单字节数码显示器来显示各种数据或符号。应为它具有显示清晰、亮度高、使用电压低、寿命长等特点,所以被广
43、泛应用与各种显示电路中。本设计采用的是LED数码管静态显示方式。静态显示系统中,每位显示器都有自己的锁存器、译码器和驱动器,它的每一次显示输出后可以保持不变,仅在待显示数据需要改变时,才更新其显示内容。这种显示方式的优点是占用机时少,显示稳定可靠4。该显示电路由8个共阴极7段LED数码管和8片串入/并出的74LS164芯片组成。这种显示方式不仅可以得到较为简单的硬件电路,而且可以得到稳定的数据输出显示。这种连接方式不仅占用单片机端口少,而且可以充分利用单片机芯片内部的串行口资源,可以很容易的掌握其编程规律,简化软件编程。实践证明,该显示模块具有较高的可靠性,其电路图如图3-6所示。图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段码3FH06H5BH4FH66H6DH7DH
限制150内