电子血压计设计.docx
- 文档编号:23487063
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:20
- 大小:573.04KB
电子血压计设计.docx
《电子血压计设计.docx》由会员分享,可在线阅读,更多相关《电子血压计设计.docx(20页珍藏版)》请在冰豆网上搜索。
电子血压计设计
电子血压计设计之宇文皓月创作
学院:
物理学院
组员:
刘鑫 王展峰 栾义龙袁颖
指导老师:
李茂奎
2010年6月
目 录
第一部分、功能设计
1.1电子血压计的设计目的-----------------------------------(3)
1.2电子血压计的主要功能-----------------------------------(3)
第二部分、系统设计
2.1设计摘要-------------------------------------------------(3)
2.2血压丈量原理---------------------------------------------(3)
2.3系统原理框图---------------------------------------------(4)
2.4方案论证-------------------------------------------------(4)
2.4.1单片机选择--------------------------------------------------(5)
2.4.2集成运放芯片的选择------------------------------------------(5)
2.4.3传感器的选择------------------------------------------------(5)
2.4.4一级放大电路设计--------------------------------------------(6)
2.4.5滤波电路的设计----------------------------------------------(7)
2.4.6二级放大电路的设计------------------------------------------(9)
2.4.7显示模块----------------------------------------------------(10)
2.5完整电路原理图-------------------------------------------(11)
2.6单片机软件设计-------------------------------------------(11)
第三部分、系统测试及结论
3.1波形显示--------------------------------------------------(13)
3.2结论------------------------------------------------------(14)
第四部分、小结与感想-------------------------------------(14)
第五部分、附录----------------------------------------------(15)
附录一参考文献
附录二元器件明细表
附录三部分专用程序清单
附录四组员分工情况和工作情况
附录五作品实物照片
第一部分功能设计
1.1电子血压计的设计目的
当今社会人们迫切希望一套成形的人体生理参数丈量系统。
血压是人体的重要生理参数,是人们了解人体生理状况的重要指标。
丈量血压的仪器称为血压计,血压计分为水银血压计、弹簧表式血压计、电子血压计三种。
其中电子血压计是一种医用范围十分广泛的医疗设备,它外观轻巧、携带方便、操纵简单、显示清晰,对提高人们的生活质量发挥了重要的作用。
我们想通过此设计达到一下目的:
1.通过设计加深对AVR单片机的认识、了解及掌握,掌握模数转换部分,中断部分以及数码管显示部分的应用,能够达到熟练使用AVR的程度。
2.加深对硬件电路的了解以及掌握,学会根据系统要求设计电路,学会动手焊接电路。
3.复习C语言的相关知识。
4.锻炼自己发现问题、分析问题、解决问题的能力,培养团队意识,锻炼分工合作以及协调能力。
1.2电子血压计的主要功能
我们的血压计基于示波法原理,选用专用传感器BP300实现准确的压力传感,使用8位单片机ATmege16对信号进行处理,将收缩压和舒张压的值在LED上显示出来。
第二部分系统设计
2.1设计摘要
血压是人体重要的生理参数,准确的丈量血压对人体的健康起着十分重要的作用。
我们的血压计基于示波法原理,选用专用传感器BP300实现准确的压力传感,使用8位单片机ATmege16对信号进行处理,将收缩压和舒张压的值在LED上显示出来。
整套仪器具有使用方便、显示直观的特点。
关键字:
ATmega16 压力传感器BP300 LM324 LED显示 示波法 血压
2.2血压丈量原理
临床上血压丈量技术一般分为直接法和间接法。
前者的优点是丈量值准确,并能连续监测,但它必须将导管置入血管内,是一种有创丈量方法;后者是利用脉管内压力与血液阻断开通时刻所表示的血流变更间的关系,从体表测出相应的压力值。
间接丈量又分为听诊法和示波法。
我们的血压计采取示波法。
示波法的丈量原理,与柯氏法类似,采取充气袖套来阻断上臂动脉血流。
由于心搏的血液动力学作用,在气袖压力上将重叠与心搏同步的压力动摇,即脉搏波。
当袖套压力远高于收缩压时,脉搏波消失。
随着袖套压力下降,脉搏开始出现。
当袖套压力从高于收缩压降到缩压时,脉搏波会突然增大。
到平均压时振幅达到最大值。
然后又随袖套压力下降而衰减,当小于舒张压后,动脉管壁的舒张期已充分扩张,管壁刚性增强,而波幅维持比较小的水平。
示波法血压丈量就是根脉搏波振幅与气袖压力之间的关系来估计血压的。
与脉搏波最大值对应的是平均压,收缩压和舒张压分别对应脉搏波最大振幅的比例来确定。
提取的脉搏波信号如下图,
收缩压和舒张压的获取原理图如下
图1 图2
2.3系统原理框图
我们设计的电子血压计主要由压力传感器BP300,四运放LM324,滤波器,气泵,单片机ATmega16和LED显示器构成的。
这个设计的核心部分是专用压力传感器BP300,信号处理芯片ATmega16.前者将袖带内的压力信号转换成电压信号,后者控制整个电路的工作,利用AVR单片机中的AD转换器对采样信号进行处理,把最终的结果通过LED显示出来。
系统设计框图如下:
图3整体设计
2.4方案论证
2.4.1单片机选择
采取AVRmage16作为泉韵新声的控制中心。
mage16具有丰富的资源:
RAM,ROM空间大、指令周期短、运算速度快、低功耗、低电压、可编程音频处理,易于编写和调试等优点。
2.4.2集成运放芯片的选择
方案一:
LM358。
LM358内部包含有两个独立的、高增益、内部频率抵偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。
它的使用范围包含传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。
引脚图如下:
图4LM358 图5LM324
但是,我们所设计的放大电路要用到三个运放。
考虑到芯片数量越多,出现的问题越多,我们没有选用此芯片。
方案二:
LM324。
LM324是一个含有4个运算放大器的集成芯片,每一个放大器都是差动输入。
工作时,最低电压是3V,最高可达32V,因为它的电压范围比较宽,可以较好的与其他外接电路的电压进行匹配。
引脚图如图5。
我们最后根据我们的需要,选择了此芯片。
2.4.3传感器的选择
方案一:
采取电容式压力传感器。
电容式传感器具有灵敏度高、温度稳定性好等优点。
由于网上购买不到,我们从血压计成品中拆出一个。
但由于没有相关数据手册,在网上也找不到关于此传感器的任何信息。
最终,放弃使用此传感器。
方案二:
采取压力传感器BP300。
它是细微加工硅资料而成的传感器,也是六脚双列直插式封装的传感器。
它是一种比较理想的元件,不需要抵偿,而且具有低滞后性、高可靠性和稳定性。
把感应到的压力信号转换为相应的电压信号,而且是线性对应的。
我们采取此传感器。
BP300的主要参数指标为:
300mmHg的压力感受范围;零漂是+20mv;输出电压范围是100+30mv;供电电压为5VDC;环境温度范围为-20℃~+100℃它的外观及引脚图如下:
图6传感器外观 图7传感器电路原理
2.4.4一级放大电路设计
方案一:
我们需要提取的信号非常微弱,而传感器和电路中的器件又常会发生噪声,为了提高模拟输入信号的信噪比,增大所需要的信号,可以用放大滤波电路放大输入信号并衰减噪声,提取出某些特定频段的信号。
首先,我们自己根据模电书上的知识,设计了一个放大滤波电路:
图8
电路的有关参数如下:
Au=1+R2/R1.
R2≈100R1;
R4=30R3;
C=0.5uf
经过实际实验,我们发现此电路对我们的信号几乎没有作用,我们放弃了此电路。
方案二:
在我们的丈量系统中,被测物理量通过传感器转换为电信号,传感器所获得的信号常为差模小信号,并含有较大共模部分,其数值远远大于差模信号。
因此要求放大电路具有较强的抑制共模信号的能力。
我们采取了仪表放大器中的放大电路,即一个三运放放大电路,电路图如下:
图9 三运放放大电路
电路的有关参数如下:
IR=(uo2–ui2)/R2=(ui1–uo1)/R1=(ui2–ui1)/Rp
uo1=ui1(1+R1/Rp)–ui2R1/Rp
uo2=ui2(1+R2/Rp)–ui1R2/Rp
uo=(uo2–uo1)R5/R3
这种电路的优点在于:
a,高共模抑制比;
b,三运放结构;
c,双端差分输入,单端输出;
经过实验,虽然遇到了许多问题,但最终都得以解决,得到了我们理想的放大倍数。
2.4.5滤波电路的设计
从传感器输出地信号实际是袖内压力信号与脉搏波信号的叠加。
实际上,我们需要对这两种信号进行分离。
而且,还要除去信号中的杂波。
因此,需要滤波。
因为脉搏的的频率较低,大约在0.1—30Hz左右,因此了我们制定了四种方案并分别进行了测试,最终选择了方案D。
方案A:
采取无源一阶低通滤波器。
电路图如下:
图10 一阶低通滤波电路
参数设置:
f0=1\2πRC
电路特点在于电路设计简单,易于实现,但是阻带衰减太慢选择性差.
方案B:
采取压控电压源二阶带通滤波器。
电路图如下:
电路的参数如下:
Auf=1+Rf\Re
C1=C2
R1=R2=R
Rf\R=1
我们首次应用该方案,基于其可以将低于0.1Hz和高于30Hz频率波滤掉,进而得到我们想要的波频范围,但是得出的结果其实不睬想,由于下限频率很低,设置为0.4Hz,上限频率经计算可得到为1Hz,通频带太窄,波形幅度很小几乎等同于直线,经过多次试验而不克不及得到理想的实验结果,我们只能放弃方案B。
方案C:
有低通滤波器和高通滤波器级联组成的带通滤波器,电路图如下:
无限增益低通滤波器
无限增益高通滤波器
电路特点:
将低通滤波器和高通滤波器级联而成的带通滤波器通频带较压控电压源二阶带通滤波电路要为理想,但是焊接较为复杂,且需要两个运放。
方案D:
无限增益多路反馈二阶低通滤波,电路电路如图11
图11无限增益多路反馈二阶低通滤波电路
电路参数设置:
Aup=-Rf\R1
R1=R2=R
Rf=R3
C1=0.47uf,C2=0.15uf
在此二阶电路前,我们串联了一个容值为2uf电容使静压信号得以滤掉,包管ui输入为脉搏波信号。
计算得电路频率范围在10Hz以下,经过试验发现电路允许通过的频率与计算值相符,而且在示波器上显示的波形非常理想,符合所需要的幅值,故而选择本方案作为我们的滤波电路.
2.4.6二级放大电路的设计
由于脉搏信号很弱,经过一次放大后,还达不到我们的要求,因此,经过隔直和滤波后,我们还需要对脉搏信号再次放大。
由于脉搏信号只是一个低频率的交流信号,我们采取了下面一个放大倍数可调的放大电路,电路如下:
图12二级放大电路
2.4.7 显示模块
方案一:
LCD显示。
LCD是做显示器很好的选择,尤其是要显示字母等。
但价格比较贵。
方案二:
LED显示。
LED在整个学习与设计过程中是最罕见的。
因为我们要显示的内容只是数字,所以选择价格比较廉价的LED。
2.5完整电路原理图
2.6软件设计
软件方面,主要利用AVR单片机ATmega16的AD转换功能,实现边收集数据边储存有用数据,最后利用算法实现信号处理。
PA0和PA1口作为模拟信号的输入端,负责接收静压信号和脉搏信号。
在外界袖带气压逐渐下降的过程中,间歇循环对PA0(静压信号转换通道)和PA1(脉搏波信号通道)进行AD转换,把模拟信号转换为数字信号。
在AD转换完成中断中,对脉搏波AD转换的结果进行判断,若此时所收集的值为脉搏信号的极大值,则存到所定义的结果体数组变量中;同时把所对应的静压信号转换结果存储到结构体数组中。
(由于Mega16不克不及同时对两路信号进行AD转换,两路信号不成能完全对应,这里是出现误差的主要原因)我们采取的AD转换触发信号是T/C0的比较匹配中断,由于脉搏信号的频率大约为1HZ,最高频率f1约为3HZ,采样频率为f1的4~10倍,所以我们采取的采样频率f2为20HZ,f2*13=260HZ,小于50KHZ,所以我们采取62.5KHZ(我们芯片的时钟频率为1MHZ,大于且最接近50KHZ的分频系数为16分频,此时的ADC采样时钟频率为62.5KHZ)的ADC采样时钟频率。
数据收集完之后,就要在主函数中进行数据的处理。
首先找出最大值,记录其在结构体中的下标为k,在小于k的下标中找到第一个脉搏波信号大于最大值的0.7倍的值得下标,记为c;在大于k的下标中找到第一个脉搏波信号小于最大值的0.8倍的值的下标,记为d。
然后把c、d对应的静压值取出来转换成气压值,最后通过七段数码管循环显示出收缩压与舒张压。
具体流程图如下:
第三部分、系统测试及结论
3.1波形显示
经过滤波电路后,我们在示波器上得到了很好的波形。
根据示波器上波形的跳动,可以判断,得到的脉搏信号的确是一个包络线。
静压信号也是在加压后线性减小。
具体波形显示,请看链接波形显示.avi(右键连接。
观察时注意每次跳动的信号幅值。
开始时为加压时情况,然后信号幅值很小,说明信号很弱,后来,信号增大,而且在一瞬间有一个最大值,接着再次减弱。
在一分钟左右减为零。
因为传感器很敏感,一分钟后的信号是无用信号,是我们在丈量结束后摘袖带时引起的变更。
)
3.2结论
首先,我们已经得到了很好的信号。
第四部分、小结与感想
经过认一个学期的学习,我们从不懂单片机到认识它,应用它,从不懂电路到能够利用它,我们经历了好奇,迷茫,无奈以及取得进步时的喜悦。
还有许多的感受,都无法用语言来描述。
在这过程中,我们经历了许多的困难。
就像我们所有的方案例证,尤其是放大滤波电路部分,都是经过我们亲身实践的。
所有的电路,我们都是测验考试过的。
每一个方案,在焊接的时候,我们都会满怀希望,可焊接后,得到的结果通常都会让我们失望。
每一次的失败都是对我们思路的一次否定,都会增加我们的迷茫和压力。
让我们感觉寸步难行。
但无论感觉怎样,我们唯一没有做的就是放弃。
我们相信,经过不竭地测验考试,终究会有结果的。
从真正开始着手焊接电路到最终完成电路部分的焊接,大约用了两个月的时间。
虽然,最后的成果总结起来看似很简单,可只有我们自己知道,两个月来,我付出了多少。
以几乎没有自习的时间换取了最后电路的完成在他人眼里可能是一种时间的浪费,我们也曾这样想过,可是,想想两个月来的经历和收获,我们还是充满了自豪感。
通过此课程设计,我们认识到了书本知识的重要性,但也认识到了这些知识的局限性。
对于具体问题,以书本知识为前提,要根据实际情况进行改进。
书上的理论是正确的,但要应用到实际,还要有丰富经验的支持。
我们不但学习到了很多实用的知识,而且加强了同学间的交流,培养了合作精神。
在整个课程设计过程中,我们得到了李茂奎,兰建胜老师以及黄晨学长,王新军的同学的指导和帮忙,使用了单片机实验室,单片机虚拟实验室以及模电实验的设备,在此,我们提出感谢,希望老师、同学以及所有的实验室能给更多的同学提供求知的机会。
第五部分、附录
附录一参考文献
[1]马潮.AVR单片机嵌入式系统原理与应用实践.北京:
北京航空航天大学出版社.
[2]童诗白,华成英.模拟电子技术基础.北京:
高等教育出版社.
[3]李茂奎、张兴成、付运旭等。
单片机原理及接口技术实验讲义.山东:
山东大学出版社
[4]鹏桂力,刘知贵,鲜华,李婧,王彩峰.基于AVR单片机的血压、脉搏装置设计.计算机工程.2007,1000-3428(2007)12-0247-04.
附录二元器件明细表
分类
型号
数量
电阻
分歧阻值
13
电容
分歧容值
8
电线
一捆
集成运放
LM324
3
传感器
BP300T
1
附录三部分专用程序清单
/*****************************************************
Thisprogramwasproducedbythe
CodeWizardAVRV2.03.4Standard
AutomaticProgramGenerator
?
Copyright1998-2008PavelHaiduc,HPInfoTechs.r.l.
Project:
Version:
Date:
2010/6/16
Author:
Company:
Comments:
Chiptype:
ATmega16
Programtype:
Application
Clockfrequency:
1.000000MHz
Memorymodel:
Small
ExternalRAMsize:
0
DataStacksize:
256
*****************************************************/
#include
//全局变量
flashunsignedcharled_7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
flashunsignedcharposition[3]={0x01,0x02,0x04};
unsignedchardis_buff[3]={0,0,0},posit;
bittime_ok;
structpress
{unsignedcharmax[75];//假设持续时间10S,采样频率0.5次/ms,采出50个数(不知具体能采出多少个数)
unsignedcharpressure[75];
}pressa;
inta=0,m=0;//两路转换停止AD转换,停止取样
//气压值送缓冲区函数//显示函数的一部分//有待于进一步修正
voidadc_to_disbuffer(unsignedintadc)
{
unsignedchari;
for(i=0;i<=2;i++)
{dis_buff[i]=adc%10;
adc/=10;
}
}
//timer0比较匹配中断服务
interrupt[TIM0_COMP]voidtimer0_comp_isr(void)
{
a++;
time_ok=1;
m++;
if(m=500)m=0;
}
//adc转换完成中断服务
interrupt[ADC_INT]voidadc_isr(void)
{
//ad转换完成中断
//数据采样
unsignedcharmax_collect[3]={0,0,0};
unsignedcharjingya[3]={0,0,0};
unsignedcharj=0;
if(a%2==0)//AD转换通道选择
ADMUX=0x60;//PDA脉搏波PA0口
else
ADMUX=0x61;//PDB静压波PA1口
if(a%2==0)
{
max_collect[0]=max_collect[1];
max_collect[1]=max_collect[2];
max_collect[2]=ADCH;
}
else
{
jingya[0]=jingya[1];
jingya[1]=jingya[2];
jingya[2]=ADCH;
}
if(max_collect[1]>=max_collect[0]&&max_collect[1]>=max_collect[2])
{pressa.max[j]=max_collect[1];
pressa.pressure[j++]=jingya[1];
}
}
voiddisplay(void)//3位LED数码管动态扫描环境
{
PORTD|=0X07;//PD口位选
PORTB=led_7[dis_buff[posit]];//PC口段选
PORTD&=position[posit];
if(++posit>=3)posit=0;
}
//数据处理
//主函数
voidmain(void)
{
//Declareyourlocalvariableshere
unsignedcharb,c,d;
intbloodpressure[2]={0,0};
unsignedcharmax;
unsignedchark;
DDRA=0X00;
PORTA=0X00;
DDRD=0x07;
PORTD=0x07;
DDRB=0XFF;
PORTB=0x00;
//TC/0初始化
TCCR0=0x0b;//内部时钟,64分频(4MHZ/64=62.5KHZ),CTC模式
TCNT0=0X00;
OCR0=0X20;//OCR0=0X7C(124),(124+1)/62.5KHZ=2MS
TIMSK=0X02;//使能T/C0比较匹配中断
//ADC初始化
ADMUX=0X60;//参考电源AVCC,ADC0单端输入
SFIOR&=0X1F;
SFIOR|=0X60;//选择T/C0比较匹配中断为ADC触发源
ADCSRA=0XAB;//ADC允许,自动触发转换,ADC转换中断允许,ADCclk=125khz
#asm("sei")
if(a==15000)//AD转换完成,开始数据处理//与后面显示函数相对应
{
ADCSRA=0x00;
max=pressa.max[0];
for(k=0;k<=50;k++)
{
if(pressa.max[k]>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 血压计 设计