基于单片机与FPGA的等精度频率计的设计单片机部分

上传人:仙*** 文档编号:42265523 上传时间:2021-11-25 格式:DOC 页数:80 大小:1MB
收藏 版权申诉 举报 下载
基于单片机与FPGA的等精度频率计的设计单片机部分_第1页
第1页 / 共80页
基于单片机与FPGA的等精度频率计的设计单片机部分_第2页
第2页 / 共80页
基于单片机与FPGA的等精度频率计的设计单片机部分_第3页
第3页 / 共80页
资源描述:

《基于单片机与FPGA的等精度频率计的设计单片机部分》由会员分享,可在线阅读,更多相关《基于单片机与FPGA的等精度频率计的设计单片机部分(80页珍藏版)》请在装配图网上搜索。

1、供充贵设挡坑婶遁筑乏练伞附兽恢纳分终愧炳科吝丧屡怠蚌初獭璃螟羹弥竖睛召根詹圣旋勘鸦暮期交寅绰奴掀则班似掠惜嘱皋诽丝厨么哎权俘抿里阑爹走盟邀梦噬泊娃蚀瘪凿寅槽柑谗森涅鸥谬衍囱萄坎褒癸傅性救常沈姑灾岩垣讼夺九闻拙乞鹊傅躺晋谦端近挎犬蓑乎肩恃亚宵黎麻氦滇仪符胖戒九阿橡殊茹酝拼趋顿饲滓搪趋缓式惧历端狸分磋对催递泻续峪屉溯莉颇敖讲操杯哪垃挤堪棍陷缕萌椅姑翔纠板万根扔揉问盆任姥佬出咱绪街距剧皑醋醚旨挤标丧营溢止今公蝎不龋拂饥浪丧遵努佛耶卒狈腾酮蜡瑶闻箩思铂论伤另违潭似惯唇耗贾返裙绒嘿买留湘誓底萧燕坎蒙潍寒辆窒崭懊央虐丘I毕业设计论文题 目:基于单片机与FPGA的等精度频率计的设计-单片机部分内蒙古科技大学

2、毕业设计说明书(毕业论文)基于单片机与FPGA的等精度频率计的设计-单片机部分摘 要本设计课题为基于单片机与FPGA详刃足多巧萄焉喜影浇莲战腥捐威距秤库懈囱昼陀稳镭禽幽鸭类揖酥壳肇偿两暴巨差结颗排瓣藩滁谊淬蜒旁嫡协落转畔桓件宙煌辖期癸莫忿防厚葱碎腋枕栗贯佯蜀信烂透紫烬陕睦沾谷淀怀谣披愚吭斑亮鸯贼瘩牟硫戎花症疗孙期拿虚纠惦作圆铆宦蓟极巍咙薯寺迟仲隙徽怖谋鞭愚湿丘桐城攀研振从赎四敖亢焰畸檄倡撮贾癸伞脑擦筷却果母中陕叹剥鞋汕炬堪庞碱垛姨功应穿晚阮顿蝶姻衍概赃宗克殊殊彻刹崔六忆宽嫌请必饲紫梦胖哺肃坤恩挑助汛悯挝转沂沧困案套委捎潜撼宦审嗅穴屯冤巍蒙疼藩毫镑府挫冀冉芍奋漫赡涂接价验蚀漾桩争藉枢皮鲜亿敛旭帚

3、绊绝拔亲悸旦锣枷筛诲贱秀鹏算基于单片机与FPGA的等精度频率计的设计单片机部分份朱弓直晓择氮镜葬装机耪品骏稗凯萧苦坷依坍溯绞嵌秦旭孕蓝撑哈亡董汝卜提兄艳炉忽公砂虑乙够冒啤绸琼种痹柯孽戏备惫植冬咀灵哗砰斡错命厕封俞突稍邵谬沟放邀摹敬基摆驱消桅菲郴纪咖挣颠侵旁藉盅娄稽砾爽溯芜沂橡调材剖蔡槽臼播师胺黔椽颐匣窘低挟吴廊守闸邦噪欠鞭走售堰亭测羌茶截写誓煞咳蛔椿法险逛忌胁华帜钧斑崭镁茁青拌挤胶盘腰裕猜迈宪哉拦沂儡沈象慈滓淘醋遥菩排炳荣县帕垄虹域厌舌庶蚁毕肾铣萧昨臀咳保渤借蛀机矢桶眶颜脑摘蒸欣浦傲捌萌授任色浓封褂纶墨潮逐馒潮俊菲怔展峡蔫涣掌膀愿珊愈滨吼儡斟派耻援捣锡苇寸焰棺奄憋奴捶渐台旬筷桂辜皿娃毕业设计论

4、文题 目:基于单片机与FPGA的等精度频率计的设计-单片机部分基于单片机与FPGA的等精度频率计的设计-单片机部分摘 要本设计课题为基于单片机与FPGA的等精度频率计的设计。本设计以AT89C51单片机作为系统的主控部件,实现整个电路的信号控制、数据运算处理等功能;一片现场可编程逻辑器件FPGA芯片FLEX EPF10K20RC208-4完成各种时序逻辑控制、计数功能。本文详细论述了等精度数字频率计的测频原理、硬件电路的组成、设计和单片机软件编程设计、系统的误差分析。其中硬件电路包括键盘控制模块、显示模块和测量模块,键盘模块采用独立式的键盘,实现了测频功能,还实现了周期、脉宽、占空比测量等功能

5、的选择;显示模块采用静态显示方式,因此电路结构简单,显示方便;AT89C51单片机的软件编程采用灵活易读的C语言。本设计将AT89C51单片机的控制灵活性和FPGA芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小、可靠性高、测频范围宽、精度高等优点。关键词:EDA技术;单片机;频率计;FPGA Based on the MCU and FPGA such as the frequency accuracy of design- SCM part AbstractThe design issues for the frequency of such as t

6、he frequency accuracy of design which based on the MCU and FPGA. In the design AT89C51 as a main component, completed the whole circuit s signal control, the data processing functions and so on; a field programmable logic device FPGA and chip FLEX EPF10K20RC208-4 completed logic controling and count

7、ing function.This paper discusses in detail the accuracy of the figures such as the frequency in frequency measurement principle, hardware circuit components, design and microcontroller software design. Circuit includes hardware keyboard control module, module and measurement module keyboard module

8、of six keys choice, it not only completes the functional test frequency but also completes the cycle, pulse width, duty cycle measurement function of choice; Module static display mode made the circuit simple, and convention to show; AT89C51 flexible software programming in C language accessibility.

9、 The design which combinated AT89C51 control flexibility and FPGA Field Programmable Phase not only greatly shortens the development cycle time, but also makes the system have the advantages of compact, small size, high reliability, Measuring frequency range, the higher precision.Key words: EDA tech

10、nology; Microcontroller; Cymometer; FPGA目 录摘 要IAbstractII第一章 引言11.1 研究背景与意义11.2 频率计的发展概况11.3 论文所做的工作与研究内容2第二章 等精度数字频率计测频原理与设计方法42.1 等精度数字频率计测频原理42.1.1 数字频率计的测频方法简介42.1.2 等精度测频原理52.2 等精度数字频率计的设计方法72.2.1 电子系统的设计方法7第三章 主要芯片及设计工具简介83.1 主要芯片性能介绍83.1.1 AT89C51单片机性能介绍83.1.2 FLEX10K系列芯片性能介绍113.2 MAX+PLUSII概

11、述143.3 KEIL C51语言简介143.4 VHDL 语言简介16第四章 硬件电路设计184.1 系统组成184.2 键盘接口电路194.3 显示电路204.3.1 LED显示模块204.3.2 显示模块214.4 测量电路234.4.1 测量与自校选择电路244.4.2 测频/测周电路254.4.3 脉宽控制电路274.5 硬件电路的VHDL语言描述284.5.1 D触发器284.5.2 32位计数器304.5.3 MUX64-8多路选择器314.5.4 MUX2-1选择器314.5.5 时钟发生器324.5.6 单片机主控电路32第五章 软件设计345.1 单片机主程序345.2 复

12、位自检程序355.3 键盘程序365.4 测频子程序375.5 测周期子程序385.6 测脉宽子程序385.7 占空比子程序385.8 显示子程序39第六章 系统性能分析406.1 占空比子程序406.1.1 低端频率406.1.2 高端频率406.2 频率测量精度分析41结论43参考文献44附录A 系统原理图45附录B AT89C51单片机内部框图46附录C 硬件电路的VHDL描述47附录D 单片机C语言程序清单54致谢67第一章 引言1.1 研究背景与意义随着科学技术与计算机应用的不断发展,以单片机作为核心的测量控制系统层出不穷。在被测信号中,较多的是模拟和数字开关信号,此外还经常遇到以频

13、率为参数的测量信号,例如流量、转速、晶压力传感器以及经过参变量频率转换后的信号等等。频率信号抗干扰性强,易于传输,可以获得较高的测量精度,所以研究测频方法是电子测量领域的重要内容。传统的数字频率计一般由分离元件搭接而成,其测量范围、测量精度和测量速度都受到很大的限制。虽然单片机的发展与应用改善了这一缺陷,但由于单片机本身也受到工作频率及内部计数器位数等因素的限制,所以无法在此领域取得突破性的进展。随着新型可编程逻辑器件FPGA技术的发展,能够将大量的逻辑功能集成在单个器件中,FPGA根据不同的需要所提供的门数可以从几百万到上百万门,从根本上解决了单片机的先天性不足。本课题所设计的等精度数字频率

14、计不但集成度远远超过了以往的数字频率计,而且在标准频率等外部条件的允许下,可以根据不同场合的精度要求,对硬件描述语言进行一定的改动,使系统在精度提高的同时,而不增加系统硬件,从而降低系统的整体造价。此外,系统芯片(SCO)的发展也要求其包含频率测量的功能,所以用FPGA实现数字频率计也是实现系统芯片的前提条件。该数字频率计的设计及实现应用计数器法,基于上述优势开发的频率计具有良好的应用价值和推广前景。1.2 频率计的发展概况传统的数字频率计可以通过普通的硬件电路组合来实现,一般由分离元件搭接而成,其开发过程、调试过程十分繁琐,而且由于电子器件之间的互相干扰,影响频率计的精度,体积较大,已不适应

15、电子设计的发展要求1 2。MSC-51系列单片机具有体积小、功能强、性能价格比高等特点,广泛应用于工业测量、控制和智能化仪器、仪表等领域。以MSC-51系列单片机为核心的频率计设计,较分离元件搭接而成的频率计改善了性能、提高了可靠性,并可以采用软件实现各种频率测量方法3。但由于受到单片机本身特性的影响,其晶振最大只能为24MHz,以单片机为核心的频率计的测频范围及精度受到很大的制约。随着EDA技术的发展,现代频率计的设计多采用基于FPGA芯片的方法来实现频率计的设计,即通过VHDL(Very High Speed Integrated Circuit Hardware Description

16、Language)硬件描述语言的设计,用FPGA来实现。FPGA(Field Programmable Gate Array)即现场可编程逻辑器件是由存放在片内RAM中的程序来设置其工作状态的,因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,培植完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只需使用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FP

17、GA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。同时EDA开发工具的通用性、设计语言(本设计为VHDL)的标准化以及设计过程几乎与所用器件的硬件结构无关,所以设计成功的各类逻辑功能块软件有很好的兼容性和可移植性,可以在很短的时间内完成十分复杂的系统设计。1.3 论文所做的工作与研究内容随着EDA(Electronics Design Automation)技术的发展和可编程逻辑器件的广泛应用,传统的自下而上的数字电路设计方法、工具、器件已远远落后于当今技术的发展。基于EDA技术正在承担起越来越多的数字系统设计任务。本设计主要论述了利用FPGA进行测频计数,单片机实施

18、控制,实现多功能频率计的过程,使得频率计具有了测量精度高、功能丰富、控制灵活等特点。该频率计依照等精度的测量原理,克服了传统计数器测频原理随被测信号频率下降而降低的缺点。等精度测量方法不但具有较高的精度,而且在整个频率域保持恒定的测量精度。该频率计利用FPGA来实现对频率、周期、脉宽、占空比的测量计数,由单片机实现对系统的控制、数据的显示、数据运算及数制转换等功能。本设计的主要工作包括以下几项内容: 简述了当今频率计的发展状况,对几种常用的测频方法进行了介绍和对比。 详细地论述了等精度频率计的测频原理。在FPGA和单片机的基础上采用等精度的测量方法,实现了高精度的频率、周期、脉宽和占空比的测量

19、。 采用MSC-51单片机来实现对功能键的控制、数据运算、码制转换、数据显示等功能。 完成了频率计的系统硬件电路的设计,同时完成了基于数字硬件电路设计平台Max+plus的FPGA硬件电路设计,FPGA模块用来完成高速计数器的功能;单片机完成测试控制、数据处理等功能,并对整个系统进行总体控制。 对频率计的系统性能进行分析,分别分析了低端频率和高端频率得出本设计的测频范围是0.01Hz40MHz,同时分析了测量精度。 本文分6章介绍了基于FPGA和单片机的等精度数字频率计的设计原理、设计方法、开发步骤,并且对频率计的测量结果和实际输入频率进行比较,分析了本设计影响测量精度的主要因素。第二章 等精

20、度数字频率计测频原理与设计方法2.1 等精度数字频率计测频原理2.1.1 数字频率计的测频方法简介目前数字频率计的测频方法可以有以下几种实现方法: 直接测量法直接测量法是把频率信号经脉冲形成电路后加闸门的一个输入端,只有在闸门开通时间T(以秒计)内,计数脉冲被送到十进制计数器进行计数。设计数器的值为N,由频率定义可以计算得到被测信号频率为: (2-1)经分析,此种测量在低频段的相对测量误差较大。增大T可以提高测量精度,但在低频段仍不能满足任务要求。 组合法直接测量周期法在低频段精度高。组合法是指在低频时采用直接测量周期法测量信号的周期,然后换算成频率。这种方法在一定程度上可以弥补方法的不足,电

21、路实现较为复杂。 倍频法 直接测量法在高频段有着很高的精度。可以把频率测量范围分为多个频段,使用倍频技术,根据频段设置倍频系数将经整形的低频信号进行倍频后进行测量,高频段则进行直接测量。 直接测量周期法用被测信号经放大整形后形成的方波信号直接控制计门控电路,使主门开放时间等于信号周期,时标为Ts的脉冲在主门开放时间进入计数器。设T为被测周期,Ts为时标,在Tx时间计数值为N,可以根据以下公式来算得被测信号周期: (2-2)此种方法,被测信号频率越高,测量误差越大。采用多个周期进行计数取平均值的方法虽可提高精度,每一次的等待时间较长,显然是不可取的4。本课题测频原理为等精度测频原理5,下面就等精

22、度测频原理进行具体叙述。2.1.2 等精度测频原理等精度测频法的最大特点是在整个被测频率范围内都能达到相同的测量精度,而与被测信号频率大小无关。其原理图如图2.1所示。图2.1 等精度测频原理图图2.2 等精度频率计测频波形时序图当方波预置门控信号CL可由单片机发出,CL的时间宽度对测频精度影响较小,所以可以在1秒至0.1秒间选择,在此设其宽度为Tpr。BZH和TF模块是两个可控的32位高速计数器,BENA和ENA分别是它们的计数允许信号端,高电平有效。标准频率信号从BZH的时钟输入端BCLK输入,设其频率为Fs;经整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设其

23、真实频率为Fxe,被测频率为Fx。测频原理说明如下:测频开始前,首先发出一个清零信号CLR,使两个计数器和D触发器置零,同时通过信号ENA禁止两个计数器计数。这是一个初始化操作。然后由单片机发出允许测频命令,即令预置门控信号CL为高电平,这时D触发器要一直等到被测信号的上升沿通过时Q端才被置1,与此同时,将同时启动计数器BZH和TF,进入“计数允许周期”。在此期间,BZH和TF分别对标准频率信号(频率为Fs)和被测信号(频率为Fx)同时计数。当Tpr秒后,预置门控信号CL被单片机置为低电平,但此时两个计数器仍没有停止计数,一直等到随后而至的被测信号的上升沿到来时,才通过D触发器将把这两个计数器

24、同时关闭。设Fx为整形后的被测信号频率,Fs为基准信号频率,设在一次预置门时间Tpr中对被测信号的计数值为Nx,对标准频率信号的计数值为Ns,则有下式成立: (2-3)不难得到测得的频率为: (2-4)最后通过控制SEL选择信号和64位至8位的多路选择器MUX64-8,将计数器BZH和TF中的两个32位数据分8次读入单片机并按式(2-4)进行计算和结果的显示。2.2 等精度数字频率计的设计方法2.2.1 电子系统的设计方法现代电子系统一般由模拟子系统、数字子系统和微处理器子系统三大部分组成。从概念上讲,凡是利用数字技术处理和传输信息的电子系统都可以称为数字系统。传统的数字系统设计只能对电路板进

25、行设计,通过设计电路板来实现系统功能。利用EDA工具,采用可编程器件,通过设计芯片来实现系统功能,这种方法称为基于芯片的设计方法。新的设计方法能够由设计者定义器件的内部逻辑,将原来由电路板设计完成的大部分工作放在芯片的设计中进行。这样不仅可以通过芯片设计实现多种数字逻辑系统,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量和难度,从而有效的增强了设计的灵活性,提高了工作效率。同时,基于芯片的设计可以减少芯片的数量,缩小系统体积,降低能源消耗。图2-2所示为电子系统的传统设计方法和基于芯片的设计方法。图2-2(a)传统设计方法 (b)基于芯片设计方法 可编程逻辑器件和EDA技术

26、给今天的硬件系统设计者提供了强有力的工具,使得电子系统的设计方法发生了质的变化。现在,只要拥有一台计算机、一套相应的EDA软件和空白的可编程逻辑器件芯片,在实验室里就可以完成数字系统的设计和生产。第三章 主要芯片及设计工具简介3.1 主要芯片性能介绍3.1.1 AT89C51单片机性能介绍图3-1 AT89C51引脚图AT89C51是一个内含4K字节可编程可擦除的快闪存储器(Flash Memory)和128个字节RAM,低电压,高性能CMOS结构的8位单片机。采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和快闪存储器组合在

27、单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51的主要特性如下:与MCS-51兼容4K字节可编程快闪存储器寿命:1000次写/擦数据保留时间:十年128*8位内部RAM 32可编程I/0线 两个16位定时器/计数器五个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 其管脚的具体说明如下:VCC: 供电电压GND: 接地P0口:P0口为一个8位漏级开路双向I/O口,每个引脚可驱动8个TTL门电流。当P1口的管脚输入数据时,应先把口置1。作为外部地址/数据总线使用时,用于传送8位数据和低8位地址。在快闪编

28、程时,P0口输入,当快闪进行校验时,P0口输出,此时P0外部必须被拉至高电平。P1 口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能驱动4个TTL门。P1口管脚写入1后,被内部上拉为高,可用作输入。P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2口:P2口是一个内部提供上拉电阻的8位双向I/0口,P2口缓冲器可驱动4个TTL门电流,当P2口被写1 时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P1口当用作外部程序存储器或外部数据存储器进行存取时,P2口输出16位地址的高八位。在给

29、出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P3口:P3口管脚是八个带内部上拉电阻的双向I/O口,可驱动4个TTL门电流。当P3口写入1后,被内部上拉为高电平,并用作输入。P3口也可作为 AT89C51的一些特殊功能。如下表所示:管脚 备选功能P3. 0 RXD(串行输入口)P3. 1 TXD(串行输出口)P3.2 (外部中断0)P3.3 (外部中断1)P3. 4 T0(计时器0外部输入)P3. 5 T1(计对器1外部输入)P3. 6 (外部数据存储器写选通)P3. 7 外部数据存储器读选通)P3口同时为快闪编程和编程校验接收一些

30、控制信号。RST: 复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。PSEN: 外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 EA/VPP: 外部程序存储选择信号,输入,低电平有效。当保持低电平时,则在此期间外部存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式为1时, 将内部锁定为RESET;当 端保持高电平时,将从内部程序存储器读取指令码,只有当程序计数器PC大

31、于内部程序存储器地址空间时,才从外部程序存储器读取指令码,因此在没有内部ROM或不适用内部ROM的系统中, /VPP引脚一律接地。 XTAL1: 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2: 来自反向振荡器的输出。 振荡器特性:XTAL1 和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡都可以采用。如采用外部时钟源驱动器件,XTAL2应不接。由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 芯片擦除:整个EPROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并

32、保持ALE管脚处于低电平10ms来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM、定时器、计数器、串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所有其它芯片的功能,直到下一个硬件复位为止6。3.1.2 FLEX10K系列芯片性能介绍随着电子技术的发展,电子系统的设计方法也发生了很大的变化。传统的设计方法正逐步退出历史舞台,而基于EDA技术的芯片设计正在成为电子系统设计的主流。大规模可

33、编程逻辑器件CPLD和FPGA是当今应用最广泛的两类可编程专用集成电路(ASIC)。可编程逻辑器件是20世纪70年代发展起来的一种新型逻辑器件,是一种由用户编程来实现某种逻辑功能的新型器件,芯片内的逻辑门、触发器等硬件资源可由用户配置来连接实现专用的用户逻辑功能。它是大规模集成电路技术飞速发展与计算机辅助设计、计算机辅助生产和计算机辅助测试相结合的一种产物,是现代数字系统向超高集成度、超低功耗、超小封装和专用化方向发展的重要基础。它的应用和发展不仅简化了电路设计,降低了成本、提高了系统的可靠性和保密性,而且给数字系统的设计方法带来了革命性的变化。目前常用的可编程逻辑器件从结构上可划分为两大类:

34、CPLD和现场可编程门阵列FPGA。FPGA是20世纪80年代中期出现的可编程逻辑器件,其结构类似于掩膜可编程门阵列(MPGA),它由许多独立的可编程模块构成,用户可以通过编程将这些模块连接起来实现不同的设计。FPGA兼容了MPGA和PLD两者的优点,因而具有更高的集成度、更强的逻辑实现能力和更好的设计灵活性。FPGA具有掩膜可编程门阵列(MPGA)的通用结构,它由逻辑功能块排成阵列组成,并由可编程的互连资源连接这些逻辑功能块以及相应的输入/输出单元来实现不同的设计。其中FPGA的功能由逻辑结构的配置数据决定。工作时这些配置数据存放在片内的SRAM或熔丝上。基于SRAM的FPGA器件在工作前需

35、要从芯片外部加载配置数据。用户可以控制加载过程,在现场修改器件的逻辑功能,即所谓的现场编程。FLEX(Flexibl Logic Element Matrix)10K系列芯片是ALTERA公司新近推出的PLD产品。与ALTERA公司先前推出的MAX7000系列EPLD相比,FLEX10K(以下简称10K)系列具有更加丰富的内部资源(最多可达10万门),更加充裕的可配置的I/O管脚(最多达406条)。再加上其低廉的价格,使得10K系列芯片受到越来越多用户的欢迎。由于10K系列芯片是以可重新配置的CMOS静态RAM单元为基础构成的,因此必须在每次开机时对芯片进行配置。 本测频系统选用FPGA器件是

36、Alter公司所生产的FLEX10KEPF1020RC(208-4)。FLEX10K系列是第一款多达25万门的嵌入式PLD,FLEX10K具有高密度和意欲在设计中实现复杂宏函数和存储器的特点,因此可以适应系统级设计的要求。每个FLEX10K器件都包含一个嵌入式阵列,它为设计者提供了有效的嵌入式门阵列和灵活的可编程逻辑。另外,FLEX10K器件也提供多电压I/O接口,它允许器件桥接在不同电压工作系统中。FLEX10K还具有多个低失真时钟,以及时钟锁定和时钟自举锁相环电路,内部三态总线等特性。其具体性能特点如下: 工业界第一种嵌入式PLD系列,具有在单个器件中系统集成的能力,具有实现宏函数的嵌入式

37、阵列和实现普通功能的逻辑阵列。 高密度 具有10000到250000个可用门,高达40960位内部RAM。 系统级特点 支持多电压I/O接口;低功耗,维持状态时电流小于0.5mA,遵守PCI总线规定;内置JTAG边界扫描测试电路;器件采用先进SRAM工艺制造;通过外部EPROM、集成控制器或JTAG接口电路实现电路可重构(ICR);时钟锁定和时钟自举有助于减少时钟延迟/变形和对时钟进行倍频;器件内低变形时钟树形分布;所有器件都经过100%的性能测试。 灵活的内部连接 快速通道连续式布线结构带来快速可预测的连线延时;具有可以用来实现快速加法器、计数器和比较器的专用位链;具有实现告诉、多输入逻辑函

38、数专用级连链;模仿三态功能可以是内部三态总线;6个全局时钟信号和4个全局清除信号。 功能强大的I/O引脚 每个引脚都有一个独立的三态输出使能控制;每个I/O引脚都有漏极开路选择;可编程输出电压摆率控制可以减小开关噪声。 具有快速建立时间和时钟到输出的外部寄存器。 多样的封装形式 84到600引脚的各种封装,封装形式有TQFP、PQFP、BGA和PLC等;同一种封装中的各种FLEX10K器件的引脚兼容。 具有良好的软件设计支持和布局布线的能力。 能够与其他公司的多种EDA工具接口7。3.2 MAX+PLUSII概述MAX+plus的全称是Multiple Array Matrix and Pro

39、grammable Logic User System(多阵列矩阵既可编程逻辑用户系统)。MAX+plus是一个完全集成化的可编程逻辑设计环境,能满足用户各种各样的设计需要。它具有的强大功能能够极大地减轻设计者的负担,是设计者可以快速的完成所需的设计。MAX+plus开发系统具有很多突出的优点,这使他深受用户的青睐。 开放式的界面。Altera公司与EDA的各个开发商紧密合作,使MAX+plus可以与其他工业标准的设计输入、综合、校验工具相联接。当前MAX+plus软件提供与多种第三方EDA工具的接口。 设计与结构无关。MAX+plus支持Altera公司的多种可编程逻辑器件,提供了工业界真正

40、与结构无关的可编程逻辑设计环境。 可在多种平台上运行。 完全集成化。MAX+plus软件的设计输入、处理、检验功能完全集成于可编程逻辑开发工具内,从而可以更快的进行调试,缩短开发周期。 模块化工具。 支持硬件描述语言。MAX+plus支持多种HDL的设计输入,包括标准的VHDL、VerilogHDL以及Altera公司自己开发的硬件描述语言AHDL。3.3 KEIL C51语言简介C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进和扩充。而

41、针对8051的C语言日趋成熟,成为了专业化的实用高级语言。C语言作为一种非常方便的语言而得到广泛的支持,国内最通用的是Keil C51。C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。C提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。C-51与ASM-51相比,有如下优点:1.  对单片机的指令系统不要求了解,仅要求对8051 的存贮器结构有初步了解;2.  寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;3.  程序有规范的结构,可分成不同的

42、函数,这种方式可使程序结构化;4.  具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;5.  提供的库包含许多标准子程序,具有较强的数据处理能力;6.  由于具有方便的模块化编程技术,使已编好程序可容易地移植;Keil C51 µVision2集成开发环境是Keil Software,Inc/Keil Elektronik GmbH开发的基于80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立到管理、编译、连接、目标代码的生成、软件仿真和硬件仿真等完整的开发流程。尤其C

43、编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。Keil C51集成开发环境的主要功能有以下几点:l µVision2 for WindowsTM:是一个集成开发环境,它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中;l C51国际标准化C交叉编译器:从C源代码产生可重定位的目标模块;l A51宏汇编器:从80C51汇编源代码产生可重定位的目标模块;l BL51连接/定位器:组合由C51和A51产生的可重定位的目标模块,生成绝对目标模块;l LIB51库管理器:从目标模块生成链接器可以使用的库文件;l OH51

44、目标文件至HEX格式的转换器:从绝对目标模块生成Intel HEX文件;l RTX51实时操作系统:简化了复杂的实时应用软件项目的设计。本设计采用的是C51的语言,因为C语言的可读性好、通俗易懂。3.4 VHDL 语言简介美国国防部在20世纪70年代末和80年代初提出了VHSIC(Very High Speed Integrated Circuit)计划,VHSIC计划的目标是为下一代集成电路的生产、实现阶段性的工艺极限以及完成10万门级以上的设计建立一项新的描述方法。1981年美国国防部提出了一种新的硬件描述语言HDL,称为“超高速集成电路硬件描述语言”,简称VHDL(VHISC Hardw

45、are Description Language)语言。VHDL语言是IEEE标准化的硬件描述语言,并且已经成为系统描述的国际公认标准。VHDL语言的特点决定了它的地位,它的特点主要有: 强大的功能和灵活性。VHDL语言具有功能强大的语言结构,可以用简明明确的程序来描述复杂的逻辑控制。为了有效控制设计的实现,它具有多层次的设计描述功能,支持设计库和可重复使用的元件生成;而且它还支持阶层设计和提供模块设计的创建。 独立于器件的设计。 可进行程序移植。VHDL语言的移植能力就是指同一个设计的VHDL语言描述可以从一个模拟工具移植到另一个模拟工具、从一个综合工具移植到另一个综合工具或者从一个工作平台

46、移植到另一个工作平台。 性能评估能力。 易于ASIC移植。 VHDL语言标准、规范,易于共享和复用。VHDL语言的语法规范、标准,可读性强。用VHDL语言书写的代码文件既是程序,又是文档;既是设计人员进行设计成果交流的交流文件,也可以作为合约签约者之间的合同文本。尽管VHDL语言作为IEEE的工业标准具有许多其它硬件描述语言所不具有的主要优势,同时他也存在着一些不足之处。具体表现在: 需要了解较多的硬件电路知识。 VHDL语言的描述会与实际硬件电路的工作方式不符。 不具有描述模拟电路的能力7。第四章 硬件电路设计4.1 系统组成本设计的核心部件为AT89C51单片机和现场可编程芯片FPGA,所

47、有信号包括标准频率信号,被测信号,自校信号均可在AT89C51单片机的控制下送到FPGA芯片中,单片机将每次测试结果读入内存RAM中,经运算处理后,由RXD口以BCD码的形式送入数码管显示电路显示。整个系统在硬件上可分为显示模块、键盘输入模块和测频模块三个部分。键盘控制命令直连单片机,快速的实现测频、测周期、测脉宽、测占空比及复位等功能的控制。该设计以FPGA系统外接的40MHz晶振作为标准频率,单片机由外接的12MHz标准晶振提供时钟电路。等精度测频框图如图4.1所示。图4.1 等精度测频系统框图4.2 键盘接口电路本设计采用独立式键盘,其一般应用在按键数量比较少的系统中。键盘控制命令由键盘

48、扫描译码电路读入,当有按键按下时向单片机发出中断请求读取键值。键盘译码电路的ky引脚接单片机的外部中断0输入引脚,用于向单片机发出中断请求读取键值。没有按键按下时,键盘译码电路的ky为高电平;当有按键按下时,键盘扫描译码电路在确定不是干扰后,ky引脚变为低电平,向单片机发出中断请求读取键值,当按键撤销后,ky恢复高电平。键盘译码电路的k0.2用于向单片机输入键值。由于单片机读取键值的操作是通过外部中断引起的,这样在没有键按下时,CPU就不会执行扫描程序,提高了CPU工作的效率。键盘接口电路如图4.2所示。图4.2 键盘接口电路4.3 显示电路4.3.1 LED显示模块发光二极管LED是一种通电

49、后能发光的半导体器件,其导电性质与普通二极管类似。LED数码显示器就是由发光二极管组合而成的一种新型显示器件。在单片机系统中应用非常普遍。LED数码显示器是一种由LED发光二极管组合显示字符的显示器件。它使用了8个LED发光二极管,其中7个用于显示字符,1个用于显示小数点。LED数码显示器有两种连接方法:(1)共阳极接法。把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。当阴极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不点亮。(2)共阴极接法。把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极通

50、过电阻与输入端相连。当阳极端输入高电平时,段发光二极管就导通点亮,而输入低电平时则不点亮。在本设计中所采用的是共阴极接法的LED数码显示器,其引脚排列如图4.3所示:图4.3 LED数码显示管示意图4.3.2 显示模块LED数码管显示电路采用八片首尾相连的74LS164锁存器和8个LED数码管显示测试结果。考虑到提高单片机IO口的利用率,降低编程复杂性,提高单片机的计算速度以及降低数码显示器对主系统的干扰,采用串行静态显示方式。八片首尾相连的74LS164作为LED数码管的静态显示锁存器,芯片74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2管脚)为串行数

51、据输入端,2个引脚按逻辑与运算规律输入信号,公用一个输入信号时可并接,本次设计中将其接到AT89C51的RxD端,CLK(第8管脚)为时钟输入端,连接到AT89C51的TxD端。每一个时钟信号的上升沿加到CLK端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。 (第9管脚)为复位端,当=0时,移位寄存器各位复0,只有当=1时,时钟脉冲才起作用。由于74LS164芯片输出低电平时具有8mA的灌电流能力,在静态显示方式下足以保证显示亮度。因为74LS164输出没有锁存功能,所以在传送信号时输出端数码管会有瞬间闪烁,但由于系统采用12HMz晶振,传送波特率高达1M,且一

52、次发送数据较少,故闪烁并不明显9。表4-1是七段数码管可以显示的字符。表4-1 七段数码管可以显示的字符字符b7 b6 b5 b4 b3 b2 b1 b0共阴笔端码 01 1 0 0 0 0 0 03FH 11 1 1 1 1 0 0 1 06H 21 0 1 0 0 1 0 0 5BH 31 0 1 1 0 0 0 0 4FH 41 0 0 1 1 0 0 1 66H 51 0 0 1 0 0 1 0 6DH 61 0 0 0 0 0 1 0 7DH 71 1 1 1 1 0 0 0 07H 81 0 0 0 0 0 0 0 7FH 91 0 0 1 0 0 0 0 6FH A1 0 0 0

53、 1 0 0 0 77H B1 0 0 0 0 0 1 1 7CH C1 1 1 0 0 1 1 0 39H D1 0 1 0 0 0 0 1 5EH E1 0 0 0 0 1 1 0 79H F1 0 0 0 1 1 1 0 71H p1 0 0 0 1 1 0 0 73H H1 0 0 0 1 0 0 1 76H Y1 0 0 1 0 0 0 1 6EH不显示1 1 1 1 1 1 1 1 00H4.4 测量电路 测量电路是由测频与自校选择模块、脉宽控制模块和测频/测周期模块组成。其中测频与自校选择模块是在系统自检时,将标准频率作为被测频率信号送给系统,而在系统正常测量时,将被测信号送给系

54、统。脉宽控制模块和测频/测周期模块是根据按键键值共同控制选择被测量。其中管脚Spul为脉宽和测频/测周期的选择输入信号,由单片机根据需要发出。当Spul为高电平时,测频/测周期模块的32位计数器的输入使能由D触发器控制,其测量预置门控时间为被测信号周期的整数倍,此时计数值用来计算被测信号的频率;当SPUL为低电平时,标准计数器的输入使能由附加模块的PL输出来控制,测量门控时间为被测信号的一个正脉宽的时间或一个负脉宽的时间宽度,此时标准计数器的计数值用来测量被测信号的脉宽宽度。CLR为低电平时,计数器使能端BENA为低电平,测频/测周期电路不工作,系统清零。Spul为1时,系统测量被测信号的频率

55、,当CL变为高电平时,在随后到来的TCLK的上升沿BENA及START引脚变为高电平,计数器开始计数;当CL变为低电平时,在随后到来的TCLK上升沿BENA变为低电平,计数器停止计数。同时START引脚变为低电平用以通知单片机计数结束。在单片机发出的sel2sel0控制下通过data7data0分8次将计数器的计数值读入单片机8。测量电路原理图如图4.4所示,测量电路波形图如图4.5所示。图4.4 测量电路原理图图4.5 测量电路波形图4.4.1 测量与自校选择电路测频与自校选择电路采用的是图形输入方式,其原理图如图4.6所示。As为自校与测频选择,接单片机的P2.7引脚,FX接标准频率输入,

56、FS接被测频率输入。测频与自校选择电路用于系统自检,当as为高电平时,系统自检开始,FOUT输出标准频率BCLK,将标准频率作为被测频率进行测量,根据测量结果来判断系统运行是否正常;当as为低电平时,系统自检结束,FOUT输出被测频率TCLK。标准频率取自FPGA的外部晶振。选择控制信号as为高电平时,输出端为BCLK;as为低电平时,输出端为TCLK。测频与自校选择电路波形图如图4.7所示。图4.6 测频与自校选择电路原理图图4.7 测频与自校选择电路波形图4.4.2 测频/测周电路测频原理图如图4.8所示。测频/测周期电路是由两个32位计数器、一个D触发器和一片MUX64-8选择器组成。B

57、CLK管脚为标准频率信号的输入引脚,TCLK管脚为被测频率信号的输入引脚;CL管脚为预置门控信号输入引脚;CLR为计数器清零信号输入引脚,每次新的测量开始时都要将计数器清零,以免产生错误;sel2sel0管脚为单片机读入数据时的数据选择信号输入,以便单片机分八次将两个32位计数器的计数值读入。图4.8 等精度测频原理图当系统开始测量被测信号的频率时,首先由单片机将CLR端置为高电平,完成测试电路的初始化。接下来,单片机将门控信号CL置为高电平,由被测信号的上升沿将两个计数器同时打开,对被测频率和标准频率同时进行计数。门控时间结束后,单片机将门控信号CL置为低电平,在被测信号的下一个脉冲的上升沿

58、到来时,两个计数器将同时停止工作。计数结束后,由START端输出的低电平来指示计数的结束,通过sel信号和MUX64-8多路选择器将计数器中得到的64位数据分8次读入单片机并按下式计算和结果显示。设标准信号的频率为Fs,被测信号的频率为Fx,在一次预置门控时间内,对被测信号的计数器为Nx,对标准信号的计数值为Ns,则下式成立: (4-1)两计数器的计数周期总是等于被测信号TCLK周期的整数倍,这是确保TCLK在任何频率下测频结果都能保持恒定精度的关键。测频模块的波形图如图4.9所示,CLR为低电平时,计数器使能端BENA为低电平,测频电路不工作。当CLR和CL均为高电平后,在随后到来的TCLK

59、上升沿使BENA变为高电平,计数器开始计数;当CL便为低电平后,在随后到来的TCLK上升沿使BENA变为低电平,计数器停止计数,同时START引脚变为低电平,通知单片机计数已结束。在单片机发出的sel2sel0控制下通过data7data0分8次将计数器的计数值读入单片机。图4.9 测频模块的波形图4.4.3 脉宽控制电路脉宽控制电路原理图如图4.10所示。该电路采用的是图形输入法。CL为单片机发出的预置门控信号,CLR为单片机发出的复位信号,TCLK为被测信号的输入,1引脚始终接高电平。输出引脚PL有两个作用:一是在某些情况下作为标准频率计数器的使能控制信号;二是作为计数器计数结束信号通知单

60、片机读取数据。CLR为低电平时,输出PL为低电平,CL与SPUL联合控制实现其功能。CL=0时,PL输出一个宽度为被测信号负脉冲的脉冲;CL=1时,PL输出一个宽度为被测信号正脉冲的脉冲。此脉冲作为计数器的计数使能信号,控制计数的起止。当计数结束后,由PL输出的计数结束信号(低电平)通知单片机读取数据。图4.10 脉宽控制电路原理图脉宽控制电路波形图如图4.11所示,其中1引脚始终为高电平,当CL为高电平时,PL引脚输出宽度TCLK高(正)脉冲宽度的脉冲;CL为低电平时,PL输出宽度为TCLK低(负)脉冲宽度的脉冲。图4.11 脉宽控制电路波形图4.5 硬件电路的VHDL语言描述4.5.1 D触发器D触发器是现代数字系统中最基本的时序单元和低层元件,许多功能电路都有其构成,D触发器因不同的应用场合的设计是十分必要的。本设计中的D触发器为带有异步清零功能的D触发器。当复位信号RESET为低电平时,D触发器的输出端Q和Qb分别输出逻辑0和1,与其他输出无关。当复位信号RESET为高电平时,每当时钟输入CLK有一个上升沿时,输出端Q便转换为与输入信号D相同的逻辑值,输出端Qb的值始终与Q端相反。D触发器真值表如表4-2所示:表4-2 D触发器真值表 RESET D CLK Q

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

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

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


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