基于单片机的等精度数字测频

发布者:masphia最新更新时间:2007-05-22 来源: 电子测试关键字:参数  定时  振荡  脉冲 手机看文章 扫描二维码
随时随地手机看文章

在电子技术领域内,频率是一个最基本的参数,频率与其它许多电参量的测量方案,都有十分密切的关系。因此,频率的测量就显得更为重要,而且,目前在电子测量中,频率的测量精确度最高。

1. 电子计数测频原理框图

首先,被测信号通过放大整形,形成幅度一致,形状一致是计数脉冲。然后,N将它加到闸门的一个输入端,闸门由门控信号来控制其关闭时间。计得的脉冲送至译码,再送显示器显示出来。而由晶振产生的1MHz的振荡信号经放大整形,形成方波,经多个10分频10s,1s,0.1s,0.01s,1ms,那么有fx=N/T符合测频定义。根据f=N/T。不难看出,采用计数器测频的测量误差,一方面决定于闸门时间T准不准确,即由晶振提供的标准频率的准确度△T/T=-(△fo/fo);另一方面决定于计数器计得的数准不准,即"±1误差",△N/N=±1/N=±(1/○XTfx)。所以,计数器直接测频的误差主要有两项,即±1误差和标准频率误差。测低频时,由于±1误差产生的测频误差大得惊人,所以不宜采用直接测频方法。由于fX较低时,利用计数器直接测频,由±1误差所引起的测频误差将会大到不可允许的程度。所以,为了提高测量低频时的准确度,即减少±1误差的影响,可改成先测周期Tx,然后计算fx=1/Tx。

2. 电子计数器测周期原理

Tx经放大整形控制双稳态触发器形成门控信号,控制闸门的开闭;然后晶搌产生的1MHz的振荡信号,经放大整形形成方波,产生幅度一致,形状一致是计数脉冲。当闸门打开时,对计数脉冲进行计数;闸门关闭时,停止计数。计得的脉冲送译码,送显示。

3. 单片机定时器工作原理

8XX51单片机的定时器T1由TH1,TL1组成,定时器T0由TH0,TL0组成。它们均为八位寄存器,映射在特殊功能寄存器中,占地址8AH、8BH。它们用于存放定时或计数的初始值。此外,内部还有一个八位的方式选择寄存器TMOD和一个八位的控制寄存器TCON,占地址89H和88H,用于选择定时器/计数器的工作方式,如计数还是定时(C/-T),启动的方式(GATE)及发启动控制信号TRx。

定时和计数实质都是对脉冲的计数,只是被计的脉冲的来源不同,定时方式的计数初值和被计脉冲的周期有关,而计数方式的计数初值只和被计脉冲的个数有关(计由高到低的边沿数)。

8031单片机内含有两个16位可编程定时/计数器。均可编程对内部机器周期计数(定时方式),或对外部引脚输入的脉冲进行计数(计数方式)。CPU工作于12MHz主频时,外部最高计数频率500kHz,内部时钟计数频率达1MHz。定时器的基准定时脉冲周期为1μs,当采用测频方式时,T/C0编程为计数方式,对被测信号频率计数,产生欲置的检测时间。由于定时器最长的定时时间为65535s,欲产生更长的检测时间需使用软件计数器,中断多次即可获得所需检测时间。被测频率较低时,则选用测周方式;T/C1编程为定时方式,用来对m个输入脉冲周期所经历的时间计时。

4. 等精度测量原理框图

微处理器的主要优点之一是可以利用微处理器的数据处理能力,减少测量过程中产生的随机误差和系统误差,从而提高测量精度,所以往往把单片机运用在电子测量过程中,来提高测量精度。

实现等精度测量原理,关键是使Nx不产生误差,而No不超过±1误差。利用PC机总线技术,设计了相应的控制门电路,实现对被测频率信号的计数及相应的精确闸门时间,并使闸门的开启与关闭和被测信号的有效跳变同步。

预置门的打开和关闭由被测信号和预置的测量时间控制,计数器Nx在预置门的控制下对被测信号频率计数,控制门根据预置门产生一个与被测信号同步的同步门;计数器No在同步门的控制下对时标计数,得到精确的闸门时间Tg。设时标周期为To,则被测频率Fx=Nx/NoTo。

单片机采用定时ls的测频法先对信号进行预测,软件根据频率高低自动选择检测时间或周期扩展倍数,以保证各档都有较高测量精度。当输入信号频率超过100kHz时,信号经扩展计数器分频后送入8031按测频法测量,频率检测时间设有三档,分别为0.01s、0.1s、1s。在转入周期测量后,信号直接送入单片机,周期扩展倍数有104、103、102、10、1五档。

由于单片机的最高计数频率为500kHz,限制了测频范围,必须对高频进行分频。扩展n分频器后,将会产生分频误差。这个n分频最大将导致(n-1)个待测频率周期的分频误差。该误差量级与"±l"误差相当,甚至更大。为了提高测频分辨率,我们采用了硬件同步分频技术,即在闸门开启的有效上升沿时刻,对74LS591分频器清零。在闸门关闭时刻,将分频状态打入总线缓冲器74LS244,8031通过缓冲器读出其值,从而消除了"分频误差"。

在本系统中,T/C1编程为定时方式时,在12MHz晶振下其最大定时时间只有65.536ms,需采用软件来扩展计数器的容量。即计数器每溢出中断一次,片内RAM的内容加一计数,这样大大扩了单片机的计数范围。但同时也引入了中断响应的时间误差,我们称之为"软件误差"。频率计的核心是时间基准的正确性,因此在中断后重置定时器时间常数时,不能简单地采用重置办法。从单片机的中断响应系统及其响应过程可知:(1)定时器每次溢出中断时,WAIT语句必须执行完才能响应,该条指令的执行时间为2μs,我们取其平均延迟时间为1μs;(2)CPU响应中断到执行中断服务程序首条指令至少需3个完整的机器周期,即延时3μs;(3)中断服务程序中实际的定时时间是在执行完时间常数的装载指令后才开始,两条装载指令占用4μs。根据以上分析。每次中断后,将延迟约8μs后才开始定时。实际获得的定时时间必须考虑到8μs的延迟,该频率计采用软件补偿的处理方法来降低其影响。由于软件修正相当方便在仪器调试中可作进一步的调整,因此基本上可消除软件误差。

频率计根据被测信号频率的大小,软件控制自动切换频率检测时间,或自动转换为周期测量,其软件设计采用模块化结构设计,程序设计与调试都很方便,功能扩充也很灵活。单片机上电复位后,首先执行主程序,完成有关芯片和定时器的初始化,设置数据缓冲区、显示方式、数据计数器初值及频率初测方式等。开中断后,随时检测外部中断和定时器所发出的中断请求信号,一旦有则转入相应的中断服务程序,否则返回显示程序,显示所测的频率值。

5. 结束语

本文通过比较以往电子计数测频原理、电子计数测周期原理的分析,结合单片机定时/计数器的工作原理,给出了等精度测量原理以及软件误差的消除方法。实现起来简单可靠且性能稳定、精度高、性价比低等优点。

关键字:参数  定时  振荡  脉冲 引用地址:基于单片机的等精度数字测频

上一篇:基于RGB三基色原理的手持式色度仪的设计
下一篇:实用线性宽量程精密恒流仪的制作及应用

推荐阅读最新更新时间:2024-05-13 18:35

STM32同时开启两个定时器,其一个定时器不能设置断点的原因
最近在编写程序的时候发现stm32单片机的定时器不同的类型其配置是不一样的。 在编程的过程中开了两个定时器,结果在调试程序的时候发现TIM6中断程序不能设置断点,就说明这段程序可能没有被运行,后来我又换了TIM1也是一样不行。 查看数据手册如下: 从stm32f030c8t6的数据手册可以看出,定时器有三个类型,分别是高级定时器,通用定时器以及基本定时器,我猜想可能是定时器的类型不一样,因此配置上面也不一样,因此我选用了TIM14作为我第二个定时器,配置和TIM3一样,这一次就成功的可以设置断点了。事实证明我的猜想是对的。
[单片机]
STM32同时开启两个<font color='red'>定时</font>器,其一个<font color='red'>定时</font>器不能设置断点的原因
分布式电网参数监测系统的设计
    摘要: 介绍了分布式电网参数监测系统的结构以及下位机的硬件设计。给出了利用该系统实时检测电网三相电压、电流等运行参数以及通过DFT检测有功功率、无功功率和电网中电压、电流各类谐波分参量的测量原理,以及计算电网负载大小及非线性度的计算方法。     关键词: 分布式 电网 监测 DFT 1 引言 为了保证电网的安全运行和了解电网运行的状况,需要对电网的各种运行参数(如三相电压、电流、有功功率、无功功率等)进行实时检测,以得到电网中电压、电流以及各类谐波成分的参量,计算出电网负载的大小及共非常性度,以便于进行无功补偿。 在电网参数测量方面已经有了基本的测量算法,但目前在实际应用中,在测量方法或测量
[应用]
STM32 独立看门狗定时器IWDG复位
无论是什么微控制器,一般都会有看门狗模块。对于STM32来说,它具有两个看门狗:独立看门狗(IWDG)与窗口看门狗(WWDG)。这里就先讲讲独立看门狗。 看门狗能够检测和解决有软件错误引起的故障。当一个错误导致看门狗不能及时 喂狗 ,那么它就会产生一个系统复位。独立看门狗,之所以 独立 ,是因为它由专门的40kHz左右的低速时钟驱动的,及即时主时钟发生故障它也仍然有效。为它提供时钟的低速时钟LSI的频率虽然号称是40KHz,但实际上并不准确,它有MCU内部RC振荡产生,频率会会在30kHz~60kHz之间变化。所以,独立看门狗不能用来精确计时。如果想要实现准确计时,那还需要对LSI进行校准。独立看门狗最适合用于那些在一个主程序之外
[单片机]
STM32 独立看门狗<font color='red'>定时</font>器IWDG复位
STM32F4_TIM输入波形捕获(脉冲频率)
Ⅰ、概述 本文在前面文章“STM32基本的计数原理”的基础上进行拓展,讲述关于“定时器输入捕获”的功能,和上一篇文章“定时器比较输出”区别还是挺大的。在引脚上刚好相反:一个输入、一个输出。 本文只使用一个TIM5通道3(也可其他通道)捕获输入脉冲的频率,通过捕获两次输入脉冲的间隔时间来计算脉冲波形的频率。间隔一定时间读取频率并通过串口打印出来。 当然也可通过两路通道捕获脉冲信号的占空比,计划后期整理。 笔者通过信号发生器产生信号,上位机串口助手显示捕获的脉冲频率。(没有信号发生器的朋友可以结合上一篇文章PWM输出做信号源:在同一块板子上也可以使用不同定时器,将输出引脚接在输入引脚) 先看一下实例的实验现象:
[单片机]
STM32F4_TIM输入波形捕获(<font color='red'>脉冲</font>频率)
STM32应用简章之通用定时
① 能定时器时钟。 RCC_APB1PeriphClockCmd(); ② 初始化定时器,配置ARR,PSC。 TIM_TimeBaseInit(); ③开启定时器中断,配置NVIC。 void TIM_ITConfig(); NVIC_Init(); ④ 使能定时器。 TIM_Cmd(); ⑥ 编写中断服务函数。 TIMx_IRQHandler(); void TIM3_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitType
[单片机]
567音频译码器构成的双频振荡电路
567为音频译码器,主要用于自动电话系统,识别收到的电话音调。该集成块的核心是一个高可靠性、高精度锁相环。按图示连接方式和使用的元件数值,两个输出信号频率分别为1.5kHz和4kHz。输出频率可变的方波振荡器是比较通用的,但要从同一振荡电路同时获得两个不同频率的方波输出却相当困难。本电路采用集成电路567可实现上述要求。567音频译码器构成的双频振荡电路:
[电源管理]
567音频译码器构成的双频<font color='red'>振荡</font>电路
STM32之通用定时器输出比较模式
#include stm32f10x.h /* RCC时钟配置 */ void RCC_config() { ErrorStatus HSEStartUpStatus; /* RCC寄存器设置为默认配置 */ RCC_DeInit(); /* 打开外部高速时钟 */ RCC_HSEConfig(RCC_HSE_ON); /* 等待外部高速时钟稳定 */ HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus == SUCCESS) { /* 设置HCLK = SYSCLK */ RCC_HCLKConfig(RCC_SYSCLK_Div1); /
[单片机]
车载激光雷达核心性能参数及分类标准
近年来,智能汽车的发展极大地推动了激光雷达产业的热度,目前国内外在激光雷达领域布局的公司越来越多。激光雷达是一种发射光束并接收回波获取目标三维信息的系统,已经有着几十年的应用历史。激光雷达系统复杂,应用场景多样,多种技术路线并存,因此,对激光雷达性能的评价不是一个简单的问题,尤其是一些参数容易混淆,如探测精度、探测准确度、探测分辨率、帧频和点频等。 由于还没有统一的标准,不同厂家在宣传中选择的参数并不完全一样。实际上,并非所有的参数都是激光雷达的核心参数,还有一些参数之间存在较强的关联性。如果不能正确认识这些参数的含义、相互关系、决定因素,很可能被个别高性能指标所迷惑,而无法了解激光雷达的真实性能。 本文选择车载激光雷达的
[嵌入式]
车载激光雷达核心性能<font color='red'>参数</font>及分类标准
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved