有一个传感器叫 IEPE,估计大家经常看见,但是好像特别懂的又不多,我最早是看 TI 的一个设计了解的:

就是这个

比较简单
从输入到输出的数据流为:
IEPE 传感器 → 高通滤波/分压 → OPA2320 缓冲放大 → THS4551 全差分放大器 → ADS127L11 Δ-Σ ADC → SPI 输出
高通滤波与分压
输入为 ±10 V,经 10:1 分压降为 ±1 V;以 2.5 V 共模偏置后成为 2.5 V ± 1 V;缓冲放大后变为 2.5 V ± 2 V;THS4551 输出差分信号 ±4 V(满量程匹配 ADC ±4.096 V)。
THS4551 全差分放大器
提供单端→差分转换;同时实现 20 kHz 低通滤波,抑制高频噪声;增益 = 2。
ADS127L11 ADC
24 bit Δ-Σ 架构;宽带滤波模式下最高 400 kSPS;支持菊花链/并行 SPI;具备 CRC 校验、内部缓冲、同步输入等。
时钟同步系统
使用 LMK1C1106 超低抖动 6 通道 buffer;保证 4 个 ADC 采样同步;通过 START/SYNC 同步逻辑锁相至皮秒级。
电源层次
数字电源:2.5 V ~ 3.3 V(推荐 2.5 V);
模拟电源:由 TPS7A49 LDO 生成 5 V;
激励源电压:由 TLV61046A 升压至 24 V → LDO 稳压至 23.8 V。
IEPE 激励电流源
由 OPA4187 + TLV431B 基准 + Rset 形成 3.5 mA 恒流;顺从范围约 22 V;具备断线(> 20 V)/短路(< 0.5 V)检测;延迟 1.5 ms。
参数 | 规格 |
|---|---|
通道数量 | 4 |
分辨率 | 24 位 |
带宽 | 0.6 Hz – 20 kHz |
输入范围 | ±10 V(交流耦合) |
数据速率 | 124 kSPS(菊花链) / 400 kSPS(并行) |
激励电流 | 3.5 mA |
激励电压 | ≥ 23 V |
SNR | > 100 dB |
输入阻抗 | > 250 kΩ |
功耗 | < 1 W |
工作温度 | –40 °C ~ 125 °C |
好,就这么多;文章不是说这个的,而是说传感器的。
集成电路型压电式传感器 IEPE是“Integrated Electronics Piezo-Electric”的缩写。这种带内置电子器件的压电传感器已成为工业应用领域的标准。半导体电路将压电传感器的高阻抗信号转换为更容易传输的低阻抗电压信号。借助IEPE,只需一根任意长度的标准电缆即可实现电源供给和信号传输,不会因电缆移动而产生测量误差。

传感器拓扑
其作用是:
将机械振动(加速度、速度、力等) → 转换为可测的电压信号。
而与传统纯压电晶体传感器不同,IEPE 内部集成了一个电路,使得:输出阻抗从几兆欧降低到几十欧;可通过单根同轴电缆传输信号(电源与信号共线);更抗干扰、更易接口。
IEPE 传感器本质上是一个 压电元件 + 内置 FET 放大器 组成的二端网络,如下:
┌──────────────┐
│ 压电晶体 │
└─────┬────────┘
│ 电荷信号
▼
内置放大器 (FET)
│
┌─────────┴──────────┐
│ 供电 + 信号输出端 │ ←—— 单线输出
└────────────────────┘
在外部,系统通过一根屏蔽电缆供电:
外层屏蔽为地;内芯导体 同时承担两种作用:提供恒定电流(通常 2–4 mA);传输交流信号(叠加在直流偏置上);传感器内部电路使其输出端保持约 +10 V DC 偏置电压,振动信号则以 ±几伏交流形式叠加其上。
外部电路(如 TIDA-010249 板)提供恒流源:
典型电流:2–4 mA(本设计为 3.5 mA) 激励电压:≥ 22 V(本设计提供 23.8 V)
这保证了传感器放大电路有足够的“顺从电压”(compliance)空间,即输出不会被限幅。
传感器内部固定输出偏置:
约 9 V~12 V DC
这就是所谓的“输出偏置电压 (Vbias)”,叠加的交流信号则代表振动量。
例如:
输出信号 = 10 V(直流偏置) + (±5 V AC 振动)
系统端必须用交流耦合电容去除直流分量,仅提取振动信号。

这里
参数 | 说明 | 典型值 |
|---|---|---|
灵敏度 | 每 1 g 加速度产生的输出电压 | 100 mV/g(常见) |
测量范围 | 不饱和的最大加速度范围 | ±10 g(→ ±5 V 输出) |
输出阻抗 | 传感器内部放大器输出阻抗 | 100 Ω–300 Ω |
激励电流 | 启动与供电所需电流 | 2–4 mA |
激励电压范围 | 电流源提供的电压能力 | ≥22 V |
噪声 | 传感器输出端 RMS 噪声 | 通常几十 μV |
频率响应 | 灵敏度在 ±3 dB 以内的带宽 | 0.5 Hz – 10 kHz / 20 kHz |
共振频率 | 机械结构共振点 | >30 kHz |

共振频率
其中
:灵敏度(mV/g)
:加速度(g)
例如:
灵敏度 = 100 mV/g,测量范围 = ±10 g→ 输出电压 = ±1 V(叠加在 +10 V 偏置上)
根据文档公式 (3):
如果偏置 10 V,最大加速度 10 g,灵敏度 100 mV/g:
为了安全裕量,系统设计电压通常提高到 22 V 以上。
在 TIDA-010249 中,IEPE 输出经以下信号链:
IEPE 输出 (~10 V DC + ±5 V AC)
│
│ 交流耦合电容 (C耦)
▼
电阻分压器 (10:1) — 将 ±10 V 降至 ±1 V
▼
同相缓冲 OPA2320(增益 2)
▼
全差分放大 THS4551(增益 2)
▼
ADC (ADS127L11) ±4.096 V 满量程
+24 V 电源
│
│
┌─────────────┐
│ 3.5 mA 恒流源│ ← TLV431B + OPA4187
└──────┬──────┘
│
│ (同轴电缆)
+-------┴-------------------+
| IEPE 传感器 |
| 内置放大器 + 偏置电路 |
+----------------------------+
│
输出 ≈ 10V ± AC
│
│ 交流耦合电容
▼
信号调理前端
在 TIDA-010249 中,IEPE 传感器部分是系统的 输入与电源边界:
电流源模块负责提供稳定的激励;耦合与调理电路将信号转换为 ADC 可接受的电平;故障检测电路(LM2903 比较器)实时监测输入是否开路或短路;软件周期性采样这些比较器输出以更新“传感器状态”。

大概样子就是这样(淘宝的图,非广告)

频率范围很广

冷却塔齿轮箱(使用广泛)

image-20251027094322558
传感器的频率测量范围是指传感器在规定的频率响应幅值误差内传感器所能响应的频率范围。截止频率与误差直接相关,所允许的误差 范围大则其频率范围也就宽。传感器的高频响应取决于传感器的机械特性(结构设计、制造、安装形式和安装质量),低频响应则由传感器 和后继仪器的综合电参数所决定。高频截止频率高的传感器必然是体积小,重量轻,用于低频测量的高灵敏度传感器相对来说则一定体积大 和重量重。

原理简图

怎么看都需要 h

可以看到虽然这些传感器的频响范围很宽,但是采集这边并没有全收下
带宽(–3 dB):0.1 Hz ~ 30 kHzτ=1.85 s ⇒ f_c ≈ 1/(2π·τ) ≈ 0.086 Hz,和“0.1 Hz 下限”一致;高频到 30 kHz,足够大多数状态监测/模态/机器振动(20 kHz 带宽以内)用。
输出要求 1 MΩ 负载若把输出接到 50 Ω 输入,会:① 严重衰减;② 下限频率被推高许多;③ 可能拉低恒流源稳定度——因此一定用 1 MΩ(或更高)输入阻抗的示波器/DAQ。
噪声 < 60 μV RMS对 100 mV/g 的传感器等效 < 0.6 mg_RMS;对 10 mV/g 的低灵敏度型号等效 < 6 mg_RMS。
放电时间常数 1.85 s低频或阶跃会呈现缓慢衰减(典型“AC 耦合漂移”);做准 DC / 极低频测量(<0.1 Hz)会被削弱。

大家可以看这个传感器
IEPE 三轴加速度计 (4525-B)
| | |
X Y Z
| | |
+-----+-----+
│
四针密封接头
│
┌──────────┴──────────┐
│ WB-1453 三轴IEPE电源 │
└──────────┬──────────┘
│
3×BNC 输出
│
数据采集系统
每一路都带独立激励恒流与交流耦合输出,输出信号为 mV/g,可直接进入差分 ADC(如 ADS127L11 + THS4551)。




(0.15915494309189535,
np.float64(2.2179179043082584),
np.float64(2.502283215402552),
np.float64(2.212134951473059))
把 IEPE(三轴里的单轴示例)到 ADC 的整段输出信号,包含:DC 偏置→AC 耦合→10:1 分压→THS4551(G=2)→ADC 差分端。
这里选用 4525-B-001(100 mV/g)、偏置≈12.5 V、本底噪声≈0.5 mg_RMS 等典型参数。
图1:IEPE 原始输出(含 +12.5 V 偏置):看到交流振动叠加在直流偏置上(真实探头就是这样输出)。【偏置典型 12.5 V;两线 IEPE 供电 18–30 V/2–20 mA】
图2:关键节点时域对比:AC 耦合后去掉直流;再经 10:1 分压;最后 THS4551 放大到差分端。
图3:ADC 输入全段波形:能看到我加入的 350 Hz 短时“突发”段。
图4:ADC 输入幅度谱(dBFS):主能量在 8 Hz、50 Hz、1.2 kHz、6 kHz 等设定分量;底噪对应到前端约 0.5 mg_RMS 的级别(取自 4525-B-001 典型值)。
仿真数据
传感器:,,噪声 (4525-B-001 典型)。
采样:200 kS/s、带宽目标 ≤20 kHz。
AC 耦合:(远低于 1 Hz,下端几乎不削)。
级联:AC-HPF → 10:1 分压 → THS4551 G=2(单端→差分)。
ADC 参考:按 ±4.096 V 估算 dBFS。
关键数值摘要(来自仿真输出)
AC-耦合高通截止
ADC 差分输入 RMS
ADC 差分输入 峰值
ADC 差分输入 直流漂移 (短段平均;AC 耦合后理论上为 0,窗口内因有限长滤波与突发段有微偏)
注:4525-B-001 的灵敏度 100 mV/g、量程 ±50 g、频响(±10%)1 Hz–10 kHz(Z 轴可拓展到 15 kHz)、噪声 0.5 mg_RMS、偏置典型 12.5 V,都来自该产品数据。
# Simulate IEPE (4525-B-001) accelerometer output and front-end chain
# Assumptions (typical):
# - Sensitivity S = 100 mV/g
# - Bias ~ 12.5 V
# - Noise floor ~ 0.5 mg_RMS
# - Useful flat response ~ 1 Hz – 10 kHz
#
# Signal chain modeled:
# IEPE sensor (bias + AC) → AC coupling (RC high-pass) → 10:1 divider → buffer → THS4551 (G=2) → ADC input (differential)
#
# Outputs:
# - Time-domain waveforms at key nodes
# - Magnitude spectra (dBFS relative to ADC full-scale assumed ±4.096 V diff)
import numpy as np
import matplotlib.pyplot as plt
# Sampling parameters
fs = 200_000 # 200 kS/s, enough for 0–20 kHz BW
T = 0.25 # 250 ms duration
t = np.arange(int(T*fs)) / fs
# Sensor & chain parameters
S = 0.100 # V/g (100 mV/g)
Vbias = 12.5 # V
noise_g_rms = 0.0005 # 0.5 mg RMS
# Synthetic acceleration: combination of tones + slow drift + burst
a_g = (0.3*np.sin(2*np.pi*50*t) +
0.1*np.sin(2*np.pi*1200*t) +
0.02*np.sin(2*np.pi*6000*t) +
0.07*np.sin(2*np.pi*8*t)) # g
# Add a short transient burst
burst = ((t>0.120) & (t<0.135)).astype(float) * 1.0 * np.sin(2*np.pi*350*t)
a_g = a_g + burst
# Add sensor noise (white)
rng = np.random.default_rng(42)
a_g = a_g + rng.normal(0, noise_g_rms, size=a_g.shape)
# IEPE raw output (with DC bias)
v_iepe = Vbias + S * a_g # V
# Analog AC coupling (single-pole HPF)
# Choose Cin=10 uF, Rin=100 kΩ => fc ≈ 0.159 Hz (within 1 Hz – 10 kHz flatness with negligible droop)
Cin = 10e-6
Rin = 100e3
fc_hp = 1/(2*np.pi*Rin*Cin)
# Discrete-time HPF via bilinear transform
# Analog H(s)= sRC/(1+sRC); bilinear s = 2*fs*(1 - z^-1)/(1 + z^-1)
K = 2*fs*Rin*Cin
b0 = K/(1+K)
b1 = -K/(1+K)
a1 = (1-K)/(1+K)
x = v_iepe
y_hpf = np.zeros_like(x)
x1 = 0.0
y1 = 0.0
for n in range(len(x)):
y = b0*x[n] + b1*x1 - a1*y1
y_hpf[n] = y
x1, y1 = x[n], y
# 10:1 divider
v_div = y_hpf / 10.0
# Buffer (unity) then THS4551 fully differential driver with gain = 2 (single-ended to differential magnitude ~2x)
G_ths = 2.0
v_adc_diff = G_ths * v_div # differential peak-to-peak modeled as 2x single-ended
# Assume ADC full-scale differential ±4.096 V => Vfs = 4.096 V
Vfs = 4.096
# dBFS magnitude helper
def dbfs(v):
# Use RMS referenced to full-scale sine RMS (Vfs/sqrt(2)). For spectrum bins, use |FFT| normalized to Vfs.
return 20*np.log10(np.maximum(np.abs(v)/(Vfs), 1e-20))
# Plot 1: Time-domain (IEPE raw with bias) - show a short window to see details
Nwin = int(0.02*fs) # 20 ms
start = int(0.10*fs)
end = start + Nwin
plt.figure(figsize=(8,4))
plt.plot(t[start:end]*1000, v_iepe[start:end])
plt.xlabel("时间 (ms)")
plt.ylabel("IEPE 原始输出电压 (V)")
plt.title("IEPE 原始输出(含偏置约 12.5 V) — 局部 20 ms 窗口")
plt.tight_layout()
plt.show()
# Plot 2: Time-domain overlay of key nodes (AC-coupled, divider, ADC input diff) same window
plt.figure(figsize=(8,4))
plt.plot(t[start:end]*1000, y_hpf[start:end], label="AC 耦合后 (HPF)")
plt.plot(t[start:end]*1000, v_div[start:end], label="10:1 分压后")
plt.plot(t[start:end]*1000, v_adc_diff[start:end], label="THS4551 (G=2) → ADC差分")
plt.xlabel("时间 (ms)")
plt.ylabel("电压 (V)")
plt.title("信号链各节点的瞬时波形(同一时窗)")
plt.legend()
plt.tight_layout()
plt.show()
# Plot 3: Full-length time trace at ADC input (to see burst)
plt.figure(figsize=(8,3.5))
plt.plot(t*1000, v_adc_diff)
plt.xlabel("时间 (ms)")
plt.ylabel("ADC 差分输入 (V)")
plt.title("ADC 输入差分波形(含 350 Hz 瞬时突发)")
plt.tight_layout()
plt.show()
# Plot 4: Spectrum at ADC input
# Windowing and FFT
from numpy.fft import rfft, rfftfreq
w = np.hanning(len(v_adc_diff))
V = rfft((v_adc_diff)*w)
freqs = rfftfreq(len(v_adc_diff), 1/fs)
# Amplitude spectrum normalized to Vfs
mag = np.abs(V)/ (np.sum(w)/2)
mag_dbfs = 20*np.log10(np.maximum(mag/Vfs, 1e-20))
plt.figure(figsize=(8,4))
plt.semilogx(freqs[1:], mag_dbfs[1:])
plt.xlim(10, 50_000)
plt.ylim(-160, 0)
plt.xlabel("频率 (Hz)")
plt.ylabel("幅度 (dBFS)")
plt.title("ADC 输入差分端的幅度谱")
plt.grid(True, which='both', linestyle='--', alpha=0.4)
plt.tight_layout()
plt.show()
# Print some quick numeric summaries
import numpy as np
rms_adc = np.sqrt(np.mean(v_adc_diff**2))
pk_adc = np.max(np.abs(v_adc_diff))
drift = np.mean(v_adc_diff)
fc_hp, rms_adc, pk_adc, drift