李福斌 白秉旭
摘 要:对嵌入式技术进行了研究,报告了传统心率检测仪器便携性差、抗干扰能力不强的现状,设计了一种基于STM32 NUCLEO嵌入式芯片的心率检测系统。集STM32F411 NUCLEO开发板、心率信号预处理、数据采集、OLED激光显示、串行通讯及电源转换功能为一体,利用人体心血管活动的血管容积周期性规律,基于芯片模数转换器捕捉体表反射光变化活动时序,实现高低通滤波与人机交互。测试表明,系统抗干扰能力强,可用于家庭或社区人体医学监护。
關键词:嵌入式技术;心率检测系统;设计
中图分类号:TP311 文献标识码:A文章编号:2096-4706(2021)24-0055-04
Abstract: This paper studies the embedded technology, reports the current situation of poor portability and weak anti-interference ability of traditional heart rate detection instruments, and designs a heart rate detection system based on STM32 NUCLEO embedded chip. It integrates the functions of STM32F411 NUCLEO development board, heart rate signal preprocessing, data acquisition, OLED laser display, serial communication and power conversion. Using the periodic law of blood vessel volume of human cardiovascular activity, it captures the change time sequence of reflected light on the body surface based on chip analog-to-digital converter, so as to realize high-low-pass filtering and human-computer interaction. Tests show that the system has strong anti-interference ability and can be used for family or community medical monitoring.
Keywords: embedded technology; heart rate detection system; design
0 引 言
经济的发展促使人们的物质和精神生活得到大幅度提升和改善,也使得越来越多的人开始广泛关注个人的身体健康问题[1]。“心率”作为一项重要的生理参数,它是衡量和评价一个人身体是否健康的重要指标之一。随着“可穿戴”“便携式”的智能产品兴起,基于嵌入式设计的心率实时检测系统为普通大众进行“无疾预防”提供了硬件基础[2]。目前,国内关于心率检测的技术已经十分成熟,但是传统心率检测仪器功能单一,抗干扰能力差,价格昂贵,更不宜家庭使用。本文针对这些缺点,在深入研究国内、外心率检测技术发展情况基础之上,将现代传感技术、嵌入式基础及信号处理技术等集成在一起,提出并设计了一种可穿戴、低功耗、多功能、实用性强的心率检测系统,通过心率信号来捕获心脑血管疾病先兆,以便用于社区及家庭人体医学监护。
1 系统总体设计
1.1 设计思路
近年来,随着人们的生活节奏不断加快,在工作、学习和生活等诸多压力作用之下,我国居民的身心健康问题日益变得突出,尤其是心血管疾病发生率和死亡率变得居高不下。而传统的医疗模式是控制疾病进展,但病人通常是在发病之后再前往医院或医疗诊所进行专业检测,难以预防疾病发生。根据西安交大生物医学工程重点实验室关于人体心血管活动的实验原理[3]可知,人体心脏脉动会使体表血管容积发生相应的变化,从而会引起体表反射光(反射角、反射路径长)、入射光(入射角、入射路径长)的变化。人体心脏脉动所引发的体表血管容积变化规律和强度能够客观反映人的心血管活动时序,因此只要通过对体表反射光的变化情况进行捕捉,就能够分析并反映人的心血管活动与生理状态。与此同时,根据我们关于人体心脏脉动的一项研究认为,心脏的跳动通常会引发脉搏的变化与波动,而脉搏的跳动变化又会导致透光率的变化,按照这一原理,本研究认为,借助图像传感器对人体表面视频图像进行采集,由此提取人的实时心率具有客观现实基础。
1.2 设计方案
本研究设计的心率检测系统以嵌入式框架为载体,分别将信号采集、信号预处理、STM32 NUCLEO、电源、OLED显示及串口通信模块集成到一起。如图1所示,本系统中的信号预处理模块主要功能是实现对A/D信号的转换,在该模块包含了电压转换器、原始信号滤波器、放大处理器等,从而使信号经过处理后可满足系统电压值要求。然后,心率传感器利用信号采集模块中的信号预处理模块进行反射式光电原理感知,将处理后的信号输入STM32F411 NUCLEO主控模块,经过串口通信,最终实现对心率数据和波形的实时显示[4]。
2 系统硬件模块设计
2.1 STM32F411 NUCLEO开发板
STM32F411 NUCLEO开发板是心率检测系统进行嵌入式开发设计的主要硬件模块之一,它主要包括LED指示灯、机械按键以及STM32F NUCLEO系列板
卡惯有的Mini USB调试接口,除此之外,还兼容可给板卡供电的Arduino Shield扩展接口。由于STM32 NUCLEO系列板卡同时搭载了基于32位的高性能STM32F401RET6核心微控制器与带有FPU单元的ARM Cortex-M4处理器,所以能够支持高达100MHz的主频。
2.2 传感器采集心率信号预处理模块
成功提取心率的前提是传感器所采集到的心率光信号必须转换为电信号,方能实现后续的信号数据分析、运算与处理。考虑到传感器采集到的心率信号经过初步的信号转换之后,电信号十分微弱,所以还需要经过传感器采集心率信号预处理模块对系统采集的原始信号进行去噪或降噪等放大处理,才能获取高质量且信号干扰率较低的心率信号。
2.3 心率数据采集模块
在现代电子工程设计领域,传感器是电子系统信息数据采集的主要模块,按照人体心脏脉动规律,传感器在人体心率数据采集过程中,主要遵循的工作原理为:
由于人体血液脉动,会导致透光率发生变化,所以LED会发出绿色光源。
根据系统采集到的具有不同变化的透光率,光接收器会对透光率进行数据转化,形成人体心率监测数据。
传感器在信号数据采集时,需针对原始输出的模拟信号进行A/D转换,从而转换为数字信号。
该传感器采集到的可供MCU分析、处理的数字信号受外界干扰较小,所以经过分析计算,能够获得更加精准的心率数据,如相邻心拍时间、心率值以及脉搏值等如图2所示。
基于上述工作原理,本研究针对不同性能的数字传感器进行对比最终选择应用光电脉搏传感器来采集人体心率数据。与一般的传感器不同,该传感器为发绿光的反射式传感器,其内部结构集成信号处理模块,光电模块等,而在信号处理模块和光电模块又分别配置了光接收器、绿光LED、放大电路以及滤波电路等。
2.4 OLED液晶屏有机电激光显示模块
本系统采用嵌入式设计方法应用OLED液晶屏(Organic Light-Emitting Diode)为有机电激光显示模块来增强心率检测结果的显示效果。OLED作为有机发光二极管,反应速度更快,对比度更高,而且自发光视角广,厚度薄,无须背光源,可用于挠曲性面板设计,与传统的液晶显示屏相比,OLED显示模块还具有使用温度范围广等优点,所以一直以来被认为是具有新兴数字技术的下一代平面发光显示器[5]。
2.5 心率数据串行通讯模块
在本系统中,同时搭载了Modem、打印机或者可供外部连接的鼠标,基于工业设计上常用的RS-232串行连接标准,可使心率检测系统与工业仪器仪表相连接。在具体工作过程中,心率检测系统的数据串行通信模块主要借助IBM PC及其兼容机上的ANSI/EIA232标准协议,将系统实时采集到的相关心率数据等,上传到个人PC,基于系统软件就能够实时绘制人体心率变化曲线与脉搏波形,从而方便使用者针对心率数据进行更加精确地判读和分析。
2.6 电源转换模块
基于嵌入式系统设计的心率采集系统主要供电模块分为两个部分,一部分是视频监护模块,另一部分是液晶显示和摄像头模块,在系统工作时,首先需要按基于携式的ARM-Linux视频监护模块采集人体视频,并加以显示和保存,然后,需要借助上位机软件实时处理和分析系统摄像头采集到的相关视频数据,从而得到人体心率数据,最终通过无线网络装置,将人体视频数据及心率数据等发送到系统远端服务器,从而为远程诊断提供科学依据。
3 系统软件模块设计
3.1 系统软件初始化程序设计
在嵌入式方案设计中,心率检测系统软件设计通常需要通过主程序针对不同的子模块进行调用来实现相应的软件功能。本研究以Keil uVision5版本为心率检测系统嵌入式设计的软件集成开发环境,应用语言编写系统软件初始化程序與心电信号计算与处理相关子程序,通过OLED屏对系统处理后的数据结果进行实时显示。
3.2 心电信号计算与处理程序设计
心率检测系统初始采集的心电信号往往含有大量的有线频率噪音,所以本系统采用ADC12低通FIR滤波器进行滤波,已采样的心电信号经过低通滤波(心电QRS波群的频率为6~30 Hz和12~18 Hz)后,得到被区分的采样值,然后再次采用17阶高通FIR最低频率为2 Hz的滤波器进行滤波处理。
系统经过滤波,分理出所需的心电QRS波群,然后按照计算公式“瞬时心率值=1/(点数×采样周期)”及R~R间的采样点数,即可计算并求得心率值。与此同时,将系统最低设置的定值与心电QRS分辨器输出的采样信号进行对比,根据Pulseperrid3次连续跳动累计值来探测每一次心跳[6]。如图3所示为心电信号计算与处理程序设计与实现流程图。
4 系统运行调试
在完成心率检测系统的前期嵌入式设计之后,后期还需经过多次连续的硬件电路测试与软件、硬件联合运行调试,本研究调试重点是系统中的放大电路。
4.1 硬件电路测试
在测试本系统的硬件电路部分时,本研究主要采用数字万能表和示波器两种工具来调试,其中,系统硬件电路测试工作主要包含以下四个部分的内容:
(1)检测PCB板工作原理是否正常。
(2)测试心电信号采集模块运行是否存在异常。
(3)测试系统OLED显示模块信息显示情况。
(4)测试JTAG数据通信接口接触情况。
在调试上述四个部分的关键环节时,首先针对各电路模块进行单独调试,然后再进行整机测试,从而提高系统硬件模块的调试效率。
4.2 软、硬件联合调试
硬件调试工作完成之后,还需进行软硬件联合工作运行调试,在调试时,本研究主要采用MSP430 FETP140仿真器,通过IAR Embedded Workbench将PC机与25PIN芯电缆线实现并口一端相连,另一端则利用14PIN扁平电缆,将仿真器与小系统的JTAG插座相连接。而在系统PC机端,主要借助MFC编程,将单片机所采集到的心率检测系统运行散点通过并行串口,在系统主程序MFC窗口中进行描绘和显示,从而模拟出实际的人体心电波形。测试流程如图5所示:
5 运行调试结果分析与结论
在系统运行测试过程中,本研究使用了标准信号源对人体心脏脉动的信号进行模拟测试,多次连续的测试结果表明,信号源参数与本研究开发设计的心率检测系统运行测试结果完全符合。在此基础上,本研究又针对同一测试对象,使用人工计数重新进行测试,结果如表1所示。
通过上表中连续4次测量对比结果可以看出,人工测试计数值与本研究设计的心率检测系统测试值基本吻合。虽然在第1次人工测量时,测试结果与心率检测系统测试值存在一定偏差,但是误差仅为0.5%,远远小于系统设定的误差2%之内,仍属于可接受范围内的误差,经分析在首次测试时,人工测试与心率检测系统测试的始终时间掌握存在差异,从而导致最终测量结果的细微偏差。经过调试及重复测试,结果表明,本研究设计的心率检测仪测试重复性优异,工作性能良好,工作过程稳定,结果可靠,具有一定的科学参考依据。
参考文献:
[1] 燕丽红,王安斌,陈莲琴.智能居家养老健康助手系统设计 [J].物联网技术,2019,9(9):47-48+51.
[2] 徐关祥,宋义林.基于胸部电阻抗法的无拘束心排血量检测系统 [J].中国医疗器械杂志,2018,42(6):405-408.
[3] 周秦武,隋芳芳,白平,等.嵌入式無接触视频心率检测方法 [J].西安交通大学学报,2013,47(12):55-60.
[4] 李会刚,温静.基于嵌入式的智能健身自行车控制系统 [J].产业与科技论坛,2016,15(20):74-75.
[5] 孙红军,罗耀祖.一种嵌入式智能健康运动监测仪的设计 [J].电子技术与软件工程,2017(20):193-194.
[6] 蔡俊,王志刚,王丽,王等.基于STM32的个人健康管理系统设计 [J].江苏理工学院学报,2020,26(2):51-60.
作者简介:李福斌(1989.06—),男,汉族,江苏南京人,助理讲师,本科,主要研究方向:电气自动化;白秉旭(1966.12—),男,汉族,江苏南京人,正高级讲师,硕士研究生,主要研究方向:电力电子技术与电力传动。