一种基于嵌入式微控制器的信号频率和占空比的检测方法与流程

文档序号:17797700发布日期:2019-05-31 20:53阅读:305来源:国知局
一种基于嵌入式微控制器的信号频率和占空比的检测方法与流程

本发明涉及微电脉冲信号的频率检测技术,更具体地,涉及基于嵌入式微控制器的信号频率的检测方法。



背景技术:

在自动化、智能化深入发展的今天,很多信号涉及数字波形的测量,包括频率与占空比。使用嵌入式微控制器测量方波的频率与占空比是使用最广泛的一种方式。由于信号的频率从高到低,范围极广,目前,通用的方式为高频率信号使用计数的方式进行测量,而低频信号使用计时的方式进行测量,根据实际情况预先设定测量方法。

测量低频信号时,使用定时器时钟对信号的上升信号进行计数,计算波形一个周期内的定时器计数信号的数量,已知定时器的频率,即可计算出信号的周期T,从而得到频率值。

低频信号使用计时法测量频率时,一般用定时中断的方式,若此时有高频信号接入,中断占用了大量的中央处理单元运行时间,系统可能在较长时间的中断中无法跳出,给系统的稳定性带来了较多的风险。

测量高频信号时,采用计数的方式连续计数若干个波形,然后计算出该若干个波形总共花费的时间,再计算得到一个完整波形的周期,从而得出频率。但计数程序一般比较复杂,且计数的数量很难确定。因高频信号的范围比较广,实际的测量的最高阀值与最低阀值之间的测量时间差异很大。例如,假设信号为1KHz~8KHz,计数假设为100个,则测量8KHz信号时需要的响应时间为1.25ms,而1KHz信号需要的响应时间为10ms。因此,在开发过程中需要经验判断计数的数量。

且使用计数法的方式测量高频率信号,若高频档有低频信号接入例如20Hz,需要5S才能计数满100个脉冲,响应的时间非常长。

根据信号不同的频率范围选择不同的测量方法,此种方式简单易用,可靠方便,但在未知目标频率范围的情况下,有一定的局限性。通常情况下,预设的高频与低频的阀值必须重叠,当待测信号在阀值信号附近时,容易产生计数法与计时法切换的错误,而且不好界定临界频率。在端口误接或者有超过测量范围的信号时,中央处理单元可能会失去响应或者崩溃,影响系统的稳定性。此外,这两种方法均不能测量信号占空比。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的基于嵌入式微控制器的信号频率检测方法。

根据本发明的一个方面,提供一种适应较宽频率范围的基于嵌入式微控制器的信号频率的检测方法,其由中央处理单元接收并处理被测脉冲信号,并根据嵌入式系统的需求确定信号的测量周期,在一个频率测量周期内,其具体的测量步骤如下:

S1、设置中央处理单元定时器的定时中断使能和捕获中断使能;

S2、当被测脉冲信号的一个完整波形的第一个上升沿到来时,定时器捕获中断使能,触发外部中断,中央处理单元获取并记录被测脉冲信号的第一特征值;

S3、当被测脉冲信号的一个完整波形的第二个上升沿到来时,定时器捕获中断使能,触发外部中断,中央处理单元的系统定时器记录被测脉冲信号的第二特征值;

S4、确认完成一个脉冲测量过程;

关闭捕获中断使能,将所述第二特征值与第一特征值进行比较运算,计算得出被测脉冲信号的频率值。

在一个频率测量周期内,通过直接测量一个完整波形的周期,并控制只进行一个频率测量过程,扩展频率测量范围的同时,简化了较宽范围内发生频率变化的脉冲信号的频率测量方式。

根据本发明的另一个方面,本申请提出一种同时检测基于嵌入式微控制器的信号频率和占空比的检测方法,其由中央处理单元接收并处理被测脉冲信号,并根据嵌入式系统的需求确定信号的测量周期,在一个频率测量周期内,其具体的测量步骤如下:

SS1、设置中央处理单元定时器的定时中断使能和捕获中断使能;

SS2、当被测脉冲信号的一个完整波形的第一个上升沿到来时,定时器捕获中断使能,触发外部中断,由中央处理单元获取并记录被测脉冲信号的第三特征值;

SS3、当被测脉冲信号的一个完整波形的第一个下降沿到来时,定时器捕获中断使能,触发外部中断,由中央处理单元的系统定时器记录被测脉冲信号的第四特征值;

SS4、当被测脉冲信号的一个完整波形的第二个上升沿到来时,定时器捕获中断使能,触发外部中断,由中央处理单元的系统定时器记录被测脉冲信号的第五特征值;

SS5、确认完成一个脉冲测量过程;

关闭捕获中断使能,将所述第四特征值与第三特征值进行比较运算,计算得出被测脉冲信号的占空比值;

将所述第五特征值与第三特征值进行比较运算,计算得出被测脉冲信号的频率值。

在一个频率测量周期内,通过直接测量一个完整波形的周期,并控制只进行一个频率测量过程,扩展频率测量范围的同时,还可以同时测量被测脉冲信号的占空比。

本申请提供的基于嵌入式微控制器信号频率和占空比的检测方法,其有益效果如下:

(1)通过预设频率测量周期,并采用系统节拍定时的时间戳,直接测量被测脉冲信号一个完整波形的周期而计算得到信号的频率,大大扩展了测量信号的频率范围,并且,所涉及控制程序简单;

(2)测量高频信号时,避免了使用复杂的计数法控制程序,以及凭经验反复调整高频信号计数值的麻烦;

(3)测量低频信号和高频信号,采用相同的测量方式,无需在不同测量方式或不同端口间进行切换;

(4)避免低速端口误接高速端口导致系统死机的风险,也避免了高速端口误接低速端口时响应速度变得极长的问题;

(5)通过预设频率测量周期,在一个频率测量周期内只进行一次频率的测量过程;

(6)通过记录或设置上升沿或下降沿到达时的状态,判断被测脉冲信号一个完整波形周期测量的完成状态或一个频率测量周期的完成状态;

(7)在测量信号频率的同时,可以测量信号的占空比。

附图说明

图1为根据本发明实施例中的结构示意图;

图2为根据本发明实施例中的结构示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

参见图1所示,一种基于嵌入式微控制器的信号频率检测方法,由中央处理单元接收并处理被测脉冲信号,并预设根据嵌入式系统的需求确定信号的测量周期,在一个频率测量周期内,具体的测量过程包括以下步骤:

S1、设置中央处理单元定时器的定时中断使能和捕获中断使能;

S2、当被测脉冲信号的一个完整波形的第一个上升沿到来时,定时器捕获中断使能,触发外部中断,中央处理单元获取并记录被测脉冲信号的第一特征值;

S3、当被测脉冲信号的一个完整波形的第二个上升沿到来时,定时器捕获中断使能,触发外部中断,中央处理单元的系统定时器记录被测脉冲信号的第二特征值;

S4、确认完成一个脉冲测量过程;

关闭捕获中断使能,将所述第二特征值与第一特征值进行比较运算,计算得出被测脉冲信号的频率值。

当开始对被测脉冲信号的频率进行测量时,设置中央处理单元的捕获中断使能,并在完成一个完整波形的频率测量后,关闭捕获中断使能,使在一个频率测量周期内只进行一个频率测量过程。有效的避免了采用计时或计数方式进行频率测量时,由于高频和低频信号的变化转换而导致系统死机或响应时间超长的现象。既达到测量被测脉冲信号频率的目的,同时,又有效地降低了中央处理单元的运算负担,提高了中央处理单元的运算效率。

此外,在测量频率时,是通过对被测脉冲信号的一个完整波形的直接测量而实现的,因此,在测量过程中,被测脉冲信号的频率发生大幅度变化时,并不需要相应的变换测量方法,从而大大扩展了被测脉冲信号的频率范围。对频率变化范围在1Hz~1MHz的脉冲信号,无需变化任何测量方式,即可直接进行测量。

上述步骤S2中的“第一特征值”为定时器值1、系统节拍定时的时间戳1和波形的上升标识1。

上述步骤S3中的“第二特征值”为定时器值2和系统节拍定时的时间戳2。

当被测脉冲信号的上升沿到达时,定时器捕获中断使能,触发外部中断,此时,同时记录定时器值、系统节拍定时的时间戳以及上升标识,并捕获到匹配的比较寄存器中。

对三种特征值的捕捉和记录,能够更精确的确定被测脉冲信号上升沿到达的时刻,同时,也便于对一个脉冲测量的完成状态和一个频率测量周期的完成状态的判定。

上述步骤S4中对一个频率测量周期完成状态的确认的具体步骤为:

S41、当被测脉冲信号的一个完整波形的第一个上升沿到来时,记录为上升标识1;

S42、当被测脉冲信号的一个完整波形的第二个上升沿到来时,中央处理单元判断上升标识是否为1,若为1,判定一个脉冲测量过程已经完成,并设置此时的上升标识为2,进行比较运算;

S43、每当定时器的值上升到系统节拍周期时,定时器的定时中断使能,触发系统中断,定时器的值被清零,并判断中央处理单元记录的上升标识,若为1,进入步骤S42;若为2,判定一个脉冲测量过程已经结束,将上升标识设为0,等待进入下一个频率测量周期,继续步骤S1。

通过对上升标识的状态进行判断,既可以准确的捕捉被测脉冲信号的一个完整波形,以准确测量该脉冲信号的频率,也可以用于判定一个脉冲测量过程的完成状态,使在一个频率测量周期内只进行一个频率测量过程。

同时,当定时器的值上升到系统节拍周期时,定时器的值将被清零,可以及时清除冗余数据的记录,节省中央处理单元的存储空间。

上述步骤中频率值的比较计算方式为:

计算定时器值2与定时器值1的差值a;

计算系统节拍定时的时间戳2与系统节拍定时的时间戳1的差值b;

根据差值a与差值b的和,即可得出被测脉冲信号的周期,进而计算得到被测脉冲信号的频率值。

在另一个实施例中,参见图2所示,提供一种基于嵌入式微控制器的信号频率和占空比的检测方法,其由中央处理单元接收并处理被测脉冲信号,并根据嵌入式系统的需求确定信号的测量周期,在一个频率测量周期内,其具体的测量步骤如下:

SS1、设置中央处理单元定时器的定时中断使能和捕获中断使能;

SS2、当被测脉冲信号的一个完整波形的第一个上升沿到来时,定时器捕获中断使能,触发外部中断,由中央处理单元获取并记录被测脉冲信号的第三特征值;

SS3、当被测脉冲信号的一个完整波形的第一个下降沿到来时,定时器捕获中断使能,触发外部中断,由中央处理单元的系统定时器记录被测脉冲信号的第四特征值;

SS4、当被测脉冲信号的一个完整波形的第二个上升沿到来时,定时器捕获中断使能,触发外部中断,由中央处理单元的系统定时器记录被测脉冲信号的第五特征值;

SS5、确认完成一个脉冲测量过程;

关闭捕获中断使能,将所述第五特征值与第三特征值进行比较运算,计算得出被测脉冲信号的频率值;

将所述第四特征值与第三特征值进行比较运算,计算得出被测脉冲信号的占空比值。

通过对上升沿和下降沿到达的时刻和状态的捕捉,可以同时获取被测脉冲信号的脉冲宽度和周期。

当开始对被测脉冲信号的频率进行测量时,设置中央处理单元的捕获中断使能,并在完成一个完整波形的频率测量后,关闭捕获中断使能,使在一个频率测量周期内只进行一个频率测量过程。有效的避免了采用计时或计数方式进行频率测量时,由于高频和低频信号的变化转换而导致系统死机或响应时间超长的现象。既达到测量被测脉冲信号频率的目的,同时,又有效地降低了中央处理单元的运算负担,提高了中央处理单元的运算效率。

此外,在测量频率时,是通过对被测脉冲信号的一个完整波形的直接测量而实现的,因此,在测量过程中,被测脉冲信号的频率发生大幅度变化时,并不需要相应的变换测量方法,从而大大扩展了被测脉冲信号的频率范围。在嵌入式处理器的定时器运行频率为100MHz的情况下,对频率变化范围在1Hz~1MHz的脉冲信号,无需变化任何测量方式,即可直接进行测量。在最极限的情况下频率测量的精度在2%以内。若嵌入式处理器的定时器运行频率更快,可以测量更宽的范围。

上述步骤SS2中的“第三特征值”为定时器值3、系统节拍定时的时间戳3和波形的上升标识1。

上述步骤SS3中的“第四特征值”为定时器值4、系统节拍定时的时间戳4和波形的下降标识1。

上述步骤SS4中的“第五特征值”为定时器值5和系统节拍定时的时间戳5。

当被测脉冲信号的上升沿或下降沿到达时,定时器捕获中断使能,触发外部中断,此时,同时记录定时器值、系统节拍定时的时间戳以及上升或下降标识,能够更精确的确定被测脉冲信号上升沿或下降沿到达的时刻,同时,也便于对一个脉冲测量的完成状态和频率测量周期的完成状态的判定。

上述步骤SS5中对一个频率测量周期完成状态的确认的具体步骤为:

SS51、当被测脉冲信号的一个完整波形的第一个上升沿到来时,记录为上升标识1;

SS52、当被测脉冲信号的一个完整波形的第一个下降沿到来时,记录为下降标识1;

SS53、当被测脉冲信号的一个完整波形的第二个上升沿到来时,中央处理单元判断上升标识或下降标识是否为1,若为1,判定一个脉冲测量过程已经完成,并设置此时的上升标识为2,进行比较运算;

SS54、每当定时器的值上升到系统节拍周期时,进入系统中断,将定时器的值清零,并判断中央处理单元记录的上升标识,若为1,进入步骤SS53;若为2,判定一个脉冲测量过程已经结束,将上升标识设为0,等待进入下一个频率和占空比的测量周期,返回步骤SS1。

通过对上升或下降标识的状态进行判断,既可以准确的捕捉被测脉冲信号的脉冲宽度和一个完整波形,以准确测量此时该脉冲信号的频率,也可以用于判定一个脉冲测量过程的完成状态。

同时,当定时器的值上升到系统节拍周期时,定时器的值将被清零,可以及时清除冗余数据的记录,节省中央处理单元的存储空间。

上述步骤中频率值的比较运算方式为:

计算定时器值5与定时器值3的差值c;

计算系统节拍定时的时间戳5与系统节拍定时的时间戳3的差值d;

根据差值c与差值d的和,即可得出被测脉冲信号的周期A,进而计算得到被测脉冲信号的频率值B。

上述步骤中占空比值的比较运算方式为:

计算定时器值4与定时器值3的差值e;

计算系统节拍定时的时间戳4与系统节拍定时的时间戳3的差值f;

由差值e和差值f的和,得到被测脉冲信号的脉冲宽度C;

由脉冲宽度C和周期A,计算得到被测脉冲信号的占空比值。

本申请提供的基于嵌入式微控制器的信号频率的检测方法,根据嵌入式系统的需求确定信号的测量周期,同时应用定时器的捕获中断使能和定时中断使能,捕捉被测脉冲信号的相邻上升沿到达时的特征值,并将相邻上升沿的特征值进行比较运算,得到被测脉冲信号的频率值。

并且,应用捕捉到的特征值,判断频率测量的完成状态和频率测量周期的完成状态,从而控制在一个频率测量周期内,完成一个频率测量过程,就不再进行频率测量,直至进入下一个频率测量周期。

本申请提供的基于嵌入式微控制器的信号频率和占空比的检测方法,根据嵌入式系统的需求确定信号的测量周期,同时应用定时器的捕获中断使能和定时中断使能,捕捉被测脉冲信号的相邻上升沿到达时的特征值以及同一个周期内下降沿到达时的特征值,并将相邻上升沿的特征值进行比较运算,得到被测脉冲信号的频率值,将下降沿与上升沿到达时的特征值进行比较,从而计算得到被测脉冲信号的占空比。

并且,应用捕捉到的特征值,判断频率测量的完成状态和频率测量周期的完成状态,从而控制在一个频率测量周期内,完成一个频率测量过程,就不再进行频率测量,直至进入下一个频率测量周期。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1