捕获模拟信号周期的方法及系统的制作方法

文档序号:6535721阅读:362来源:国知局
捕获模拟信号周期的方法及系统的制作方法
【专利摘要】本发明公开一种捕获模拟信号周期的方法,包括以下步骤:扫描接收到的模拟信号并实时采样信号值,在信号值超过上限阀值或低于下限阀值时,触发AWD中断,并记录触发AWD中断时系统时钟的计数值,并且若是信号值超过上限阀值而触发AWD中断时,将上限阀值设置为预设最大上限值,将下限阀值设置为预设正常下限值,若是信号值低于下限阀值而触发AWD中时,将上限阀值设置为预设正常上限值,将下限阀值设置为预设最小下限值,然后返回继续扫描接收到的模拟信号循环之前的步骤。本发明还公开一种捕获模拟信号周期的系统。本发明利用单片机的AWD功能实现模拟信号周期的捕获,提高了模拟信号周期捕获的准确性和灵活性。
【专利说明】捕获模拟信号周期的方法及系统
【技术领域】
[0001]本发明涉及信号处理【技术领域】,尤其涉及一种捕获模拟信号周期的方法及系统。【背景技术】
[0002]意法半导体(STMicroelectronics,简称为ST)公司推出的单片机大都具有AWD(Analog Watch Dog,模拟看门狗)功能,即单片机的GP10(General Purpose Input Output,通用输入/输出)口具有AWD功能,AWD功能就是通过ADC(Analog-to_Digital Converter,模拟/数字转换器)不停地检测单片机的GPIO 口的电压值,一旦检测到GPIO 口的电压值高于设定的上限阀值或低于设定的下限阀值就会产生相应的信号量,以实现单片机复位功倉泛。
[0003]目前业界对各种模拟信号进行信号解析时,都利用比较器检测单片机的GPIO口的电压值,一旦检测到GPIO 口的电压值高于设定的上限阀值或低于设定的下限阀值就会翻转GPIO 口为高电平或低电平,通过脉冲宽度调制方式对外部输入的模拟信号进行周期数据的捕获。然而,这种方案中比较器只能比较一个固定值,这会出现漏检现象,导致检测出错,同时利用比较器检测需要外围滞回电路来调节上限阀值和下限阀值,阀值调节不够灵活,而且成本较高,实现方式也复杂。
[0004]上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

【发明内容】

[0005]本发明的主要目的是提供一种捕获模拟信号周期的方法及系统,旨在提高模拟信号周期测量的灵活性和准确性。
[0006]为了达到上述目的,本发明提供一种捕获模拟信号周期的方法,该捕获模拟信号周期的方法包括以下步骤:
[0007]步骤SlO:扫描接收到的模拟信号并实时采样信号值;
[0008]步骤S20:判断所述信号值是否超过AWD中断的上限阀值或者低于AWD中断的下限阀值;
[0009]步骤S30:若所述信号值超过上限阀值或者低于下限阀值,则触发AWD中断,进入步骤S40 ;若所述信号值未超过上限阀值或者低于下限阀值,则返回执行步骤SlO ;
[0010]步骤S40:记录触发AWD中断时系统时钟的计数值,计算模拟信号的半周期值;
[0011]步骤S50:判断当前触发AWD中断的条件是否是所述信号值超过上限阀值;
[0012]步骤S60:若是所述信号值超过上限阀值而触发AWD中断,则将上限阀值设置为预设最大上限值,并将下限阀值设置为预设正常下限值,返回执行步骤SlO ;若不是所述信号值超过上限阀值而触发AWD中断,则将上限阀值设置为预设正常上限值,并将下限阀值设置为预设最小下限值,返回执行步骤S10。
[0013]优选地,在所述步骤SlO之前,还包括步骤S70:配置AWD功能,设置AWD中断初始的上限阀值和下限阀值。
[0014]优选地,所述设置AWD中断初始的上限阀值和下限阀值具体为:将上限阀值设置为预设正常上限值,将下限阀值设置为预设正常下限值。
[0015]优选地,所述步骤SlO具体为:通过GPIO 口接收模拟信号,使能模拟/数字转换器,扫描GPIO 口接收到的模拟信号并实时采样信号值。
[0016]优选地,所述步骤S40具体为:
[0017]存储上一次触发AWD中断时系统时钟的计数值t0,记录当前触发AWD中断时系统时钟的计数值tl,将tl与to做差,计算出模拟信号的半周期值。
[0018]本发明进一步提供一种捕获模拟信号周期的系统,该捕获模拟信号周期的系统包括:
[0019]信号采样模块,用于扫描接收到的模拟信号并实时采样信号值;
[0020]信号检测模块,用于判断所述信号值是否超过AWD中断的上限阀值或者低于AWD中断的下限阀值,且在所述信号值超过上限阀值或者低于下限阀值时,输出触发信号触发AffD中断;以及
[0021]数据处理模块,用于记录触发AWD中断时系统时钟的计数值,计算模拟信号的半周期值;以及
[0022]参数设置模块,用于根据触发AWD中断的条件,动态调整上限阀值和下限阀值。
[0023]优选地,所述参数设置模块还用于配置AWD功能,设置AWD中断初始的上限阀值和下限阀值。
[0024]优选地,所述参数设置模块设置AWD中断初始的上限阀值和下限阀值具体为:将上限阀值设置为预设正常上限值,将下限阀值设置为预设正常下限值。
[0025]优选地,所述信号采样模块包括GPIO 口和模拟/数字转换器,所述信号采样模块具体用于:通过GPIO 口接收模拟信号,使能模拟/数字转换器,扫描GPIO 口接收到的模拟信号并实时米样信号值。
[0026]优选地,所述数据处理模块具体用于:存储上一次触发AWD中断时系统时钟的计数值t0,记录当前触发AWD中断时系统时钟的计数值tl,将tl与tO做差,计算出模拟信号的半周期值。
[0027]本发明提供的捕获模拟信号周期的方法,通过扫描接收到的模拟信号并实时采样信号值,当信号值超过上限阀值或者低于下限阀值时,触发AWD中断,并记录触发AWD中断时系统时钟的计数值,然后判断当前触发AWD中断的条件是否是信号值超过上限阀值,若是信号值超过上限阀值而触发AWD中断,则将上限阀值设置为预设最大上限值,并将下限阀值设置为预设正常下限值,若是信号值低于下限阀值而触发AWD中断,则将上限阀值设置为预设正常上限值,并将下限阀值设置为预设最小下限值,然后继续扫描接收到的模拟信号实时采样信号值,记录触发AWD中断时系统时钟的计数值。本发明捕获模拟信号周期的方法,利用单片机的AWD功能,检测一段时间内的模拟信号,通过记录触发AWD中断时系统时钟的计数值来捕获模拟信号的周期,上限阀值和下限阀值由可根据模拟信号幅值任意调整,从而相对于比较器检测方式容错性更好,能够提高模拟信号周期捕获的准确性和灵活性,而且不需增加外围电路来调节AWD中断上/下限阀值,节约成本,易于实现。【专利附图】

【附图说明】
[0028]图1为本发明捕获模拟信号周期的方法一实施例的流程示意图;
[0029]图2为本发明捕获模拟信号周期的方法设置AWD中断上/下限阀值的实例图;
[0030]图3为本发明捕获模拟信号周期的方法另一实施例的流程示意图;
[0031]图4为本发明捕获模拟信号周期的系统较佳实施例的功能模块示意图;
[0032]图5为本发明捕获模拟信号周期的系统中信号采样模块的功能模块示意图。
[0033]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0034]以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0035]本发明提供一种捕获模拟信号周期的方法。
[0036]参照图1和图2,图1为本发明捕获模拟信号周期的方法一实施例的流程示意图;图2为本发明捕获模拟信号周期的方法设置AWD中断上/下限阀值的实例图。图2中,纵轴表不电压轴(V),横轴表不时间轴(t)。
[0037]如图1所示,本发明实施例中,捕获模拟信号周期的方法包括以下步骤:
[0038]步骤SlO:扫描接收到的模拟信号并实时采样信号值;
[0039]系统在接收到外部输入的模拟信号后,连续扫描所接收到的模拟信号,并存在该模拟信号每一时刻对应的信号值(即电压值),从而能够实时采样到一信号值,通过检测采样到的信号值来检测所接收到的模拟信号。
[0040]步骤S20:判断所述信号值是否超过AWD中断的上限阀值或者低于AWD中断的下限阀值;
[0041]在采样到某一时刻模拟信号对应的信号值后,系统检测该信号值的大小,判断采样到的信号值是否超过当前设置的AWD中断的上限阀值或者低于当前设置的AWD中断的下限阀值。
[0042]步骤S30:若所述信号值超过上限阀值或者低于下限阀值,则触发AWD中断,进入步骤S40 ;若所述信号值未超过上限阀值或者低于下限阀值,则返回执行步骤SlO ;
[0043]在本实施例中,设定AWD中断被触发的条件是采样到的信号值超过当前设置的AffD中断的上限阀值或者低于当前设置的AWD中断的下限阀值,因此,在扫描模拟信号过程中,当采样到模拟信号对应的信号值超过当前设置的AWD中断的上限阀值时,就会触发一次AWD中断,或者当采样到模拟信号对应的信号值低于当前设置的AWD中断的下限阀值时,就会触发一次AWD中断。如果在扫描模拟信号过程中没有采样到高于上限阀值或者低于下限阀值的信号值,那么系统将继续扫描模拟信号,直到采样到的信号值高于上限阀值或者低于下限阀值,才会触发一次AWD中断。
[0044]步骤S40:记录触发AWD中断时系统时钟的计数值,计算模拟信号的半周期值;
[0045]为了捕获模拟信号的周期,在触发AWD中断时,系统记录当前触发AWD中断时系统时钟的计数值,即记录当前触发AWD中断时对应的时间,并且在下一次触发时,将此时记录的系统时钟的计数值作为前一次触发AWD中断记录的计数值,而将下一次触发时记录的计数值作为当前记录的计数值,依次类推,在记录当前触发AWD中断系统时钟的计数值后,将该当前触发AWD中断系统时钟的计数值作为前一次触发AWD中断记录的计数值,根据记录当前触发AWD中断系统时钟的计数值和前一次触发AWD中断记录的计数值,即可计算出模拟信号的半周期值,从而连续两次计算出的半周期值即为模拟信号的周期值。
[0046]步骤S50:判断当前触发AWD中断的条件是否是所述信号值超过上限阀值;
[0047]步骤S60:若是所述信号值超过上限阀值而触发AWD中断,则将上限阀值设置为预设最大上限值MAX_UMIT,并将下限阀值设置为预设正常下限值L0W_UMIT,返回执行步骤SlO ;若不是所述信号值超过上限阀值而触发AWD中断,则将上限阀值设置为预设正常上限值HIGH_LIMIT,并将下限阀值设置为预设最小下限值MIN_LIMIT,返回执行步骤S10。
[0048]在本实施例中,在采样到的信号值超过当前设置上限阀值的情况下,或者采样到的信号值低于当前设置下限阀值的情况下,系统都会触发AWD中断,因此,为了确保在信号值超过当前设置上限阀值或者低于当前设置下限阀值条件下触发一次AWD中断后,在后续的信号值超过当前设置上限阀值或者低于当前设置下限阀值都不会再触发AWD中断,系统根据AWD中断被触发的条件,动态调整AWD中断的上限阀值和下限阀值。
[0049]如图2所示,在采样到的信号值超过了 AWD中断的上限阀值,系统触发AWD中断后,将上限阀值设置为预设最大上限值MAX_UMIT,并将下限阀值设置为预设正常下限值L0ff_LIMIT,使得即使后面连续采样到的信号值高于预设正常上限值HIGH_UMIT,系统也不会再触发AWD中断,直至采样到的信号值低于预设正常下限值L0W_UMIT时,才会触发AWD中断。
[0050]同理,在采样到的信号值低于AWD中断的下限阀值,系统触发AWD中断后,将上限阀值设置为预设正常上限值HIGH_UMIT,并将下限阀值设置为预设最小下限值MIN_LIMIT,使得即使后面连续采样到的信号值低于预设正常下限值L0W_LIMIT,系统也不会再触发AWD中断,直至采样到的信号值高于预设正常上限值HIGH_UMIT时,才会触发AWD中断。
[0051]在本实施例中,如图2所示,上述预设最大上限值MAX_LIMIT高于所接收到的模拟信号的最大值MAX,具体可根据实际需求而设定,例如,若所接收到的模拟信号的最大值MAX为2.5V,则可以将该预设最大上限值MAX_UMIT设定为大于2.5V的值(如3V)。
[0052]上述预设最小下限值MIN_LIMIT低于所接收到的模拟信号的最小值MIN (即负最大值),具体可根据实际需求而设定,例如,若所接收到的模拟信号的最小值MIN为-2.5V,则可以将该预设最小下限值MIN_LMIT设定为小于-2.5V的值(如-3V)。
[0053]上述预设正常上限值HIGH_UMIT为所接收到的模拟信号的正半周期中对应的一个信号值,是系统触发AWD中断所设定的上限阀值,当采样到的信号值高于该预设正常上限值HIGH_LIMIT,系统触发AWD中断。为了减小相邻的信号对待测信号周期的影响,优选设置预设正常上限值HIGH_UMIT为大于O且小于模拟信号的最大值MAX的十分之一的值,例如,所接收到的模拟信号的最大值MAX为2.5V,可根据实际需求将该预设正常上限值HIGH_LIMIT设定为O?0.25V (不包含0V)之间的任意一信号值(如0.15V)。
[0054]上述预设正常下限值L0W_LIMIT为所接收到的模拟信号的负半周期中对应的一个信号值,是系统触发AWD中断所设定的下限阀值,当采样到的信号值低于该预设正常下限值L0W_LIMIT,系统触发AWD中断。为了减小相邻的信号对待测信号周期的影响,优选设置预设正常下限值L0W_UMIT为大于模拟信号的最小值MIN的十分之一且小于O的值,例如,所接收到的模拟信号的最小值MIN为-2.5V,可根据实际需求将该预设正常下限值LOW_LIMIT设定为-0.25~OV (不包含0V)之间的任意一信号值(如-0.15V)。
[0055]应当说明的是,上述预设正常上限值HIGH_UMIT和预设正常下限值L0W_UMIT相对于OV对称,如预设正常上限值HIGH_UMIT设定为0.15V时,预设正常下限值L0W_UMIT应当设定为-0.15V ;预设正常上限值HIGH_UMIT设定为0.2V时,预设正常下限值L0W_LIMIT应当设定为-0.2V。
[0056]相对于现有技术,本发明提供的捕获模拟信号周期的方法,利用单片机的AWD功能,检测一段时间内的模拟信号,通过记录触发AWD中断时系统时钟的计数值来捕获模拟信号的周期,上限阀值和下限阀值由可根据模拟信号幅值任意调整,从而相对于比较器检测方式容错性更好,能够提高模拟信号周期捕获的准确性和灵活性,而且不需增加外围电路来调节AWD中断上/下限阀值,节约成本,易于实现。
[0057]具体地,上述步骤SlO具体为:通过GPIO 口接收模拟信号,使能模拟/数字转换器,扫描GPIO 口接收到的模拟信号并实时采样信号值。
[0058]在GPIO 口接收到外部输入的模拟信号后,系统使能模拟/数字转换器,扫描GPIO口接收到的模拟信号,将接收到的连续的模拟信号转换为离散的数字信号,以实时采样所接收到的模拟信号在每一时刻对应的信号值。
[0059]进一步地,上述步骤S40具体为:存储上一次触发AWD中断时系统时钟的计数值t0,记录当前触发AWD中断时系统时钟的计数值tl,将tl与t0做差,计算出模拟信号的半
周期值。
[0060]在本实施例中,在每次触发AWD中断时,系统都记录一次触发AWD中断时系统时钟的计数值,因此系统会存储上一次触发AWD中断时系统时钟的计数值t0,并记录当前触发AWD中断时系统时钟的计数值tl,而且在下一次触发时,将当前记录的系统时钟的计数值tl作为上一次触发AWD中断记录的计数值t0,而将下一次触发时记录的计数值作为当前记录的计数值tl。由于在采样到的信号值超过AWD中断的上限阀值或者低于AWD中断的下限阀值时,才会触发从而AWD中断,因此将当前触发AWD中断时系统时钟的计数值tl与上一
次触发AWD中断时系统时钟的计数值t0做差后,可得到模拟信号的半周期值
【权利要求】
1.一种捕获模拟信号周期的方法,其特征在于,包括以下步骤: 步骤SlO:扫描接收到的模拟信号并实时采样信号值; 步骤S20:判断所述信号值是否超过AWD中断的上限阀值或者低于的下限阀值; 步骤S30:若所述信号值超过上限阀值或者低于下限阀值,则触发AWD中断,进入步骤S40 ;若所述信号值未超过上限阀值或者低于下限阀值,则返回执行步骤SlO ; 步骤S40:记录触发AWD中断时系统时钟的计数值,计算模拟信号的半周期值; 步骤S50:判断当前触发AWD中断的条件是否是所述信号值超过上限阀值; 步骤S60:若是所述信号值超过上限阀值而触发AWD中断,则将上限阀值设置为预设最大上限值,并将下限阀值设置为预设正常下限值,返回执行步骤SlO ;若不是所述信号值超过上限阀值而触发AWD中断,则将上限阀值设置为预设正常上限值,并将下限阀值设置为预设最小下限值,返回执行步骤S10。
2.如权利要求1所述的捕获模拟信号周期的方法,其特征在于,在所述步骤SlO之前,还包括步骤S70:配置AWD功能,设置AWD中断初始的上限阀值和下限阀值。
3.如权利要求2所述的捕获模拟信号周期的方法,其特征在于,所述设置AWD中断初始的上限阀值和下限阀值具体为:将上限阀值设置为预设正常上限值,将下限阀值设置为预设正常下限值。
4.如权利要求1所述的捕获模拟信号周期的方法,其特征在于,所述步骤SlO具体为:通过GPIO 口接收模拟信号,使能模拟/数字转换器,扫描GPIO 口接收到的模拟信号并实时米样信号值。
5.如权利要求1所述的捕获模拟信号周期的方法,其特征在于,所述步骤S40具体为: 存储上一次触发AWD中断时系统时钟的计数值t0,记录当前触发AWD中断时系统时钟的计数值tl,将tl与to做差,计算出模拟信号的半周期值。
6.一种捕获模拟信号周期的系统,其特征在于,包括: 信号采样模块,用于扫描接收到的模拟信号并实时采样信号值; 信号检测模块,用于判断所述信号值是否超过AWD中断的上限阀值或者低于AWD中断的下限阀值,且在所述信号值超过上限阀值或者低于下限阀值时,输出触发信号触发AWD中断; 数据处理模块,用于记录触发AWD中断时系统时钟的计数值,计算模拟信号的半周期值;以及 参数设置模块,用于根据触发AWD中断的条件,动态调整上限阀值和下限阀值。
7.如权利要求6所述的捕获模拟信号周期的系统,其特征在于,所述参数设置模块还用于配置AWD功能,设置AWD中断初始的上限阀值和下限阀值。
8.如权利要求7所述的捕获模拟信号周期的系统,其特征在于,所述参数设置模块设置AWD中断初始的上限阀值和下限阀值具体为:将上限阀值设置为预设正常上限值,将下限阀值设置为预设正常下限值。
9.如权利要求6所述的捕获模拟信号周期的系统,其特征在于,所述信号采样模块包括GPIO 口和模拟/数字转换器,所述信号采样模块具体用于:通过GPIO 口接收模拟信号,使能模拟/数字转换器,扫描GPIO 口接收到的模拟信号并实时采样信号值。
10.如权利要求6所述的捕获模拟信号周期的系统,其特征在于,所述数据处理模块具体用于:存储上一次触发AWD中断时系统时钟的计数值tO,记录当前触发AWD中断时系统时钟的计数值tl,将tl与tO做差,计算出模 拟信号的半周期值。
【文档编号】G06F11/07GK103793287SQ201410016480
【公开日】2014年5月14日 申请日期:2014年1月14日 优先权日:2014年1月14日
【发明者】陈柳章 申请人:深圳市文鼎创数据科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1