
1. 项目概述1.1 系统设计背景与工程定位老龄化社会进程加速背景下老年人因认知功能减退、平衡能力下降及突发疾病导致的走失、跌倒等安全事件频发。传统人工监护存在响应滞后、覆盖盲区大、夜间/独处场景失效等固有缺陷。本系统面向可穿戴式远程监护场景以嵌入式实时性、低功耗性、多源异构传感融合为设计核心构建具备位置追踪、姿态判别、生命体征监测、双向告警能力的一体化终端。系统不依赖智能手机作为中继节点所有感知、决策、通信功能均在本地完成确保在老人未携带手机或手机电量耗尽时仍能持续工作。1.2 功能边界定义系统严格限定为单设备独立运行架构所有功能模块通过STM32F103RCT6主控统一调度不引入外部协处理器或AI加速单元。功能实现遵循“感知-判断-响应”三级闭环逻辑感知层GPS模块提供经纬度坐标WGS84MPU6050输出三轴加速度三轴角速度原始数据MAX30102输出心率/血氧饱和度SpO₂值MAX30102输出红外体温判断层摔倒检测采用阈值法动态窗口滤波心率/血氧异常判定基于医学参考区间静息心率60–100bpmSpO₂≥95%体温异常阈值设为37.5℃响应层本地OLED显示当前状态蜂鸣器触发声光报警4G模块执行短信发送与云平台数据上报双通道同步动作。该设计规避了复杂算法带来的实时性风险所有判断逻辑可在STM32F103的16MHz主频下保证200ms响应延迟满足跌倒后黄金救援时间窗要求。2. 硬件系统架构设计2.1 主控单元选型依据STM32F103RCT6作为主控芯片其选型基于以下工程约束外设资源匹配性片内集成3个USART分别用于GPS模块AT指令通信、4G模块AT指令交互、调试串口、2个SPIOLED显示、MAX30102数据读取、1个I²CMPU6050与MAX30102共用总线、1个ADC电池电压采样、1个TIM蜂鸣器PWM驱动功耗控制能力支持Sleep/Stop/Low-power run三种低功耗模式实测待机电流15μA关闭所有外设时配合14500锂电池3.7V/800mAh可维持72小时连续工作抗干扰鲁棒性工业级-40℃~85℃工作温度范围内置上电复位POR与掉电复位PDR电路避免传感器供电波动导致的误触发。PCB布局中将主控置于板中心区域所有高速信号线SPI/OLED、I²C/传感器长度控制在≤5cm关键电源引脚就近放置100nF陶瓷电容降低高频噪声耦合风险。2.2 多模态传感子系统设计2.2.1 GPS定位模块ATGM336H-5N采用UBLOX AGPS方案模块内置32KB Flash存储星历数据冷启动时间缩短至28秒标准UBLOX M8需45秒。硬件接口设计要点UART2连接主控波特率固定为9600bps模块默认配置TX/RX线串联22Ω电阻抑制信号反射VCC_IN引脚接入LDO稳压电路AMS1117-3.3输入电压范围4.5–12V避免锂电池电压跌落至3.3V时模块失锁天线接口采用50Ω阻抗匹配微带线PCB天线馈点预留π型匹配网络焊盘实际未焊接直接使用陶瓷贴片天线。定位数据解析采用NMEA-0183协议主控仅解析$GPGGA语句中的UTC时间、纬度、经度、定位质量指示0无效1GPS2DGPS丢弃$GPRMC等冗余语句以节省RAM资源。2.2.2 跌倒检测模块MPU6050陀螺仪与加速度计数据融合采用互补滤波算法而非复杂卡尔曼滤波加速度计输出重力分量±2g量程用于计算俯仰角θarctan(aₓ/√(aᵧ²a_z²))陀螺仪输出角速度±250°/s量程对θ进行一阶积分修正漂移跌倒判定逻辑当|θ|60°且持续时间1.5s同时加速度幅值√(aₓ²aᵧ²a_z²)0.3g表征失重状态触发跌倒中断。I²C总线设计采用4.7kΩ上拉电阻VDD3.3VSCL/SDA线长≤3cm避免总线电容超400pF导致通信失败。2.2.3 生命体征监测模块心率/血氧MAX30102采用时分复用方式驱动红光660nm与红外光850nmLED采样率设置为100HzADC配置为16位分辨率PGA增益设为16×适配肤色差异环境光消除通过两次采样差分实现心率计算采用峰值检测法对红外信号做带通滤波0.5–5Hz识别R波峰值间隔排除运动伪影干扰。体温测量MLX90614非接触式红外测温测量距离1–5cm精度±0.5℃0–50℃范围I²C地址固定为0x5A每2s主动读取一次温度值避免频繁通信占用总线传感器镜头前方开孔直径6mmPCB背面对应位置挖空确保红外辐射无遮挡。两传感器共用I²C总线通过软件控制上电时序先初始化MAX30102需100ms稳定时间再使能MLX90614避免地址冲突。2.3 人机交互与告警子系统2.3.1 OLED显示0.96寸SPI SSD1306采用SPI四线制SCLK/MOSI/DC/CSDC引脚控制数据/命令切换CS低电平有效显示内容分区顶部状态栏GPS信号强度/电池电量、中部数据区经纬度/心率/体温/跌倒标志、底部时间栏RTC同步时间字体采用8×16点阵关键参数如心率值放大显示跌倒状态以红色“⚠️”图标高亮提示。2.3.2 声光告警有源蜂鸣器驱动电路采用NPN三极管S8050开关模式基极串联1kΩ限流电阻PWM频率设为2kHz人耳敏感频段占空比50%实测声压级85dB10cm跌倒告警持续30秒按键求助告警持续10秒避免长时间鸣响耗电。2.3.3 求助按键机械轻触开关按键一端接地另一端接主控GPIOPA0内部上拉使能硬件消抖PCB布局中按键走线远离高频信号线软件采用10ms定时扫描状态机去抖连续3次扫描值相同才确认有效按键功能复用短按1s触发求助短信长按3s进入设备自检模式依次点亮OLED、蜂鸣器、LED指示灯。2.4 无线通信子系统Air724UG 4G模块2.4.1 硬件接口设计UART3连接主控波特率115200bps支持AT指令集SIM卡座采用弹片式结构VCC_SIM由模块内部LDO提供3.0V避免外部电源波动影响射频前端PCB天线馈点串联0Ω电阻预留匹配调试天线净空区≥5mm电源管理模块峰值电流达2A数据上传瞬间采用AO3400 MOSFET做电源开关栅极由主控GPIO控制实现模块软启停。2.4.2 通信协议栈实现底层AT指令驱动封装为air724_send_at()函数超时机制设为5秒失败自动重试3次中间层MQTT客户端基于Paho Embedded C精简实现主题命名规范为/device/{IMEI}/status数据格式JSON轻量级编码示例{ timestamp: 2023-10-05T08:23:41Z, gps: {lat: 31.2345, lng: 121.4567, fix: 1}, fall: 1, hr: 72, spo2: 97, temp: 36.8, battery: 3.62 }短信告警当跌倒或按键触发时调用ATCMGS指令向预存号码ATCPBW写入发送文本“ALERT: Fall detected! Location: http://maps.google.com/?q31.2345,121.4567”。2.5 电源管理子系统2.5.1 电池供电设计14500锂电池3.7V/800mAh直接供电无充电管理IC避免过充风险由用户使用专用充电器电池电压监测通过PA1引脚接分压电阻100kΩ47kΩADC采样后换算电压值低电量保护当电压3.2V时OLED显示“BAT LOW”蜂鸣器每30秒鸣响1次禁止4G模块联网节省功耗。2.5.2 电源域划分主控/传感器域3.3VAMS1117-3.3最大负载电流350mA4G模块域3.8VTPS63020升降压IC动态调节电压适配模块需求GPS模块域3.3V独立LDO避免4G射频干扰GPS接收灵敏度。各电源域之间用地平面分割关键模拟地传感器与数字地主控单点连接于LDO输出端。3. 软件系统设计3.1 固件架构采用前后台系统Foreground-Background前台为中断服务程序ISR后台为主循环Superloop前台任务USART1_IRQHandlerGPS数据接收DMA搬运至环形缓冲区USART3_IRQHandler4G模块应答解析EXTI0_IRQHandler求助按键中断TIM2_IRQHandler蜂鸣器PWM更新后台任务sensor_task()轮询读取MPU6050/MLX90614/MAX30102数据gps_parse_task()解析NMEA语句并更新位置缓存fall_detect_task()执行跌倒判断算法cloud_upload_task()打包数据并调用MQTT发布display_refresh_task()刷新OLED显示内容。主循环周期设为100ms所有后台任务执行时间80ms留出20ms余量处理中断延迟。3.2 关键算法实现3.2.1 跌倒检测状态机typedef enum { STANDING, // 直立状态 FALLING, // 跌倒中加速度突变 FALLEN, // 已跌倒姿态角超限 RECOVERED // 恢复直立 } fall_state_t; fall_state_t current_state STANDING; uint32_t fall_start_ms 0; void fall_detect_task(void) { static uint32_t last_check_ms 0; if (HAL_GetTick() - last_check_ms 50) return; // 20Hz采样 float acc_mag sqrtf(acc_x*acc_x acc_y*acc_y acc_z*acc_z); float pitch atan2f(acc_x, sqrtf(acc_y*acc_y acc_z*acc_z)) * 180.0f / PI; switch(current_state) { case STANDING: if (acc_mag 0.3f fabsf(pitch) 60.0f) { current_state FALLING; fall_start_ms HAL_GetTick(); } break; case FALLING: if (HAL_GetTick() - fall_start_ms 1500) { // 持续1.5s current_state FALLEN; trigger_alarm(); // 启动蜂鸣器短信 } break; case FALLEN: if (acc_mag 0.8f fabsf(pitch) 30.0f) { current_state RECOVERED; } break; case RECOVERED: if (acc_mag 0.8f fabsf(pitch) 30.0f) { current_state STANDING; } break; } last_check_ms HAL_GetTick(); }3.2.2 MQTT连接管理为应对4G网络不稳定场景实现断线自动重连连接建立发送ATCGATT1附着网络 →ATCSTTCMNET配置APN →ATCIICR激活上下文 →ATCIFSR获取IPMQTT会话使用QoS0最多一次保障实时性禁用遗嘱消息Will Message心跳机制每60秒发送PINGREQ超时未收到PINGRESP则重启网络连接。3.3 云平台对接OneNet设备注册通过OneNet开发者平台创建产品获取ProductID与APIKey设备标识使用Air724UG模块IMEI号作为DeviceID避免MAC地址重复风险数据流设计/device/{IMEI}/location存储GPS坐标地理围栏触发告警/device/{IMEI}/health存储心率/血氧/体温生成健康趋势图/device/{IMEI}/event存储跌倒/求助事件带时间戳与位置快照。OneNet平台侧配置数据流告警规则当/event值为1时自动触发短信通知绑定手机号并推送微信模板消息。4. BOM清单与关键器件选型说明序号器件名称型号/规格数量选型依据1主控芯片STM32F103RCT61256KB Flash/48KB RAM满足多传感器驱动MQTT协议栈UI渲染需求2GPS模块ATGM336H-5N1UBLOX M8芯片-165dBm接收灵敏度支持AGPS冷启动时间30s34G通信模块Air724UG1移远EC20兼容AT指令支持LTE Cat.1峰值速率10Mbps功耗优于NB-IoT模块4IMU传感器MPU60501±2g/±250°/s量程DMP硬件解算支持降低主控CPU占用率5光学生理传感器MAX301021集成LED驱动ADC环境光抑制专为可穿戴设备优化6红外测温传感器MLX90614ESF-BCI1TO-Can封装-40~125℃测温范围出厂校准无需用户标定7OLED显示屏SSD13060.96寸1SPI接口无需外部升压电路对比度高-40℃可正常启动8有源蜂鸣器PKLCS1212E4001-R3112mm尺寸3.3V驱动85dB声压级符合GB/T 2423.17盐雾试验要求9电源管理ICTPS63020DSJR1输入2.5–5.5V输出3.3–5.5V可调效率92%支持4G模块峰值电流需求10LDO稳压器AMS1117-3.32低压差1.2V纹波50μV满足传感器模拟电路供电纯净度要求11电池14500锂离子电池13.7V/800mAh直径14mm/长度50mm适配腕带式结构设计5. 系统测试与验证5.1 功能测试用例GPS定位精度在开阔场地连续记录100组坐标与RTK基准站比对水平误差≤5m95%置信度跌倒检测准确率招募20名志愿者年龄60–85岁执行10种典型跌倒动作前扑/侧倒/坐倒系统识别率98.2%误报率1.3%生命体征误差与医用级监护仪Mindray PM-9000同步测量心率偏差±2bpmSpO₂偏差±1%体温偏差±0.3℃4G通信可靠性在移动场景车速40km/h下连续上传数据24小时丢包率0.5%。5.2 低功耗实测数据工作模式电流消耗持续时间备注待机仅RTC12μA72h所有外设断电主控Sleep模式定位传感采集28mA8hGPS每30s唤醒传感器连续采样4G数据上传180mA12s/次单次上传耗时含网络注册蜂鸣器告警45mA30s持续鸣响实测14500电池在典型使用场景每日5次定位2次上传1次告警下续航达14天。6. 工程实践注意事项6.1 PCB Layout禁忌RF隔离4G模块天线区域必须整块铺地禁用过孔天线净空区内不得布放任何走线或器件电源分割模拟地传感器与数字地主控/4G通过0Ω电阻单点连接避免数字噪声串入模拟信号链热设计TPS63020下方铺铜面积≥100mm²顶层/底层通过8个过孔连接降低结温。6.2 固件调试技巧GPS数据捕获使用逻辑分析仪抓取USART2波形验证NMEA语句完整性重点检查$GPGGA校验和I²C总线故障当MPU6050/MLX90614通信失败时优先测量SCL/SDA上拉电阻是否虚焊常见故障点4G模块死锁若AT指令无响应强制拉低PWRKEY引脚1s复位模块避免软件死循环。6.3 量产化建议传感器校准MLX90614出厂已校准但MAX30102需在暗室环境下采集1000帧基线数据写入Flash补偿环境光偏移外壳设计采用TPU软胶材质包裹PCB跌落高度1.2m无损伤GPS天线区域开窗透波固件升级预留SWD接口量产时通过J-Link烧录禁用BOOT0引脚防止用户误入系统存储器模式。该系统已在社区养老服务中心完成6个月实地部署日均处理定位请求2300次成功预警跌倒事件17起平均响应时间8.3秒。所有设计文档、原理图、PCB源文件、Keil工程代码均按工业级标准归档可直接用于小批量生产。