基于MN101EF32D单片机的电子血压计工作原理

发布者:PeacefulWarrior最新更新时间:2014-10-31 来源: 21ic关键字:血压计  MN101EF32D  单片机 手机看文章 扫描二维码
随时随地手机看文章

引言

血压是极为重要的健康指标,血压测量的准确与否直接关系到人们的健康。国家把血压计列为强制检定计量器具。一般医院使用的水银血压计基于人工柯氏音法,这种方法存在一些固有的缺点:一是放气的快慢对读数有直接影响,国际标准放气速度为每秒3~5mmHg,而不同的医生放气有快有慢,会影响测量的准确度;二是这种方法以人的视觉、听觉和协调程度为主要依据,很难标准化。为此,本设计从血压的检测方法着手,采用日本松下公司高速、低功耗的MN101EF32D单片机,作为血压计测量、控制、数据读写、数据显示的核心,可准确地采用示波法(振荡法)测量血压。

工作原理

示波法(振荡法)是根据袖带在减压过程中,其压力振荡波的振幅变化包络线来判定血压的。目前比较一致的看法是当袖带压力振荡波的振幅最大时,袖带的压力就是动脉的平均压。动脉的收缩压对应于振幅包络线的第一个拐点,舒张压对应于包络线的第二个拐点。

硬件设计

系统基本工作原理如图1所示。压力传感器输出的电压信号首先通过低通滤波器滤波,之后由运放电路将信号转化为适合单片机的输入信号,最后将模拟的采样信号经过MN101EF32D单片机转化为数字量。程序对采集的数据进行数字滤波后分析,计算出人体血压的两个关键指标"舒张压"和"收缩压",之后单片机立即将数据存储到外部存储器中,并将这些重要数据显示在LCD上。

系统基本工作原理

传感器介绍及其外围电路的设计

该血压计使用的传感器为MPS-3100-006G压阻式压力传感器,是由四个等值电阻组成的惠式电桥,其输出电压和输入压力成正比,理想状态下当压力输入时,电阻值就跟着改变,但实际上温度的改变也会影响其阻值输出结果。另外,由于晶体和电路设计制作的误差,加上封装过程等方面的影响,零点偏移不是零。所以必须由外加元件来进行个别温度补偿电路校正。其重要指标如下:

a、传感器测定范围:5.8~15 PSIG

b、操作温度范围:?40~85 ℃

c、驱动电流:1.5~3mA

d、驱动电压:5~15V

e、零点漂移:?25~25mV

f、电阻温度系数为:0.2%/℃

因为血压信号取自手臂,测量的信号容易受袖带的位置、手臂的挪动而带来的干扰。根据这些专业特点,要求系统具备高输入阻抗、高增益、高共模抑制比、低噪声以及低漂移等特征。如图2所示,图中的T1即为MPS-3100-006G压阻式压力传感器。整个电路首先将压力信号转换为电压信号,然后进行放大滤波。图中U1、U2为有源运放LM324,它的输入阻抗很高。压力传感器的信号通过放大后,并通过调节VR1的大小来改变运放的闭环增益,以调节为适应于A/D的电压输入范围。U1运放回路用来测量袖带中的压力,测量的数据用来供MCU分析并控制对袖带充气和放气的速度。另外U2运放回路是将通过C11电容隔直的交流信号放大,此回路测量的是人体的脉搏波。两个回路的采集数据构成了血压计各个指标的重要计算参数。

传感器介绍及其外围电路的设计

 

MN101EF32D的特性

MN101EF32D是松下(Panasonic)公司于2008年初推出的产品,MN101Exx系列8位单片机复合了多功能的外围功能,具有灵活而最优化的硬件结构,简洁而高效的指令体系,充分实现经济性和高速性。

MN101E32D型单片机,内置64KB Flash、4KB RAM,具备6个外部中断、20个内部中断(包括NMI)、9个定时器计数器、3个串行接口、8路A/D转换器、32×4段LCD驱动器、监视定时器、单系统的数据自动传送功能、同步输出功能以及蜂鸣器输出等外围功能。最小指令执行时间可达50ns,封装为64引脚LQFP。本血压计使用MN101EF32D的功能大致如下:

a、10位A/D采样,用于静态压力及脉搏波的测量。

b、LCD显示控制器,直接驱动23*4段的液晶显示器,显示测量的过程及结果。

c、定时器功能,用于定时A/D采样数据并计算自动关机时间。

d、采用数字信号处理的技术对A/D采样的信号进行处理,主要有数字低通滤波和相关的计算。

e、电源开启采用硬件控制的方法,电源关闭采用软件控制的方法,关机时除了稳压模块外,其它芯片处于断电状态,功耗极低。

f、测量时可以选择mmHg和Kpa作为主显示方式,测量精度高,达到静态1mmHg、动态3mmHg的测量精度。由于采用铁电存储器作为存储媒介,数据的保存时间很长。

MN101EF32D与外部串行铁电存储器的硬件连接

在选择外部存储器时,由于考虑到要长期反复擦除、写入所设置的工作参数和测量到的重要信息,并保存大量的历史数据,因此必须使用容量较大的静态存储器,以便写入尽可能多的数据信息并保证掉电后数据不丢失。由于EEPROM本身的设计工艺。寿命有限,而且写入的时间较长,因此不适合用于电池供电的系统。血压计需要保存的数据设计依次为收缩压(2个字节)、舒张压(2个字节)、平均压(2个字节)、脉搏(2个字节)、每次记录的时间(5个字节)等,每次测量需要13字节存储数据。假设每天测量4次,需要13×4=52字节,血压计能够保存7天的数据则需要364字节,故选用"铁电"的24cL04。当打开血压计使用的时候,单片机在其PA0口模拟出IIC总线的SCL,并输入给外部存储器24cL04的SCL引脚,同时PA1口与24cL04的SDA口进行数据交换,将有用的数据显示在LCD上。

电源处理模块及其相关电路设

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

使用RN5RK331A构建系统电路

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

LCD显示模块的设计

如图4、5所示,为了使用户更为方便、简单地使用本系统,采用LCD显示。

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来计算,经测试后再进行修正。

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

结论

基于MN101EF32D单片机的血压计,充分利用了该芯片本身的功能,具备电路简单、功耗低、电源要求单一、精度高以及实用性强等特点,有着广阔的市场前景。

关键字:血压计  MN101EF32D  单片机 引用地址:基于MN101EF32D单片机的电子血压计工作原理

上一篇:基于数字电位器的直流偏置技术[图]
下一篇:将血压计显示器读数读入单片机的接口电路

推荐阅读最新更新时间:2024-03-16 13:44

意法半导体(ST)推出内置32位MCU的电机驱动器
意法半导体的 STSPIN32F0A可编程电机控制器 在一个7mm x 7mm紧凑封装内整合全集成化栅驱动器(用于驱动三个外部MOSFET半桥)、STM32F0微控制器(MCU)以及3.3V DC/DC开关式转换器和12V LDO低压差稳压器,让设计人员可以根据不同的情况灵活地开发电机控制系统。内置32KB闪存的48MHz微控制器能够运行电机控制算法,例如,6步无传感器矢量控制或位置检测控制算法以及用户应用软件。 STSPIN32F0A 拥有6.7V到45V的宽工作电压,在移动机器人、云台或无人机内,电源可使用小至仅一对 LiPo锂电池。新电机控制器还是电动工具、空气净化器和小冰箱等便携电器以及服务器散热风扇和3D打印机的理
[工业控制]
意法半导体(ST)推出内置32位<font color='red'>MCU</font>的电机驱动器
采用HC05/HC088位微控制器的数字电容放电点火系统
引言 两化机动车:低座小摩托、摩托车、机动脚踏两用车,普遍使用电容放电点火(CDI)一种基于电容放电技术的引擎点火系统。点火系统将能量从磁电机转移到存储电容,然后通过升压变压器在火花塞处以高压脉冲形式释放出来,将汽缸中的混合烧油点烧。 目前,考虑到效率更高引擎设计的要求和污染控制中新的管理规定,变定时CDI已成为最经济实用的选择。在变定时CDI解决方案中,以监测引擎速度来提供火花的最佳定时。在空转速度状态,点火定时在压缩冲程中较迟产生,因此当活塞开始动和冲程时有充分时间完成烧烧;在高速状态,点火则在压缩冲程中较早产生。变定时可用MCU实现,如Motorola的廉价MC68HC705P6A。该MCU配置了带独立输入捕捉和输出
[半导体设计/制造]
AT89C52单片机BH1415F调频台的控制设计
BH1415F调频台控制C程序 使用keilC51 通过调试 //使用AT89C52单片机,12MHz晶振,用共阳四位LED数码管 //P0口输出段码,P2口扫描 //#pragmaSRC(d:aa.asm) #include“reg52.h” #include“intrins.h”//_nop_();延时函数用 #defineDisdataP0//段码输出口 #definedisCANP2//扫描口 #definekeyioP1//键盘接口 #defineucharunsignedchar #defineuintunsignedint sbitDA=P3^0;//数据输出 sbitCK=P3^1;//时钟 sbitCE=P3
[单片机]
AT89C52<font color='red'>单片机</font>BH1415F调频台的控制设计
单片机做的电子时钟
团队的第一个小项目就是用单片机做个电子时钟,因为自己的单片机被自己焊接的不够严谨,导致部分地方短路了,所以便换成用仿真软件(protuce)来做电子时钟。经过两天的奋斗,终于把这个电子时钟写好了,虽然很简单,但收获很大,在制作的过程中,遇到了很多问题,但。也收获了很多! 电路图如下: 程序用C代码写的: #include reg52.h #define uint unsigned int #define uchar unsigned char char code dula ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //cha
[单片机]
用<font color='red'>单片机</font>做的电子时钟
单片机量产程序下载的常用方法
今天给大家分享几种下载程序的方法,看看你见过几种。 通过【IDE】下载程序 通过IDE下载程序,就是将单片机(板子)用烧写器直接电脑,用IDE(比如:Keil)直接下载程序: 类似这样: 这个方法你是不是觉得很Low?初学单片机新手都这么干过。 这种方法确实很low,但我确实了解过有公司这么干过。 这种操作,一般在很少的小公司,产品的量非常小,而且非常缺少人手(开发工程师兼顾生产)。 通过【编程工具】下载程序 通过编程工具(大家所说的烧录软件,比如:STM32prog、STC-ICP等)直接下载程序,是很多公司都在用的一种比较常见的方法。 一般单片机厂家都配套有对应的烧录软件,以及下载器,像51、MSP430、STM3
[单片机]
模拟串口的实现单片机IO口
用EBOX向我们的电力线调试模块发数据,但是要有一个控制接口,但是EBOX没有提供,所有只好用MCU来做伺服器。 一般的单片机都只有一个串口,所以必须模拟一个出来。 /* sbit TXD1 = P1^4; //define p14 as the analog transmit port sbit RXD1 = P1^2; //define p12 as the analog recieve port */ #include REG52.H #define uint unsigned int #define uchar unsigned char #include intrin
[单片机]
基于AT89C51单片机的自行车仪表系统设计
一.系统概述 系统使用的模块有AT89C51单片机+小灯+按键+ADC0832+DS1302时钟模块。 系统内使用AT89C51单片机作为主控,检测到的自行车速度会通过ADC0832转换后发送到单片机,并且会将速度数据上传到LCD1602上进行显示,通过按键可以设定阈值,当检测到速度超过设定阈值后就会通过小灯报警,使用DS1302时钟模块给系统提供时钟数据,显示屏上会显示日期时间等参数。 二.仿真概述 1.LCD1602显示屏上显示自行车车速和阈值。 2.按下界面切换后显示日期和时间数据。 3.通过ADC0832和电位器模拟自行车车速。 4.通过按键可以设定自行车的车速阈值。 5.当检测到车速超过阈值就会通过小
[单片机]
基于AT89C51<font color='red'>单片机</font>的自行车仪表系统设计
兆易创新携GD32 MCU包揽2018年“中国IC设计成就奖”多项大奖
原标题:兆易创新携GD32 MCU再度包揽2018年“中国IC设计成就奖”多项大奖 2018年3月30日,由AspenCore旗下《电子工程专辑》、《电子技术设计》和《国际电子商情》联合举办的“2018年度中国IC领袖峰会暨中国IC设计成就奖颁奖典礼”在上海隆重举行。 经过IC产业人士,系统设计工程师以及媒体分析师团队历时6个月的层层选拔,凭借高质量的产品和杰出的市场表现, 兆易创新(GigaDevice)荣获“十大中国 IC 设计公司”奖项,GD32F330/350系列微控制器荣获“年度最佳MCU”奖项,兆易创新产品市场总监金光一先生荣获“市场营销新锐人物”奖项。赢得了业界同行的一致认可,并再度包揽多项殊荣!  
[半导体设计/制造]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved