2、多传感器系统基础:常见传感器类型、输出特性、接口方式
在TinyML多传感器融合系统中,传感器是物理世界与数字模型的唯一桥梁。理解传感器的类型、输出特性与接口方式,直接决定了信号链路的搭建质量、数据同步策略的选择以及模型推理的准确性。本章将系统梳理嵌入式视觉与IoT场景中最常用的传感器类别,剖析其电气与数据层面的输出特性,并对比主流接口协议的适用边界,为后续通道拼接与采样同步打下工程基础。
上图展示了从传感器物理量采集到处理器域融合的完整链路。在实际TinyML项目中,传感器选型与接口设计往往相互制约:高采样率的IMU需要SPI或I2C配合DMA,而多路麦克风阵列则依赖PDM/I2S的帧同步机制。下面从传感器类型、输出特性、接口方式三个维度展开。
2.1 常见传感器类型与物理量映射
按测量物理量划分,TinyML多传感器系统通常涉及以下四类传感器,每类在采样率、分辨率和功耗上差异显著。
| 传感器类别 | 典型型号 | 测量物理量 | 典型采样率 | 输出形式 |
|---|---|---|---|---|
| 惯性传感器(IMU) | BMI270、LSM6DSOX | 加速度、角速度 | 100Hz~6.4kHz | 16位数字量(I2C/SPI) |
| 声学传感器 | ICS-43434、INMP441 | 声压级、频率 | 8kHz~48kHz | PDM位流 / I2S帧 |
| 环境传感器 | BME280、SHT40 | 温度、湿度、气压 | 1Hz~100Hz | 数字量(I2C) |
| 光学/距离传感器 | VL53L1X、OPT3001 | 光照强度、飞行时间 | 10Hz~100Hz | 数字量(I2C)或模拟电压 |
选择传感器时,需关注三个关键参数:量程(决定信号是否饱和)、带宽(决定采样率下限)、噪声密度(决定信噪比)。例如,用于跌倒检测的IMU需要至少±8g量程和200Hz采样率,而用于姿态稳定的IMU则更看重低噪声密度。
2.2 输出特性:模拟、数字与事件驱动
传感器输出特性决定了信号调理电路和MCU外设的配置方式。理解这些特性是设计同步采样策略的前提。
- 模拟输出:如热敏电阻、模拟麦克风。信号幅度小(mV级),需经过运放放大和ADC采样。其优点是响应快,但易受电磁干扰,且多路模拟信号需要多路ADC通道或模拟多路开关。
- 数字输出(轮询/中断):如I2C接口的BME280。MCU通过寄存器读取数据,可配置中断引脚在数据就绪时通知MCU。此类传感器功耗低,但采样时刻受I2C总线调度影响。
- 数字输出(流式):如PDM麦克风、SPI接口的IMU。数据以连续位流或帧格式输出,需要MCU的专用外设(I2S、SPI+DMA)持续接收。流式传感器适合高采样率场景,但占用DMA通道和内存带宽。
- 事件驱动输出:如运动检测传感器(BMI270的步进检测)。仅在事件发生时输出中断信号,MCU无需持续轮询,适合低功耗唤醒场景。
2.3 接口方式:I2C、SPI、UART与PDM/I2S
接口方式决定了传感器与MCU之间的物理连接、时钟同步机制和最大吞吐量。下表对比了四种主流接口在TinyML场景下的适用性。
| 接口 | 时钟/速率 | 线数 | 多设备支持 | 适用传感器 | 同步采样难点 |
|---|---|---|---|---|---|
| I2C | 100kHz~1MHz | 2(SDA+SCL) | 多地址(7/10位) | 环境传感器、部分IMU | 总线仲裁导致采样抖动 |
| SPI | 10~50MHz | 4(MOSI/MISO/SCK/CS) | 多片选(CS) | 高速IMU、ADC | 片选切换增加延迟 |
| UART | 115200~3Mbps | 2(TX/RX) | 点对点 | GPS、激光雷达 | 异步帧对齐困难 |
| PDM/I2S | 1~3.2MHz(PDM) | 2~3(CLK+DATA+WS) | 时分复用(TDM) | 数字麦克风 | 需固定帧同步 |
在接口选型时,应遵循以下判断流程:
- 若传感器采样率低于1kHz且数量少于5个,优先选择I2C,节省GPIO。
- 若传感器采样率高于1kHz或需要低延迟,选择SPI并配合DMA。
- 若传感器输出原始音频或高精度时间序列,选择PDM/I2S。
- 若传感器距离MCU较远(>30cm),考虑UART或RS485。
2.4 案例拆解:六轴IMU+三路PDM麦克风的多模态采集
以一个可穿戴关键词唤醒系统为例,系统需同时采集BMI270(SPI接口,1.6kHz采样)和3颗ICS-43434麦克风(PDM接口,16kHz采样)。初始方案中,工程师将IMU配置为SPI轮询模式,麦克风配置为PDM+DMA模式,但发现推理准确率低于预期。
关键数据与现象:IMU数据时间戳抖动达±0.8ms,麦克风帧数据正常。分析发现,SPI轮询在中断处理中占用了CPU时间,导致PDM的DMA回调延迟,进而使IMU采样时刻漂移。
分析与调整:
- 将IMU切换为SPI+DMA模式,并启用硬件片选自动切换,减少CPU介入。
- 使用MCU的定时器触发SPI读取,确保IMU采样间隔固定为625μs。
- 将PDM时钟与定时器同步,使麦克风帧起始时刻与IMU采样时刻对齐。
结果对比:调整后,IMU时间戳抖动降至±0.05ms,关键词唤醒准确率从82%提升至91%。代价是DMA通道占用增加1个,内存缓冲增加4KB。
2.5 常见误区与总结
在多传感器系统设计中,以下误区容易导致后期返工:
- 误区一:所有传感器都用I2C。当传感器数量超过4个或采样率超过400kHz时,I2C总线会成为瓶颈,且地址冲突难以避免。
- 误区二:忽略传感器上电时序。部分传感器(如BMI270)需要先上电再配置寄存器,若MCU在传感器未就绪时写入配置,会导致初始化失败。
- 误区三:直接拼接原始数据而不做时间对齐。不同接口的延迟差异(如I2C的ACK延迟、SPI的片选切换)会导致数据错位,必须使用时间戳或插值对齐。
- 误区四:忽视模拟传感器的ADC采样保持时间。若ADC采样时间不足,信号建立不充分,会引入非线性误差。