APP下载

基于Android的心电监护系统设计

2015-10-20猛,吕卫,宋

电视技术 2015年14期
关键词:心电监护心电功耗

杨 猛,吕 卫,宋 垣

(1.天津大学 电子信息工程学院,天津 300072;2.南京炮兵学院廊坊校区,河北 廊坊 065000)

当今,随着社会竞争日趋激烈,生活压力日益增长,心血管疾病发病率也逐渐升高,并且出现心血管疾病患者年轻化的趋势。心脑血管疾病死亡率高、致残率高、发病率高,在人类死亡病因中占最高比重,成为人类健康的头号杀手。关注心脏状况,预防和治疗心血管疾病已成为社会研究热点。心电图对于监控心脏活动状态具有重要作用,所以便携式心电监护仪在家庭中得到了广泛应用。

市面上已有的便携式心电监护仪将数据采集模块、存储模块、显示模块集成于一体,使得功耗、成本居高不下,并且相比可穿戴便携设备略显笨重。可穿戴式设备在不影响用户正常活动的前提下,能够实时检测人体状态,且具有较低的功耗,因此具有更好的市场前景。

文献[1]提出了一种基于Android平台的动态心电图显示终端设计,其利用蓝牙实现ECG数据的传输,并将处理后的心电波形实时显示在Android终端。本系统与之相比,利用蓝牙BLE实现数据传输,蓝牙BLE是蓝牙低功耗版本,比传统蓝牙功耗更低,续航时间更长。另外,本系统除采集ECG数据外,还能采集呼吸数据,检测用户的呼吸频率是否正常。

1 系统设计与数据采集模块

1.1 系统工作流程

系统整体流程如图1所示。

图1 系统工作流程

1)数据采集模块负责从人体表面采集ECG数据和呼吸数据,并通过蓝牙BLE将数据传输到移动Android设备。

2)为确保Android应用软件在后台运行时数据的正常接收,在Service组件中实现数据接收。同时,在此组件中完成耗时较多的一系列数据解析、处理,并将处理过的数据在文件中备份。

3)由于Service组件是不可见的,为实现心电图的动态显示,需将处理好的数据暂存到Activity数据缓冲区。

4)通过绘图线程,将ECG波形显示于显示屏上。

1.2 数据采集模块

数据采集模块如图2所示,包括模拟前端ADS1292R、控制芯片CC2540、电池和SD卡。

图2 数据采集模块(照片)

ADS1292R采集电路具有高阻抗和高共模抑制比,适于采集微弱电信号;CC2540通过SPI接口读取数模转换器ADS1292R采集到的呼吸和ECG数据并通过蓝牙BLE传输给移动Android设备,其集成度高,功耗低。在不需要实时传输数据的情况下,该模块也可以将采集的数据存储到本地SD卡中。

2 应用程序设计

2.1 蓝牙BLE简介

蓝牙BLE技术是蓝牙4.0的核心技术之一,是对传统蓝牙BR/EDR技术的补充。与传统蓝牙相比,BLE具有缩短无线开启时间、快速建立连接、降低收发峰值功耗等特性,从而实现低功耗。传统蓝牙设备的一个重要缺陷是耗电量大,它使用了32个广播信道,而蓝牙BLE技术[2]仅使用了3个广播信道,且广播模式启动时间也由传统蓝牙的22.5 ms减少到0.6~1.2 ms,极大地降低了因为广播数据导致的待机功耗。此外,蓝牙BLE技术将传统蓝牙的空闲状态改进为深度睡眠状态,深度睡眠状态下功耗极低。广播阶段,蓝牙BLE技术避免了重复扫描,设备连接过程可在3 ms内完成,而传统蓝牙需100 ms以上。低功耗蓝牙对数据包长度进行了更加严格的定义,支持超短(8~27 byte)数据封包,并使用了随机射频和增加了GFSK调制索引,大大降低了数据收发的复杂性,有效降低了峰值功率。

Android系统为蓝牙BLE开发提供了专门的API。支持Android设备作为服务器或客户端与远端蓝牙BLE设备实现数据传输。

2.2 Android设备与心电采集模块通信流程

Android设备与心电采集模块通信流程如图3所示。数据采集模块将采集的数据通过蓝牙BLE传输给Android设备,数据包括ECG数据和呼吸数据,所有数据均以18个字节组成的数据包格式发送。接收到数据首先根据标志位判断属于哪类数据,分别做不同处理。对于ECG数据,由于数据量比较大,发送频率高,ECG数据包接收顺序可能会出现错误,所以接收到ECG数据后首先要根据数据包的序列号将数据调整为正确顺序。由于ECG数据和呼吸数据都是24位精度,而数据包格式是以字节为单位的,因此要将字节型数据调整为整型。由于采集的数据中存在工频干扰、基线漂移[3]等影响,需对原始数据进行一系列滤波处理,得到标准的ECG数据,然后将处理好的数据存入文件以备以后查看。以上操作运算量较大、耗时较长,是在Android应用程序Service组件中运行的,而Service组件是不可见的,这就需要将数据传输到具有可视化界面的Activity中。为使应用程序具有较好的运行性能,为Activity中的数据缓冲区设定阈值,当数据量达到阈值,将数据传入绘图线程,显示给用户。对于呼吸数据,由于不需要向用户显示呼吸曲线,只需在Service组件中将计算得到的呼吸率结果传递到Activity中显示给用户即可。另外,呼吸数据中会插入表示采集模块状态的状态位,例如电量低、导联脱落等信息;处理呼吸数据时,要检查这些状态位,并将状态信息通过通知及时反馈给用户。

图3 通信流程图

2.3 心电图绘制模块

开启心电图绘制线程[4]后,首先检查是否收到结束线程命令,若收到结束命令,则结束绘图线程,如果没有,则判断数据缓冲区中的数据个数是否大于5个,若大于5个,则以5个数据为单位在SurfaceView上绘制心电图[5],直到数据缓冲区中数据小于5个,否则睡眠50 ms,让出CPU资源,在下次获得CPU资源时,重复上述步骤。绘图模块流程图如图4所示。

图4 绘图流程图

绘制心电图时,若数据不足一屏,则原数据显示位置不变,新数据加在原数据之后;若数据个数超过一屏显示个数,则旧的数据前移,新数据始终出现在屏幕最右侧。心电图绘制效果如图5所示。

图5 心电图绘制效果(截图)

3 测试结果与分析

该软件的主要功能为接收并存储数据模块发送的心电波形数据,并将处理后的心电数据显示在显示屏上;另外,可及时将计算出的心率和呼吸率等参数显示出来,使用户可以更直观地了解身体状态。

测试时,首先令数据采集模块发送标准正弦波和方波,用Google公司的Nexus 7二代平板PC。经测试,平板PC可以正确稳定地接收数据而无丢包现象,并能够将接收到的波形数据实时显示到显示屏上。使用容量为800 mAh的充电电池做续航能力测试,数据采集模块可以持续工作72 h以上。

初步测试成功后,利用数据采集模块采集人体心电数据,绘制出心电图如图6所示。

实验表明,Android设备能够稳定、实时地接收数据,心电波形显示清晰、流畅,心电采集模块续航时间长,系统设计达到了预期目的。

图6 实测人体心电图(截图)

4 结束语

心电监护设备已经历了几十年的发展,正朝着实时性、便携性、智能化的方向发展。与当前现有的相关产品相比,本文设计了一种基于蓝牙BLE的心电监护系统,功耗低,续航能力强,实时性能良好,并且具有对心率、呼吸率是否正常的检测功能,便于用户使用。

[1] 杨德龙,褚晶辉,杨博菲,等.基于Android平台的动态心电图显示终端设计[J].计算机应用,2013(S2):283-285.

[2] 范晨灿.基于蓝牙4.0传输的Android手机心电监护系统[D].杭州:浙江大学,2013.

[3] 李刚,刘巍,虞启琏,等.抑制工频干扰及基线漂移的快速算法[J].中国生物医学工程学报,2000,19(1):99-103.

[4] 杨德龙.基于Android系统的蓝牙无线动态心电监护系统设计[D].天津:天津大学,2013.

[5] 崔浩然.基于Android平台的手机游戏的设计与实现[D].西安:西安科技大学,2011.

猜你喜欢

心电监护心电功耗
基于任务映射的暗硅芯片功耗预算方法
多参数心电监护仪日常故障分析与维护
心电向量图诊断高血压病左心室异常的临床应用
基于非接触式电极的心电监测系统
穿戴式心电:发展历程、核心技术与未来挑战
更正启事
心电监护仪电压测量不确定度的评估
揭开GPU功耗的面纱
基于Andriod平台的心电监护系统设计
数字电路功耗的分析及优化