CN113030567A - 一种基于单片机的测频方法及装置 - Google Patents

一种基于单片机的测频方法及装置 Download PDF

Info

Publication number
CN113030567A
CN113030567A CN201911352441.7A CN201911352441A CN113030567A CN 113030567 A CN113030567 A CN 113030567A CN 201911352441 A CN201911352441 A CN 201911352441A CN 113030567 A CN113030567 A CN 113030567A
Authority
CN
China
Prior art keywords
frequency
value
signal
counting
trigger
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911352441.7A
Other languages
English (en)
Other versions
CN113030567B (zh
Inventor
孙贵鑫
黄鑫
高飞
张文鹏
牟春雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aerospace Science and Industry Inertia Technology Co Ltd
Original Assignee
Aerospace Science and Industry Inertia Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aerospace Science and Industry Inertia Technology Co Ltd filed Critical Aerospace Science and Industry Inertia Technology Co Ltd
Priority to CN201911352441.7A priority Critical patent/CN113030567B/zh
Publication of CN113030567A publication Critical patent/CN113030567A/zh
Application granted granted Critical
Publication of CN113030567B publication Critical patent/CN113030567B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R23/00Arrangements for measuring frequencies; Arrangements for analysing frequency spectra
    • G01R23/02Arrangements for measuring frequency, e.g. pulse repetition rate; Arrangements for measuring period of current or voltage
    • G01R23/10Arrangements for measuring frequency, e.g. pulse repetition rate; Arrangements for measuring period of current or voltage by converting frequency into a train of pulses, which are then counted, i.e. converting the signal into a square wave
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Measuring Frequencies, Analyzing Spectra (AREA)

Abstract

本发明提供一种基于单片机的测频方法及装置,所述方法包括:接收被测频率信号;根据所述被测频率信号的第一个触发信号启动计数获得计数值和根据所述被测频率信号的触发信号记录触发次数,并将所述计数值和所述触发次数通过直接内存存取方式存储;若判断获知所述触发次数大于等于触发阈值,则停止对所述被测频率信号的测频;根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率;其中,所述参考信号频率为计数的频率。所述装置用于执行上述方法。本发明实施例提供的基于单片机的测频方法及装置,提高了单片机的工作效率。

Description

一种基于单片机的测频方法及装置
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于单片机的测频方法及装置。
背景技术
在电子测试领域中,频率是基本参数之一,频率信号抗干扰性强,易于传输,可以获得较高的测量精度,对频率的测量也是最基本的测量之一。
目前,常用的测量频率的方法包括两种:频率测量法和周期测量法,这两种方法都会产生±1个被测信号周期的误差。频率测量法适合测量高频信号,周期测量法适合测量低频信号。在小型工控电路系统中,一般采用单片机作为主控单元,同时被测信号频率一般为低速信号。常规的做法有两种,第一种是使用一个单片机内置定时器利用频率测量法或者周期测量法完成频率测量,优点是方法简单,缺点是精度不高,需限定频率范围。第二种使用两个单片机内置定时器完成等精度测频法,优点是精度较高,缺点是测频过程复杂。上述测频方法存在以下问题:(1)测频的精度一般与测量时长相关,单片机是单线程工作,长时间的测频会影响单片机的其他任务的执行;(2)单片机接收被测频率信号采用中断方式,较高的频率信号会频繁的触发单片机中断,影响单片机工作,严重可能会导致程序异常;(3)被测频率信号有可能出现断续现象,即一次测量时间内,两段被测信号中间丢失一段信号,导致频率计算出现错误;(4)由于电路以及其他环境原因,在一次测量时间内,存在被测信号某些周期出现抖动、异常噪声,单片机一个周期多次产生多次中断,会导致频率计算出现错误。
发明内容
针对现有技术中的问题,本发明实施例提供一种基于单片机的测频方法及装置,能够至少部分地解决现有技术中存在的问题。
一方面,本发明提出一种基于单片机的测频方法,包括:
接收被测频率信号;
根据所述被测频率信号的第一个触发信号启动计数获得计数值和根据所述被测频率信号的触发信号记录触发次数,并将所述计数值和所述触发次数通过直接内存存取方式存储;
若判断获知所述触发次数大于等于触发阈值,则停止对所述被测频率信号的测频;
根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率;其中,所述参考信号频率为计数的频率。
另一方面,本发明提供一种基于单片机的测频装置,包括:
接收单元,用于接收被测频率信号;
计数单元,用于根据所述被测频率信号的第一个触发信号启动计数获得计数值和根据所述被测频率信号的触发信号记录触发次数,并将所述计数值和所述触发次数通过直接内存存取方式存储;
停止单元,用于在判断获知所述触发次数大于等于触发阈值之后,停止对所述被测频率信号的测频;
计算单元,用于根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率;其中,所述参考信号频率为计数的频率。
再一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述基于单片机的测频方法的步骤。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述基于单片机的测频方法的步骤。
本发明实施例提供的基于单片机的测频方法及装置,能够接收被测频率信号,然后根据被测频率信号的第一个触发信号启动计数获得计数值和根据被测频率信号的触发信号记录触发次数,并将计数值和触发次数通过直接内存存取方式存储,在判断获知触发次数大于等于触发阈值之后,停止对被测频率信号的测频,根据触发次数、计数值以及参考信号频率,计算获得被测频率信号的频率,由于计数值和触发次数通过直接内存存取方式存储,不会频繁触发单片机中断,提高了单片机在测频时工作的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例提供的基于单片机的测频方法的流程示意图。
图2是本发明另一实施例提供的基于单片机的测频方法的流程示意图。
图3是本发明又一实施例提供的基于单片机的测频方法的流程示意图。
图4是本发明一实施例提供的基于单片机的测频方法的测试过程示意图。
图5是本发明一实施例提供的基于单片机的测频装置的结构示意图。
图6是本发明另一实施例提供的基于单片机的测频装置的结构示意图。
图7是本发明又一实施例提供的基于单片机的测频装置的结构示意图。
图8是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1是本发明一实施例提供的基于单片机的测频方法的流程示意图,如图1所示,本发明实施例提供的基于单片机的测频方法,包括:
S101、接收被测频率信号;
具体地,单片机在启动测频功能之后,所述单片机可以接收被测频率信号。其中,在启动单片的测频功能之前,需要对所述单片机进行配置,对单片机的配置根据实际需要进行设置,本发明实施例不做限定。
例如,设置单片机的被测频率信号的输入端口工作在捕获模式,设置触发条件,设置作为参考信号频率的分频以及触发阈值等。
S102、根据所述被测频率信号的第一个触发信号启动计数获得计数值和根据所述被测频率信号的触发信号记录触发次数,并将所述计数值和所述触发次数通过直接内存存取方式存储;
具体地,所述单片机在接收到所述被测频率信号的第一个触发信号之后,启动定时器进行计数,获得计数值,计数的频率为所述参考信号频率。所述单片机接收到所述被测频率信号的触发信号之后,会根据所述被测频率信号的触发信号记录触发次数,每出现一个触发信号,触发次数加1。所述单片机会将所述计数值和所述触发次数通过直接内存存取方式(Direct Memory Access,简称DMA)进行存储。其中,所述触发信号根据触发条件确定,如果所述触发条件为上升沿触发,那么所述触发信号为上升沿信号,如果所述触发条件为下降沿触发,那么所述触发信号为下升沿信号。通过DMA方式存储计数值和触发次数,避免频繁触发单片机中断,不会影响单片机执行其他任务。
例如,所述触发信号为上升沿信号,所述单片机第一次接收到所述被测频率信号的上升沿信号之后,会启动定时器按照参考信号频率进行计数。同时,所述触发次数加1,所述上升沿信号每出现一次,所述触发次数加1。
S103、若判断获知所述触发次数大于等于触发阈值,则停止对所述被测频率信号的测频;
具体地,所述单片机在获得所述触发次数之后,会判断所述触发次数是否大于等于触发阈值,如果所述触发次数大于等于所述触发阈值,那么所述单片机会停止对所述被测频率信号的测频,即所述单片机会停止接收所述被测频率信号和停止计数,结束本次测频。如果所述触发次数小于所述触发阈值,所述单片机会继续接收所述被测频率信号。
S104、根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率;其中,所述参考信号频率为计数的频率。
具体地,所述单片机在停止对所述被测频率信号的测频之后,可以根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率。其中所述参考信号频率是预设的。
例如,在测频误差较小或者可以忽略的情况下,可以直接采用测频结束时的触发次数、计数值和所述参考信号频率,计算获得所述被测频率信号的频率。在存在测频误差或者对测频精度要求较高的情况下,可以剔除异常数据,利用剔除异常数据之后的测频结束时的触发次数和计数值以及所述参考信号频率,计算获得所述被测频率信号的频率。
本发明实施例提供的基于单片机的测频方法,能够接收被测频率信号,然后根据被测频率信号的第一个触发信号启动计数获得计数值和根据被测频率信号的触发信号记录触发次数,并将计数值和触发次数通过直接内存存取方式存储,在判断获知触发次数大于等于触发阈值之后,停止对被测频率信号的测频,根据触发次数、计数值以及参考信号频率,计算获得被测频率信号的频率,由于计数值和触发次数通过直接内存存取方式存储,不会频繁触发单片机中断,提高了单片机在测频时工作的稳定性。此外,由于不会频繁触发单片机中断,减少对单片机执行其他任务的影响,提高单片机的工作效率。
在上述各实施例的基础上,进一步地,所述根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率包括:
根据测频结束时的触发次数、计数值和所述参考信号频率,计算获得所述被测频率信号的频率。
具体地,所述单片机在测频结束之后,可以获取测频结束时的触发次数和测频结束时的计数值,然后根据测频结束时的触发次数、计数值和所述参考信号频率,计算获得所述被测频率信号的频率。其中,所述测频结束时的触发次数即所述触发阈值,测频结束时的计数值,即最后一次计数时的计数值。
例如,所述单片机根据公式fc=f0(N-1)/D,计算获得所述被测频率信号的频率fc,其中,f0为所述参考信号频率,N为测频结束时的触发次数,D为测频结束时的计数值。
图2是本发明另一实施例提供的基于单片机的测频方法的流程示意图,如图2所示,在上述各实施例的基础上,进一步地,所述根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率包括:
S1041、根据每个触发次数以及对应的计数值,获得所有相邻两个触发次数之间的计数差值,并根据测频结束时的触发次数和计数值,计算获得计数平均值;
具体地,由于在被测频率信号每次出现触发信号时,所述单片机都会记录相应的触发次数和计数值,所述单片机可以获得每个触发次数以及每个触发次数对应的计数值。所述单片机根据每个触发次数以及每个触发次数对应的计数值,可以计算获得所有相邻两个触发次数之间的计数差值,对于n个触发次数,可以获得n-1个相邻两个触发次数之间的计数差值。所述单片机可以获得测频结束时的触发次数和测频结束时的计数值,然后计算测频结束时的计数值除以测频结束时的触发次数的结果,作为计数平均值。其中,可以将与每个触发次数最接近的计数值作为每个触发次数对应的计数值。
S1042、若判断获知相邻两个触发次数之间的计数差值与所述计数平均值的差值的绝对值大于预设值,则确定所述相邻两个触发次数之间的计数差值为异常数据;
具体地,所述单片机在获得所有相邻两个触发次数之间的计数差值和所述计数平均值之后,可以计算每个计数差值与所述计数平均值得差值的绝对值,如果上述绝对值大于预设值,那么确定大于所述预设值的绝对值对应的计数差值为异常数据。对于每个计数差值,都会进行是否是异常数据的判断。其中,所述预设值根据实际经验进行设置,本发明实施例不做限定。
S1043、根据异常数据对测频结束时的触发次数和计数值进行修正,根据修正后的触发次数和计数值以及所述参考信号频率,计算获得所述被测频率信号的频率。
具体地,所述单片机在获得所述异常数据之后,将所述异常数据从所述测频结束时的计数值中剔除,获得修正后的计数值。所述单片机可以统计计数差值为异常数据的数量,用测频结束时的触发次数减去上述数量,获得修正后的触发次数。然后根据修正后的触发次数、修正后的计数值以及所述参考信号频率,可以计算获得所述被测频率信号的频率。在计算被测频率信号的频率时将异常数据剔除,可以剔除信号断续、受到干扰、抖动等原因产生的错误数据,提高频率计算的准确性。
例如,所述单片机根据公式fc=f0(N*-1)/D*,计算获得所述被测频率信号的频率fc,其中,f0为所述参考信号频率,N*为修正后的触发次数,D*为修正后的计数值。
在上述各实施例的基础上,进一步地,本发明实施例提供的基于单片机的测频方法还包括:
若判断获知预设触发次数对应的计数值与所述预设触发次数的比值小于阈值,则提高所述参考信号频率。
具体地,本发明实施例提供的基于单片机的测频方法,适用于所有的频率范围,在实际应用中,当参考信号频率越大时,测频的效果越好,同时参考信号频率也不能过大,如果参考信号频率过大计数器会溢出,无法完成测频。所述单片机可以计算预设触发次数对应的计数值与所述预设触发次数的比值,然后将上述比值与阈值进行比较,如果上述比值小于所述阈值,说明参考信号频率与被测频率信号的频率的比值较小,可以提高所述参考信号频率,以提高被测频率信号的频率测量精度。所述参考信号频率具体提高到的数值,需要根据实际的应用场景确定,可以根据实际的应用场景预先设置参考信号频率与被测频率信号的频率测量比值,然后根据预设触发次数对应的计数值与所述预设触发次数的比值、上述测量比例以及已经采用的参考信号频率,获得提高后的参考信号频率。其中,所述阈值根据实际经验进行设置,本发明实施例不做限定。所述预设触发次数根据实际需要进行设置,本发明实施例不做限定。
例如,所述单片机计算获得预设触发次数对应的计数值与所述预设触发次数的比值为50,预先设置的参考信号频率与被测频率信号的频率测量比值为100,已经采用的参考信号频率为1MHz,那么提高后的参考信号频率应为1x100/50=2MHz。
例如,触发阈值设置为1000,所述预设触发次数可以设置为1000/2=500或者1000/4=250,在对被测频率信号进行频率测量的过程中判断是否需要调整参考信号频率,以快速准确的完成测频。可以设置预设触发次数等于触发阈值1000,在完成一次测频之后,根据测频结束时的计数值与所述预设触发次数的比值判断采用的参考信号频率是否合适,如果上述比值小于所述阈值,那么所采用的参考信号频率不合适,可以提高参考信号频率之后重新进行测频。
图3是本发明又一实施例提供的基于单片机的测频方法的流程示意图,如图3所示,本发明实施例提供的基于单片机的测频方法的具体流程如下:
第一步、单片机启动测频功能之后,接收被测频率信号。在启动所述单片机的测频功能之前,设置所述单片机输入被测频率信号的端口工作在捕获模式,触发条件为上升沿触发,即在接收到被测频率信号的上升沿信号时,触发次数加1,设置晶振的分频频率为1MHz,那么定时器计数的频率为1MHz即参考信号频率f0为1MHz,设置触发阈值N=100。其中,所述单片机可以采用STM32F系列单片机,单片机的晶振为8MHz,晶振用于提供分频频率。
第二步、所述单片机接收到所述被测频率信号的第一个上升沿信号时,输入端口关联的定时器启动,从0开始计数,获得计数值,直到测频结束时停止计数。其中,所述计数值通过DMA方式存储。
第三步、所述单片机每接收到所述被测频率信号的一个上升沿信号,触发次数加1。
第四步、所述单片机判断所述触发次数是否等于触发阈值100,如果所述触发次数大于等于触发阈值,那么进入第五步;如果所述触发次数小于触发阈值,那么回到第三步。
第五步、所述单片机停止测频,即停止接收所述被测频率信号,并停止计数。
第六步、所述单片机获取每个触发次数以及每个触发次数对应的计数值。所述单片机可以将最接近所述触发次数的计数值作为所述触发次数对应的计数值。
第七步、所述单片机根据各个触发次数以及各个触发次数对应的计数值,计算所有相邻两个触发次数之间的计数差值,可以获得99个计数差值,并根据测频结束时的触发次数以及计数值,计算获得计数平均值,即用第100个触发次数对应的计数值除以100,获得计数平均值。所述单片机计算99个计数差值中每个计数差值与上述计数平均值的差值的绝对值,获得99个差值的绝对值,将99个差值的绝对值分别与预设值进行比较,如果某个差值的绝对值大于预设值,那么该差值的绝对值对应的计数差值为异常数据,可以找出99个计数差值中的所有异常数据。假设99个计数差值中只有一个计数差值为异常数据。
第八步、由于只有一个异常数据,对触发次数100进行修正,获得修正后的触发次数N*=100-1=99。对测频结束时的计数值为D,异常的计数差值为d,修正后的计数值D*=D-d。所述单片机根据公式fc=f0(N*-1)/D*,可以计算出所述被测频率信号的频率。
图4是本发明一实施例提供的基于单片机的测频方法的测试过程示意图,如图4所示,采用如图3所示的基于单片机的测频方法对被测频率信号Fc进行测频,cnt为计数值,n为触发次数,当测频结束时,触发次数n=100,计数值cnt=9965。由于触发次数4和触发次数3之间的计数差值为165,远远大于计数平均值99.65,所以在计算被测频率信号Fc的频率时,将计数差值165从测频结束时的计数次数中剔除,获得修正后的计数值为9965-165=9800,对触发次数进行修正,获得修正后的触发次数为100-1=99。参考信号频率f0为1MHz,根据公式fc=f0(N*-1)/D*,可以计算出被测频率信号Fc的频率为10KHz。图4中,闸门时间T开始于第一个上升沿信号,结束于触发次数n=100,能够确保闸门时间T是被测频率信号周期的整数倍,能够保证测量的精度,适用于全范围频率信号的测频。
图5是本发明一实施例提供的基于单片机的测频装置的结构示意图,如图5所示,本发明实施例提供的基于单片机的测频装置包括接收单元501、计数单元502、停止单元503和计算单元504,其中:
接收单元501用于接收被测频率信号;计数单元502用于根据所述被测频率信号的第一个触发信号启动计数获得计数值和根据所述被测频率信号的触发信号记录触发次数,并将所述计数值和所述触发次数通过直接内存存取方式存储;停止单元503用于在判断获知所述触发次数大于等于触发阈值之后,停止对所述被测频率信号的测频;计算单元504用于根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率;其中,所述参考信号频率为计数的频率。
具体地,在启动测频功能之后,接收单元501可以接收被测频率信号。其中,在启动单片的测频功能之前,需要对所述单片机进行配置,对单片机的配置根据实际需要进行设置,本发明实施例不做限定。
在接收到所述被测频率信号的第一个触发信号之后,计数单元502启动定时器进行计数,获得计数值,计数的频率为所述参考信号频率。在接收到所述被测频率信号的触发信号之后,计数单元502会根据所述被测频率信号的触发信号记录触发次数,每出现一个触发信号,触发次数加1。所述计数值和所述触发次数通过DMA方式进行存储。其中,所述触发信号根据触发条件确定,如果所述触发条件为上升沿触发,那么所述触发信号为上升沿信号,如果所述触发条件为下降沿触发,那么所述触发信号为下升沿信号。通过DMA方式存储计数值和触发次数,避免频繁触发单片机中断,不会影响单片机执行其他任务。
在获得所述触发次数之后,停止单元503会判断所述触发次数是否大于等于触发阈值,如果所述触发次数大于等于所述触发阈值,那么所述单片机会停止对所述被测频率信号的测频,即所述单片机会停止接收所述被测频率信号和停止计数,结束本次测频。如果所述触发次数小于所述触发阈值,所述单片机会继续接收所述被测频率信号。
在停止对所述被测频率信号的测频之后,计算单元504可以根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率。其中所述参考信号频率是预设的。
本发明实施例提供的基于单片机的测频装置,能够接收被测频率信号,然后根据被测频率信号的第一个触发信号启动计数获得计数值和根据被测频率信号的触发信号记录触发次数,并将计数值和触发次数通过直接内存存取方式存储,在判断获知触发次数大于等于触发阈值之后,停止对被测频率信号的测频,根据触发次数、计数值以及参考信号频率,计算获得被测频率信号的频率,由于计数值和触发次数通过直接内存存取方式存储,不会频繁触发单片机中断,提高了单片机在测频时工作的稳定性。此外,由于不会频繁触发单片机中断,减少对单片机执行其他任务的影响,提高单片机的工作效率。
在上述各实施例的基础上,进一步地,计算单元504具体用于:
根据测频结束时的触发次数、计数值和所述参考信号频率,计算获得所述被测频率信号的频率。
具体地,在测频结束之后,计算单元504可以获取测频结束时的触发次数和测频结束时的计数值,然后根据测频结束时的触发次数、计数值和所述参考信号频率,计算获得所述被测频率信号的频率。其中,所述测频结束时的触发次数即所述触发阈值,测频结束时的计数值,即最后一次计数时的计数值。
图6是本发明另一实施例提供的基于单片机的测频装置的结构示意图,如图6所示,在上述各实施例的基础上,进一步地,计算单元504包括获得子单元5041、确定子单元5042和修正子单元5043,其中:
获得子单元5041用于根据每个触发次数以及对应的计数值,获得所有相邻两个触发次数之间的计数差值,并根据测频结束时的触发次数和计数值,计算获得计数平均值;确定子单元5042用于在判断获知相邻两个触发次数之间的计数值与所述计数平均值的差值的绝对值大于预设值之后,则确定所述相邻两个触发次数之间的计数值为异常数据;修正子单元5043用于根据异常数据对测频结束时的触发次数和计数值进行修正,根据修正后的触发次数和计数值以及所述参考信号频率,计算获得所述被测频率信号的频率。
具体地,由于在被测频率信号每次出现触发信号时,所述单片机都会记录相应的触发次数和计数值,所述单片机可以获得每个触发次数以及每个触发次数对应的计数值。获得子单元5041根据每个触发次数以及每个触发次数对应的计数值,可以计算获得所有相邻两个触发次数之间的计数差值,对于n个触发次数,可以获得n-1个相邻两个触发次数之间的计数差值。获得子单元5041可以获得测频结束时的触发次数和测频结束时的计数值,然后计算测频结束时的计数值除以测频结束时的触发次数的结果,作为计数平均值。其中,可以将与每个触发次数最接近的计数值作为每个触发次数对应的计数值。
在获得所有相邻两个触发次数之间的计数差值和所述计数平均值之后,确定子单元5042可以计算每个计数差值与所述计数平均值得差值的绝对值,如果上述绝对值大于预设值,那么确定大于所述预设值的绝对值对应的计数差值为异常数据。对于每个计数差值,都会进行是否是异常数据的判断。其中,所述预设值根据实际经验进行设置,本发明实施例不做限定。
在获得所述异常数据之后,修正子单元5043将所述异常数据从所述测频结束时的计数值中剔除,获得修正后的计数值。修正子单元5043可以统计计数差值为异常数据的数量,用测频结束时的触发次数减去上述数量,获得修正后的触发次数。然后根据修正后的触发次数、修正后的计数值以及所述参考信号频率,可以计算获得所述被测频率信号的频率。在计算被测频率信号的频率时将异常数据剔除,可以剔除信号断续、受到干扰、抖动等原因产生的错误数据,提高频率计算的准确性。
图7是本发明又一实施例提供的基于单片机的测频装置的结构示意图,如图7所示,在上述各实施例的基础上,进一步地,本发明实施例提供的基于单片机的测频装置还包括判断单元505,其中:
判断单元505用于在判断获知预设触发次数对应的计数值与所述预设触发次数的比值小于阈值之后,提高所述参考信号频率。
具体地,本发明实施例提供的基于单片机的测频方法,适用于所有的频率范围,在实际应用中,当参考信号频率越大时,测频的效果越好,同时参考信号频率也不能过大,如果参考信号频率过大计数器会溢出,无法完成测频。判断单元505可以计算预设触发次数对应的计数值与所述预设触发次数的比值,然后将上述比值与阈值进行比较,如果上述比值小于所述阈值,说明参考信号频率与被测频率信号的频率的比值较小,可以提高所述参考信号频率,以提高被测频率信号的频率测量精度。所述参考信号频率具体提高到的数值,需要根据实际的应用场景确定,可以根据实际的应用场景预先设置参考信号频率与被测频率信号的频率测量比值,然后根据预设触发次数对应的计数值与所述预设触发次数的比值、上述测量比例以及已经采用的参考信号频率,获得提高后的参考信号频率。其中,所述阈值根据实际经验进行设置,本发明实施例不做限定。所述预设触发次数根据实际需要进行设置,本发明实施例不做限定。
本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图8是本发明一实施例提供的电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)801、通信接口(Communications Interface)802、存储器(memory)803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。处理器801可以调用存储器803中的逻辑指令,以执行如下方法:接收被测频率信号;根据所述被测频率信号的第一个触发信号启动计数获得计数值和根据所述被测频率信号的触发信号记录触发次数,并将所述计数值和所述触发次数通过直接内存存取方式存储;若判断获知所述触发次数大于等于触发阈值,则停止对所述被测频率信号的测频;根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率;其中,所述参考信号频率为计数的频率。
此外,上述的存储器803中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收被测频率信号;根据所述被测频率信号的第一个触发信号启动计数获得计数值和根据所述被测频率信号的触发信号记录触发次数,并将所述计数值和所述触发次数通过直接内存存取方式存储;若判断获知所述触发次数大于等于触发阈值,则停止对所述被测频率信号的测频;根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率;其中,所述参考信号频率为计数的频率。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收被测频率信号;根据所述被测频率信号的第一个触发信号启动计数获得计数值和根据所述被测频率信号的触发信号记录触发次数,并将所述计数值和所述触发次数通过直接内存存取方式存储;若判断获知所述触发次数大于等于触发阈值,则停止对所述被测频率信号的测频;根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率;其中,所述参考信号频率为计数的频率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于单片机的测频方法,其特征在于,包括:
接收被测频率信号;
根据所述被测频率信号的第一个触发信号启动计数获得计数值和根据所述被测频率信号的触发信号记录触发次数,并将所述计数值和所述触发次数通过直接内存存取方式存储;
若判断获知所述触发次数大于等于触发阈值,则停止对所述被测频率信号的测频;
根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率;其中,所述参考信号频率为计数的频率。
2.根据权利要求1所述的方法,其特征在于,所述根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率包括:
根据测频结束时的触发次数、计数值和所述参考信号频率,计算获得所述被测频率信号的频率。
3.根据权利要求1所述的方法,其特征在于,所述根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率包括:
根据每个触发次数以及对应的计数值,获得所有相邻两个触发次数之间的计数差值,并根据测频结束时的触发次数和计数值,计算获得计数平均值;
若判断获知相邻两个触发次数之间的计数值与所述计数平均值的差值的绝对值大于预设值,则确定所述相邻两个触发次数之间的计数值为异常数据;
根据异常数据对测频结束时的触发次数和计数值进行修正,根据修正后的触发次数和计数值以及所述参考信号频率,计算获得所述被测频率信号的频率。
4.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
若判断获知预设触发次数对应的计数值与所述预设触发次数的比值小于阈值,则提高所述参考信号频率。
5.一种基于单片机的测频装置,其特征在于,包括:
接收单元,用于接收被测频率信号;
计数单元,用于根据所述被测频率信号的第一个触发信号启动计数获得计数值和根据所述被测频率信号的触发信号记录触发次数,并将所述计数值和所述触发次数通过直接内存存取方式存储;
停止单元,用于在判断获知所述触发次数大于等于触发阈值之后,停止对所述被测频率信号的测频;
计算单元,用于根据所述触发次数、所述计数值以及参考信号频率,计算获得所述被测频率信号的频率;其中,所述参考信号频率为计数的频率。
6.根据权利要求5所述的装置,其特征在于,所述计算单元具体用于:
根据测频结束时的触发次数、计数值和所述参考信号频率,计算获得所述被测频率信号的频率。
7.根据权利要求5所述的装置,其特征在于,所述计算单元包括:
获得子单元,用于根据每个触发次数以及对应的计数值,获得所有相邻两个触发次数之间的计数差值,并根据测频结束时的触发次数和计数值,计算获得计数平均值;
确定子单元,用于在判断获知相邻两个触发次数之间的计数值与所述计数平均值的差值的绝对值大于预设值之后,则确定所述相邻两个触发次数之间的计数值为异常数据;
修正子单元,用于根据异常数据对测频结束时的触发次数和计数值进行修正,根据修正后的触发次数和计数值以及所述参考信号频率,计算获得所述被测频率信号的频率。
8.根据权利要求5至7任一项所述的装置,其特征在于,还包括:
判断单元,用于在判断获知预设触发次数对应的计数值与所述预设触发次数的比值小于阈值之后,提高所述参考信号频率。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述方法的步骤。
CN201911352441.7A 2019-12-25 2019-12-25 一种基于单片机的测频方法及装置 Active CN113030567B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911352441.7A CN113030567B (zh) 2019-12-25 2019-12-25 一种基于单片机的测频方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911352441.7A CN113030567B (zh) 2019-12-25 2019-12-25 一种基于单片机的测频方法及装置

Publications (2)

Publication Number Publication Date
CN113030567A true CN113030567A (zh) 2021-06-25
CN113030567B CN113030567B (zh) 2023-07-14

Family

ID=76452326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911352441.7A Active CN113030567B (zh) 2019-12-25 2019-12-25 一种基于单片机的测频方法及装置

Country Status (1)

Country Link
CN (1) CN113030567B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000180481A (ja) * 1998-12-10 2000-06-30 Nec Corp 単一周波数信号の検出方法及びその装置
JP2001228186A (ja) * 2000-02-14 2001-08-24 Toko Inc フィルタの同調周波数測定装置
CN101881796A (zh) * 2010-06-30 2010-11-10 天津市德力电子仪器有限公司 一种频率计数模块和计数方法及应用
CN102128979A (zh) * 2010-12-30 2011-07-20 上海自动化仪表股份有限公司 等精度测频电路及其测频方法
CN103018554A (zh) * 2012-12-04 2013-04-03 北京华大信安科技有限公司 频率侦测方法及装置
CN103543334A (zh) * 2013-10-24 2014-01-29 北京理工大学 一种基于fft的相位差测量装置及方法
CN204422648U (zh) * 2015-02-15 2015-06-24 金陵科技学院 一种调制域频率计数器
CN105353212A (zh) * 2015-10-13 2016-02-24 珠海格力电器股份有限公司 一种检测信号频率的方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000180481A (ja) * 1998-12-10 2000-06-30 Nec Corp 単一周波数信号の検出方法及びその装置
JP2001228186A (ja) * 2000-02-14 2001-08-24 Toko Inc フィルタの同調周波数測定装置
CN101881796A (zh) * 2010-06-30 2010-11-10 天津市德力电子仪器有限公司 一种频率计数模块和计数方法及应用
CN102128979A (zh) * 2010-12-30 2011-07-20 上海自动化仪表股份有限公司 等精度测频电路及其测频方法
CN103018554A (zh) * 2012-12-04 2013-04-03 北京华大信安科技有限公司 频率侦测方法及装置
CN103543334A (zh) * 2013-10-24 2014-01-29 北京理工大学 一种基于fft的相位差测量装置及方法
CN204422648U (zh) * 2015-02-15 2015-06-24 金陵科技学院 一种调制域频率计数器
CN105353212A (zh) * 2015-10-13 2016-02-24 珠海格力电器股份有限公司 一种检测信号频率的方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
宋继明,黎江,沈丹: "频率快速测量法", 《电测与仪表》 *
李国利等: "基于FPGA与单片机的等精度频率计的设计", 《电子设计工程》 *
樊芊: "STM32中基于DMA的频率信号采集", 《信息通信》 *
辛颂等: "一种数字集成电路频率计的设计", 《硅谷》 *

Also Published As

Publication number Publication date
CN113030567B (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
EP3188461A1 (en) Method, apparatus and device for correcting detection distance
US10451647B2 (en) Method and device for measuring speed of permanent magnet synchronous motor
CN110908940A (zh) 串口通讯参数调整的方法及终端设备
CN105353212A (zh) 一种检测信号频率的方法及装置
KR20040068971A (ko) 광대역 주파수 범위에서 펄스 입력 신호의 주파수를 높은정확도로 결정하는 방법
CN113030567B (zh) 一种基于单片机的测频方法及装置
US10982971B2 (en) Method and apparatus for detecting background noise of sensor
CN112383498B (zh) 低频时钟的补偿方法及装置、存储介质、终端
US10365683B2 (en) Frequency execution monitoring in a real-time embedded system
US11314276B2 (en) Method of time delivery in a computing system and system thereof
WO2023036090A1 (zh) 脉宽调制信号采集方法、装置、计算机设备及存储介质
CN111351972B (zh) 终端空闲态睡眠电流探测方法和装置
US5982712A (en) Method and apparatus for measuring time intervals between electrical signals
CN114499698B (zh) 一种同步信号处理方法、装置、设备及存储介质
CN112269030B (zh) 一种轮速信号处理方法、装置、设备及存储介质
CN111611186B (zh) 一种嵌入式芯片中传输控制方法和装置
CN109900922B (zh) 转速确定方法、装置、电子设备及可读存储介质
CN109309637B (zh) 传输信号的数据存储方法、装置及存储介质
JP2998727B2 (ja) 回転検出用のパルス幅計測装置及びパルス幅計測方法
CN111193652B (zh) Can控制器位参数设置方法、装置、设备和存储介质
CN117706464A (zh) 电能误差检定方法、芯片及误差板
CN117706465A (zh) 电能误差测量方法、芯片及标准电能表
CN108345494B (zh) 一种定时执行代码的方法及装置
CN115543017A (zh) 时间校准方法、装置、电子设备及存储介质
US20210041905A1 (en) Digital circuit to detect presence and quality of an external timing device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant