基于STM32便携式健康监护仪系统设计
2022-09-14梁家辉梁冀黄灿胜卜宗炜梁兴健陆荣秋陈积燕卢香艳
梁家辉,梁冀,黄灿胜,卜宗炜,梁兴健,陆荣秋,陈积燕,卢香艳
(广西民族师范学院 数理与电子信息工程学院,广西崇左,532200)
0 引言
随着社会的进步和经济的发展,生活节奏飞快加速,持续快节奏生活的人们对自身健康问题的预防变的愈加重视,需要时常获取身体相关的生理参数,以防患于未然。为了能够更方便更快捷地诊断,便携式健康监护仪顺势走进大众的生活。为此,本文将以嵌入式技术为基础,以模块化为思想,选用低功耗高集成的传感器设计一种便携式健康监护仪系统。
1 系统总体设计方案
本文设计的便携式监护仪系统是以STM32F407ZGT6为MCU与多个生理信号采集模块相结合的嵌入式设备。主要分为两部分:生理信息采集单元和系统主控单元。生理信息采集单元包含:心电采集模块、心率采集模块、红外测温模块、血压模块和计步器,该部分的传感器主要用来获取人体的生理信号,再进行简单的放大、滤波后,把获取的生理信息整理存储到内部RAM,通过内置的通信协议传输给主控单元。主控单元由STM32F407ZGT6芯片作为核心,STM32F4微处理器对采集单元传输的数据进行接收、解析、滤波处理后,将检测结果通过TFTLCD可触摸液晶屏实时显示,同时也可以通过无线WiFi模块和手机通信,通过手机查看监测结果。电源部分为可充电的锂离子电池,容量大,设备续航久,并且充电和监测工作可同时进行。
系统的总体设计图如1所示。
2 系统的硬件结构
■2.1 主控单元处理器的选择
对于基于嵌入式技术开发的设备,MCU性能的好坏直接影响到系统的可靠性与稳定性,为满足系统能有强大的处理能力和丰富的外设接口,本设计选用STM32F407ZGT6作为核心处理器,它是一款32位高性能ARM Cortex-M4内核微处理器,最高工作频率高达168MHz,还具备了增强的DSP指令集,它比STM32F103具备更大的Flash、SRAM容量和更丰富的外设接口,为了使系统的稳定与功耗,本系统MCU使用STM32F407ZGT6,既满足了系统的性能要求,也方便日后对该系统的功能进行改进和补充。
■ 2.2 心电模块设计
本系统采用的心电采集模块为ADS1292,这是德州仪器的一款医用级ADC芯片。ADS1292具有24位高分辨率同步采样模数转换器(ADC)、内置低噪声可编程增益放大器(PGA)和右腿驱动(RLD)等电路,凭借高集成度和出色的性能,采集信号的复杂度和功耗都大大降低,也方便设备小型化,适合为长时间工作的便携式监护设备使用,ADS1292电路设计如图2所示。
图2 ADS1292电路设计
设计系统采用的是单通道三导联方式,使用三根电导线通过电极片贴在人体上半身(胸导联),其工作方式是:心电描记术(ECG)是一种以时间为单位记录心脏的电生理活动,在心脏搏动前后,心肌会发生激动,激动过程中产生微弱的生物电,利用贴在皮肤表面的电极,采集皮肤上出现的微小电信号,并将其在时间轴上描记出来构成心电图。
本设备采集的工作原理是:用三根导联线与ADS1292的输入接口相接,当电极采集到的身体特定位置的微弱生理电信号输入到芯片后,首先,通过模块内置的电路将信号放大提高输入阻抗;其次,使用24位的高速A/D转换器将模拟信号转为数字信号,再经过数字滤波器获得较为准确的心电数据,芯片通过SPI通信协议与主控通信,最后主控接收到信号后进行心电图的绘制以及参数可视化。
■ 2.3 心率模块设计
本系统采用的心率采集模块为MAX30102。芯片可分为两部分如图3:模拟信号采集电路和数字处理电路,模拟信号采集电路由一个600nm红光LED、800nm红外光LED、和能抑制环境光的低噪声元器件。数字处理电路包含18位高速ADC、数字滤波器、FIFO数据寄储器等。使用光电容积法(PPG),检测时需要测量者将手指或者手腕放置在RED和IR灯上保持不动,当LED灯发出特定波长的光射向人体皮肤,血管的搏动会导致透光率变化,此时,采集透过皮肤返回的光,经过PD管将光信号转为电信号并由18位ADC转换器转为数字信号,由ADC转换后的原始数据进行数字滤波处理后放置于数据寄存器,主控单元通过IIC通信协议读取芯片寄存器的数据,由于心脏的搏动脉搏是周期性的变化,所以读取电信号的变化周期就可以计算出心率。心率模块电路设计如图3所示。
图3 心率模块电路设计
■ 2.4 红外测温模块设计
体温测量采用MLX90614非接触式红外温度计,内部嵌入了两个电路单元,一个是红外热电堆检测器(传感单元),另一个是信号调理DSP器件(计算单元),两个单元都集成在同一TO-39罐封装中。红外热电堆传感单元将采集到的红外辐射转为电信号,经过内部低噪声、低失调运算放大器(OPA)放大后,在由A/D转换器通过低通数字滤波器(DSP)处理后输出,最后把使用公式计算出的结果存储到MLX90614内部的RAM中,数据可以通过串SMBus串行总线和PWM方式供STM32F4主控单元读取与输出。红外测温电路如图4所示。
图4 红外测温电路
■ 2.5 血压模块
本系统采的用血压传感器为HKB-08B,使用USB接口与MUC连接的臂式血压测量模块,操作简单,测量精度高,可以快速的获得人体的收缩压、舒张压和心率。由STM32F4主控单元通过发送固定的控制命令,当传感器接收到指令后开始测量,再把获取的数据通过串口传输至处理器。
■ 2.6 计步器
计步采用MMA9555L智能体感计步器,它由MEMS加速度计、32位CildFire微控制器、模拟前端、Flash以及通信接口等组成。本系统中MMA9555L与MCU之间通过I2C接口通讯,主控发送配置参数至MMA9555L配置寄存器,配置完对应的参数,当人体运动时,三轴加速度的值存进状态寄存器,然后主控可直接读取MMA9555L状态寄存器数值,通过运算解析即可获得步数。电路如图5所示。
图5 计步器电路设计
■ 2.7 电源设计
为了设备更方便更稳定的使用,电源部分的设计采用可充电的锂离子电池给系统提供电源,设计的系统为设备设计了一套完整可靠的电源电路。如图6所示,电源分两部分:恒流充电充电电路和升压电路。恒流充电充电电路部分实时监控电池充电电流,因为电池在没有专门恒流充电电路的情况下将会以自身最大输出输入电流进行充电,这种情况下将会导致过大的充电电流通过电路,电路温度升高,甚至损坏电路,由此引入锂电池充电控制IC TC4056A及其外围电路组成锂电池恒流充电电路,并外接2颗LED指示电池的充放电状态。由于锂电池电压范围为3.7~4.2V而电路一些传感器等功能电路所需要的供电电压为5V所以在有锂电池充电保护电路的情况下再设计一个锂电池升压电路,将锂电池输出的电压,而本设计通过使用ME2109FM5G芯片以及搭配SC8205双P沟道MOS实现BOOST升压,通过BOOST升压电路提高输出电压至5V。
图6 充电电源设计电路
3 系统的软件设计
便携式监护仪系统软件开发环境是基于Keil MDK5,开发语言是C语言。本系统的软件设计也是以模块化的编程思维,采用自顶向下的设计方式,设计好软件系统的总体流程,再根据系统的功能划分为几个功能模块,功能模块再划分为多个小模块,由主程序调用子程序来实现系统的功能,等待硬件设计制作完毕后,再进行整体的调试。我们根据系统的功能划分为三个板块:生理信号采集单元、主控单元、上位机。从架构上可以分为下位机应用程序设计和上位机软件设计。
下位机应用程序设计:主要是以STM32为平台的应用程序设计。主要是任务是完成对微弱生理信号的采集、放大、以及滤波,进行数据打包传输、把解析后的数据利用TFT-LCD可触摸液晶屏完成参数可视化和心电图的绘制和WiFi无线通信等。该部分的程序执行流程图如图7所示。这个部分的难点在于如何对生理信号的滤波处理,整体的设计思路是:先完成对STM32F4主控的初始化,在完成各传感器的程序编写,主程序是无限循环的,通过触发中断的方式调用相对于功能的子程序实现相关功能。
图7 下位机程序设计流程图
上位机软件设计:上位机的APP主要是用来实现下位机采集完数据后,接收其测量数据发送到手机端上进行显示。本系统上位机还用于分析接收到的下位机数据是否超出人体正常范围,如超出人体正常范围,则除了发送测量数据到手机端外还进行相应的警告。上位机设计流程图如图8所示。
图8 上位机设计流程图
4 系统主要功能的测试以及分析
■ 4.1 心电和心率的测试
系统首先使用了SKX-2000D心电发生器来模拟人体心电,设置输出的幅值为1mV,BPM为80的心电信号,测试心电采集部分的IIR数字滤波算法的效果,通过LCD液晶屏显示或者上位机,经过测试发现测试模拟心电信号误差极小,故上人体检测。模拟信号测试如图9所示。
图9 模拟心电
系统使用三导联方式,黄色LA放在左胸偏上,红色RA放在右胸偏上,绿色RL放在右腹部,经过测试人体心电波形的绘制显示正常,如图10所示,测试结果显示,测试的心电波形能满足日常健康监测需要,但与大型医用专用设备存在一定的误差,这是由于芯片和硬件电路板的设计有关,同时软件的数字滤波算法也存在一定的不足,还需要进一步改进,不过日常健康监测以达到满足。
图1 便携式监护仪系统总体框架图
图10 人体心电测试结果
■ 4.2 血压测试
测试血压主要是采集收缩压,舒张压和平均压,成人的正常收缩压为90~140mmHg,舒张压为60~90mmHg,在这两个参数之间都属于正常范围,经过系统测试(以成年人为测试对象),参数都处于正常范围,且误差不大,如图11所示。测试血压的功能也满足系统的设计要求。
图11 血压测量结果
5 结语
本文基于STM32嵌入式技术针对心电、心率、血压、体温等重要的人体生路参数来设计了一款便携式健康监护系统。本文的软件硬件都是采用模块化的思想,方便了对人体生理参数进行监测,在预防疾病和观察疾病方面起到了作用。
虽然本设计的便携式健康监护仪实现了对心电、心率、血压、体温生理信号的采集与监测,但是由于知识水平局限,设计的电路板集成度还不够高,软件的算法还可以进行进一步优化。