基于Android的低功耗移动心电监控系统的设计方案
扫描二维码
随时随地手机看文章
1.引言
随着当前信息技术和医疗水平的不断发展以及人们生活水平的不断提高,越来越多的人们对个人及家庭的健康护理提出了更高的要求,希望能够随时了解自己的身体健康状况,并尽早发现病症、解决问题。目前传统的Holter系统体积大,使用不便的缺点也给人们的日常使用带来了很大不便。因此,利用最新的无线传感网与微处理器技术,设计实现一个可长期在线且具有无线移动监控能力的移动心电信息采集监控系统具有很高的实用价值和市场潜力。
本文通过研究人体心电信号的各项主要特征和实际监测应用需求,设计开发了一套无线传感心电信息监测系统,该系统通过嵌入内衣穿戴的智能电极对心电信号进行采集处理,并通过目前已成为移动设备标配的蓝牙无线数据网络将心电数据发送至Android智能监控终端进行接收数据的存储、管理和分析。
2.系统设计的总体结构
系统总体结构框图如图1所示,包括嵌入内衣的心电图导联、智能电极信号处理电路模块、以及配置有蓝牙的智能Android终端应用,其中智能电极信号处理模块包括模拟信号调理电路、微处理器电路和无线蓝牙网络模块以及可在模块上扩展体温传感器和血氧探头等,进而扩展生命健康监测参数。
本系统首先将嵌入内衣的导联电极采集的心电信号送往智能电极中信号处理电路模块中,由模拟信号调理电路进行滤波放大。
信号经调理之后经A/D转换送给主控微处理器分析预处理。之后经无线蓝牙网络通过无线信道送给配置有蓝牙的智能Android终端应用进行诊断分析以及监控显示。当发现异常时,终端应用发出警报并可将结果通过移动互联网发送至远程医疗中心。
由于智能电极中模拟信号调理电路不是本文对系统设计所要重点阐述的部分,所以本文主要对数据分析预处理、无线蓝牙通信和Android终端应用程序设计做介绍。
3.智能电极控制软件设计
本系统采用TI公司MSP430G2553超低功耗微处理器构建中心处理单元。MSP430单片机在低功耗方面表现出色,支持快速休眠,大量节省系统能耗,并且在恶劣条件下工作性能稳定。所采用的G2553型号单片机加载有自主设计的危急特征提取算法,能够满足设计的需求。
如图2所示为智能电极控制软件流程图。
主要过程为在信号调理电路预处理心电模拟信号之后,超低功耗微处理器通过内置的10位AD转换模块(采样精度为3mV)对模拟数据进行采集和转换,采样周期为5ms,并将转换后的数据取高8位后通过与异步串口(UART)交由蓝牙模块通过无线蓝牙网络发出。
4.Android终端应用程序设计
4.1 蓝牙数据接收模块设计
现代社会智能移动终端已经成为人们生活中不可或缺的一部分,而目前大部分以手机为代表智能移动终端都是以Android系统为操作平台并配置有蓝牙装置,因此为了满足人们日常生活使用的需求以配置有蓝牙的智能Android移动终端为数据处理和诊断平台来开发应用程。该应用程序以Java语言为主来进行开发。如图3所示为Android设备蓝牙数据接收模块设计。
4.2 Android设备蓝牙传输的实现方案
蓝牙通信采用C / S通信模式。在设计时将接收端(Android设备)的蓝牙作为客户端,发送端(智能电极)蓝牙作为服务器端。
在蓝牙进行相互连接时,利用了数据通信中常用的Socket(套接字)机制。当两端的套接字相互连接好以后,收发双方的应用就可以将数据发送给自己的套接字,并从套接字处获取数据,双方的套接字则作为连接中转站一样,相互收发数据。下面对Android设备上蓝牙接收软件实现过程详细阐述。
首先开启A n d r o i d终端的蓝牙功能,Android终端蓝牙设备作为客户端需要主动搜索周围的蓝牙设备。这个搜索过程需要用到广播机制,即搜索发起端需要一个广播接收器,用于接收搜索信息。其建立的具体步骤为,首先定义一个继承BroadcastReceicer的类,用这个类生成的实例就具备了对接收信息的操作能力,可以获取需要的信息,比如蓝牙设备名称和MAC地址。经过设置,该广播接收器只对发现了蓝牙设备这一消息和蓝牙搜索结束这两条消息响应,并且完成了广播接收器在本应用中的注册。用户在使用时,只需要点击“搜索”按钮,终端设备开始搜索周围蓝牙设备,整个搜索过程将耗时12秒。这个过程中,本地蓝牙适配器会搜索到周围所有可以连接的蓝牙设备,将这些搜索结果以列表的形式呈现在屏幕上,供选择。连接开始前,首先关闭蓝牙搜索功能。
在系统库中有BluetoothSocket类,利用这个类生成相应的实例便是接收端蓝牙的套接字,如果该蓝牙是作为服务器来连接的,则利用系统类BluetoothServerSocket来生成套接字对象。在连接之前需要预先设置好UUID,然后由Android智能终端发起连接请求,这里需要调用BluetoothSocket类中的connect()方法,作为服务器端的蓝牙设备监听到连接请求后会验证其UUID是否与自己的一致,验证通过后便可以完成连接了。需要特别注意的是,在这个过程中,连接过程是一个阻塞调用过程,为不影响主线程的工作,需要一个单独的线程来进行连接工作。
等待蓝牙连接完成后,便可以进行数据传输。在蓝牙间的数据传输是由蓝牙模块自动按照蓝牙协议栈的要求进行的,而在智能电极端从微控制器到蓝牙模块以及在Android终端从蓝牙设备到应用程序的数据传输都是按照URAT异步串口通信方式进行的数据传输。在设计中所设置的数据传输格式是以一个字节长度为一帧来传输的,其中有7位数据位和1位奇偶校验位共同组成。所以接收端所接收的数据都是以字节为单位来存储的。在这个通信系统中,还加入了对接收数据的另一数据检错方案。数据的收发并不是将采集数据直接转换成二进制的串行数据进行传输的,而是将这些数据转换成所对应的ASCII码再转成串行数据再进行数据的发送,这样在接收端接收到数据后,会将这些数据转为ASCII码,如果这些ASCII对应的不是数字或是已超出ASCII码范围,则认为是错误的数据,将其丢弃。这样做了之后,结合奇偶校验,只有低三位同时有两位都传输错误的数据不能被监测出来,出现这种情况的概率比较小,并且蓝牙传输距离短,传输环境并不算恶劣,这样的检错能力已经足够了。数据接收过程也是一个阻塞调用的过程,所以同样需要一个单独的线程来完成。
接收到的数据,全部转换为数字的形式(振幅信息)存储起来,供心电图的显示提供数据支持。Android蓝牙传输软件流程如图4所示。
4.3 终端心电图显示
接收数据之后还有要在Android终端上描绘出心电图,供使用者查看。在Android应用开发中,通常会使用View这样的控件来描绘图案。本系统图形是一个心跳幅度关于时间的二维坐标图,纵坐标以毫伏为单位,横坐标以秒为单位。需要注意的是横坐标的标识间隔,蓝牙通信速率设置为9600位每秒,即1200字节每秒,所以每秒会收发1200个数据点的信息,横坐标的设置应该以1200个点为1秒进行设置。
波形的描绘是一个坐标描点的过程。
将接收到的心电信号数据转换成坐标点的表示形式,存入到缓存区当中。应用程序在进行波形描绘时会从该缓存区中依次提取数据点,在坐标图上描绘出一个连续的波形图。
5.系统功能链路实现
按照如图5所示链路对移动心电监控系统进行搭建,并以一正常无心电类疾病史人员为测试对象对整个系统链路功能进行实现。
启动系统的智能电极和Android终端应用程序之后,首先进行数据配对进入界面选择配对设备,并点击“connect”按钮,连接开始,由Android终端主动发起连接请求,发送端监听到请求信息后即可回应并建立连接。
为了方便使用和控制,数据传输是由接收端发起的。点击屏幕中的“receive”按钮,接收端通过蓝牙向发送端发送数据传输的“开始”信号作为数据发送的起始信号。发送端在接到发送的“开始”信号后,便会开始发送数据,直到将缓冲区内的数据发送完毕为止,在接收端拥有与发送端相同大小的缓冲区接收数据,当接收缓冲区装满后,接收停止。以此来进行数据的收发同步。接收端需要对接收到的数据进行检错,丢弃错误数据,然后将有效数据存入波形显示缓冲区中。在屏幕中部可以看到清晰的心电波形图,如图6所示。
当用户点击“realTime”按钮时,就可以在在屏幕上观测到实时更新的心电图。
6.结束语
本文介绍了移动心电信息监控系统方案的设计与实现过程,包括系统的总体设计以及智能电极和Android移动终端的设计过程和主要实现方法。
本方案中的系统设计将传统Holter系统中数据采集、处理和传输、诊断进行分离,仅利用内衣穿戴形式的智能电极对信息参数进行采集并采用微控制器进行简单预处理,之后将数据通过蓝牙无线传输技术通过无线网络发出,交由配置有蓝牙Android智能接收终端进行进一步的处理和诊断。克服了传统Holter系统体积大,使用不便,功耗大的缺点,可在日常生活中多日长期在线工作,对使用者的健康隐患进行监测;并且终端数据管理与诊断分析程序能够准确记录用户的测试信息并且随时查询,而且在发生危急状况时发出报警挽救生命。