心电图检测仪怎么用基于STM32的心率检测仪设计与实现

新闻资讯2026-04-21 10:36:51

2.1 总体设计思想
该设计在基于STM32控制板外,另一个主要的板块就是做到如何去采集到心率数据的样本。关于MAX30100,其在简易心率检测仪中使用量非常的大,是一个优质的心率监测器传感器。MAX30100利用其本身含有的LED和光电检测端来检测信号的接收,以显示心率数据。其工作原理等会在后面讲到。另外,在该系统中STM32是主要微控制器和数据处理器;利用OLED屏实现动态心率的实时监控,即数据显示;利用蓝牙串口可以将数据输出显示。电源将设置一个3.5V-8V的电源,在选择合适电源电压供给的情况下输出电源给各模块进行使用。结构图如下图2.1所示:
心电图检测仪怎么用基于STM32的心率检测仪设计与实现_https://www.jmylbn.com_新闻资讯_第1张

图2.1 整体结构图

2.2 心率脉象图谱原理及实现
2.2.1 心电图
心脏的跳动是有序,在医学学术上讲到的心电脉冲就是心电图的形成基本。当人体血液流动进入心脏时,血液的流向以及血压都会对心脏内壁造成压迫,从而使心脏肌肉形成了周期性的收缩与放松。而脉冲信号就是由于心脏肌肉收缩,并且在左右压差下传递产生的周期性的电信号。但是人体是一个导体,并且心脏脉冲也会血液中产生传播规律,而这就是脉搏的产生。从而说明了改脉冲信号,可以利用身体内任意一个电极去检测到,心电图(EKG或ECG)便是将这个原理进行的数据可观性的改变,即可视电信号。下图2.2显示的是心脉波形的截断:
心电图检测仪怎么用基于STM32的心率检测仪设计与实现_https://www.jmylbn.com_新闻资讯_第2张

图2.2 心电图心搏波形
2.2.4 脉图的判别方法
脉图的判读方法有多种。每个时间段内都指代了不一样的内容,比如在一个心脉跳动周期t内,将波形的不同形态分为t1、t2、ts等。心脏整个收缩放松的时期分为4个部分, t4心脏处于收缩阶段,而t5则处于放松阶段。在心脏内室血液流入动脉时,我们用t1来表示,这段时间脉图沿y轴快速上升,直到最高峰,这段波幅被称之为主波幅;这时心脏跳出射血期,血管压强降低,波形沿y轴开始缓慢下降,到达途中W点处时,正好是距离整个波幅2/3的高度。随后由于少量血液倒流造成的其他波幅类似于h3都是比较重要的波幅凸起。在心脏还是处于舒张期时,也就t5阶段,会在两个阶段中间形成一个落差低估,也就是图中的h4。随后缓慢的波形凸起与降中峡高度只差则被称之为重拨。另外,整个t4时期的面积在图中用As表示了,t5时期则用Ad表示。
心电图检测仪怎么用基于STM32的心率检测仪设计与实现_https://www.jmylbn.com_新闻资讯_第3张

图2.3 脉图分析的主要参数

3.1 主控芯片
3.1.1 芯片介绍
STM32F103系列终端微控制器在现阶段使用十分广泛,这在于它低成本、工艺简单、处理方便、低功耗且高品质的优点,其适用范围强大到不仅仅在微机处理上被运用到,在日常生活中的电子设备类如游戏手柄,遥控器等都能运用到该芯片。说完STM32F103的优点,我们来了解下其基本结构。STM32F103拥有极其效率的代码运行速度,这得益于它的三十二位标准精简指令集的ARMv7-M体系结构。除此之外还拥有八和十六位不同数位系统转换的数据处理内核。在十分优越的FLASH处理器与SRAM下,一般情况最高工作频率不会低于72MHz。STM32F103内部优越的设置为其良好的数据处理打下了基础,而它外设部分拥有多个引脚,相当于有设置了很多的IO口。这样内外兼优的处理器在事实情况下很适合引用于该系统中。
3.1.2 低功耗特点
STM32F103所包含的众多模式中,低功耗模式是本系统中最为重点的一个部分,相当于空调的超节能模式,这是一个希望能随时带在身边利用的心率检测仪来说是十分必要的。低功耗模式下,也就是系统的睡眠模式下,能够随时唤醒CPU,但是其他非特殊情况下CPU始终在休眠状态,尽量最低限度的消耗能源。除了保留的一条用于唤醒的线,其他连接着包括SRAM、FIFO寄存器、回环整合信号、数字感知区域振荡器在内都处于休止中断中,直到在结束或者唤醒CPU后,整个系统会在最快的时间内进入运行状态。
除此之外,STM32F103还有个休眠模式。在这个模式开启后,系统将进入超低耗能模式。不再像低功耗模式一样只是单纯的将组件控制在低功耗运行状态,在启动之后系统甚至会自动切断除了唤醒与CPU之外的其他线路的电源,真正的做到整机休眠。它的唤醒条件也是十分简单,只要中断唤醒启动,CPU就会被事件唤醒,但是这个启动时间相对较长。
3.1.3 主芯片电路设计
原理图如下图3.1-1,上拉3.3V电源用于复位电路,按下按钮后,内部电路会自动复位。各电源接口和地线必须接上,给各个IO口供电。

心电图检测仪怎么用基于STM32的心率检测仪设计与实现_https://www.jmylbn.com_新闻资讯_第4张

图3.1 主芯片电路原理图
心电图检测仪怎么用基于STM32的心率检测仪设计与实现_https://www.jmylbn.com_新闻资讯_第5张

图3.2 主芯片电路PCB图

4.1 主软件设计
由于单片机的快速数据处理速度和易于编程的原因,单片机用于数据处理可以避免大量蓝牙数据传输。 MAX30100通过I2C通信进行读取。平衡光电数据转化,然后确定脉搏,在测量脉搏后,随时间计算心率。

4.2 MAX30100
I2C接口的最大速度为400KHz。该项目中,使用的通信技术为I2C通信,因此采样速率比传输速率慢。由于存储器写操作是通过I2C执行的,所以需要保证主控制芯片的高速通信操作,并且不影响其他子例程。
4.2.1 MAX30100运作流程
在该传感器模块处于SpO2的模式下,会开启心率记录与调取的功能。遮罩HR_ RDY。利用LED发出的光信号在手指上收集转化完成的PPG信号波形,完成采样。在此模式下中断将会在收集完每个数据样本之后在触发,即当FIFO仅剩一个空白空间时,产生中断。心率样本包括仅一个IR数据点。当读取FIFO数据寄存器时,终端HR_RDY位自动清零。新样本存储在新的读取指针位置,实际上,它是现在是FIFO中的第一个样本。
心电图检测仪怎么用基于STM32的心率检测仪设计与实现_https://www.jmylbn.com_新闻资讯_第6张

图4.1 心率模式下的数据采集和通讯时序
4.3 OLED
以简易方便为原则的前提下,满足尽量小但是清晰的情况所以选择了分辨率为128x64的OLED屏幕,其中包含液晶屏的部分占有总组件的86%,有0.96寸的大小。OLED的驱动IC是具有内部升压功能的芯片SSD1306,因此,在设计中不需要专门设计升压电路[9]。
为了实现心电图一样的显示,样本完成计算产生的数据波形以及心率的数据会显示在这个OLED液晶屏上。通过编写好的程序控制OLED内部的SSD1306,步骤跟MAX30100中的FIFO寄存器有相似之处,首先初始化,接着就可以将数据信息写入进行展示。这之间的数据显示与实时更新是同步的,OLED上的数据,会在下次数据写入时进行擦除,再初始化更新写入内容,一直进行这样的步骤。而数据的转输并且可控制的SSD1306是通过模拟SPI通信进行的。
图4.9和图4.10分别为佩戴该心率检测仪处于正常状态下与运动后的心率展示图。
心电图检测仪怎么用基于STM32的心率检测仪设计与实现_https://www.jmylbn.com_新闻资讯_第7张

图5.1 正常状态下心率展示
心电图检测仪怎么用基于STM32的心率检测仪设计与实现_https://www.jmylbn.com_新闻资讯_第8张

图5.2 运动状态下心率展示

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。