第一章 模拟前端(AFE)设计:从光信号到数字心跳
各位同学,今天咱们聊聊心率监测芯片里最关键的环节——模拟前端。说白了,AFE就是芯片的「耳朵」,它得把极其微弱的光电容积脉搏波信号,从各种噪声里捞出来。
我做了十几年穿戴芯片,最深的体会就是:数字部分再牛,AFE设计不好,心率数据就是一堆垃圾。你想想看,传感器采集到的信号才几个微安,环境光干扰却可能大几百倍,这仗怎么打?
1.1 跨阻放大器(TIA)原理
先说说TIA。它的任务很简单:把光电二极管的电流信号,转成电压信号。但简单的事往往最难做。
我记得第一次流片回来,TIA输出全是振荡。查了三天,发现是反馈电容没选对。嗯,这里有个关键点——TIA的稳定性取决于反馈电容Cf和运放GBW的匹配。
核心公式:
Vout = -I_in × Rf
f_3dB = 1 / (2π × Rf × Cf)
Rf决定增益,Cf决定带宽。两者要一起调。
实际项目中,我习惯把Rf设在1MΩ到10MΩ之间。为什么?因为光电二极管的暗电流通常在nA级别,信号电流也就几十nA到几μA。Rf太小,输出信号幅度不够;Rf太大,噪声也跟着放大。
个人经验:TIA的输入寄生电容一定要控制好。我曾经因为PCB布局不当,多加了2pF寄生电容,结果带宽从100kHz掉到30kHz,脉搏波的上升沿全被削平了。
1.2 环境光消除技术
环境光干扰,是心率监测的头号敌人。太阳光、室内灯光、甚至手机屏幕的光,都会让光电二极管饱和。
怎么做?我常用的方法有两种:
- 直流消除环路:通过反馈回路,把环境光产生的直流分量抵消掉。我习惯用积分器+比较器的结构,响应时间控制在10ms以内。
- 调制解调法:让LED以特定频率闪烁,然后只解调这个频率的信号。环境光没被调制,自然就被滤掉了。
你可能会问:「哪种方法更好?」说实话,没有绝对的好坏。我在低功耗手环项目里用过直流消除,在医疗级手表里用过调制解调。关键看你的功耗预算和精度要求。
避坑指南:我曾经在强光环境下测试,发现直流消除环路响应太慢,导致信号饱和了整整200ms。后来把积分电容从10nF改到1nF,问题才解决。记住:响应时间和噪声抑制是一对矛盾,得根据场景权衡。
1.3 可编程增益放大器(PGA)
信号经过TIA后,幅度还是太小。PGA的作用就是进一步放大,让信号进入ADC的最佳输入范围。
我个人习惯把PGA的增益范围设在1到128倍,步进为2的幂次。为什么?因为不同人的皮肤厚度、血流量差异很大。运动员的脉搏信号可能比普通人强3倍,而老年人可能弱5倍。
| 增益设置 | 适用场景 | 典型信号幅度 |
|---|---|---|
| 1x - 8x | 强信号(运动后、年轻人) | 100-500mV |
| 16x - 32x | 正常信号(静息状态) | 20-100mV |
| 64x - 128x | 弱信号(老年人、深肤色) | 5-20mV |
这里有个细节:PGA的带宽要跟着增益变。增益越大,带宽越小。我一般把PGA的GBW设计成TIA的3-5倍,确保不会成为系统的瓶颈。
1.4 低通滤波器截止频率选择
心率信号的频率范围是多少?正常人心率在0.5Hz到4Hz之间,运动时可能到5Hz。但噪声呢?工频干扰50/60Hz,肌电噪声100Hz以上,运动伪迹0.1-10Hz。
所以低通滤波器的截止频率,我通常选在10Hz到40Hz之间。为什么是这个范围?
- 10Hz:适合静息状态,噪声抑制最好,但运动时信号会失真
- 20Hz:折中方案,我大部分项目都用这个
- 40Hz:适合运动场景,但会引入更多噪声
我的设计原则:宁可让滤波器阶数高一点,也别把截止频率设得太高。因为一旦高频噪声进入ADC,后面数字滤波也救不回来。我习惯用二阶巴特沃斯,通带平坦,相位失真小。
1.5 ADC采样率选择
ADC采样率,典型范围是25Hz到100Hz。为什么是这个范围?
根据奈奎斯特定理,采样率至少是信号最高频率的两倍。心率信号最高5Hz,理论上10Hz就够了。但实际中,我从不低于25Hz。为什么?
- 波形保真度:心率算法需要识别脉搏波的上升沿、下降沿、重搏波等特征。采样率太低,这些特征全丢了。
- 抗混叠:虽然前面有低通滤波器,但ADC采样本身会产生混叠。采样率高一点,对抗混叠滤波器的要求就低一点。
- 过采样增益:每提高4倍采样率,可以多获得1位有效分辨率。这在低功耗场景下很实用。
| 采样率 | 功耗 | 信号质量 | 推荐场景 |
|---|---|---|---|
| 25 Hz | 最低 | 一般 | 超低功耗手环 |
| 50 Hz | 中等 | 良好 | 大多数消费级手表 |
| 100 Hz | 较高 | 优秀 | 医疗级设备 |
我个人的习惯是:如果功耗允许,尽量用100Hz。因为后期做数字滤波、特征提取时,数据点多一点,算法效果会好很多。但如果你做的是纽扣电池供电的戒指,那25Hz可能是唯一选择。
一个小技巧:ADC的参考电压要选好。我一般用1.8V或2.5V,配合PGA的增益,让信号幅度占满ADC量程的60%-80%。这样既不会削波,又能充分利用动态范围。
知识体系总览
下面这张图,是我画的本章节核心逻辑。从光电二极管到数字信号,每一步都在和噪声、功耗、精度做斗争。
这张图把整个信号链串起来了。从光电二极管的微弱电流,到ADC输出的数字信号,每一步都有讲究。我当年做第一个心率芯片时,就是照着这个思路一步步调出来的。
好了,这一章的内容就到这里。记住:AFE设计没有银弹,每个参数都要根据你的应用场景去权衡。下一章我们会深入讨论数字滤波器的设计,到时候见。