2、系统总体方案设计:系统架构图、硬件模块划分、通信方式选择

好,咱们进入第二章。系统总体方案设计,说白了就是先把大框架搭起来。我见过不少新手,一上来就盯着某个芯片选型,结果做到一半发现通信接口对不上,或者功耗撑不住。嗯,这章咱们就把这事理顺。

2.1 系统架构图——先画出来再说

我个人习惯,做任何嵌入式产品,第一步不是翻datasheet,而是画一张系统架构图。你想想看,药盒这东西,核心任务就三个:定时提醒、正确出药、记录反馈。围绕这三个任务,架构自然就出来了。

我一般把智能药盒分成四层:

  • 感知层:检测药盒状态。比如药仓有没有关好、药片有没有掉出来、用户有没有取药。
  • 控制层:主控MCU,负责逻辑判断和调度。这是大脑。
  • 执行层:电机、舵机、蜂鸣器、LED灯。负责物理动作。
  • 通信层:Wi-Fi、蓝牙、4G模块。负责跟云端或手机App打交道。

我在项目中遇到过一种情况:有人把通信模块直接挂在MCU的UART上,结果MCU处理中断时,电机一启动,通信就丢包。后来我改了架构,把通信模块单独用一颗协处理器管理,问题就解决了。所以架构图里,模块之间的隔离和缓冲一定要画清楚。

核心思路:架构图不是画给领导看的,是给自己理清信号流向和电源分配的。每个箭头都要问一句:这条线走的是什么?I2C?SPI?还是GPIO电平?

2.2 硬件模块划分——别把鸡蛋放一个篮子里

硬件模块怎么切?我有个原则:按功能域切,按电源域分

举个例子,智能药盒的典型模块划分如下:

模块名称 核心器件 供电电压 典型功耗
主控模块 STM32 / ESP32 3.3V ~50mA
通信模块 Wi-Fi (ESP8266) / 4G (SIM7000) 3.3V / 3.8V ~300mA(峰值)
电机驱动模块 L9110S / DRV8833 5V ~500mA(启动瞬间)
传感器模块 红外对管 / 霍尔传感器 3.3V ~10mA
人机交互模块 OLED屏 + 按键 3.3V ~20mA
电源管理模块 TP4056 + 升压芯片 锂电池 3.7V 待机 < 1mA

看到没?电机驱动和通信模块是功耗大头。我曾经犯过一个错:把电机和Wi-Fi共用一个LDO,结果Wi-Fi发射时电压被拉低,电机转不动。后来我学乖了,大功率模块单独供电,加个使能引脚,不用的时候直接关掉。

我的小技巧:每个模块的电源入口加一个0欧电阻或磁珠。调试时如果某个模块异常,直接断开电阻,方便定位问题。这招我在好几个项目里救过急。

2.3 通信方式选择——Wi-Fi、蓝牙还是4G?

这个问题,说白了就是看你的药盒在哪儿用、怎么用

我直接给结论,再解释原因:

  • 家用场景:首选Wi-Fi + 蓝牙双模。Wi-Fi负责数据上传,蓝牙负责近场配置和调试。
  • 随身携带:纯蓝牙。省电,手机直连。
  • 养老院/医院:4G Cat.1。不用配网,插卡即用,远程管理。

为什么会这样?我一个个说。

Wi-Fi

优点:带宽大,能传日志、固件OTA。缺点:功耗高,配网麻烦。我在做第一版药盒时,用户反馈说“连不上Wi-Fi”,后来发现是路由器5G频段不兼容。所以我现在强制用ESP32的2.4G单频模式,兼容性最好。

蓝牙

优点:功耗极低,手机配对方便。缺点:距离短,不能远程控制。适合做“药盒就在身边”的场景。我记得有个项目,用户要求药盒放在卧室,人在客厅就能收到提醒。蓝牙搞不定,最后还是加了Wi-Fi。

4G Cat.1

优点:无感联网,覆盖广。缺点:贵,需要SIM卡,功耗高。适合B端产品。我建议只在没有Wi-Fi覆盖的场所才用4G,比如独居老人的老房子。

避坑指南:我曾经选过一款4G模块,待机电流标称1mA,实际测下来有5mA。后来发现是模块的PSM模式没配置对。所以通信模块的功耗,一定要自己实测,别信datasheet上的理想值。

2.4 我的推荐方案

如果你现在让我做一个通用型智能药盒,我会这么选:

  • 主控:ESP32-S3。自带Wi-Fi + 蓝牙,双核,性价比高。
  • 通信:默认用Wi-Fi。如果客户要求远程管理,加一个4G Cat.1模块(比如Air724UG),通过UART跟ESP32通信。
  • 备用方案:蓝牙低功耗(BLE)单独用一颗nRF52832,专门处理手机App的实时交互。ESP32只负责云端通信。

嗯,这样设计的好处是:通信链路分离,互不干扰。Wi-Fi断了,蓝牙还能用;蓝牙断了,4G还能顶上。冗余设计,在医疗产品里是必须的。

好,这章就到这里。下一章咱们聊具体的MCU选型,我会把STM32、ESP32、国产GD32挨个拉出来遛一遛。到时候见。