跳转至

传感器与模拟前端

传感器接口的任务,是把外部世界的电压、电流和脉冲转换为 MCU 可以安全、准确采样的信号,同时处理噪声、过压、断线和长线干扰。


一、先识别传感器输出类型

拿到传感器先回答:

项目 需要查的数据
输出形式 电压、电流、电阻、开漏、推挽、差分或数字总线
输出范围 正常最小/最大、共模、可能负压和过压
输出阻抗 能否直接驱动 ADC 采样电容
带宽 机械量变化速度、载波/PWM、最大脉冲频率
供电 电压、启动电流、噪声要求、上电时间
精度 零点、灵敏度、温漂、非线性、校准要求
连接 线长、屏蔽、地电位差、是否热插拔
故障 断线、短路、反接时希望 ADC/软件看到什么

不同输出对应的典型前端:

传感器输出 常用前端
0~3.3 V 低阻电压 RC + 限流/钳位,可直接 ADC
0~5 V、0~10 V 分压 + RC + 过压保护,必要时运放缓冲
双极性 ±10 V 衰减 + 偏置 + 运放/保护
4~20 mA 精密采样电阻 + RC/保护,必要时隔离
电阻式传感器 分压或恒流激励 + ADC
电桥/毫伏级差分 仪表放大器或专用 ADC
开漏/集电极开路 外部上拉 + 输入保护
差分编码器 差分线接收器 + 终端
I²C/SPI 传感器 总线电路 + 电源去耦/电平兼容

二、ADC 之前要解决四件事

  1. 量程:最大输入不能超过 ADC 可用范围;
  2. 驱动:源阻抗和采样时间要让采样电容充到足够精度;
  3. 带宽:只保留有用频段,减少混叠和开关噪声;
  4. 保护:异常电压的电流不进入 MCU 内部保护结构。

2.1 先确定真正的 ADC 上限

ADC 满量程通常与 \(V_{REF}\) 或 VDDA 有关。不能默认永远是精确 3.300 V:

  • 参考电压本身有初始误差、温漂和负载要求;
  • 3.3 V 电源会随负载和温度变化;
  • ADC 线性范围可能不完全到电源轨;
  • 输入保护钳位的允许注入电流有限;
  • 多通道切换时前一通道会影响后一通道的充电。

希望获得绝对精度时,可使用外部基准、测量内部基准通道,或做系统校准。

2.2 RC 滤波

一阶 RC 截止频率:

\[f_c=\frac{1}{2\pi RC}\]

设计步骤:

  1. 先确定被测量的有效最高频率;
  2. 根据 ADC 采样率确定需要抑制的频段和混叠风险;
  3. 选择不会让源阻抗过高的 \(R\)
  4. \(C\) 得到目标截止频率;
  5. 检查传感器能否稳定驱动该电容;
  6. 在板上用阶跃和频率响应验证。

RC 的电阻还能限制钳位电流,电容则为 ADC 采样保持电容提供局部电荷,但二者数值都不能无脑固定为“1 kΩ + 100 nF”。


三、电阻分压测高电压

3.1 基本计算

\[V_{ADC}=V_{IN}\frac{R_2}{R_1+R_2}\]

测 6S 锂电池时按满电 25.2 V 设计。若希望 ADC 最坏不超过约 3.0 V,可先取:

R1 = 100 kΩ(上臂)
R2 = 13 kΩ(下臂)

则:

\[V_{ADC,max}=25.2\times\frac{13}{100+13}\approx2.90\,V\]

这给电池、阻值和 ADC 参考误差留出了一定空间,但仍需做最坏情况计算。

3.2 不能只算分压比

还要检查:

  • 分压电流 \(I=V_{IN}/(R_1+R_2)\) 与待机功耗;
  • \(R_1\parallel R_2\) 是否满足 ADC 最大源阻抗;
  • 电阻精度、温漂和电压系数;
  • 上臂电阻耐压,必要时多个电阻串联分担;
  • ADC 点的 RC 是否让响应过慢;
  • 输入过压/负压时外部钳位和串阻能否承受;
  • MCU 掉电但电池仍在时,是否通过 ADC 脚反灌 3.3 V 域。

高阻分压省电但源阻抗高。常见处理是 ADC 点并联电容、加长 ADC 采样时间;精度或速度更高时加低偏置电流运放缓冲。

3.3 可关断分压

长期待机设备可用 MOS 控制分压下端或上端,只在采样前开启。但要注意:

  • 关断时 ADC 输入不能悬到未知电位;
  • MOS 漏电会影响高阻分压精度;
  • 上端开关的栅源电压需要正确驱动;
  • 开启后等待 RC 和运放稳定再采样;
  • 不能产生通过 GPIO 保护二极管的反灌路径。

四、电流检测

4.1 三种常见方法

方法 优点 局限 典型用途
低边分流 共模低、放大容易 负载地被抬高,可能污染参考地 单个低边负载、成本敏感
高边分流 负载地完整,可测总线 放大器需承受高共模 电池总电流、支路电流
霍尔/磁隔离传感器 隔离、压降低、可测大电流 成本、零点漂移、带宽限制 大电流、双向或隔离测量

4.2 分流电阻

\[V_{shunt}=IR_{shunt}\]
\[P_{shunt}=I^2R_{shunt}\]

最大 10 A、\(R_{shunt}=5\,m\Omega\)

满量程压降 = 50 mV
满量程功耗 = 0.5 W

实际应选择更高功率等级并考虑环境温度、脉冲过载和温漂。功率不只是“不会烧”,自热也会改变阻值和测量精度。

4.3 Kelvin 连接

大电流从分流电阻的功率焊盘通过,两个采样线从电阻端头的内侧独立引出到放大器:

功率入口 ═══[ RSHUNT ]═══ 功率出口
                │  │
                └──┴── 独立细采样线 → 放大器

若从大电流铜皮任意位置取样,铜箔和焊点压降会被当作被测电流。

4.4 电流检测放大器

核对:

  • 共模范围覆盖母线最低/最高及可能负压;
  • 增益后最大输出不撞 ADC 上限;
  • 输出摆幅和参考端允许测单向还是双向电流;
  • 失调与漂移是否能分辨小电流;
  • PWM 电机应用的共模瞬变抑制与带宽;
  • 芯片掉电而母线带电时是否允许;
  • 输入滤波阻值是否破坏芯片要求的匹配。

例如希望 50 mV 满量程映射到 2.5 V,需要约 50 倍增益。若器件增益固定,应围绕量程、零点和 ADC 裕量反推分流阻值。


五、运放、仪表放大器与比较器

5.1 什么时候用什么

需求 电路
高阻传感器驱动 ADC 运放电压跟随器
放大以地为参考的小信号 同相/反相运放
放大电桥毫伏级差分 仪表放大器或差分 ADC
判断是否超过阈值 比较器 + 迟滞
快速过流后硬件关断 高速比较器直接接驱动器 EN/Break

5.2 运放选型检查

  • 供电范围是否包含 3.3 V/5 V;
  • 输入共模范围覆盖信号全范围;
  • 输出摆幅在目标负载下能到所需上下限;
  • 是否真正需要轨到轨输入/输出;
  • 增益带宽积和压摆率满足频率及幅度;
  • 输入失调、偏置电流、噪声和温漂符合精度;
  • 驱动 ADC 电容或长线时是否稳定;
  • 输入存在而运放掉电时是否安全。

“常见运放”不等于适合。某些老运放在 3.3 V 下无法处理接近正电源轨的输入,也无法把输出摆到 ADC 满量程附近。

5.3 比较器迟滞

没有迟滞时,输入在门限附近叠加噪声会让输出反复翻转。通过正反馈设置不同的上升/下降门限:

输入上升超过 VTH+ → 输出翻转
输入下降低于 VTH- → 输出恢复
迟滞宽度 = VTH+ - VTH-

迟滞要大于噪声峰峰值,又不能吞掉需要检测的真实变化。开漏比较器输出还需要上拉,且上拉电压必须与后级兼容。


六、温度、电阻和电流型传感器

6.1 NTC 热敏电阻

常见电路是 NTC 与精密电阻分压:

3V3 ── R_FIXED ──┬── ADC
                NTC
                GND
  • 固定电阻选择接近目标温区中间的 NTC 阻值,可提高该区灵敏度;
  • 查 NTC 的 \(R_{25}\)、B 值/Steinhart-Hart 系数和容差;
  • 分压电流会让 NTC 自热,精密测温要控制激励;
  • 软件使用查表或模型换算,不把 ADC 值线性映射为温度;
  • 设计开路/短路时 ADC 会落在哪个端点,便于诊断。

6.2 4~20 mA

用采样电阻转换为电压:

\[V=IR\]

若用 150 Ω:

4 mA  → 0.6 V
20 mA → 3.0 V

适合 3.3 V ADC 且保留一定裕量。电阻功耗在 20 mA 时为 60 mW,但仍要考虑过流、精度和温漂。长线工业环境还需浪涌保护、共模/地电位分析,必要时隔离。

断线通常表现为接近 0 mA,这正是 4 mA“活零点”的优势;软件应把低于合理下限识别为故障,而不是有效零量程。

6.3 0~10 V

采用精密分压 + RC + 外部过压钳位。不要把 10 V 直接接运放或 ADC 后再希望内部 ESD 二极管保护。若输入可能断线、负压或错接 24 V,所有这些都要进入最坏情况计算。


七、编码器、霍尔与 IMU

7.1 增量编码器频率

\[f_{edge}=\frac{RPM}{60}\times PPR\times N_{edge}\]

\(N_{edge}\) 取决于单边沿、双边沿或四倍频。以 3000 RPM、1024 PPR、A/B 四倍频为例:

\[f_{edge}=\frac{3000}{60}\times1024\times4=204.8\,kedge/s\]

MCU 定时器、输入缓冲、隔离器和 RC 滤波带宽都应高于此值并留裕量。

7.2 按输出类型接入

输出 接法
3.3 V 推挽、板内短线 串阻/施密特输入,可直接定时器
5 V 推挽 5 V 容忍输入或电平转换
NPN 开漏 上拉到 MCU 可承受电压 + 保护
RS422 差分 A+/A- 差分接收器 + 合适终端 + 双绞线
正余弦模拟编码器 专用模拟前端/ADC,关注幅相与校准

长线高速编码器优先差分。终端放在接收端,阻值匹配线缆;连接器处做 ESD,A/B/Z 每对保持成对布线。

7.3 IMU

  • 供电可使用低噪声支路或磁珠隔离,并就近去耦;
  • 远离电感、功率 MOS、大电流连接器和高磁场器件;
  • 明确芯片坐标轴与机器人坐标,PCB 丝印标出 X/Y/Z;
  • 放置位置兼顾刚性、振动和整机旋转中心;
  • SPI 常比长/繁忙 I²C 更适合高采样率;
  • 数据异常可能来自机械振动和电源噪声,不只来自软件滤波。

八、模拟布局和调试

8.1 布局原则

  • 模拟前端靠近传感器连接器或 ADC,缩短高阻节点;
  • ADC 输入远离 Buck 的 SW 节点、晶振和电机 PWM;
  • 保持连续参考地,利用布局让大电流回流绕开模拟区;
  • VREF 去耦和地连接按 MCU/ADC 手册;
  • 分流电阻和采样放大器靠近,Kelvin 线成对、对称;
  • 外部保护靠近连接器,滤波靠近被保护/采样器件。

8.2 调试顺序

  1. 不接传感器,用已知电压源验证前端增益和量程;
  2. 扫描输入,检查零点、满量程、线性和饱和行为;
  3. 用示波器同时看原始输入与 ADC 点,确认 RC 和噪声;
  4. 改变 3.3 V、温度和负载,观察参考与偏移;
  5. 接入真实线缆,在电机启动/PWM 时复测;
  6. 主动制造断线、短路和越界输入,确认硬件安全且软件能诊断;
  7. 把校准系数、单位和有效范围写入固件配置。

8.3 Checklist

  • 已识别输出类型、量程、阻抗、带宽和故障状态;
  • ADC 最坏输入没有超过允许范围;
  • 分压考虑阻值误差、待机功耗、耐压和反灌;
  • ADC 源阻抗、采样时间和 RC 经过核算;
  • 分流电阻功耗、温漂和 Kelvin 连接正确;
  • 运放共模、输出摆幅、带宽和掉电输入均满足;
  • 比较器门限具有足够且不过度的迟滞;
  • 编码器最高边沿频率和输入类型匹配;
  • 外部接口保护靠近连接器,模拟区远离开关节点;
  • 已计划用已知输入和故障注入做校准与验证。

数字传感器和节点互联需要继续处理物理层,见通信接口电路