毕业设计(血压计)_第1页
毕业设计(血压计)_第2页
毕业设计(血压计)_第3页
毕业设计(血压计)_第4页
毕业设计(血压计)_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实用标准文案实用标准文案精彩文档精彩文档本人声明我声明,本论文及其研究工作是由本人在导师指导下独立完成的,在完成论文时所利用的一切资料均已在参考文献中列出。作者:刘桂良签字:时间:2008年6月基于S12单片机的血压计的实现学生:刘桂良指导老师:张军香董韶鹏摘要人体血压是人重要的生命参数之一,目前人体血压的测量多采用间接测量,测量方法主要有示波法、柯氏音法等。其中示波法因其测量方便、抗干扰能力强等优点被当前主流的自动电子血压计所采用。本文主要研究使用S12单片机实现人体血压的测量,测量方法为示波法。本论文研究的主要内容有:对人体血压的测量系统进行详细的分析,对血压测量实验系统进行改进,统一实验箱与单片机的接口;编写单片机程序,完成对人体血压测量的控制与血压值的计算;实现单片机与上位机的通信,上位机软件对血压数据进行图形显示,编写软件计算血压值。同时,本论文开发的实验系统为压力测量与算法的学生实验提供了一个良好的实验平台。在血压测量算法的研究和实现测量系统的基础上,设计实验,编写实验指导书,学生可以根据实验指导书,完成对人体血压的测量,学习并掌握 Freescale单片机的原理及应用方法,培养学生的学习和动手的能力。关键词:单片机,示波法,LabVIEW实用标准文案实用标准文案精彩文档精彩文档BloodPressureMonitorBasedonS12MCUAuthor:LiuGuiliangTutor:ZhangJunxiang,DongShaopengAbstractHumanbloodpressureisoneofperson'smostimportantlifeparameters,itsmeasuringtechniquevariesandmainlyindirectly,amongwhichOscillometricandKeshi-Lawincluded.Thisarticlemainlydealswiththeoscillometricmethodwhichisgenerallyusedintheautomaticbloodpressuremonitordesignsforitsconvenienceandstronganti-disturbancecapacity.Thepapercarriesonthedetailedanalysistothehumanbodybloodpressure'smeasurementsystem,theimprovementtotheoriginalexperimentsystemandtheunifiedmonolithicintegratedcircuitseriesexperiment'sconnection.Itresearchesmoreonthecontrolofthemeasurementsystemandthecalculationofbloodpressure.Alsointhispaper,asoftwareisusedtofinishthecommunicationbetweenthemeasurementsystemandthecomputeronwhichthemeasuredataisdisplayedgraphicallyandthebloodpressureiscalculatedtoo.ThedevelopmentoftheS12MCUbloodpressuremeasurementsystemprovidesaniceexperimentsplatformforstudents.Usingtheexperimentguidebook,studentscanaccomplishthehumanbloodpressuremeasurement,mastertheapplicationmethodoftheFreescalemicrocontrollers.Theexperimentcanfostertheirabilitytostudyandwork.Keywords:Microcontrollers,Oscillometric,LabVIEW目录1绪论 1 论文选题意义 1 TOC\o"1-5"\h\z国内外研究现状分析 2……血压及血压测量方法 2..…示波法血压测量基本原理 3.…最新成果和发展动态 5……论文构成及研究方案 5……研究目标 .5.......研究内容 7.......研究方法 7.......2系统总体设计 9.......血压测量系统 .9.......系统组成 .9.......TOC\o"1-5"\h\z工作原理 10血压测量算法研究 10提取脉搏波包络曲线 10血压值计算 13本章小结 143硬件设计 1.5.....硬件设计概述 15血压测量实验箱 15单片机系统 17血压测量电路模块分析 17气阀、气泵控制电路 17气袖压力测量电路 18脉搏波提取电路 20电源及整流电路 21实验箱接口标准化 22本章小结 234软件设计 2.5.....单片机软件设计 25软件流程 25模块设计 28上位机软件设计 51串口通信 51数据处理 53本章小结 625实验设计 6.3.....实验目的 63实验内容 63实验要求 64实验说明 64本章小结 64结论 65......致谢 66......参考文献 6.7......附录 .6.8......附录A 单片机血压测量C语言程序 68附录B压力测量与算法实验指导书 81实用标准文案实用标准文案精彩文档精彩文档实用标准文案实用标准文案精彩文档精彩文档1绪论论文选题意义Motorola单片机是国际上应用非常广泛的单片机口】。它具有功能全、品种多、性价比高、功耗低、应用方便、速度高等优点,使其在家电、通信、智能化测控系统、仪器仪表、汽车电子等领域获得广泛应用。 Freescale(飞思卡尔半导体公司)一直是Motorola公司的半导体分支,2004年7月从Motorola分离出来成为独立企业,Motorola单片机半导体业务就由飞思卡尔接管负责,改为Freescale单片机。为了使实验者熟练掌握 Freescale单片机的原理、使用方法,开设了一系列的Freescale单片机实验,并在此基础上开发了针对不同对象的实验箱,以配合实验者进行测量、控制及算法实现等实验。实验中使用Freescale单片机S12系列中的MC9s12DG128实验系统,MC9s12DG128是Freescale公司推出的S12系列单片机中的一款增强型16位微控制器。具集成度高,片内资源丰富,接口模块包括SPI、SCI、I2C、A/D、PWM等,能很好地满足学生实验的需要。Freescale单片机系列实验包括四种:温度测量与控制、电机转速测量与控制、血压测量与算法、电子秤实验。基于S12单片机的血压计的实现是为其中的压力测量与算法实验开发的一个实验平台,通过该实验可掌握气体压力传感器的原理及使用方法,学习人体血压测量方法。国内外研究现状分析血压及血压测量方法血压是指血液在血管内流动时,对血管壁产生的单位面积侧压 卷]。通常说的血压是指动脉血压,用血压计在臂动脉上测得的数值来表示,以mmHg或kPa为单位,包括收缩压和舒张压。当心脏收缩时,动脉内的压力最高,此时压力称为收缩压;心脏舒张时,血液从动脉弹性回缩产生的压力称为舒张压。工程上把相对于真空所测得的压力称为绝对压力,把相对于大气压所测得的压力称为标准压力。人体血压值是相对于大气压而言的,为血压的标准压力值。对健康成人,在心血管系统中不同部位的正常血压值不同,以臂动脉为例,收缩压一般在95〜140mmHg(12.67〜18.67kPa)范围内,平均值为110〜120mmHg(14.67〜16kPa);正常舒张压为60〜90mmHg(8〜12kPa),平均值为80mmHg(10.67kPa)。动脉血压一般以分数形式表示,如120/80mmHg,分子代表收缩压,分母代表舒张压。人体血压测量分为直接(有创)测量和间接(无创)测量两大类 I31。直接测量一般采用导管法来测定血管或心脏内的压力, 压力传感器可放置在导管的顶端直接将压力转换成电量,也可通过充满液体的导管将压力传递到体外的压力传感器转换成电量。问接测量则是在体外用各种转换方法及信号处理技术测量血压,其测量方法很多,比较典型的有柯氏音法和示波法。柯氏音法的操作方法为:给袖带充气,使动脉血流完全堵断,此时用听诊器听血管的波动声是没有的;然后慢慢放气至听到脉搏音,这时的压力为高压即收缩压;继续放气通过听诊器能听到强而有力的脉搏音,且慢慢变轻,直至听到很平稳较正常脉搏音,此时血管完全未受挤压,对应的压力为低压,即舒张压。柯氏通过对袖带加压和听脉搏音来测量血压实现了人体血压的间接测量,对人类医学的贡献很大,人们为了纪念柯氏,称此法为柯氏音法。柯氏音法存在一些固有的缺点:一是确定舒张压比较困难;二是此法凭人的视觉和听觉,带有主观因素,除非专业医生,一般人很难测准血压。曾经也出现了多种柯氏音法电子血压计,试图实现血压的自动检测,但很快发现这类血压计未能克服柯氏音法的固有缺点,误差大,重复性差。示波法的测量过程与柯氏音法类似,仍采用气袖来阻断上臂动脉血流,由于心搏血液动力学作用,在气袖压力上将重叠与心搏同步的压力波动,即脉搏波。当气袖压力远高于收缩压时,脉搏波消失。随着袖套压力下降,脉搏开始出现。当袖套压力从高于收缩压降到收缩压以下时,脉搏波会突然增大,当气袖压力降至平均压时达到最大值。然后又随袖套压力下降而衰减。示波法血压测量就是根据脉搏波振幅与气袖压力之间的关系来计算血压的。示波法具有较好的抗干扰能力,能比较可靠地判断血压、实现血压的自动检测,因而成为测量血压的主流方法。本论文中的血压计也采用这种方法。示波法血压测量基本原理示波法是临床上各类监护仪、电子血压计广泛采用的血压测量技术。将血压计气袖加压至阻断臂动脉血流,然后缓慢放气,人们发现气袖中的压力除随放气而下降之外还存在一个振荡,并称其为脉搏波,其波形如图1.1。图1.1脉搏波图1.1中波形幅度最大处对应的气袖压力称动脉血管平均压, 收缩压和舒张压可由各种算法计算得到。脉搏波信号相对气袖压力下降信号为高频信号,在气袖缓慢放气的过程中对气袖压力信号进行滤波即可得到脉搏波信号。示波法测量的关键技术是:1)放气过程中对气袖压力和脉搏波信号的准确采集;2)收缩压和舒张压的计算。信号采集中涉及到滤波和抗干扰技术,而血压计算算法的优劣与否,则是决定血压测量准确与否的关键。目前收缩压和舒张压的判别准则很多,但无公认的判别准则,多是基于统计学规律,而不是基于个体特征。文献检索到的收缩压和舒张压经验判别准则,大致分为两类,一类是归一化准则(幅值系数法),另一类是突变点准则(拐点法)。归一化准则就是将脉搏波信号的幅值与信号的最大幅值相比进行归一化处理, 通过确定的收缩压和舒张压的归一化值来识别收缩压和舒张压。突变点准则认为,收缩压和舒张压对应着脉搏波幅度发生突变的点,即识别脉搏波包络的拐点为收缩压或舒张压。最新成果和发展动态随着人们对人体生理信号特征认识的深入,以及大量新技术应用于生物医学工程领域,近年来血压测量技术又有了新的发展。人们对脉搏波特征的研究进一步深入,探索无创血压测量的新思路。随着心脏的问歇性收缩和舒张,血流压力、血流速度和血流量的脉动以及血管壁的变形和振动在血管系统中的传播,统称为脉搏波或脉搏波在血管中的传播。本质角度讲柯氏音听诊法、示波法等血压测量方法都可称之为基于脉搏波特征的测量方法,但是都存在一定的缺陷。脉搏波是一种低频成分为主的生理信号,可通过对数字微分信号的特殊处理来实现。焦学军、房兴业提出了利用脉搏波特征参数连续测量血压的方法, 具有较高的测量精度[4];空军第四研究所的俞梦孙院士正在进行有关脉搏波传导时间( PWTT)法和血压关系的研究,显示出很好的前景[5]o随着人们对人体生理信号特征认识的进一步加深,各种技术如数字信号处理、模式识别应用于生物医学工程领域,无创血压测量装置必将向着更加方便可行、准确可靠的方向发展。论文构成及研究方案研究目标本课题的研究目标是对血压计测量系统进行硬件改造, 用标准接口实现血压计与单片机的互连;采用S12单片机对血压计测量系统中的气泵和气阀进行控制, 并测出需要的压力信息;单片机对压力测量数据进行处理并显示人体的血压值,同时实现单片机与计算机的互连,图形化显示测量数据并计算人体动脉血压值。研究内容本课题的主要研究内容如下:1、对原有血压测量电路进行测量,绘出电路图,分析电路结构,用标准接口实现血压计与单片机互连,完成血压计系统的硬件电路改造。2、设计单片机测量与控制程序,包括气泵、电磁阀开关的控制,压力数据的测量,血压的计算,血压值的显示,与上位机的通信等。3、编写上位数据处理软件,实现单片机与上位机软件的联调,完成测量数据的图形显示。4、设计实验并完成实验指导书的编写。研究方法1、血压测量系统硬件改造血压测量系统的硬件主要包括气袖压力测量模块、脉搏波信号提取模块、气泵控制模块、电磁阀控制模块。首先对这些模块进行详尽分析,清楚各自模块的工作原理,对电路进行优化或修正,然后统一实验箱与单片机的接口电路。2、单片机软件设计对应于硬件的各个部分,单片机软件采用模块化设计。分别设计各模块子程序,如A/D转换子程序、气泵控制子程序、电磁阀控制子程序、压力采集子程序、压力数据显示子程序、微机通信子程序等等。在主函数中初始化硬件并调用各子程序,完成各部分的协调工作,最终测量并计算出人体血压值,对收缩压和舒张压进行显示。3、上位机软件实现单片机与上位机通信,上位机通过串口软件接收单片机发送的压力测量数据,并保存为文本格式。编写上位机数据处理软件,对测量数据进行图形显示,进行算法研究,通过上位机软件计算血压值,与单片机所计算出的血压值进行比较分析。4、实验设计作为实验室建设的重要部分,为学生实验编写实验指导书,给出常用程序的函数接口参数,供学生参考使用。可提供血压测量算法,而血压计算程序由学生自已完成。5、论文构成根据毕业设计所进行的研究与完成的工作,本论文的主要构成包括系统总体设计、硬件设计、软件设计以及实验设计四个部分。在接下来的几章中,本文将会陆续介绍本次本科毕业设计的设计过程以及研究成果。第2章将从课题的总体设计入手,对系统总体设计进行分析,对血压测量算法进行研究。第3章将介绍血压测量系统的硬件构成,对血压测量试验箱每个硬件模块进行分析,并介绍单片机系统的组成。第4章将介绍血压测量系统的软件设计,包括单片机控制软件及上位机数据处理软件的设计。第5章是则是根据学生实验的特点,对学生实验进行了方案设计。2系统总体设计本章主要介绍血压测量系统的硬件组成和工作原理,研究血压测量算法血压测量系统系统组成血压测量系统主要包括气袖、气阀驱动与控制模块、气泵驱动与控制模块、气袖压力测量模块(压力传感器直接输出)、脉搏波信号提取模块(压力传感器输出信号滤波放大)与A/D转换模块、血压值显示模块、单片机与上位机通信模块以及单片机控制模块MC9s12DG128单片机系统,如图2.1所示图2.1血压测量系统组成工作原理血压测量系统进行血压测量时,将气袖缚于上臂或腕部,气袖充气至压力比受试者收缩压高约20mmHg,阻断动脉内血流,在气袖放气过程中,动脉受到的压力逐渐下降,当压力低于收缩压时,开始有血液流动,引起动脉壁的振动,当气袖内压力足够小时,就会产生脉搏波。当气袖内压力低于舒张压时血液可以顺利流过,脉搏波消失。脉搏波振动通过气袖中空气的压力变化传导到传感器,将压力信号转换为电信号。血压测量过程为:单片机发送控制信号,关闭电磁阀,控制气泵加压至阻断动脉血液流动,然后关闭气泵控制气袖自然放气。气袖压力信号(压力传感器输出信号)和脉搏波信号(滤波电路输出信号)经A/D转换送入单片机,对数据进行处理,计算血压值并显示。上位机通过申行总线接收单片机采集的数据,实现图形化显示,计算血压值。血压测量算法研究本毕业设计中的血压测量算法采用典型的基于示波法的血压测量原理。目前示波法测量血压主要对提取出来的脉搏波进行数据处理,因此示波法测量血压首先提取脉搏波,然后对脉搏波包络曲线进行数据分析,求得血压值。提取脉搏波包络曲线以血压值为120/80mmHg为例:1、血压值为120/80mmHg的血压波信号和血压计袖带压力下降曲线,如图2.2

图2.2血压波和血压计袖带压力曲线2、袖带中的压力加至阻断肱动脉血流,然后缓慢排气,袖带对肱动脉的压力随之缓慢下降,当袖带压力下降到动脉最大血压(收缩压)以下时,动脉血管中的血液恢复流动,并产生脉搏,脉搏所产生的压力脉冲(脉搏波)和袖带压力相叠加,输入气体压力传感器,转变为相应的电信号,如图2.3。图2.3气体压力传感器输入信号

3、将传感器压力曲线中的脉搏波(形状如图1.1)提取出来并与同时刻的袖带压力相对应,如图2.4180 160 140 120 100XO60 40'■!-111h.J;niniHy图2.4袖带压力对应的脉搏波4、用袖带压力对应的脉搏波脉冲峰值形成脉搏波的包络线, 如图2.5。根据此包络线,运用相应的血压计算算法,即可得到人体的血压值(具体见下节)波波HUllIIg图2.5脉冲峰值包络线综上所述,压力传感器的输出为两类压力信号的叠加,一为袖带压力信号,另一为脉搏波压力信号。脉搏波信号频率大约为1Hz,袖带压力信号频率大约为0.04Hz,可视为直流。为得到脉搏波信号,需要对压力传感器信号进行滤波(隔直) 。可以采用软件直接对压力传感器信号进行数字高通滤波,也可设计硬件电路实现模拟滤波,本实验系统采用的为后者。血压值计算脉搏波峰值包络曲线提取出来之后,只要应用各种计算方法,就可以得到血压值,目前的主流方法包括两种,一是幅值系数法,另一为拐点法。1、幅值系数法收缩压判据的确定:在放气过程中脉搏波幅度包络线的上升段,当某一个脉搏波的幅度与最大幅度之比大于指定值(Ks)时,就认为此时对应的气袖压力为收缩压。舒张压判据的确定:在脉搏波幅度包络线的下降段,当某一个脉搏波的幅度与最大幅度之比小于指定值(Kd)时,就认为此时对应的气袖压力为舒张压。根据上海医用仪表厂多年的研究成果,取Ks0.58,Kd0.772、拐点法根据脉搏波的产生原理,当气袖内压力下降到等于收缩压时,血液由阻断至开始流动。当气袖内压力下降到低于舒张压时,血液将完全流通。因此在气袖压力等于收缩压或舒张压附近,因血液流动速度的变化将产生强烈的涡流,气袖内压力振荡幅度将有明显突变。采用这一原理计算血压就称为拐点法。拐点法计算血压值,对于脉搏波的测量精度要求较高,可以采用两种方法。一种方法是寻找脉搏波包络幅值变化最大的两个点,对应的气袖压力可视为收缩压或舒张压;另一种是采用数学的方法,用多项式拟和脉搏波信号曲线,计算曲线的拐点,所对应的压力值即为收缩压或舒张压。本章小结本章对血压测量系统的总体结构组成及其工作原理进行了说明,对人体血压测量算法进行了研究。3硬件设计本章介绍血压测量系统的硬件组成,并对血压测量的硬件电路进行分析。硬件设计概述血压测量系统硬件包括实验箱和单片机系统两部分。实验箱接收控制信号,实现气袖的充放气,并敏感压力的变化,将压力测量数据传送至单片机系统。单片机系统发出气泵气阀的控制信号,采集压力数据,是血压测量系统的核心,完成对血压测量的控制及血压值的计算等工作。血压测量实验箱实验箱前面板有电源接口、血压测量气袖以及单片机与实验箱的接口等。实验箱的后面板上安装了所有血压测量元件。后面板又分为上载板和下载板,下载板上分布着主要工作元件如气泵、气阀、变压器、气体压力传感器,实验箱各部分分布如图3.1所示博感;哥力海施输出U-Jjr匚口J1.F载航气是匚口

w受IS*re,JQIllir~T~lr~T~lItI1r~rrJ3J4JS| 1植感馨|鲤阳II植感馨上软板JIJ?上软板mrn图3.1血压测量实验箱部件分布图上载板是血压测量实验箱的电路核心,由左至右分布有气泵气阀控制电路、电源整流电路、脉搏波提取电路等。其电路原理图如图3.2所示。力十图3.2上载板电路原理图单片机系统本实验中采用天津工业大学开发的MC9s12DG128实验系统,对血压测量进行控制并实现血压值的计算与显示、与上位机通信等。MC9S12DG128具有16位中央处理器(HCS12CPU)、128KBFlashEEPROM、8KBRAM、2KBEEPROM,以及定时器通道、键盘中断和A/D通道等接口。MC9S12DG128实验系统可以直接与CodeWarrior相连,具有下载程序、在线单步运行、断点调试、连续运行、修改寄存器和存储单元等特点,可以很方便的进行血压测量的软件设计。血压测量电路模块分析气阀、气泵控制电路气阀、气泵控制电路原理相同,电路结构相似,均通过光电耦合方式对各自的工作回路进行开关控制,以气阀控制电路为例,如图3.4,J1端接单片机气阀控制输入,J3接气阀驱动。imRWimRW当单片机输入数字信号0,3.4当单片机输入数字信号0,J1的上管脚接单片机5V电源,下管脚接气阀控制信号为低电平0V,此时光电耦合管控制气阀工作回路接通,气阀关闭;当单片机输入数字信号1,为高电平5V,此时光电耦合管控制气阀工作回路断开,气阀打开。气泵、气阀的控制回路输入电压最大为5V,最小为0V,回路电阻R1为200Q,最大工作电流为25mA,对单片机实验系统的电流要求很小,电路的设计是合理的。气袖压力测量电路气袖压力直接由气体压力传感器测量得到,实验系统采用的气体压力传感器型号为MPX5050DP,OUT1为传感器信号输出,同时作为脉搏波提取电路的输入,如图3.5MPX5050DP元件参数为:1、工作电压:5V(4.75~5.25V);2、工作电流:7.0mA,最大10mA;3、工作温度:0~85C;4、测量范围:0-50kPa(1kPa=7.5Hg,0~375mmHg);5、输出电压范围:0.2~4.7V;6、最小偏移量(工作电压5V):0.2V(0.088~0.313V);■PX5O50iDP图3.5压力传感器电路在定电压5V的驱动下,此压力传感器的灵敏度为12mV/mmHg,其压力变化与电压输出转移函数为:Vout=Vs*(0.018*P+0.04)±ERROR (3.1)Vout代表压力传感器的电压输出,单位为V;Vs为给定的定电压,P代表气体压力,单位为kPa;ERROR为误差值,单位为V。压力传感器的线性测量范围为0〜50kPa,相当于0~375mmHg的压力,而实验系统中气袖压力范围为0~180mmHg;输出电压为0.2~4.7V,单片机A/D转换最大电压为5V,传感器输出不需要接放大电路。因此MPX5050DP适合用作血压测量系统的压力传感器。

脉搏波提取电路根据脉搏波信号提取的原理,只要对气袖压力进行信号调理即可得到需要的脉搏波信号,由于脉搏的频率约为1Hz,气袖内压力下降频率约为0.04Hz,因此要获得脉搏波信号,调理电路需要对原始信号进行滤波,高通截止频率约为 1Hzo每个人脉搏波振荡幅度略有不同,一般而言为 1~3mmHg压力变化,转换为电信号为12〜36mV,因此在进行A/D转换之前必须对其进行放大。脉搏波提取电路如图3.6所示,采用Multisim软件交流分析可知,其截止频率约为1Hz,放大倍数约为21(R3/R4+1),能满足脉搏波信号提取的要求,如图3.7■ GNDJ6JH]« OUT(_C3INVCCHDR1X4I山与IACAji.i]vslsFgqur力”(Ilr)FfMUrribtJlr.i图3.7脉搏波提取电路交流分析3.2.4电源及整流电路实验箱输入工频电压实验箱输入工频电压220V经变压器输出两路6V电压,经整流后作为气阀、气泵的驱动电源,如图3.8V14J5囱HDR1X3图3.8实验电源及整流电路气泵气阀的元件型号及参数分别为:1、气泵:KPM27A (生产公司:KOGEELEC.CO)工作电压:DC6V工作电流:小于430mA2、气阀:KOGESD0503工作电压:DC3.5V~6V电源整流电路输出约为5.4V,气泵气阀均能正常工作。实验箱接口标准化由于实验室建设需要,必须标准化实验箱与单片机的接口,不再使用原实验箱面板上复杂的接线电路,在实验箱面板上加工并安装标准9针接口,内部电路引线连接方式如图3.9,管脚定义见表3.1。

表3.1标准接口定义DB9引脚号信号特性信号类型隹T号方向(对实验箱而百)1气象控制数字量输入2气阀控制数字量输入3气袖压力输出模拟量输出4脉搏波压力输出模拟量输出5GND接地-95V电源-本章小结了详细的分析,完成了血压测量实验箱与S12单片机实验系统接口的标准化本章介绍了人体血压测量系统的硬件组成,对硬件电路的每个模块的电路结构进行本章介绍了人体血压测量系统的硬件组成,对硬件电路的每个模块的电路结构进行4软件设计人体血压测量的软件设计包括单片机软件设计和上位机软件设计两个部分, 单片机软件完成血压测量过程的控制和血压值的计算,并将测量得到的压力数据发送至上位机。上位机软件将接收的压力数据存储下来,进行数据处理和血压测量算法的实现,计算血压值。单片机软件设计单片机软件采用模块化设计方法,将血压测量系统中使用到的每个单片机硬件模块独立出来,分别编写子函数,在控制主程序中完成各个模块的协调工作,完成血压测量进程的控制和人体血压值的计算。采用模块化设计方法,增强了软件的可读性,代码的修改和维护相对简单,有利于实验的设计,只要给出每个函数模块的接口参数,学生可以很方便地调用已经模块化的代码,而集中精力放在血压值计算上面。软件流程单片机血压测量的基本过程为:初始化系统硬件(包括AD初始化,LED显示初始化,定时器中断初始化等),关电磁阀(电磁阀为常开)、开气泵,气袖充气;当压力达到一定值时,关气泵;缓慢放气(电磁阀仍关闭,自由漏气) ,进行数据测量与保存;当气压降到一定值,开电磁阀放气;完成数据处理,计算血压值,进行显示。单片机软件要完成对上述血压测量的控制和血压值的计算, 在压力数据测量时还要将测量数据发送至上位机软件采用模块化设计,在主程序中对每个功能模块进行调用,主函数流程图如图4.1实用标准文案实用标准文案图4.1图4.1软件流程精彩文档Main()实用标准文案实用标准文案精彩文档精彩文档模块设计单片机软件模块主要包括:A/D转换模块、定时器模块、数码管显示模块、压力数据测量模块、血压值计算模块及通信模块等。1、A/D转换模块A/D转换模块硬件概述S12单片机内置了2个10位/8位的A/D模块:ATD0和ATD1,通称为模/数转换器(ATD)0S12的ATD是逐次逼近型A/D转换器,它内置多路器,转换精度为2LSB,无需外部采样保持电路。ATD模块具有如下特性:8位/10位精度可选择;8位数字量转换时间为6us,10位数字量转换时间为7us;具有采样缓冲器,放大器;可编程采样时间;数据可选择左/右对齐方式和无符号/有符号数据方式;转换结束标志和转换结束中断;外部触发控制;模拟输入的8个通道为复用方式,采用多通道扫描方式;模拟/数字输入引脚复用;可选择单次转换模式或连续转换模式

ATD模块工作原理S12ATD工作时,CPU向该模块发出启动命令,然后进行采样、 A/D转换,最后将结果保存到相应的寄存器。ATD模块组成原理框图如图4.2所示。ATD模块由模拟量前端的8选1多路转换开关,采样缓冲器及放大器,逐次逼近式模拟量转换、控制部分及转换结果存储等部分组成。每个A/D转换都可通过9个相应的寄存器对其进行设置。总戏时钟时钟分频ATD时钟总戏时钟时钟分频ATD时钟转换完成中断4 模块和时序控制需存器转换完成中断4 模块和时序控制需存器VRH因VRL国VDDAVSSAAN7/PAD7EAN6/PAD6EAN5/PAD5EAN4/PAD4EAN3/PAD3KAN2/PAD2EAN1/PAD1»VRH因VRL国VDDAVSSAAN7/PAD7EAN6/PAD6EAN5/PAD5EAN4/PAD4EAN3/PAD3KAN2/PAD2EAN1/PAD1»ANO/PADO因二二二二和模/数法换器采样/保持比较器图4.2ATD模块的组成原理ATD寄存器说明ATD控制寄存器2——ATDCTL2ATDCTL2主要控制ATD的启动、状态标志及上电模式。该寄存器用于启动 ATD、触发及控制ATD中断。对该寄存器进行写操作时,将中断当前的转换过程。表4.1ATDCTL2读写Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0Read/WriteADPUAFFCAWAIETRIGLEETRIGPETRIGEASCIEASCIF复位默认值:00000000BASCIF:ATD转换序列转换结束标志。只读,ATD转换完成时发生中断,该位置1。ASCIE:ATD转换序列转换结束中断使能控制位。用以控制ATD转换结束后是否发生中断,0表示禁止ATD中断。ETRIGE:外部触发使能控制位。该功能借助于引脚AN7,当AN7接收到外部触发时,启动A/D转换,否则不进行转换,0表示忽略外部触发,即A/D转换不受外部触发控制。ETRIGP、ETRIGLE:AN7外部触发方式选择位,本实验中未使用到外部触发,不作说明。AWAI:等待状态下ATD运行使能控制位。0表示当MCU进行等待状态,ATD继续运行。AFFC:ATD标志快速清除使能控制位。A/D转换结束标志的清除方式有两种:自动消除和软件清除。0表示ATD标志通过软件方式解除,即在读取结果寄存器之前读取寄存器ATDSTAT1的值,1表示当A/D转换结束后自动清除寄存器ATDSTAT1的CCFx位。ADPU:ATD使能控制位。相当于一个开关,用来启动/禁止A/D转换。1为启动A/D转换。ATD控制寄存器3——ATDCTL3ATDCTL3用于控制结果寄存器的映射,设置转换序列长度,还可暂时冻结 ATD模块,尤其是确定ATD在BDM状态下的行为。写该寄存器将中断当前的转换序列。表4.2ATDCTL3读写Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0Read0S8CS4CS2CS1CFIFOFRZ1FRZ0Write-复位默认值:00000000BFRZ0、FRZ1:背景调试冻结控制位。在背景调试模式下,经常设一些断点,程序运行到断点便会停止,即为冻结。此时可控制A/D转换是否进行。00为继续转换,01为保留,10为完成转换后冻结,11为立刻冻结。FIFO:结果寄存器模式控制位。即A/D转换结果是否映射到转换序列。0表示结果寄存器没有映射到转换序列。S1C、S2C、S4C、S8C:转换序列长度选择位控制位。本实验中转换序列长度为1,设置为0001。ATD控制寄存器4——ATDCTL4ATDCTL4用于选择时钟,选择采样转换时间及选择 8位/10位转换方式,对ATDCTL4进行写操作将开始一个新的转换,如果在转换过程中对该寄存器进行写操作,将使ATD转换中断,一直到对ATDCTL5进行写操作为止。表4.3ATDCTL4读写Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0Read/WriteSRES8SMP1SMP0PRS4PRS3PRS2PRS1PRS0复位默认值:00000000BPRS0、PRS1、PRS2、PRS3、PRS4:A/D转换预分频设置控制位。该位用于选择分频系数,从而选择相应的采样频率,总分频系数为2*n+2,n为PRS4~PRS0代表的10进制数值。SMP0、SMP1:采样时间选择控制位。00、01、10、11分另I」对应2、4、8、16*A/D时钟周期。ATD控制寄存器5——ATDCTL5表4.4ATDCTL5读写Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0ReadDJMDSGNSCANMULT0CCCBCAWrite复位默认值:00000000BATDCTL5用于选择转换方式,选择转换通道,设置单/多通道转换和单次/连续转换模式及选择对齐方式。写寄存器ATDCTL5将会启动一个新的转换,如果写该寄存器时ATD正在进行转换,则转换将被中止。CA、CB、CC:采样通道选择控制位。当MULT=0时,用来选择采样通道;当MULT=1时用来选择开始转换的起始通道。MULT:单/多通道A/D转换选择控制位。0为单通道选择,无论用哪个通道进行A/D转换,转换结果都存放在ATDDR0中;1为多通道转换。SCAN:单次/连续A/D转换模式选择控制位。0为单次A/D转换模式。DSGN:转换结果有无符号控制位。0为转换结果无符号。DJM:转换结果对齐方式控制位。0为左对齐,1为右对齐。ATD状态寄存器0——ATDSTAT0ATDSTAT0反映当前的转换通道、A/D转换是否结束、寄存器是否被覆盖以及是否有外部触发事件发生。表4.5ATDSTAT0读写Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0ReadSCF0ETORFFIFOR0CC2CC1CC0Write----------复位默认值:00000000BCC0、CC1、CC2:转换计数器。指向一个将要转换的通道,只读。FIFO=0,CC0、CC1、CC2始终为0;FIFO=1,CC0、CC1、CC2用来循环计数。FIFOR:寄存器值覆盖标志位。当前结果寄存器的值在读出之前被写入,CCFx(x=0~7)清零时,该位置位。ETORF:外部触发覆盖标志位。SCF:A/D转换结束标志位。SCAN=0,为单次转换模式,当转换完成后置位;SCAN=1,连续转换模式,第一次转换完成后置位,当AFFC=0,向SCF中写1,可将该位清零。ATD状态寄存器1——ATDSTAT1ATDSTAT1反映转换序列中相应转换是否完成。Bit7~Bit0分别为CCF0~CCF7,只读,1表示转换结束。ATD结果寄存器——ATDDRxH和ATDDRxLATD模块的结果寄存器是8个16位的寄存器。结果寄存器在普通模式下为只读。各寄存器的高、低字节分别称为ATDDRxH、ATDDRxL(其中,x=0~7对应通道0~7),每个寄存器给出一个通道的转换结果。ATD输入使能寄存器一一ATDDIENBit7~Bit0对应IEN7~IEN0。0表示相应的数字信号输入禁止;1表示相应的数字信号输入使能。(4)软件编程A/D转换模块软件编程主要包括A/D转换初始化函数及A/D转换值读取函数。A/D转换初始化voidATD_Init(void){

//ATDOInitATD0CTL3=0b00001000;ATD0CTL4=0b01100110;ATD0CTL5=0b10100000;连续A/D转换模式,转换结果无符号ATD0CTL2=0b11000000;CCFx位,启动A/D转换。//ATDIInit//持续转换,序列转换长度为//持续转换,序列转换长度为1〃分频系数14,转换精度10位//单通道A/D转换,结果存放在ATD0DR0中;转换结果右对齐//A/D转换结束后自动清除寄存器ATD0STAT1的ATD1CTL4=0b01100110;ATD1CTL5=0b10100000;ATD1CTL2=0b11000000;A/D转换值读取函数unsignedintgetAD0(void){while(!ATD0STAT0_SCF); //等待转换完成returnATD0DR0;}unsignedintgetAD1(void){while(!ATD1STAT0_SCF);returnATD1DR0;}2、定时器模块(1)定时器模块概述S12系统MCU的定时器模块在HC12的标准定时器模块(StandardTimerModule,TIM)基础上增加了一些功能,加强了原来的输入捕捉及脉冲累加器的一些功能,扩大了应用范围,因此S12的定时器模块称为增强型定时器模块(EnhancedCaptureTimerModule,ECT)。S12增强型定时器模块ECT具有如下特点:4个具有16位缓冲寄存器的输入捕捉通道;4个8位脉冲累加器可以通过级联形成2个16位脉冲累加器;1个具有4位预分频器的16位递减计数器;4个可选的延迟计数器用来增强输入抗干扰能力(2)定时器工作原理本实验系统中A/D转换结果的读取采用查询方式,采样间隔(采样频率)由定时器决定,本软件设计中采用ECT中1个具有4位预分频器的16位递减计数器(模数递减计数器)来定时,定时频率为100Hz。模数递减计数器(MDC)是S12微控制器ECT特有的。ECT既可以作为一个时基定时产生中断,也可以用来产生控制信号。MDC是一个递减16位计数器,其外围配备了常寄存器MCCNT和预分频器,它们分别为MDC提供定时常数和时钟信号。当MCCTL中的MCEN=0时,MDC被复位成$FFFF,以避免在计数启动的初期置位中断标志。MCEN置1,MDC启动并从当前值开始对预分频器输出的时钟进行递减计数,分频系数为1、4、8、16可选,具体由MCCTL寄存器中的MCPR1和PCPR0确定。(3)定时器寄存器16位模数计数器控制寄存器一一MCCTL表4.6MCCTL读写Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0ReadMCZIMODMCRDMCL00MCENMCPR1MCPR0WriteICLATFLMC复位默认值:00000000BMCZI:模数计数器向下溢出中断使能位。0为中断禁止,1为中断使能。MODMC:模数方式使能位。0为单次计数方式,计数器从设定值递减到0后停止;1为循环计数方式,当计数器递减回0后,加载最新设定值,并开始新一轮计数。RDMCL:模数读取选择位。0为返回模数计数器的当前值,1为返回重新加载所用的常数。ICLAT:捕捉寄存器强制转移控制位。FLMC:模数计数器强制加载控制位。该位只在模数计数器使(MCEN=1)时有效。0为无效,1为将模数寄存器的值加载到模数计数器,同时复位模数计数器的定时器。MCEN:模数递减计数器使能位。当MCEN=0时,计数器被预置为$FFFF,以避免在计数器启动的初期出现中断标志。0表示模数计数器禁止,1为模数计数器使能。MCPR1、MCPR0:模数计数器定时器分频常数设定位。00、01、10、11分别对应1、4、8、16分频常数。16位模数计数器标志寄存器一一MCFLG表4.7MCFLG读写Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0ReadMCZF000POLF3POLF2POLF1POLF0Write-------复位默认值:00000000BMCZF:模数计数器溢出中断标志。递减回0时置位,向该位写1将清除该标志,写0无效。POLF3~POLF0:输入首次捕捉极性标志。只读,写操作无效,它们可选择引发第一个捕捉动作的边沿性的极性。0为下降沿,1为上升沿。16位模数递减计数器寄存器一一MCCNT表4.8MCCNTMCCNT(H)Read/WriteBit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8MCCNT(L)Read/WriteBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0复位默认值:0000000000000000B对寄存器MCCNT应按字访问,分别对高位、低位字节的访问可能会得到不同的结果。如果寄存器MCCNT中的RDMCL清零,对寄存器MCCNT的读操作将返回计数器的当前值;如果RDMCL置位,则将返回每次重新加载所用的常数。

MODMC=1时,为允许模数方式,对MCCNT进行写操作将更新此寄存器的值,但计数器不会立即更新,必须等到计数器回0后重新加载。MODMC=0时,为非允许模数方式,写寄存器MCCNT将对定时器进行清零,并用新值更新计数器,然后开始一次新的递减计数,减到 0时停止。(4)定时器软件编程定时器软件主要包括定时器的初始化及定时器中断程序。定时器初始化模数计数器的初始化在系统初始化函数SYS_Init()中实现。voidSYS_Init(void){…MCCTL=0xc7; //定时器启动MCCNT=5000; //定时1ms,100Hz}MCCTL=0xc7:定时器中断使能,采用循环计数方式,模数计数器使能,16分频常数。MCCNT=5000:由S12时钟频率为16MHz,定时频率为:100Hz时钟频率 16000000100Hz2*分频系数*MCCNT2*16*5000定时器中断函数

建立定时器中断,对中断次数进行计数,计数值定义为全局变量mseco#pragmaCODE_SEGNON_BANKEDmsecoDisablelnterrupts;msec++;MCFLG_MCZF=1;EnableInterrupts;}//开中断Disablelnterrupts;msec++;MCFLG_MCZF=1;EnableInterrupts;}//开中断//累加计数//清除中断溢出标志位//开中断#pragmaCODE_SEGDEFAULT3、数码管显示模块(1)模块概述数码管显示模块主要完成血压测量过程中气袖内压力的实时显示,血压测量完成时对血压值进行显示。LED数码管显示部分由两个8段数码管和2个1*8排针组成,原理图如图4.3图4.3 数码管显示电路(2)软件编程本实验系统采用A口作为LED编码,B口作为LED位选控制。4个数码管为一组,实现对压力值(4位整数)的实时显示。constunsignedcharsgcode[20]={0x3f,6,0x5b,0x4f,0x66,0x6d,0x7d,7,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,//编码//编码//数码管缓存区unsignedchardpbuf[4];voiddisled(intnum){chari;dpbuf[3]=(char)(num/1000); //千位TOC\o"1-5"\h\zdpbuf[2]=(char)((num-dpbuf[3]*1000)/100); //百位dpbuf[1]=(char)((num-dpbuf[3]*1000-dpbuf[2]*100)/10); //十位dpbuf[0]=(char)(num-dpbuf[3]*1000-dpbuf[2]*100-dpbuf[1]*10); //个位for(i=0;i<4;i++){switch(i){case0:PORTB=0b00000001;break;case1:PORTB=0b00000010;break;case2:PORTB=0b00000100;break;case3:PORTB=0b00001000;break;}PORTA=sgcode[dpbuf[i]]; //发送编码到LED}}4、通信模块(1)通信模块概述S12串行通信模块包括多个独立的串行子系统,例如同步串行通信SPI、异步串行通信SCI和CAN总线通信等,本血压测量系统中采用熟悉的异步串行通信SCI来完成单片机向上位机数据的发送过程。SCI串行通信接口是一种异步串行通信系统,它是计算机最常用的通信接口之一。S12的SCI是全双工异步串行通信接口,通常用于微控制器与其他计算机、调制解调器等设备之间的通信。在S12微控制器中集成了2个SCI串行通信模块,它内置了独立的波特率发生电路和SCI收发器。(2)SCI寄存器波特率寄存器——SCIBDH、SCIBDLSCIBDH和SCIBDL构成一个16位的波特率控制寄存器。SCIBDH的低5位与SCIBDL全8位构成一个13位的波特率常数,SCI波特率的计算公式如下:波特率二SCI模式时钟/(16*波特率常数) (4.1)SCI控制寄存器1——SCICR1SCI的工作方式主要由该寄存器设置,可选择工作模式、设置帧格式、唤醒、空闲检测类型以及奇偶校验等。表4.9SCICR1读写Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0Read/WriLOOPSSCISWARSRCMWAKEILTPEPTteI复位默认值:00000000BLOOPS:循环选择位。0为正常工作使能,1为循环工作使能SCISWAI:SCI等待模式停止位。0为等待模式使能,1为禁止RSRC:接收器信号源位。当LOOP=1时,RSRC决定接收器移位寄存器的信号源。M:数据帧格式位。0表示1个起始位,8个数据位,1个停止位;1表示1个起始位,9个数据位,1个停止位。WAKE:唤醒条件位。0表示由空闲线唤醒,1表示第9位数据位唤醒。ILT:空闲线类型。PE:奇偶校验使能位。0为奇偶校验禁止,1为奇偶校验使能。PT:奇偶校验类型位。0为偶校验,1为奇校验。SCI控制寄存器2——SCICR2该寄存器主要完成收发中断的控制、收发的允许等操作。本血压测量系统只发送数据,不用接收数据,仅对发送相关位进行介绍。表4.10SCICR2读写Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0Read/WriteTIETCIERIEILIETERERWUSBK复位默认值:00000000BTIE:发送中断使能位,1为中断请求使能

TCIE:发送结束中断使能位,1为TC中断请求使能。TE、RE:发送、接U^允许位,1为发送、接收使能。SCI状态寄存器1——SCISR1该寄存器可显示SCI的运行情况,例如收发数据是否已空/满,是否出错等表4.11SCISR1读写Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0ReadTDRETCRDRFIDLEORNFFEPF复位默认值:00000000BTDRE:发送数据寄存器空标志位。0表示无字节传送到发送移位寄存器,1表示数据已传送到发送移位寄存器,发送数据寄存器为空。TC:发送结束标志,0为正在发送,1为无发送。SCI数据寄存器——SCIDRLSCIDRL中为8位接收数据位或发送数据位。(3)软件编程软件编程主要包括串行通信初始化及数据发送两个部分。串行通信初始化voidSci_Init(){SCI0BDL=(unsignedchar)((16000000UL/*OSCfreq*//2)/9600/*baudrate*//16/*factor*/); //波特率为9600SCI0CR1=0;〃正常工作模式,无奇偶校验SCI0CR1=0;〃正常工作模式,无奇偶校验SCI0CR2=0X0C; 〃发送使能,发送中断禁止,采用查询方式发送}串口发送数据voidSciTx(unsignedchartext){while(!(SCI0SR1&0x80)); //等待上一次发送完成SCI0DRH=0;SCI0DRL=text; //发送数据送入发送数据寄存器}5、气袖充气模块该模块完成对气袖充气过程的控制,关闭气阀,开气泵,对气袖进行充气,使气袖压力上升,对气袖压力进行实时检测并显示,当气袖压力大于给定阀值时,此时气袖压力阻断上臂动脉血液流动,关闭气泵。软件流程如图4.4,源码及分析见附录A,函数原型为voidPump(void)。Pump()No 4显示气袖压力Pump()No 4显示气袖压力图4.4气袖充气模块软件流程Measure()(a)压力数据测量N0Measure()(a)压力数据测量N06、压力数据测量模块根据血压测量原理,该模块中气泵、气阀关闭,气袖缓慢自然放气,对压力数据进行存储,供血压值计算使用,并将压力数据发送至上位机。软件流程如图 4.5,源码及分析详见附录A,函数原型为voidMeasure(void)。Calculate。去脉搏波数据初始

噪声及信号偏置求脉搏波最大峰值(动脉平均压)将小于平均压1/4的

压力数据视为噪声,

去除脉搏波上升段达到平均压一定比例Ks的压力对应的气袖压力为收缩压脉搏波下降段达到平均压一定比例Kd的压力对应的气袖压力为舒张压(b)血压值计算图4.5压力数据测量与血压值计算软件流程7、血压值计算模块血压值的计算采用幅值系数法,对测量的压力数据进行处理,计算出收缩压和舒张压。软件流程如图4.5,源码及分析详见附录A,函数原型为voidCalculate(void)。4.2上位机软件设计上位机软件主要进行压力数据的接收,压力数据的图形显示,压力值的计算等。压力数据的接收由串口通信软件完成,数据处理软件由 LabVIEW编写,完成压力数据的图形显示,并进行压力值的计算等。用口通信串口通信采用软件串口大师(ComMaster)实现,该软件的串口调试功能强大,能自动检测用口,可以设置串口通信各种参数,最大的特点是可以将接收到的数据文件保存为文本格式,便于对测量的数据进行数据处理。软件的运行界面如图 4.6所示。

图4.6串口通信软件界面进行血压数据采集时,先设置好用口参数,将“ 16进制”复选框勾上,打开用口,即可接收数据。接收完成后,点击“选择文件”按扭,输入文件名或打开已有文件,再点击“保存数据”就可以将接收的数据保存为文本文件。软件运行时设置界面如图 4.7&聿LI太MKglaNtcrU.jForiini>VSr用口利式Cfiitar) iWftnitar)用口及流CFiltsr)|美于蹴Rfe(K*]|.其用器匚停工星剪珪端显反JwJ6H制三新兄F|造用灯厂|看神咫[Ha£11*串口I.其用器匚停工星剪珪端显反JwJ6H制三新兄F|造用灯厂|看神咫[Ha£11*串口I源眸同iFi-71KffiCj:I': ▼171的血 ▼]后止位fl .blLZtdBZ4bLi心现qI牛IIT8E M 川 Tut WJ Ei Qi7££Tc b 7c 15 7b bl ?46fKifid % M Eh 上口 B161cd6D bE 5E lb 5i W Si55d55 ba. '53 It 52 bb 5]lcM4«154&eO4ke940妇岫43hS42b-Q4]3dtc3dlhdh%:3bIb^l3i3S鼠熊d9SM翡HM31b931E8妙30bfl30史d1j92cli&2cc32ccl2cb?29HZQb电理犯钿化的151粕范久?;僦『正二|:-恭配功5047*:指34受注望ji'5b5D3f39332fJb26alyth5nr:.□二,nabd59M4fIf4B$,3£占3g小3D=6"f123b=B28如tdLb40TMkb74c4M小C6a&ci即E47445(flT3ELEh3gIT足3310,"15c£处15h27FJZMM修工Id气以5IH%%bJcfvqRMW国tllhutc二一吧内福m把科"出!£普通*£<]曾一廿L4bl旭h万聒弓可4Qf£3-Wb--1-1(二rl『.a1a■二v-r-rtH#!皿Ir优总判■用球g|lUUJf!S唯春芟牛点送交件恸。fili5»1flftddJIEKJL-US^iCluXLLU无信JIEKJL-US^iCluXLLU无信*i*■■■■■■■■华增相出收沪皆为堂如蹊IessssHeJ运行章助退出崖序图4.7串口通信运行界面数据处理1、LabVIEW软件介绍血压数据的处理由工程软件LabVIEW(LaboratoryVirtualInstrumentEngineering)设计完成。LabVIEW是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。 LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。LabVIEW编程语言是一种图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图。它尽可能利用了技术人员、科学家、

工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强构建科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本,本次毕业设计采用的是LabVIEW8.2。2、LabVIEW数据处理(1)数据格式转换串口通信软件将接收完成的数据保存为16进制的文本字符(ASCII码)格式,为了进行数据处理,必须转换成为计算机可识别的十进制数据,数据格式转换程序框图如图4.8所小。尸II■11/11LI*」LidI口U口11口1ML」IIL」I」H口■」LIULJU*[[R .卜gLIEJUEJLILIUEJLIULIULJ口LIUUU口ULI口UULIUEJLJU口口片子眄逞;K[i,-T口片子眄逞;K[i,-Tncz71rrrT5FLmTTnKhTzi□nrrnTmi1ei图4.8数据格式转换程序框图

由于每个压力数据保存为16进制文本时占用3个字符串长度,即2个数据长度和1个空格符,因此每个文本文件中保存的压力数据个数为字符总长度的 1/3。应用LabVIEW提供的for循环结构,可对每3个字符长度进行转换,转换完成后的数据可存入新的文本文件,同时保存为数据结构供下一步的数据处理使用。(2)压力数据图形显示由4.2.2中的压力数据测量模块编程可知,上位机接收的压力数据中包含气袖压力数据和脉搏波数据,因此进行图形显示前需要对数据进行分离,分别提取出气袖压力数据和脉搏波数据,压力数据图形显示程序框图如4.9所示。口口匚口门口口口口门口rri"i匚 :口?1匚TrnTinrr口uu~।»kjTiRirnninn~~"t~rii-n-nnnrrmr'inrinTinT图4.9压力数据图形显示框图图4.10气袖压力图4.11脉搏波由于气袖压力数据和脉搏波数据是以间隔顺序接收的,因此可以直接对经过格式转换的数据进行处理,应用LabVIEW的for循环结构,对压力数据数组索引进行判别,偶数索引对应的数据为气袖压力数据,奇数索引对应的数据为脉搏波数据, LabVIEW循环结构中的移位寄存器可以方便地对压力数据进行连续存储。数据分离之后,可以直接将数据进行图形显示,同时可以将数据通过添加局部变量送至下一层供血压值计算使用,实际程序运行结果如图 4.10、4.11所示。(3)人体血压值计算人体血压值的计算方法有多种,单片机的血压测量是基于示波法,示波法血压值计算主要有幅值系数法和拐点法。求脉搏波振荡峰值上位机接收到的数据量较大,而求人体血压值只需要求脉搏波的包络曲线,为此必须先求脉搏波的振荡峰值及其对应的气袖压力,程序框图如4.12所示图4.12求脉搏波波峰波谷程序框图对脉搏波的连续3个数据进行比较,判别第2个数据是否为最大值或最小值(即判

别当前数据中是否含有脉搏波振荡的波峰或波谷),如果不是则从数组中删除该数据,同时从气袖压力数组中删除对应的压力数据。经过处理的数据再次进行图形显示,如图4.13、4.14所示,数据量大大减少。图4.13气袖压力曲线曲线0180-160-190--IO002550751QO125150175200225必Z7S30032535037540042S450C5时间1曲线0180-160-190--IO002550751QO125150175200225必Z7S30032535037540042S450C5时间1ic-120-130-140150-200-210-220-230-图4.14脉搏波振荡峰值曲线脉搏波去干扰及偏置由图4.11及图4.14中可知脉搏波压力的中心未在零点上,而且在气袖压力开始下降的初期,脉搏波信号存在很大的干扰,为无效数据,因此必须对脉搏波信号去干扰及偏置,程序框图如图4.15图4.15脉搏波去干扰及偏置振荡波2为脉搏波的振荡峰值数据,即框图4.12中的脉搏波数据,脉搏波数据的偏置为186.4,该值是在当气袖内压力包为零时测得的脉搏波提取电路输出压力数据的平均值,将压力数据减去该值就可以去偏置。图4.16去干扰及偏置后的脉搏波去干扰是直接将脉搏波压力的前20个值置为0,由于此部分对应的气袖压力大于160mmHg,即远远大于人体的收缩压,不会对血压值的计算造成影响,因此作这样的简单处理是可行的,经过处理的脉搏波信号如图 4.16。计算血压值血压值的计算采用幅值系数法,找出脉搏波的最大峰值,在脉搏波包络峰值的上升阶段,第一个大于或等于最大峰值一定比例(Ks)的幅值所对应的气袖压力为收缩压;在脉搏波包络峰值的下降阶段,第一个小于或等于最大峰值一定比例( ()的幅值所对应的气袖压力为舒张压。本实验系统中, Ks0.58,Kd0.77。血压值计算的程序框图如图4.17所示。血压值计算结果为,收缩压127mmHg,舒张压82mmHg。测量结果在正常人体血压平均值附近,结果较理想,人体血压测量软件面板如图 4.18。图4.17血压值计算人体血Jk测量也嘀苏.小宙回1,舒张JE/mraHg图4.18人体血压测量软件面板本章小结本章主要介绍了血压测量系统的软件设计方法,详细分析了单片机软件的编写过程,单片机软件采用模块化设计方法,对各模块的工作原理及算法作了介绍。基于LabVIEW的上位机数据处理软件给出了程序框图及程序编写说明, 详细的软件设计源代码可以参考附录Ao5实验设计本课题是为单片机系列实验之一压力测量与控制实验开发的一个实验平台,供学生学习Freescale单片机的原理及使用方法,本章主要介绍血压测量系统学生实验的设计思想及设计方法。实验目的通过该实验,应当使学生熟练掌握Freescale单片机的组成原理及编程方法,掌握压力传感器的使用;了解人体血压的测量过程,了解压力信号的提取;掌握压力测量方法,而关键是使学生掌握单片机的编程方法。实验内容根据实验目的,制定相应的实验内容,由于人体血压测量系统结构复杂,学生在有限的时间内不可能完成繁多的实验任务,因此只要求学生按照已经给出的算法,编写血压测量控制过程的软件程序和血压值计算程序,而血压测量过程需要用到的通用子模块均提供详细的函数接口,供学生方使使用。本实验的实验内容为,学习人体血压的测量原理和血压测量系统的组成结构,根据提供的子函数库及血压测量算法,编写一个实验程序,完成人体血压的测量与计算,数据处理完成后,显示最终结果。实验要求本实验的实验要求,就是完成人体血压的测量与显示,测量结果要在合理的范围之内,越接近真实值越好。实验说明作为学生实验,实验说明部分将给出实验步骤,实验箱的组成及实验箱与单片机的接口方法等,同时实验说明将提供通用函数的接口及使用注意事项,给出人体血压测量控制算法及血压值计算的算法等。本章小结本章主要介绍了学生实验的设计思想和设计方法,为学生实验指导书的编写提供一个参考,详细的实验指导书见附录Bo结论通过本次毕业设计,完成了人体血压测量系统实验箱的改造,统一了单片机系列实验的接口,完成了S12单片机系统对血压测量的控制与计算软件的设计,用LabVIEW编写了上位机数据处理软件,对血压数据进行了图形显示并计算出了人体的血压值,最后对学生实验进行了设计,基本完成了开题报告中所要求完成的内容。在整个设计过程中,我认真学习了CodeWarrior软件、LabVIEW软件,以及飞思卡尔MCS12DG128单片机的嵌入式开发系统,查阅了大量期刊文献,大大提高了自己的自主学习能力。自己亲自实践完成了单片机实验电路的搭建,动手完成了实验箱内部电路的改造焊接,增强了自己的动手能力。在软件设计过程中遇到了一些困难,通过自己的思考和与老师同学的交流,最终解决了难题,学会了解决问题的方法。整个毕业设计对我个人的能力是一次非常全面的培养。致谢本次毕业设计是在我的指导老师张军香老师、董韶鹏老师的指导下完成的,本次毕业设计能够顺利完成,与她们的悉心教导是分不开的。毕业设计的每个星期,两位老师都会不断对我上个星期的工作进行总结,对我的工作提出一些很有成效的建议,并能发现我毕业设计中存在的问题,帮我及时指正,使我的毕业设计更加高效地完成,在此我对张军香老师和董韶鹏老师表示诚挚的感谢和由衷的敬意。本次毕业设计是在北航2号楼的教学实验中心完成的,感谢实验室的老师为我的毕业设计提供了良好的学习环境,感谢各位老师在毕业设计过程中的良好监督。止匕外,我还要感谢实验室许多同学在整个过程中对我毕业设计工作的帮助和配合。参考文献[1]王威.HCS12微控制器原理及应用[M].北京:北京航空航天大学出版社,2007[2]王保华.生物医学测量与仪器[M].上海:复旦大学出版社.2002[3]聂能,谢正祥.生物医学信号数字处理技术及应用[M].北京:科学出版社.2005[4]焦学军、房兴业.利用脉搏波特征参数连续测量血压的方法研究 [J].生物医学工程学杂志.2002.19(2):217-220[5]俞梦孙.21世纪医学电子仪器[A].第十一届中国国际医用仪器设备展览会暨技术交流会[C].2002,9:9-11[6]王博亮,刘迎春,刘安之,刘希顺.医用传感器及其接口技术[M].北京:国防工业出版社.1998□樊尚春,周浩敏.信号与测试技术[M].北京:北京航空航天大学,2002[8]张桂平.电子血压测量原理及存在的问题[J].医疗保健器具,2005[9]邓亲恺.现代医学仪器设计原理[M].北京:科学出版社,2004[10]黄建新,刘怀.基于示波法的无创血压监护仪的设计[J].南京师范大学学报(工程技术版),2005,5(1):25-27[11]周月英,吴延庆.血压研究的新进展[J].江西医学院学报,2004,44(6):130-131附录附录A单片机血压测量C语言程序#include<hidef.h>#include<mc9s12dg128.h>#include"math.h"#pragmaLINK_INFODERIVATIVE"mc9s12dg128b"voidSYS_Init(void);voidATD_Init(void);voidSci_Init(void);voidSciTx(unsignedchartext

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论