1. 前言
本应用指南旨在帮助开发者了解罗姆集团旗下 Kionix 公司的 KX13x 系列三轴加速度传感器搭载的独有功能——高级数据路径(Advanced Data Path,ADP)。ADP 由用户可定制的频率滤波器和一个均方根(RMS)计算器组成,后者是提供所需带宽内的加速度振幅。X、Y 和 Z 轴的 16 位 ADP 输出可以从专用输出寄存器中读取,存储在 512 字节的 FIFO 缓存中,然后被路由至 Wake-Up(唤醒)和 Back-to-Sleep(返回睡眠)引擎。通过设置想要的阈值振幅和计数器值,可以针对特定的动作、旋转或振动产生中断。本文将通过介绍两个简单的示例来直观地展示该新功能的优势。

 

图 1:高级数据路径(ADP)原理示意

 

现实世界中的加速度信息(左)由不同频率和振幅混合而成,KX13x 的 ADP 不仅可以捕获这些信息,而且能够输出指定频率范围内的加速度振幅(右侧列举了各种情况示例)。


2. 数据流
图 2 所示的是一张普通数据流图。该图顶部的第一个方块是数字加速度计的传统数据路径(Conventional Data Path,CDP)。CDP 包含来自 MEMS 的模拟输入、一个负责放大信号的模拟前端(AFE)、一个负责信号数字化的模数转换器(ADC)以及一个负责进一步处理的数字信号处理(DSP)单元。高级数据路径(ADP)包含一对高度可配置的数字滤波器——可用于低通和高通的组合滤波器,以及计算实时振幅的均方根(RMS)计算器。用户可以灵活地对 ADP 滤波器进行访问并设置。该滤波器可以设为 Butterworth、Bessel、Chebyshev 滤波器,甚至配置成自定义滤波器。ADP 的输出可以存储在专用输出寄存器,也可以被路由至内置的 512 字节 FIFO 缓存,也可以两种方式同时实现。此外,ADP 输出可以作为一个输入路由到内置的动作 Wake-Up(唤醒)和 Back-to-Sleep(返回睡眠)引擎。这些引擎可配置阈值和灵活的计数器,从而进一步限定信号。如果满足输入信号判定标准,那么器件中的中断发生器将为主机产生一个物理中断,并设置相应的状态寄存器。图 2 所示的是当检测到“持续了 Th 时间的特定振动”时产生中断的示例情况。

 

图 2:ADP 数据流


3. 应用实例
3.1. 机器健康状况

假设 fop 为机械系统(比如旋转电机)的工作频率,fe 为系统的错误 / 故障模式频率(图 3)。在此例中,fe 低于 fop 并且在该图中显示,也就是说,由于机身松动,电机正在缓慢振动。对于传统加速度传感器,为了检测这种故障模式,人们需要用 MCU/DSP 进行频率分析。而 MCU/DSP 一直保持工作状态,会导致额外的内存空间需求以及更高的功耗。


而 KX13x 的 ADP 仅使用加速度传感器就能够检测到这种事件,而且,如果把 ADP 数字滤波器设置为带通或低通滤波器,让 fe 通过而消除 fop,还能为主机 MCU 产生中断。

 

图 3:正常系统动作和故障系统动作的频率分析

 

在图 4 中,请注意,ADP 被配置为低通滤波器以消除 fop,而且 RMS 计算引擎被配置为获取所需故障模式信号的绝对值。动作引擎中的信号阈值(中间波形)用于限定事件。最后,图下部的波形显示了由运动引擎生成的真实信号。检测到故障事件后,INS3 寄存器中的 WUFS 位会被置位,而外部中断引脚(如果已配置)则产生中断信号。

 

图 4:ADP 将目标信号从原始加速度数据中分离出来,并将振幅信息传递给运动引擎


3.2. 包络分析
包络分析是一种周期性振动故障检测的有效方法,比如减摩轴承失效。ADP 可用于生成加速度数据的包络线(* 1)。包络波形的快速傅里叶变换(FFT)可以显示振动周期,这有助于识别系统中的缺陷部件。在该例中,ADP 滤波器应配置为“带通”:同时包含振动频率和误差频率,排除直流噪声和高频噪声。


(*1)注:ADP 输出是伪包络,不是希尔伯特变换结果。

 

图 5:轴承球体故障引起的周期性振动

 

包络波形可以存储在 KX13x 的 512 字节缓冲区中,也可发送到主机处理器进行 FFT 分析。

 

图 6:使用原始加速度数据及其包络的 FFT