基于STM32的多功能心电信号监测系统设计

1 系统总体方案设计

系统由STM32F103微处理器模块、ADS1292R心电采集模块、LMT70体表温度传感器模块、ESP8266无线WiFi模块、MMA955L加速度计模块、系统电源、PC服务端等组成。STM32F103作为主控制器实现对人体心电信号、体表温度信息、走路运动信息的实时采集、计算、显示与无线传输。系统总体结构框图如图1所示。

基于TI模拟前端芯片ADS1292组成的心电信号采集模块,完成对心电信号的采集、放大、滤波及24位高精度AD 转换。

STM32F103微处理器控制读取模块的数字量输出信息,并通过阈值判断统计人体的心率,并驱动TFT 液晶屏显示瞬时心率值,同时将ADS1292心电采集模块的心电波形信号在TFT 液晶屏动态显示,方便使用者观察与读取。

STM32F103 微处理器通过控制外置16 位ADC 芯片ADS1115采集LMT70 的电压信号的数字量信息,并通过校准在OLED屏显示使用者的体表温度信息。

基于加速度传感器MMA9555L推算运动者的步数与运动距离,并传输到OLED屏上动态显示温度与运动情况。

最后,利用WiFi模块ESP8266实现无线传输,在电脑端显示出动态的心电图、体表温度和运动信息。整个前端子 系统都由3.7V可充电锂离子(Li-ion)电池供电。

2 系统硬件设计

2.1 心电信号集成模拟前端采集电路设计

本系统模拟前端采用TI公司的集成芯片ADS1292R,该芯片是2通道、24位模拟前端,非常适合于高精度、同步、多通道生物信号的前端检测,芯片片内集成了2个低噪声可编程增益放大器(PGA)和2个高分辨率ADC,每通道具有灵活的输入多路复用器,此多路复用器可独立连接至内部生成的信号,实现测试、和温度持续断线检测。此外,可选择输入通道的任一配置生成右腿驱动(RLD) 输出信号。

芯片功耗低数据传输速率高,单通道功耗只有335μW,采用5mm×5mm、32引脚薄型四方扁平封装(TQFP),工作时的数据速率高达8kSPS。通过器件内部激励灌电流或拉电流,可在器件内部执行持续断线检测。适合便携式、低功率心电和呼吸信号采集场合使用。

集成芯片ADS1292R的通道1(IN1P和IN1N)用于采集呼吸信号,通过提取左臂(left arm,LA)和右臂(right arm,RA)两个电极信号,采用阻抗式呼吸检测法获得。通道2(IN2P和IN2N)用于采集心电信号,ADS1292R内部右腿驱动电路选择通信号加载在人体上,从而降低共模干扰。

心电信号和呼吸信号在芯片内部通过对电磁干扰信号的滤波、可编程放大器6倍放大以及模/数转换器后,再将数字信号输入到单片机进行处理。心电采集前端调理设计电路如图2所示。

                                                               图2 心电采集电路

图2中外部电路主要包含滤波电路和右腿驱动电路。电路使用阻抗检测的方法,使用高频方波输入到人体,然后经过电路滤波后计算出2片电极之间的阻抗变化的大小。另外ADS1292R内部也包含EMI电路可以对电磁干扰进行滤波。右腿驱动一方面可以去除共模电压,通过放大器反向放大之后输入到人体,另一方面提供了一个电压抬升,将测量电压抬升到(AVDD+AVSS)/2左右,保证了输入电压是在芯片的检测范围内。

2.2体表温度采集电路

温度采集传感器选用TI公司的超小型、高精度、低功耗互补金属氧化物半导体(CMOS)模拟温度传感器LMT70。该传感器测温精度在-20~90 ℃范围内,误差为±0.2℃(最大值),工作时电源电流只有9.2μA左右,热耗散低于36μW,这种超低自发热特性支持其在宽温度范围内保持高精度。LMT70具有一个线性低阻抗输出,支持与现成的微控制器无缝连接,非常合适便携式、低功耗、高精度人体体表温度测量。

 体表温度传感器电路如图3所示, 其中100nF的旁路电容吸收电源中可能的高频干扰。考虑到体表温度测量精度要求较高,选用了外置的16位分辨率的高精度模数转换器ADS1115。ADS1115具有一个板上可编程增益放大器(PGA),可提供从±256mV~±6.144V 的输入范围,从而实现精准的大小信号测量。ADS1115还具有1个输入多路复用器(MUX),可提供2个差分输入或4个单端输入。另外其在连续转换模式流耗只有150μA,保证了设备的低功耗。ADS1115与LMT70的连接示意图如图4 所示。

 

2.3 运动信息测量模块

本设计运动信息测量选用飞思卡尔公司(编者注:2015 年被恩智浦半导体收购)的一款计步传感器MMA9553L,它集成了1个高精度、高分辨率的MEMS加速度传感器,1个32位低功耗嵌入式微控制器(MCU),闪存,和管理其他传感器的专用架构。能够准确统计步数、检测步长,具备阈值检测或唤醒检测功能,非常适合便携式或可穿戴式应用。

2.4 无线传输模块

本设计的无线通信电路选用ESP8266 WiFi串口模块。从WiFi接收到数据,串口输出;从串口接收数据,WiFi输出数据。其有3种运行模式:串口无线WiFi(COM-AP)模式,串口无线STA(COM-STA)模式,串口无线AP+STA(COM-AP+STA)模式。在程序中设置有各种模式,可自主选择哪种模式。ESP8266 WiFi串口模块电路原理图如图5 所示。

                                                      图5 ESP8266电路原理图

3 系统软件设计

3.1 心率的计算

心率的计算需要定位ECG信号的R波,通过计算相邻R波的间期得到心率。给定一段离散心电信号{x(i),i =1, 2,…, N},采样频率为fs(单位:Hz),计算心率的具体步骤如下。

1)设定幅度阈值Ta,从x(1)开始搜索,将x(i)≥Ta的序号i组成序列{a( j)},直到x(N)停止搜索。

2)创建序列{p(k)},令p(1) = a(1)。从a(2)开始搜索,若 a( j) − a( j −1) >1, j≥2,则令 p(k) = a( j −1),p(k +1) = a( j),k≥2。

(3)设{p(k)}含K个元素,则在N / fs 秒内R 波的个数为K / 2,平均心率为:(K / 2) / (N / f ) 60 s × 次/ 分。R 波波峰位置依次为 [ p(k −1) + p(k)] / 2 取整, k≥2,由相邻R 波间期计算瞬时心率。

3.2 系统软件设计

由于系统要实现动态心电图的显示、体表温度和运动信息检测以及在服务端能实时显示各项内容,所以我们的程序主要分为5个部分:心电检测部分、体表温度测量部分、运动信息检测部分、无线通信和液晶显示。通过主程序调用不同的子模块来实现相应功能。系统软件结构框图如图6所示。

 心电信号的检测与处理是系统的核心部分,该部分的软件流程图如图7所示。

           图7 心电检测软件流程图

4 系统测试

4.1 系统测试

首先使用心电信号模拟发生器作为信号源,测试心电信息。然后选择被测者坐姿为端坐时的心电信息然后与心率测量仪产品比对测量结果。
对于体表温度检测,从LMT70得到的原始数据,由于其与实际温度有一定的偏差,于是根据不同的温度段来由不同的拟合曲线来校正,因此校正以后传感器所测温度得到很大程度改善。采用了温度范围为0~100 ℃的酒精温度计来作为实际标准温度对系统进行测量比对。

对于运动情况,加速度传感器MMA955L通过串口经过处理可以输出步数,再根据步频、身高、性别等来估计出一步的步距,进一步计算出走路的距离。无线通信部分,将心电信号模块作为WiFi热点,与温度运动模块和计算机客户端组成通信网络实现心电信号波形、体表温度、步数及距离的实时传输与显示。图8是体表温度测量时的温度拟合曲线。

 图8 体表温度测量拟合曲线

4.2 测试结果

心电采集部分,在实验室对使用者进行20次测试,心电输出波形如图9所示,心率数据如表1所示,心电输出信号波形稳定,心率相对误差在3%以内。

 图9 心电信号采集输出波形

表1 心率实验测试

 对3名使用者多次重复测试掌心与腋下温度,以实验室0~100℃的酒精温度计为参考标准,温度平均误差约为0.3℃。使用者在佩戴好测试设备后,在实验室5m长的走廊上来回走步运动测试,测试运动步数记录相对误差小于1%,运动距离记录相对误差小于5%。

5 结束语

针对目前生理参数监测系统智能化、便携式、可穿戴的趋势特点,本文基于成熟集成电路芯片结合部分外围电路和嵌入式系统软件设计了多功能心电信号监测系统,可以完成对人体心电、运动姿态以及体温生理信息实时采集、计算、显示与无线传输。系统具有精度高、性能稳定、使用方便、成本低等特点,可为生理信息等微弱信号采集、监测、处理等方面的研究与开发提供有益参考。

【需要项目资料请入群:769843038】:下方为实例教程。

智能温控小风扇

超声波雷达测距仪

智能小车设计

小米手环软硬件开发技术

无线射频

智能农业沙盘

小米体重秤技术开发

智能交通沙盘

物联沃分享整理
物联沃-IOTWORD物联网 » 基于STM32的多功能心电信号监测系统设计

发表评论