第三节:纹波信号采集电路设计

好,咱们进入正题。纹波信号采集,说白了就是把电机转动时产生的微小电流波动给“抓”出来,然后送给ADC去读。这个环节要是没做好,后面算法再牛也白搭。我当年第一次做这个方案时,就吃过采样电阻选型的亏,今天咱们一个一个讲透。

3.1 电流采样电阻选型

采样电阻,就是串联在电机回路里,把电流信号转成电压信号的那个小东西。选它,主要看三个参数:阻值、功率、温漂。

阻值怎么定?

阻值太小,信号太弱,ADC都读不到。阻值太大,发热严重,还影响电机正常工作。我一般按这个经验公式来:

R_sense = V_sense_max / I_motor_max

其中V_sense_max通常取50mV~100mV。为什么是这个范围?因为大多数ADC的输入范围是0~3.3V或0~5V,而纹波信号本身只有几毫伏到几十毫伏,我们需要留够放大余量。

举个例子:车窗电机堵转电流约20A,我取V_sense_max=75mV,那么:

R_sense = 0.075V / 20A = 3.75mΩ

嗯,实际选3.9mΩ或4.7mΩ的贴片电阻就行,标准阻值好买。

功率要留余量

功率计算很简单:P = I² × R。还是上面那个例子,20A堵转时:

P = 20² × 0.0039 = 1.56W

但我建议选3W以上的电阻。为什么?因为堵转不是常态,但万一出现堵转,电阻不能烧。我见过有人用2W电阻,结果客户做耐久测试时直接冒烟了……

温漂,容易被忽略的坑

采样电阻的温漂直接影响测量精度。普通厚膜电阻温漂在±200ppm/℃左右,而精密合金电阻能做到±50ppm/℃甚至更低。车窗纹波检测对绝对精度要求不高,但纹波信号的相对变化很重要。我个人习惯用±75ppm/℃的合金电阻,性价比不错。

关键参数总结:

  • 阻值:3.9mΩ ~ 10mΩ,根据电机峰值电流调整
  • 功率:按堵转电流的1.5~2倍选型
  • 温漂:≤ ±100ppm/℃
  • 封装:2512或更大,利于散热

3.2 差分放大器设计

采样电阻两端的电压非常小,而且电机回路里共模电压很高(12V甚至更高)。直接用单端放大器?不行,共模干扰会淹掉信号。必须用差分放大器。

为什么用差分?

你想想看,电机正负极之间电压是12V,而采样电阻上的压降只有几十毫伏。如果不用差分,这12V共模电压直接进放大器,输出早就饱和了。差分放大器只放大差模信号,对共模信号有抑制能力。

电路结构

我常用的方案是:仪表放大器 + 后级运放。比如TI的INA240或ADI的AD8418,这些芯片内部已经集成了匹配电阻,CMRR(共模抑制比)能做到80dB以上。

如果成本敏感,也可以用分立元件搭:

运放:LMV358或MCP6002(轨到轨,单电源)
电阻:四个精密电阻,1%精度,阻值匹配是关键

这里有个坑:分立方案的CMRR完全取决于四个电阻的匹配度。我曾经用0.1%精度的电阻搭过,CMRR能做到60dB左右,够用。但如果你用1%的普通电阻,CMRR可能只有40dB,纹波信号会被共模噪声淹没。

我的建议: 量产项目直接用集成仪表放大器,省心。样机阶段可以用分立方案,但电阻必须配对。

增益怎么设?

增益取决于ADC的输入范围和采样电阻上的最大信号。假设ADC输入范围0~3.3V,采样电阻最大压降75mV,那么:

Gain = 3.3V / 0.075V ≈ 44倍

实际我取40倍,留一点余量。INA240的增益可以通过引脚配置,固定为20、50、100等档位,选50倍那档也行。

3.3 低通滤波器设计

差分放大器输出后,信号里还混着高频噪声——电机换向噪声、PWM开关噪声、环境辐射噪声。这些噪声频率通常在几十kHz到几MHz,而纹波信号的频率只有几十Hz到几百Hz(取决于电机转速)。所以,一个低通滤波器就能把它们分开。

截止频率怎么定?

车窗电机正常转速下,纹波频率大约在50Hz~200Hz。我一般把截止频率设在500Hz左右,这样既能保留纹波信号,又能滤掉高频噪声。

用一阶RC滤波器就够了:

f_c = 1 / (2π × R × C)

取R=10kΩ,C=33nF:

f_c = 1 / (2π × 10k × 33n) ≈ 482Hz

嗯,刚好。如果想更干净一点,可以用二阶有源滤波器,但车窗应用一阶已经够用。

注意: 滤波器会引入相位延迟。如果后续算法需要实时性很高(比如防夹响应时间<100ms),滤波器阶数不能太高,否则相位滞后会导致响应变慢。我一般控制在500Hz截止频率、一阶,延迟大约0.3ms,完全可以接受。

3.4 ADC接口保护电路

ADC的输入引脚很娇贵。过压、静电、浪涌,随便来一下就可能烧掉。保护电路不是可有可无,是必须的。

保护什么?

  • 过压保护:电机反电动势或电源瞬态尖峰可能超过ADC的绝对最大额定值
  • 静电放电(ESD):人手触摸接口时可能产生
  • 过流保护:防止ADC输入引脚吸入过大电流

典型保护电路

我常用的结构是:串联电阻 + 钳位二极管 + 小电容。

信号输入 → 100Ω电阻 → 双向TVS管(5V) → 10nF电容 → ADC引脚

解释一下:

  • 100Ω电阻:限流,防止过流损坏ADC。同时和后面的电容组成一个低通滤波,一举两得。
  • 双向TVS管:钳位电压到5V以下,保护ADC输入。选5V的TVS,因为大多数ADC的输入范围是0~3.3V或0~5V。
  • 10nF电容:滤除高频噪声,同时吸收ESD能量。

避坑指南: 我曾经在某个项目里偷懒,没加TVS管,只用了电阻和电容。结果有一次电机堵转时产生了反向尖峰电压,直接把ADC烧了。从那以后,TVS管成了我的标配,再也没省过。

ADC选型建议

车窗纹波检测对ADC的要求不高:

  • 分辨率:10位或12位就够。纹波信号变化幅度大,不需要高精度。
  • 采样率:1kHz以上。纹波频率最高200Hz,根据奈奎斯特定理,采样率至少400Hz。我习惯用1kHz,留余量。
  • 输入范围:0~3.3V或0~5V,与放大器输出匹配。

常用的ADC有:STM32内置的12位ADC(够用)、外部ADC如ADS1115(16位,I2C接口)。我个人倾向用MCU内置ADC,省成本、省PCB面积。

小结

这一节的内容,说白了就是四个字:抓、放、滤、保

  • :用采样电阻把电流信号转成电压信号
  • :用差分放大器把微弱信号放大
  • :用低通滤波器去掉高频噪声
  • :用保护电路防止ADC损坏

这四个环节环环相扣,哪个出问题,纹波信号都白搭。下一节咱们讲怎么用软件算法从这些信号里提取出车窗位置信息,那才是真正见功夫的地方。