一种滤波方法及装置与流程

文档序号:11915737阅读:333来源:国知局
一种滤波方法及装置与流程

本发明涉及计算机技术领域,特别是涉及一种滤波方法及装置。



背景技术:

市面上绝大多数的乘用车为提高舒适性,广泛采用直流电机实现对汽车闭合部件的电动控制,如天窗、门窗等。为了实现直流电机的防夹功能,在汽车闭合部件的闭合过程中,需要获取汽车闭合部件的位置信息。所谓防夹功能指的是,在汽车闭合部件闭合的过程中,在规定范围内如果遇到物体或人的身体阻碍时,直流电机必须能够检测出该阻碍并反转运行。

目前,通过采集直流电机电源母线上的纹波电流,获得汽车闭合部件的位置信息。具体地,通过对纹波电流进行高通滤波、放大、再经过比较器得到方波信号,通过单片机的中断口对方波信号的下降沿进行计数,并根据计数值得到位置信息。然而,由于高通滤波只能过滤掉纹波电流中的低频直流分量,并不能过滤掉直流电机在启动、稳定运行、堵转及切停时产生的高频毛刺,所以得到的方波信号仍然会存在噪声,这将使得依据方波信号得到的下降沿的计数值存在误差,从而使根据计数值得到的位置信息也不准确。

针对上述问题,现有技术中提出了一种基于软件延时的滤波方案,其原理为,当检测到方波信号时,控制汽车闭合部件闭合的主程序接收中断指令,执行启动计数器进行累加计时的中断程序,然后通过判断计数器计时时间内是否接收到脉冲,若是,则将计时时间内的方波信号认为噪声信号,不被计数,以此过滤掉噪声。由上可见,现有技术的方案中,中断程序在执行时,主程序需要暂停,也就是说,中断程序的执行会占用主程序的执行时间。对于低成本的单片机系统,其运算速度有限,通常主程序执行时间在2ms以上,而方波信号及其噪声脉宽在500μs-10μs之间,因此,中断程序的计时过程会严重占用主程序时间,造成主程序执行缓慢,从而导致依靠主程序无法实现有效延时滤波。



技术实现要素:

为解决上述技术问题,本发明实施例提供了一种滤波方法及装置,以解决由于累加计时的中断程序占用主程序的执行时间,导致的对方波信号延时过滤效率低的问题,技术方案如下:

一种滤波方法,应用于主控制器,包括:

判断与所述主控制器并列运行的计时单元是否计时开始;

若是,判断与所述主控制器并列运行的计时单元是否计时结束;

若是,对方波信号进行滤波。

优选地,

所述判断与所述主控制器并列运行的计时单元是否计时开始,包括:

判断是否检测到所述方波信号的第一跳变沿;

若是,执行第一中断服务函数,所述第一中断服务函数用于触发所述计时单元开始计时;

所述判断与所述主控制器并列运行的计时单元是否计时结束,包括:

判断是否检测到所述方波信号的第二跳变沿,所述第二跳变沿为在所述第一跳变沿之后发生的、与所述第一跳变沿最接近的跳变沿;

若是,执行第二中断服务函数,所述第二中断服务函数用于触发所述计时单元结束计时,并执行所述对方波信号进行滤波的步骤。

优选地,所述判断与所述主控制器并列运行的计时单元是否计时开始,包括:

判断所述计时单元是否接收到计时开始的指令;

若是,执行判断与所述主控制器并列运行的计时单元是否计时结束的步骤。

优选地,所述判断与所述主控制器并列运行的计时单元是否计时结束,包括:

判断是否接收到所述计时单元发送的触发指令,所述触发指令为所述计时单元测量预设时间后、所发送的用于触发所述主控制器执行第三中断服务函数的指令,所述第三中断服务函数用于对所述方波信号进行滤波,所述计时单元周期执行对所述预设时间的测量,所述预设时间至少大于最长噪声时间,所述最长噪声时间为从所述方波信号中监测到的存在时间最长的噪声的时间。

优选地,所述对方波信号进行滤波,包括:

获取所述计时单元的计时时间;

判断所述计时时间是否不小于预设滤波时间常数,所述预设滤波时间常数至少大于最长噪声时间,所述最长噪声时间为从所述方波信号中监测到的存在时间最长的噪声的时间;

若是,将所述方波信号在上一时刻的电平值作为滤波后的信号在当前时刻的电平值,所述上一时刻为所述第二跳变沿发生之前且所述第一跳变沿发生之后的任一时刻,所述当前时刻为所述第二跳变沿发生的时刻;

若否,则将所述滤波后的信号在所述第一跳变沿发生时刻的电平值作为所述滤波后的信号在所述当前时刻的电平值。

优选地,所述对方波信号进行滤波,包括:

将所述方波信号在当前时刻的电平值,设置为一次滤波信号在所述当前时刻的电平值,所述当前时刻为所述计时单元本次计时结束的时刻;

判断所述一次滤波信号在所述当前时刻的电平值与在上一时刻的电平值是否相等,所述上一时刻为本次计时结束之前、与本次计时结束最接近的计时结束时刻;

若是,则将所述一次滤波信号在所述当前时刻的电平值,作为滤波后的信号在所述当前时刻的电平值;

若否,则将所述滤波后的信号在所述上一时刻的电平值,作为所述滤波后的信号在所述当前时刻的电平值。

优选地,还包括:

判断是否检测到方波信号;

若否,执行第四中断服务函数,所述第四中断服务函数用于触发所述计时单元停止计时。

优选地,所述计时单元采用计数器累加计时或采用计时器实现。

一种滤波装置,应用于主控制器,包括:

第一判断单元,用于判断与所述主控制器并列运行的计时单元是否计时开始;

第二判断单元,用于当所述第一判断单元的判断结果为是时,判断与所述主控制器并列运行的计时单元是否计时结束;

第一执行单元,用于当所述第二判断单元确定与所述主控制器并列运行的计时单元计时结束时,对方波信号进行滤波。

优选地,所述第二判断单元,包括:

第二判断子单元,用于判断是否接收到所述计时单元发送的触发指令,所述触发指令为所述计时单元测量预设时间后、所发送的用于触发所述主控制器执行第三中断服务函数的指令,所述第三中断服务函数用于对所述方波信号进行滤波,所述计时单元周期执行对所述预设时间的测量,所述预设时间至少大于最长噪声时间,所述最长噪声时间为从所述方波信号中监测到的存在时间最长的噪声的时间。

本实施例所提供的技术方案,执行主程序的主控制器与实现计时的计时单元并列运行,即计时单元的计时过程并不占用主程序的执行时间,因此,采用本申请的方案解决了由于计时过程占用主程序的执行时间导致的不能对方波信号有效滤波的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的一种滤波方法的一种流程示意图;

图2为本发明实施例所提供的一种滤波方法的另一种流程示意图;

图3为本发明实施例所提供的一种滤波方法的一种原理图;

图4为本发明实施例所提供的一种滤波方法的另一种流程示意图;

图5为本发明实施例所提供的一种滤波方法的另一种原理图;

图6为本发明实施例所提供的一种滤波装置的一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1为本申请实施例提供的滤波方法的一种实现流程图,该方法应用于主控制器,所述方法包括:

步骤S101、判断与所述主控制器并列运行的计时单元是否计时开始,若是,执行步骤S102;

本实施例中的计时单元,既可以通过计数器累加计时这一软件方式实现计时,也可以通过计时器这一硬件实现实时,当然,现有技术中任何其它的能够实现计时的方案也适用于本发明的方案。

本实施例中,主控制器用于实现控制汽车闭合部件闭合的主程序,而计时单元的计时过程与主程序并列执行。

本实施例中,计时单元计时开始,可以与主控制器有关,如通过主控制器向计时单元发送计时开始的指令实现,也可以与主控制器无关,如通过对主控制器和计时单元同时上电,实现主控制器与计时单元的并列运行。

步骤S102、判断与所述主控制器并列运行的计时单元是否计时结束,若是,执行步骤S103;

类似于计时单元计时开始的过程,计时单元计时结束,可以与主控制器有关,如通过主控制器执行中断函数的方式,触发计时单元计时结束,也可以与主控制器无关,如预先给计时单元设定计时时间,当计时单元测量该计时时间后,向主控制器发送触发指令,以通知主控制器计时单元计时结束。

步骤S103、对方波信号进行滤波。

本实施例所提供的技术方案,执行主程序的主控制器与实现计时的计时单元并列运行,即计时单元的计时过程并不占用主程序的执行时间,因此,采用本申请的方案解决了由于计时过程占用主程序的执行时间导致的不能对方波信号有效滤波的问题。

请参阅图2,图2为本申请实施例提供的滤波方法的另一种实现流程图,该方法应用于主控制器,所述方法包括:

步骤S201、判断是否检测到方波信号的第一跳变沿,若是,执行步骤S202;

步骤S202、执行第一中断服务函数;

所述第一中断服务函数用于触发与主控制器并列运行的计时单元开始计时。

本实施例中的计时单元,既可以通过计数器累加计时这一软件方式实现计时,也可以通过计时器这一硬件实现实时,当然,现有技术中任何其它的能够实现计时的方案也适用于本发明的方案。

步骤S203、判断是否检测到所述方波信号的第二跳变沿,若是,执行步骤S204;

所述第二跳变沿为在所述第一跳变沿之后发生的、与所述第一跳变沿最接近的跳变沿。

方波信号的跳变沿包括上升沿和下降沿,因此,第一跳变沿、第二跳变沿既可以是上升沿,也可以是下降沿,但,第一跳变沿、第二跳变沿不能同时为上升沿或下降沿,即当第一跳变沿为上升沿时,第二跳变沿为下降沿,当第一跳变沿为下降沿时,第二跳变沿为上升沿。

步骤S204、发送用于触发所述计时单元计时结束的指令;

步骤S205、获取所述计时单元的计时时间;

当确定计时单元计时结束后,获取计时单元的计时时间,并根据该计时时间对方波信号进行过滤。

步骤S206、判断所述计时时间是否不小于预设滤波时间常数,若是,执行步骤S207,否则,执行步骤S208;

所述预设滤波时间常数至少大于最长噪声时间,所述最长噪声时间为从所述方波信号中监测到的存在时间最长的噪声的时间,优选地,预设滤波时间常数取有效方波信号的半个周期。

当预设滤波时间常数取有效方波信号的周期的一半时,判断计时时间是否等于预设滤波时间常数;当预设滤波时间常数小于有效方波信号的周期的一半,且大于最长噪声时间时,判断计时时间是否大于预设滤波时间常数。

当计时时间满足预设滤波时间常数的判断规则时,说明计时时间内的方波信号为有效信号,否则,说明计时时间内的方波信号为噪声信号。

步骤S207、将所述方波信号在上一时刻的电平值作为滤波后的信号在当前时刻的电平值;

所述上一时刻为所述第二跳变沿发生之前且所述第一跳变沿发生之后的任一时刻,所述当前时刻为所述第二跳变沿发生的时刻。

当计时时间内的方波信号为有效信号时,将方波信号在第二跳变沿发生之前的电平值作为滤波后的信号在当前时刻的电平值,具体地,当第二跳变沿为从高电平跳变为低电平时,滤波后的信号在当前时刻的电平值为高电平,当第二跳变沿为从低电平跳变为高电平时,滤波后的信号在当前时刻的电平值为低电平。

步骤S208、将所述滤波后的信号在所述第一跳变沿发生时刻的电平值作为所述滤波后的信号在所述当前时刻的电平值。

当计时时间内的方波信号为噪声信号时,滤波后的信号在当前时刻的电平值保持在跳变沿发生时刻的电平值,以此将噪声信号滤除。

本实施例中,步骤S204-S208均属于对第二中断服务函数执行的过程。

需要说明的是,第二跳变沿用于触发对从第一跳变沿到该第二跳变沿之间方波信号的计时的结束,但同时,该第二跳变沿也作为触发该方波信号从第二跳变沿到沿时间轴上与该第二跳变沿最近的跳变沿之间的计时的开始。例如,第一跳变沿在t1时刻发生,第二跳变沿在t2时刻发生,沿时间轴与第二跳变沿最近的跳变沿在t3时刻发生,按照本实例的方案,对于t1时刻到t2时刻的方波信号,t1时刻计时开始,t2时刻计时结束,但同时,对于t2时刻到t3时刻的方波信号,t2时刻的第二跳变沿也用于触发计时开始。

以下以图3为例,说明本实施例中对计时时间内的方波信号进行滤波的过程:

图3中预设滤波时间常数为有效方波信号周期的一半。

t1时刻,检测到方波信号的上升沿,执行第一中断服务函数,第一中断服务函数用于触发计时单元开始计时,t2时刻,检测到方波信号的下降沿,执行第二中断服务函数,第二中断服务函数用于触发计时单元结束计时,之后,获取从t1到t2计时单元的计时时间,判断计时时间是否等于预设滤波时间常数,经图3可以看出,计时时间等于预设滤波时间常数,因此,将滤波后的信号在t2时刻的电平值取为高电平。

对于t4-t5之间的方波信号,可以发现,t4-t5的计时时间小于预设滤波时间常数,因此,将滤波后的信号在t5时刻的电平值维持在t4时刻的电平值,即仍取为高电平。

需要说明的是,滤波后的信号在两个跳变沿发生时刻之间的电平,均保持时间轴上较小的发生时刻时的电平。以t1-t2举例说明,t1时,滤波后的信号为低电平,所以t1-t2这个时间区间内,滤波后的信号保持低电平,直到t2时刻,才由低电平变为高电平。

本实施例所提供的技术方案,当检测到方波信号的第一跳变沿时,跳转执行第一中断服务函数,以触发计时开始,触发计时开始的动作结束后,跳转回主程序的执行,即,判断是否检测到方波信号的第二跳变沿,也就是说,第一中断服务函数仅用于对计时触发,触发结束后跳回主程序运行,从而使主程序与计时过程并列执行。由于计时过程在滤波中占用绝大部分时间,而滤波过程所占用时间几乎可以忽略不计,因此,本申请的方案在执行时不占用主程序时间,从而实现了对方波信号的有效滤波。

请参阅图4,图4为本申请实施例提供的滤波方法的另一种实现流程图,该方法应用于主控制器,所述方法包括:

步骤S401、判断与所述主控制器并列运行的计时单元是否计时开始,若是,执行步骤S402;

本实施例中,计时单元既可以通过计数器累加计时这一软件方式实现计时,也可以通过计时器这一硬件实现实时,当然,现有技术中任何其它的能够实现计时的方案也适用于本实施例的方案。

实际应用中,该步骤可以通过判断计时单元是否接收到计时开始的指令实现。

步骤S402、判断是否接收到所述计时单元发送的触发指令,若是,执行步骤S403;

所述触发指令为所述计时单元测量预设时间后、所发送的用于触发所述主控制器执行第三中断服务函数的指令,所述第三中断服务函数用于对所述方波信号进行滤波,所述计时单元周期执行对所述预设时间的测量,所述预设时间至少大于最长噪声时间,所述最长噪声时间为从所述方波信号中监测到的存在时间最长的噪声的时间。

本实施例中,预先设置计时单元的计时时间(即预设时间),当预设时间到后,计时单元向主控制器发送触发指令,即本实施例中,计时单元计时结束的时刻不受主程序控制,而是由计时单元自身根据预先设置的预设时间所确定。

为了实现对方波信号的滤波,计时单元所测量的预设时间至少大于最长噪声时间,所述最长噪声时间为从所述方波信号中监测到的存在时间最长的噪声的时间,优选地,预设时间可以取有效方波信号周期的一半。

步骤S403、将所述方波信号在当前时刻的电平值,设置为一次滤波信号在所述当前时刻的电平值,所述当前时刻为所述计时单元本次计时结束的时刻;

本实施例中,当接收到触发指令后,对方波信号进行了两次滤波,第一次滤波后的信号在当前时刻的电平值,为方波信号在当前时刻的电平值,其中,当前时刻为所述计时单元本次计时结束的时刻。

步骤S404、判断所述一次滤波信号在所述当前时刻的电平值与在上一时刻的电平值是否相等,若是,执行步骤S405,否则,执行步骤S406;

所述上一时刻为本次计时结束之前、与本次计时结束最接近的计时结束时刻。

步骤S405、将所述一次滤波信号在所述当前时刻的电平值,作为滤波后的信号在所述当前时刻的电平值;

步骤S406、将所述滤波后的信号在所述上一时刻的电平值,作为所述滤波后的信号在所述当前时刻的电平值。

优选地,本实施例在对方波信号过滤时,一直检测输入信号是否为方波信号,当检测不到方波信号时,执行第四中断服务函数,所述第四中断服务函数用于触发所述计时单元停止计时。

以下以图5为例,说明本实施例中对方波信号进行滤波的过程:

其中,图5中计时单元的时刻表示每次计时结束的时刻,且预设时间为有效方波信号周期的一半。

t2时刻,计时单元计时结束,向主程序发送触发指令,执行对方波信号的滤波,具体地,由于t2时刻时,方波信号为高电平,所以此时,一次滤波信号也为高电平,由于t1时刻一次滤波信号为低电平,即一次滤波信号在t1时刻与在t2时刻的电平不相等,所以,滤波后的信号在t2时刻的电平值保持其在t1时刻的电平值,即仍为低电平。

t3时刻,方波信号为高电平,所以,一次滤波后的信号也为高电平,由于t2时刻一次滤波信号为高电平,即一次滤波信号在t2时刻与在t3时刻的电平相等,所以,滤波后的信号在t3时刻的电平值与一次滤波信号在t3时刻的电平值相同,即为高电平。

需要说明的是,无论是一次滤波信号、记录一次滤波在上一时刻的信号,还是滤波后的信号,在两个计时结束时刻之间的电平,均保持时间轴上较小的结束时刻时的电平。以t2-t3举例说明,t2时,一次滤波信号为高电平,所以t2-t3这个时间区间内,一次滤波信号保持高电平,同理,t2时,滤波后的信号为低电平,所以,t2-t3这个时间区间内,滤波后的信号保持低电平。

本发明实施例所提供的技术方案,执行主程序的主控制器与实现计时的计时单元并列运行,即计时单元的计时过程并不占用主程序的执行时间,因此,采用本申请的方案解决了由于计时过程占用主程序的执行时间导致的不能对方波信号有效滤波的问题。

请参阅图6,图6为本申请实施例提供的滤波装置的一种结构示意图,该装置结构示意图中的各单元的工作过程参照图1对应的实施例中方法的执行过程,该装置应用于主控制器,该装置包括:

第一判断单元610,用于判断与所述主控制器并列运行的计时单元是否计时开始;

第二判断单元620,用于当所述第一判断单元610的判断结果为是时,判断与所述主控制器并列运行的计时单元是否计时结束;

第一执行单元630,用于当所述第二判断单元620确定与所述主控制器并列运行的计时单元计时结束时,对方波信号进行滤波。

优选地,所述第二判断单元,包括:

第二判断子单元,用于判断是否接收到所述计时单元发送的触发指令,所述触发指令为所述计时单元测量预设时间后、所发送的用于触发所述主控制器执行所述第三中断服务函数的指令,所述第三中断服务函数用于对所述方波信号进行滤波,所述计时单元周期执行对所述预设时间的测量,所述预设时间至少大于最长噪声时间,所述最长噪声时间为从所述方波信号中监测到的存在时间最长的噪声的时间。

本实施例所提供的技术方案,执行主程序的主控制器与实现计时的计时单元并列运行,即计时单元的计时过程并不占用主程序的执行时间,因此,采用本申请的方案解决了由于计时过程占用主程序的执行时间导致的不能对方波信号有效滤波的问题。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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