3、信号链架构:模拟前端(AFE)架构、数字处理链路、无线传输链路、系统功耗预算
好,我们进入第三章。这一章我打算把整个医疗贴片的信号链拆开来讲。你想想看,一个贴片戴在胸口,要测到微伏级的心电信号,还要无线发出去,电池就那么一小块——这中间的每一环都是挑战。
我个人习惯把信号链分成三段来看:模拟前端负责把生物信号抓出来,数字链路负责处理干净,无线链路负责送出去。最后,这三段加在一起,得算一笔功耗账。
3.1 模拟前端(AFE)架构
模拟前端是整个系统的入口。说白了,就是传感器之后、ADC之前的那部分电路。我做过好几个医疗贴片项目,每次最头疼的就是这里——信号太小,噪声太大。
典型的AFE架构包含以下几个关键模块:
- 仪表放大器(INA):第一级放大,提供高共模抑制比(CMRR)。我建议CMRR至少做到100dB以上,否则工频干扰会让你抓狂。
- 高通滤波器:通常放在第一级之后,用来滤除电极直流偏置。截止频率设在0.5Hz左右比较合适。
- 可编程增益放大器(PGA):根据信号幅度动态调整增益。嗯,这里要注意,增益步进不要太大,6dB一步就挺好。
- 低通滤波器:抗混叠用的。对于心电信号,截止频率设在100-150Hz就够了。
关键指标:
- 输入参考噪声:< 1μVrms(0.5-100Hz)
- CMRR:> 100dB
- 输入阻抗:> 10MΩ
- 增益范围:20-60dB
我曾经在一个项目中,AFE的输入阻抗做低了,结果电极接触不良时信号直接漂到天上去。后来我把输入阻抗提到了100MΩ,问题才解决。所以,输入阻抗这块千万别省。
3.2 数字处理链路
模拟信号进来之后,经过ADC变成数字域。数字处理链路的主要任务就是:去噪、提取特征、压缩数据。
我常用的数字处理流程是这样的:
- 数字滤波:先做一个50Hz/60Hz的陷波滤波器,把工频干掉。然后再做一个0.5-100Hz的带通滤波器。
- 基线漂移校正:用中值滤波或者高通滤波把基线拉平。我试过很多方法,最后还是觉得中值滤波最稳。
- QRS检测:如果要做心率分析,这里需要加一个QRS波群检测算法。Pan-Tompkins算法虽然老,但胜在稳定。
- 数据压缩:无线传输带宽有限,得把数据压一压。我推荐用LZSS或者简单的差分编码,压缩比能做到3:1左右。
我的经验:数字滤波器的阶数不要太高。我曾经为了追求滤波效果,用了8阶的IIR滤波器,结果相位失真搞得QRS波都变形了。后来换成4阶,效果反而更好。
ADC的选型也很关键。对于心电信号,12位精度基本够用,采样率设在250-500Hz。如果你要做起搏器检测,那得提到1000Hz以上。
3.3 无线传输链路
信号处理完了,怎么送出去?医疗贴片常用的无线方案有几种:
| 方案 | 功耗 | 速率 | 距离 | 适用场景 |
|---|---|---|---|---|
| BLE 4.2/5.0 | ~5mA(峰值) | 1Mbps | 10m | 消费级医疗贴片 |
| ANT+ | ~3mA(峰值) | 60kbps | 10m | 运动监测 |
| NFC | 无源 | 106kbps | 10cm | 一次性贴片 |
| 私有2.4G | ~2mA(峰值) | 250kbps | 20m | 医院专用设备 |
我个人最常用的是BLE。原因很简单:手机直接连,不需要网关。但要注意,BLE的广播功耗其实不小。我建议把广播间隔拉到100ms以上,能省不少电。
注意:无线传输的丢包问题。医疗数据不能丢,一定要加ACK重传机制。我曾经遇到过BLE连接不稳定,丢包率到10%的情况,后来加了重传和缓存,才把丢包率压到0.1%以下。
3.4 系统功耗预算
好,前面三段都讲完了。现在我们来算一笔账——整个系统到底能撑多久?
假设我们用的是CR2032纽扣电池,容量大约220mAh。目标续航是7天,那平均电流就不能超过:
220mAh / (7天 × 24小时) ≈ 1.3mA
嗯,1.3mA。这个数字很紧张。我们来看看各部分怎么分:
| 模块 | 工作电流 | 占空比 | 平均电流 |
|---|---|---|---|
| AFE + ADC | 200μA | 100% | 200μA |
| MCU(处理) | 500μA | 50% | 250μA |
| BLE(发送) | 5mA | 5% | 250μA |
| BLE(广播) | 3mA | 10% | 300μA |
| 其他(LED等) | 100μA | 10% | 10μA |
| 总计 | ~1.01mA |
你看,1.01mA,还在预算内。但这是理想情况。实际项目中,电池容量会衰减,无线环境会变差,占空比会升高。我建议留出20%的余量。
省电技巧:
- AFE不用的时候关掉。心电信号不是每时每刻都要采,可以间歇工作。
- MCU用低功耗模式。处理完数据就睡,用RTC唤醒。
- BLE的数据包尽量打包发送。一次发多个数据,比多次发一个数据省电得多。
我曾经做过一个项目,功耗预算算得死死的,结果发现BLE的广播电流比预想的大了一倍。后来我把广播间隔从50ms拉到200ms,功耗才降下来。所以,实际测试很重要,别光靠算。
好了,这一章就到这里。信号链的架构和功耗预算,说白了就是平衡的艺术——性能要够,功耗要低,成本要省。下一章我们聊聊具体的电路设计和PCB布局,那才是真正见功夫的地方。