基于单片机的心率检测仪设计_第1页
基于单片机的心率检测仪设计_第2页
基于单片机的心率检测仪设计_第3页
基于单片机的心率检测仪设计_第4页
基于单片机的心率检测仪设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的心率检测仪设计摘要:心率信号作为承载人体重要生理参数的信号之一,对诊断心脑血管疾病有着重大意义。为采集频率较低,容易受到外界干扰的心率信号,文中以32位高精度微处理器STM32F103ZET6为下位机,使用压电式脉搏传感器HK-2000B采集脉搏信号,将采集到的信号通过下位机运算处理后,经串口送至上位机,上位机利用LabVIEW制作显示界面,实现对心率信号的实时显示与保存,为医生通过脉搏波形诊断病情提供帮助。关键词:心率信号;HK-2000B脉搏传感器;STM32F103ZET6;TFTLCDDesignofheartratedetectorbasedonsinglechipmicrocomputerAbstract:Heartratesignal,asoneoftheimportantphysiologicalparametersofhumanbody,isofgreatsignificanceinthediagnosisofcardiovascularandcerebrovasculardiseases.Forthesamplingfrequencyislow,vulnerabletointerferenceofheartratesignal,thispaperbasedon32-bithigh-precisionmicroprocessorSTM32F103ZET6lowermachine,usingpiezoelectricpulsesensorHK-2000-bcollectionpulsesignal,willsignalcollectedbythenextbitmachineafterprocessing,thesupremacyofserialporttosendamachine,PCdisplayinterface,usingLabVIEWtorealizereal-timedisplayandpreservationofheartratesignaltohelpdoctorsdiagnosebypulsewaveformcondition.Keywords:Heartratesignal;HK-2000BPulsesensor;STM32F103ZET6;TFTLCD1引言“譬之医者,虽熟于方论,而不能切脉用药,则于病情奚益哉。”自古以来,脉搏信号作为衡量人体健康水平的重要标准之一,一直为医疗工作者所重视。脉诊是我国传统医学中非常具有特色的一项诊疗方式,经过中医的一代代传承,使其具有非常悠久的历史与厚重的底蕴,是中医“整体观念”、“辨证论治”的基本精神的体现和应用,也是中医理论体系中不可或缺的重要部分,脉学理论的不断提升和进步,对国内外的医学发展都起着至关重要的作用。随着西方医疗研究的不断进步,中医的脉学研究无论是在理论上还是应用上的突破都较为缺少,而且脉搏理论较为深奥,方法陈旧,使得脉诊在临床应用方面受到较大限制[1]。脉搏信号承载着诸多生理、病理信息,在诊断病情和临床治疗中发挥着极为重要的作用。传统中医在诊断病情时往往通过以手切脉的形式查探脉象,其主要依赖于医生的经验与主观判断,对脉象的描述通常采用比喻的方式,往往不能对其有客观、统一、精确的辨识,为脉诊确立切实可行的客观标准,定量地研究人体的脉象信息,是继承和发扬我国中医技术的关键所在[2]。近代医学认为,体内循环系统负责能量代谢、输送氧气及营养物质,同时排出代谢废物等工作,还负责运送激素、抗体等物质以保证人体循环系统的动态平衡。当综合分析疾病成因时,显然人体循环系统的信息占有重要位置,考虑到心脏的收缩、血管内的反射、血管端点阻抗、血管壁弹性等因素,它可以反映内脏循环的动态信息。鉴于脉诊的重要意义,我们有必要对其进行深入细致的研究,为诊断疾病提供依据。并且脉搏信号还具有频率低、易受到工频、高频及脉冲干扰和肌电干扰、因人而异、信息量大等特点[3],若只通过医生以手切脉的人为地主观性判断脉搏信息,往往不够充分,可能会忽略某些潜在的疾病特征。因此,本文设计了一款基于STM32F103ZET6的脉搏信号监测系统,通过脉搏传感器采集脉搏信号并加以客观的处理,以此为疾病治疗提供客观参考。本系统以意法半导体公司的32位高精度微处理器STM32F103ZET6为核心处理器,由合肥华科电子生产的HK-2000B型压电式脉搏传感器作为脉搏信号的采集工具,后经过一级放大电路、带通滤波电路与二级放大电路将脉搏信号处理后送至单片机采集,将单片机的输入模式设置为模拟输入模式,对采集到的信号进行模拟-数字信号的转换,随后使用心率算法,根据采集到的信息,将心率值推算出来,显示在TFTLCD上,期间还可将脉搏波形也显示在显示屏上,便于医生及患者的观察。在单片机处理好信息后,其还可通过串口,将脉搏波形与心率值上传至由LabVIEW制作的上位机显示界面上,即可实现实时监测,还可达到信息存储与回放的需要。2.系统总体设计方案本系统可分为以下三部分:脉搏信号调整电路、单片机信息处理电路、上位机显示与保存。其主要工作原理为:由压电式脉搏传感器HK-2000B读取人体的脉搏信息,经过滤波,放大等一系列的信号调整电路将脉搏信号预处理,将预处理后的模拟信号送入单片机进行数据分析,将结果由TFTLCD屏显示,期间还会将处理好的脉搏信息经串口上传至由LabVIEW制作的上位机显示界面进行显示与存储,为更好地分析病情做准备。其中,单片机采用意法半导体公司的Cortex-M3内核的32位STM32F103ZET6,其自带12位高精度模数转换芯片,系统结构框图,如图1所示。图1系统结构框图(1)脉搏信号调整电路系统拟采用光电式脉搏传感器与压电式脉搏传感器,虽然光电式脉搏传感器具有:价格低廉、设备简单实用、易于携带等诸多优点,但操作光电式脉搏传感器时,容易受到外界光照强度与光点的影响,还具有输出信号较小,噪声较大,脉搏信号易受干扰的缺点,故系统最终采用具有抗干扰能力强、灵敏度高、稳定输出模拟信号等诸多优点的压电式脉搏传感器作为采集脉搏信号的工具,随后将采集到的脉搏信号送至前置放大电路、带通滤波电路与二级放大电路中,生成可供单片机采集的模拟信号。(2)单片机信息处理电路系统采用片机采用意法半导体公司的Cortex-M3内核的32位STM32F103ZET6,相比于51系列单片机而言,STM32系列单片机具有精度高、处理速度快且自带12位高精度模数转换芯片的特点,使得电路无需再外加A/D转换电路,既简化了电路构成,又提升了实物的便于携带性,为系统单片机选型时的最佳选择。单片机经过模数转换,将采集到的脉搏信号数字化,便于单片机计算心率值与显示脉搏波形,波形由TFTLCD显示。单片机还可将采集到的心率值及脉搏波形由串口上传至由LabVIEW制作的上位机程序中,便于波形的观察与数据的储存。(3)上位机显示与保存系统的上位机显示界面的制作选用了美国国家仪器(NI)公司研发的LabVIEW制作而成,由LabVIEW制作的界面具有灵活多变、画面美观大方、易于修改和适用范围广泛的特点,系统的单片机信息处理电路将处理好的数据由串口上传至上位机,上位机接收后,通过搭建好的LabVIEW环境将信息处理并显示在界面中,如有需要还可将数据存储至文本文件当中,便于日后查询之用。3硬件电路设计3.1传感器的选取系统选取的脉搏传感器是合肥华科电子生产的HK-2000B型压电脉搏传感器,其实物图及佩戴方法如图2所示。压电式传感器采用高度集成化工艺将力敏元件(PVDF压电膜)、灵敏度温度补偿元件、感温元件、信号调理电路集成在传感器内。压电传感器是根据压电效应而研发的传感器,一些电介质受到外力作用而变形,内部会产生极化现象,其两个相对表面上会出现正负相反的电荷[4],外力去掉后又恢复到不掉电的状态,这种现象称为正压电效应。压电薄膜探测不到静态应力,只能感应动态力,当其检测不同方向预应力时,又成为其优势所在,若外力作用方向改变,随之改变的还有电荷的极性[5]。HK-2000B型压电脉搏传感器具有以下优点[6]:(1)灵敏度较高。(2)结实耐用,使用寿命长。(3)抗干扰能力强。(4)输出信号为模拟信号。(5)适用性强,适用范围广。图2传感器实物图3.2微处理器的选取 本设计采用意法半导体公司生产的32位微处理器STM32F103ZET6,该微处理器采用嵌入式的方法安装在Cortex-M3内,其供电范围较宽,为:2.0~3.6V,且CPU最大工作频率可达到72MHz,并且还拥有很丰富的片内外设,比如:定时器、GPIO口、DMA、ADC、DAC、PWM、串口等,具有成本低、处理速度快、性价比高等多个优点[7]。其在处理器内部集成有ADC芯片,使得电路无需外加A/D转换芯片,简化了电路结构,使得系统的集成程度更为完善。3.3前置放大电路的设计在每个脉搏周期中,由于心脏的收缩与舒张,动脉内的压力也随之发生周期性的变化,导致动脉管壁产生有节律的脉动,该脉动称为动脉。动脉信号中包含了人体诸多重要的生理信息,本文通过PVDF压电薄膜传感器HK-2000B将脉搏信号转化为电荷信号,但由于电荷信号不能直接测量,故设计前置放大电路将电荷量转化为电压量,实现对脉搏信号的采集,前置放大电路如图3所示。图3前置放大电路因PVDF传感器输出阻抗为高达Ω,电压信号低至mV,故前置放大电路采用AD623仪表放大器芯片,该芯片具有输入阻抗高,参考电压可调,高共模抑制比,低噪声等特点,能够很好的吸收传感器输出的信号。为了方便控制输出信号的幅度,电路中采用电位器调节放大倍数,公式如下所示:电路在电源处设置两个滤波电容,有效地减少了电源纹波对脉搏信号的干扰。3.4带通滤波电路的设计脉搏波所呈现的幅度、速率和节律等信息,能够很好地反映人体生理状况,正常脉搏范围在60~100次/min,其频率在0.6Hz~1Hz内,且能量主要集中在20Hz以下。但由于脉搏信号微弱且易受电子元件噪声、人体抖动、工频信号等诸多因素的干扰,为了消除工频50Hz和人体抖动频率的干扰,本文采用TI公司生产的LPV511低噪声芯片和RC网络构成六阶巴特沃斯带通滤波器,设置该滤波器的上限截止频率为40Hz,下限截止频率为0.5Hz,通带为0.5Hz~40Hz,能够很好的滤除工频和人体抖动带来的干扰,得到稳定的波形,电路图如图4所示。图4带通滤波电路3.5二级放大电路的设计因脉搏信号通过前置放大电路和滤波电路后幅值还达不到主控芯片A/D转换的要求,为了满足要求,故采用低噪声、低失调电压、稳定性好的OP07芯片设计了二级放大电路,电路如图5所示。图中、、、为去耦电容,目的是消除电源的干扰;(电位器)、构成负反馈电路,控制放大倍数,由于单片机的ADC采集电压不能超过3.3V,故选用20K,放大公式如下所示:图5二级放大电路3.6TFTLCD显示屏电路 TFTLCD显示屏是晶体管型显示屏,TFTLCD显示屏的每一行的交叉点都装有半导体开关,每个像素的大小可以通过点脉冲直接控制,不仅缩短了通讯时间,还使得TFT屏幕的反应速度得以提升,还可以精确控制显示屏的色彩水平。显示屏可以背光,其供电电压为+3.3v和+5V。该产品广泛用于工业控制,军事装备,仪器仪表,家用电器,通信设备,手持设备,消费电子等行业[8]。TFTLCD会在单片机的控制下在屏幕中上方画出网格表出来,使后续观察脉搏波形是更为简洁明了,继而会显示心率数和脉搏波形,便于患者与医生的观察与诊疗。图6TFTLCD接线图4软件程序设计软件部分包括:设置2ms/次进入中断的定时器、定时器触发下的A/D转换、心率算法、LCD波形显示、串口通信及LabVIEW上位机显示界面。4.1主程序设计 本文设计的心率监测仪是采用C语言编程,以加入了STM32F103系列单片机库函数的KeiluVision5软件为编程环境。Keil软件是德国KeilSoftware公司推出的软件开发系统,支持汇编语言和C语言的程序设计,提供了包括C编译器、宏汇编、连接器、库管理和仿真调试器等完整的开发方案,通过一个集成开发环境组合在一起,功能强大且方便易用[9],主程序流程图如图6所示。 该心率检测仪主程序完成的功能主要有:GPIO口的初始化(GPIOA时钟使能,GPIOA1设置为GPIO_Mode_AIN模式)、定时器的初始化(使能定时器3,使能定时器3中断,允许更新中断,计数模式设置为向上计数模式)、ADC初始化(使能ADC1通道时钟,ADC工作模式设置为:ADC1与ADC2独立工作模式,模数转换工作为单次转换模式)、定时器2ms一次的定时(将定时器3的自动重装载值设置为100,预分配系数设置,7200)、TFTLCD屏幕初始化(LCD_Init,设置背景颜色为黑色,字体颜色为白色,波形颜色为红色)与绘制网格(drawgaid,在屏幕中上方以打点的形式画出方形状网格,便于观察波形的幅值高低)、串口初始化(uart_init,并设置波特率为9600,使能串口1接收中断)及传输数据、LabVIEW(通过下载VISA建立起适合上位机与单片机之间串口通信的平台,使得数据间的传输得以正常)接受数据等功能。图6程序流程图4.2定时器中断服务子程序 定时器中断服务子程序流程图如图7所示,为了使得单片机便于推算心率值,本文特地使用了定时器中断,首先使能定时器3的时钟,然后将定时器3设置为向上计数模式,继而调用TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE)函数,使能特定的定时器中断且允许更新中断,调用TIM3_Int_Init(自动重装载值,预分频系数)函数,将定时器3的自动重装载值设置为100,预分频系数设置为7200,这样就使得定时器3每隔2ms就会进入一次中断。在中断服务子程序中,设置一个标志位time_flag,当定时器计数到达2ms时进入中断服务程序,使得time_flag置1,用于主程序中判断定时器计时是否达到预定时间。图7定时器中断服务子程序流程图4.3A/D转换由于脉搏信号低频率、易受干扰的特点[10],可将模数转换模式在初试化时,通过调用函数将其设置为单通道工作,单次转换的模式,在程序分析脉搏传感器传输过来的数据时,首先利用定时器设定每两毫秒一次的定时,当定时时间到达时,程序进入中断,标志位time_flag会被置1,触发A/D转换,这样A/D就可以每两毫秒一次的速率对脉搏信号进行采样,采样后的数据会存入一个足够大的数组中,用于后续对心率的推算与分析,A/D转换流程图如图8所示。图8A/D转换流程图4.4心率算法4.4.1阈值、波峰与波谷阈值的设定是用于判断A/D转换得到的数字信号是否为脉搏信号,且可由此得出脉搏波波峰和波谷[11]。此阈值设置为采集到的脉搏波形峰值的二分之一,也可因硬件电路的不同而做出改变。4.4.2重搏切迹的滤除因脉搏波的特殊性,其波形中会出现如图5脉搏波形图所示的重搏切迹,影响程序对波峰和波谷数值的获取[12],为解决这一问题,本文利用软件滤波的方式[13],在获取波峰与波谷值之前,首先判断距离上次心拍的时间是否大于两次心拍时间差的五分之三,若是,才会将波峰与波谷的数值更新。4.4.3心率值的确定在捕获到两次脉搏信号后,将两次搏动的时间间隔放入数组中,如此反复得到十组间隔时间后求出平均值,作为平均时间间隔,继而用60000除以平均时间间隔,获得脉搏跳动次数。若在2.5s内,再无检测到心跳,则将阈值与波峰、波谷的值初始化,等待下一次心跳的到来。图7脉搏波形图4.5LabVIEW上位机界面的制作 通过LabVIEW制作的上位机显示界面通常分为前面板和程序框图[14],前面板用于向外界展示制作的界面的样式和各种功能,如示波器显示波形、温度计和电压变化等,可通过第三方软件制作与美化界面,程序框图则用于构建各种仪器与数据之间的连接,信号的走向等一系列操作,操作简单,适用范围广,LabVIEW程序设计框图如图8所示。图8LabVIEW程序设计框图4.5.1VISA函数 LabVIEW中的VISA函数是仪器编程的标准I/OAPI,可控制GPIB、串口、USB、以太网、PXI或VXI仪器,并根据使用仪器的类型调用相应的驱动程序,用户无需学习各种仪器的通信协议。VISA独立于操作系统、总线和编程环境。SCPI(可编程仪器标准命令)是用于仪器编程的ASCII命令字符串的标准。相似的仪器通常使用相似的命令[15]。用户只需学习一组命令,而无需学习各个仪器生产厂商各种仪器的不同命令消息。最常用的基于消息的函数是:VISA读取、VISA写入、VISA置触发有效、VISA清空和VISA读取STB。在本文中,VISA函数用于实现单片机与上位机之间的串口通信,VISA函数的程序图如图9所示。图9VISA函数4.5.2十进制字符串至数值转换函数 通过串口调试助手得知,由单片机经串口发送至LabVIEW的数据为十进制字符串,然而在LabVIEW中,如若需要显示脉搏的波形图,需要得到的数据类型为数值型,此时就需要用到十进制字符串转数值函数,此函数可以将由串口输入的十进制字符串的数据,从指定的地址起始,将字符串转换为数值型变量,再将输出的数值接入虚拟示波器上,其中的字符串可为字符串、字符串簇、字符串数组,或字符串簇数组。在本文中,十进制字符串至数值转换函数用于将单片机经串口发送至上位机的数据转化为数值,以便后续LabVIEW对脉搏波形的绘制与信息的存储,十进制字符串至数值转换函数如图10所示。图10进制字符串至数值转换函数4.5.3While循环函数 While循环函数用于使得LabVIEW可以一直对接受到的数据进行处理,使构建好并且正确无误的程序在满足一定判断条件的情况下一直循环运行。可在While函数执行前先行设置好约束条件,如果条件满足程序的执行,While循环才会启动,并且While循环至少执行一次。在本文中,While函数用于使程序在接收到开始指令后,对由串口上传至上位机的脉搏信息进行接收与处理,While函数如图11所示。图11While函数5系统实物制作与调试AltiumDesigner是AltiumLimited公司推出的一款电子设计自动化软件,该软件集成了电路设计与仿真、印刷电路板设计、信号完整性分析、三维电路板设计、嵌入式开发等功能,可以帮助电子工程师完成复杂电子产品的设计[16]。本文使用AltiumDesignerSummer16进行分模块的原理图的绘制,实物制作使用的万能板进行手工焊接,在目前的物质条件下较为符合现实,经济快捷,方便有效。本文通过脉搏传感器对脉搏信号进行模拟采样,在硬件电路二级放大部分输出部分焊接测试点,在此测试点处连接示波器进行观察,示波器波形如图8所示,通过示波器的显示信息可知此信号的波形与幅值均符合人体脉搏波形信息。图8示波器显示波形然后将脉搏传感器获取的模拟信号进行滤波及放大,送入STM32进行A/D转换,将转换后的数值通过串口发送至上位机利用LabVIEW制作的显示界面进行显示,得到的脉象如图9所示,显示界面显示的波形与示波器显示的波形基本保持一致。图9上位机显示界面同时,STM32驱动LCD屏幕显示脉搏波形与心率值及脉搏波形的峰峰值,显示结果如图10所示。图10LCD显示界面根据医学数据显示,人体心率值正常在60-120之间[17],为验证该脉搏信号采集系统的正确性,本文将在医务室测量的脉搏值作为参考脉搏跳动次数,经系统测得的脉搏值作为所测脉搏次数,得到如表1所示的实验数据,证明该系统测量准确,性能可靠。表1脉搏测试数据性别体重(kg)所测脉搏跳动次数(次/分)参考脉搏跳动次数(次/分)误差(%)男62.285861.16男78.91081101.82女51.571732.746结论本文针对脉搏波形的特征与心率值,设计了基于单片机的心率检测仪。介绍了系统的总体设计方案,仔细分析了软件的编写方式和硬件电路的搭建,通过软硬件结合的方式对脉搏信号进行一系列的处理,制作了上位机显示界面,完成了脉搏信号的采集、信号的放大与整形,并且经过反复调试,终于得到了TFTLCD显示屏上的脉搏波形与示波器及利用LabVIEW制作的显示界面上的波形基本保持一致,由得出结果并给出测试图,具有一定参考价值,可以在病情的诊疗中为医生提供参考与帮助。由于经费和时间等条件的限制,本系统在软件与硬件方面均可有所改进,在软件方面,可以在程序中添加更为复杂的算法去分析脉搏波形与心率值,实现更多分析功能,如脉象分析功能及用药建议等。在硬件方面,由于每次测试时需要准备找到人体手腕出脉搏跳动最明显处,才可更为准确的观测波形,所以可在硬件方面采用更为灵敏的传感器,实现快速测量。本系统的设计希望在实际生活中可以为大众提供更为便捷客观的脉象分析。参考文献[1]刘艳.基于USB技术的脉搏数据采集系统的研究与设计[D].哈尔滨理工大学,2005.[2]杜辉,庞春颖.基于MSP430的低功耗脉象信号采集系统[

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论