基于Android移动式心电监护系统的设计
2014-08-06陈心浩陈军波
陈心浩,马 恒,陈军波
(中南民族大学 生物医学工程学院,武汉 430074)
据统计,全世界人口中心脏病和心血管疾病的发病率在10%~30%之间,并逐年呈上升趋势.心脏病作为常见的慢性疾病越来越受到人们的重视,因此对心脏病的检查和预防具有非常重要的意义[1].
目前使用的心电监护仪一般是通过线缆连接实现心电数据的传输,这样的设计大大限制了被测人员的活动自由[2].随着无线通信技术的快速发展,近年来,一些科研院所研发出便携式无线心电监护设备,如基于ZigBee的心电监护仪.它们虽然可以实现心电数据的无线传输,但其价格较高,难以普及推广.
本文提出了一个基于Android平台的心电监护系统,充分利用智能移动终端,结合心电采集模块、蓝牙接口、3G无线网络等,完成心电数据的实时采集、分析处理以及网络传输,大大降低监护成本,并提高心电监护的便捷性.
1 系统总体结构
基于Android的移动式心电监护系统的总体框图如图1所示.本系统分为心电采集板、Android智能手机及远程医疗中心.
图1 系统的总体框图Fig.1 The overall block diagram of the system
2 心电采集板设计
心电采集板由微控制器、信号的采集及预处理电路、电源、串口蓝牙电路、SD卡、LED指示器等部分组成.在本设计中,选用功耗低、处理能力强、含有ARM32内核Cortex-M3的微控制器STM32F103ZET6[3],以及TI公司推出的24位心电信号处理模拟前端ADS1298.在STM32F103控制下,ADS1298完成心电信号提取、放大、滤波以及模数转换,STM32F103将转换后的ECG进行数字滤波后再存储至SDCARD.STM32F103通过扩展的蓝牙通信接口电路实现心电数据至Android智能手机之间的无线通信.下面分3个部分进行介绍:ADS1298外围电路设计、蓝牙串口电路设计及心电信号的数字滤波处理.心电采集板的框图如图2所示.
图2 心电采集板框图Fig.2 Diagram of the ECG acquisition boards
图3 ADS1298初始化流程图Fig.3 Flow chart of ADS1298 initialization
2.1 ECG信号的检测与提取
为了降低ECG采集系统的功耗并提高系统的便携性和可靠性,本文采用TI的低功耗模拟前端ADS1298完成心电信号的采集与处理.ADS1298包含 8 个模数转换器 (ADC)、8 个可编程增益放大器 (PGA)、8 个有源滤波器以及速度检测接口、导联脱落检测、参考电压与右腿驱动 (RLD).ADS1298在STM32控制器下,完成心电信号采集、放大滤波以及A/D转换[4].
ADS1298作为SPI从设备挂载在STM32的SPI1外设上.由于ADS1298是高度集成化的模拟前端,内部模块较多,必须严格按照其初始化时序进行操作才能保证采集到的数据的稳定.ADS1298初始化流程图如图3.
2.2 蓝牙串口电路设计
智能手机标配蓝牙、WIFI通信接口.本系统选择蓝牙通信方式实现STM32单片机与Android手机之间的数据交互.蓝牙模块外围电路图如图4,STM32单片机将采集到的心电数据以异步通信的方式发送给蓝牙模块,蓝牙模块将数据转发至手机.本系统中串口通信的波特率设置为9600bit/s,工作方式设置为8位数据位,1位停止位,0位校检位[5].
图4 蓝牙模块外围电路Fig.4 Bluetooth module peripheral circuit
2.3 数字滤波算法实现
经ADS1298模拟前端处理过的数据会受到呼吸、工频等噪声的影响,因此传感器采集到的数据需采用数字滤波器进行进一步处理[6].
为滤除高频噪声,利用Matlab的Filter Tool设计了IIR巴特沃斯数字低通滤波器,其技术指标为Fp=100Hz,Fs=102Hz,Ap=1dB,As=80dB.
为滤除呼吸等低频干扰,消除基线漂移,设计切比雪夫高通滤波器,技术指标为Fs=0.5Hz,Fp=4Hz,Ap=1dB,As=80dB.
为了滤除工频干扰,设计了50Hz陷波器,技术指标为Fs1= 49Hz,Fp1= 48Hz,Fs2= 51Hz,Fp2=52Hz,Ap1= 0.5dB,As= 60dB,Ap2=1dB.图5为滤波前后的心电信号波形.
图5 处理前后的心电图Fig.5 ECG before and after processing
3 Android客户端应用程序设计
Android客户端应用程序在Android4.0操作系统平台下开发完成,主要包括客户端的界面设计和功能应用程序设计.客户端主要实现心电数据采集、显示、存储及上传等功能.
3.1 客户端的界面设计
客户端界面用来与用户友好地进行心电数据信息交互.在界面设计中,根据系统功能实现需求分析,界面设计部分可以从以下几个部分展开:登陆界面、注册界面、主功能界面、心电波形显示界面.在交互界面设计中,采用MVC架构实现客户端界面设计[7],将布局文件和界面的动态显示代码完美分离开,交互界面设计更加灵活多变,提高了设计效率.客户端界面设计流程图如图6.
图6 客户端界面设计流程图Fig.6 Client interface design flow chart
3.2 客户端功能应用程序设计
功能应用程序设计主要完成心电数据的接收、处理.Android手机通过蓝牙与心电采集板完成通信,实时显示分析心电波形,并完成心电数据的存储和上传.
3.2.1 心电数据的接收
智能手机蓝牙与心电采集板蓝牙连接成功后,智能手机开始发送控制传感器节点命令给心电采集板开始采集心电数据.智能手机客户端通过蓝牙接收心电采集板采集到的心电数据流,并实时显示心电波形.
客户端程序设计中,主线程负责实时进行心电数据监控,包括实时的心率显示和心电波形显示.数据的接收和处理不能放主线程中,当心电采集板与智能手机建立连接后,客户端将会开辟新的工作线程(WorkThread)用于数据的接收和处理.主线程和工作线程的数据交互主要依靠Android的Handler-Message机制来实现[8].
利用InputStream.read(byte[])方法接收心电采集板中的心电数据,通过OutputStream.write(bytes[])方法发送写控制命令实现心电数据的采集.流程图如图7.
图7 心电数据控制传输流程图Fig.7 ECG data flow chart of control transfer
3.2.2 心电数据存储保存
心电数据存储主要负责管理用户身份信息和心电数据信息,通过统一的接口和服务,为上层界面应用提供高效的数据支持,提高数据的读写效率.为方便进一步诊断,可上传到远程医疗终端实现远程心电监护.
程序设计选择用File方式存储心电数据,并选择外部存储方式将数据存储在SD卡中.首先通过蓝牙套接字BluetoothSocket的getInputStream()方法获得心电数据的输入流InputStream().然后调用输入流的read方法将从输入流中心电数据取出,通过OutputStream的write方法把数据写入指定文件,也可以将数据通过调用Android百度云客户端实现将存储的数据上传到云空间中,实现数据共享.流程图如图8.
图8 心电数据存储流程图Fig.8 the flow chart of ECG data storage
4 实验结果与分析
系统开启后,智能手机不断监听本地蓝牙端口,通过BluetoothSocket接收心电采集板上发送来的数据,在智能手机上显示单导联模式下心电图的效果,并采用支持双缓冲、多线程技术的SurfaceView在屏幕上绘出相应的心电波形.存储的心电数据可以实时上传到百度云空间,医务人员可以通过PC机在百度云客户端查询到心电数据,并可以更好的对用户的心电图做出及时有效地分析处理.心电波形图如图9.
图9 心电波形及分析结果Fig.9 ECG waveform and analysis result
5 结语
本系统基于Android 平台实现移动心电信号的实时监控,并通过云存储完成远程心电监护,提高了医院资源利用率和降低了就医成本.基于Android的远程心电监护应用在远程医疗、移动监护、健康管理方面具有广泛的应用前景.
参 考 文 献
[1] 蒋贤海.智能远程健康监护系统生理参数数据分析及预报的研究[D].广州:华南理工大学博士学位论文,2010.
[2] 陈 昊.基于移动物联网的区域协同心血管疾病急救模式研究[D].重庆:第三军医大学博士学位论文,2012.
[3] 苏维嘉,齐洪涛.基于STM32和uC/OS-II的心电监测系统[J].计算机系统应用,2013,22(02):61-64.
[4] TI Inc. ADS1298数据手册[EB/OL].[2012-02.]. http://www.ti.com.cn/cn/lit/ds/symlink/ads1298.pdf.
[5] 孟 浩,张天翼.蓝牙技术在便携式心电监护仪上的应用及实现[J].应用科技,2008,35(10):20-24.
[6] 贾延江.基于Cortex-M3的实时无线心电监测系统设计[D].上海:上海交通大学,2013.
[7] 公 磊,周 聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代化,2008(08):0085-0090.
[8] 陈 强.Android实例开发完全手册[M].北京:人民邮电出版社, 2012: 325-437.