基于STM32与Android的远程心电监测分析系统

2017-09-08 19:36周童桐毛维安王丹瑶闫丽
物联网技术 2017年8期

周童桐+毛维安+王丹瑶+闫丽

摘 要:常规心电监护设备活动局限性强,难以携带,且无法进行远程监测。文中设计了一种远程心电监测分析系统,该系统使用AD8232模拟前端进行心电采集,并由STM32微处理器处理信息,通过Android设备进行数据中继,经由WiFi或3G/4G网络与PC机实现远程监测分析,因而能够实现心电波形绘制,心率计算,频谱心电图分析,信息保存等功能。具有功耗低,成本低,精度高,体积小,易携带等特点。测试结果表明该系统运行稳定,各项功能均可达到设计要求,并在移动健康、智慧医疗等领域具有一定的实用性和广泛的应用前景。

关键词:心电监测;STM32;Android;频谱心电图

中图分类号:TP393;TP274 文献标识码:A 文章编号:2095-1302(2017)08-00-04

0 引 言

近年来,在人民生活水平不断提高的同时,生活压力的加大和较少的运动使得近年来心脏疾病的发病率大大上升。因心血管疾病具有病情隐蔽,突发性强,危险性高的特点[1],故对高危人群进行日常监测,远程诊断,对异常情况尽早发现并予以治疗是一种行之有效的办法。传统的心电监护设备价格昂贵,体型笨重,难以实现日常监护。现虽有一些手持式心电监测设备[2,3],但功能较少,不能连续监测及远程数据传输,且普遍不满足可穿戴的要求。因此,对于能够连续监测患者心脏状况,同时不限制患者活动空间的穿戴式心电监护设备的研究十分必要。

1 总体设计

由于现有设备不足,本文设计制作了一套基于STM32与Android系统的远程心电监测分析系统。首先由单导联电极采集心电信号,经由AD8232为核心的调理电路进行放大和模拟滤波;再由以STM32F103C8T6芯片为核心的数据处理模块进行A/D转换,并通过数字滤波器进行工频陷波处理和高通滤波处理优化信号后,由蓝牙串口发送至Android客户端;之后由Android端程序对数据进行分析,绘制波形,对异常情况进行提醒报警,同时也作为系统的数据中继,通过设置远程PC对应的IP端口,将数据通过建立的TCP连接发送给PC端程序供专业人员查看与分析;PC端程序具有心率计算、频谱分析、波形绘制、数据存储等功能,且支持多用户连接。系统总体框架如图1所示,其中心电采集与调理电路、信号处理及发送电路为下位机部分,Android客户端、远程PC端为上位机部分。

2 系统硬件设计

系统硬件设计由心电调理电路与信号处理发送电路构成,作为ECG信号采集和处理的核心,为后端提供纯净的数字化心电信息。下位机硬件整体大小控制在4.5 cm×5 cm×1.5 cm之内,通过聚合物锂电池供电,制成腕带式装置供佩戴使用。

2.1 心电采集与调理电路的设计

心电采集与调理电路部分需将频率为0.05~100 Hz,幅值约1 mV的心电信号进行滤波提取并放大约1 000倍。故采用ADI公司推出的用于生物电测量的AD8232芯片;其在4mm×4 mm的范围内集成了仪表放大器、增益放大器、右腿驱动电路等[4]。相较由分立元器件组成的采集电路更节省空间与功耗。

AD8232内置的仪表放大器可將采集信号放大100倍并对近直流信号进行滤波[5]。仪表放大器原理如图2所示。

芯片内置双极点高通滤波器,原理如图3所示。滤波器截止频率应设为0.05 Hz。参考公式(1),可取R1=R2=10 MΩ,C1=C2=330 nF。

(1)

AD8232提供了一个非专用运算放大器,用于低通滤波及额外增益,其低通滤波器原理如图4所示。滤波器截止频率设为100Hz,增益为10。参考公式(1)、(2),可取R1=R2=160 kΩ、R3=0.9 MΩ、R4=0.1 MΩ;C1=C2=10 nF。

(2)

2.2 信号处理电路的设计

信号处理电路部分采用ARM Cortex-M3内核的STM32F103C8T6作为主控芯片,在硬件资源满足设计需求的同时,能大大减小所占空间,降低功耗,减少成本,满足穿戴式设备的特点。此处使用的是由该芯片构成的最小系统,尺寸仅为2.3 cm×5.3 cm×0.3 cm,包含晶振,复位电路,SWD调试接口等。

2.3 无线传输模块设计

对数字滤波优化后的信息进行数据帧编码,并传送到Android客户端。为兼顾低功耗与小体积,采用搭载TI公司CC2240芯片的蓝牙透传模块HC-08作为无线传输部分的主体,其采用Bluetooth 4.0协议,该技术不仅具备极低的运行和待机功耗,还提高了传输距离。

3 系统软件设计

系统软件由下位机的嵌入式应用程序与上位机的面向用户应用程序(Android客户端及PC客户端)组成。下位机程序的功能是进行信号采集、滤波、编码与发送;Android客户端程序用于显示波形及信息、中继数据、提醒报警;远程PC客户端程序进行数据分析、保存、绘图等。

3.1 单片机数据处理

作为下位机数据处理的核心,由STM32芯片构成的最小系统承担心电信号A/D转换,数字滤波以及蓝牙发送的任务。程序流图如图5所示。

3.1.1 心电信号A/D转换程序设计

STM32内部具有12位A/D转换器,最高采样频率可达1 MHz[6]。心电信号的频率主要分布在0.05~100 Hz间,根据Nyquist采样定理,采样频率至少应设置为200 Hz,此处可将采样频率设置为500 Hz。同时将ADC配置为独立模式、连续转换、外部触发,并禁止扫描模式。

经调理电路处理后的心电信号传送至单片机ADC的1通道接口PA1上,使用DMA方式进行外设到内存的数据传输,DMA配置的关键代码如下:endprint

DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;//外设作为源

DMA_InitStructure.DMA_PeripheralBaseAddr=ADC1_DR_Address;//ADC基地址

DMA_InitStructure.DMA_BufferSize=100;//DMA通道的DMA缓存大小

DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;//循环传输模式

此外,由于心电数据是一个连续传输的过程,故在进行DMA传输时可采用乒乓缓冲的原理,在内存中开辟两个缓冲区BUF1和BUF2,根据空闲标志交替进行数据存储和处理,可提高CPU处理数据的效率并有效避免数据丢失[7]。

3.1.2 数字滤波器程序设计

在实际应用中,50 Hz工频噪声是一种常见干扰,需设计陷波器滤除工频干扰;对于呼吸或肢体活动引起的基线漂移则可通过设计一个下限截止频率为0.5 Hz的高通滤波器消除。

在数字信号处理中,有IIR和FIR两种设计固定频率滤波器的方式,对于同样的滤波器幅频特性指标,FIR滤波器要求的阶数一般比IIR高5~10倍[8],导致运算量及信号延迟增大。故设计的数字滤波均使用IIR滤波器实现。

通过Matlab中的滤波器分析设计工具FDATool可直接生成滤波器参数,使用C语言导出在STM32芯片中使用。此处设计的工频陷波器的系统函数为:

高通滤波器设计方式与陷波器类似,此处设计的0.5 Hz高通滤波器的系统函数为:

3.2 面向用户的Android客户端设计

Android客户端程序基于Java的可扩展开发平台Eclipse开发,其功能包括远程数据中继、心电波形绘制、接收远程PC分析结果、异常报警等。Android客户端的主要组件如下:

(1)蓝牙接收:该部分负责与下位机的蓝牙发送端建立无线通信链路,进行数据传输;程序启动后,调用设备蓝牙,打开BTAccept线程,侦听蓝牙所接收的数据;根据预设的数据帧协议,检测到标志位后将数据帧解封装并存入缓冲区,供SurfaceView控件及Socket Thread线程使用。

(2)网络服务:Android客户端程序在整个系统中最核心的作用即将数据中继至远程PC,故网络服务组件负责根据用户输入的IP地址与端口,初始化后与远程PC建立网络连接,通过Socket Thread网络收发线程与远程PC机进行数据交互,递送心电信息的同时接收分析结果。在此过程中建立TCP连接来提供可靠的数据传输服务,可有效避免数据丢失[9]。

(3)绘图模块:设备从下位机接收到可以识别的数据后,使用SurfaceView控件绘制心电波形,供用户查看。

(4)短信发送:根据传回的分析结果进行判断,若有异常则可通过该组件给用户事先保存的联系人发送提示信息。

Android上位机程序流图如图6所示。

3.3 远程PC上位机程序设计

PC机程序采用C++编写,与Android客户端通过WiFi或3G/4G网络实现远程数据传输,其主要功能如下:

(1)实时显示用户的心电波形,供专业人员查看。

(2)允许多用户接入,可根据需要进行选择,拓宽系统的应用场景。

(3)分析QRS波,采用动态阈值R波检测,获得并显示心率信息,同时传送至Android客户端。

(4)运用FFT蝶形算法计算心电信号的频谱,获得频谱心电图(French Catheter Gauge,FCG)。

(5)可保存ECG数据到计算机中随时查看。

远程PC端程序流图如图7所示。

4 实验结果

使用本文设计的系统进行实验,测试现场如图8所示。使用标准三导联线与下位机(腕带装置)连接,导联电位点如图9所示。下位机与Android客户端应用建立蓝牙连接后,Android端所绘制波形及接收参数如图10所示。Android与远程PC上位机建立TCP连接,PC机绘制的波形及FFT频谱分析分别如图11、图12所示。

从实验结果中可以看出,应用该系统所采集的心电信息较为完整,波形清晰,噪声干扰小,无明显的基线漂移现象;经24小时连续使用测试,系统仍可正常工作,具备全天候持续监测及实时数据交互的能力。

5 结 语

本系统通过AD8232集成前端采集并初步处理信号,通过STM32微处理器进行A/D转换、数字滤波并发送信息,借助常用的Android通讯设备实现数据中继、信息显示、异常提醒等功能,通过PC上位机实现远程监测、波形保存、信息分析、结果回传。同以往的便携式心电监测设备相比,本系统使用AD8232模拟集成前端进行放大滤波,并将远程网络传输通过Android设备实现,从而极大地节省空间与成本,降低系统总体功耗,并使之具备远程监测和易于携带的特点。經实测,该系统可实现多种环境下长期稳定的心电信息监测与分析,在移动健康及智慧医疗等物联网领域具有一定的实用性和广泛的应用前景。

参考文献

[1]陈伟伟,高润霖,刘力生,等.《中国心血管病报告2014》概要[J].中国循环杂志,2015,31(7):617-622.

[2]张鹤,夏利,孙丹.基于ARM11的便携式心电监护系统[J].微型机与应用,2015,34(7):86-89.

[3]卢潭城,刘鹏,高翔,等.基于AD8232芯片的便携式心电监护仪设计[J].实验技术与管理,2015,32(3):113-117.

[4]佚名.低成本、低功耗、小尺寸心率监护仪功能模块[J].电子产品世界,2012(10):23.

[5] Analog Devices ,Inc.Single-Lead Heart Rate Monitor Front End[Z]. Norwood ,Massachusetts ,United States of America: Analog Devices,Inc.2012.

[6] STMicroelectronics. Mainstream Performance line, ARM Cortex-M3 MCU with 64 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN[Z].Geneva, Swiss Confederation: STMicroelectronics.2015.8

[7]赵圣飞.基于STM32的数据采集存储系统的设计与实现[D].太原:中北大学,2014.

[8]高西全,丁玉美.数字信号处理(第三版)[M].西安:西安电子科技大学出版社,2008.

[9] JF Kurose,KW Ross. Computer Networking: A Top-Down Approach(Sixth Edition)[M].Upper Saddle River ,State of New Jersey ,United States of America: Addison Wesley Longman,2013.endprint