《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于STM32的微型多参数健康监护终端的设计
基于STM32的微型多参数健康监护终端的设计
来源:电子技术应用2014年第2期
薛冰冰,吴书裕,李亚萍,耿庆山,周凌宏
南方医科大学 生物医学工程学院,广东 广州510515
摘要: 阐述了一种基于STM32F103RE单片机的微型多参数健康监护终端的设计与实现方法。系统采用集成化的硬件设计方案并针对各种生理信号的特点进行了算法优化,提高了使用的便捷性和监测的准确度。终端实现了人体心电、心率、血氧饱和度和姿态信息的采集、处理、显示与存储,并且可以通过蓝牙与Android或iOS智能设备进行数据交互,在使用者生理参数异常或跌倒时发出报警信号。
中图分类号: R318.6
文献标识码: A
文章编号: 0258-7998(2014)02-0012-04
Design of miniature multi-parameter health monitor based on STM32
Xue Bingbing,Wu Shuyu,Li Yaping,Geng Qingshan,Zhou Linghong
School of Biomedical Engineering, Southern Medical University,Guangzhou 510515,China
Abstract: The design and implementation of a miniature multi-parameter health monitor based on STM32F103RE are discussed in this article. The paper introduces an integrated solution in hardware and optimizes algorithms according to the features of physiological signal which improve the convenience and accuracy of device application. The system realizes the collection, processing, displaying and storage of ECG, heart rate and oxygen saturation. Particularly, the monitor is able to exchange data with Android or iOS smart device through Bluetooth and sends out alarm signal if abnormal physiological parameter or fall is detected.
Key words : multi-parameter;mobile health;bluetooth;ADS1298;fall

    在当今的医疗现状下,由于患者连续性健康信息数据缺失,医生无法了解缓慢累积的慢性疾病的形成原因,导致诊断准确性在一定程度上受到了影响。老年人或慢性病患者在户内外活动时,会有不慎摔倒的情况,此时若不能及时获取相关的生理参数并通知医生和家人,将延误治疗时机。传统的监护仪器一般存在以下一些问题:(1)没有很好地把运动监护和运动状态下的体征参数监护结合起来[1];(2)不能及时地将使用者实时监护数据呈现给医生进行分析与诊断,降低了监护数据的价值;(3)没有考虑到监测的便捷性,给使用者的日常生活和工作带来了较大的影响。
    本文提出一种基于STM32单片机的微型多参数健康监护终端的设计与实现方法,可以在监测使用者多个生理参数的同时监测其身体运动姿态,监护数据通过蓝牙实时发送至智能设备进行显示。该终端的设计充分体现了智能医疗时代家用医疗监护设备“更便携、更安全、更低耗、更智能以及更高诊断级性能”的发展趋势。
1 系统硬件结构
    如图1所示,设计的多参数健康监护终端主要包括以STM32单片机为核心的主控单元、血氧信号采集模块、心电信号采集模块、跌倒监测模块、蓝牙通信模块、人机交互模块、存储模块和电源管理模块等。

1.1 单片机控制单元
    为满足系统多参数采集和快速数据处理要求,本设计采用意法半导体公司生产的最高工作频率可达72 MHz的STM32F103RE单片机作为主控芯片。它具有丰富的片上外设资源和18 MHz的I/O翻转速度,不仅可以实现单周期乘法和硬件除法,还可以利用其提供的DSP库在STM32芯片上实现快速傅里叶变换算法,满足血氧饱和度等参数计算要求。
1.2 心电信号采集模块
    本设计采用美国德州仪器公司专为ECG等生物电信号测量推出的单芯片解决方案ADS1298,其内部集成了24位模/数转换器、可编程放大器和右腿驱动电路等模块,大大降低了采集系统复杂度和功耗,提高了系统的可靠性。选用动态心电图(DCG)的CM5导联系统作为日常监护的常规导联,其数据幅度和稳定性均能较好地满足日常监护要求。电极采集所得的心电信号经心电导联线输入至低通滤波电路和基线抑制电路后由ADS1298采样处理,单片机以SPI方式读取数字心电数据。

1.4 跌倒监测模块
    穿戴式传感器由于其成本低、使用简便和技术先进等优点,是监测人体在跌倒时身体各部位机械变化情况的最佳选择[3]。人体跌倒时,身体的加速度信息相比日常生活的正常动作会有很大的变化,通过分析人体加速度信息的变化,监护终端即可在使用者跌倒时正确识别并发出求救信号。加速度的测量使用三轴加速度传感器MMA7260。由于人体躯干运动的加速度幅值范围一般不超过±6 g[4],选取传感器的量程为±6 g。传感器输出的3个方向的加速度信号为模拟信号,分别经过一阶无源RC低通滤波电路之后由单片机的A/D转换接口转化为数字信号,然后根据实验得到的加速度传感器标定公式[5],计算出三轴加速度值,再由单片机进行算法分析,判断当前的人体姿态。
1.5 蓝牙通信模块
    蓝牙4.0将蓝牙技术、蓝牙低功耗技术及蓝牙高速技术3种蓝牙规格融为一体,考虑到本设计的无线传输和低功耗需求,选取以TI 公司CC2540为主芯片的蓝牙模块。该模块采用Bluetooth Specification V4.0 BLE协议,支持AT指令,工作频率为2.4 GHz。健康监护终端通过蓝牙模块与智能设备进行数据交互,蓝牙模块的波特率设置为57 600 b/s,8 bit数据位,无校验位,无停止位,工作模式为从设备模式。监护终端向智能设备发送的数据包主要有模块自检信息、控制命令应答信息、功能设置信息、系统运行状态、监护波形数据和生理参数数据6种。数据包通过和校验方式,将包ID、包长度和N个数据累加和作为校验位,其基本格式为:包ID+包长度+数据1+…+数据N+校验位。
2 系统软件设计
2.1 系统工作主流程

    多参数健康监护终端的主程序流程图如图3所示。系统的主要工作流程分为以下几个部分:
    (1)系统各个工作模块初始化配置,包括ADC、DAC、UART、SPI、显示屏和蓝牙模块等;
    (2)人体姿态监测以及心电、脉搏波信号的采集、分析、显示和存储等;
    (3)生理信息出现异常时触发报警功能,包括声音报警和振动报警;
    (4)通过蓝牙模块向智能设备发送当前监护数据或接收来自智能设备的控制命令。

2.2 生理信号采集时序设计
    从频域角度分析,心电和脉搏波属于低频信号,频带范围分别为0.05~100 Hz和0~20 Hz[6]。人体活动的加速度信号99%能量集中在15 Hz以下,因此要检测的人体活动的加速度频率一般低于20 Hz[4]。根据奈奎斯特采样定理以及系统设计需要,设定心电信号的采集周期为4 ms,光电脉搏波信号和人体加速度信号的采集周期均为12 ms。系统生理信号采集的工作时序图如图4所示。
    系统采用分时调度机制进行数据采集和处理。利用定时器Timer2定时1 ms并打开中断使能,定时中断函数为Func_Time1ms(),函数内容如下:
void Func_Time1ms (void)
{
    (*FuncT[FuncT_Index])();
    FuncT_Index += 1;
    if(FuncT_Index > 11)  FuncT_Index = 0;
}
其中FuncT是分时调度指针数组,其元素的变量类型是通过语句“typedef void(*pFUNT)(void);”来定义的。数组FuncT的元素类型为函数型指针,该函数的参数和返回值均为空,函数体分别为12 ms采集周期内每时间片执行的子程序。
3 生理信号处理与分析
3.1 数字滤波

    人体生理信号的采集常伴有工频和基线漂移等干扰,考虑到对于便携性和低功耗的要求,本文在硬件滤波电路基础上采用数字滤波方式进一步进行抗干扰处理。50 Hz工频干扰采用低通FIR数字滤波器进行滤除,本研究使用Matlab的FDAtool工具箱设计FIR数字滤波器。为了将其移至到STM32单片机上运行,还需对设计的滤波系数进行量化操作,将浮点型滤波器系数转化为整型系数,以提高运算效率。
    针对信号中的基线漂移干扰,采用滑动平滑滤波的方法实现基线漂移的抑制[7]。其算法过程为:首先读取待处理点x[n]前长度为m的数据,计算其平均值作为基线值,然后将所得基线值ybase[n]与处理点x[n]相减,得到基线处理后的值。心电信号和脉搏波信号的数字滤波处理结果如图5所示。

 

 

3.3 跌倒判断
    不同跌倒类型的信号在波形上存在很大相似度,在跌倒前后人体处于相对静止状态,测得的加速度值在重力加速度g附近波动,在跌倒发生的瞬间会有一段峰值大于A(A=2.5g)的尖脉冲出现,跌倒动作在时间T(T=1.5 s)内完成[10],并且在跌倒之后人体将处于相对静止状态。基于此,当系统检测到人体的真实加速度值大于A并且时间T之后人体加速度值小于B(B=1.2g)时即可判定使用者发生了跌倒。
4 结果与讨论
    本文设计了一款基于STM32单片机的微型多参数健康监护终端,其心电监测有3种导联采集模式和多种增益选择,心率的测量范围为30~250 b/min,精度为±3 b/min,血氧饱和度在90%~99%范围内精度为±2%,在70%~89%范围内精度为±3%。利用设计的健康监护终端对8名年龄为22~28周岁的受测者同时采集3导联心电信号和脉搏波信号,计算其心率和血氧饱和度值,每5 min测量1次,测量3次后取平均值,并与某商用监护仪的测量结果进行对比,结果如表1所示。由表中数据可知,采集的结果均在允许的误差范围之内。出于安全性考虑,由以上8名受测者在垫子上分别将前倒、后倒和侧倒3种跌倒动作重复10次,统计结果显示终端的报警正确率均在90%以上。
    设计的健康监护终端采用分辨率为320×240的2.6英寸LCD显示屏,实现的监护界面如图8(a)所示。该终端大小仅为80 mm×50 mm×10 mm,并可通过蓝牙与Android或iOS智能设备实现数据交互,如图8(b)所示。设计的多参数健康监护终端在检测到使用者发生跌倒时会发出声音和振动报警信号,并通过手机向他人发出求救。实验证明,本微型多参数健康监护终端具有功能全面、测量准确、界面友好和使用方便等特点,而其与智能设备的无线连接功能则进一步体现了远程医疗与远程保健服务的未来趋势,为国内智能化医疗与移动健康事业的发展提供了参考,具有很高的使用价值和广阔的发展前景。


参考文献
[1] 文军,何伟,王平,等.基于嵌入式系统的便携式多参数监护仪的研究[J].电子技术应用,2009,35(11):71-74.
[2] 秦玲,赖青贵,张良,等.基于运算放大器的压控恒流源[J].强激光与粒子束,2010,22(3):553-556.
[3] Zhao Guoru,Mei Zhanyong,Liang Ding,et al.Exploration and implementation of a pre-impact fall recognition method based on an inertial body sensor network[J].Sensors(Basel),2012,12(11):15338-15355.
[4] 谢开明.基于GPRS的跌倒检测报警系统的设计与实现[D].重庆:重庆大学,2010.
[5] 蔡骏宇,刘军,时枭鹏.基于MEMS的汽车制动性能道路测试技术研究[J].电子技术应用,2013,39(6):77-80.
[6] 赵治月,张爱华,杨华.基于心电信号的脉搏波形特征点提取[J].北京生物医学工程,2011,30(1):51-56.
[7] 胡晓.基于统计加权滑动平均的去心电信号基线漂移[J].生物医学工程学杂志,2012,29(1):51-54.
[8] RUSCH T L,SANKAR R,SCHARF J E.Signal processing methods for pulse oximetry[J].Computers in Biology and Medicine,1996,26(2):143-159.
[9] SCHARF J E,ATHAN S,CAIN D.Pulse oximetry through spectral analysis[C].In Biomedical Engineering Conference,1993,Proceedings of the Twelfth Southern,New Orleans,LA,USA,1993.
[10] 张爱华,王璐.基于三维加速度传感器设计的跌倒检测[J]. 中国组织工程研究与临床康复,2010,14(48):9029-9032.

此内容为AET网站原创,未经授权禁止转载。