基于FPGA的等精度数字频率计总结

合集下载

FPGA等精度频率计

FPGA等精度频率计

成绩__________ 基于FPGA的等精度频率计设计摘要:数字频率计是一种能够测量被测信号频率的数字测量仪器。

它被广泛应用于航天、航空、电子、自动化测量、测控等领域。

本文利用等精度测量原理,设计等精度频率计,主要硬件电路由Altera公司生产的复杂可编程逻辑(CPLD)EPM7128构成。

复杂可编程逻辑器件CPLD芯片EPM7128SLC84-15完成各种时序逻辑控制、计数功能。

在MAX+PLUSII平台上,用VHDL语言编程完成了CPLD的软件设计、编译、调试、仿真和下载。

由于本系统采用了先进的EDA 技术,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小,可靠性高,测频范围宽、精度高等优点。

关键词:等精度频率计;可编程逻辑器件;VHDLAbstract:Digital frequency meter is a digital measuring equipment which is capable of measuring the frequency of the measured signal. It has been widely used in aerospace, aviation, electronics, automation, measurement and control, and other fields. This paper introduces a method to design precision frequency meter based on equal precision measuring principle. The main circuit is composed of complex programmable logic (CPLD) EPM7128 which is a production of Altera company and AT89C51. The complex programmable logic device EPM7128SLC84-15 completes sequential logic control, and the counting function. In MAX + PLUSII platform, using VHDL completes the CPLD programming software design, compile, debugging, simulation and download. The system makes use of advanced EDA technology, not only greatly shortens the development cycle, but also makes that the system has so compact, small size, high reliability, wide frequency measurement range and high-precision.Keywords:Equal precision frequency meters;CPLD;VHDL前言随着科学技术的发展,高精度集成电路的应用,生产力得到了大幅度的发展,以大规模集成电路为主的各种设备成了当今社会最常用的设备。

基于FPGA的等精度数字频率计设计(修订版)

基于FPGA的等精度数字频率计设计(修订版)

基于FPGA的等精度数字频率计设计微电子学与固体电子学张嘉伟113114312目录摘要 (3)第一章课题背景 (4)第二章方案设计及原理 (4)1 多周期同步测频率测量原理 (4)2 设计实现 (6)2.1 FPGA程序设计 (6)2.2 DSP程序设计 (7)第三章主要模块的Verilog程序 (8)1 计数器 (8)2 除法器 (8)3 分频器 (11)4 BCD模块 (11)第四章仿真结果 (12)第五章设计总结 (13)参考文献 (13)摘要本文主要论述了利用FPGA进行测量频率计数,FPGA实施控制实现多功能频率计的设计过程。

该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点。

等精度的测量方法不但具有较高的测量精度,而且在整个频率区域包成恒定的测试精度。

根据多周期同步测频率法的原则,选取了多周期同步测频法作为数字频率计的测量算法,提出了基于FPGA的数字频率计设计方案。

给出了该设计方案的实际测量效果,证明该设计方案切实可行,能达到较高的频率测量精度。

关键词:FPGA;等精度;频率计第一章课题背景随着大规模集成电路技术的发展及电子产品市场运作节奏的进一步加快,涉及诸如计算机应用、通信、智能仪表、医用设备、军事、民用电器等领域的现代电子设计技术已迈入一个全新的阶段。

专家预言,未来的电子技术时代将是EDA 的时代,PLD作为EDA技术的一项重要技术,是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于70年代单片机的发明和使用。

在电子测量技术中,频率测量是最基本的测量之一。

工程中很多测量,如用振弦式测量力、时间测量、速度测量、速度控制等,都设计到频率测量,或可归结为频率测量。

而常用的直接测量方法在使用中有较大的局限性,其测量精度随着被测信号频率的下降而降低,并且对被测信号的计数要产生±1个数字误差。

采用等精度频率测量方法具有测量精度保持恒定,不随所测信号的变化而变化;结合FPGA,具有集成度高、告诉和高可靠性的特点,是频率的测频范围可达到0.1Hz-50MHz,测频全域相对误差恒为百万分之一。

计算机毕业论文_基于FPGA的等精度频率计的设计与实现

计算机毕业论文_基于FPGA的等精度频率计的设计与实现

目录前言...............................................................1 第一章 FPGA及Verilog HDL..........................................2 1.1 FPGA简介.....................................................2 1.2 Verilog HDL 概述.............................................2 第二章数字频率计的设计原理........................................3 2.1 设计要求.....................................................3 2.2 频率测量.....................................................3 2.3.系统的硬件框架设计..............................................4 2.4系统设计与方案论证............................................5 第三章数字频率计的设计............................................8 3.1系统设计顶层电路原理图........................................8 3.2频率计的VHDL设计.............................................9 第四章软件的测试...............................................15 4.1测试的环境——MAX+plusII.....................................15 4.2调试和器件编程...............................................15 4.3频率测试.....................................................16基于FPGA的等精度频率计的设计与实现摘要:本文详细介绍了一种基于FPGA的高精度频率计。

基于FPGA的数字频率计实验报告(能测占空比)

基于FPGA的数字频率计实验报告(能测占空比)

基于FPGA的数字频率计设计学院:专业:班级:姓名:学号:审阅老师:评分:目录一、课程设计目的 (3)二、设计任务 (3)三、功能要求与技术指标 (3)四、数字频率计工作原理概述 (3)五.数字频率计实现方法 (4)六.结论与误差分析 (11)七.VHDL程序: (12)一、课程设计目的熟悉EDA工具,掌握用VHDL语言进行数字系统设计的基本方法和流程,提高工程实践能力。

二、设计任务设计一数字频率计,用VHDL语言描述,用QuartusII工具编译和综合,并在实验板上实现。

三、功能要求与技术指标1.基本功能要求(1)能够测量出方波的频率,其范围50Hz~50KHz。

(2)要求测量的频率绝对误差±5Hz。

(3)将测量出的频率以十进制格式在实验板上的4个数码管上显示。

(4)测量响应时间小于等于10秒。

以上(1)~(4)基本功能要求均需实现。

2.发挥部分(1)提高测量频率范围,如10Hz~100KHz或更高、更低频率,提高频率的测量绝对值误差,如达到±1Hz。

(2)可以设置量程分档显示,如X1档(显示范围1Hz~9999Hz),X10档(显示范围0.001KHz~9.999KHz),X100档(显示范围0.100KHz~999.9KHz)...可以自定义各档位的范围。

量程选择可以通过按键选择,也可以通过程序自动选择量程。

(3)若是方波能够测量方波的占空比,并通过数码管显示。

以上(1)~(3)发挥功能可选择实现其中的若干项。

四、数字频率计工作原理概述1.数字频率计简介在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。

而数字频率计是采用数字电路制成的实现对周期性变化信号的频率的测量。

2.常用频率测量方法:方案一采用周期法。

通过测量待测信号的周期并求其倒数,需要有标准倍的频率,在待测信号的一个周期内,记录标准频率的周期数,这种方法的计数值会产生最大为±1个脉冲误差,并且测试精度与计数器中记录的数值有关,为了保证测试精度,测周期法仅适用于低频信号的测量。

基于FPGA的数字频率计

基于FPGA的数字频率计
图3.6EPM570T1445N器件的管脚图
EPM570T1445N器件属于Altera公司MAX7000S系列,EPM570T144C5N器件包含一个二维行和列的架构实现自定义逻辑。行和列的互连提供信号互连之间的逻辑阵列块(实验室)。逻辑阵列组成的实验室,10个逻辑单元,在每个实验室(LE)之间。一个LE是一小单位逻辑用户提供逻辑功能的有效实施。实验室分为行和列上的设备。多轨互连实验室提供快速颗粒之间的时间延迟。括约肌之间的快速路由提供最低的时间延迟逻辑电平的增加与全球路由互连结构。MAX II器件的I / O引脚由我I/ O单元(雇主组织)在劳工顾问委员会的目的所在行和列周围设备的边缘。每个雇主组织包含一个双向I / O缓冲区的多种高级功能。I / O引脚支持施密特触发输入和各种单端标准,例如66兆赫,32位PCI,和LVTTL等级。MAX II器件提供了一个全局时钟网络。全球时钟网络的组成4全局时钟线,在整个整个设备驱动器,提供对所有时钟内资源的设备。全球时钟线也可用于控制信号如明确,预设,或输出使能。如图为EPM570T1445N的逻辑阵列块。
CPLD的LCD_D[7..0]作为总线通过与外部接插件连接,实现与液晶显示屏相连。LCD_DD0-LCD_DD7,以及LCD_RES_X0-LCD_RES_X3、LCD_RESET、片选线等等外部都连接一上拉电阻。如图3.4.2所示。
图3.4.1液晶显示1
图3.4.2 上拉电阻
3.5测频复位电路。
方案二:
2.3 方案选择
3单元模块电路设计
3.1电路设计总体框图
本设计主要由8个部分组成,以CPLD芯片部分为核心展开,待测信号输入,由外部电源,复位电路,单片机电路,液晶显示,标准时钟以及JTAG下载各个单元配合起来实现测试频率并在液晶显示屏上实时显示出数字频率信号。

毕业设计 基于fpga的等精度数字频率计的设计

毕业设计 基于fpga的等精度数字频率计的设计

本科生毕业论文题目:基于fpga的等精度数字频率计的设计摘要在电子工程,资源勘探,仪器仪表等相关应用中,频率计是工程技术人员必不可少的测量工具。

频率测量也是电子测量技术中最基本最常见的测量之一。

不少物理量的测量,如转速、振动频率等的测量都涉及到或可以转化为频率的测量。

基于传统测频原理的频率计的测量精度会随被测信号频率的下降而降低。

本文介绍了一种基于FPGA的等精度数字频率计,它不但具有较高的测量精度,而且在整个测量区域能保持恒定的测量精度。

文章首先介绍了硬件描述语言(HDL)的发展,以VHDL为核心,说明了利用VHDL语言进行设计的步骤。

然后介绍FPGA器件的基本结构和开发流程,接着阐述等精度数字频率计的工作原理以及利用VHDL语言实现数字频率计的具体做法,重点是利用BCD码减法实现的BCD码除法器的设计,最后还利用modelsim软件对其进行了仿真,具体分析验证了此设计的正确性。

关键词:FPGA VHDL 等精度BCD码除法AbstractCymometer is a necessary measure tool for technical engineers in electronic engineering , resource exploration and apparatus using . frequency mesure is one of the most essential and the most common mesure of electronic mesure technology . many physical quantities’ mesure , such as rotate speed , vibration frequency’s mesure , is related with or can be transformed into frequency mesure.The precision of cymometer based on traditional frequency-testing theory will decrese when the measured frequency becomes lower. this article introduces a cymometer of same-precision based on FPGA. The cymometer not only has high precision, but also its precision doesn’t decrese when the measured frequency becomes lower.This article first introduces the development of HDL , focusing on VHDL , present the step of design of VHDL . then it introduces the basic structure and the develop flow of FPGA device . in the end , it introduces the theory of cymometer and the specific implement of cymometer based on VHDL , emphasizing the theory of implementing BCD division. the function simulation and logic synthesis also come out, showing the correction of the design .Keywords: FPGA VHDL same-precision BCD division目录第一章前言............................................................................................................... 错误!未定义书签。

基于FPGA的等精度频率计设计

基于FPGA的等精度频率计设计
复 杂 可编 程逻 辑 器 件 器 件 的被 广 泛 应 用 , 从 而使 电子 产 品 系 统工 作 过程 中 , 第 一 步 先 打开 设定 的 闸 门信 号 , 但 同时
设 计 和 编 程 变 得更 加 适 应 现 代 社 会 技 术 发 展 、更 加 快 速精 确 。
F P G A( 现场 可 编程 门 阵列 ) , 这 种可 编 程逻 辑 器件 是 在较 早 期 出 现 的逻 辑 器 件 的基础 上 逐 步 转 变 而来 的 , 其是 为 专 用集成 电路 范 围 中 的一 类部 分 设计 电路 而 出现 的 , 既 处理 了设 计 电路 的缺 点 , 也 战 胜 了早 期器 件 中的 门单 元 电路 数 量缺 少 的 毛病 。 设计 人 员能够 依 照各种 各样 的配置 模 式 , 选 择 使用 不 同 的编程 方 式 ,
2 0 1 3 年第2 4 期总第 1 4 4 期
S_率计设 计
高 锐 1 3 0 0 3 3 ) ( 长 春职业技 术 学 院 。 吉 林 长春 摘 要 本 文使 用 自上 而下 的 E D A 技 术设 计 方法 , 对 频 率计 的 总体设 计进 行 了功 能模块 和子 模 块划 分 。说 明了各功 能
1 等 精 度测 量方法 工 作原 理
频 率 是 电信 号 最常 用 特 性 , 它的 测 量 对于 电子 电路 来 说 也
是 最 必 需和 最 重要 的 。 因为 频 率 信号 本 身 的特 点决 定 了其 测量 结 果 大 都能 够 取到 较 高 的精 度 , 因而 频 率 信 号 的测 量方 法 的 实 现 在 实 践 中变 得越 来 越 重要 。在 实 际工 程 项 目里 , 也 需要 把相 应 的 物 理参 数和 相 关 参 数都 替变 为频 率 才 能 较好 的完成 测 量 工

基于FPGA实现等精度数字频率计设计

基于FPGA实现等精度数字频率计设计

摘要本文基于FPGA的等精度测频原理,给出了通过FPGA来设计等精度频率计的具体方法。

并在此基础上增加了测量周期、脉冲宽度、占空比的功能。

设计中,以Alteta FPGA 系列CycloneⅡ EP2C5T144C8器件为核心;运用VHDL语言设计功能模块;运用SOPC设计技术来配置NiosII系统,进行信号的控制、数据读取、运算处理、液晶的显示。

关键词:等精度频率计;FPGA;NiosⅡ;AbstractThe principle of cymometer of equal precision based on FPGA is introduced in this paper. The specific methods are given to design the system through the FPGA. It is also adds much more function such as cycle, pulse width, duty cycle measurement. It uses Altera Corporation CycloneII series ship--EP2C5T144C8 as a core; adopts Verilog Hardware Description Language to implement function module; adopts the SOPC technique to configuration NiosII system. the NiosⅡsystem is used for signal controlling, data processing , calculation, and display。

Key Word:equal precision frequency meter; FPGA; NiosⅡ;目录摘要 (I)Abstract (I)1 引言 (1)2 系统设计 (1)2.1设计要求 (1)2.2方案论证与比较 (2)2.3 设计思路 (2)2.4 系统的总体设计 (3)3 模块电路的设计 (4)3.1 CycloneⅡ SOPC Board 简介 (4)3.2 频率、周期测试模块 (5)3.2.1 等精度测频法原理 (5)3.2.2 等精度测周期法原理 (6)3.2.3 实现方法 (6)3.2.4 仿真 (7)3.3 脉宽、占空比测试模块 (8)3.3.1 脉宽测量原理 (8)3.3.2 占空比测量原理 (8)3.3.3 实现方法 (8)3.3.4 仿真 (8)3.4 液晶显示 (9)3.4.1 LCM128645ZK液晶概述 (9)3.4.2 液晶的控制 (9)4 NIOSⅡ系统的设计 (11)4.1 NIOSⅡ系统的分析 (11)4.2 基于NIOSⅡ IDE的软件设计 (12)4.2.1 主要的库函数说明 (12)4.2.2 系统流程图 (12)5 系统测试 (14)5.1 测试仪器 (14)5.2数据记录与分析 (14)5.2.1 频率、周期测试 (14)5.2.2 脉宽测试 (16)5.2.3 占空比测试 (17)5.3 设计不足 (17)6 结束语 (18)致谢 (19)参考文献 (20)附录 (21)1 引言在电子测量技术中,频率测量是最基本的测量之一。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作品总结
智冰冰
前几天做了数字频率计,虽然做的不是太好吧,但是还算是做出来了,我在这里就对大家分享一下我的制作过程,希望想做频率计的朋友能够少走一些弯路,如果有不好的地方请大家提出来,如果有更好的方法也可以和我交流交流。

拿到这个题目我首先看到题目要求频率计要能测频率、测周期、测占空比,所以我们要准备的东西就要有FPGA板,51开发板(主要利用数码管模块)、直流稳压电源、数字信号发生器。

准备好这些东西之后就要考虑作品方案问题了。

确立作品方案是整个作品中比较重要的一部分,如果作品方案不合理,就不会做出来比较好的作品。

在确立数字频率计设计方案的时候,首先就要确定用什么方法实现测频率、测周期、测占空比,查找了一些资料,大概知道了一下三种方法:
(1)测频率法:测频率法是用脉冲信号产生一个固定的闸门时间t,在固定的闸门时间t内对被测信号进行计数,然后运算求出被测信号频率、周期,但是在闸门时间t内不能保证被测信号计数为整数个,这就会让被测信号产生±1的误差,所以当被测信号频率高时测量比较准确,但是测低频时误差就比较大了。

(2)测周期法:测频率法是用被测信号作为门控信号,在闸门时间t内对脉冲信号进行计数,然后运算求出被测信号频率、周期,但是同样的在闸门时间t内不能保证脉冲信号计数为整数个,这就会让脉冲信号产生±1的误差,所以当被测信号频率低时,相对来说比较准确,但对于高频来说误差就大了。

(3)等精度法:等精度测量是用脉冲信号产生一个预置闸门,然后在预置闸门时间内通过被测信号上升沿产生一个实际闸门,这样实际闸门刚好是被测信号的整数倍。

在计数允许时间内,同时对脉冲信号和被测信号进行计数,再通过数学公式推导得到被测信号的频率。

由于门控信号是被测信号的整数倍,就消除了对被测信号产生的±l周期误差,但是会产生对脉冲信号±1周期的误差。

但是相对测频率法来说误差相对较小。

确立好自己的设计方案后,就要设计自己的程序了。

下面就那我的程序进行分析一下,虽然写的不是很完美,但是分析出来之后希望能给大家带来一些帮助。

下图是我的程序的的总体设计,共分了5块:测频、测周期、测占空比、档位选择、数码管显示。

因为只有六个数码管,所以每次只能显示六个数字,所以要进行档位切换,我的测频用了两个档位,hz、khz,测周期用了us、ms两个档位,上面四个档位是根据测得数据的大小自动切换,我用了不同颜色的指示灯进行了标记,另外就是测频、测周期、测占空比的数据不能同时在数码管上显示,所以又加了屏幕切换,用按键控制,并且用不同颜色的指示灯表示。

图一(程序模块设计图)
首先说测频这一块,测频我脉冲信号用的是5mhz的脉冲,因为直接用50mhz的频率计数会使计的数比较大,不好运算,所以要先分频:
因为我采用的是等精度法,所以用了脉冲信号产生一个1s的预置闸门:
然后就是在预置闸门的高电平时利用被测信号的上升沿让实际闸门打开,同样的当预置闸门为低电平时利用被测信号的上升沿让实际闸门闭合。

实现方法如下:
下面就不用说了,就是在实际闸门时间内分别对5mhz的已知信号和被测信号进行计数,这样对被测信号的计数就是整数个。

下面主要说一说怎样将计好的数进行锁存,之前由于方法不正确老是出不来现象,数据要不就是自动清零,要不就是不清零自动累加,纠结了老半天,后来想到了这种方法,当然方法有很多种,我就说我知道的两种,一种是我写的,用世纪闸门的下降沿进行数据锁存:
//************************数据锁存************************
always@(negedge gate) //实际闸门下降沿
begin
datax<=cntx; //被测信号计的数锁存
data<=cnt; //已知信号计的数锁存
end
另一种方法是我看别人的方法,在这里我也说一下:
begin
if(u) //实际闸门打开
begin
fx_count<=fx_count+1'b1; //计数
state<=0; //赋零
end
else case(state) //选择
0: begin
fx_cnt<=fx_count; //锁存
state<=1; //赋一
end
1: fx_count<=0; //清零
endcase
End
测周期也大概用的这种方法,都是在实际闸门时间内对已知信号和被测信号进行计数,只不过最后的计算方法不一样而已。

这里就不再说了,就说一下计算方法吧。

频率计算:
data_pin<=(5000000/data)*datax; //频率计算
因为我的已知信号用的是5mhz的频率,所以:
被测信号频率=(被测信号计数/已知信号计数)*5000000
在测周期时我的已知信号用的是25mhz的频率,所以每个脉冲的时间为40ps=0.04us,所以:被测信号周期=(已知信号计数/被测信号计数)*已知脉冲时间
因为乘以0.04相当于除以25,所以us挡除以25。

data_zhou<=(d_c/d_x)/25; //周期计算(us)
data_zhou<=(d_c/d_x)*40; //周期计算(ps)
在第三个数码管上加上小数点,us挡就变成了ms挡,ps挡就变成了us挡。

虽然用了等精度的测量方法,但是在测频率的低频部分还是误差较大,所以我又在测低频部分改成了周期测量法,一直频率用了1mhz,其他不变,还是在计算的时候注意一下。

我在1khz以上还是采用等精度法测量,小于1khz用测周法测量:
always@(posedge clk)
begin
if(datax>=1000)
begin
Data_pin<=(5000000/data)*datax; 大于1khz
end
else
begin
Data_pin<=1000000000/data2; 小于1khz
end
End
由于大于1khz直接用khz挡,所以在第三个数码管上加上小数点就行了,但小于1khz的用hz挡,不能直接加小数点,所以将算出的数乘了1000,这样就能显示小数部分,使显示更准确,这就是为什么1mhz的频率为什么用1000000000作为被除数了。

看起来是两种算法,其实可以看成一种被测信号计数为1,然后被测信号频率=(1/已知信号计数)*已知信号频率。

下面就是测占空比部分,测占空比我用的是测周法,分别在被测信号的高电平和低电平进行对已知信号进行计数,已知信号用的是50mhz的脉冲信号。

//***********************数据锁存********************************** always@(negedge clkx) //闸门信号下降沿锁存
begin
data_h<=cnt_h;
end
always@(posedge clkx) //闸门信号上升沿锁存
begin
data_l<=cnt_l;
end
计完数之后就是计算,下面是我的计算方法:
data_re<=data_h*10000;
data_p<=data_re/(data_l+data_h);(data_h为高电平计数,data_l为低电平计数)
占空比=高电平计数/(高电平计数+低电平计数),但是我一开始先将高电平计的数乘了10000,因为如果直接相除的出的肯定是零,放大10000倍后,可以使得出的数据精确到小数点后两位,结果为xx.xx%,四个数码管就行了。

档位转换和指示灯的选择我是放到一块的,用一个case语句实现的:
在写着一块时,一开始就是档位转换不正确,显示出来的数据也是对不上,后来发现是在数据赋值的时候赋错了,把频率的数据赋到了占空比上,虽然不是太大的错误,但是这反映出来做事还是要认真!
最后一块就是数码管显示了,我在数码管扫描时频率、周期数据扫面和占空比数据扫描分开写的,因为频率、周期用了六个数码管,占空比只用了四个,没用到的就不用扫描了。

上面说的都是对方波的测量,正弦波的测量由于硬件原因还没有实现,这也是我在这个作品中比较不完善的一方面,但是我会尽快将此功能完善,以弥补不足。

通过做这个作品让我学到了很多,首先就是对资料的收集和分析能力,资料收集现在很方便,网络很发达,但是找到了资料不理解也是不行的,比如这次频率计的制作,用等精度法实现,但是对于等精度法的理解我们几个就有不同的看法,如果说理解上就错了的话,那么在写程序的时候就会出现偏差,有可能就会造成作品的不完善。

另外就是程序的调试,程序写出来了但是不一定能够用,特别是运算那一块,乘以某个数在除以某个数结果可能就改变了,因为在编程语言中除以好和数学中的不太一样,除还分为除完之后取余取模问题,所以这方面要注意,另外就是运算的顺序,如果顺序不一样,运算出来的结果也不一样,所以程序的调试有时候比写程序还要复杂,还要重要!。

相关文档
最新文档