微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 医疗电子 > 基于MN101EF32D单片机的电子血压计设计

基于MN101EF32D单片机的电子血压计设计

时间:01-13 来源:互联网 点击:
电源处理模块及其相关电路设计

本血压计选用2节7号电池作为电源的输入。为了达到较好的供电质量,在此电路中选择了DC/DC升压芯片RN5RK331A,将2节串联的1.5伏7号电池构成的3V左右的电压升到3.3V,供给系统中的模拟电路电源,也作为数字电路的正电源供给MCU(如图3所示)。考虑到气泵、气阀如果与模拟电路、数字电路直接共用一个电源,会引入比较大的干扰,从而影响压力传感器、运放以及MCU的正常工作,所以设计成气泵、气阀不与其它器件接在一起,直接由电池供电。

另外,血压计的重要采集数据通过运放放大的袖带气压和隔直后的脉搏波,由于它们都是通过微小的信号放大后得到的,所以A/D转换的设计也极为重要。系统采用智能充气测量、自动降压,在降压的过程中进行测量。由于在气阀工作降压的时候,电源受到波动,如果用系统电源直接拿来作为A/D的参考电压基准,必然会给测量带来误差。采用National Semiconductor的LM385作为A/D转换的电压基准连接到芯片的VREF+引脚,确保采集的数据转换准确。

LCD显示模块的设计

如图4、5所示,为了使用户更为方便、简单地使用本系统,采用LCD显示。
松下的MN101EF32D芯片内置了LCD驱动模块,可以直接驱动LCD。先初始化LCD方式控制寄存器1(LCDMD),它是8位寄存器,用来指定LCD时钟、LCD显示的ON/OFF、显示占空比等。






系统软件设计

软件的主要流程如下:

上电后,首先完成系统的初始化工作。单片机开始给气泵供电,让袖带迅速充气至被测者收缩压以上约30mmHg左右。之后单片机通过1路A/D开始采集袖带的气压,并根据袖带内气压下降的速度来控制排气阀排气,使袖带内匀速降压(3"5mmHg /s)。与此同时,另外1路A/D开始采集经过隔直的脉搏波。当脉搏波的振幅最大时,袖带的压力就是动脉的平均压。动脉的收缩压对应于振幅包络线的第一个拐点,舒张压对应于包络线的第二个拐点。

软件主要细分为以下3个重要模块:

一)匀速降压控制模块

尽管气阀有自动缓慢放气的特点,但为了使袖带迅速充气至被测者收缩压以上30mmHg左右后匀速降压(3"5mmHg /s),而不能用普通的处理方法,因为整个测量过程中容易受到外界震动的影响,如人为的震动袖带??度也会影响到袖带内气压微弱的变化。所以袖带内的压力降低的速度与气阀开关的频率为非线形关系。

本设计采用了PID算法来控制气阀的开关时间来确保袖带以3"5mmHg /s的速度匀速降压。受到单片机的处理速度和RAM资源的限制,这里不采用浮点数运算,而将所有参数全部用整数,最后再除以2N(相当于移位),作类似定点数运算,可大大提高运算速度。最终赋值给定时器,来控制气阀的开启时间,从而保证降压的速度恒定。

 

   

 

在PID算法中三个基本的参数Kp、Ki、Kd的设定与调整是比较难的部分,根据这些参数的作用原理,总结调整方法大致如下:

1、压力很快就降到目标值,但压力降的太多:

a)比例系数太大;

b)微分系数过小;

2、压力下降达不到目标值:

a)比例系数过小;

b)积分系数过小;

3、基本上能够控制在目标上,但上下偏差较大,且经常波动

a)微分系数过小;

b)积分系数过大;

二)信号处理模块

本血压计测量信号为2路,MPS-3100-006G压力传感器的信号首先进行低通滤波处理,排除因外界干扰造成的信号读数的误差,之后放大送AD1,作为静态血压信号;隔直后经再次放大送AD2,作为脉搏波信号。由于MN101EF32D的A/D为10位,因此最高精度可达1/1024。为了最大限度地利用A/D转换的采样速度,用中断来实现A/D转换后的数据处理。当A/D转换完毕,在中断程序中,用防脉冲干扰移动平均值法来实现简单有效的数字滤波,使测量更加准确。具体做法为在一次定时中断内连续进行5次A/D转换,去掉最大值和最小值,剩余3个数据求算术平均值,该算术平均值作为此次的A/D转换结果。

三)计算血压模块

袖带气压和脉搏波经信号处理模块的处理后,得出如图6所示的数据。图中的下方为被测者的脉搏波,上方为血压计升压和压降过程中的袖带压力。在此基础上分析信号,供收缩压、舒张压、平均压和心率的计算。单片机在测量过程中已经存储各个脉搏波的峰值,以及每个脉搏波的间隔时间。




收缩压判据的确定采用最大振幅法,即在放气过程中脉搏波幅度包络线的上升段,当某一个脉搏波的幅度Ui与最大幅度Um(平均压)之比刚刚大于Ks时,就认为此时对应的气袖压力为收缩压。

Ps=P/Ui=Ks*Um

舒张压判据的确定也是用最大振幅法来判定的,不过是在脉搏波幅度包络线的下降段,当某一个脉搏波的幅度Ui与最大幅度Um(平均压)之比刚刚小于Kd时,就认为此时对应的气袖压力为舒张压。

Pd=P/Ui=Kd*Um

先用经验参数Ks = 0.54和Kd = 0.72来计算,经测试后再进行修正。

心率即为脉搏波的周期,具体也为算术平均值做法。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top