当前位置: 首页 > news >正文

基于STM32的心电图监测系统设计

摘要

本论文旨在设计一种基于 STM32 微控制器的心电图监测系统,通过对人体心电信号的采集、处理和分析,实现对心电图的实时监测与显示。系统采用高精度的心电信号采集模块,结合 STM32 强大的数据处理能力,能够有效去除噪声干扰,提取出准确的心电信号特征。同时,利用 LCD 显示屏实现心电波形的实时显示,并通过蓝牙模块实现数据的无线传输,方便医护人员远程监测。经测试,该系统具有较高的精度和稳定性,能够满足临床心电图监测的基本需求,为医学诊断提供可靠的数据支持。

关键词

STM32;心电图监测;心电信号采集;数据处理;无线传输

一、引言

心电图(ECG)是通过记录心脏在每个心动周期中电活动产生的生物电变化,来反映心脏功能状态的重要医学检查手段。在现代医疗领域,心电图监测对于心脏病的早期诊断、病情监测以及治疗效果评估等方面都具有至关重要的意义。传统的心电图监测设备往往体积庞大、价格昂贵,且功能相对单一,不利于在家庭医疗、社区医疗等场景中推广应用。随着微控制器技术、传感器技术以及无线通信技术的不断发展,设计一种小型化、智能化、低成本的心电监测系统成为可能。

STM32 系列微控制器基于 ARM Cortex-M 内核,具有高性能、低功耗、丰富的外设资源等特点,能够满足心电信号采集与处理过程中对数据处理能力和实时性的要求。本论文基于 STM32 微控制器设计心电图监测系统,旨在为用户提供一种便捷、准确的心电监测解决方案,推动心电监测技术在更广泛场景中的应用。

二、系统总体设计

2.1 系统设计目标

本系统的设计目标是实现对人体心电信号的实时采集、处理、显示与无线传输。具体要求如下:

能够准确采集人体的心电信号,有效抑制噪声干扰;

对采集到的心电信号进行实时处理,提取出关键的波形特征;

通过 LCD 显示屏实时显示清晰的心电波形;

实现心电数据的无线传输,方便医护人员远程监测与分析。

2.2 系统总体架构

基于 STM32 的心电图监测系统主要由心电信号采集模块、信号调理模块、STM32 微控制器、LCD 显示模块、蓝牙传输模块以及电源模块等部分组成。系统总体架构如图 1 所示。
在这里插入图片描述

图 1 系统总体架构图

心电信号采集模块负责从人体体表采集微弱的心电信号;信号调理模块对采集到的原始信号进行放大、滤波等处理,以提高信号质量;STM32 微控制器作为系统的核心,对调理后的信号进行 A/D 转换、数据处理以及控制其他模块的工作;LCD 显示模块用于实时显示心电波形;蓝牙传输模块将处理后的心电数据发送到智能手机或其他终端设备;电源模块为整个系统提供稳定的电源。

三、系统硬件设计

3.1 心电信号采集模块

心电信号采集模块采用 AD8232 心电信号采集芯片。AD8232 是一款集成式单导联 ECG 前端,专为在嘈杂环境中(如运动过程中)采集微弱生物电信号而设计。它内部集成了仪表放大器、右腿驱动电路、高通滤波器和低通滤波器等,能够有效抑制共模干扰,提高信号的信噪比。AD8232 只需少量的外部元件即可实现完整的心电信号采集功能,具有电路简单、性能可靠等优点。

3.2 信号调理模块

信号调理模块主要包括放大电路和滤波电路。由于人体心电信号非常微弱,其幅值一般在 0.05mV - 5mV 之间,因此需要对采集到的信号进行放大处理。放大电路采用两级放大结构,第一级使用仪表放大器对信号进行初步放大,第二级采用运算放大器进行进一步放大,使信号幅值达到适合 STM32 微控制器 A/D 转换的范围。

滤波电路包括高通滤波和低通滤波。高通滤波器用于去除信号中的直流漂移和低频干扰,低通滤波器用于抑制高频噪声。通过合理设计滤波器的参数,能够有效提高心电信号的质量。

3.3 STM32 微控制器

本系统选用 STM32F103RCT6 微控制器作为核心处理器。该芯片基于 ARM Cortex-M3 内核,工作频率最高可达 72MHz,具有 64KB 的 Flash 存储器和 20KB 的 SRAM,能够满足心电信号采集与处理过程中对数据存储和运算的需求。STM32F103RCT6 丰富的外设资源,如 ADC、定时器、SPI、USART 等,为系统的功能扩展提供了便利。其中,ADC 模块用于将调理后的模拟心电信号转换为数字信号,定时器用于控制信号采集的频率,USART 模块用于与蓝牙模块进行通信。

3.4 LCD 显示模块

LCD 显示模块采用 128×64 分辨率的 OLED 显示屏。OLED 显示屏具有自发光、对比度高、视角广、响应速度快等优点,能够清晰地显示心电波形。该显示屏通过 SPI 接口与 STM32 微控制器相连,STM32 微控制器通过控制 SPI 接口向显示屏发送数据,实现心电波形的实时刷新显示。

3.5 蓝牙传输模块

蓝牙传输模块选用 HC-05 蓝牙模块。HC-05 是一款高性能的蓝牙串口模块,支持蓝牙 2.0 协议,能够实现与智能手机、平板电脑等设备的无线通信。该模块通过 USART 接口与 STM32 微控制器连接,STM32 微控制器将处理后的心电数据通过 USART 接口发送给蓝牙模块,蓝牙模块再将数据以无线的方式传输到接收设备上,方便医护人员进行远程监测和分析。

3.6 电源模块

电源模块为整个系统提供稳定的电源。考虑到系统的便携性,采用锂电池供电。锂电池输出的电压经过稳压芯片转换为系统各模块所需的电压,如 3.3V 为 STM32 微控制器、蓝牙模块等供电,5V 为心电信号采集模块、信号调理模块等供电。同时,电源模块还设计了充电电路,方便对锂电池进行充电。

四、系统软件设计

4.1 软件总体架构

系统软件采用模块化设计思想,主要包括主程序模块、心电信号采集与处理模块、LCD 显示模块、蓝牙传输模块等。主程序模块负责初始化系统各模块,并协调各模块之间的工作;心电信号采集与处理模块实现对心电信号的 A/D 转换、滤波处理以及波形特征提取;LCD 显示模块负责将处理后的心电信号实时显示在显示屏上;蓝牙传输模块实现心电数据的无线发送。

4.2 主程序设计

主程序流程如图 2 所示。系统上电后,首先进行初始化操作,包括 STM32 微控制器的时钟配置、GPIO 口初始化、ADC 初始化、定时器初始化、SPI 初始化、USART 初始化以及 LCD 显示屏初始化等。初始化完成后,进入循环主程序,在循环中不断调用心电信号采集与处理模块、LCD 显示模块和蓝牙传输模块,实现心电信号的实时采集、显示和传输。

在这里插入图片描述

图 2 主程序流程图

4.3 心电信号采集与处理模块设计

心电信号采集与处理模块通过定时器触发 ADC 进行数据采集,采集到的数据存储在数组中。为了去除信号中的噪声干扰,采用中值滤波和滑动平均滤波相结合的方法对采集到的数据进行处理。中值滤波能够有效去除脉冲干扰,滑动平均滤波可以进一步平滑信号,提高信号的稳定性。

在完成滤波处理后,对心电信号进行波形特征提取。通过检测 R 波的位置,计算心率值,并提取 P 波、QRS 波群、T 波等特征参数,为后续的医学诊断提供数据支持。

4.4 LCD 显示模块设计

LCD 显示模块根据心电信号采集与处理模块提供的数据,在 OLED 显示屏上绘制心电波形。为了实现波形的实时刷新显示,采用双缓冲技术。即在内存中开辟两个缓冲区,一个缓冲区用于存储当前要显示的数据,另一个缓冲区用于接收新采集到的数据。当一个缓冲区的数据显示完成后,立即切换到另一个缓冲区进行显示,从而实现心电波形的流畅显示。

4.5 蓝牙传输模块设计

蓝牙传输模块通过 USART 接口与 STM32 微控制器进行通信。在发送数据前,先对心电数据进行打包处理,添加数据帧头、帧尾以及校验信息,以确保数据传输的准确性。然后,将打包后的数据通过 USART 接口发送给蓝牙模块,蓝牙模块将数据以无线的方式传输到接收设备上。接收设备接收到数据后,进行解包和校验处理,提取出有效的心电数据。

五、系统测试

5.1 硬件测试

对系统的各个硬件模块进行单独测试,确保各模块能够正常工作。测试内容包括:

心电信号采集模块:使用信号发生器产生模拟的心电信号,输入到心电信号采集模块,通过示波器观察采集模块的输出信号,检查其是否能够准确采集到信号,并对信号进行初步处理。

信号调理模块:将采集模块输出的信号输入到信号调理模块,通过调整放大倍数和滤波参数,观察调理后的信号波形,确保信号幅值合适、噪声得到有效抑制。

STM32 微控制器:通过编写简单的测试程序,测试微控制器的 ADC、定时器、SPI、USART 等外设是否正常工作,确保能够正确采集和处理数据,并与其他模块进行通信。

LCD 显示模块:向 LCD 显示模块发送测试数据,检查显示屏是否能够正常显示字符和图形,确保显示效果清晰、稳定。

蓝牙传输模块:将蓝牙模块与智能手机或其他蓝牙接收设备进行配对,通过 STM32 微控制器向蓝牙模块发送测试数据,检查接收设备是否能够正确接收到数据,确保蓝牙传输功能正常。

5.2 系统整体测试

在硬件模块测试完成后,对系统进行整体测试。邀请志愿者佩戴心电监测设备,采集真实的人体心电信号。通过观察 LCD 显示屏上的心电波形,检查波形是否清晰、稳定,是否能够准确反映人体的心电活动。同时,将采集到的心电数据通过蓝牙传输到智能手机上,使用专门的应用程序对数据进行分析和处理,验证系统的准确性和可靠性。

测试结果表明,本系统能够准确采集人体的心电信号,有效抑制噪声干扰,实时显示清晰的心电波形,并能够稳定地将心电数据通过蓝牙传输到接收设备上。系统的心率测量误差在 ±1 次 / 分钟以内,满足临床心电图监测的基本要求。

六、结论与展望

6.1 结论

本论文设计并实现了一种基于 STM32 的心电图监测系统。该系统通过合理的硬件设计和软件编程,实现了对人体心电信号的实时采集、处理、显示与无线传输。经测试,系统具有较高的精度和稳定性,能够满足临床心电图监测的基本需求,为医学诊断提供了可靠的数据支持。同时,该系统具有体积小、成本低、操作方便等优点,适用于家庭医疗、社区医疗等多种场景。

6.2 展望

虽然本系统已经实现了基本的心电监测功能,但仍有进一步改进和完善的空间。未来可以从以下几个方面进行研究和改进:

增加更多的心电信号分析算法,如心律失常自动诊断算法,提高系统的智能化水平,为医学诊断提供更准确的信息。

优化系统的电源管理,进一步降低系统的功耗,延长设备的续航时间,提高系统的便携性。

开发配套的手机应用程序,丰富数据管理和分析功能,方便医护人员和用户对心电数据进行存储、查询和分析。

探索与物联网技术的结合,实现心电监测设备与医院信息系统的互联互通,为远程医疗和健康管理提供更完善的解决方案。

相关文章:

  • 【前端】【面试】在 Vue-React 的迁移重构工作中,从状态管理角度来看,Vuex 迁移到 Redux 最大的挑战是什么,你是怎么应对的?
  • 力扣面试150题--相同的树
  • 嵌入式按键原理、中断过程与中断程序设计(键盘扫描程序)
  • 【CISCO】什么是静态路由(Static Route)?ip route 192.0.1.0 255.255.255.0 200.0.0.1
  • 高等数学同步测试卷 同济7版 试卷部分 上 做题记录 第四章 不定积分同步测试卷 B卷
  • LeetCode刷题链表
  • Spring AI 实战:第四章、Spring AI多模态之看图说话
  • Go语言实现Kafka消息队列
  • 【图书管理系统】环境介绍、设计数据库和表、配置文件、引入依赖
  • JVM——JVM是怎么实现invokedynamic的?
  • Go语言--语法基础4--基本数据类型--类型转换
  • 4个纯CSS自定义的简单而优雅的滚动条样式
  • 图片压缩与尺寸调整的便捷工具推荐
  • Qt输入控件(QInput Widgets)详解:从基础到实战
  • 【leetcode】队列 + 宽搜,树形结构层序遍历的基础与变化
  • 前端开发,文件在镜像服务器上不存在问题:Downloading binary from...Cannot download...
  • JAVA设计模式——(十)抽象工厂模式(Abstract Factory Pattern)
  • PostgreSQL 的 REINDEX 命令
  • LeetCode 2071 你可以安排的最多任务数目 题解(附带自己的错误做题思路 过了25/49)
  • 个人健康中枢的多元化AI网络革新与精准健康路径探析
  • 3477亿美元!伯克希尔一季度现金储备再创新高,担忧关税战不确定性影响
  • 消费持续升温,这个“五一”假期有何新亮点?
  • 5月1日全国铁路发送旅客2311.9万人次,创历史新高
  • AI世界的年轻人|他用影像大模型解决看病难题,“要做的研究还有很多”
  • 微博:严厉打击对肖某董某事件蹭炒热点、编造故事博流量等行为
  • 刘洪洁已任六安市委副书记、市政府党组书记