基于FPGA的脉冲信号滤波算法的研究
2021-07-28李兵强余尚志闻一鸣刘光明
李兵强 余尚志 闻一鸣 刘光明
(苏州长风航空电子有限公司,江苏苏州 215151)
由于目前航空电子技术的更新迭代,对飞机座舱显示系统的人机交互性能提出了更高的要求[1]。
发动机参数显示与采集系统主要用于实时采集发动机实时工作中的多种系统参数,主要包括发动机传感器信号,如发动机转速、负荷等信号。采集的频率量脉冲信号极易受到干扰,因此提出了一种基于FPGA的二阶低通滤波器算法设计方案,该方案分析了引入干扰的信号类型和特点,设计了一个滤波算法模块,该模块包括一个5种状态的状态机,通过仿真测试验证等,结果显示,该脉冲信号滤波模块有效,满足了产品的使用要求[2]。
1 发参采集系统硬件结构及工作原理
典型的发参采集系统硬件原理框图如图1所示。
图1 典型的发参采集系统硬件原理框图Fig.1 Hardware principle block diagram of typical engine parameter acquisition system
它主要由FPGA模块、模拟量采集模块、频率量处理模块、开关量处理模块、液晶显示模块等组成。FPGA实现所有信号的采集和处理,并产生相应的字符信号送到液晶显示模块显示,最后完成与飞行员的人机交互[3]。
本文由于篇幅有限,并且实际应用过程中,仅有转速传感器和流量传感器等频率量信号极易引入干扰[4],因此仅对此两类信号的处理进行详细的设计说明和仿真测试。
2 频率信号滤波设计
2.1 高频脉冲扰动信号特性分析
通过实验可测得转速等传感器采集输出的高频脉冲扰动信号的宽度大致都保持在4μs~12μs之间,其中包括高电平高频脉冲扰动与低电平高频脉冲扰动两种扰动信号。如图2所示。由于需采集频率信号的频率最大值是2400Hz,依此进行设计时系统采集的最大频率约为2500Hz,进一步推算出最窄有效电平信号宽度是0.2ms。综上所述高频脉冲扰动信号宽度远小于有效电平宽度。在原有的50MHz工作时钟进行分频后可以生成10MHz时钟来用于滤波模块的实际工作时钟。充分考虑采集信号的有效性和准确性,设定有效电平持续时间小于25μs的信号是扰动信号[5-6]。
图2 两种形式高频脉冲扰动信号Fig.2 Two types of high frequency pulse jamming signals
2.2 滤波相关参数设定
选取的两种频率量信号通过信号调理电路,然后经过滤波处理后,将最终处理完的信号传递到处理器的数据采集接口进行采集。Quartus II软件中的滤波功能实现如图3所示。
图3 滤波功能模块元件Fig.3 Filter function module components
2.3 滤波模块工作原理
2.3.1 信号同步处理
频率信号作为滤波模块的输入,其信号特性正常情况下应该是维持高电平或者低电平,但在一定情况下无法保证信号具有稳定的特性,可能存在高低电平时而跳变的情况,这种情况下称信号的状态是亚稳态。
如果考虑完全规避信号亚稳态是无法实现的,因此一般考虑尽量减小信号采集时亚稳态出现的几率。本文采取选用2级触发器来实现。
2.3.2 信号输出
如果高电平采集信号被判定有效,那么信号经过滤波功能后输出高电平。如果高电平采集信号被判定无效的扰动信号,那么信号经过滤波功能后不输出,信号不会被处理,默认维持之前的电平状态。低电平状态下同理。
2.4 状态机功能实现
滤波功能的实现需要依靠有限状态机,5个状态切换方式如图4所示。
图4 滤波功能模状态跳转图Fig.4 Filter function module state switching diagram
采集的频率量信号in进入滤波器,最开始经过原有输入(A)采集输入的频率量,且当前信号的被认为A状态,如果信号为高且有效,in_H=1,如果信号是低且有效,in_l=0。再通过边沿捕获(B)后,信号的状态会被认定为B,如果信号是高且有效,同时上一状态是原有输入(A)时,则in_L=1,这种情况下被判定为捕获到了上升沿,进一步置于计数累加(C)。如果信号是低且有效,同时上一状态是原有输入(A)时,in_H=1,这种情况下被判定为捕获到了下降沿,进一步置于计数累加(C)。如果都不是这两种状态,就会被判定为信号采集端不存在,切换到原有输入(A)。
切换到计数累加(C)后,对采集频率量开始计数累加,如果采集的频率量在80μs内均保持统一状态,则判定采集的频率量是有效,进一步切换到最终输出 (D)。实现将频率量的进一步传递,最终再切换到参数复位(E),完成全部参数的复位清零后切换到原有输入(A)。如果采集的频率量在80μs内没有保持统一状态,则判定为扰动信号,会立刻切换到参数复位(E),全部参数清零后进一步切换到原有输入(A)。
2.5 仿真验证
in1是周期为380μs的方波频率量,设定激励条件时,在55μs~65μs范围内增加高电平扰动脉冲、在285μs~290μs范围内增加低电平扰动脉冲、在865μs~872μs范围内增加高电平扰动脉冲、在1085μs~1098μs范围内增加低电平扰动脉冲、在1295μs~1306μs范围内增加高电平扰动脉冲。
in2是周期为195μs的方波频率量,设定激励条件时,在235μs~242μs范围内增加到低电平扰动脉冲、在728 μs~736μs范围内增加高电平扰动脉冲、在1232μs~1239μs范围内增加高电平扰动脉冲。
仿真验证情况如图5所示,从图中波形可知,本文提出的频率量滤波方式,能够较好的剔除信号持续时间在2 0 μs范围内的高频脉冲扰动信号,能够有效提高采集信号的可靠性和准确性。
图5 频率量滤波模块仿真Fig.5 Simulation of frequency filtering module
3 结论
本文根据发动机参数显示与采集系统中频率量的脉冲信号极易受到干扰的现象,提出了一种基于FPGA的二阶低通滤波器算法设计方案,该方案分析了引入的扰动信号特性,完成了滤波功能设计,包括一个5种状态的状态机,通过仿真测试验证等,结果显示,该高频脉冲扰动信号滤波功能有效,满足了产品的使用要求。作为一种FPGA滤波算法实现的典型设计,本设计可以不作任何改动即可应用于其他需要滤波处理的设计开发应用中,充分体现了该设计在后续开发中重复应用的优势。