3. TinyML技术栈概览
TinyML 预测性维护项目的落地,本质上是在“资源极度受限”的嵌入式环境中完成数据采集、信号处理、模型推理与结果上报的闭环。与云端 AI 不同,TinyML 技术栈的每一层选择都直接决定了项目的功耗、时延、成本与可维护性。本章将系统拆解微控制器(MCU)、传感器、边缘推理框架(TensorFlow Lite Micro 与 CMSIS-NN)以及开发板选型四个核心维度,帮助你在项目启动阶段建立清晰的技术选型地图。
3.1 微控制器:TinyML 的算力基座
核心原理:微控制器是 TinyML 推理的物理载体。预测性维护场景中,MCU 需要完成 FFT(快速傅里叶变换)、特征提取、神经网络推理等计算密集型任务。ARM Cortex-M 系列凭借其低功耗与 DSP 指令集成为主流选择。Cortex-M4 带有单精度 FPU 和 DSP 指令,Cortex-M7 具备双发射流水线和更高主频,而 Cortex-M33 在安全性与 TrustZone 支持上更优。
判断方法:选型时需评估三个核心指标:算力(以 CoreMark 或 DMIPS 衡量)、内存(RAM 决定模型中间激活值能否放下)、存储(Flash 存放模型权重与代码)。对于 1D CNN 或小型 LSTM 模型,建议 RAM ≥ 128KB,Flash ≥ 512KB。若使用 CMSIS-NN 加速,需确认 MCU 支持 SIMD(单指令多数据)指令。
| MCU 型号 | 内核 | 主频 | RAM | Flash | 适用场景 |
|---|---|---|---|---|---|
| STM32F746 | Cortex-M7 | 216 MHz | 320 KB | 1 MB | 多通道振动分析 |
| nRF52840 | Cortex-M4F | 64 MHz | 256 KB | 1 MB | 低功耗无线传感 |
| ESP32-S3 | Cortex-M4F | 240 MHz | 512 KB | 8 MB (PSRAM) | 边缘+Wi-Fi 上报 |
| RP2040 | Cortex-M0+ | 133 MHz | 264 KB | 2 MB (外部) | 入门学习/原型验证 |
3.2 传感器:数据质量决定模型上限
核心原理:预测性维护的传感器选型需匹配故障的物理特征。旋转机械故障(轴承磨损、不平衡)通常表现为 1kHz~10kHz 的振动信号,需选用高带宽加速度计;电机电流异常则需电流互感器配合高采样率 ADC。传感器输出接口(I2C/SPI/模拟)直接影响 MCU 的引脚分配与 DMA 配置。
操作流程:传感器选型五步法:① 确定故障特征频率范围 → ② 计算所需采样率(至少为最高频率的 2.56 倍)→ ③ 评估量程与灵敏度(避免削波或信噪比不足)→ ④ 确认接口与功耗预算 → ⑤ 验证与 MCU 的时序兼容性。
3.3 边缘推理框架:TensorFlow Lite Micro 与 CMSIS-NN
核心原理:TensorFlow Lite Micro(TFLM)是 Google 推出的微控制器推理引擎,支持 INT8 量化模型,解释器占用约 16KB RAM。CMSIS-NN 是 ARM 提供的 Cortex-M 内核优化库,通过汇编级指令(如 SMLAD、SMLALD)将卷积运算速度提升 4~6 倍。两者并非互斥:TFLM 可调用 CMSIS-NN 作为算子内核后端。
判断方法:当模型包含标准 CNN/RNN 层时,优先使用 TFLM 的完整算子支持;当模型结构简单(如全连接+少量卷积)且对时延敏感时,可直接调用 CMSIS-NN 手写推理逻辑。需注意 TFLM 的算子内核默认未启用 CMSIS-NN,需在编译时通过 OPTIMIZED_KERNEL_DIR=cmsis_nn 开启。
# 启用 CMSIS-NN 加速的编译示例
make -f tensorflow/lite/micro/tools/make/Makefile \
TARGET=stm32f4 \
OPTIMIZED_KERNEL_DIR=cmsis_nn \
BUILD_TYPE=release \
generate_hello_world_project
| 对比维度 | TensorFlow Lite Micro | CMSIS-NN |
|---|---|---|
| 抽象层级 | 框架级(解释器+算子) | 算子级(函数库) |
| 模型支持 | 支持 TFLite 量化模型 | 需手动实现网络结构 |
| 内存占用 | 基础 16KB + 算子 | 仅算子代码(约 8KB) |
| 性能 | 通用优化 | 针对 Cortex-M 深度优化 |
| 适用场景 | 快速部署、模型迭代频繁 | 极致性能、固定模型 |
3.4 开发板选型:从原型到量产
核心原理:开发板选型需平衡三方面:硬件资源(MCU 性能、传感器集成度)、软件生态(BSP 驱动、TFLM 移植难度)、扩展能力(外部 Flash、无线模块接口)。对于预测性维护项目,优先选择板载 IMU(惯性测量单元)或预留 SPI 接口的开发板,减少外部布线干扰。
操作流程:开发板选型评估清单:① 是否支持 TFLM 官方移植(查 tensorflow/lite/micro/examples)→ ② 是否具备调试接口(SWD/JTAG)→ ③ 是否有足够的 GPIO 与 DMA 通道 → ④ 功耗模式是否满足电池供电需求 → ⑤ 社区资料与示例代码丰富度。
supported_ops.md 列表。
3.5 技术栈整合与复盘
核心原理:完整的技术栈需打通“传感器→数据预处理→特征提取→模型推理→结果输出”链路。数据预处理(去直流、加窗)通常在 MCU 上以 C 语言实现,特征提取(RMS、峰值因子、FFT 频谱)可复用 CMSIS-DSP 库。模型推理输出需通过 UART/蓝牙/Wi-Fi 上报至网关或云端。
总结复盘:本章技术栈选型的关键决策点可归纳为:先定传感器,再定 MCU,最后选框架。传感器决定信号质量与采样率,MCU 决定算力与内存上限,框架决定开发效率与性能天花板。实际项目中,建议先使用高配开发板(如 STM32F746)验证算法可行性,再根据资源占用裁剪至低成本 MCU(如 STM32G0 系列)以降低量产成本。
| 选型步骤 | 关键问题 | 推荐工具/方法 |
|---|---|---|
| 1. 传感器 | 故障特征频率?量程? | 频谱分析仪、数据手册 |
| 2. MCU | RAM/Flash 是否满足? | 模型内存估算工具 |
| 3. 框架 | 算子是否支持? | TFLM 算子列表 |
| 4. 开发板 | 调试便利性? | 官方评估板 + 逻辑分析仪 |