2. 可穿戴设备基础
可穿戴设备是Edge AI落地的第一载体。理解设备形态、硬件架构与传感器接口,是后续进行动作识别、心率分析和环境感知融合的前提。本章从工程实践角度,梳理常见可穿戴设备的类型差异、典型硬件分层、传感器选型逻辑以及接口设计要点,帮助开发者建立从“选型”到“联调”的系统认知。
2.1 可穿戴设备的常见类型与形态差异
可穿戴设备并非单一品类,不同形态直接决定了硬件约束、传感器配置和Edge AI算法的复杂度。从工程角度看,主要分为以下四类:
| 设备类型 | 典型产品 | 硬件约束 | 传感器配置 | Edge AI侧重点 |
|---|---|---|---|---|
| 智能手环 | 小米手环、Fitbit | 电池100~200mAh,无独立OS | IMU、PPG、温度 | 轻量级活动识别、睡眠分期 |
| 智能手表 | Apple Watch、Galaxy Watch | 电池300~500mAh,有独立OS | IMU、PPG、GPS、气压、麦克风 | 复杂运动识别、心率变异性分析 |
| 医疗贴片 | 心电贴片、体温贴片 | 电池50~100mAh,一次性或短周期 | ECG电极、体温、IMU | 心律失常检测、跌倒检测 |
| 智能服装/鞋 | 智能跑鞋、心率衣 | 柔性电池,分布式传感器 | 压力阵列、IMU、织物电极 | 步态分析、姿态纠正 |
选型时需明确:手环追求低功耗和长续航,手表追求功能完整性和交互体验,贴片追求医疗级精度和舒适性,智能服装则强调柔性集成和分布式感知。Edge AI模型的大小和推理频率必须与设备功耗预算匹配。例如,手环上运行一个1MB的CNN模型每100ms推理一次,会导致续航从14天骤降至2天,这在产品定义阶段就必须避免。
2.2 可穿戴设备硬件架构分层
无论形态如何,可穿戴设备的硬件架构都可以抽象为四个层次:感知层、处理层、通信层、电源层。理解分层有助于在系统设计时进行模块化调试和故障隔离。
2.2.1 感知层
感知层由各类传感器及其信号调理电路组成。核心传感器包括:
- IMU(惯性测量单元):集成加速度计+陀螺仪,部分含磁力计(9轴)。用于动作识别、姿态解算、步数统计。常见型号:BMI270、LSM6DSO、ICM-42688。
- PPG(光电容积脉搏波):通过LED发光+光电二极管接收,测量心率、血氧。常见方案:MAX30102、TI AFE4404。
- 环境传感器:温度(NTC热敏电阻或数字温度传感器)、气压(用于海拔/楼层检测)、环境光(用于屏幕亮度调节)。
- 生物电传感器:ECG电极(心电)、EDA(皮肤电导,用于压力检测)。
2.2.2 处理层
处理层是Edge AI的核心。当前主流方案有两类:
- 低功耗MCU:如Nordic nRF52/nRF53系列、STM32L4系列、Ambiq Apollo4。集成DSP指令和硬件加速器(如浮点单元FPU),可运行轻量级TFLite Micro模型。
- 应用处理器+MCU双核架构:手表类设备常采用AP(如高通Wear系列)+MCU(如Cortex-M4)的组合,AP运行复杂OS和AI模型,MCU负责传感器数据采集和低功耗待机。
2.2.3 通信层与电源层
通信层以BLE(蓝牙低功耗)为主,支持GATT服务用于数据同步和OTA升级。部分设备增加NFC用于支付或配对。电源层采用PMIC(电源管理IC)管理锂电池充放电,输出多路LDO/DC-DC分别给MCU、传感器、屏幕供电。关键设计点是传感器供电的独立控制——通过GPIO控制传感器电源开关,在待机时彻底断电以降低漏电流。
2.3 传感器选型与接口设计
传感器选型不是选最贵的,而是选最匹配的。以下是选型时的核心判断维度:
- 功耗预算:查看传感器数据手册中的“工作电流”和“待机电流”。IMU在低功耗模式(如BMI270的suspend模式)下电流可低至0.5μA,而PPG在连续测量时通常需要200μA~1mA。
- 采样率与带宽:动作识别需要IMU采样率≥50Hz(建议100Hz),心率监测PPG采样率≥25Hz(建议50Hz)。过高的采样率会浪费功耗和计算资源。
- 接口类型:绝大多数传感器支持I2C接口,地址可通过引脚配置。SPI接口适合需要高吞吐的场景(如连续采集9轴数据+外部FIFO)。
- FIFO深度:传感器内置FIFO(如BMI270的2KB FIFO)允许MCU在休眠时传感器持续采集数据,MCU定期唤醒批量读取,这是降低系统功耗的关键。
2.3.1 典型接口连接方式
// I2C总线连接示例(伪代码)
// 设备地址:IMU=0x68, PPG=0x57, 气压计=0x60
// SDA/SCL上拉电阻:4.7kΩ至VDD(1.8V或3.3V)
I2C_Init(400kHz);
IMU_WriteReg(0x68, 0x20, 0x0F); // 配置加速度计±4g, 陀螺仪±2000dps
PPG_WriteReg(0x57, 0x09, 0x03); // 配置LED电流和采样率
Pressure_WriteReg(0x60, 0x10, 0x01); // 启动气压计
// 中断引脚连接:IMU_INT1 -> MCU_P0.10, PPG_INT -> MCU_P0.11
// 当FIFO达到阈值或心率数据就绪时,传感器拉高中断引脚唤醒MCU
2.4 案例拆解:一款跌倒检测手环的传感器选型与接口设计
背景与目标:某健康科技公司计划开发一款面向老年人的跌倒检测手环,要求在检测到跌倒后10秒内通过BLE向手机APP发送告警,同时具备心率异常提醒功能。设备续航目标≥7天,电池容量为180mAh。
初始约束:
- MCU选型:Nordic nRF52832(Cortex-M4F,64MHz,512KB Flash,64KB RAM)
- 传感器预算:IMU+PPG总成本≤8美元
- 功耗预算:平均电流≤1.5mA(180mAh/1.5mA≈120小时=5天,需优化)
关键输入参数:
| 传感器 | 型号 | 工作电流 | 待机电流 | 接口 | FIFO |
|---|---|---|---|---|---|
| IMU | BMI270 | 650μA@100Hz | 0.5μA | I2C/SPI | 2KB |
| PPG | MAX30102 | 600μA(LED平均) | 0.7μA | I2C | 32样本 |
分析判断过程:
若IMU以100Hz连续采样,PPG以50Hz连续采样,总电流约为650μA+600μA=1.25mA,加上MCU运行功耗(约500μA),总电流超过1.7mA,无法满足7天续航。因此需要采用中断驱动+批处理策略:
- IMU配置为运动唤醒模式:静止时IMU进入suspend模式(0.5μA),当检测到加速度变化超过阈值(如±1.5g)时,IMU通过INT1引脚唤醒MCU。
- MCU被唤醒后,将IMU切换至高性能模式(100Hz采样),同时启动PPG进行连续心率监测。
- 利用IMU内置FIFO缓存2秒数据(200个样本),MCU每2秒通过DMA批量读取一次,避免频繁中断。
- 跌倒检测算法(基于SVM或阈值判断)在MCU上运行,检测到跌倒后立即通过BLE发送告警。
实际操作步骤:
// 1. 初始化IMU为运动唤醒模式
BMI270_WriteReg(0x7C, 0x03); // 启用AnyMotion中断
BMI270_WriteReg(0x7D, 0x0A); // 设置阈值1.5g,持续2个样本
// 2. 配置PPG为低功耗模式,仅当MCU唤醒后启动
MAX30102_WriteReg(0x09, 0x00); // 关闭LED
// 在MCU中断回调中启动PPG:
void IMU_IRQHandler(void) {
MAX30102_WriteReg(0x09, 0x03); // 开启LED,采样率50Hz
start_timer(2s); // 每2秒读取FIFO
}
结果对比:优化后,设备平均电流降至0.8mA(IMU待机0.5μA+MCU待机10μA+PPG关闭),实际续航达到9天,超出目标。跌倒检测响应时间约8秒(含算法推理和BLE发送),满足10秒要求。
风险与代价:运动唤醒模式存在误触发风险(如老人弯腰捡东西可能触发),需在算法中加入“跌倒后静止”特征(跌倒后2秒内无大幅运动)来降低误报。此外,PPG在运动状态下信号质量差,需在跌倒检测期间暂停心率计算。
复盘经验:传感器选型不能只看参数表,要结合系统级功耗模型。BMI270的FIFO和运动唤醒功能是降低功耗的关键,而MAX30102的LED电流可调特性为后续优化留出了空间。接口设计上,将IMU和PPG挂在不同I2C总线上(或使用I2C地址切换),避免总线冲突。