基于FPGA等精度的实时测量频率和占空比
目录
一、要求:
二、指标要求
三、 等精度测频设计原理
四、时序分析:
五、模块设计
1、计数器
2、读数据
3、数据处理
4、数码管显示模块
六、仿真分析
1、计数模块
A、测量1Mhz频率占空比为50%的信号的频率。
B、Em设置为1Mhz,占空比为46%的信号的占空比
2、数据处理模块
3、总体仿真
七、实测展示
八、说明
一、要求:
利用Altera公司的FPGA开发软件Quartus 13.1采用混合设计实现方波信号频率和占空比测量。
二、指标要求
1) 待测方波信号频率范围1Hz~1MHz,测量精度优于0.1Hz
2) 待测方波信号占空比范围1%~95%,测量精度优于1%
3) 频率数据显示精度0.1Hz,给出8位数字的BCD码结果
4) 占空比给出2位整数百分比的BCD码结果
三、 等精度测频设计原理
设计原理流程图如图 1:
图 1设计原理流程图
将在相同时间内对被测信号和标准信号同时计数 ,D触发器保证实际闸门时间与被测信号同步,消除被测信号计数误差;读数据模块两个技术模块数据同时读入送进数据处理模块处理;数据处理模块将读入的数据计算出频率与占空比后送入显示模块;显示模块将频率与占空比显示在数码管上。
等精度测频率原理:
等精度测频法本质上是多周期同步测频,它是在直接测频基础上发展起来的,在目前的测频系统中得到了越来越广泛的应用。等精度测频时,同时对标准信号和待测信号计数,而且实际闸门时间不是固定的,而是被测信号的整数倍,即与被测信号保持同步,因此消除了对被测信号计数所产生的士1个数字误差,使测量精度大为提高。
四、时序分析:
如图 2所示,Tx待测型号在Cl的预置闸门信号期间进行采样计数,使得在En为高时Tx总是整数倍出现。
图 2时序分析图
设在一次实际闸门时间τ中计数器对被测信号的计数值为Nx,对标准信号的计数值为Ns。标准信号的频率为fs,则被测信号的频率为:
fx=(Nx/Ns)·fs (1)
五、模块设计
如图 3所示,计数器模块同时计数频率Ns、Nx值与占空比Nh值,数值传给数据处理模块,由数据模块switch信号切换显示数据的不同位,数值传给数码管显示模块显示。
由一个D触发器实现预置闸门与待测信号的同步,触发信号为Tx,后面四个D触发器为读信号和清零信号延时,由50Mhz标准信号触发,延时两个标准信号单元为Read信号,延时四个标准单元为clr信号;复位信号控制五个D触发器的使能信号。
图 3系统总体设计图
模块代码展示:
1、计数器
频率计数器:
module counter(clk,En,clr,tsq);
input clk,clr,En;
output reg [27:0]tsq;
always@(posedge clk or negedge clr)
beginif(!clr)begintsq<=28'b0;endelsebeginif(En)begintsq<=tsq+1;endend
end
endmodule
占空比计数器:
module counter_duty(clk,En,clr,Tx,duty,tsq);
input clk,clr,En,Tx;
output reg [27:0]duty;
output reg [27:0]tsq;
always@(posedge clk or negedge clr)
beginif(!clr)beginduty<=28'b0;tsq<=28'b0;endelsebegintsq<=tsq+1;if(En&Tx)duty<=duty+1;//高电平数end
end
endmodule
2、读数据
module read_value(read,Ns_data_in,Ns_data_out,TX_data_in,TX_data_out,Nh_data_in,Nh_data_out);
input read;
input [27:0] Ns_data_in,TX_data_in,Nh_data_in;
output reg [27:0] Ns_data_out,TX_data_out,Nh_data_out;always@(negedge read)
beginTX_data_out<= TX_data_in;Ns_data_out<=Ns_data_in+28'd4;Nh_data_out<=Nh_data_in+28'd4;
end
endmodule
3、数据处理
module data_processing(Ns_data,TX_data,Fre_data_INT,Fre_data_Fra,duty,duty_rs);
input [27:0] Ns_data,TX_data,duty;
reg [55:0] temp;
reg [27:0] remainder;output reg [9:0]duty_rs; //占空比
output reg [27:0] Fre_data_INT; // 频率整数部分
output reg [6:0] Fre_data_Fra; // 频率小数部分always@(Ns_data,TX_data)
begintemp = 50_000_000*TX_data;Fre_data_INT = temp/Ns_data;remainder = temp%Ns_data; Fre_data_Fra= remainder*100/Ns_data; // 保留2位小数duty_rs =(duty*1000)/Ns_data;
end
endmodule
4、数码管显示模块
module display(switch,Fre_data_INT,Fre_data_Fra,clk_50M,duty,Dis1,Dis2,Dis3,Dis4,Dis5,Dis6);
input [27:0] Fre_data_INT;
input [6:0] Fre_data_Fra;
input [9:0] duty;
input switch;
input clk_50M;
output reg [3:0] Dis1;
output reg [3:0] Dis2;
output reg [3:0] Dis3;
output reg [3:0] Dis4;
output reg [3:0] Dis5;
output reg [3:0] Dis6;reg [27:0] Ns_data;always@(clk_50M)
beginif(switch)//前六位beginDis1[3:0]<= Fre_data_INT/1_000_000;Dis2[3:0]<= (Fre_data_INT%1_000_000)/100000;Dis3[3:0]<= (Fre_data_INT%100000)/10000;Dis4[3:0]<= (Fre_data_INT%10000)/1000;Dis5[3:0]<= (Fre_data_INT%1000)/100;Dis6[3:0]<= (Fre_data_INT%100)/10;endelse//后六位(其中最后三位为占空比数据)beginDis1[3:0]<= Fre_data_INT%10;Dis2[3:0]<= 0;Dis3[3:0] <= Fre_data_Fra/10;Dis4[3:0]<=duty/100;Dis5[3:0]<=(duty%100)/10;Dis6[3:0]<=duty%10;end
end
endmodule
六、仿真分析
1、计数模块
在计数模块中Ns为标准信号个数,Nx为待测信号个数,Nh为高电平计数个数,tsq为频率值,duty为占空比值。
计算公式tsq = 50_000_000*Nx/Ns; duty=Nh/Ns;用quartus自带仿真,仿高频信号。
A、测量1Mhz频率占空比为50%的信号的频率。
设置Tx为1Mhz,预置闸门preset_gate周期为20us,clk_50M为标准50Mhz,reset为使能信号,始终为高。
理论测得tsq=500。
实际仿真测得tsq=496,由于clr信号延时四个标准信号周期,所以tsq=500-4,后期数据处理模块会将Ns补4,符合理论结果,如图 4所示。
图 4计数器模块频率计数仿真图
B、Em设置为1Mhz,占空比为46%的信号的占空比
理论测得Nh=230,Ns=500,duty计算得460(乘以1000后的结果,以便显示)实际仿真测得duty=460,Nh补4后符合理论结果(原因同上),如图 5所示。
图 5计数器模块占空比计数仿真图
2、数据处理模块
Duty_rs为占空比值*1000,Fre_data_INT为频率整数值,Fre_data_Fra为频率小数值Read为读信号,switch为显示位输出转换开关。
仿真1MHz,占空比为46%的信号。
根据公式tsq = 50_000_000*Nx/Ns; duty=Nh/Ns。
理论测得Duty_rs=460,fre_data_INT=1000000,fre_data_Fra=0。
实际仿真测得Duty_rs=460,fre_data_INT=1000000,fre_data_Fra=0如图 6。
图 6数据处理模块仿真图
3、总体仿真
总体仿真电路图如图 7所示,随机选取了5656.5Hz占空比为55.5%的信号测试,仿真结果如下图所示。频率仿真得到fre =5656.5hz,占空比为55.5%符合题目设计要求。
图 7总体仿真电路图
测试文件设置如图 8
单位1ps,精度1ps。
图 8测试文件图
图 9总体仿真测试图
Switch为1时输出频率高六位,为0时输出低一位和小数点后一位,以及用0代替小数点(此模块小数点没接管脚),和占空比(最后一位为小数后一位)。如上图9所示。
七、实测展示
用50Mhz分频的待测信号,测量280.8hz,占空比50%信号。(随机选择)
图 12后六位显示
如图 11前六为分别是频率的小数点前2至7位,如图 12第一位是频率的小数点前1位,第二位是用来当小数点的0(此块板子没有接小数点管脚),第三位是频率的小数点后一位,后三位用于表述占空比,其中最后一位是占空比小数点后一位;可见测得数据位,频率:280.8hz,占空比为50.0%。
将图 10中的第7行89000改为85000,可改变其占空比,理论计算得89000/178000=47.7%,实际测得也为47.7%,如下图所示。
图 13改变占空比后的后六位显示
八、说明
因为实际测量信号不是由信号发生器生成的标准信号,而是通过50Mhz分频产生而得, 根据实际测量结果可知,较高频的测量误差较大,其原因是因为其待测信号是由标准50Mhz分频而得,在生成较高频时由于 (数据处理+程序运行时间)/理论分频的周期 的比值较大,数据处理时间+程序运行时间使实际分频周期偏大,使得实际测得信号频率偏小,误差较大;待测频率越高误差越大。
如果使用信号发生器作为标准输入信号,误差应该符合题目需求,但是没有实测过。
基于FPGA等精度的实时测量频率和占空比相关推荐
- 基于FPGA的OV7670摄像头实时检测
目录 前言:整体系统框图 一.OV7670摄像头简介 二.OV7670 SCCB协议简介 三.OV7670初始化寄存器配置 四.OV7670初始化代码编写 五.什么是DVP? 六.摄像头写数据请求 七 ...
- 基于FPGA的实时图像边缘检测系统设计(上)
今天给大侠带来基于FPGA的实时图像边缘检测系统设计,由于篇幅较长,分三篇.今天带来第一篇,上篇,话不多说,上货. 导读 随着科学技术的高速发展,FPGA在系统结构上为数字图像处理带来了新的契机.图像 ...
- 基于FPGA的线阵CCD实时图像采集系统
基于FPGA的线阵CCD实时图像采集系统 2015年微型机与应用第13期 作者:章金敏,张 菁,陈梦苇 2016/2/8 20:52:00 关键词: 实时采集 电荷耦合器件 现场可编程逻辑器件 信号处 ...
- Matlab与FPGA图像处理系列——基于FPGA的实时边缘检测系统设计,sobel边缘检测流水线实现
注:下载链接的资源是图片存 ROM 后读取进行 Sobel 检测显示在 VGA上,可供参考. 摘要:本文设计了一种基于 FPGA 的实时边缘检测系统,使用OV5640 摄像头模块获取实时的视频图像数据 ...
- CASE_03 基于FPGA的等精度数字频率计
该系类博客序言和资源简介可浏览该博客:PREFACE FPGA经典案例序言 快速了解该系列博客的内容与可用 资源. 目录 1. 简介 2.数字频率计的基本原理 2.1 数字频率计的设 ...
- 【基于FPGA的运动目标实时跟踪检测】
基于FPGA的目标实时跟踪检测(一) 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.系统架构 二.算法设计 1.RGB转YCBCR 2.中值滤波算法 3.帧间差 ...
- 基于FPGA低频方波测量-频率与占空比
题目要求 设计基于FPGA的低频方波频率.占空比测量仪.实时测量输入方波信号的频率与占空比. 指标要求 1) 输入方波频率1Hz~1kHz:幅度VH=3V, VL=0V 2) 测量误差优于10-4:显 ...
- 快手团队长文解读:基于FPGA加速的自动语音识别在大规模直播和短视频场景的应用...
来源:机器之心 本文约6000字,建议阅读10分钟 本文介绍了基于FPGA加速的自动语音识别在大规模直播和短视频场景的应用. 典型的实时流式自动语音识别业务如语音搜索.语音输入等和用户操作相关,直接影 ...
- 一种基于FPGA硬件求解对数的简化方法
本文研究了一种运用FPGA进行数据处理的方法,包括:提取输入数据的高log2M个比特位的数据,作为高有效位,根据预先设置的目标函数的计算表格,查找所述高有效位对应的目标函数值y(n)以及高有效位+1对 ...
最新文章
- Android 自定义View —— Path
- Linux移植之auto.conf、autoconf.h、Mach-types.h的生成过程简析
- pku1182(食物链) hdu3047 Zjnu Stadium
- 再次理解信号采样定理(低通抽样定理)
- c++工程师面试常见问题之c++中四种cast转换
- 《结对-结对编项目作业名称-测试过程》
- ttl接地是高电平还是低电平_(音源很重要)18新汉兰达音响改装升级原车主机改低电平RCA输出...
- Swift中的函数curring简介
- 微信团队分享:iOS版微信的高性能通用key-value组件技术实践
- spring boot 配置网关时404错误_Kong中使用grpcweb插件代理grpc服务时遇到的坑
- 三、RabbitMQ消息发布时的权衡
- java面试的计算机网络_Java面试总结之计算机网络(二)
- SharePoint【Site Definition 系列】-- 05. List Definition与List Template之比较
- wangeditor富文本编辑器的复制word到浏览器发生乱码
- Pycharm破解版安装步骤
- 电脑桌面不见计算机图标,主编教您电脑桌面图标都不见了怎么办
- 推荐几个图标搜索网站
- 数据结构与算法介绍与学习路线
- Torus登场:CoreOS打造的新一代分布式存储系统
- 提供一个中国身份证号码判断的类
热门文章
- AI选择描边比例缩放钢笔文字形状线段、弧形渐变混合工具使用
- ctr多少正常_你知道亚马逊的点击率多少算正常的吗?
- HAL+Cube MX 学习之PWM
- 10053 事件浅析
- 云计算/大数据/Hadoop2.0/MongoDB/数据挖掘分析/视频教程
- android培训课程
- 华为手机android7价格,【华为手机大全】华为手机报价及图片大全-列表版-ZOL中关村在线...
- 【XML和Java】手写Java程序引用xsd验证xml
- 各种本地存储对比 cookie,localStorage,sessionStorage,indexDB以及他们和vuex的区别
- 通向架构师的道路(第十八天)万能框架 Spring ( 一 )