采用STM32F407芯片进行发动机状态监测系统的设计

描述

发动机是车辆的动力装置,其状态好坏直接影响车辆性能。发动机结构复杂,工作条件恶劣,因此是车辆运行中故障最多的组成之一。所以,对发动机状态进行监测是具有重要现实意义的。

传统的发动机状态监测方法常见的有热工参数监测法、磨损特征分析法等,这些方法要求在发动机多个部位上安装传感器,不仅自动化程度低,而且测试耗时费力,难以满足现实需求,所以开发操作简便、可靠性高的新型监测方法已变得十分迫切。在发动机工作过程中,每一种声响都对应于特定频谱,当其运行状态不同时,如出现故障,其发出的声音频谱会出现变异和失真,总有一些特征频谱区别于其他声响。因此检测发动机工作时发出的声音信号,并利用LabVIEW编写声音信号处理软件,能快速有效的提取声音的特征信息。实现对汽车发动机状态的监测,为汽车安全运行和后续故障诊断提供依据和保障。

1 系统总体设计

本系统以STM32F407做主控芯片,利用音频传感器作拾音器,将其安装在发动机机架上,通过嵌入式系统进行音频采样和数据格式转换,采集汽车发动机在不同状态下因振动而发出的声音信息,再用LabVIEW编写程序对采集到的音频信号进行处理和显示,从中分析出发动机的运行状态的特征。

2  系统硬件设计

系统硬件设计主要包括主控模块、信号采集模块、通信模块和上位机。音频传感器采集发动机的声音信号,将采集到的模拟信号转换成数字信号,送入主控芯片进行格式转换,再将转换后的信号送到上位机的LabVIEW程序,对其进行处理,做谱分析,提取有用信息。

2.1  音频采集模块

本系统实现声音检测的硬件是MP45DT02  MEMS麦克风,该模块由3V电源供电,麦克风带有A/D转换功能,主控模块中由SPI或I2S外设产生的时钟信号经主控芯片STM32F407的PB10引脚输入MP45DT02,作为音频采集的时钟信号。该模块采集声音后,输出PDM格式的高频1位数字流信号,频率范围为1到3.25MHz,经由PC3脚输入主控模块。而主控芯片通过同步串口I2S对输入的PDM数据流以8个样本为一组进行采样,再经过主程序的PDM Filter库处理,将信号转换成16位脉冲编码调制(PCM)格式的数据流,产生音频的原始信号,保存在大容量存储介质中并送到LabVIEW程序处理分析。

2.2  按键通信模块

本系统采用按键中断来实现信号采集和主控芯片的控制关系。系统采用的用户按键电路由3.3V电源供电,该模块通过按下按键,将高电平信号从PA0脚输入STM32F407,相当于发出一个中断信号,控制音频采集程序的开始及初始化,在系统中起到监视音频采集的作用。

而应用的复位按键电路,连接的是STM32F407的NRST脚,它是异步复位脚。当通过控制复位键,从NRST脚将低电平输入主控制器时,MCU执行复位程序,重设内部寄存器,以及片内SRAM;而当输入高电平时,芯片被置位,PC指针从0地址开始。

2.3  主控模块

主控模块是整个系统的中心部分,包含了基本的电源电路。主控芯片时钟信号是程序运行的基础,这个模块包含了高速外部时钟(HSE)电路和低速外部时钟(LSE)电路,可根据不同的需要来选择不同的时钟电路。同时,该模块中还含有LED灯电路,通过其不同的发光状态,来了解程序执行到哪一步,便于程序排错及处理。

3  系统软件设计

系统的软件部分主要由主程序、系统初始化管理、按键管理、显示管理、中断管理、时钟管理、通信管理等模块组成。主程序可调用各模块,引导系统进入正常运行状态,协调软、硬件有条不紊地工作。显示模块主要是在数据采集的过程中指示灯的不同状态代表不同的程序运行阶段显示和在数据分析中得到的图谱和特征值显示。而系统的通信则包括单片机与拾音器的通信和单片机与上位机的通信。

3.1  主控模块软件设计

主控模块主要是通过单片机STM32F407来控制各个外设的运行,系统上电后,首先进入系统初始化,初始化可编程器件、输入/输出端口和相关参数,之后主程序处于循环扫描模式,等待定时及按键中断,以便捕捉中断信号从而进入相应地服务模块。系统主流程图如图1所示,整个程序由数据采集、数据转换、数据分析三个部分构成循环体系,当得到预期的音频图谱后,就返回主程序。

3.2  数据采集模块软件设计

本系统中使用的音频采集芯片是MP45DT02 MEMS麦克风。在数据采集开始之前,首先要进行初始化,将I2S外设产生的1024KHz时钟配置为主时钟,以生成正确的数字麦克风输入时钟1024MHz。1024MHz的时钟频率可根据输出音频数据流(16KHz)和选择的采样因子(64)计算得出(16000Hz x 64 =1024MHz)。之后执行数据采集循环程序,直到获得16位PDM数据样本,才进入下一中断程序。

3.3  数据转换模块软件设计

音频信号被捕获以后,经MEMS麦克风处理输出的音频信号是PDM格式1位数据流,这是一种在数字域中表示模拟信号的形式,它的表示方式是对一系列与模拟信号幅值对应的脉冲的相对密度进行编码。而本系统中LabVIEW程序不能处理PDM数据,所以要通过PDM Filter lib对其进行处理,将其转换为PCM数据。该库要对信号进行滤波和采样处理,因为麦克风输出的PDM数据的频率与输入的时钟信号频率一样,比较高,所以在这个过程中,首先要做的是降低采样频率。之后还要对信号进行调节,先用高通滤波器消除信号的直流偏移,保证信号的质量,然后用低通滤波器送出数据。整个过程完成之后,才能将音频信号转化PCM格式。而调节中涉及到的两个滤波器可在程序中通过初始化函数使能、禁止和配置,相关增益G=Mic Gain/64。

3.4  数据分析模块软件设计

数据分析部分要在上位机的LabVIEW中用图形化编程语言完成,该部分要对存储的音频文件做滤波和频谱分析等处理,数据分析程序框图如图2所示。进入数据分析子程序后,先要进行初始化,将PCM数据读进来,再对信号进行滤波除噪,然后分别对信号进行频谱变换、特征值测量和单频测量,将得到的相应图谱和数据显示在前面板上。

监测系统

这里使用的滤波器是IIR数字滤波器,其幅频特性精度很高,是非线性相位,用于对相位信息不敏感的音频信号上比较合适。之后为了更好的观察信号的特点,最主要的是对信号进行频谱变换,这里采用快速傅氏变换(FFT)对信号进行处理。用FFT将信号从时域变换到频域,使时域隐藏的现象和特征在频率域内显示出来,便于分析。而这里用频谱变换将随时间变化的音频信号分解成不同频率的基本波形,并通过频谱特征值测量显示了频谱的基本信息,帮助我们更好地分析频谱结构,从而了解发动机运行时的声音信号状态特征。

4 实验结果及分析

系统平台搭建好后,将发动机转速调至1档时,采集发动机发出的音频信号,经过处理后调试结果如图3所示;将发动机转速调至2档后,发动机转速加大,再次采集音频信号,信号处理结果如图4所示。

由处理后的声音信号波形图可以看到原始音频信号经过滤波后的波形,再将滤波后的信号变换到频域范围,可以看到发动机在转速为1档时,在频率约为100Hz时,有最大幅值,也就是最大能量;而在转速为2档时,约在180Hz时,有最大幅值。推测该发动机故障容易在这些频率点出现,故障频率集中在低频处,所以可主要对发动机低频段的状态进行监测;而高频段非常平缓,推测此时发动机处于正常运行状态。

由实验结果还可以看出,在不同转速下,同一发动机发出的声音信号频谱的均方根值基本不变,这可以作为正常状态监测的特征量之一。

5 结论

本次设计的基于拾音器的发动机状态监测系统,主要由MEMS麦克风、单片机等器件组成,是典型的软硬件结合系统,实现了根据音频信号对发动机状态进行分析监测的功能。而采集发动机的声音信号,相比于采集振动信号、液压信号等方式更容易,且损耗小、成本低,发展前景广阔。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
豆煮花生 2018-12-06
0 回复 举报
不使用~ 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分