基于STM32的便携式心电信号采集系统设计
2019-04-29李红利刘培军陈国崴张荣华李月军
李红利,刘培军,陈国崴,张荣华,李月军
(1.天津工业大学 电气工程与自动化学院,天津 300387;2.杭申集团有限公司,杭州 311234)
在科学研究和医疗诊断等领域,人体的心电(ECG)信号具有非常重要的意义,其中包含了大量的生理和病理信息[1].传统心电信号采集装置的核心部分是心电信号放大器和模数转换器件,因其内部模块组成较为复杂,整个仪器体积往往比较庞大,对使用环境要求较高[2].另外,传统的模数转换芯片精度较低、性能较差、功耗较高,从而导致ECG信号测量精度低[3].为克服以上缺点,本文基于STM32芯片,采用ADS1298前端采集芯片和LabVIEW上位机显示平台,设计了一套便携式、高精度、小型化的实时心电信号采集显示系统,并进行实验,结果表明该系统能够实现人体ECG信号的高精度(μV/bit)采集,并能实时动态显示波形.
1 系统设计
1.1 系统框架
选用TI公司的24位高精度、低能耗的ADS1298前端采集转换芯片,它是一款SOC芯片,在内部可调增益设为最小值1时,可识别0.286 μV的电压变化,芯片内部通过软件编程调节增益,可精确识别ECG信号的微小变化.选择性能优越的STM32系列单片机作为控制器.ADS1298通过SPI传输方式将转换后的数字信号传送到STM32F103RCT6控制器,数据暂储存在控制器;然后通过配置蓝牙模块与上位机部分的参数,数据将从控制器无线透传到LabVIEW上位机,实现实时在线传输;最后,在LabVIEW上位机进行巴特沃斯滤波,包括高低通滤波、带通滤波和工频陷波处理等,进而实时动态显示心电波形.系统框架见图1.
图1 系统框架Fig.1 System framework
1.2 预处理电路和主体硬件电路
预处理电路,即前置滤波电路,如图2所示.该部分由二阶无源低通滤波电路和3 V的限压电路组成,可消除高频干扰和对A/D芯片进行过压保护.低通截止频率为122.7 Hz,A/D采集芯片的供电电压为3 V,满足心电频率及输入端电压通过的要求.
根据ADS1298芯片手册,配置其外围电路,如图3所示.
图2 前置滤波电路Fig.2 Prefilter circuit
图3 A/D芯片外围电路Fig.3 A/D peripheral circuit
1.3 蓝牙模块
系统采用德飞莱蓝牙串口v2.0版模块[4],它具有高速通信和低功耗的优点,并且具备向下兼容的特点.蓝牙模块输入电压为3.3~6 V,传输距离为15 m,具有防反接和状态指示灯功能,可以通过AT命令切换主机和从机模式、设置通讯比特率等.
1.4 LabVIEW上位机
LabVIEW上位机部分主要包括外置的显示面板和内部的软件程序.软件部分采用基于图形的编程方式(G语言),G语言编程可缩短开发时间,降低开发难度[5-8].使用J-link下载器将编写的程序加载到控制器内,进行数据采集,A/D采集转换后的数据通过蓝牙串口发送到LabVIEW上位机,然后对数据进行滤波处理,这里采用6阶巴特沃斯滤波,先分3次进行干扰滤除,再进行适当的低通、带阻、带通滤波,最终得到心电波形图.
LabVIEW软件程序的主要部分为一个while循环,进行连续的数据读取和处理,循环内部设置一个停止按钮和一个条件结构.停止按钮用于停止数据传输.条件结构内部设置VISA Config和VISA读取函数2个模块.VISA Config确定数据来自哪个串口.VISA读取函数用于读取蓝牙串口发送来的数据,通过设置一个属性节点,以保证每次都能将串口中的数据读完,然后利用一个条件结构对得到的字符串进行处理,进行3次巴特沃斯滤波.具体的程序流程如图4所示.
图4 LabVIEW软件程序Fig.4 Program of LabVIEW
2 实验
2.1 测试对象基本信息
实验采集并处理4名受试者的ECG信号,4名受试者的基本信息见表1.
表1 受试者基本信息Tab.1 Basic information of the subjects
2.2 实验结果
为验证所设计的LabVIEW上位机程序的有效性,使用模拟心电信号发生器产生原始信号,见图5(a),经LabVIEW上位机程序滤波后得到的模拟ECG波形见图5(b).
图5 软件滤除工频干扰Fig.5 Software filter frequency interference
由图5可见,原始信号中的工频干扰基本滤除,说明本文设计的滤波程序是有效的.
4名受试者的ECG波形图见图6.比较4名受试者的ECG波形图,可以明显看出4人的心率及心电特征波略有差异,波形均呈周期性变化,P波、QRS波、T波和ST段等特征均比较明显,可用于心率失常、心肌梗塞等病理分析,实验结果说明本文设计的系统是有效可行的.
经验模态分解(EMD)算法适用于非线性非平稳信号处理,是一种性能非常优越的滤波算法,常用于人体生理信号检测分析[9-12].本文利用LabVIEW上位机存储的原始信号数据,使用Matlab对EMD算法进行了实现.以1号受试者为例,经A/D转换后的原始信号见图7.图7的数据信号经分解得到的8个IMF,去掉高频部分后,经重构得到图8所示的波形图,图8与图6(a)的ECG波形基本一致,这进一步说明本文设计的心电信号采集系统是切实可行的.
图6 4名受试者的ECG波形图Fig.6 ECG waveform s of four subjects
图7 1号受试者的原始ECG信号Fig.7 Original ECG signal of No.1 subject
图8 经EMD重构的信号波形Fig.8 Reconstructed signal waveform by EMD
3 结论
采用TI公司的24位高精度ADS1298芯片、G语言编写的LabVIEW上位机以及性能稳定良好的STM32作为核心控制器,设计了一套心电信号实时采集显示系统,实验结果表明该系统能够满足设计要求,与传统系统相比,本系统程序设计比较简单,实现了信号无线传输和波形图实时显示,为医疗诊断、病理检测提供了可靠的实验基础.