高精度测频率

高精度测频率
高精度测频率

一.捕获法

现给出主要代码CaiJi.c

#include "stm32f10x.h"

#include "CaiJi.h"

//配置系统时钟,使能各外设时钟

void RCC_Configuration(void)

{

SystemInit();

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟配置

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOF | RCC_APB2Periph_AFIO , ENABLE );

}

void GPIO_Configuration(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOF, &GPIO_InitStructure);

GPIO_SetBits(GPIOF,GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOA, &GPIO_InitStructure);

}

void NVIC_Configuration(void)

{

NVIC_InitTypeDef NVIC_InitStructure;

#ifdef VECT_TAB_RAM

NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);

#else

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);

#endif

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //NVIC配置

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

//////////////////////////////////////////////////////////////////////////

void TIM3_Configuration(void)//TIM2初始化函数

{

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

TIM_ICInitTypeDef TIM_ICInitStructure;

TIM_DeInit(TIM3);

TIM_TimeBaseStructure.TIM_Period = 0xffff;

TIM_TimeBaseStructure.TIM_Prescaler = ?; //此值保密,呵呵,大家自己可以算一下,唯一奥,不然不准

TIM_TimeBaseStructure.TIM_ClockDivision = 0;

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; //通道选择

TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升沿触发

TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;//管脚与寄存器对

应关系

TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;

//输入预分频。意思是控制在多少个输入周期做一次捕获,如果

//输入的信号频率没有变,测得的周期也不会变。比如选择4分频,则每四个输入周

//期才做一次捕获,这样在输入信号变化不频繁的情况下,可以减少软件被不断中断的次数。

TIM_ICInitStructure.TIM_ICFilter = 0x0; //滤波设置,经历几个周期跳变认定波形稳定0x0~0xF

TIM_ICInit(TIM3, &TIM_ICInitStructure);

//TIM_PWMIConfig(TIM3, &TIM_ICInitStructure); //根据参数配置TIM外设信息

TIM_SelectInputTrigger(TIM3, TIM_TS_TI2FP2); //选择IC2为始终触发源

TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);//TIM从模式:触发信号的上升沿重新初始化计数器和触发寄存器的更新事件

TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable); //启动定时器的被动触发

TIM_Cmd(TIM3, ENABLE); //启动TIM2

TIM_ITConfig(TIM3, TIM_IT_CC2, ENABLE); //打开中断使能CC1中断请求

}

stm32f10x_it.c文件

#include "stm32f10x.h"

#include "stm32f10x_it.h"

#include "xpt2046.h"

#include"delay.h"

extern int pinlv;

extern int caiji;

extern int m_timer;

void TIM3_IRQHandler(void)

{

if (TIM_GetITStatus(TIM3, TIM_IT_CC2) == SET)

{

pinlv = TIM_GetCapture2(TIM3);

caiji = 720000000/pinlv;

//caiji=30000;

TIM_ClearITPendingBit(TIM3, TIM_IT_CC2); //清楚TIM的中断待处理位

}

}

二.中断法CaiJi.C文件

#include "stm32f10x.h"

#include "CaiJi.h"

//配置系统时钟,使能各外设时钟

void RCC_Configuration(void)

{

SystemInit();

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOF | RCC_APB2Periph_AFIO , ENABLE );

}

void GPIO_Configuration(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOF, &GPIO_InitStructure);

GPIO_SetBits(GPIOF,GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOA, &GPIO_InitStructure);

}

void Exit_Configuration()

{

EXTI_InitTypeDef EXTI_InitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource7);

//EXTI_InitStructure.EXTI_Line = EXTI_IMR_MR7;

EXTI_InitStructure.EXTI_Line = EXTI_Line7;

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

EXTI_GenerateSWInterrupt(EXTI_Line7);

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

void NVIC_Configuration(void)

{

#ifdef VECT_TAB_RAM

NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);

#else

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);

#endif

}

void Timerx_Init2()

{

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

//TIM_DeInit(TIM2);

TIM_TimeBaseStructure.TIM_Period =9999;

TIM_TimeBaseStructure.TIM_Prescaler = 7199;

TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;

TIM_TimeBaseStructure.TIM_RepetitionCounter =10 ;//只有高级定时器才有用

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

// TIM_ClearFlag(TIM2, TIM_FLAG_Update);清除更新标志位

// TIM_ARRPreloadConfig(TIM2, DISABLE);//预装载寄存器的内容被立即传送到影子寄存器

TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);

TIM_Cmd(TIM2, ENABLE);

NVIC_InitTypeDef NVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

stm32f10x,it.h文件

#include "stm32f10x.h"

#include "xpt2046.h"

#include"delay.h"

extern int pinlv;

extern int caiji;

extern int m_timer;

void EXTI9_5_IRQHandler(void)

{

if(EXTI_GetITStatus(EXTI_Line7) != RESET)

{

GPIO_SetBits(GPIOF,GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9);//测试用

pinlv=pinlv+1;

EXTI_ClearITPendingBit(EXTI_Line7);

}

}

void TIM2_IRQHandler(void)

{

if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)

{

m_timer=m_timer+1;

if(m_timer==5){

//GPIO_SetBits(GPIOF,GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9);//测试用

caiji=pinlv;

pinlv=0;

m_timer=0;

//delay_m_timers(1000);

}

TIM_ClearITPendingBit(TIM2, TIM_IT_Update); }

}

2位十进制高精度数字频率计设计

广州大学学生实验报告 实验室:电子信息楼 317EDA 2017 年 10 月 2 日 学院机电学院年级、专 业、班 电信 151 姓名苏伟强学号1507400051 实验课 程名称 可编程逻辑器件及硬件描述语言实验成绩 实验项 目名称 实验4 2位十进制高精度数字频率计设计指导老师 秦剑 一实验目的 1 熟悉原理图输入法中74系列等宏功能元件的使用方法,掌握更复杂的原理图层次化设计技术和数字系统设计方法。 2 完成2位十进制频率计的设计,学会利用实验系统上的FPGA/CPLD验证较复杂设计项目的方法。 二实验原理 1 若某一信号在T秒时间里重复变化了N 次,则根据频率的定义可知该信号的频率fs 为:fs=N/T 通常测量时间T取1秒或它的十进制时间。 三实验设备 1 FPGA 实验箱,quarteus软件 四实验内容和结果 1 2位十进制计数器设计 1.1 设计原理图:新建quarteus工程,新建block diagram/schematic File文件,绘制原理图,命名为conter8,如图1,保存,编译,注意:ql[3..0]输出的低4位(十进制的个位), qh[3..0]输出的高4位(十进制的十位) 图片11.2 系统仿真:如图2建立波形图进行波形仿真,如图可以看到完全符合设计要求,当clk输入时钟信号时,clr有清零功能,当enb高电平时允许计数,低电平禁止计数,当低4位计数到9时向高4位进1 图2 1.3 生成元件符号:File->create/updata->create symbol file for current file,保存,命名为conter8,如图3为元件符号(block symbol file 文件): 图3 2 频率计主结构电路设计 2.1 绘制原理图:关闭原理的工程,新建工程,命名为ft_top,新建原理图文件,在project navigator的file 选项卡,右键file->add file to the project->libraries->project library name添加之前conters8工程的目录在该目录下,这样做的目的是因为我们会用到里面的conters8进行原理图绘制,绘制原理图,如图4,为了显示更多的过程信息,我们将74374的输出也作为output,重新绘制了原理图,图5 图4

等精度频率计设计C程序

1 #include 2 #include 3 #include 4 #include 5 #include 6 #define uchar unsigned char 7 #define uint unsigned int 8 #define ulong unsigned long 9 10 code uchar m[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6,0x00}; 11 // 0 1 2 3 4 5 6 7 8 9 灭 12 data uchar NS[]={0x0,0x0,0x0,0x0};//标准频率计数 13 data uchar NX[]={0x0,0x0,0x0,0x0};//待测频率计数 14 data ulong NSS,NXX,MM,F; 15 data ulong temp1,temp2; 16 data uchar shuju[]={0,0,0,0,0,0,0,0};//数码管数据 17 sbit CLR = P2^3; 18 sbit SEL2 = P2^2; 19 sbit SEL1 = P2^1; 20 sbit SEL0 = P2^0; 21 sbit CL = P2^4; 22 sbit START = P2^7; 23 //int i,j,k,l; 24 char *pNS; //清零 25 char *pNSS; 26 char *pNX; 27 char *pNXX; 28 29 void delay(uint x); 30 void display(); 31 void operation(); 32 void outdata(); 33 34 long powcyc(long c1,long c2) 35 { 36 long c3=1; 37 uchar ii; 38 for(ii=0;ii

高精度时间间隔测量方法

高精度时间间隔测量方法综述 孙杰潘继飞 (解放军电子工程学院,安徽合肥,230037) 摘要:时间间隔测量技术在众多领域已经获得了应用,如何提高其测量精度是一个迫切需要解决的问题。在分析电子计数法测量原理与误差的基础上,重点介绍了国内外高精度时间间隔测量方法,这些方法都是对电子计数法的原理误差进行测量,并且取得了非常好的效果。文章的最后给出了高精度时间间隔测量方法的发展方向及应用前景。 关键词:时间间隔;原理误差;内插;时间数字转换;时间幅度转换 Methods of High Precision Time-Interval Measurement SUN Jie , PAN Ji-fei (Electronic Engineering Institute of PLA, HeFei 230037, China) Abstract: Technology of time-interval measurement has been applied in many fields. How to improve its precision is an emergent question. On the bases of analyzing electronic counter’s principle and error, this paper puts emphasis upon introducing high precision time-interval measurements all over the world. All these methods aim at electronic counter’s principle error, and obtain special effect. Lastly, the progress direction and application foreground of high precision time-interval measurement methods are predicted. Key Words: time interval; principle error; interpolating; time-to-digital conversion; time-to-amplitude conversion 0引言 时间有两种含义,一种是指时间坐标系中的某一刻;另一种是指时间间隔,即在时间坐标系中两个时刻之间的持续时间,因此,时间间隔测量属于时间测量的范畴。 时间间隔测量技术在通信、雷达、卫星及导航定位等领域都有着非常重要的作用,因此,如何高精度测量出时间间隔是测量领域一直关注的问题。本文详细分析了目前国内外所采用的高精度时间间隔测量方法,指出其发展趋势,为研究新的测量方法指明了方向。 1 电子计数法 1.1 测量原理与误差分析 在测量精度要求不高的前提下,电子计数法是一种非常好的时间间隔测量方法,已经在许多领域获得了实际应用,其测量原理如图1所示:

高精度单片机频率计的设计

《综合课程设计》 一.数字频率计的设计 姓名:万咬春学号2005142135 一、课程设计的目的 通过本课程设计使学生进一步巩固光纤通信、单片机原理与技术的基本概念、基本理论、分析问题的基本方法;增强学生的软件编程实现能力和解决实际问题的能力,使学生能有效地将理论和实际紧密结合,拓展学生在工程实践方面的专业知识和相关技能。 二、课程设计的内容和要求 1.课程设计内容 (硬件类)频率测量仪的设计 2.课程设计要求 频率测量仪的设计 要求学生能够熟练地用单片机中定时/计数、中断等技术,针对周期性信号的特点,采用不同的算法,编程实现对信号频率的测量,将测量的结果显示在LCD 1602 上,并运用Proteus软件绘制电路原理图,进行仿真验证。 三.实验原理 可用两种方法测待测信号的频率 方法一:(定时1s测信号脉冲次数) 用一个定时计数器做定时中断,定时1s,另一定时计数器仅做计数器使用,初始化完毕后同时开启两个定时计数器,直到产生1s中断,产生1s中断后立即关闭T0和T1(起保护程序和数据的作用)取出计数器寄存器内的值就是1s内待测信号的下跳沿次数即待测信号的频率。用相关函数显示完毕后再开启T0和T1这样即可进入下一轮测量。 原理示意图如下:

实验原理分析: 1.根据该实验原理待测信号的频率不应该大于计数器的最大值65535,也就是说待测信号应小于65535Hz。 2.实验的误差应当是均与的与待测信号的频率无关。 方法二(测信号正半周期) 对于1:1占空比的方波,仅用一个定时计数器做计数器,外部中断引脚作待测信号输入口,置计数器为外部中断引脚控制(外部中断引脚为“1”切TRx=1计数器开始计数)。单片机初始化完毕后程序等待半个正半周期(以便准确打开TRx)打开TRx,这时只要INTx (外部中断引脚)为高电平计数器即不断计数,低电平则不计数,待信号从高电平后计数器终止计数,关闭TRx保护计数器寄存器的值,该值即为待测信号一个正半周期的单片机机器周期数,即可求出待测信号的周期:待测信号周期T=2*cnt/(12/fsoc) cnt为测得待测信号的一个正半周期机器周期数;fsoc为单片机的晶振。所以待测信号的频率f=1/T。 原理示意图如下: 实验原理分析: 1.根据该实验原理该方法只适用于1:1占空比的方波信号,要测非1:1占空比的方波信号 2.由于有执行f=1/(2*cnt/(12/fsoc))的浮点运算,而数据类型转换时未用LCD 浮点显示,故测得的频率将会被取整,如1234.893Hz理论显示为1234Hz,测 得结果会有一定程度的偏小。也就是说测量结果与信号频率的奇偶有一定关 系。 3.由于计数器的寄存器取值在1~65535之间,用该原理时,待测信号的频率小于单片机周期的1/12时,单片机方可较标准的测得待测信号的正半周期。故用 该原理测得信号的最高频率理论应为fsoc/12 如12MHZ的单片机为1MHz。 而最小频率为f=1/(2*65535/(12/fsoc))如12MHZ的单片机为8Hz。 四.实验内容及步骤 1. 仿真模型的构建 数字方波频率计的设计总体可分为两个模块。一是信号频率测量,二是将测得的频率数据显示在1602液晶显示模块上。因此可搭建单片机最小系统构建构建频率计的仿真模型。原理图,仿真模型的总原理图如下:

高精度测频率

一.捕获法 现给出主要代码CaiJi.c #include "stm32f10x.h" #include "CaiJi.h" //配置系统时钟,使能各外设时钟 void RCC_Configuration(void) { SystemInit(); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟配置 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOF | RCC_APB2Periph_AFIO , ENABLE ); } void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOF, &GPIO_InitStructure); GPIO_SetBits(GPIOF,GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); } void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; #ifdef VECT_TAB_RAM NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); #else NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); #endif NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

等精度频率的测量设计报告

等精度频率的测量设计报告 报告人:朱伯程(074100138)周哲远(074100137) 报告摘要:本文介绍了一种同步测周期计数器的设计,并基于该计数器设计了一个高精度的数字频率计。文中给出了计数器的VHDL编码,并对频率计的FPGA实现进行了 仿真验证,给出了测试结果。同时在分析了等精度测频在实现时存在的问题的基 础上,介绍了一种基于自适应分频法的频率测量技术,可达到简化测量电路、提高 系统可靠性、实现高精度和宽范围测量的目的 关键词:频率计VHDL FPGA 周期测量等精度自适应分频 一、实验原理 1.频率测量的几种方法: 工程上测量频率和周期的方法一般可以分为无源测频法、有源比较法、电子计数器3种。无源测频法又可分为谐振法和电桥法,常用于频率粗测,精度在1%左右。有源比较法可分为拍频法和差频法,前者是利用信号线性叠加,产生拍频现象,通过检测零差后现象测频,常用于低频测量,误差在零点几赫;后者是利用两个信号非线性叠加,产生差频现象,通过检测零差现象测频,常用于高频测量,误差为士20Hz左右。可见,以上在测量范围和精度上都难以达到要求。 电子计数器的测频原理实质上以比较法为基础,它将被测信号频率人与时基信号频率相比,两个频率相比得到的结果以数字的形式显示出来。同时,它在测量范围和精度上都能达到要求。 2.等精度测频基本原理 等精度频率测量技术又叫做多周期同步测量技术,它主要由被测信号计数器、参考信号计数器、同步闸门控制器、采样时间控制器以及运算单元等组成,工作原理下图所示。 波形图解:

根据设计任务的要求,因此我们选择用等精度测量法进行系统设计。 二、实验任务与要求 (一)任务设计一个简易等精度频率计。 (二)要求 a.测量范围信号:方波幅度:TTL电平; 频率:1Hz~1MHzb.测试误差≤0.1%(全量程) * 闸门时间:~1s,响应时间:~2s乘除运算: 单片机、FPGA、计算器计算 三、系统总体方案设计 根据测频过程的思路,可编写相应的软件。测频程序流程图下图所示: 根据流程图与要求,本实验的需要注意的地方: 1.计数器的位数。由于要测量的频率范围为1Hz~1MHz。所以可以设置计数器位数为20位。对于基准信号的频率,选用1MHz的标准脉冲信号。 2.分频器。首先要进行2分频。(供粗测使用)。再进行任意分频,供精测使用。 3.锁码器。为的是稳定计数器的最后数据。 4.在第一次计数完成之后,要能自动对计数器进行清零。

高速高精度频率测量

基于FPGA的高速高精度频率测量的研究作者:包明赵…文章来源:单片机与嵌入式系统应用点击数:35 更新时间:2007-2-11 作者:包明赵明富郭建华来源:《单片机及嵌入式系统应用》 摘要:以FPGA为核心的高速高精度的频率测量,不同于常用测频法和测周期法。本文介绍的测频方法,不仅消除了直接测频方法中对测量频率需要采用分段测试的局际,而且在整个测试频段内能够保持高精度不变。又由于采用FPGA芯片来实现频率测量,因而具有高集成度、高速和高可靠性的特点。 关键词:频率测量 FPGA 高精度 引言 在电子测量技术中,测频是最基本的测量之一。常用的直接测频方法在实用中有较大的局限性,其测量精度随着被测信号频率的下降而降低,并且对被测信号的计数要产生±1个数字误差。采用等精度频率测量方法具有测量精度,测量精度保持恒定,不随所测信号的变化而变化;并且结合现场可编程门阵列FPGA (Field Programmable Gate Array)具有集成度高、高速和高可靠性的特点,使频率的测频范围可达到0.1Hz~100MHz,测频全域相对误差恒为1/1 000 000, 1 测频原理及误差分析 常用的直接测频方法主要有测频法和测周期法两种。测频法就是在确定的闸门时间Tw内,记录被测信号的变化周期数(或脉冲个数)Nx,则被测信号的频率为:fx=Nx/Tw。测周期法需要有标准信号的频率fs,在待测信号的一个周期Tx内,记录标准频率的周期数Ns,则被测信号的频率为:fx=fs/Ns。这两种方法的计数值会产生±1个字误差,并且测试精度与计数器中记录的数值Nx或Ns有关。为了保证测试精度,一般对于低频信号采用测周期法;对于高频信号采用测频法,因此测试时很不方便,所以人门提出等精度测频方法。 等精度测频方法是在直接测频方法的基础上发展起来的。它的闸门时间不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,测除了对被测信号计数所产生±1个字误差,并且达到了在整个测试频段的等精度测量。其测频原理如图1所示。

等精度频率计的实验报告

数字频率计 摘要 以FPGA(EP2C8Q208C8N)为控制核心设计数字频率计,设计采用硬件描述语言Verilog 该作品主要包括FPGA控制、数码管模块、信号发生器、直流电源模块、独立按键、指示灯模块。主要由直流电源供电、数字信号发生器输出信号,FPGA 控制信号的采集、处理、输出,数码管显示数据,按键切换档位,指示灯显示档位。作品实现了测频、测周、测占空比,能准确的测量频率在10Hz 到100kHz之间的信号。 关键字: 频率计等精度 FPGA (EP2C8Q208C8N)信号发生器Verilog语言

一、系统方案论证与比较 根据题目要求,系统分为以下几个模块,各模块的实现方案比较选择与确定如下: 1.主控器件比较与选择 方案一:采用FPGA(EP2C8Q208C8N)作为核心控制,FPGA具有丰富的I/O 口、内部逻辑和连线资源,采集信号速度快,运行速度快,能够显示大量的信息,分频方便。 方案二:采用SST89C51作为主控器件,虽然该款单片机较便宜,但运行速度较慢,不适合对速度有太大要求的场合,并且不带AD,增加了外围电路。 综上所述,主控器件我选择方案一。 2.测量方法的比较与选择 方案一:采用测频法测量。在闸门时间内对时钟信号和被测信号同时计数,由于在闸门闭合的时候闸门时间不能是被测信号的整数倍,导致计数相差为一个被测信号时间,所以测频法只适合频率较高的测量。 方案二:采用测周法测量。用被测信号做闸门,在闸门信号内对时钟信号计数,由于在闸门闭合的时候闸门时间不能是时钟信号的整数倍,导致计数相差为一个时钟信号时间,所以测周法只适合较低频率的测量。 方案三:采用等精度法和测周法结合的方法。用等精度发测量1KHZ以上的频率,测周法测量1KHZ一下的频率。这种方法取长补短,既能准确的测高频又能测低频。 综上所述,测量方法我选用方案三。 3. 界面显示方案的选择 方案一:采用数码管显示,控制程序简单,价格便宜,显示直观。 方案二:液晶5110,虽然体积小,可以显示各种文字,字符和图案。 考虑到数码管完全可以满足数据显示要求,所以显示部分我选用方案一。 二、理论分析与计算 1、键盘设计 系统中我们采用独立键盘,用2个I/O控制2个键。原理是将2个I/O口直接接键盘的2个引脚,低电平有效,这种键盘的优点反应的速率快。 2、计算公式 (1)测频: 1khz以上:被测频率=时钟频率*(被测频率计数/时钟频率计数) 1khz以下:被测频率=时钟频率/(时钟频率在被测信号高电平计数+时钟频率在被测信号低电平计数)

电力系统频率的高精度测量方法研究

电力系统频率的高精度测量方法研究 频率是电力系统和电气设备的重要运行参数,频率测量是电力系统和电气设备运行、监测、控制以及继电保护的基础。本文简单地介绍了测量电力系统频率的常用方法,对如何利用傅立叶算法计算电力系统频率进行了详细说明,以及对误差进行了分析。通过分析说明该算法选择适当的窗函数或者对采样间隔进行自适应调整可以满足高速、精确的测量要求。 标签:频率测量电压信号窗函数 0 引言 电能是当今世界主要能源之一,它的质量标准是以频率、电压和波形来衡量的。电能质量的好坏直接影响工农业生产和人民的生活。因此,正确地进行系统频率、电压管理,保证合格的电能质量,是相当重要的。 频率是检验电能生产质量的指标之一,也是衡量电力系统运行状态的重要参数。它反映了负荷与电源之间的动态能量平衡。在电力系统中,当系统电源出力低于负荷标称频率下的功率消耗,且系统热备用容量明显不足时,系统将由于有功不足导致电源机组低速运转而使系统频率下降,如不采取有效措施,将导致机组损坏、系统瓦解的重大恶性事故。因而电力系统运行中的主要任务之一,就是对频率进行监视和控制。同时,国民经济对电力供应的依赖性愈来愈强,电力用户对电能质量的要求愈来愈严格;从而,电力生产对电力系统频率测量提出了更高的要求。 本文介绍了测量电力系统频率的常用方法,对如何利用傅立叶算法计算电力系统频率进行了详细说明,并对误差进行了分析。通过分析说明该算法选择适当的窗函数或者对采样间隔进行自适应调整可以满足高速、精确的测量要求。 1 傅立叶算法 1.1 傅立叶算法的基本原理首先假设系统电压信号仅含基频分量,系统的额定基频为采样频率为f0,系统的实际频率为f=f0+△f,则电压信号可表示为: (1) 令,则 (2) 用离散差分方程代替(1-2)式的求导,并取时间间隔为一个测量周期T0=1/f0,得,则

量程自选的数字频率计

等精度量程自选数字频率计

摘要 51系列单片机是国内目前应用最广泛的一种8位单片机之一,随着嵌入式系统、片上系统等概念的提出和接受及应用,51系列单片机还会在继后很唱一段时间占据嵌入式系统产品的 低端市场,因此,作为新世纪的大学生,在信息产业高速发展的今天,掌握单片机的基本结构、原理和使用时非常重要的。随着电子技术的发展,当前数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。 频率测量是电子学测量中最为基本的测量之一。本次课设使用单片机At89C52为核心,使用等精度测频原理,设计量程自选的数字频率计。采用C语言编写程序,测量范围0.01Hz~400KHz,测量精度能达到0.01。测量结果在1602液晶上显示。 关键字:AT89C52单片机,量程自选数字频率计,等精度测频

Summary 51 series is the currently the most widely used one 8-bit microcontrollers with embedded systems, the concept of on-chip systems, and applications made and whips acceptable, 51 series will be singing in the subsequent period of time is occupied low-end embedded system products market, therefore, as the new century, college students, high-speed development in the information industry today, the master microcontroller's basic structure, principles and use is very important. With the development of electronic technology, the current design of digital systems is moving fast, large capacity, small size, light weight and direction. Frequency measurement is the measurement electronics, one of the most basic measurements. The class is located using the microcontroller At89C52 core, use of precision frequency measurement principle, the design range of optional digital frequency meter. Using C language program, measuring range 0.01Hz ~ 400KHz, measurement accuracy can reach 0.001. Measurements in 1602Displayed on the LCD. Keywords: AT89C52 microcontroller, range-demand digital frequency meter, and otherprecisionfrequencymeasurement

基于ipc控制系统的实施高精度测频方法.

基于IPC控制系统的实时高精度测频方法 张予生1,王明武2,王永华2 (1郑州轻工业学院后勤保障处,河南郑州 450002 2郑州轻工业学院河南省信息化电器重点实验室,河南郑州 450002) 摘要:针对IPC控制系统中流量计高精度的实时测频问题,分析了PCI-1712L和KPCI-714的测频原理和实际测试结果;通过PLC高速计数功能完成了对流量计的测频,实现了实时流量的高精度测量;利用平均值滤波算法修正了误差,使得精度进一步提高。该方法测到的频率精度达到0.4%, 采集速度为20次/秒。 关键词:IPC控制系统;流量计频率测定;PLC高速计数通道;PCI-1712L; KPCI-7414 中图分类号:TP274+.2 文献标识码:B A real-time frequency measuring method with high accuracy based on IPC control system Zhang Yusheng1,Wang Yonghua 2, Wang Mingwu 2 ( 1 Dept. of Logistics, ZhengZhou university of light Industry, Zhengzhou 450002, Henan State 2 ZhengZhou university of light Industry. Key Laboratory of informational Electric Apparatus in Henan State, Zhengzhou 450002) Abstract: To solve real-time frequency measuring problem of flow meter with high accuracy in the IPC control system, analyzed the frequency measuring principium and actual results of PCI-1712L and KPCI-714. By using high speed counter of PLC, measured the frequency of flow meter at high accuracy. Adopted the average filtering algorithm to modify error and improve data precision. The precision of frequency parameter can reach 0.4 % and the sampling speed can reach to 20 times/sec by using this method. Keywords:Industry PC control system; frequency measuring of flow meter; high speed counter of PLC; PCI-1712L; KPCI-7414 0 引言 气动阀性能参数采集与处理系统是针对高标准的军用气动阀性能测试要求而设计的。介质流量是气动阀最重要的性能参数,它是通过流量计输出的一串幅值为30VDC的频率信号而获得的。测试介质是高压压缩空气,流速极快,所以如何实现流量计实时的高精度测频是整个控制系统设计的一个难点和重要环节。我们先后使用台湾研华公司PCI-1712L数据采集卡和北京科日新公司KPCI-7414测频模

等精度数字频率计的设计

等精度数字频率计的设计 李艳秋 摘要 基于传统测频原理的频率计的测量精度将随着被测信号频率的下降而降低,在实用中有很大的局限性,而等精度频率计不但有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。运用等精度测量原理,结合单片机技术设计了一种数字频率计,由于采用了屏蔽驱动电路及数字均值滤波等技术措施,因而能在较宽定的频率范围和幅度范围内对频率,周期,脉宽,占空比等参数进行测量,并可通过调整闸门时间预置测量精度。选取的这种综合测量法作为数字频率计的测量算法,提出了基于FPGA 的数字频率计的设计方案。给出了该设计方案的实际测量效果,证明该设计方案切实可行,能达到较高的频率测量精度。 关键词等精度测量,单片机,频率计,闸门时间,FPGA Ⅱ

ABSTRACT Along with is measured based on the traditional frequency measurement principle frequency meter measuring accuracy the signalling frequency the drop but to reduce, in is practical has the very big limitation, but and so on the precision frequency meter not only has teaches the high measuring accuracy, moreover maintains the constant test precision in the entire frequency measurement region. Using and so on the precision survey principle, unified the monolithic integrated circuit technical design one kind of numeral frequency meter, because has used the shield actuation electric circuit and technical measure and so on digital average value filter, thus could in compared in the frequency range and the scope scope which the width decided to the frequency, the cycle, the pulse width, occupied parameter and so on spatial ratio carries on the survey, and might through the adjustment strobe time initialization measuring accuracy. Selection this kind of synthesis measured the mensuration took the digital frequency meter the survey algorithm, proposed based on the FPGA digital frequency meter design proposal. Has produced this design proposal actual survey effect, proved this design proposal is practical and feasible, can achieve the high frequency measurement precision Keywords Precision survey, microcontroller, frequency meter, strobe time,field programmable gate array Ⅱ

频率计测试中的精度计算

频率计测试中的频率计测试中的精度精度精度计算计算 1. 背景 在测试测量中测试精度一直是最为关心的问题。频率计作为高精度的频率和时间测试仪表,测试精度高于普通的频谱仪和示波器,所以测试精度的计算就更加为人关注。影响测试精度,或者说产生误差的因素很多,而其中最主要的因素是仪表内部时基稳定度、分辨率、触发精度及内部噪声等。频率计可以用来测试如频率、周期、相位、脉冲等,而其中频率和周期的测试占有绝大部分比例,本文主要讨论频率和周期的测试精度计算问题。 2. 频率和周期的测试精度 频率和周期互为倒数,所以在频率计的测试中,频率和周期的误差计算方法是一样的。从测试误差的产生来说主要有两类,一类是随机误差,一类是系统误差。随机误差主要由于如噪声或者一些随机因素产生的误差,很难消除。系统误差主要是由于测试方法、仪表设置或者仪表性能引起的误差。不同的设备制造商都有自己的关于误差的计算方法,大同小异,本文论述泰克FCA3000系列频率计测试误差的计算方法。 总误差: (U tot) ( 1 ) rand uncert : 随机误差 syst uncert: 系统误差 在测试频率或者周期时,我们可以通过以下公式计算随机误差和系统误差: 随机误差的计算随机误差的计算:: 当测试时间 Measuring Time < 200ms 时: ( 2 ) 当测试时间 Measuring Time > 200ms 时: ( 3 ) N = 800/Measuring Time (测试时间),同时 6 <= N <= 1000 并且 N < (Freq/2)*Measuring Time - 2 其中: Eq = 100 ps ( RMS) , Ess = Start Trigger Error

工业设备安装中高精度测量方法

工业设备安装中高精度测量方法 摘要:随着科学技术的发展,工业设备安装工程中的安装精度要求越来越高,尤其是大跨度、长距离、高速运转的自动化生产线的设备安装,如造纸生产线设备的安装,其水平度及垂直度的允许偏差均仅为0.3mm。 关键词:工业设备安装;安装精度要求;精度测量;地脚螺栓;测量放线;自动化生产线 随着科学技术的发展,工业设备安装工程中设备安装精度要求越来越高,尤其是大跨度、长距离、高速运转的自动化生产线的设备安装,如造纸生产线设备的安装,其水平度及垂直度的允许偏差均为0.3mm。 设备安装的精度取决于地脚螺栓的预埋精度,而在较大范围内的地脚螺栓预埋精度则由测量放线的精确度所决定。因此掌握整套的高精度测量放线技术是保证设备安装精度的基础。 1、主要技术特点 1.1使用本工法,建立基准线网络,各基准线之间的平等度、垂直度均能达到很高的精度要求。 1.2 网格基准线贯穿于整个厂房,无论是整条生产线,还是单体设备均能借助该基准线,利用精密仪器保证其安装精度。 1.3 利用网格基线来控制设备地脚螺栓的预埋偏差,减少误差传播量,从而保证设备安装精度。 1.4 利用网格基准线上基准点(线)的永久保存性,更方便于将来生产运行过程中的设备维修。 2、适用范围 本工法适用于安装精度要求较高、大跨度、长距离、高速度运转的自动生产线设备安装。例如造纸机生产线安装,厂区钢结构管架安装等。 3、施工准备 利用厂房原始的纵、横向的控制点,借助精密测量仪器(如T2经纬仪、GTS-311全站仪等)测设出厂房内设备的成条中心线,以及平等和垂直此中心线的纵、横辅助中心线,并在其纵向辅助中心线上设立各控制点,从而建立一基准线网格。

基于FPGA的等精度频率计

光电与通信工程学院课程设计报告书 课设名称:等精度频率计 年级专业及班级: 姓名: 学号:

一、课程设计目的 1、进一步熟悉 Quartus Ⅱ的软件使用方法,熟悉 keil 软件使用; 2、熟悉单片机与可编程逻辑器件的开发流程及硬件测试方法; 3、掌握等精度频率计设计的基本原理。 4、掌握独立系统设计及调试方法,提高系统设计能力。 实验设备 EDA最小系统板一块(康芯)、PC机一台、示波器一台、信号发生器一台、万用表一个。 二、设计任务 利用单片机与FPGA设计一款等精度频率计,待测脉冲的检测及计数部分由FPGA实现,FPGA的计数结果送由单片机进行计算,并将最终频率结果显示在数码管上。要求该频率计具有较高的测量精度,且在整个频率区域能保持恒定的测试精度,具体指标如下: a)具有频率测试功能:测频范围 100Hz~5MHz。测频精度:相对误差恒为基准频率的万分之一。 b)具有脉宽测试功能:测试范围 10μs~1s,测试精度:0.1μs。 c)具有占空比测试功能:测试精度1%~99%。 d)具有相位测试功能。 (注:任务a 为基本要求,任务 b、c、d 为提高要求) 三、基本原理 基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个频率区域能保持恒定的测试精度。 3.1 等精度测频原理 等精度频率计主控结构如图 1 所示

预置门控信号 CL 选择为 0.1~1s 之间(通过测试实验得出结论:CL 在这个 范围内选择时间宽度对测频精度几乎没有影响)。BZH 和 TF 分别是 2 个高速计数器,BZH 对标准频率信号(频率为 Fs)进行计数,设计数结果为 Ns;TF 对被测信号(频率为Fx)进行计数,计数结果为 Nx,则有 MUX64-8 模块并不是必须的,可根据实际设计进行取舍。分析测频计测控时序,着重分析 START的作用,完成等精度频率计设计。 3.2 FPGA 模块 FPGA模块所要完成的功能如图 1 所示,由于单片机的速度慢,不能直接测量高频信号,所以使用高速 FPGA 为测频核心。100MHZ 的标准频率信号由FPGA 内部的 PLL 倍频实现,待测信号 TCLK 为方波,由信号发生器给出待测方波信号(注意:该方波信号带有直流偏置,没有负电压,幅值3.3V)。预制

4、常用高精度温度测量方法

常用湿度采集传感器及湿度测量原理 湿度传感器,基本形式都为利用湿敏材料对水分子的吸附能力或对水分子产生物理效应的方法测量湿度。有关湿度测量,早在16世纪就有记载。许多古老的测量方法,如干湿球温度计、毛发湿度计和露点计等至今仍被广泛采用。现代工业技术要求高精度、高可靠和连续地测量湿度,因而陆续出现了种类繁多的湿敏元件。 湿敏元件主要分为二大类:水分子亲和力型湿敏元件和非水分子亲和力型湿敏元件。利用水分子有较大的偶极矩,易于附着并渗透入固体表面的特性制成的湿敏元件称为水分子亲和力型湿敏元件。例如,利用水分子附着或浸入某些物质后,其电气性能(电阻值、介电常数等)发生变化的特性可制成电阻式湿敏元件、电容式湿敏元件;利用水分子附着后引起材料长度变化,可制成尺寸变化式湿敏元件,如毛发湿度计。金属氧化物是离子型结合物质,有较强的吸水性能,不仅有物理吸附,而且有化学吸附,可制成金属氧化物湿敏元件。这类元件在应用时附着或浸入被测的水蒸气分子,与材料发生化学反应生成氢氧化物,或一经浸入就有一部分残留在元件上而难以全部脱出,使重复使用时元件的特性不稳定,测量时有较大的滞后误差和较慢的反应速度。目前应用较多的均属于这类湿敏元件。另一类非亲和力型湿敏元件利用其与水分子接触产生的物理效应来测量湿度。例如,利用热力学方法测量的热敏电阻式湿度传感器,利用水蒸气能吸收某波长段的红外线的特性制成的红外线吸收式湿度传感器等。 测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气中吸收水分后引起的物理化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏元件分别是根据其高分子材料吸收后的介电常量、电阻率和体积随之发生变化而进行湿度测量的。 湿度传感器是由湿敏元件和转换电路等组成,它是将环境湿度变换为电信号的装置。湿度传感器在工业、农业、气象、医疗以及日常生活等方面都得到了广泛的应用,尤其是随着科学技术的发展,对于湿度的检测和控制越来越受到人们的重视并进行了大量的研制工作。通常,理想的湿度传感器的特性要求是,适合于在宽温、湿范围内使用,测量精度要高;使用寿命长,稳定性好;响应速度快,湿滞回差小,重现性好;灵敏度高,线性好,温度系数小;制造工艺简单,易于

基于Protues数字频率计的设计与仿真

基于Proteus的数字频率计设计与仿真 摘要:本文主要论述了利用单片机AT89C51进行频率、周期、时间间隔、占空比测量的设计过程。该频率计采用测量N个信号波形周期的算法,充分利用单片机AT89C51中三个可编程定时/计数器,结合部分中规模数字电路,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点,实现了频率、周期、时间差、占空比的高精度测量,结果的显示。该数字频率计的硬件系统电路由前置整形电路、分频电路、基准信号源、单片机电路和数字显示电路构成。其中单片机电路又由单片机、数据选择器、键盘、状态指示电路构成。软件系统由主程序、键盘子程序、显示子程序、测量子程序、脉冲高、低电平宽度测量子程序构成,由汇编语言编写。通过硬件系统和软件系统的相互配合,成功的实现了频率、周期、时间差、占空比的高精度测量,系统的自校和测量结果的显示。 关键词:数字频率计;周期;单片机 Digital Frequency Measure Design and Simulation Based on Proteus Abstract:This article mainly discusses the design process of us ing single-chip AT89C51to measure frequency, cycle, time interval and duty cycle. U s ing the algorithm of measur ing N signal cycle, mak ing full use of the three programmable timer / counter of single-chip AT89C51, combined with some digital circuits, t he frequency meter overcome s the shortcomings of the measurement accuracy reduces with the reduction of the frequency of the measured signal by t he frequency meter based on the principle of traditional measurement of frequency , achieves high-precision measurements of the frequency, cycle, time difference and duty cycle, displays the results. The hardware system circuit s of the digital frequency meter is made up of the pre-shaping circuit, sub-frequency circuit, reference signal source, single-chip circuit, digital display circuit and DC power supply regulator circuit. Of it, the s ingle-chip circuit consists of single-chip, data selector and keyboards. The s oftware system is made up of main program, keyboard s ubroutine, display subroutine, measurement subroutine, pulse high and low level width measurement subroutine, prepared by the assembly language. T hrough the cooperat ion with each other of the h ardware system and software system,t he frequency meter successfully achieves high-precision measurements of frequency,cycle, time difference, and duty cycle, finishes s ystem calibration and the display of measurement results. Keywords:d igital frequency meter;cycle; single-chip 1绪论 ·1.1课题研究的意义

相关文档
最新文档