精品基于LabVIEW的脉搏检测系统设计.docx
- 文档编号:15242488
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:33
- 大小:613.02KB
精品基于LabVIEW的脉搏检测系统设计.docx
《精品基于LabVIEW的脉搏检测系统设计.docx》由会员分享,可在线阅读,更多相关《精品基于LabVIEW的脉搏检测系统设计.docx(33页珍藏版)》请在冰点文库上搜索。
精品基于LabVIEW的脉搏检测系统设计
基于LabVIEW的脉搏检测系统设计
摘要
本课题以STC15单片机作为控制系统核心的心率测量仪的设计,先采用红外对管采集脉搏的信号,然后将LM328当做运放设计调理电路而处理所采集的信号,在其处理之后,将其送至单片机实施A/D采样与算法处理,其后在液晶屏上显示出脉率与脉搏波形。
此外,应用LabVIEW进行上位机的设计而取得和MCU之间的通信。
基本实现了对人体脉搏的测量,以及对脉搏波形的实时监控。
此次脉率测量的设计方式较为简捷,并且具有精准的测试结果与整齐大方的显示界面,因此其发展前景是光明的。
关键词:
脉搏检测系统,STC15W408AS,红外光电传感器,串口,LabVIEW
Designofpulseratedetectionsystem
BasedonLabVIEW
Abstract
ThistopictoSTC15single-chipmicrocomputerascorecontrolsystemoftheheartratemeterdesign,byusinginfraredtubetopulsesignal,theamplificationfiltercircuitforfilterandamplificationprocessing,thepulsesignalsusingLM328asop-ampdesigncontrolcircuittorealizethecollectionofsignalprocessing,theprocessingofsignalintotheMCUA/Dsamplingandprocessingalgorithm,thefinalrealizationofpulsewaveformontheLCDpanelandpulsefrequencydisplay.Inaddition,LabVIEWisusedtodesigntheuppermachinetocommunicatewithMCU.Themeasurementofhumanpulseandthereal-timemonitoringofpulsewaveformarerealized.Thedesignmeasuringpulseratemethodissimple,thetestresultisaccurate,thedisplayinterfaceisfriendly,hastherelativelygooddevelopmentprospect.
Keywords:
Pulsedetectionsystem,STC15W408AS,infraredemissionreceivingsensor,serialport,LabVIEW
1引言
1.1脉搏的研究背景
每分钟脉搏跳动次数这一物理量在生产加工,人们日常生活的各个方面都是一个最基本也是非常重要的一个物理量,在很多应用条件下,需要对脉搏跳动这个量进行检测和监控。
近几年来,伴随现代科学技术的不断进步,对现代设备的精度的要求也越来越高,信息技术领域的前沿尖端技术包括了传感器技术,通讯技术、以及计算机技术。
在了解人体脉搏跳动的状况之后,便能够推断出心脏的状况,进而了解到我们身体的健康水平。
但是,对于诊断看病来讲,此项工作存在着一定的难度,因此掌握诊脉方式是相对困难的。
1.2选题意义
由心脏搏动而引起的脉搏,我们可以根据这个线索去找反映身体的重要标志。
针对脉搏的跳动,我们都知道在中医上有一种非常重要的诊断方式,那就是诊脉。
中医的医生一直是用手来号脉,进而得到脉搏的信息。
通过手号脉是一种很难掌握的技巧,因此人们十分的迫切有一种仪器可以快速准确的得到脉搏跳动的次数这个信息。
作为工业管制系统中必不可少的组成部分,实时数据采集,是进行工业分析,进行工业处理以及控制的根据。
将单片机采集到的脉搏每分钟跳动次数数据通过窗口传输给上位机,达到了进行了实时远程监控,以保证平常医疗安全检测。
2系统设计方案
2.1实现的要求和功能
(1)运用光电传感器原理采集到人体的指尖输出的脉搏信号,通过A/D转换、MCU处理及设计的算法得到脉率;
(2)通过上位机(LabVIEW)及液晶屏实时显示波形及脉率值,实现人体脉率的现场及远程实时监测;
(3)所采集的波形具有噪声低以及完整干净的特征;
(4)应当将测量结果的误差范围控制在6%以下;
(5)上位机的富有人性化,以方便专业人士进行分析以及观察;
(6)价格合理,性价比较高。
2.2采集主控芯片方案
方案一:
利用STC15W408AS单片机完成对各个模块进行控制。
方案二:
利用单片机STC89C51作为控制部分。
方案论证:
对于方案一所运用到的单片机来讲,其是由STC公司所制造的单时钟/机器周期(1T)单片机,其具有抗干扰能力超强、功耗低、可靠性高、以及高速等特点,8路高速10位A/D转换。
方案二中STC89C51单片机虽然简单易懂,但功耗相对较大,数据传输的速率比较低,要实现较复杂的控制功能还存在一定的难度。
综合以上所述,本设计采用方案一,用STC15W408AS作为芯片控制部分。
对于系统所采用的STC15W408AS来讲,其是由STC公司所制造的单时钟/机器周期(1T)单片机,其具有抗干扰能力超强、功耗低、以及高速等特征,其指令代码与传统的8051完全兼容。
MAX810存在着数量众多的内部集成专用复位电路,2路PWM,8路高速10位A/D转换。
此外,STC15W408AS还带有丰富多样以及功能灵活齐全的片内外设,为用户提供了丰富的选择空间,同时,也为设计人员们的设计、创新、以及创造提供了更大的空间。
2.3脉搏传感器的选择
对于脉搏跳动的测量来讲,主要存在着两种传统的测量方式:
其一,利用压力传感器测量血液中压力的变化进而计算出脉搏的跳动;其二,光电容积法。
目前,由于第二种方式测量的准确性以及便利性,是应用最为普遍的监测测量方案之一。
光电容积法的基本理论是,由于血管正常的搏动时,会导致人体组织不同的透光率,就是利用这种不同,来达到测量的目的。
光源与光电变化器这两个部分组成了这种传感器,一般贴着人的耳垂或是手指。
光源所运用到的发光二极管的波长范围在五百纳米至七百纳米之间,该波长范围的光,对动脉中氧和血红蛋白具有选择吸收的特性。
当一束光照射人体表皮血管时,由于动脉的搏动会改变血液容积的变化,这种变化会造成此束光的透光率产生一定的变化。
光线经由人体组织反射之后被光电变换器所接收,进而转变为电信号,然后再将这个电信号输出。
由于心脏是周期性搏动的,动脉中的血管容积也会跟着周期性变化。
因此,有光电变化得到的电信号也会跟着周期性变化。
它们的变化基本上都可以看成是同步的。
这样通过电信号周期性的变化,我们就可以得到脉搏跳动的信息,进而的到心率这一指标。
现如今,我国市场上主要有两种常用的光电容积脉搏探测器:
其一,反射式光电容积探测器;其二,透射式光电容积探测器。
图2.1为其结构。
图2.1反射式与透射式对比
Fig2.1Comparisonofreflectionandtransmission
(1)对于反射式来讲,其是通过组织以及血液所反射的光强来对人体脉搏的信号进行间接性地测量,其具有更广范围的探测。
然而,它所提取到的脉搏信号要弱于透射式,对于调理电路存在着更高的要求。
(2)对于透射式来讲,其是专门为身体某些较为薄弱的部位而进行设计的,例如:
耳朵或手指,由探测器一侧所发射的近红外光可以将组织以及血液穿透,而被另一侧的光电探测器接收到,那么便可以将脉搏的信号再次显现出来。
由上述克制,透射式红外光电传感器能很好地与本设计契合,故将其运用到本设计当中。
当手指侧方在红外对管中间的时候,由于心脏跳动,使得血管中血流量发生了一定的改变,红外发光二极管所发出的红外线对手指进行照射,通过手指中非血液组织的反射以及衰减,然后经由对面红外接收二极管来进行其透射光的接受,然后将所透射的光照强度转化成为脉冲,从而将其扩大、滤波之后传至单片机外部计数口,其后由单片机计算以及处理所输进的信号脉冲,那么就能够对脉搏次数进行实时地测算,图2.2是其工作流程图。
2.4上位机实现方案
上位机和单片机实现是通过串口来实现的。
单片机自带串口,实现起来非常方便。
在本设计中,通信协议采用自定义的。
上位机的实现方案有很多种,目前主流的面向对象编程软件有VisualBasic.NET、C#、Java、LabVIEW等。
在本次设计中,LabVIEW是上位机的实现方案。
对于编程软件LabVIEW来讲,其是一种由NI公司所研制的虚拟仪器。
借助于此软件便能够采集数据、控制仪器、分析数据、以及表达数据。
其便于使用者建立适合自身所需的仪器系统。
比较于传统仪器,其具有多变性、以及灵活性的特点,拥有非常广阔的发展空间。
与传统程序的设计方式相比较,LabVIEW存在着诸多无法比拟的优点,对于开发者来讲,仅需要连接起逻辑框就能够形成程序。
LabVIEW在进行图形编程时,其表现出了简便清晰的特点,并且也存在着数量众多相对应的设备驱动,并且也进行了众多表达模块以及分析模块的配置。
3硬件电路设计
3.1系统总框架
此次设计以STC15W408AS单片机为处理控制核心,通过51单片机的ADC功能,本设计主要包括了STC15最小系统、LCD12864显示模块、信号采集电路、放大电路、比较电路、以及液晶显示电路。
与单片机进行数据传输,从而实现了将脉搏传感器采集上来的数据传输到LabVIEW上位机上,显示被测者心率值以及波形。
系统的总框架如图3.1所示。
图3.1系统总框架
Fig3.1Overallframeworkofthesystem
3.2单片机模块
3.2.1主芯片STC15W408AS介绍
(1)STC15W408AS单片机引脚分布如图3.2所示。
图3.2STC15W408AS引脚图
Fig3.2STC15W408ASpindrawing
(2)下面将对STC15W408AS芯片部分引脚的功能及特性进行说明:
1)RST:
表示异步复位引脚。
当RST为低电平状态时,MCU为复位状态,重设内部寄存器,及片内SRAM;当RST从低电平变为高电平的时候,PC指针从0地址开始。
STM15中的RST具有施密特功能,在输入电压不达1.9V时芯片会自动复位。
2)SCK、SDA、RS、CS:
连接对应的液晶显示屏的接口,SCK是I2C的时钟控制线,SDA是I2C的数据传输线,RS为RD是读数据的控制信号。
3)P1.0/ADC0:
ADC的输入通道在由调理电路扩大之后的脉搏信号,其峰值大约是0.5V,而对于STC15W408AS系列单片机来讲,在其片内集成有12位转换精度的ADC模块,其分辨率最小是
,可以适应于精度所需,其采样频率高至200ksps,但是信号频率仅为0~10赫兹,因此,采样频率也同要求相一致。
此外,运用片内集成的ADC12也能够促使开发成本得以降低以及系统稳定性得以提升。
4)P3.3/INT1:
外部中断1,不仅能够下降沿中断,同时能够上升沿中断,假使INT1管脚只是下降沿中断。
假使INT1在清0之后,INT1管脚不仅支持上升沿支持下降沿中断。
作为输出信号接口。
5)TXD和RXD:
分别为串口发送和接受引脚。
3.2.2单片机最小系统模块
对于单片机最小系统来讲,其指的是单片机最小的应用系统,通过最少的元器件而构成的单片机正常运作的系统,由复位电路、电源电路、以及单片机所构成。
3.2.3电源电路
本设计需要5V电源供电,调理电路中的LM324、LCD显示、单片机供电以及红外发射传感器都需5V电源供电。
因为电源纹波会极易干扰到微弱的脉搏信号,因此为确保采集到的脉搏信号较为干净,那么设计电源同样十分关键。
此处所选取的电压转换器具有低功耗的特点,它的输出电流能够达到800毫安。
此芯片应用在电池供电场合是十分适合的。
此外,稳压芯片的两侧均增加了一个100NF的极性电容,其目的是将电源中的低频信号过滤掉,同时增加了一个10uF的非极性电容,其目的是将电路中的高频信号过滤掉。
在某种程度上,此设计可以降低电源纹波所产生的干扰,有效地保障了可靠脉搏信号的提取。
如图3.3所示。
图3.3电源电路
Fig3.3Powercircuit
3.2.4复位电路
对于单片机复位来讲,其指的是把所有系统进行初始化,以利于系统可以返回至原始的状态而再次进行运行。
复位条件是:
输进连续2个周期以上的高电平在RST引脚,其后复位操作由单片机开始实施。
图3.4为此次所设计的复位电路原理图。
3.3脉搏信号的采集
图3.5为信号采集电路图。
D1是红外发射二极管,D2是红外接收二极管,红外传感器由D1以及D2所构成。
VCC是电源输入。
在人体手指插到红外对管中间且心脏收缩的时候,也就是脉搏跳的瞬间。
指尖的血液流过的时候,红外光的透过率下降,经过R3的电流低;在心脏处于舒张状态时,人体血液开始回流,也就是脉搏不跳的瞬间,指尖所含有的血液较少,具有较高的透过率,经过R3的电流便会增大。
3.4脉搏信号的处理
3.4.1低通滤波放大电路
对于传感器所直接采集的脉搏信号来讲,其是十分微弱的,因此不可以让单片机对其实施直接的分析。
其必须要先将信号扩大以及滤波,将信号扩大至V的数量级。
由于脉搏信号具有相对较低的频率,因此,此处信号的处理选择了低通滤波电路。
如图3.6所示,此电路是同相比例运算电路以及RC滤波电路两者所组成,电解电容C4是用来隔直流,C4和R4构成RC滤波。
信号输入时要经过R4和C4共用组成低通滤波电路,目的是将输入的信号进行频率截止和清除干扰,以提高测量数据的精确度。
而LM358的作用就是将滤波后得到的微弱信号进行放大,以便于被单片机采集到,放大倍数则按照单片机采集信号的标准通过R5和R6的阻值比例来调整。
能够借助于电位器的调节来进行电压放大倍数的变化,最小的电压放大倍数是:
(3.1)
截止频率是:
(3.2)
假如以每秒200次的心率进行计算,那么其频率大约是3.33赫兹,因此滤波的特性还是相对较好的。
图3.6信号放大电路
Fig3.6Signalamplifiercircuit
3.4.2电压比较器
信号在经滤波以及扩大之后,其依旧是模拟信号,目前要将此信号送至电压比较器,把模拟信号转换为低电平或是高电平状态的数字信号。
图3.7为电压比较器。
此为单限比较器,同相输入端射极跟随器正向输入是接上图的一级放的输出的,因此此处称之为二级。
三级即为比较器可以将整形之后的脉搏方波输出,将一LED灯连接在输出处,此时人体脉搏的跳动便能够直观地显示出来,当高电平来一次,那么灯便亮一次。
3.4.3运算放大器LM358
在处理信号时所运用到的运放为LM358.LM358,其具有2个内部频率补偿、高增益、独立的双运放。
其不仅能够工作于单电源模式下,双电源工作模式同样适用。
下图3.8是LM358引脚图。
两个运放的信号输出端口依次是OUT1以及OUT2;GND接地,VCC接电源电压;IN1(+)为两个运放的同相输入端,IN2(-)为两个运放反相输出端。
当输入1(+)大于输入1(-),输入2(+)大于2(-)是,输入1和输出2输出高电平;
当输入1(+)小于输入1(-),输入2(+)小于2(-)是,输入1和输出2输出低电平;
图3.8LM358的引脚结构
Fig3.8LM358pinstructure
3.5液晶显示模块
在数字信号被ADC转换之后,则需在液晶屏予以显示,因为需将脉搏波形显示出来,因此应当选取一种具有较高分辨率的液晶屏,此外,为了使液晶屏便于携带,那么其要具备体积小以及功耗低的特点。
综合考虑了之后,便选取了LCD12864显示屏。
对于液晶显示屏来讲,其使用引脚仅为12个,但是在去掉背光引脚以及电源引脚后,仅需5个引脚与单片机的I/O口相连接,因此十分便利。
以更好地促使单片机灵活地控制液晶屏的背光与电源光,此处选取除GND之外其它5个引脚均受单片机I/O口的控制。
依次连接至P1.3到P1.7七个I/O口中。
具体引脚如图3.10所示:
图3.10LCD1602显示模块原理图
Fig3.9LCD1602displaymoduleschematicdiagram
3.6USB串口通信模块
在此次的设计中,应用了USB串口来实现LabVIEW上位机与单片机之间的通信,在传输的过程中,USB所运用的为差分信号。
对于单片机串口来讲,其能够实现TTL,却只能间接地应用在USB通信中,此外USB协议十分复杂,通过单片机难以实现。
因此,我们能够把单片机串口所输出的电平借助于CH340G转接芯片而转变为上位机USB接口能够辨认的差分信号以及USB通信协议实现后,便能够把相关的数据传到上位机。
在运用此项目之后,可以明显地感受到其所具有的各种优点,那么对于应用上位机的有关仪器设备具有重要的参考价值。
4系统软件设计
4.1测量计算原理
在单片机中,主要运用测量的计算,这个测量的原理是,在t秒时间内,有连续的K个脉搏跳动,则在t时间内,脉搏跳动频率的平均值n(次/min)为:
n=60K/t(4-1)
我们通过使用脉动信号去控制单片机上的定时器T0,中断计数使用的是工作寄存器,假定该值为N,于是得到:
t=0.001N(4-2)
由前面两个式子可以得到:
n=60K/t=60K/0.001n=60000K/N(4-3)
上式的数据模型,就是使用单片机计算脉动跳动频率的公式原型。
4.2主程序流程介绍
一般来说,程序的设计方式大多都是采用模块化模式。
将一个完整的程序设计成几个相互独立的模块,每个模块间互不影响。
这样不仅可以让模块的功能更为完整,而且还可以明确设计思路,增强程序的可读性。
同时也方便整个程序的设计和调试,方便管理。
图4.1为主程序流程设计图。
图4.1主程序设计
Fig4.1Mainprogramdesign
4.3显示程序流程
显示程序的功能主要是将AD转化后的波形以及单片机计算得到的心率在显示器上进行显示。
如图,在整个设计中,最为关键的是10毫秒定时设计,是脉搏采样2次的基本条件。
本设计中,10毫秒定时是通过T1定时器来实现的,每10毫秒等待定时的检测时间t是用XinTiao_Jishu表示,那么就可以由公式n=6000/t来获得每分钟脉搏次数,本设计的2次脉搏采样即显示脉搏次数,因此当M为2的时候,t为TO计数器记录的两个脉搏时间,将计算结果转化为十进制运算,在液晶显示器上显示出来。
图4.2显示程序流程
Fig4.2Displayprogramflow
4.4ADC采用程序流程介绍
(1)ADC初始化。
1)P1端口设置成ADC功能
2)ADC存放的10bit数字信号,清零
3)禁止ADC中断
(2)ADC转换
1)ADC上电,确定转换速率和通道,启动转换
2)延时
3)等待转换完毕,否则一直等待
4)清标志位
(3)读取10bit的转换值。
4.5LabVIEW上位机程序设计
本系统通过RS232串口实现上位机与中下位机的通讯。
通过串口协议,单片机可以实现数据的发送,前提为设置好串口的波特率以及工作方式,本系统串口的工作方式选用1,设定波特率为9600bps。
当定时器1运行到8的位置时,自动开启重载模式,此刻的波特率为9600bps。
下位机主程序如图4.3所示。
图4.3上位机程序的流程框图
Figure4.3flowblockdiagramforLabVIEWprogram
4.5.1LaBVTEW串口通信配置
本系统采用RS232串口实现下位机与上位机之间的通讯,将下位机的定时器波特率设定为9600bps。
LabVIEW提供VISA(virtualinstrumentsoftwarearchitecture)驱动和函数接口,可以方便的实现串口仪器设备的控制。
我们将VXIplug&play联盟制定的I/O软件规范标准称之为VISA,其内置的标准I/O函数库,可以用于仪器的编程,由于其独立于硬件设备、操作系统、总线和编程环境,使开发人员可以用同一API(applicationprogramminginterface)控制GPIB、串口、USB、以太网、PXI或VXI仪器。
在VISA基础上实现串口的通讯,其流程包括:
先对串口采用VISAConfigureSerialPortVI进行配置,采用VISAResourceName来配置串口号,BaudrateDataBits来配置波特率、Parity来配置数位以及奇偶校验位。
再通过VISAWriteVI在While循环的串口中输入数据,通过VISAReadVI来进行数据输出,从而实现数据的交换。
最后对VISA串口资源调用VISACloseVI来完成释放。
下图4.4为VISA串口的配置函数。
图4.4VISA串口配置
Figure4.4VISAserialportconfiguration
为了保持与单片机串口协议的同步性,这里仍然需要设定波特率为9600bps,同样将数据比特选定在8位,并将流控制以及奇偶校验缺省。
读取VISA缓冲区的数据使用如图4.5所示的函数,进行VISA读取的时候,要将单次读取的字节数量提前设定好,因为串口单次发送数据为5,因此需要在此设定为5位。
读取得到的数据是字符串的类型,还需要转换成十进制数字的数据类型。
图4.5VISA串口读取
Figure4.5ReadbyVISAserialport
4.5.2LabVIEW脉搏波形显示以及脉率计算
为了实现更好的人机交互,将脉搏电压可视化地显示成时域波形,并计算对应的脉率,方便了解这一重要生理参数。
如图4.6所示,VISA串口配置初始化之后,进行串口数据的读取,获取单片机端采集到的脉搏电压随时间变化的数据。
在VISA读取之前增加属性节点以查询VISA的I/O缓冲区中的数据个数(字节数),可以方便后续数据处理。
当字节数为零或者读取字符串为空时不执行数据处理,否则将接收到的十六进制字符串转换成十进制数据用波形图显示出来(如图4.7所示);另一方面也直接显示接收到的十六进制字符串。
对于脉率(通常情况下等于心率)计算,有两种方式:
其一是下位机直接计算好后将脉率值插入脉搏电压数据中,并加上特定标识符,以一定频率发送至上位机,后者直接读取;其二是通过上位机进行计算。
这里采用第二种方法。
如图4.8所示,VISA串口每次读取到一定字节数的数据,经由循环结构与移位寄存器转换成数组,再通过LabVIEW的峰值检测函数进行数据峰值个数的检测。
为摒除脉搏电压中各种小起伏的干扰,应该设定合适的峰值检测阈值,经调试采用该段数据(确保数据长度足够,至少能包含一个脉博峰)中最大值的90%作为阈值。
由此获得的峰值个数再比上该数据段对应的时间长度,即获得脉率。
图4.6脉搏数据读取和显示的程序框图
Figure4.6blockdiagramforreadinganddisplayofthepulsedata
图4.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 基于 LabVIEW 脉搏 检测 系统 设计