嵌入式系统基础:微控制器选型、传感器接口、无线通信模块(BLE/NFC)

好,咱们直接切入正题。医疗贴片这东西,说白了就是一块贴在身上的微型电脑。它要小、要省电、要可靠,还得能跟外界通信。今天我就把这三个核心模块——微控制器、传感器接口、无线通信——掰开了揉碎了讲清楚。

微控制器选型:别光看主频

选MCU,我个人的习惯是先看功耗,再看外设,最后才看算力。为什么?你想想看,医疗贴片就那么一小块电池,可能就几十毫安时。主频再高,跑几分钟就没电了,那还有什么用?

我在项目中遇到过一款号称“低功耗”的MCU,数据手册上写的待机电流是1μA,结果实际测下来,加上外围电路,待机功耗直接飙到10μA。嗯,这里要注意,数据手册上的数字往往是在最理想条件下测的,你得留出余量。

选型核心指标:
  • 工作电流:活跃模式、睡眠模式、深度睡眠模式下的电流值
  • 唤醒时间:从深度睡眠到正常工作,能不能在微秒级完成
  • 外设集成度:ADC、DAC、比较器、DMA,这些能不能省掉外部芯片
  • 封装尺寸:BGA还是QFN?贴片面积能不能控制在5mm×5mm以内

举个例子,我常用的一个方案是STM32L0系列。它的待机电流能做到0.3μA,唤醒时间只要3.5μs。配合一个RTC定时唤醒,贴片可以做到一年不换电池。当然,如果你需要更强的处理能力,比如要跑算法,那可以考虑M4内核的芯片,但功耗会翻倍。

我的一个小技巧:选型时别只看一家。把TI、ST、NXP、Nordic这几家的低功耗系列都拉出来,对比它们的“每MHz功耗”和“每KB RAM功耗”。有时候,一个看似主频低的芯片,实际跑起来反而更省电。

传感器接口:模拟信号的“最后一公里”

医疗贴片上的传感器,无非就是测体温、测心率、测血氧、测汗液成分这些。传感器输出的信号,大多是微弱的模拟量。怎么把这些信号干净地送进MCU,这里头门道不少。

我见过不少新手,直接把传感器输出接到MCU的ADC引脚上。结果呢?噪声大得离谱,数据根本没法用。为什么会这样?因为传感器的输出阻抗通常很高,而MCU的ADC输入阻抗相对较低,信号一进来就被“拉偏”了。

正确的做法是加一级运放做缓冲。我习惯用TI的OPA333或者ADI的AD8605,它们都是轨到轨、低功耗的运放,非常适合电池供电的设备。

// 伪代码:传感器数据采集流程
void sensor_read(void) {
    // 1. 开启传感器电源(通过GPIO控制MOS管)
    GPIO_SetPower(SENSOR_POWER, 1);
    delay_ms(10);  // 等待传感器稳定
    
    // 2. 启动ADC转换
    HAL_ADC_Start(&hadc);
    
    // 3. 等待转换完成
    if (HAL_ADC_PollForConversion(&hadc, 100) == HAL_OK) {
        uint32_t adc_value = HAL_ADC_GetValue(&hadc);
        // 4. 转换为实际物理量
        float temperature = (adc_value * 3.3 / 4096 - 0.5) / 0.01;
    }
    
    // 5. 关闭传感器电源,省电
    GPIO_SetPower(SENSOR_POWER, 0);
}
注意:传感器电源的开关控制,一定要用MOS管,别直接用GPIO去驱动。我曾经遇到过,GPIO的驱动能力不够,导致传感器上电缓慢,采集到的第一个数据永远是错的。后来加了一个PMOS管,问题就解决了。

另外,模拟信号的走线也要讲究。我建议把传感器、运放、ADC这些模拟电路,跟数字电路(比如MCU、无线模块)在PCB上隔离开。地线要单点接地,别让数字噪声串进模拟回路。

无线通信模块:BLE还是NFC?

医疗贴片的无线通信,目前主流就两个选择:BLE和NFC。选哪个,取决于你的应用场景。

特性 BLE NFC
通信距离 10-100米 0-10厘米
数据传输速率 最高2Mbps 最高424kbps
功耗 中等(广播模式约10mA) 极低(被动模式无需电池)
典型应用 连续监测、数据上传 身份识别、配置参数

我个人更倾向于BLE,因为它能实现持续的数据传输。比如一个心电贴片,需要每秒钟把心电波形发到手机上,那BLE是唯一的选择。NFC虽然省电,但通信距离太短,你得把手机贴上去才能读数据,这在实际使用中很不方便。

不过,NFC有一个BLE无法替代的优势:它可以无源工作。也就是说,贴片本身可以不带电池,靠手机发出的射频场供电。这在一次性贴片或者需要超长待机的场景下,非常有用。

BLE选型建议:
  • Nordic nRF52832:性能均衡,开发资料多,适合大多数医疗贴片
  • TI CC2640R2F:功耗极低,适合纽扣电池供电的设备
  • Dialog DA14531:成本低,适合大批量生产

我曾经在一个血糖监测贴片上用过nRF52832。它的BLE协议栈很成熟,连接稳定,而且支持OTA升级。不过要注意,BLE的天线设计很关键。我建议用陶瓷天线或者PCB天线,别用外置天线,因为贴片太小了,放不下。

避坑指南:BLE的广播间隔不要设得太短。我曾经为了追求“实时性”,把广播间隔设成20ms,结果电池两天就耗光了。后来改成100ms,功耗降了5倍,用户体验也没差多少。记住,医疗数据不需要毫秒级刷新,秒级就够了。

好了,这三个基础模块就讲到这里。微控制器是大脑,传感器是眼睛和耳朵,无线通信是嘴巴。把它们选对、用好,你的医疗贴片就成功了一半。下一章,咱们聊聊怎么把这些模块整合到一起,做系统级的验证。