第2章:传感器选型与特性分析
好,咱们进入正题。传感器选型这事儿,说白了就是给血氧仪挑一颗「心脏」。选对了,后面算法调起来顺风顺水;选错了,嗯,你可能得花几倍的时间去填坑。我见过不少团队,硬件都打样了才发现传感器信噪比不够,最后只能推倒重来。
这一章,咱们就掰开揉碎聊聊:主流芯片怎么比?LED和光电二极管怎么搭?那些参数到底意味着什么?
2.1 主流血氧传感器芯片对比
目前市面上用得最多的,就是TI的AFE4400系列和Maxim的MAX30102。这两颗芯片我都用过,各有脾气。
| 参数 | AFE4400 | MAX30102 |
|---|---|---|
| 集成度 | 模拟前端,需外接LED驱动 | 高度集成,含LED、PD、驱动 |
| 通道数 | 支持多通道(可接多个PD) | 单通道 |
| 采样率 | 最高可达1kHz | 典型100Hz,最高3200Hz |
| 暗电流补偿 | 内置可编程DAC补偿 | 环境光消除电路 |
| 功耗 | 较高(约5mW) | 极低(待机0.7μA) |
| 封装 | QFN,需要外围电路 | OLGA,几乎不需要外围 |
| 典型应用 | 医疗级、多波长设备 | 消费级手环、指夹式 |
我个人习惯:做医疗认证的产品,我会选AFE4400。它的动态范围和可配置性更强。但如果是快速出原型或者做手环,MAX30102真香——焊上去就能跑,省心。
2.2 LED与光电二极管的选型要点
LED和光电二极管(PD)是传感器的「眼睛」和「耳朵」。选不好,信号质量直接拉胯。
2.2.1 LED选型
血氧仪需要两个波长:红光(660nm左右)和红外光(940nm左右)。为什么是这两个波长?因为氧合血红蛋白和脱氧血红蛋白在这两个点的吸收差异最大。你想想看,如果波长选偏了,PPG信号的AC分量就弱,算出来的SpO₂误差会很大。
- 波长精度:±10nm以内。我见过一些廉价LED,标称660nm,实测到了680nm,结果校准系数完全不对。
- 光功率:别一味追求亮。太亮会穿透组织,产生「光短路」效应。一般驱动电流控制在10-50mA。
- 半波宽:越窄越好。宽了等于在测一堆杂波长,信噪比会下降。
2.2.2 光电二极管选型
PD的核心任务是把光信号转成电流。这里有几个关键参数:
- 响应度:单位光功率产生的电流。对于红光,硅PD的响应度大约0.5A/W;红外光稍低。
- 暗电流:没光照时也有电流。这个值越小越好,尤其是做低灌注测量时。我曾经用过一个暗电流50nA的PD,在弱信号下噪声直接把PPG波形淹没了。
- 结电容:影响响应速度。结电容大了,高频信号会衰减。血氧仪的PPG信号频率也就几Hz,但如果你用PWM调制,结电容会影响调制信号的上升沿。
2.3 传感器关键参数解读
很多同学拿到数据手册,看到一堆参数就头大。其实真正需要关注的,就三个:信噪比、暗电流、响应时间。
2.3.1 信噪比(SNR)
说白了就是信号和噪声的比值。血氧仪的PPG信号,AC分量只有DC分量的1%-5%。如果SNR不够,你根本提取不出脉搏波。
怎么算?通常用RMS噪声和信号幅度比。我一般要求SNR > 40dB,这样经过滤波后还能有清晰的波形。
// 一个简单的SNR估算方法
// 假设ADC采集到的PPG信号
float signal_rms = 0.0;
float noise_rms = 0.0;
for (int i = 0; i < N; i++) {
signal_rms += ppg_data[i] * ppg_data[i];
noise_rms += (ppg_data[i] - filtered_data[i]) * (ppg_data[i] - filtered_data[i]);
}
signal_rms = sqrt(signal_rms / N);
noise_rms = sqrt(noise_rms / N);
float snr_db = 20 * log10(signal_rms / noise_rms);
2.3.2 暗电流
暗电流是PD在无光照时的漏电流。它随温度升高呈指数增长——每升高10°C,暗电流大约翻一倍。这就是为什么血氧仪在冬天和夏天测出来的基线不一样。
怎么处理?硬件上可以用差分结构抵消,软件上可以做基线漂移校正。我习惯在每次测量前先测一段暗电流值,然后做减法。
2.3.3 响应时间
响应时间决定了传感器能不能跟上脉搏波的变化。对于心率60bpm,脉搏波的主频也就1Hz。但如果你要做心率变异性(HRV)分析,需要捕捉高频成分,响应时间就得在毫秒级。
PD的响应时间主要由结电容和负载电阻决定。τ = R × C。负载电阻越大,输出信号幅度越大,但响应变慢。这是个trade-off。
2.4 选型总结
嗯,说了这么多,最后给个总结性的建议:
- 消费级产品:直接上MAX30102,省时省力。注意做好环境光屏蔽。
- 医疗级产品:用AFE4400 + 独立PD和LED,灵活性和性能都更好。
- LED选型:波长要准,光功率适中,半波宽窄。
- PD选型:暗电流优先,其次是响应度和结电容。
- 参数验证:拿到样片后,先搭个简单电路测SNR和暗电流。别光看数据手册,实际表现往往有差异。
下一章,咱们聊聊硬件电路设计——怎么把传感器信号调理得干干净净。到时候我会分享一个我踩过的坑,关于运放选型的,保证让你少走弯路。