2. 硬件系统架构:血氧仪的整体硬件框图、核心芯片选型(MCU、AFE、OLED)、电源树设计

好,咱们正式开始动手了。这一章,我带你从宏观上把血氧仪的硬件骨架搭起来。说白了,就是先画个“地图”,搞清楚每个模块在哪儿、干什么、怎么连。

很多新手工程师一上来就闷头画原理图,结果画到一半发现引脚不够用,或者电源纹波太大,又得推倒重来。我早年就吃过这个亏,一个项目返工了三次,被项目经理追着骂。所以,咱们先花点时间把架构理清楚,后面会顺很多。

2.1 整体硬件框图:先看全局

血氧仪的核心任务就两个:发光采集信号,算出血氧和脉率。围绕这个目标,硬件可以拆成四大块:

  • 信号采集与处理:这是心脏。包括LED驱动、光电二极管(PD)、跨阻放大器(TIA),以及核心的模拟前端AFE。
  • 主控与计算:大脑。负责控制时序、跑算法、驱动屏幕。通常是一颗MCU。
  • 人机交互:脸面。OLED屏幕显示波形和数值,按键用来切换菜单。
  • 电源管理:血液。把电池电压转换成各个芯片需要的干净电压。

我习惯先画一个这样的框图,贴在工位上:

┌─────────────────────────────────────────────────────────┐
│                    血氧仪硬件系统框图                      │
├───────────┬───────────┬───────────┬─────────────────────┤
│  传感器   │  模拟前端  │   主控    │     人机交互        │
│  (LED+PD) │   (AFE)   │   (MCU)   │   (OLED+按键)       │
│           │           │           │                     │
│  Red/IR   │  TIA+ADC  │  I2C/SPI  │   SPI/I2C OLED      │
│  LED驱动  │  滤波     │  算法     │   按键中断          │
└─────┬─────┴─────┬─────┴─────┬─────┴─────────┬───────────┘
      │           │           │               │
      └───────────┴───────────┴───────────────┘
                 电源管理 (LDO + DC-DC)

嗯,这个图虽然简单,但每个箭头都代表一条信号线或电源线。你画原理图的时候,就是把这些框框变成具体的芯片和电阻电容。

2.2 核心芯片选型:三巨头怎么挑?

选型是门学问,也是经验的积累。我直接给你推荐三颗经过验证的芯片,都是市面上好买、资料多、不容易踩坑的。

2.2.1 MCU:选谁?

MCU负责控制AFE、跑算法、驱动OLED。算力不用太强,但外设要够用。我个人偏爱 STM32F103C8T6,也就是大家常说的“C8T6”。

  • 为什么选它? 便宜、好买、资料铺天盖地。两个I2C、三个SPI、一个USB,足够用了。
  • 够用吗? 72MHz主频,跑个血氧算法绰绰有余。我在一个量产项目里就用它,稳定运行了三年。
  • 避坑:注意它的ADC只有12位,如果你不用AFE内置的ADC,而是直接用MCU采样,精度会差一些。我建议还是用AFE自带的ADC。

核心参数速览:

  • 内核:ARM Cortex-M3
  • 主频:72MHz
  • Flash:64KB / 128KB
  • SRAM:20KB
  • 封装:LQFP48

2.2.2 AFE:血氧仪的“心脏”

AFE(模拟前端)是血氧仪最关键的芯片。它集成了LED驱动、TIA、可编程增益放大器(PGA)和ADC。选对了AFE,硬件设计就成功了一半。

我强烈推荐 AFE4404(TI出品)或者 MAX30102(美信出品)。

特性 AFE4404 MAX30102
集成度 高(需外接LED和PD) 极高(内置LED和PD)
通道数 4通道(可接多路PD) 2通道(红光+红外)
ADC位数 22位 18位
接口 SPI I2C
封装 QFN-40 OLGA-14
适合场景 医疗级、高精度 消费级、小体积

我的建议:

  • 如果你做的是医疗认证产品(比如二类医疗器械),选 AFE4404。它的动态范围和信噪比更好,能过YY 0784标准。
  • 如果你做的是手环、指夹式这种消费级产品,选 MAX30102。它把LED和PD都集成进去了,PCB面积能省一半。

注意: MAX30102的I2C地址是固定的0x57,如果你的I2C总线上还有其他设备,注意地址冲突。我曾经因为这个原因,调试了两天才发现是地址被占用了。

2.2.3 OLED:显示要清晰

血氧仪屏幕不大,但需要显示波形和数字。我推荐 0.96寸 128x64 OLED,SSD1306驱动芯片。

  • 接口: 选I2C版本,只占用两根线,布线简单。
  • 颜色: 白色或蓝色都可以,我个人喜欢白色,在强光下看得更清楚。
  • 功耗: OLED本身功耗不高,但别忘了加一个MOS管控制它的电源。待机时关掉屏幕,能省不少电。

2.3 电源树设计:别让电源毁了你的信号

电源设计是血氧仪最容易出问题的地方。AFE对电源噪声极其敏感,纹波稍微大一点,采集到的信号就全是毛刺。

我见过一个团队,AFE输出波形一直有50Hz的工频干扰,查了三天,最后发现是LDO的PSRR不够,把开关电源的纹波直接耦合到了模拟电路上。

所以,电源树要分层设计:

电池 (3.7V Li-ion)
  │
  ├──→ DC-DC (3.3V) ──→ MCU、OLED  (数字部分)
  │
  └──→ LDO (3.0V)  ──→ AFE、LED驱动 (模拟部分)

为什么这么分?

  • DC-DC:效率高(90%以上),但纹波大(10-50mV)。适合给数字电路供电,MCU和OLED对纹波不敏感。
  • LDO:效率低(压差越大效率越低),但纹波极小(<1mV)。适合给模拟电路供电,AFE需要干净的电源。

具体选型:

  • DC-DC: 我常用 TPS63020(TI),它支持升降压,电池电压从2.5V到5.5V都能稳定输出3.3V。
  • LDO: 推荐 XC6206P302MR(Torex),输出3.0V,静态电流只有1μA,非常适合电池供电设备。

小技巧: 在AFE的电源引脚旁边,一定要放一个0.1μF的陶瓷电容,紧贴引脚。再并联一个10μF的钽电容。这叫“去耦”,能滤掉高频和低频的噪声。我每次画PCB,都会在AFE底下铺一块完整的GND铜皮,效果立竿见影。

2.4 总结一下

这一章,咱们把血氧仪的硬件架构拆开了。核心就是三颗芯片:MCU(STM32F103)、AFE(AFE4404或MAX30102)、OLED(SSD1306)。电源树要记得“数字用DC-DC,模拟用LDO”。

下一章,咱们就开始画原理图了。我会带着你,从AFE的电路开始,一步一步把每个模块的电路搭起来。到时候,你会看到这些芯片是怎么通过电阻电容连在一起的。

嗯,先消化一下这些内容。有问题随时问我。