【GD32F350开发分享十】基于GD32F350的单导联心电采集系统

Justice_Gao   2018-10-18 09:01 楼主
一、作品名称
基于GD32F350的单导联心电采集系统
二、作品简介
传统心电监测常见有常规心电图检测、监护心电图检测和动态心电图检测。常规心电图检测使用12导联同步检测,大部门在医院或体检中心使用,存在设备体积大、不适合院外监护等缺点。监护心电图采用三导联检测心电信号,主要有CCU、ICU监护室的实时心电监护仪,按次数收费,仅限于医院。而常见的动态心电图检测配合不同数量的电极,可检测不同导联心电信号,设备需要提前预约,数据分析和报告获取都必须前往医院,且不够便携。
为了更加便捷高效地监测人体的心律特征,设计了一种基于GD32F350的单导联心电采集系统。该系统采用单导联的方式获取心电信号,只需将导联电极片安装于使用者手上,即可随时随地查看自己的心电图,无需前往医院专门检查自己的心脏健康情况。系统采用蓝牙的传输方式,将心电信号通过蓝牙实时上传至手机APP端,APP端集成心电信号的滤波算法,实时绘制使用者的心电图,同时,在测量结束后,给出测量报告。该系统不但解决了传统心电监测设备不方便的问题,还可以为使用者提供心电分析报告及心电图,为进一步医生确诊提供详细的参考依据。
三、系统框图
系统框图.jpg
图1 系统框图
如图1所示,系统主要由微控制器GD32F350、TFT显示屏、心电信号处理电路、金属电极片、独立按键、LED显示灯、蓝牙模块、手机APP和服务器组成。其中,微控制器GD32F350、独立按键和LED显示灯集成于GD32F350开发板上,其他部分的硬件和软件为自主设计。系统利用的GD32F350的资源包括RTC、定时器Timer0、串口USART0和串口USART1、ADC转换、SPI总线、外部中断EXTI和GPIO控制,融合心电信号处理算法,可以实现实时心电数据的采集,并通过蓝牙传输至APP端进行算法处理和绘制。
GD32F350通过UART0与蓝牙模块(nRF52832)连接,通过外部中断的方式判断蓝牙是否连接上APP,通过GPIO控制LED指示灯,通过外部中断的方式判断独立按键,通过SPI/UART1与TFT显示屏连接,并将RTC实时时钟显示在屏幕上,接收心电信号处理电路的输出信号,通过ADC采样,利用TIMER0定时采样,即设置采样率。GD32F350的时钟源采用外部高速晶振8MHz以及外部低速时钟32.768KHz(自己焊接)。
蓝牙模块以nRF52832为主控芯片,通过串口与GD32F350连接,将串口数据转成蓝牙数据,传输至手机APP实时显示并给出评估报告。
TFT显示屏主要显示图片、动态滚动字幕、动态实时时钟、静态文字等。
心电信号处理电路主要用于放大滤波稳定微弱的心电信号,是整个系统功能的基础条件。
下面,分各个模块进一步详细介绍。
四、各部分实现的功能说明和解析
(1)硬件设计
4.1 GD32F350最小系统(开发板)
微信图片_20181016164228.jpg
2 GD32F350开发板
作为主MCU,系统功能的实现,调用内部很多资源。该系统采用了GD32F350的以下功能:
1) 异步通信接口UART0和UART1
2) 外部高速时钟HXAL,8MHz晶振(自己焊接)
3) GPIO 通用输入输出接口
4) 软件模拟I2C,SPI总线通信协议
5) RTC实时时钟;
6) 外部低速时钟LXAL,32.768KHz晶振(自己焊接)
7) Timer0定时器捕获高速输入
8) 12位ADC单次采样连续模式
9) 外部中断,边沿触发
可以说,兆易创新推出的这款GD32F芯片,无论是从高频率的处理速度还是资源的配备上,都是能够满足绝大部分的应用。
4.2 心电信号处理电路
微信截图_20181016165355.png
图3 心电信号处理电路
如图3所示,为心电信号处理电路(由于知识产权原因,具体参数不提供),该部分是整个系统能够实现最终功能的基础,包括心电信号放大、滤波、稳定。电路采用3.0V直流稳压电源供电,图4为心电信号处理电路供电电路。心电信号处理电路输出端信号传入至GD32F350的通道11进行ADC转换。GD32F350采用逐次逼近方式的12位模拟数字转换器ADC,有 19 个多路复用通道,可以测量来自16个外部通道,2个内部通道和电池电压(VBAT)通道的模拟信号。模拟看门狗允许应用程序来检测输入电压是否超出用户设定的高低阈值。每个通道的 A/D 转换可以配置成单次、连续、扫描或间断转换模式。如果GD32F350能够支持差分输入ADC就更好了。本系统设置ADC为12位分辨率,采用定时器设置采样频率,采样频率为250Hz。
微信截图_20181016165442.png
图4 心电信号处理电路供电电路
如图5所示,为心电信号处理电路实物图。电路的输出为一路模拟信号输入至GD32F350的ADC通道,电路的输入为三个金属导联电极片,分别接人体任意三个部位,但不能两两短路,如图6所示,为三个金属导联电极片。
微信图片_20181016165749.jpg 微信图片_20181018133441.jpg
图5 心电信号处理电路实物图
微信图片_20181016172137.jpg
图6 金属导联电极片
4.3 TFT显示屏和RTC实时时钟
TFT显示屏主要显示图片、静态文字、滚动字幕、实时时钟以及绘制心电图波形。
RTC实时时钟的初始化设置可以通过APP设置,APP通过蓝牙下发指令,蓝牙模块将指令通过串口下发,如图7所示,设置成功后,实时时钟会显示在TFT显示屏上,并按秒更新计数。
微信图片_20181011153419.jpg
图7 TFT显示屏显示内容及实时时钟
4.4 蓝牙模块
系统采用nRF52832设计蓝牙模块,最小系统电路图如图8所示。上电后,nRF52832广播蓝牙连接消息,未与手机蓝牙建立连接时,引脚STATUS为高电平,LED闪烁,建立蓝牙连接时,引脚STATUS为低电平,LED常亮,触发GD32F350外部下跳沿中断,GD32F350开启定时中断和ADC采样,nRF52832通过串口接收心电数据,并通过蓝牙传输至手机APP,手机APP绘制实时心电图,如图9所示。断开蓝牙连接后,引脚STATUS为高电平,LED闪烁,触发GD32F350外部上升沿中断,GD32F350关闭定时中断和ADC采样,手机APP结束绘制心电图,并给出心电图综合评估报告,如图10所示。
最小系统.jpg
图8 nRF52832最小系统原理图
微信图片_20181018084958.jpg 微信图片_20181018085004.jpg
图9 实时心电图 图10 心电图综合评估报告
4.5独立按键和LED显示灯
这两个部分的硬件在GD32F350的开发板上有,主要用于按键事件触发及工作指示功能。当开始心电采集时,LED显示灯呈流水灯式变化,否则静止不动,保持当前状态。
(2)软件设计
GD32F350软件设计流程图如图11所示。首先,系统初始化,包括GPIO输入输出、外部中断、ADC初始化、SPI初始化、串口UART0和UART1初始化、定时器初始化、系统参数初始化等等;蓝牙未连接时,STATUS引脚为高电平,当蓝牙连接上,STATUS引脚由高电平变为低电平,触发GD32F350的外部下跳沿中断事件,则开启ADC和定时器,LED灯开始流水灯式闪烁,系统开始正常工作;当蓝牙断开时,STATUS引脚由低电平变为高电平,触发GD32F350的外部上升沿中断事件,则关闭ADC和定时器,LED停止闪烁;
流程图1.jpg
图11 GD32F350软件设计流程图
nRF52832蓝牙模块的软件设计流程图如图12所示,其主要功能为将串口数据转成蓝牙数据发送至APP手机客户端,并通过STATUS输出引脚通知GD32F350是否已经连接上蓝牙。串口数据遵循数据格式,若不是定义的数据格式的数据,将被视为无效数据丢弃,目的是保证系统的安全性和不可复制性。
流程图2.jpg
图12 nRF52832蓝牙模块软件设计流程图
如图13所示,为心率算法的软件流程图。
流程图3.jpg
图13 心率算法软件流程图
五、演示视频
演示实物示意说明图.jpg
图14 实物演示示意说明图
如图14所示,为实物演示示意说明图。
1---->TFT显示屏
2---->心电信号处理电路模块
3---->GD32F350开发板
4---->金属导联电极片
5---->蓝牙模块
6---->心电模拟信号发生器(用于模拟心电信号)
7---->电源
视频请看下面
如无法播放,请直接进入网页观看基于GD32F350的单导联心电采集系统视频
六、源码
(1)GD32F350
开发工具 Keil MDK 5.23
源码架构如图15所示
微信截图_20181018144017.png
源码下载:
ECG_GD32F350.rar (8.66 MB)
(下载次数: 515, 2018-10-18 15:11 上传)
(2)蓝牙nRF52832
开发工具 IAR 7.8
SDK版本 13.0
源码下载:
ble_app_uart.rar (6.91 MB)
(下载次数: 215, 2018-10-18 14:47 上传)
注意:需要SDK13.0的库才能编译通过
七、论坛发帖情况
(10)GD32F350开发分享十】作品提交
八、作品总结与展望
本作品采用单导联采集人体心电信号,通过算法提高心电测量的精确度和准确度,为使用者提供心电相关联的生理健康参数指标,便于使用者能够更加方便快捷地获取到准确的数据,为身体感到异常时提供就医参考数据及病历,同时间接改变使用者的生理作息,引导使用者坚持健康的生活方式。
本作品可以应用于智慧养老:提供心电监测及改善产品和集成软件API接口
还可以应用于智慧医疗:是基于心电诊疗医院等单位/机构推出的心电监测及改善服务。
最后,由衷感谢兆易创新和电子工程世界EEWORLD举办的这次活动和机会,让我接触国产芯片,体验到其功能的强大。
本帖最后由 Justice_Gao 于 2018-10-18 16:44 编辑

回复评论 (8)

Justice_Gao出品。必属精品呀
点赞  2018-10-18 16:00
引用: jdsnpgxj 发表于 2018-10-18 16:00
Justice_Gao出品。必属精品呀

谢谢  不知道这次能不能拿大奖
点赞  2018-10-18 16:04
没有给出心电信号原关键部分,
但是要把心电信号原理讲一下啊。
点赞  2018-10-19 13:01
引用: ketose 发表于 2018-10-19 13:01
没有给出心电信号原关键部分,
但是要把心电信号原理讲一下啊。

心脏活动的主要表现之一是产生电激动,它出现在心脏机械性收缩之前。心肌激动的电流可以从心脏经过身体组织传导至体表,使体表的不同部位产生不同的电位变化。
按照心脏激动的时间顺序,将此体表电位的变化记录下来,形成一条连续曲线,即为心电图。在正常情况下,每次心动周期在心电图上均可出现相应的一组波形.
QQ截图20181019133300.png

P 波:由心房的激动所产生。前一半主要由右心房所产生,后一半主要由左心房所产生。正常 P波的宽度不超过 0.11s,最高幅度不超过 2.5mm。
QRS 波群:反映左、右心室的电激动过程,称 QRS 波群的宽度为 QRS 时限,代表全部心室肌激动过程所需要的时间。正常人最高不超过 0.10s。
T 波:代表心室激动后复原时所产生的电位。在 R 波为主的心电图上, T 波不应低于 R 波 1/10。
U 波:位于 T 波之后,可能是反映心肌激动后电位与时间的变化。

P-R 间期:是从 P 波起点到 QRS 波群起点的相隔时间。它代表从心房激动开始到心室开始激动的时间。这一期间随着年龄的增长而有加长的趋势。
QRS 间期:从 Q 波开始至 S 波终了的时间间隔。它代表两侧心室肌(包括心室间隔肌)的电激动过程。
S-T 段:从 QRS 波群的终点到 T 波起点的一段。正常人的 S-T 段是接近基线的,与基线间的距离一般不超过 0.05mm。
P-R 段:从 P 波后半部分起始端至 QRS 波群起点。同样,正常人的这一段也是接近基线的。
Q-T 间期:从 QRS 波群开始到 T 波终结相隔的时间。它代表心室肌除极和复极的全过程。正常情况下, Q-T 间期的时间不大于 0.04s。
将两个电极置于人体表面上不同的两点,通过导线与心电图机相连,就可以描出一种心电图波形。描记心电图时的电极安放位置及导线与放大器的联接方式称为心电图导联。对单导心电图机来说,心电图是通过多个导联而得出的体表电位差的不同时间的记录。临床诊断上,为便于统一和比较,对常用的导联做出了严格的规定。现在广泛应用的是标准十二导联,分别记为 I、 Ⅱ、 Ⅲ、 aVR、 aVL、 aVF、 V1~V6。 I、 Ⅱ、 Ⅲ为双极导联, aVR、 aVL、 aVF 为单极肢体加压导联, V1~V6 为单极胸导联。获取两个测试点的电位差时,用双极导联;获取某一点相对于参考点的电位时,用单极导联

点赞  2018-10-19 13:36
目测要获大奖 ,简直是评测贴的典范.
与时间赛跑
点赞  2018-10-22 14:46
引用: xinxiaojun 发表于 2018-10-22 14:46
目测要获大奖 ,简直是评测贴的典范.

兄台真会开玩笑
点赞  2018-10-22 15:44
引用: Justice_Gao 发表于 2018-10-22 15:44
兄台真会开玩笑

点赞  2018-10-22 15:44

期待加好友331570408,请教问题

点赞  2019-11-23 11:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复