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 选型实战建议
说了这么多,最后给个总结性的建议。如果你现在要做一个医疗贴片,我建议这样选:
- 先定功耗预算:比如电池容量100mAh,要求工作30天,那平均功耗不能超过138μA。倒推MCU选型。
- 再定计算需求:有没有浮点运算?有没有FFT?有就上M4,没有就M0+。
- 最后看外设:把需要的ADC通道、通信接口、定时器列个清单,找至少多20%余量的型号。
嗯,这一章就到这里。下一章我们开始讲硬件抽象层的具体设计,到时候我会拿一个实际的心电贴片项目来拆解,敬请期待。