4. 模拟传感器接口设计

飞控系统中,陀螺仪、加速度计、气压计、空速管、电流计、舵机位置反馈等大量传感器仍以模拟电压或电流形式输出。模拟接口链路看似简单,实则决定了飞控姿态解算的噪声底、动态响应和失效边界。一条完整的模拟采集链路通常包括:传感器输出→信号调理→抗混叠滤波→ADC采样→数字滤波→飞控使用。任一环节设计不当,都会在飞行中表现为姿态抖动、高度漂移或失控。

一、信号调理:把传感器输出“翻译”成ADC能吃的信号

信号调理的目标是完成电平匹配、阻抗变换、差分转换和共模抑制。常见传感器输出类型包括:单端电压(0~3.3V)、差分小信号(±20mV)、电流环(4~20mA)、电阻桥(应变片、压阻式气压计)。调理电路需要根据类型选择仪表放大器、差分放大器或跨阻放大器。

  • 电平搬移与缩放:将双极性信号抬升到ADC输入范围,例如±2V抬升到0.5~2.5V。
  • 阻抗匹配:高输出阻抗传感器必须经缓冲器再进ADC,否则采样保持电容会拉低读数。
  • 差分与共模:长线传输优先差分,配合仪表放大器获得高共模抑制比。
  • 保护:输入端加TVS、限流电阻和RC,防止舵机反电动势或静电打坏ADC。
调理级增益不要“吃满”ADC量程,建议保留10%~20%余量,避免温漂和过冲导致削顶。

二、滤波:抗混叠是硬约束,数字滤波是补充

模拟滤波的核心任务是抗混叠。根据奈奎斯特采样定理,高于采样率一半的频率成分会折叠回带内,无法用数字滤波去除。因此,ADC前必须放置模拟低通滤波器,截止频率应低于采样率的一半,通常取采样率的1/3~1/2.5。

一阶RC滤波每十倍频程衰减20dB,滚降太慢;对噪声要求高的场合可用二阶Sallen-Key或MFB滤波器,滚降40dB/十倍频程。数字端再叠加滑动平均、IIR低通或卡尔曼滤波,用于抑制带内噪声和随机漂移。

// 一阶RC抗混叠参数示例
// fc = 1 / (2 * PI * R * C)
// 目标 fc = 500Hz,取 R = 1kΩ
// C = 1 / (2 * PI * 1000 * 500) ≈ 318nF
// 实际选 330nF,fc ≈ 482Hz
// 若 ADC 采样率 1.2kHz,fc 约为采样率的 0.4 倍,满足抗混叠要求

三、ADC选型:分辨率、采样率与接口的三角权衡

飞控模拟接口常用ADC分为三类:MCU内置逐次逼近型(SAR)、外置高精度SAR、以及Σ-Δ型。选型时不能只看位数,要同时看有效位数、采样率、输入范围和接口开销。

类型典型分辨率采样率适用场景注意点
MCU内置SAR12位1~5MSPS舵机反馈、电流监测噪声大,需外部滤波
外置SAR16~18位100k~1MSPS气压计、空速SPI时序、基准源要求高
Σ-Δ20~24位10~1kSPS静态压力、称重延迟大,不适合快速控制

分辨率决定最小可分辨电压:LSB = Vref / 2^N。例如3.3V基准、12位ADC,LSB≈0.8mV;16位则约50μV。但有效分辨率受噪声限制,实际可用位数往往比标称低2~4位。

四、采样率与分辨率:匹配控制带宽,避免“过采样浪费”

采样率应至少为控制带宽的5~10倍。姿态控制环通常1kHz,则传感器采样建议2~4kHz;气压高度环10~50Hz,采样200~500Hz即可。过高的采样率会放大噪声并占用CPU,过低则引入相位滞后,导致控制振荡。

分辨率与采样率存在折中:Σ-Δ通过过采样和抽取获得高分辨率,但输出速率低;SAR速度快但位数有限。工程上常用“过采样+平均”提升有效位数:每4倍过采样可提升约1位有效分辨率。

不要用“标称位数”直接计算控制精度。ADC的INL、DNL、噪声和基准漂移会显著降低实际精度,选型时应查阅数据手册中的ENOB和噪声密度曲线。

五、抗干扰设计:从地平面到软件滤波的系统工程

飞控中电机PWM、电调开关噪声和舵机电流是主要干扰源。抗干扰必须分层处理:

  1. 布局:模拟地与数字地单点连接,ADC基准源远离功率走线,模拟输入走线尽量短且包地。
  2. 去耦:每个ADC电源引脚放置100nF+10μF组合,基准源加RC滤波。
  3. 屏蔽与隔离:长线传感器使用双绞屏蔽线,屏蔽层单端接地;必要时用隔离放大器或数字隔离器。
  4. 软件:中值滤波剔除脉冲干扰,滑动平均抑制随机噪声,异常值限幅防止野值进入控制环。
// 中值+滑动平均组合滤波示例
#define N 5
uint16_t buf[N];
uint16_t median_then_mean(uint16_t new_val) {
    // 1. 移位存入
    for (int i = N-1; i > 0; i--) buf[i] = buf[i-1];
    buf[0] = new_val;
    // 2. 复制排序求中值
    uint16_t tmp[N];
    memcpy(tmp, buf, sizeof(buf));
    sort(tmp, N);
    uint16_t med = tmp[N/2];
    // 3. 以中值为中心做限幅平均
    uint32_t sum = 0; int cnt = 0;
    for (int i = 0; i < N; i++) {
        if (abs(buf[i] - med) < 50) { sum += buf[i]; cnt++; }
    }
    return cnt ? sum / cnt : med;
}

六、典型场景与复盘

某四旋翼在悬停时出现高频抖动,日志显示加速度计原始数据噪声峰峰值达80mV。排查发现:ADC前只有一阶RC,截止频率约2kHz,而电机PWM频率16kHz的谐波折叠进带内。改进措施:将模拟滤波改为二阶,截止频率降至400Hz;ADC基准加10μF去耦;软件增加5点中值滤波。改进后噪声峰峰值降至12mV,姿态抖动明显改善。

常见误区包括:只关注ADC位数而忽略基准质量;抗混叠滤波器截止频率设得过高;模拟地与数字地大面积混接;以及用数字滤波替代模拟抗混叠。正确的设计顺序是:先明确传感器带宽和噪声,再定调理增益和滤波截止,最后选ADC并核算有效分辨率,任何一步颠倒都会导致返工。

模拟传感器接口信号链与抗干扰设计 传感器 电压/电流/桥式 信号调理 放大·搬移·差分 阻抗匹配·保护 抗混叠滤波 RC / Sallen-Key fc < fs/2 ADC 采样 SAR / Σ-Δ 分辨率·采样率 数字滤波 中值·滑动平均 IIR / 卡尔曼 飞控控制环 姿态/高度解算 干扰源 电机PWM·电调开关 舵机电流·静电 抗干扰分层措施 布局 单点接地·包地 去耦 100nF+10μF 屏蔽隔离 双绞屏蔽·隔离器 软件:中值 + 滑动平均 + 限幅 剔除脉冲·抑制随机噪声·防野值 关键参数关系 LSB = Vref / 2^N fc < fs / 2 fs ≥ 5~10 × 控制带宽 4倍过采样 ≈ +1位有效位 ENOB < 标称位数

综上,模拟传感器接口设计是一条从物理层到算法层的完整链路。信号调理决定信号质量,抗混叠滤波决定噪声折叠边界,ADC选型决定精度上限,采样率与分辨率决定动态与静态的平衡,抗干扰设计则贯穿始终。只有把每一级都放在系统噪声和带宽约束下统一核算,才能让飞控在振动、温变和电磁干扰中保持稳定可靠。