学士学位论文心电监护系统的设计.docx
- 文档编号:12511003
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:18
- 大小:250.56KB
学士学位论文心电监护系统的设计.docx
《学士学位论文心电监护系统的设计.docx》由会员分享,可在线阅读,更多相关《学士学位论文心电监护系统的设计.docx(18页珍藏版)》请在冰豆网上搜索。
学士学位论文心电监护系统的设计
目录
一、心电信号的特征3
二、系统硬件设计4
2.1右腿驱动电路5
2.2前置放大电路的设计6
2.3二级放大高通、低通滤波电路设计7
2.4双T有源陷波器电路设计8
2.5电压提升电路9
三、系统软件设计11
四、嵌入式Web服务器的设计13
4.1嵌入式Web服务器概述13
4.2嵌入式Web服务器的移植14
4.3动态心电监护网页设计15
五、总结17
六、课程设计总结18
七、主要参考文献19
远程心电监护系统的设计
本文设计了一种远程心电监护系统监测仪。
该设备主要由两部分构成,第一,以安有Linux操作系统且嵌有Web服务器的家庭PC机为本地服务器;第二,以基于$3C2410硬件平台和Linux操作系统构成的的嵌入式系统为终端采集设备。
在设计时为了方便病人,对于终端设备,一方面可以受家庭PC机服务器的控制,另一方面也可以独立工作。
独立工作模式即终端本身提供了对心电信号的各种控制,诸如采集、停止、回放、查找、保存等功能。
一、心电信号的特征
一般电信号有三大特征:
幅度、频谱及信号源阻抗。
作为生物电的心电信号也是如
此,同时心电信号属于强噪声下的低频微弱信号,它是由复杂的生命体发出的不稳定
的自然信号,由于受到人体诸多因素的影响,因而有着一般信号所不具有的特点。
(1)信号弱:
由于心电信号是从人体的体表进行提取的一种生物电信号,因此信号一般十分微弱,心电信号为mV(毫伏)级信号,幅值大约为0.03一--4mV,典型值为lmV。
(2)不稳定性:
人体是一个与自然界有着密切关系的开放性系统,人体可能处在各种电磁、噪声等环境中,这就使得心电信号存在了不稳定性和随机性。
(3)低频特性:
人体心电信号频率较低,频谱范围主要集中在为0.05,.--lOOHz。
(4)高阻抗:
人体作为心电的信号源,拥有可达几kQ到几十kQ的高阻抗,因此
这个特性容易引起心电信号测量的失真。
(5)噪声强:
人的周围一般存在各种干扰,大概概括为以下几种:
●工频干扰:
50Hz的工频干扰是最普遍的,此干扰也正是心电信号测量时的主要
干扰。
●高频干扰:
基于不同频段的电视发射台、无线电广播、通讯设备、雷达等随着
无线电技术的发展而逐渐发展起来,其工作时可以使空中的电磁波大量增加。
这些便产生了高频干扰。
●测量设备自身的干扰信号:
由于心电信号处理电路部分的电子设备自身也会产
生仪器噪声。
这种噪声一般属于具有较高的频率特性的信号。
14J
二、系统硬件设计
由于心电图信号的检测是属于强噪声、强干扰环境下,且频率范围一般在0.5~100Hz之间,幅度在0.1"--5mV范围内的超低频,微弱信号。
因此这种心电信号属于具有微弱性、低频特性和随机性和不稳定性等特点。
在进行心电信号时测量时存在较强干扰,包括测量电极与人体之间构成的化学电池所产生的直流极化电压;50Hz且以共模电压形式存在的工频干扰;肌肉收缩引起的肌电干扰:
人体运动、呼吸引起的基线漂移等,这就要求设计一种满足高输入阻抗、高共模抑制比(CMRR)、低噪声、低漂移和高安全性前置放大器。
本设计中前置放大器采样的是通用仪表放大器AD620,该芯片约有50倍的放大倍数,通过该芯片可以实现将微弱的心电信号受到来自人体内外的多种干扰预处理掉。
其次,后端电路采用了高通和低通滤波器,滤波器的作用是将0.05---,100Hz以外的信号进一步进行处理,这样可以抑制基线漂移和高频噪声的影响。
然后通过50Hz的陷波电路再次处理信号。
为充分利用$3C2410的A/D转换精度,在进行对心电信号具体采集前还需要将信号放大到A/D转换器电路参考电压的70%左右,同时考虑到信号中有附加的直流成分,需在A/D转换电路前增加电平调节电路。
综合上面的分析,最后设计的心电采集电路应该有以下几部分:
AD620前端放大、0.05Hz的低通滤波和lOOHz的高通滤波、50Hz陷波器和电平升压电路。
下面将进行具体电路的设计。
2.1右腿驱动电路
首先要进行的是对50Hz共模电压的调节。
这是由于人体本身从环境中可通过各种渠道拾取工频50Hz交流电压,这种电压在心电信号的测量中形成几伏以上的交流共模干扰,我们采用右腿驱动电路后可以使50Hz共模干扰电压降到1%以下。
采用了右腿驱动电路取代直接接地,它是心电信号提取中非常有用的方法,这种与右腿接地的方法比较,右腿驱动技术对抑制交流干扰的效果更好,但由于存在交流干扰电压的反馈环路,对人体形成不安全因素,因此在使用时需外接限流电阻。
平均交流共模电压被送入驱动放大器的反相放大端子,其中的平均交流电压是由电阻网络取出来的,然后加到右腿电极,R1是限流电阻。
这种电路结构实际是电压并联负反馈电路,只是以人体为相加点的。
这里的辅助运放采样了0PA277芯片,为了使输入能够尽量对称以达到最好的设计R性能,我们可以通过调节图中一L设定放大器增益来可保证R4=R5;为了限制电流这里
的Rl要达到M级;调节C2以使右腿驱动平衡。
2.2前置放大电路的设计
由于心电信号相对比较微弱,容易受到各种干扰,比如交流电磁干扰信号等,而这些干扰信号要比心电信号大很多,并且一般这些干扰信号对输入电路来说属于共模信号,所以要求我们设计的前置放大电路有较高的共模抑制比。
本设计选用美国AnalogDevices公司提供的模拟放大芯片AD620AN作为前置放大器,它能够满足心电前置放大高CMRR、高输入阻抗、低噪声、低漂移的设计要求,AD620是具有低偏置电流、低失调电压、高精度并且低功耗等特点的仪表放大器,其电路设计比较简单,仅需外接一个增益电阻就能设置放大倍数。
同时由于该芯片具有109Q高12输入阻抗、可达130dB高共模抑制比、最高可达1000倍高放大倍数、以及最大50pA低输入失调电压、低噪声等优点,很多的国内外心电监护系统在信号处理部分都采用了该芯片。
对于电磁干扰,由于电磁干扰会严重影响高精度电路的DC性能。
放大器相对低的带宽不能正确的放大MHz级的RF射频。
但这些带外信号很可能会耦合到放大器的输入和电源引脚,在输出引脚就可能出现不可解释的和不希望的DC偏移。
图3.3前置放大电路。
如上图所示,信号来自于Vin一、Vin+,输出为Vout,其中RI+R2和C3构成了差模;R1/C1,R2/C2构成了共模。
该滤波器可以消除以上提到的干扰,其中输入串联电阻组成了低通的差模和共模滤波器,同时也可以用来限制电流。
本设计中电阻取值为RI=R2=IOk,电容取值为CI=C2=IOpF,C3=330pF。
为了防止在VIN的一些共模输入信号会在放大器的输入转化成差分信号,因此要求RI×CI和R2×C2要很好的匹配。
电容C3主要用来帮助削弱共模滤波器由于匹配不好而引起的差分信号。
在上面的每个电源脚和仪用放大器的参考点之间还要加一个旁路电容,采用一个0.01uF和0.33uF电容并联作为去耦电容,这样的去耦效果较好。
之所以加入去耦方法是因为AD620芯片有以负电源为参考的积分器。
2.3二级放大高通、低通滤波电路设计
通过前面对心电信号的分析可知,在0.05~lOOHz范围内的信号才是有用的心电信号,而且前级还存在幅值为几毫伏至几百毫伏不等的、由于测量电极与人体皮肤表面接触形成的半电池而产生的直流电压。
为了提取我们所关心的心电信息,消除极化电压对心电信号的影响,所以设计了一个截止频率为0.05Hz二阶高通滤波电路。
根据Niqusit采样准则,采样频率必须大于截止频率的2倍,否则会造成频率混叠,因此需要加上低通滤波器。
由于我们设计的心电采采集系统的频率范围为0.05Hz~lOOHz之间,因此采样频率设置为200Hz,这样我们就需要设置一个截止频率为lOOHz的低通滤波器。
图3.5为二级放大高通滤波、有源二阶低通滤波电路。
来自于前级的信号,进入到上面电路中,电阻R1、R2、R3及放大器U1构成了一个同相放大器,放大增益可以由式G=R9/RI+I来确定。
在上述的电路图中,其中一阶高通滤波器是由C1和R2构成,由式3.1可计算出下限频率。
这里的低通滤波器采用了巴特沃兹有源二阶低通滤波器,该滤波器比较适合于对生理信号进行进行滤波。
本设计中R4,R5,R6,R13电阻以及C3和C4电容与放大器U2共同构成了巴特沃兹有源二阶低通滤波器。
其上限频率可由计算式3.2得到。
2.4双T有源陷波器电路设计
工频干扰是心电信号的主要干扰,对于心电信号来说,我们关心的只是频率范围在0.05~lOOHz之间的,但是在这个范围内有一定的工频干扰信号,比如50Hz的工频干扰,它是由于人体耦合电容而引入的。
因此这个频率的信号我们要设计带阻滤波器将其剔除,进而达到抑制的目的。
在本设Ct中力HhYX2T有源陷波器,㈣图3.6为本该设计的陷波器。
经过高低通滤波器的信号进入到上面的陷波器中,上面的50Hz陷波电路是一个Q值可调的有源双T带阻滤波电路,通过变阻器R13可以调节品质因数Q。
这里记R13的上半部电阻为Rn,下半部电阻为Rm,取电阻R1,R2,R3,R4为相同的阻值,记为R,电容Cl,C2,C3,C4也取相同的值记为C,通过这些我们可以求出电路的一些参数,比如中心频率,品质因数,下面是基本的表达式:
2.5电压提升电路
这里面进行了电压提升电路的设计,之所以设计该电路,是为了对心电信号进一步处理,使其幅度提升到$3C2410能够采集的范围内。
具体的升压电路是在输出端接一个5V的齐纳二级管完成电压提升。
㈣图3.7为具体的电压提升电路。
三、系统软件设计
终端设备的软件总体架构终端设备的软件实现主要从以下几方面来实现,主窗口模块、显示子窗口模块、输入模块、输出显示模块、采集模块、Socket通信模块、RTC时钟模块。
各个模块之间的通信以及部分处理最终都是交给MiniGUI的窗口过程函数来实现的。
在整个程序中主要有初始主窗口以及显示子窗口两个核心部分。
图4.6为终端设备的总体框图。
主窗口模块创建了三个线程,心电数据实时采样线程、家庭PC机服务器对终端便携设备的实时控制线程(Socket线程)、RTC实时时钟线程,同时创建了显示子窗口。
而三个线程通过以发送用户消息的方式与显示子窗口进行通信,即当三个线程处理完一件事后,会发送消息通知显示子窗口,然后子窗口根据具体的不同消息来想对其进行响应。
对于采样线程有一个全局标志位GatherFlag,该线程具体是否做实质性工作取决于该标志位,当用户执行终端设备进行采集时,对应标志位置位,进而采集线程执行,进行具体采集工作,当用户选择停止时会停止采集,采集线程每采完一场会向显示子窗口(后面将介绍)发送采集消息,以便子窗口更新心电数据以及显示;对于Socket通信线程,一旦建立后,便实时等待服务器端发来的数据包,收到数据包后对其进行解析,解析完命令后会向显示子窗口发送消息,子窗口的响应函数会根据命令字来响应服务器的具体操作;对于RTC时钟线程,它配合内核提供的时间处理函数,实时记录时间变化,并定时发送消息到子窗口,使子窗口实时更新时间,同时心电数据的保存记录也要以时间为依据。
对于输入模块,供用户对终端的控制,当用户触摸显示界面按钮或者按下按键时都会向显示子窗口发送消息,并传递按键识别参数,显示子窗口过程函数根据具体的消息携带参数来识别用户具体操作。
对于显示模块主要用来实现心电波形显示以及各个控件的显示、时间显示、病人信息显示等。
四、嵌入式Web服务器的设计
4.1嵌入式Web服务器概述
嵌入式Web服务器(EWS,EmbeddedWebServer)是指将Web服务器引入到现场测试和控制设计中,在相应的硬件平台和软件系统下,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议、Web技术为核心的基于互联网的网络测试和控制[44]设备。
嵌入式Web服务器与传统的服务器比较,它的体积小、功耗低、任务响应速度快,适应应用环境较强。
本文所研究的嵌入式Web服务器采用Browser/Server的方式来工作,本质上,Browser/Server也是一种Client/Server结构,它是一种由传统的二层Client/Server结构发展而来的三层Client/Server结构,在Web上应用的特例。
客户端要有一个浏览器程序,而服务器则需要有一个Web服务器,可通过网页来进行相应的设置和操作。
嵌入式Web服务器监听客户端的服务请示,根据客户请求的类型来提供相应的服务,并返回相应的处理结果。
由于嵌入式设备资源一般都有限,并且也不需要能同时处理很多用户的请求,因此不会使用Linux下最常用的如Apache等服务器,而需要使用一些专门为嵌入式设备设计的Web服务器,这些Web服务器在存储空间和运行时所占有的内存空间上都会非常适合于嵌入式应用场合。
典型的嵌入式Web服务器有httpd、Boa和thttpd,,在这里我们选用Boa作为嵌入式服务器。
Boa是一个非常小巧的Web服务器,可执行代码只有约60KB。
它是一个单任务Web服务器,只能依次完成用户的请求,而不会fork出新的进程来处理并发连续请求。
Boa支持CGI,能够为CGI程序fork出一个进程来执行。
Boa的设计目标是速度和安全,在其站点的性能测试中,Boa的性能要好于Apache服务器。
4.2嵌入式Web服务器的移植
BOA服务器的移植过程如下:
(1)下载Boa源码
从http:
//www.boa.org/上下载源码boa-0.94.13.tar.gz,并解压:
#tarxzfboa-0.94.13.tar.gz
(2)生成Makefile文件
#cd/boa-0.94.13/src
#./configure
(3)修改Makefile文件
#cd/boa-0.94.13找到CC=gcc,将其改为
CC=/usr/local/arm/3.3.2/bin/arm-linux-gcc
找到CPP=gcc–E,将其改为
CPP=/usr/local/arm/3.3.2/bin/arm-linux-gcc–E,并保存退出。
(4)编译
#make
#/usr/local/arm/3.3.2/bin/arm-linux-stripboa
(5)修改boa.conf:
①Group的修改:
将Groupnogroup改为Group0
②scriptAlias的修改:
将scriptAlias/cgi-bin/改为/usr/lib/cgi-bin/
将scriptAlias/cgi-bin/改为/var/www/cgi-bin/
③ServerName的设置:
将#ServerNamehttp:
//www.your.org.here/
改为ServerNamehttp:
//www.your.org.here/
另外还需要创建日志文件所在的目录/var/log/boa,创建HTML文档主目录
/var/www,创建CGI脚本所在目录/var/www/cgi-bin/,将mime.types文件复制到/etc目录。
另外可以根据自己需要,对boa.conf进行修改,但必须保证其它的辅助文件和设置必须和boa.conf里的配置相符,否则boa就不能正常工作。
最后将boa-0.94.13下的boa可执行文件拷贝到bin下面。
(6)测试
写一个简单的HelloWorld程序,程序代码如下:
#include
Voidmain(){
Printf(“Content-type:
text/html\n\n”);
Printf(“\n”);
Printf(“
Printf(“
\n”);Printf(“
hello,world.
\n”);Printf(“\n);
Printf(“\n”);
exit(0);}
将该程序进行交叉骗译,运行如下:
#arm-linux-gcc–ohelloworld.cgihelloworld.c
4.3动态心电监护网页设计
目前Web技术中生成动态Web页面的方法有CGI、ASP、JSP等,在嵌入式WEB服务器中,由于资源限制问题,一般采用CGI。
CGI(CommonGateIntergace)是外部应用扩展程序与WWW服务器交互的一个标准接口。
其主要的功能实现在WWW环境下,藉由客户端提供给Web服务器的各种讯息,由Web服务器启动所指定的CGI程序来完成诸如对数据库的访问、存储信息等特定工作,最后将处理后的结果反馈给客户,从而完成客户端与服务间进行的信息交流,即通常说的“交互式主页”。
CGI可以使用多种编程语言,如Perl、C++、C、shell脚本语言,本系统采用C语言编写,用C语言编写的CGI程序执行速度较快,安全性较高,比较适合嵌入式系统。
动态心电监护网页主要完成的功能是病人信息的查询、心电波形的显示和分析以及心电数据下载。
首先由网页制作工具FrontPage制成网页,生成HTML模板,然后由CGI生成动态功能。
CGI程序的工作一般就是接收表单数据,进行数据处理,最后根据处理结果生成新的页面返回浏览器。
在病人信息查询中,用户只需要在主页上输入需要查询的姓名,点击查询按钮则可以在界面的左侧显示病人的信息。
首先建立了病人信息的文本文件,里面记录了病人的姓名、编号、性别、年龄、血型、体重等信息。
当用户输入姓名时,相当于用户提交一个HTMLForm,在CGI程序设计中,使用getenv()函数通过环境变量QUERY_STRING向CGI程序传递Form中的数据,也就是用户输入的姓名。
环境变量是Web服务器传递数据给CGI的手段,根据用户输入的查询条件“姓名”,打开病人信息文本文件,查询到该病人的信息列表,通过“Content-type:
text/html\n\n”头信息将输出信息告诉Web服务器,并且通过使用printf()将需要输出的病人信息传送给Web服务器。
这样所需要查询的病人的信息列表则在网页的左边显示出来。
如果需要显示该病人心电波形,则点击“显示波形”按钮即可。
本系统中把采集到的心电数据存储在Web服务器中,当点击“显示波形”按钮时,根据用户输入的查询条件,找到其对应的心电波形数据文件,打开心电数据文件,将数据读入数组中,该数组中存储的是5秒的心电数据,利用GD库提供的函数来显示波形。
GD是一个以C语言源码形式提供的跨平台免费绘图软件包,在CGI工程文件中加入gdlib.lib,在该程序
头文件部分包括gdlib.h,就可以调用GDLib中的图形函数进行绘图了。
在这里使用GD函数库中的intImageLine(intim,intx1,inty1,intx2,inty2,intcol)函数对数组中进行画实线。
同上面MiniGUI程序开发的采集系统的界面一样,点击“心率”和“分析结果”,可以在网页输出该病人的心率,以及对该心电波形的分析结果。
网页上同时提供心电数据下载功能,CGI在响应头信息中加入内容描述为attachment,根据用户输入的“姓名”,找到其对应的文件,使用fopen()函数打开文件,fread()函数读取文件内容,fwrite()函数打印到标准输出。
五、总结
本文根据大多数的心电监护系统存在不足,引进嵌入式系统技术、嵌入式Linux技术设计了基于ARM9的远程心电监护系统,所做的工作主要归纳如下:
(1)心电监护系统的硬件设计。
该系统的硬件设计是在MINI2440上进行的,根据心电信号的特点,设计了缓冲处理电路、前级放大电路、高低通滤波电路、隔离电路、主放大电路等,完成心电信号采集电路的设计。
(2)对Linux的内核进行研究,根据所设计的硬件点和系统的需要,设计了BootLoader启动代码,对内核进行裁剪,构造了可读可写的YAFFS文件系统。
同时根据Linux驱动模型完成了对驱动的实现。
(3)心电监护系统界面的开发。
将MiniGUI移植到目标平台中,在PC机上用MiniGUI对心电监护软件进行设计,心电监护界面软件主要完成心电信号的采集、显示、分析、设置功能,并且进行交叉编译,最后将其下载到目标平台上运行。
(4)嵌入式Web服务器实现和动态心电监护网页设计。
将嵌入式服务器Boa移植到目标平台,用FrontPage对心电监护系统静态网页进行设计,然后在静态网页的基础上用CGI实现动态网页的功能。
该网页主要完成的功能有心病人信息的查询、病人心电波形的显示、分析以及心电数据的下载。
六、课程设计总结
通过本次课程设计,我在张晓虎指导老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,嵌入式领域这对我今后进一步学习计算机等方面的知识有极大的帮助。
另外,此次课程设计还得到了一些同学的帮助。
在此,我忠心感谢张晓虎老师以热心同学的指导和支持。
在未来的工作和学习中,我将以更好的成绩来回报各位领导和老师。
经过几周的奋战我的课程设计终于完成了。
发现自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。
通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。
在课程过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。
在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。
虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。
同时要感谢骆老师给予我诸多的帮助和鼓励。
我相信我会成为一个合格的大专生来回报母校,争取在工作岗位上努力奋斗,发扬大专生的优势,为自己的将来打下坚实的基础。
七、主要参考文献
[1]杨俊春.远程心电监护系统.哈尔滨工程大学硕士学位论文.2004:
1-2
[2]邢远翔.卢晓娣.我国心血管病死亡率高于欧美国家.家庭中医药.2001(12):
12
[3]丁健平.基于ARM体系结构的心电数据采集系统的研究.重庆大学硕士学位论文2005:
1-2
[4]杨钧国,李治安.现代心电图学.北京:
人民军医出版社.1998:
1-20.
[5]王保华.心电技术面向未来—纪念心电图机发明100周年.中国医疗器械杂志.2003,27(6):
390-397.
[6]郭继鸿.百年盛誉再创辉煌—纪念心电图临床应用一百周年.中国医学杂志,2002,82(18):
1225-1226.
[7]张秀婷,杜振兰.动态心电图对新生儿心律失常的诊断价值.实用心电学杂志,2008,17(5).
[8]YongningZou,ZhenyuGuo.APalmPilotBasedPocketECGRecorder[C].Procee
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学士学位 论文 监护 系统 设计