袖带式血压信号采集系统设计

2023-03-14 07:55向蓓蓓郭妍谢光敏陈吉鑫
现代计算机 2023年1期
关键词:袖带气泵单片机

向蓓蓓,郭妍,谢光敏,陈吉鑫

(四川水利职业技术学院信息工程学院,成都 610039)

0 引言

随着社会经济突飞猛进的发展和人民生活水平的日益提高,人们患上血液疾病的概率越来越高,众所周知,血液的容积、血管硬化的程度、心脏功能、内分泌、运动、情绪等都是影响血压的因素。要想了解到底是什么因素,到底影响多大,还得依靠血压的精确测量加以判断。生理学家Harrey在1628年提出了血液循环理论,在那之后的几百年来,找到既方便有效又准确可靠的血压测量方法便成为研究者们一直追求的目标,时至今日,血压测量的方法已经有很多,但每种方法都存在一定的缺陷,始终差强人意。基于袖带充放气的示波法对比电子柯氏音法,具有很明显的优点,示波法的抗干扰性强,重复性好[1],因此是电子血压计和血压监护仪应用最广泛的方法。基于此,本文旨在通过袖带式血压信号采集的设计,采用示波法原理进行血压测量,对比日常中各类血压测量技术,找到最准确、最便捷的检测方式,实现对血压精确的测量。

1 方案介绍

1.1 系统构成

设计的模拟电子血压计的主要组成部分包括单片机、压力传感器、初级次级运算放大电路、滤波电路、数模转换电路、显示电路。首先通过压力传感器采集血压信号,血压信号通过运算放大电路和滤波电路的预处理,从而分离出两路信号,模数转换电路再对两路信号进行模数转换,最后由单片机来完成信号的储存与计算[2],计算所得到的数据控制血压计的外围电路,从而通过显示电路对收集到的血压数据的数值进行显示。实验所设计的整个血压采集系统主要由以下几部分组成。

1.1.1 信号采集

由压力传感器、前置放大器、带通与低通滤波器构成,主要功能是分离出袖带压力信号和脉搏波信号。

1.1.2 模数转换

由多路D/A转换器构成,主要是将袖带压力信号和脉搏波信号转换成数字信号。D/A转换器为单片机的外设。

1.1.3 中央处理单元

系统的中央处理单元主要部分采用的是单片机AT89C52,其主要的功能:微控制器接收特定的系统参数设置和来自微控制器的外部控制命令,并将测量数据传送回主微控制器。这些数据为血压计算提供了具体信息,包括收缩压、舒张压、平均血压数据、气泵模数转换控制以及测量过程中各种算法的实施。微控制器控制气泵的填充和排空过程,并实现对报警系统的控制。

1.1.4 显示模块

显示电路主要采用LCD1602,用于显示舒张压、收缩压和平均血压值。

1.2 系统构成框图

根据系统构成框图(如图1所示),该系统的整个工作流程如下:手臂套上袖带,袖带充气放气,产生气压。压力下血管的血流产生振荡波,通过气管被压力传感器接收。压力传感器将接收到的振荡波信号传送到差分放大电路。差分放大器将振荡波信号分成两路,根据振荡波信号的不同频率,两路信号被一个用于分离袖带压力信号的低通滤波器和一个用于分离脉冲波信号的带通滤波器分开,并一起传送到D/A转换器,经由数字信号电路进行处理之后,由单片机计算出舒张压、收缩压和平均血压值[2]。计算数据输入至LCD显示。如果测量值超出正常范围,报警信号通过显示模块LCD显示为“!!!”。

图1 系统构成框图

2 硬件设计

2.1 压力传感器BP01

采集血压信号,系统用到的是压力传感器BP01,压力传感器BP01具有高线性、低噪声的特性。通过温度补偿和内部标定的方式来提升测量精准度、系统稳定性。全范围内精度为±1%,零点失调不超过±300 μV。BP01的电路连接如图2所示。

图2 BP01电路连接

2.2 信号预处理电路

2.2.1 前置放大电路

动脉血压的参数范围为10~400 mmHg,压力传感器BP01输出的差分信号为0~15 mV,无法对生理信号进行直接的记录与显示,因为生理信号幅度偏小、频率偏低、内阻高、噪声大、抗干扰性弱[3]。为了克服生理信号的这些特性,就要求初级放大电路有一个合适的通带宽度和动态范围,必须具备较高的共模抑制比、低噪声、高增益以及高输入阻抗,要达到这些高要求,前置放大器将是最好的选择。

放大电路中,U3:B和U3:C连接成同相输入的形式,能够对电压起到缓冲作用,同时增大输入阻抗。U3:D则构成差动放大器,提供差模增益,对从U3:B和U3:C传送来的共模电压起到抑制的作用,从而提高共摸抑制比。前置放大电路图如图3所示。

图3 前置放大电路

2.2.2 分离袖带压力信号和脉搏波信号

袖带压力信号变化非常缓慢,属于低频信号,因而需要采用低通滤波器来提取出袖带压力信号。本次实验设计采用的是二阶有源低通滤波器,如图4所示。

图4 二阶有源低通滤波器及次级放大电路图

通常情况下,脉搏波信号的频率在0.6~6.4 Hz范围内,脉搏波信号还掺杂着一些高频干扰和低频分量。基于此,本实验设计采用带通滤波器进行信号除杂优化,采用两级带通滤波器的级联来提高增益。两级级联能使频率响应更加尖锐,从而提高输出的信噪比。获取脉搏波信号,将频率设定为0.4~6.6 Hz,电路图如图5所示。

图5 两带通滤波器的级联

2.3 模数转换电路

2.3.1 ADC0808模数转换芯片

本设计用到的模数转换芯片是ADC0808,如图6所示。它的构成包括一个地址锁存器、一个译码器、一个8路的模拟开关、一个D/A转换器和一个三态输出锁存器[4]。各引脚功能如下:

图6 ADC0808模数转换芯片

START:启动D/A转换的信号输入端,上跳沿时,所有内部寄存器处于清零状态;下跳沿时,开始进行D/A转换;在转换期间,START应保持低电平。

EOC:转换结束信号的输出引脚,低电平时开始转换,高电平时转换结束[5]。

OE:输出允许控制端,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。

ALE:地址锁存允许信号输入端,高电平时有效,此时地址锁存连同译码器将锁存3位地址线的地址信号,经译码的通道的模拟量被选中后被转换器转换。

IN0~IN7:8位模拟量输入引脚。

OUT1~OUT8:8位数字量输出引脚。

A、B、C:对IN0—IN7进行选通的一路模拟量输入,是3位地址输入线。

2.3.2 单片机AT89C52

单片机AT89C52是本设计的中央处理单元,如图7所示。内部结构与MCS-51系列单片机的构成基本相同,但数据存储器与51系列的其他单片机相比大很多,存储容量为256字节,单片机AT89C52的指令系数和引脚功能与MCS-51的完全兼容[6]。各引脚功能如下。

图7 AT89C52

XTAL1:振荡器反相放大器的输入端。

XTAL2:振荡器反相放大器的输出端。

RST:复位输入。

P0口:是一个8位漏级开路的双向I/O口。每位能驱动8个TTL逻辑电平。当输入高电平时,引脚作为高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用[7]。

P1口、P2口、P3口:是具有内部上拉电阻的8位双向I/O口,P口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平[7]。当输入高电平时,内部上拉电阻将拉高端口,此时可作为输入口。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL。

2.3.3 ADC0808与单片机AT89C52的连接

模拟信号通过output0和output1进入ADC-0808,经模数转换之后,数字信号由OUT1-8输出到单片机P0口。如图8所示。

图8 D/A转换电路

2.4 数据显示部分

在选择显示器上,考虑到仿真结果的血压计数据显示。数码管只能显示数字,一次只能显示一个内容,需要按键切换,操作相对麻烦。LCD显示的内容较多,一次能把全部需要的内容显示出来,操作更方便,看起来也更直观。另外LCD工作电流不大、体积轻巧、功耗低、寿命长,显示效果逼真[8],因此本设计的数据显示采用的是LCD1602。

3 系统软件设计

3.1 系统软件设计流程

系统软件设计流程如图9所示。开始时,系统首先对按键进行判断。如果按键按下,单片机的控制口将启动气泵充气;若按键无效,则返回初始化重新判断。当ADC信道0所测的血压直流量大于4 V时,气压足量则充气结束,气泵开始放气,此时气压大致为180 mmHg或略微大于180 mmHg;若血压直流量不大于4 V,则返回初始化重新判断。通过ADC信道1采集血压交流分量测量出脉冲的峰峰值,并计算ADC通道0在该脉冲期间测量的袖带压力信号的平均值。该峰峰值和袖带压力信号平均值作为测量的一对数据,每个心跳脉冲对应这样的一对数据。

图9 系统软件设计流程图

由ADC信道0测到的血压直流分量小于1 V就表示气压低于50 mmHg,单次测量结束。从记录下来的多对由峰峰值和袖带压力信号的平均值组成的数据中找到最大的峰峰值,再从这些数据中找出最接近最大峰值0.5倍的一对数据,对应的血压直流分量就为收缩压;最接近最大峰值0.7倍的一对数据,对应的血压直流分量就为舒张压。然后对测出的血压值是否在正常值范围内进行判断。本实验设计的合理的测量范围是收缩压为90~140 mmHg,舒张压为65~90 mmHg。如果测量数据不在合理范围内,将通过LCD显示出报警信号“!!!”。

3.2 模数转换的程序流程

系统在气泵开始充气时就开始了D/A转换,D/A转换与充气放气同时进行。单片机采用查询P2.5口来判断转换是否结束,一旦模数转换结束,P2.5接收到高电平,系统检测到高电平后开始读入数据。模数转换的程序流程如图10所示。

图10 模数转换程序流程图

4 调试与仿真

系统在调试仿真部分采用的是Keil uVision2和Proteus ISIS。按下按钮,气泵充气。血压直流量大于4 V时,气泵均匀放气,开始测量交流信号;当血压直流量小于1 V时,测量结束,显示模板显示测量值。

(1)血压测量值在系统设计的合理测量范围内,仿真结果如图11所示。

图11 血压正常显示图

(2)血压测量值不在合理范围内,LCD显示屏上显示报警信号“!!!”。仿真结果如图12所示。

图12 血压偏高报警电路图

5 结语

本设计以单片机AT89C52为控制核心,利用单片机的高度集成化,大大简化了实验电路图,再辅以压力传感器BP01、气泵、报警、外围的模拟电路以及LCD驱动芯片,设计出简易的血压测量计,其基本工作过程为:压力传感器采集信号,通过差分放大器分离出袖带压力信号和脉搏波信号,再对这两种信号作滤波处理,之后所得的信号通过模数转换后,单片机AT89C52再计算分析数字信号,最后得出收缩压、舒张压,通过LCD显示。在软件设计中,采用数字信号处理技术对D/A采样的信号进行处理,并结合相应的算法及编程方法实现计算血压值的程序。

猜你喜欢
袖带气泵单片机
介绍一种防止股部止血袖带下滑的新方法
某轻型电动商用车打气泵的振动优化研究
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
超便携电动抽气泵
自己量血压,记住4句话
监护仪不同袖带绑扎方法对血压测量及袖带破损的观察
手机自拍悬浮系统
手机自拍悬浮系统