3、微控制器选型:低功耗MCU选型要点、ARM Cortex-M系列对比、外设资源评估

好,咱们进入第三章。这一章聊的是微控制器选型,说白了就是给医疗贴片挑一颗「心脏」。我做了这么多年嵌入式医疗设备,可以负责任地告诉你:选型选对了,项目就成功了一半。选错了?嗯,后面全是坑。

3.1 低功耗MCU选型要点

医疗贴片这玩意儿,跟手机不一样。手机没电了可以充,贴片要是没电了,病人可能就出事了。所以功耗是第一位的。我个人习惯把选型要点分成三个维度:

3.1.1 工作模式功耗

别只看数据手册上那个「超低功耗」的广告词。你得看具体数字。我一般关注这几个指标:

  • 活跃模式功耗:MCU在运行时的电流消耗,单位通常是μA/MHz。比如STM32L0系列能做到约100μA/MHz,而一些超低功耗的如Ambiq Apollo系列能做到10μA/MHz以下。
  • 睡眠模式功耗:贴片大部分时间在睡觉,偶尔醒来采个数据。所以睡眠电流至关重要。好的MCU能做到几百nA甚至几十nA。
  • 唤醒时间:从睡眠到能干活需要多久。我遇到过一颗芯片,功耗很低但唤醒要花2ms,结果心电采样直接丢包了。

关键公式:平均功耗 = (活跃时间 × 活跃电流 + 睡眠时间 × 睡眠电流) / 总时间

别被峰值电流忽悠了,算平均才是真本事。

3.1.2 电源管理特性

这里有个我踩过的坑。曾经有个项目,我选了一颗号称「超低功耗」的MCU,结果发现它没有独立的RTC供电域。这意味着我要保持RTC走时,整个核心域都得供电,白白多耗了3μA。你想想看,对于一颗纽扣电池供电的贴片,3μA是什么概念?

所以选型时一定要看:

  • 是否有独立的备份域(VBAT)
  • 是否支持动态电压调节(DVS)
  • 外设时钟能否独立关断

3.1.3 集成度与BOM成本

医疗贴片体积就那么点,能少一颗芯片就少一颗。我建议优先选集成度高的MCU,比如内置了:

  • 高精度ADC(12位以上,差分输入)
  • DAC(用于驱动电极或产生偏置)
  • 运放(省掉外部运放芯片)
  • 比较器(用于过压保护或阈值检测)

我的经验:别为了省几分钱选一颗外设不全的MCU,后面加一颗外部芯片,面积和功耗都上去了,得不偿失。

3.2 ARM Cortex-M系列对比

现在市面上90%的医疗贴片用的都是ARM Cortex-M内核。M0、M3、M4、M33……怎么选?我直接给你一张对比表:

内核 位宽 典型频率 功耗 DSP/FPU 适合场景
Cortex-M0 32位 48MHz 极低 简单传感器采集、温度贴片
Cortex-M0+ 32位 48MHz 极低 比M0更省电,适合电池设备
Cortex-M3 32位 72MHz 心电、血氧等中等复杂度处理
Cortex-M4 32位 100MHz+ 中等 有FPU 需要浮点运算的算法,如PPG
Cortex-M33 32位 100MHz+ 中等 有FPU+DSP 需要TrustZone安全隔离的场景

我个人习惯是:如果只是做体温贴片,M0+足够了。但如果你要做心电贴片,需要滤波、R波检测这些算法,我建议直接上M4。为什么?因为M4有FPU,算浮点滤波快得多。我曾经在M3上硬算IIR滤波器,结果CPU占用率飙到80%,电池半天就没了。换成M4后,同样的算法只占20%的CPU时间,剩下的时间可以睡觉省电。

注意:M33虽然新,但生态还不够成熟。如果你团队对ARMv8-M架构不熟,建议先选M4,稳妥。

3.3 外设资源评估

选MCU不能光看内核,外设才是真正干活的东西。我一般按这个顺序评估:

3.3.1 模拟外设

医疗贴片的核心是采集生物信号,所以ADC是第一优先级。

  • 分辨率:心电信号一般需要12位以上,PPG信号可能需要16位。
  • 采样率:心电通常250Hz-1kHz,脑电需要更高。
  • 输入通道:单导联心电至少2个通道,多导联需要更多。
  • 噪声性能:ENOB(有效位数)比标称位数更重要。我见过标称12位的ADC,实际有效位数只有9位,根本不能用。

3.3.2 数字通信接口

贴片内部通信主要用I2C和SPI。蓝牙传输用UART或SPI。

  • I2C:用于连接传感器,注意总线电容限制,贴片走线短问题不大。
  • SPI:用于高速数据传输,比如刷屏或读写SD卡。
  • UART:蓝牙模块通信,注意波特率要匹配。

避坑指南:我曾经选了一颗只有2个UART的MCU,结果一个给了蓝牙,一个给了调试口,想再加个GPS模块就没口了。最后只能软件模拟UART,稳定性差了不少。所以外设数量一定要留余量。

3.3.3 定时器与PWM

医疗贴片里定时器用处很大:

  • 生成采样时钟(比如精确的250Hz)
  • 驱动LED(PPG需要PWM调光)
  • 产生激励信号(生物阻抗测量需要正弦波)

我建议至少选有2个以上16位定时器的MCU,最好有32位定时器用于长时间计时。

3.3.4 DMA与低功耗特性

DMA这东西,用好了能省不少电。比如ADC采样,用DMA直接把数据搬到内存,CPU全程睡觉。我见过很多工程师不用DMA,结果CPU一直在轮询,功耗翻倍。

我的习惯:选型时优先看DMA通道数,至少要有4个以上。一个给ADC,一个给SPI,一个给UART,一个备用。

3.4 选型实战建议

说了这么多,最后给个总结性的建议。如果你现在要做一个医疗贴片,我建议这样选:

  1. 先定功耗预算:比如电池容量100mAh,要求工作30天,那平均功耗不能超过138μA。倒推MCU选型。
  2. 再定计算需求:有没有浮点运算?有没有FFT?有就上M4,没有就M0+。
  3. 最后看外设:把需要的ADC通道、通信接口、定时器列个清单,找至少多20%余量的型号。

嗯,这一章就到这里。下一章我们开始讲硬件抽象层的具体设计,到时候我会拿一个实际的心电贴片项目来拆解,敬请期待。