• 全国 [切换]
  • 深圳市鼎达信装备有限公司

    扫一扫关注

    当前位置: 首页 » 新闻动态 » 真空技术 » 正文

    基于虚拟仪器的心率监测系统设计

    放大字体  缩小字体 发布日期:2021-11-01 17:05:51    浏览次数:62    评论:0
    导读

    摘要:设计了一种基于虚拟仪器的心率监测系统。该系统由STC12C5A60S2单片机最小系统、心率传感器与上位机组成。STC12C5A60S2单片机具有片内AD转换器,可以直接采集心率传感器输出信号,并通过串口发送测量数据至上位机。在上位机利用虚拟仪器设计软件LABVIEW对采集的信息进行实时处理,实现心率的实时测量、心跳波形的实时

    摘要:设计了一种基于虚拟仪器的心率监测系统。该系统由STC12C5A60S2单片机最小系统、心率传感器与上位机组成。STC12C5A60S2单片机具有片内AD转换器,可以直接采集心率传感器输出信号,并通过串口发送测量数据至上位机。在上位机利用虚拟仪器设计软件LABVIEW对采集的信息进行实时处理,实现心率的实时测量、心跳波形的实时显示及数据存储。该监测系统体积小,功耗低,能对心电信号实时显示和存储,适合家庭使用,对心血管疾病的预防和长期监护具有重要意义。

    关键词:单片机;虚拟仪器;心率监测;光电脉搏传感器

    随着生活水平的提高,家庭保健受到了越来越多地关注。心脏病是危害人类健康的头号杀手,但心脏病的发作往往是随机的、短暂的,患者难以及时赶到医院进行心电检查,从而影响到病因的及时诊断。研发一种成本低、可靠性强、适合家庭使用的实时心率监测系统有着重要的意义[1-3]。本文提出了一种电路简洁可靠,使用方便的心率监测系统设计方案,可实时监测心率变化并利用上位机显示,极大地满足了实际使用需求与市场需要。

    1 系统硬件方案设计

    针对本课题任务,系统使用STC12C5A60S2单片机作为主控电路,并利用单片机片内10位高速ADC读取传感器测量信号。单片机与上位机间经由串口进行通信,仅占用两根管脚,大大节省了单片机I/O资源。上位机可设置波特率等信息,并能显示心跳波形及心率值。系统原理框图如图1所示[4]

    STC12C5A60S2单片机是深圳宏晶科技公司生产的增强型51单片机,完全兼容MCS-51指令,具有60K程序存储器,1280B数据存储器,4个定时器,4组8位并行I/O口。考虑到本设计需要使用串口功能,因此使用11.0592MHz外部晶振构成时钟电路,保证波特率精度。STC12C5A60S2单片机的A/D转换口与P1口复用,共8路10位高速A/D转换器,速度可达到250KHz(25万次/秒),足以分辨每60秒内仅100次左右的心跳。设计中使用P1.0口作为心率传感器的A/D转换接口。片内AD转换器共涉及到8个相关寄存器,使用时可仅操作A/D转换控制寄存器ADC_CONTR、P1口特殊功能寄存器P1ASF、以及结果寄存器ADC_RES。其中A/D转换控制寄存器ADC_CONTR是使用片内ADC的关键。该寄存器共8位,用于设置ADC电源、转换速度、通道选择等,如表1所示。

    图1 系统原理框图

    表1 A/D转换控制寄存器

    心率测量通过光电式脉搏传感器实现。脉搏主要由人体动脉舒张和收缩产生的,在人体指尖组织中的动脉成分含量高,且指尖厚度相对其他人体组织而言比较薄,透过手指后检测到的光强相对较大,因此光电式脉搏传感器的测量部位通常在人体指尖。在恒定波长光源的照射下,通过检测透过手指的光强可以间接测量到人体的脉搏信号,即可得到心率值。

    2 软件设计

    系统上电后,设置定时中断间隔,启动片内AD转换,启动串口通信。上位机经过串口向单片机发送检测阈值,单片机产生中断,在串口中断服务程序中向上位机发送心率数据。上位机使用LabVIEW软件进行程序设计。LabVIEW是一种图形化编程语言,功能强大,能够实时显示测量波形,十分适合本系统使用[5]

    2.1 主程序设计

    在主程序中,首先进行定时器初始化、串口初始化以及ADC初始化,用于心跳周期测量、串口数据发送以及A/D转换。之后循环执行A/D转换,心率计算程序。其流程如图2所示。在进入串口中断服务子程序后,关闭串口中断,避免发送数据产生重复中断。依次发送AD值与心率值,发送完成后再次打开串口中断返回。定时器每1ms中断一次,中断服务函数中以计数变量计时,计数变量在心率测量函数中进行清零。

    2.2 心率计算程序设计

    心率计算使用测周法,即测量心跳波形周期,进而推算心率。心跳波形中每个周期会出现一高一低两个波峰,需进行过滤处理。具体方法是在上位机设定检测阈值,只有幅值大于阈值的波峰可被检测。下位机测量时,根据阈值自动滤掉较低的波峰,以较高的波峰为准测量周期。使用定时器定时并利用计数变量计算周期,第一次检测到波峰时开始计时,第二次检测到波峰时停止计时,便可得到心跳周期。心率计算公式:BPM= 60/T,其中BPM为心率值,T为心跳周期。心率计算程序流程图如图3所示。

    图2 主程序流程图

    图3 心率计算程序流程图

    2.3 LabVIEW程序

    本设计使用LabVIEW设计虚拟仪器来显示心跳波形、心率值以及串口波特率等信息。使用虚拟仪器省去了额外的人机交互设备,极大地降低了系统成本。本设计虚拟仪器界面如图4所示。设计中使用串口进行上位机与下位机通信,在Lab⁃VIEW程序中使用“VISA配置串口”进行串口配置,可设置:端口号、波特率、数据位、校验位。配置完串口后,使用“VISA写入”将心率监测阈值发送至下位机。在发送之前,需要对输入值进行数据格式转换,将“U8”数值转换为字符串,以便利用“VISA写入”经串口发送至下位机。当下位机接收到数据并产生中断后,将向上位机发送5字节数据,包括波形数据与心率值。使用“VISA读入”函数进行接收,并设置接收5字节数据。

    图4 虚拟仪器界面

    上位机接收到下位机发送的5字节数据,并以字符串形式存储,为了最终显示,需进行格式转换。首先使用“字符串至数值数组转换”函数,将接收到的字符串转换为数值数组,之后进行数组索引,提取各字节数据。前4字节为波形数据,需要转换为ASCII码形式,并进行组合以供“波形图表”控件进行使用。最后一字节为心率值,可直接显示。程序如图5所示。

    图5 数据格式转换与显示

    3 结论

    在调试过程中反复对AD采集功能进行了验证,系统能够保证可以准确地采集到传感器值;对心率计算程序进行测试,上位机可以接收到合理的心率值;多次开关上位机后均可得到心率值;多次调整检测阈值后,心率值获取不受影响;心率值可随具体情况实时变化。通过对上位机进行测试,预定波形可正确显示、实时变化,波特率等信息可自由设置。测试结果如图6所示。

    图6 测试结果显示

    根据实验结果,本设计实现了任务要求。系统可以实时检测心率;可以显示心跳波形与心率值;上位机显示正常,无卡顿等问题。但是由于设计时间较短,上位机界面比较简单,显示信息也较少。另外心率测量算法有待进一步完善,测量值有时不够稳定。


     
    (文/小编)
    打赏
    免责声明
    • 
    本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:https://2024.dingdx.com/news/show.php?itemid=1795 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
    0相关评论
     

    © Copyright 深圳市鼎达信装备有限公司 版权所有 2015-2022. All Rights Reserved.
    声明:本站内容仅供参考,具体参数请咨询我们工程师!鼎达信作为创新真空产品研发制造商,我们提供海绵吸具,海绵吸盘,真空吸盘,真空发生器,真空泵,真空鼓风机,缓冲支杆,真空配件,真空吊具等等产品

    粤ICP备17119653号