鲍俊成,王邦辉
基于STM32的电子血压计的设计与实现
鲍俊成,王邦辉
目的:研制一款测量结果准确可靠、测量过程形象直观的电子血压计,用于血压的测量及心脑血管疾病的防治。方法:该电子血压计的设计以STM32F103RBT6为主控芯片,以INA122和OPA333为运算放大器芯片,以KEIL公司的RVMDK3.8为软件设计平台。结果:设计并实现了以STM32微处理器为核心、利用示波法对人体血压进行测量的可显示测压波形的电子血压计。结论:该血压计不仅能准确测量人体血压,还能在测压过程中实时显示血管弹性波动的波形图,使医生和患者直观感受到血压的测量,增强对设备测量准确性的信心。
血压测量;STM32微处理器;示波法;波形图
近年来,电子血压计以其测量的客观性、准确性以及操作的方便性已被临床认可并广泛使用。然而,临床上在用的大多数品牌的电子血压计在测量过程中只提供收缩压、舒张压和心率值等数值信息,而缺乏对测压过程的有效动态显示,致使部分医生和患者缺乏对电子血压计足够的信任,也无法直观反映出因肢体移动而产生的干扰,从而无法有效甄别可能的测量错误。因此,为提高血压监测质量,在电子血压计中增加压力波形实时显示功能很有必要。
示波法是20世纪70年代发展起来的一种新的血压测量方法,此方法通过检测袖带振荡脉冲的变化情况来对血压值进行判定。大量研究证明,人体脉搏波与血压之间存在着一种确定的函数关系,示波法测量的原理就是根据这种函数关系来对血压值进行判定。
利用放气过程中袖带内压力波动与袖带内气压的关系间接地实施血压测量,具体测量过程是用充气袖带阻断动脉血流,在放气过程中,袖带内气压跟随动脉内压力波动而出现脉搏波,这种脉搏波随袖带气压的减小而呈现由弱变强后再逐渐减弱的趋势。大量临床研究表明,脉搏波振幅达到最大点时对应的袖带压力即为平均压,基于统计学规律,以平均压出现点为准,设其幅值为平均动脉压(mean artery pressure,MAP),向前搜索脉搏波振幅为K1×MAP左右的点对应的袖带压即为收缩压,向后搜索脉搏波振幅为K2×MAP左右的点对应的袖带压即为舒张压[1]。其中,K1一般介于0.7~0.85之间,K2一般介于0.4~0.6之间。示波法测量过程中脉搏波的变化与血压值之间的关系如图1所示。
图1 示波法血压测量示意图
本文设计的电子血压计系统分为电源部分、前端信号采集部分、微控制单元(microcontroller unit,MCU)最小系统部分和显示部分4个部分(如图2所示)。
图2 系统总体结构图
2.1 重要芯片介绍
2.1.1 运算放大器
此系统使用的运算放大器芯片均为TI公司提供的正品免费样片,包括仪表放大器INA122和运算放大器OPA333等芯片。INA122为精密仪器仪表放大器芯片,具有高精度、低噪声的差分信号采集功能[2]。它的双运算放大器设计使其具有非常低的静态电流,非常适用于便携式仪表和数据采集系统。INA122可进行单电源供电,其供电范围非常宽,为2.2~36 V,静态电流仅为60 mA,另外亦可进行双电源供电。OPA333系列互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)运算放大器芯片采用了专有的自动校准技术,能提供极低的失调电压以及随时间和温度变化接近于零的漂移[3]。这种小型、高精度、低静态电流的运算放大器在100mV共模信号的范围内具有极高的输入阻抗,其轨对轨输出时仅有50mV电压的摆动幅度。它可用于单电源或双电源方式供电,工作电压能在低至+1.8V(±0.9V)和高达+5.5 V(±2.75 V)的范围内变化。OPA333系列运算放大器出色的共模抑制能力消除了传统的补偿输入级常见的交越失真,其优异的性能提升了系统的整体可靠性。
2.1.2 压力传感器
MPXM2053GS为硅材料压阻式压力传感器,该芯片提供一个高精度的线性差分输出电压,该电压与施加于其上的压力大小成正比关系。除此之外,该芯片还具有激光微调精确跨度调节、失调校准和温度补偿等功能[4],是一款为无创血压测量量身打造的压力传感器芯片。
2.2 前级信号放大与滤波电路
压力传感器提取的信号包括血压信号、脉搏信号及其他杂波信号等。但是,我们的最终目的是提取有用的血压信号及脉搏信号,为此,我们必须使用滤波器进行滤波。由于血压信号主要分布在0.1~38 Hz之间,其中绝大多数的有用信号分布在0.5~5 Hz之间,所以必须采用低通及高通2级滤波器进行滤波。参考INA122数据手册之后,进行一阶无源低通滤波器设计,其电路图如图3所示。低通滤波器主要用来滤除高频干扰信号及放气过程中产生的谐波信号,整个信号通过低通滤波器滤波后获取的是静压力信号,随后信号被送入高通滤波器进行滤波处理,主要滤除袖带静压力信号,从而获取袖带内压力变化信号。
图3 压力传感器和前级信号滤波放大电路图
图3中一阶低通滤波器的上限截止频率为f= 1/4πR2(C7+C12/2)=33 Hz,放大倍数A=(5+R1/200)=6,将差分血压信号变为单端信号。
2.3 后级信号放大与滤波电路
血压信号经仪表放大器进行差分放大之后变为单端信号。由于此时交直流信号中夹杂的噪声仍然较多,而且信号幅值仍然非常小而不利于AD采集,故需要对其进行进一步滤波和放大。图4中放大倍数为A=-R12/R4//R=-20,其低通滤波电路上限截止频率为f=1/2π×R12×C13=4.83 Hz。经过放大之后,得到的输出信号幅值较为适中,故此时将信号送入AD转换器通道1进行采集,AD转换后经过数据换算(压力传感器差分输出 1 mV电压变化对应9.375 mmHg(1 mmHg=133.322 Pa)的血压压力变化)可得到袖带内的实时静压力。
获得袖带内静压力只是第一步,更为重要的是要获得袖带放气过程中人体血压从被阻断到恢复血流的过程中血管的压力波形。图5中的输入信号中既有直流信号又有交流信号,故此时需加高通滤波器将直流信号滤除。该一阶高通滤波器截止频率为f=1/2π×R6×C8=0.78 Hz。U5为电压跟随器,是为了增大后级运算放大器的输入阻抗,减小后级交流放大电路对前级放大电路的影响。
图5中Vout1进来之后再次经过0.78 Hz高通滤波器,进一步净化交流信号。Pulse_ADC输出的为纯模拟信号,实验过程中测得如果直接将其连接到A/D转换器会对A/D原来的信号产生很严重的干扰。因此,需在其输出端加一个RC电路进行滤波,如图6所示,我们加了一个10 kΩ的电阻和0.1 μF的电容进行滤波。
图4 后级低通滤波放大电路图
图5 后级有源高通滤波电路图
图6 后级低通滤波放大电路
系统软件采用KEIL公司RVMDK3.8软件开发,主要流程如图7所示,软件具体实现过程主要有以下6个阶段:
(1)快速充气阶段:当启动血压测量功能时,软件控制气泵对袖带进行充气,袖带压力不断增大,并慢慢阻断血流。当压力到达软件设定值后,气泵停止充气,随后转入缓慢放气阶段。
(2)血压信号获取阶段:软件启动气阀开始缓慢放气,放气速度由微控制器进行检测控制。在放气过程中,袖带压力缓慢减小,压力传感器对血压及脉搏波信号进行获取。
(3)快速放气阶段:当放气到达一定程度,脉搏波消失,此时恢复血流,袖带对血管没有压力,气阀转入快速放气阶段。到此阶段,血压及脉搏信号已获取完毕[5]。
(4)A/D转换阶段:经放大后的信号仍为模拟信号,不能送微控制器直接进行处理,须经A/D转换器转换成数字信号后送微处理器进行分析处理。
(5)分析处理阶段:此阶段主要完成血压及脉搏信号的分析及处理,并获得最终确切的血压及心率值。
(6)显示阶段:主要包括数值显示和波形显示2个部分。数值显示部分实现的功能是将经软件分析的最终结果由薄膜晶体管(thin flim transistor,TFT)液晶显示器(liquid crystal display,LCD)进行显示,并可以选择是否进行结果的存储。波形显示部分采用了画点函数和画线函数,将采集到的A/D数值描记为动态的压力波形。
其中,波形显示功能的主要程序代码如下:
画线函数x1,y1:起点坐标;x2,y2:终点坐标
void LCD_DrawLine (u16 x1,u16 y1,u16 x2,u16 y2)
{
u16 t;
int xerr =0,yerr =0,delta_x,delta_y,distance;
int incx,incy,uRow,uCol;
delta_x=x2-x1;//计算坐标增量
delta_y=y2-y1;
uRow=x1;
uCol=y1;
if(delta_x>0)incx=1;//设置单步方向
else if(delta_x==0)incx=0;//垂直线
else{incx=-1;delta_x=-delta_x;}
if(delta_y>0)incy=1;
else if(delta_y==0)incy=0;//水平线
else{incy=-1;delta_y=-delta_y;}
if(delta_x>delta_y)distance=delta_x;//选取基本增量坐标轴
else distance=delta_y;
for(t=0;t<=distance+1;t++)//画线输出
{
LCD_DrawPoint(uRow,uCol);//画点
xerr+=delta_x;
yerr+=delta_y;
if(xerr>distance)
{
xerr-=distance;
uRow+=incx;
}
if(yerr>distance)
{
yerr-=distance;
uCol+=incy;
}
}
}
图7 整体软件流程图
血压测量过程中人体脉搏波型如图8所示。从图中可以看出此时袖带压降到70 mmHg,此时出现了最大的脉搏波幅值,这个最大的脉搏波幅值对应的静压力即为平均压。
一次测量过程中得到的人体血压和脉搏值如图9所示。其中收缩压为113 mmHg,舒张压为77 mmHg,心率为73次/min,LCD中显示的波形为袖带内压力变化波形。
图8 袖带振荡波形图
图9 血压和心率测试结果
心血管疾病是人类致残和过早死亡的主要原因之一[6]。高血压是心血管疾病的独立风险因素,采用电子血压计进行家庭血压监测,是预防严重心血管事件的重要举措。电子血压计价格低廉,使用方便,可随时测量,是一种理想的自助式血压监测仪器。随着微电子技术的不断发展,医疗仪器行业也随之迅速成长,本文所研究与设计的血压检测系统就是基于STM32嵌入式系统的一个典型案例。
[1]邓静.柯氏音法与示波法结合的新型血压测量方法研究[D].哈尔滨:哈尔滨工业大学,2010.
[2]杨振江,马武装.微功耗仪用放大器INA122及其应用[J].电子科技,1999(4):47-48.
[3]徐俊,戴亚文,张义桃.基于MSP430的超低功耗无线应变传感器的设计[J].仪表技术及传感器,2008(7):11-13.
[4]Freescale.50 kPa on-chip temperature compensated and calibrated silicon pressure sensors[EB/OL].(2012-10-01)[2014-09-20].http://cache.freescale.com/files/sensors/doc/data_sheet/MPX2053.pdf.
[5]黄杰.基于ARM嵌入式系统综合血压检测系统的研究与设计[D].武汉:湖北工业大学,2010.
[6]李雪情.基于示波法和高斯拟合的腕式电子血压计设计与验证[D].合肥:中国科学技术大学,2011.
(收稿:2014-10-22 修回:2015-01-22)
Design and implementation of electronic sphygmomanometer based on STM32
BAO Jun-cheng,WANG Bang-hui
(Taihe Hospital Affiliated to Hubei Medical College,Shiyan 442000,Hubei Province,China)
ObjectiveTo develop an electronic sphygmomanometer with accurate and reliable measuring results and intuitive measuring processes.MethodsThe meter took STM32F103RBT6 as the main control chip,INA122 and OPA333 as the operational amplifier,and KEIL's RVMDK3.8 as the software design platform.ResultsA manometric waveform-based electronic sphygmomanometer was designed with STM32 microprocessor as the core and oscillography to measure human blood pressure.ConclusionThe sphygmomanometer can measure blood pressure and display the oscillogram of vascular elasticity at real time.[Chinese Medical Equipment Journal,2015,36(6):21-24]
blood pressure measurement;STM32 microprocessor;oscillography;oscillogram
R318.6;TH772.2;TP302
A
1003-8868(2015)06-0021-04
10.7687/J.ISSN1003-8868.2015.06.021
鲍俊成(1981—),男,工程师,主要从事医疗设备质量维修与质量控制方面的研究工作,E-mail:ramboa007@163.com。
442000湖北十堰,十堰市太和医院,湖北医药学院附属医院(鲍俊成,王邦辉)