基于单片机IP核的等精度频率计设计.docx

上传人:b****5 文档编号:28101425 上传时间:2023-07-08 格式:DOCX 页数:32 大小:501.77KB
下载 相关 举报
基于单片机IP核的等精度频率计设计.docx_第1页
第1页 / 共32页
基于单片机IP核的等精度频率计设计.docx_第2页
第2页 / 共32页
基于单片机IP核的等精度频率计设计.docx_第3页
第3页 / 共32页
基于单片机IP核的等精度频率计设计.docx_第4页
第4页 / 共32页
基于单片机IP核的等精度频率计设计.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

基于单片机IP核的等精度频率计设计.docx

《基于单片机IP核的等精度频率计设计.docx》由会员分享,可在线阅读,更多相关《基于单片机IP核的等精度频率计设计.docx(32页珍藏版)》请在冰豆网上搜索。

基于单片机IP核的等精度频率计设计.docx

基于单片机IP核的等精度频率计设计

基于单片机IP核的等精度频率计设计

摘要

FPGA确实是目前最受欢迎的可编程逻辑器件之一。

IP核是将一些在数字电路中经常使用但比较复杂的功能模块,设计成可修改参数的模块,让用户能够直接挪用这些模块。

随着FPGA的规模愈来愈大,利用IP核是一个进展趋势。

传统测频原理的频率计的测量精度将随被测信号频率的下降而下降,在利用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且整个频率区域能维持恒定的测试精度。

本文结合FPGA与8051单片机的优势实现了基于FPGA的8051IP核应用,设计一个等精度频率计。

关键词:

FPGA,8051IP核,等精度频率计设计

Abstract

FieldProgrammableGateArray(FPGA)isoneofthemostwelcomedprogrammablelogicdevices.IPcoreisamodulewhichhaschangeableparameters.WiththeIPcorewecanimplementsomecomplexfunctionalmoduleindigitalcircuits.WiththeincreasingscaleintheFPGA,UsingIPcoreisbecomingmoreandmorepopular.

TraditionalfrequencymeasurementprincipleofthefrequencyaccuracywilldeclinewiththedeclineofthesignalHasagreaterlimitationsinuse.Equalprecisionfrequencymeternotonlyhashighmeasurementaccuracy,andthewholefrequencyregioncanmaintainaconstanttestaccuracyCombiningtheadvantagesofFPGAand805lMCU,thepapermainlyrealizetheapplicationof8051IPcorebasedonFPGAthatdesignasameaccuracyfrequency.

Keywords:

FPGA,8051IPcore,sameaccuracyfrequency

 

第一章绪论

课题研究背景及意义

随着可编程逻辑设计技术的进展,每一个逻辑器件中门电路的数量愈来愈多,一个逻辑器件就能够够完本钱来由很多分立逻辑器件和存储芯片完成的功能。

如此做减少了系统的功耗和本钱,提高了性能和靠得住性。

FPGA(FildProgrammableGateArray)确实是目前最受欢迎的可编程逻辑器件之一。

IP确实是知识产权核或知识产权模块的意思,在EDA技术开发中具有十分重要的地位。

闻名的美国Dataquest咨询公司将半导体产业的IP概念为用于ASIC或FPGA/CPLD中的预先设计好的电路模块。

随着FPGA的规模愈来愈大,设计愈来愈复杂,利用IP核是一个进展趋势。

此刻很多电子系统都是由单片机+FPGA实现的。

长期以来,单片机以其性价比高、体积小、功能灵活等方面的独特优势被普遍应用。

但受其内部资源的限制,单片机需要在片外扩展相关资源。

为了达处处置速度和操纵灵活性方面的需求,采纳微操纵器和可编程逻辑器件设计单片机嵌入式系统。

将单片机做在FPGA中,不但减少了电路中间连线,而且整个系统的靠得住性取得增强,同时由于FPGA的速度快,FPGA中的单片机的速度可达100MHZ以上,整个系统的性能也能取得充分地改善。

基于传统测频原理的频率计的测量精度将随被测信号频率的下降而下降,即测量精度随被测信号的频率的转变而转变,在利用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且整个频率区域能维持恒定的测试精度。

本课题主若是应用已做好的8051IP核设计等精度频率计。

要紧任务

在了解数字频率计的基础上分析等精度频率计相关于传统频率计的优越性,研究等精度频率计的工作原理和实现方式,在FPGA开发板提供的硬件环境上设计程序运行的流程框图。

用VHDL编写测频模块,对FPGA中的单片机核编写输入、显示等程序,完成等精度频率计的设计。

系统总框架图如图1-1所示。

 

图1-1实验系统总框架图

第二章杭州康芯公司KX2C5F+开发板介绍

KX2C5F+系统简介

KX2C5F+系统是康芯公司电子设计竞赛作品板,其系统硬件结构组成如下:

1、KX2C5F+系统选用Altera公司CycloneII系列EP2C5T144FPGA。

其包括4608个逻辑宏单元、两个锁相环,约20万门、约12万RAMbit。

2、含全兼容工业级8051核、其主频最高可达250MHz,是一般单片机速度的20倍。

3、EPM3032CPLD、1MEPCS1Flash、蜂鸣器、20MHz晶振、8键、1数码管,HS162-4LCD液晶显示器。

4、JTAG、VGA、RS232接口、PS2口、USB电源口。

五、FPGA编程器、字符型液晶驱动口(可直接接多种类型字符型液晶)、点阵型液晶驱动口(可直接接数字彩色或黑白点阵型液晶)。

依照任务要求设计要紧应用到EP2C5T144FPGA、USB电源口、JTAG下载口和字符型液晶驱动口,其硬件系统结构框图如图2-1所示:

图2-1硬件系统结框图构图

要紧应用

可配置于KX2C5F+系统FPGA的单片机CPU核与传统MCS-51单片机高度兼容(极个别指令不兼容),但速度约为传统单片机的20倍,在FPGA芯片优化良好的条件下,主频最高可达250MHz;一样用C或汇编语言完成软件设计。

目前许多有效SOC应用系统都利用此类通用CPU实现设计。

电子设计竞赛中,需要实现高速算法或高速操纵的项目愈来愈多,如此高速的单片机核,几乎能够用来完成某些DSP功能,如语音处置,紧缩和频谱分析等。

再加上FPGA本身的高速性能,完成许多高性能指标的系统功能将变得十分容易;而把CPU、锁相环、数据RAM、程序ROM、接口模块、通信模块、显示操纵模块、数据采样和信号发生模块等等,都放在同一片FPGA内,从而组成SOC系统,这将使系统的设计效率和系统性能取得极大的提高,这也是现代电子设计技术的进展方向。

KX2C5F+系统开发板能够应用于很多设计。

那个地址,依照论文的目的,在完成设计任务时,用8051IP核加上锁相环、RAM和ROM组成一个单片机。

通过锁相环将单片机时钟设置为40MHz。

此单片机的任务是将测得的频率在LCD显示。

第三章系统设计

8051单片机介绍

MSC-51系列单片机的内部结构由八部份组成,以80C51单片机为例,其内部按功能可划分为CPU、存储器、I/O端口、按时/计数器、中断系统等模块。

MSC-51系列单片机芯片有40个引脚,是采纳HMOS工艺制造,双列直插(DIP)方式封装的芯片,其引脚如图3-1所示。

图3-1MCS-51系列单片机引脚

8051单片机IP软核介绍

CPU8051V1是康芯公司提供的8051单片机核,由VQM原码(VerilogQuartusMappingFile)表述:

,可直接挪用。

与一般MCS-51系列单片机一样,8051单片机核也含有8位复杂指令CPU,其结构框图如图3-2所示。

8051单片机核的指令系统与8051/二、8031/2等完全兼容,硬件部份也大体相同,例如可接64KB外部存储器,可接256字节内部数据RAM,含两个16位按时/计数器,全双工串口,含节省功耗工作模式,中断响应结构等等。

不同的地方要紧有:

一、8051V1是以网表文件的方式存在的,只有通过编译综合,并载入FPGA中才以硬件的方式工作,而一般8051老是以硬件方式存在的;

二、8051V1无内部ROM和RAM,所有程序ROM和内部RAM都必需外接。

从图3-2可见,它包括了“数据RAM端口”和“程序存储器端口”,是连接外接ROM、RAM的专用端口(此ROM和RAM都能用LPM_ROM和LPM_RAM在同一片FPGA中实现)。

但是一般8051芯片的内部RAM是在芯片内的,而外部ROM的连接必需以总线方式与其P0、P2口相接(AT89S51的ROM在芯片内,CPU核外)。

3、以软核方式存在能进行硬件修改和编辑;能对其进行仿真和嵌入式逻辑分析仪实现实不时序测试;能依照设计者的意愿将CPU、RAM、ROM、硬件功能模块和接口模块等实现于同一片FPGA中(即SOC)。

4、与一般8051不同,8051单片机核的4个I/O口是分开的。

例如P1口,其输入端P1I和输出端P1O是分开的,若是需要利用P1口的双向口功能,必需外接一些电路才能实现。

图3-28051V1原理图元件

8051单片机IP软核有效系统构建

8051V1核在接上了ROM和RAM后就成为一个完整的8051单片机了,图3-3是依照任务要求绘制的8051V1核有效系统的最大体构建顶层原理图,要紧由4个部件组成:

一、8051V1核。

图中的CPU8051V1即单片机核,由VQM原码表述:

,能够直接挪用。

该元件能够与其他不同语言表述的元件一同综合与编译。

二、嵌入式锁相环PLL50。

载入锁相环,设置其输入频率为20MHz,输出频率为40MHz,8051V1能同意的工作时钟频率上限取决于FPGA的速度级别。

3、程序ROM,LPM_ROM。

采纳ROM容量的大小也取决于FPGA所含的嵌入RAM的大小。

图3-3中设置的ROM容量是4K字节,关于一样的应用足够了。

此ROM能够加载HEX格式文件作为单片机的程序代码。

HEX程序代码能够直接利用一般8051单片机程序编译器生成。

4、数据RAM,LPM_RAM。

图3-3中设置的LPM_RAM容量是256字节。

高128字节须用间接寻址方式访问。

那个地址的LPM_ROM和LPM_RAM挪用方式参见其它资料。

图3-3中,P0I[7..0]、P1I[7..0]、P2I[7..0]、P3I[7..0]别离为P0、P一、P二、P3口的输入口;P0O[7..0]、P1O[7..0]、P2O[7..0]、P3O[7..0]别离为P0、P一、P二、P3口的输出口。

各口的应用再依照任务要求进行连线。

图3-3大体8051CPU核应用

等精度频率计设计

等精度测频原理

等精度测频的实现方式可简化为图3-4所示。

CNT1和CNT2是两个可控计数器,标准频率信号设定为40MHz从CNT1的时钟输入端CLK输入,通过整形后的被测信号从CNT2的时钟输入端CLK输入,当预置门控信号为高电平常,通过整形后的被测信号的上升沿通过D触发器的Q端同时启动CNT1和CNT2。

CNT一、CNT2同时对标准频率信号和经整形后的被测信号进行计数,别离为Ns与Nx。

当预置门信号为低电平的时候,后面而来的被测信号的上升沿将使两个计数器同时关闭,所测得的频率为(Fs/Ns)*Nx.那么等精度测量方式测量精度与预置门宽度的标准频率有关,与被测信号的频率无关。

图3-4等精度测频实现原理

等精度测频方式是在直接测频方式的基础上进展起来的。

它的闸门时刻不是固定值,而是被测信号周期的整数倍,即与被测信号同步。

因此除对被测信号计数所产生的1个周期误差,而且达到了在整个测试频率时期的等精度测量。

如图3-5在测试进程中,有两个计数器别离对标准信号和被测信号同时计数。

第一由单片机给出给出闸门信号,在t1时刻内维持高电平,当单片机赋给预置门高电平信号时实际闸门并未打开现在计数器并非开始计数,而是等到被测信号的上升沿到来时才打开实际闸门,计数器才真正开始计数,然后单片机发给预置闸门低电平关闭信号,计数器并非当即停止计数,而是等到被测信号的上升沿到来时才关闭实际闸门信号开始终止计数,完成一次测试进程。

能够看出,实际闸门时刻为t1,预置闸门时刻为t,两个闸门时刻并非严格相等,可是差值不超过被测信号的一个周期。

图3-5等精度测频原理

设在一次实际闸门时刻t中计数器对被测信号的计数值为Nx,对标准信号的计数值为Ns。

标准信号的频率为fs,那么被测信号的频率如下式:

fx=(Nx/Ns)*fs在测量中,由于fx计数的启停时刻都是由该信号的上升沿动身的,在闸门时刻t内对fx的计数Nx无误差,对fs的计数Ns最多相差一个数的误差,

δ=1/fs

由上式能够看出,测量频率的相对误差与被测信号频率的大小无关,仅与标准信号频率有关,即实现了整个测量频段的等精度。

标准频率越高,测量的相对误差越小。

在保证精度测量不变的前提下,提高标准信号频率,可是闸门时刻缩短,即提高测试速度。

等精度测频实现

等精度频率计的实现能够简单地用图3-6和波形图3-7来讲明设。

图3-4中“预置门控信号”CL可由单片机发出,能够证明,在1秒至秒间的选择范围内,CL的时刻宽度对测量精度几乎没有阻碍,在此设其宽度为Tpr。

BZH和TF模块是两个可控的32位高速计数器,BENA和ENA别离是它们的计数许诺信号端,高电平有效。

标准频率信号40MHz从BZH的时钟输入端BCLK输入,设置频率为Fs;经整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设置真实频率值为Fxe,被测频率为Fx。

等精度频率计原理如以下图3-6所示:

图3-6等精度频率计设计原理图

bclk为标准频率信号设定为40MHz,tclk为被测信号,被测信号的范围为1Hz到40MHz。

clr为清零信号,cl为预置门信号,start为实际闸门信号,sel为数据选择器的操纵端口,data为数据传送端口。

测试开始前,第一发出一个清零信号CLR,使两个计数器和D触发器置0,同时D触发器通过信号ENA,禁止两个计数器计数。

这是初始化操作。

然后由单片机发出许诺测频命令,即令预置门控信号CL为高电平这时D触发器要一直等到被测信号的上升沿通过Q端时才把start置1,与此同时,将同时开启计数器BHZ和TF,进行计数,当Tpr秒后,预置门信号CL被单片机置为低电平,但现在两个计数器并无停止计数,一直等到随后而至的被测信号的上升沿到来时start为0,才通过D触发器将这两个计数器同时关闭

图3-7等精度频率计波形仿真

设在一次预置门时刻中对被测信号的计数值为Nx,对标准频率计数值为Ns,那么下式成立:

Fx/Nx=Fs/Ns

不宝贵到测得的频率为:

Fx=(Fs/Ns)*Nx

测量占空比的原理

设定中间信号pl,别离取被测信号的一个正脉宽和一个负脉宽作为门控信号,对标准频率进行计数,对正脉宽的计数值为N1,对负脉宽的计数值为N2,那么周期计数值为N1+N2,于是占空比为:

占空比=N1*100%)/(N1+N2)

图3-8

测量占空比的实现

关于占空比的测量,能够通过测量正反两脉宽的计数值来取得。

设BZH对正脉宽的计数值为N1,对负脉宽的计数值为N2,那么周期计数值为N1+N2,于是占空比为:

占空比=(N1*100%)/(N1+N2)

占空比的测量流程如以下图3-9所示:

图3-9占空比测量流程图

测量占空比的波形仿真见以下图3-10占空比仿真波形,BCLK为标准频率信号为40MHz,TCLK为被测频率信号,CL预置门信号设置为低电平,给清零信号CLR一个有效电平(高电平有效),等待EEND由低电平跳变成高电平常表示对被测信号的一个负脉宽计数终止,现在读取标准计数器的数据标记为N1,然后再给出清零信号CLR一个有效电平,预置门控信号设置为高电平,等待EEND由低电平跳变成高电平常表示对被测信号的一个正脉宽计数终止,现在再读取标准计数器的数据标记为N2,对N1,N2进行简单的算术运算就能够够取得占空比。

图3-10占空比仿真波形

单片机的功能

数据传输与计算

第一用VHDL语言编写一个八选一数据选择器,其封装模块如图3-8所示,其要紧功能是由P0口的3根输出信号操纵,将32位测频数据分成8个四位依次送进单片机P2的输入口。

图3-11八选一数据选择器

BZQ接标准频率计数器的数据口,TSQ接被测信号计数器的数据口,sel二、sel一、sel0接单片机的、、,DATA[7..0]接单片机的P2口,单片机程序在KeilC环境下开发,实现将32位二进制测频数据分成8个四位由高位到低位的顺序依次送到单片机。

单片机程序设计思想:

设置、、作为数据选择器的地址输入端,设置从000-111情形下依次将标准频率计数器和被测频率计数器的数据别离送到单片机。

概念一个32位的数据类型,把每次同意的8位数据通过“位移”指令和简单的加法还原为32位,再进行算术运算,取得想要的结果,驱动液晶显示出来。

液晶显示

液晶显示器以其微功耗、体积小、显示内容丰硕、超薄轻巧的诸多优势,在袖珍式仪表和低功耗应用系统中取得愈来愈普遍的应用。

本实验利用字符型液晶模块HS162-4。

HS162-4液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,依照显示的容量能够分为1行16个字、2行16个字等。

HS162-4采纳标准的16脚接口,其中VSS为地电源,VDD接5V正电源。

V0为液晶显示器对照度调整端,接正电源时对照度最弱,接地电源时对照度最高,对照度太高时会产生“阴影”,利历时能够通过一个10K的电位器调整对照度。

RS为寄放器选择,高电平常选择数据寄放器、低电平常选择指令寄放器。

RW为读写信号线,高电平常进行读操作,低电平常进行写操作。

当RS和RW一起为低电平常能够写入指令或显示地址,当RS为低电平RW为高电平常能够读忙信号,当RS为高电平RW为低电平常能够写入数据。

E端为使能端,当E端由高电平跳变成低电平常,液晶模块执行命令。

LEDA和LEDK为背光电源,LEDA接5V正电源,LEDK接GND。

D0~D7为8位双向数据线。

液晶显示模块是一个慢显示器件,因此在执行每条指令之前必然要确认模块的忙标志为低电平,表示不忙,不然此指令失效。

要显示字符时要先输入显示字符地址,也确实是告知模块在哪里显示字符,表3-1是HS162-4的内部显示地址。

表1-1HS162-4内部显示地址表

即,第1行的显示开始地址应为:

80H;第2行的显示开始地址应为:

C0H。

液晶的三个操纵信号RS、RW、E,别离接单片机的、、,8位数据线接P1口,在程序中设置三个按键切换不同的功能:

K2(复位)————显示“QingGuangMing”

“BiYeSheJi”

K3(测频率)------显示“FREQ:

“测量所得的频率”

K4(测占空比)-----显示“DUTY:

“所测得的占空比”

按键操纵的液晶显示流程图如以下图3-12所示:

图3-12按键操纵液晶显示流程图

单片机与FPGA的组合应用

把FPGA程序和单片机程序别离调试好后再组合起,锁定引脚、编译、下载进行联合调试。

整体流程图如以下图所示,bclk接标准频率信号40MHz,tclk接被测信号,clr接口,cl接口,spul接口,sel二、sel一、sel0别离接单片机、、口,start接口,eend接口,data接P2口,按键K2是复位开关显示初始化内容,按键K3接测频显示,按键K4接测占空比显示。

图3-13整体框图

第四章程序调试

等精度频率计程序

把等精度频率计模块与单片机系统正确确连接,锁定好引脚,专门注意不用的单片机I/O口要接地。

连线与引脚锁定别离见以下图4-1一、4-12。

图4-11

图4-12

单片机程序和VHDL程序编译在一路下载到FPGA中

点击ROM,文件途径该成如图4-21所示点“./ASM”表示把单片机的hex文件存在当前工程ASM中。

图4-21

点击“Tool”选择“Programmer”,再点击“start”进行下载“progress”显示100%表示下载成功,如以下图4-22

图4-22

第五章结果讨论

信号发生器发发出的频率

实际值

测量值

误差

16MHz

1999799Hz

1997929Hz

%

10MHz

9999213Hz

9989659Hz

%

9MHz

8999195Hz

8990683

%

100K

99970Hz

99897Hz

%

50K

49985Hz

49948Hz

%

20K

19994Hz

19979Hz

%

10K

9997Hz

9990Hz

%

1K

999Hz

999Hz’

0

500Hz

499Hz

499Hz

0

300Hz

299.9Hz

299Hz

0

200Hz

199Hz

0

70Hz

69Hz

0

总结

本课题实现了用FPGA中的单片机IP核设计等精度频率计的系统。

用VHDL语言设计搜集频率的部份,将测频结果送到8051单片机IP核中处置,8051单片机软核再驱动液晶显示测频和占空比数据。

本课题要紧目的是学会8051单片机IP软核的应用,了解其与传统MCS-51单片机高度兼容(极个别指令不兼容),但速度为传统单片机的20倍,优化良好的条件下,主频最高可达250MHz,可实现SOC片上系统设置的优势。

另外,等精度频率计设计、单片机C语言的编写,也让我受益很多。

 

致谢

在这次毕业设计的进程中,我取得很多教师和同窗的帮忙,我的指导教师孙妍教师一直对我耐心指导,碰到问题时给我指出很有效的解决方式。

物理学院全部电子教研组的教师都为咱们全班同窗的毕业设计付出了辛勤的劳动。

在此,谨向导师表示高贵的敬意和衷心的感激!

同时,也对咱们08届电子信息科学专业的列位领导和教师的辛苦劳动表示由衷感激!

 

参考文献

1.潘松黄继业,EDA技术有效教程,科学出版社,2020

2.阎石等,数字电子技术基础,高等教育出版社,2005

3.李云侯布道等,VHDL电路有效教材,机械工业出版社,2020

4.谭浩强,C程序设计,清华大学出版社,2007

5.倪云峰等,单片机原理与应用,西安电子科技大学出版社,2020

6.陈海宴,51单片机原理及应用,北京航空航天大学出版社,2020

 

附录

附录1:

等精度频率计相关程序

libraryieee;

useetesteris

port(bclk:

instd_logic;

tclk:

instd_logic;

clr:

instd_logic;

cl:

instd_logic;

spul:

instd_logic;

start:

outstd_logic;

eend:

outstd_logic;

sel:

instd_logic_vector(2downto0);

data:

outstd_logic_vector(7downto0));

endetester;

architecturebehavofetesteris

signalbzq:

std_logic_vector(31downto0);

signaltsq:

std_logic_vector(31downto0);

signalena:

std_logic;

signalma,clk1,clk2,clk3:

std_logic;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1