基于ADS1298和STM32F407的心电采集与显示系统设计

时间:2022-09-06 01:59:08

基于ADS1298和STM32F407的心电采集与显示系统设计

摘 要: 提出一种以ADS1298芯片及STM32F407为基础的心电采集与显示系统设计思路。在介绍心电信号采集基本原理的基础上,构建系统的总体框架,阐述基于ADS1298的信号采集、放大电路以及STM32F407接口电路设计,最后应用 μC/GUI实现了心电信号在LCD液晶屏上的实时显示。结果表明,该系统为疾病诊断和健康监护中能应用的高精度、便携式、低功耗心电信号采集分析系统奠定了很好的基础。

关键词: 心电信号采集; ADS1298芯片; STM32F407; μC/GUI

中图分类号: TN911.7?34 文献标识码: A 文章编号: 1004?373X(2015)13?0141?04

Abstract:The electrocardiogram (ECG) acquisition and display system based on ADS1298 chip and STM32F407 platform is proposed. The overall framework of this system was built on the basis of introducing ECG signal acquisition fundamental. The circuits of signal acquisition and amplification based on ADS1298, and the interface circuit design of STM32F407 are discussed. The real?time display of ECG signal on LCD is realized by using μC/GUI. This research establishes a good foundation for applying high precision, portable and low?power consumption ECG acquisition analysis system in disease diagnosis and health surveillance.

Keywords: ECG signal acquisition; ADS1298 chip; STM32F407; μC/GUI

0 引 言

心电信号属于生物电信号,它是心脏无数心肌细胞电活动的综合反映,其中包含了大量的生理和病理信息。通过对心电信号的研究,可以对心血管疾病的诊断、治疗提供有效的辅助分析手段[1]。其在临床医学和认知科学领域具有重要的科学意义。心电信号具有以下几个主要特点:随机性较强,即信号无法用确定的函数式来描述;噪声背景强,预测的有用信号往往淹没在许多无用信号中;信号频率低。心电信号频率较低,大量的是直流成分,去掉直流,它的主要频率范围是0.05~100 Hz,大部分能量集中在0.05~40 Hz。

一般心电采集系统主要包括信号放大与调理、模/数转换、信号处理与传输等。由于信号的微弱性和干扰的复杂性,信号放大与调理的电路比较复杂,导致体积大、功耗高[2]。由TI公司研发的ADS1298高精度A/D转换芯片将信号的滤波及陷波等处理转移到数字端,并且集成了大部分生物电采集功能,实现了便携式心电信号的采集[3]。本文利用该芯片的高精度性能,以STM32F407为主控芯片,设计一个高集成度的便携式心电采集显示系统。

1 系统原理与架构

1.1 系统原理

图1为心电采集原理图。根据国际标准,在人体上放置10个电极,分别是4个肢体电极:LA(左臂)、RA(右臂)、LL(左腿)、RL(右腿)和6个胸部电极:V1~V6。计算两肢体间的电位差,进而得到3个双极肢体导联Ⅰ,Ⅱ,Ⅲ。由于等边三角形的中心为心脏,并与三角形在同一平面上,Ⅰ,Ⅱ,Ⅲ导联能很好地反应心脏额面的运动状况,但它不能记录单个电极处的电位变化。为了探测心脏某一局部区域电位变化,Wilson提出了单极胸导联的连接方式[4],将探查电极V1~V6安放在靠近心脏的胸壁上,参考电极置于Wilson中心电端(WCT),分别计算V1~V6与WCT之间的电位差,来反映心脏局部电位的变化。[R]为平衡电阻,平衡三个肢体端与心脏间的电阻,阻值在5~300 kΩ之间。RLD为右腿驱动,是抑制电源及其他共模干扰的一种方式[5],其本质上是一个负反馈,实现方法是将人体的共模干扰信号取出,并反向放大后施加到人体端。

1.2 系统架构

本采集系统支持8通道心电信号的采集,包括6通道胸导联信号。用于反映心脏水平面情况和2通道双极肢体导联信号用于反映心脏额面状况。为实现高精度、高可靠性的心电信号采集,在预处理电路之后,采用ADS1298作为模拟采集前端并实现模/数转换,应用STM32F407平台实现心电信号在在LCD液晶屏上的实时显示,支持SD卡存储并预留数据通信接口。系统架构如图2所示。

2 硬件设计

2.1 心电信号采集模块设计

心电信号采集模块主要包括心电信号的采集,放大和模/数转换等过程,具体结构如图3所示。

信号的预处理电路为一个二阶滤波电路,用于限幅和滤除高频电磁波。信号进入ADS1298后,通过一个电磁干扰滤波器(EMI Filter)来有效抑制电网噪声,提高电子设备的抗干扰能力及系统的可靠性。本芯片中EMI滤波器带宽为3 MHz。

ADS1298为每一路信号都提供了一个输入复用器(MUX)。除将输入信号传递给放大器这一基本功能外,大部分功能用于对重要设备和子系统进行故障诊断、校准和配置。具体功能有:测量内部噪声,提供测试信号,测量芯片温度,测量供电电压,测量导联脱落信号和测量右腿驱动信号[6]。

信号从输入复用器进入PGA,ADS1298芯片有8个可编程的运算放大器,实际为差分放大器。由于芯片是24位高精度A/D转换器,在参考电压[VREF=]2.4 V时,分辨率可以达到0.023 8 μV,考虑到心电信号的典型值为1 mV,故放大增益设为1即可进行信号的放大。

模/数转换器最重要的参数是转换精度与转换速率,为了获得较高的频率分辨率,在每一路通道上使用了24位Σ?Δ调制器,它利用反馈环来提高粗糙量化器的有效分辨率并整形其量化噪声,使信号带宽内的噪声大大减小,而放大了信号带宽外的噪声。相当于将噪声能量从低频段推到了高频段,而对信号本身不起整形作用。此外,ADS1298芯片使用数字抽取滤波器来去除调制后产生的高频噪声,该滤波器由一个三阶的sinc滤波器构成,是可变采样速率的低通滤波器。

2.2 信号处理、显示及存储模块设计

该模块以STM32F407为控制和处理的核心,其内部资源完全满足心电采集系统的需求,图4为信号处理、显示及存储模块结构图。

STM32F407通过SPI接口读取ADS1298处理转换的数字信号,将其处理后进行储存和显示。存储部分选用SD卡,高度集成闪存,具备串行和随机存取能力。SD卡的接口可以支持两种操作模式:SD卡模式和SPI模式。为了简化主机的设计,使用SPI的传输模式,该模式的不足之处是丧失了速度性能。显示部分选用ALIENTEK提供的240×320 TFT显示屏,它的驱动芯片选择ILI9328,主要以列为单位控制屏幕的点亮和刷新,以行为单位控制灰度。所有的数据存在GRAM(Graphics RAM)中以减少数据传输工作,只有必须更新的数据才被传送。门驱动有320个,与列数相同,所送出的波形可以依次将每一行的TFT打开。源驱动有720个,每3个控制1个点的灰度。门驱动与源驱动相配合,即在屏幕上生成了不同颜色的点和图像。

3 软件设计

根据系统功能要求,将基于主控STM32F407芯片的软件功能设计分为:SPI功能模块、μC/GUI功能模块以及SD功能模块。

3.1 SPI功能模块

SPI接口作为基于ADS1298前置放大电路与基于STM32F407数字信号处理模块的传输媒介,是至关重要的环节。ADS1298芯片提供了两种读数据的模式[7]。一种为RDATAC模式,即连续读数据模式,在该模式下,芯片会按照预先设定的速率不停地采集并转换数据,直到系统收到STOP命令或SDATAC命令。该模式为默认模式,如果需要进入别的模式,比如RREG读寄存器模式,必须首先使用SDATAC命令退出连续读数据模式,否则命令无效。第二种为RDATC模式,即命令读数据模式。在此模式下,每发送一个RDATC命令,系统转换一次数据。一般用于经常变动寄存器设置的场合,为了方便计算和控制数据个数,本系统采用第二模式。ADS1298芯片有26个寄存器,需要使用RREG和WREG命令来配置诸如转换速率、复用器功能、SPI模式和右腿驱动等功能。图5给出了本系统中SPI的时序。

如图5所示,片选信号变为低电平后,首先要发送SDATAC命令,接着使用RREG和WREG命令查看和修改寄存器配置。完成后,使START变为高电平,开始转化数据,系统每完成一次数据转换,会发出一个DRDT信号,将该信号作为中断,在中断中发送RDATA命令,取回当前数据,并做一定的处理。

3.2 μC/GUI功能模块

使用的TFT?LCD利用薄膜晶体管(TFT)产生电压来控制液晶分子转向。μC/GUI的所有命令其实是对驱动芯片寄存器的读/写操作,通过写入多个寄存器的值来控制特定像素点的颜色,形成需要的图像[8]。

μC/GUI将最底层的读写寄存器的函数封装起来,形成画点、画线和画矩形等底层驱动函数。在此基础上,对驱动函数做二次封装,形成适合μC/GUI的核心函数。对于复杂任务,μC/GUI设计了一套基于消息的机制,即所有操作是通过发消息方式实现。为了方便用户使用,μC/GUI定义了视窗(类似于Windows的窗口)的概念,并设计了一些窗口控件。在本系统中使用了TEXT、BUTTON和GRAPH窗口控件,其中TEXT控件用于显示特定文字,BUTTON组件及相应的回调函数实现不同通道间数据的切换,GRAPH组件用于绘制图形及图形坐标。

μC/GUI是应用消息驱动的,以BUTTON组件为例。观察BUTTON_Create BUTTON_CreateEx中的WM_CreateWindowAsChild、WIDGET__Init等函数,并没有对LCD屏的操作,大部分是对参数的记录及赋值。这些函数并不涉及操作,只是将要做的事情以消息的形式发送,称为μC/GUI消息的收集机制,通过该机制,μC/GUI“明白”要做什么。真正的显示是在GUI_Exec函数中,GUI_Exec()GUI_Exec1()WM_Exec()WM_Exec1()_DrawNext()_Paint()WM__PaintWinAndOverlays()_Paint1() 一系列函数负责剪切,即根据收到的消息,确定LCD需要重新绘制的区域。_Paint1()WM_SendMessage() 将所有信息发到对应于BUTTON组件的_Paint函数,_Paint函数接收此信息,调用核心函数完成最后的绘制。

图6是基于μC/GUI的LCD屏实时显示的通道二采集到的心电信号,即I导联信号。

3.3 SD卡功能模块

SD卡的主要功能是记录采集到的数据,以便做进一步的分析,包含读SD卡和写SD卡两个功能。SD卡的读/写等操作是以命令形式来控制的,可根据命令对多块或单块进行读/写操作。

4 结论与展望

基于ADS1298芯片及STM32F407设计的心电采集及显示系统体积小、采集速度快、数据精度高,完全可用于医学研究和辅助诊断。

系统还可以在以下三个方面改进:一是针对采集到的数据,在单片机中添加算法,对数据进行分析,达到对心血管疾病自诊断的目的[9]。二是充分利用ADS1298芯片内置的起搏信号检测功能和呼吸阻抗测量功能等,将系统的功能多样化、全面化。三是可以扩展一个无线接口[10],把采集的数据和处理的结果以无线的方式传送到远程接收端,通过无线采集方式,在医院里可以很容易实现远程动态存储和实时监控。

参考文献

[1] 杨凯华.浅谈心电图临床应用价值[J].医药前沿,2014(7):346?347.

[2] 谢宏,谢涛.基于ADS1298与FPGA的高性能脑电信号采集系统[J].现代电子技术,2013,36(11):95?97.

[3] 魏厚杰,官金安,方浩.ADS1298模拟前端的便携式生理信号采集系统[J].单片机与嵌入式系统应用,2012(2):36?39.

[4] 谢宏,颜林,姚楠,等.基于ADS1298的新型脑电信号采集前端设计[J].电子技术应用,2013(4):75?78.

[5] 郭继鸿.EASI导联衍生12导联的原理[J].临床心电学杂志,2008(3):163?167.

[6] TI. ADSl298 datasheet [EB/OL]. [2012?12?24]. http:///lit/ds/sbas459j/sbas459j.pdf.

[7] 刘志峻,靳薇,郭坚.基于体域网的便携式监护系统设计[J].现代科学仪器,2014(1):35?40.

[8] 刘勇,王学俊,孔新伟,等.基于μC/GUI的触摸屏显示设计[J].液晶与显示,2014(5):739?744.

[9] 罗F晖.心电图机自动分析算法的研究与实现[D].哈尔滨:哈尔滨工业大学,2013.

[10] 谢宏,董洋洋,姚楠,等.基于ADS1298与WiFi的脑电信号采集与传输系统设计[J].现代电子技术,2013,36(6):150?153.

上一篇:胡家庄风化壳型磁铁矿地质特征 下一篇:娱乐营销在汽车营销创新中的作用