3、硬件电路设计要点:模拟前端(AFE)电路设计、跨阻放大器(TIA)设计、环境光抑制电路、滤波与增益级设计

好,咱们直接进入正题。血氧仪的硬件核心,说白了就是模拟前端(AFE)。这块要是没做好,后面算法再牛也白搭。我这些年调试过的板子,十有八九的问题都出在这里。

3.1 模拟前端(AFE)电路设计

AFE负责把光电二极管(PD)产生的微弱电流,变成我们ADC能处理的电压信号。这个信号有多弱?我举个例子:红光通道的电流通常在几十纳安到几微安之间,红外光稍强一点,但也强不到哪去。

设计AFE时,我个人习惯先关注三个核心指标:

  • 输入偏置电流:必须远小于信号电流,否则会被淹没。我一般选偏置电流在皮安级别的运放。
  • 噪声密度:低频1/f噪声是关键。你想想看,血氧信号主要能量在0.5Hz到5Hz之间,运放的低频噪声直接决定了信噪比。
  • 带宽:不需要太高,但也不能太低。我通常设计在10kHz左右,既能滤除高频干扰,又不会影响信号完整性。
我的小技巧:AFE的布局要远离数字电路和开关电源。我曾经有一版PCB,AFE离DC-DC转换器只有5mm,结果噪声直接飙到50mVpp。后来拉开到2cm以上,噪声降到了5mVpp以下。

3.2 跨阻放大器(TIA)设计

TIA是AFE的核心。它的任务就是把PD的电流信号转换成电压。公式很简单:Vout = Ipd × Rf。但实际设计时,坑不少。

反馈电阻Rf的选择:Rf决定了增益。假设PD最大输出电流是10μA,ADC满量程是3.3V,那Rf就是330kΩ。但Rf越大,噪声也越大。我一般用100kΩ到1MΩ之间的值,具体看信号强度。

反馈电容Cf的补偿:这个电容很多人会忽略。PD有结电容,运放有输入电容,两者加起来会在TIA的反馈环路里引入一个极点,导致振荡。Cf的作用就是补偿这个极点。

计算公式:

Cf = 1 / (2π × Rf × f_p)
其中 f_p 是期望的-3dB带宽

举个例子:Rf=330kΩ,希望带宽10kHz,那Cf大概就是48pF。实际中我常用47pF或56pF的贴片电容。

注意:Cf不能太大,否则带宽会变窄,影响信号的上升时间。我曾经为了省事直接用了100pF,结果血氧波形变得很“肉”,脉宽都变了。

3.3 环境光抑制电路

环境光干扰是血氧仪的头号敌人。太阳光、日光灯、LED灯,都会在PD上产生直流偏置电流,甚至交流分量(比如100Hz的日光灯闪烁)。

我常用的方法有两种:

  1. 直流伺服环路:在TIA后面加一个积分器,检测直流偏置,然后反馈到TIA的输入端,把直流分量抵消掉。这个方法效果好,但电路复杂一点。
  2. 交流耦合:在TIA输出端加一个高通滤波器,截止频率设在0.5Hz左右。这样直流分量被滤掉,只保留脉动信号。简单粗暴,但会丢失直流信息。

我个人更推荐第一种。为什么?因为直流分量里其实也包含血氧信息(比如组织吸收的基线),丢了可惜。而且交流耦合后,信号幅度会受脉动幅度影响,不利于后续的校准。

避坑指南:我曾经在一个户外使用的血氧仪项目里,只用了交流耦合。结果在强阳光下,PD饱和了,信号直接削顶。后来加了直流伺服,问题才解决。

3.4 滤波与增益级设计

经过TIA后,信号已经变成了电压,但还不够干净。我们需要进一步滤波和放大。

滤波设计

  • 低通滤波器:截止频率设在10-20Hz,滤除高频噪声。我用二阶巴特沃斯滤波器,衰减斜率够用,相位失真也小。
  • 带阻滤波器(可选):如果环境中有50Hz/60Hz工频干扰,可以加一个陷波器。但我一般不建议,因为陷波器会引入相位延迟,影响脉搏波形的形态。

增益级设计

TIA的输出电压可能只有几十毫伏,而ADC需要满量程输入。所以需要一级可编程增益放大器(PGA)。

我常用的增益范围是1到100倍,分4档或8档。具体怎么分?看信号动态范围。比如:

档位 增益 适用场景
1 1x 强信号(如手指较薄)
2 10x 正常信号
3 50x 弱信号(如手指较厚)
4 100x 极弱信号(如运动状态)

增益切换的时机很重要。我一般是在每个测量周期开始时,先快速采样几个点,估算信号幅度,然后自动选择增益档位。这样能保证信号始终在ADC的最佳输入范围内。

我的习惯:增益级后面一定要加一个电压跟随器,作为缓冲。否则ADC的采样电容会反冲回来,影响信号稳定性。这个细节很多人会忘。

嗯,硬件电路设计这块,说到底就是信噪比的博弈。每个环节都在跟噪声、干扰、带宽做斗争。你只要把AFE、TIA、环境光抑制、滤波增益这几块吃透了,血氧仪的硬件基础就算打牢了。