(测试计量技术及仪器专业论文)智能化心电信号记录分析系统的研究.pdf_第1页
(测试计量技术及仪器专业论文)智能化心电信号记录分析系统的研究.pdf_第2页
(测试计量技术及仪器专业论文)智能化心电信号记录分析系统的研究.pdf_第3页
(测试计量技术及仪器专业论文)智能化心电信号记录分析系统的研究.pdf_第4页
(测试计量技术及仪器专业论文)智能化心电信号记录分析系统的研究.pdf_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

硕j 。学位论文智能化心电信号记录分析系统的研究 t y6 2 4 7 3 7 摘要 心血管疾病是威胁人类生命的主要疾病之一,而心电信号( e c g ) 则是评价心脏功 能的重要依据。网此,关于心电信号的记录、处理和分析的研究直为各方所关注。 随着计算机在医疗领域的广泛应用,基于微机的心电图检测系统更受到了广泛的关 注。 在本文中,结合课题研究和医院实际的需要,在w i n d o w s 平台上,设计了- 种智 能化的心电信号记录分析系统。该系统主要实现了实时数据采集与显示、原始数据的 数字滤波和处理、心电参数的手动和自动测量、以及资料数掘的管理。 关键词;心电信号,数据采集,数字滤波,自动测量 一 i 硕士学位论文智能化,t l , 电信号记录分析系统的研究 a b s t r a c t c a r d i o v a s c u l a rd i s e a s ei so n eo ft h em o s t i m p o r t a n t d i s e a s e si n e n d a n g e r i n g h u m a n sl i f e ,a n de l e c t r o c a r d i o g r a m ( e c g ) i sa ni m p o r t a n td i a g n o s t i ct o o lf o ra s s e s s i n g h e a r tf u n c t i o n s ot h es t u d i e so ne c g r e c o r d ,e c gp r o c e s s i n ga n de c ga n a l y z i n ga r e c o n s t a n t l yf o l l o w e d 、撕t l li n t e r e s t w i t ht h ew i d e s p r e a du s eo fc o m p u t e ri nt h em e d i c a l f i e l d s ,w ep a yag r e a ta t t e n t i o nt ot h ep c b a s e de c gi n s t r u m e n t i nt h i sp a p e r , w i t ht h es u r v e ys t u d ya n dt h ea c t u a ln e e d so ft h ep r o j e e ta n dh o s p i t a l ,i t i sd e s i g n e da ni n t e l l i g e n tr e c o r da n da n a l y s i ss y s t e mo fe c gb a s e do nw i n d o w so s t h e s y s t e m a c h i e v e st o r e a l i z i n g r e a l - t i m ed a t a a c q u i s i t i o n a n dd i s p l a y , d i g i t a lf i l t e ra n d p r o c e s sd a t a ,m a n u a lm e a s u r i n ga n da u t o m a t i cm e a s u r i n go ft h ee c g p a r a m e t e r sa n dt h e m a n a g e m e n t o f t h ei n f o r m a t i o na n dd a t a k e yw o r d s :e c g ,d a t aa c q u i s i t i o n ,d i g i t a lf i l t e r , a u t o m a t i cm e a s u r i n g 硕士学位论文智能化心电信号记录分析系统的研究 1 引言 lo l 概述 心脏病是威胁人类生命的主要疾病之一,心电信号是诊断心脏病的主要依据。心 电图是临床上判断心脏疾病最基本的、不可缺少的方法之一。常规心电图检查具有无 创伤、操作简便,出图快的特点。因此常规心电图机是医院中最普遍的、使用最广的 心脏检查仪器。随着数字技术和计算机的日益发展,为了能更加准确地监测心电信号, 提高诊断正确性,心电图机已从单纯记录波形向具有自动诊断功能的智能化方向发 展。 10 2 心电图3 】 心电图是从体表记录的心脏电位变化曲线,它反映出心脏兴奋的产生、传导和恢 复过程中的生物电位变化。心电图典型波形如图1 ,2 ,1 所示。 图1 2 1 心电图 1 心电图典型波形 p 波:由心房的激动所产生,前一半主要由右心房所产生,后一半主要由左心房 所产生。正常的p 波不超过0 1 1 m s ,最高幅度不超过2 5 n l i l l 。正常的p 波波顶钝圆、 光滑。根据p 波的宽度、幅度及波形等可用于判断心房扩大,高血压及心肌梗塞等 硕+ 学位论文智能化心电信号记录分析系统的研究 病症。 q r s 波群:反映左、右心室的电激动过程,称q r s 波群宽度为q r s 时限,代 表全部心室肌激动过程所需要的时间,正常人不超过0 ,1 s 。 t 波:代表心室激动后复原时所产生的电位影响。在r 波为主的心电图上,t 波 不应低于r 波的1 1 0 。 u 波:位于t 波之后,可能是反映心肌激动之后电位与时阳_ 】的变化,人们对它 的认识仍在探讨之中。 2 心电图的典型间期和典型段 p r ( q ) 问期:是从p 波起点到q r s 波群起点的相隔时间,代表从心房激动开 始到心室歼始激动的时间。这一间期随着年龄的增长而有加长的趋势。 q r s 间期:从r ( q ) 波开始至s 波终了的时间间隔。代表两侧心室肌( 包括心室 间隔肌) 的电激动过程。 s t 段:从q r s 波群的终点到t 波起点的一段。i f 常人的s t 是接近基线的, 与基线间的距离一般不超过o0 5 m m 。 p r 段:从p 波后半部分起始端至q r s 波群起点。同样,这一段正常人也是接 近于基线的。 3 正常人的心电图典型值 p 波:0 ,2 m v ;q 波:0l m v ;r 波:0 5 1 5 m y ;s 波:o 2 m y ;t 波:o 1 0 5 m y ; p t 间期:o 1 2 0 2 s ;q r s 间期:0 0 6 o i s :s t 段:0 1 2 0 1 6 s :p r 段: 0 0 4 0 8 s 。 4 心电图的波形分析 由于心脏的生理功能与心电图之间存在着密切的对应关系,当心脏生理功能发生 失常时,均可以从心电图的波形变化上反映出来。通过用肉眼观察或用波形分析技术 判读,诊断出心脏生理功能失常的情况与变化趋势,这对医学研究和临床都有重要的 意义。 目前,通过对心电波形的分析,可以发现心脏的各种心律失常、前期收缩、心肌 梗塞部位及其发展过程、心脏异位搏动、高血压、先天性心脏缺损及其他心脏综合病 症等。 1 3 国内外研究和发展状况1 1 【2 i d i 1 7 8 0 年意大利解剖家伽伐尼发现,用微弱电流刺激肌肉会引起肌肉抽搐。1 8 8 4 年,德国生理学家艾米尔用实验证明了生物电的存在。第一台心动电描绘仪由奥古斯 2 硕士学位论文智能化心电信号记录分析系统的研究 特斯华尔于1 8 8 7 年发明。1 9 0 3 年威廉爱因霍文应用弦线电流计,第一次将体表 心电图记录在感光片上,1 9 0 6 年首次在临床上用于抢救心脏病人,成为世界上第一 张从病人身上记录下的心电图,也产生了第一台一t l , 电图机。 随着电子信息技术的迅猛发展,特别是计算机在各领域的广泛应用,数字化信息 处理为医学界进步和深入研究提供了现代化高科技手段。在心电领域里经典的单导体 表心电图记录技术正朝着数字化、多通道同步心电记录的方向发展,并将逐步被多导 同步记录心电图机替代。自1 9 7 8 年美国m a r q u e t t e 公司首推数字化1 2 导同步- t l , 电图 机,便开创了心电图记录、分析与诊断、保存与管理的新纪元。而描记技术从石英丝 到直接的震荡描笔,也被新一代高性能热阵式输出方式替代,记录则采用高分辨率激 光打印机这就是新一代的心电图机模式。 当前常用的1 2 导同步心电图机按通道的概念可分为三通道、四通道、六通道、 八通道和十二通道,通道数即表明机内放大器的数目,少于十二通道数的1 2 导同步 记录则是采集部分主要导联心电信号,再由公式换算推导出其余导联心电图,唯有十 二通道才。为真正的1 2 导联同步采集、同步放大、同步描记心电图机,但价格也较为 昂贵。目前国外已普遍使用数字化1 2 导同步心电图机,国际上心电界倡导应用1 2 导同步心电图机,以提高t l , 电图的诊断及管理水平,这也是我国心电领域今后发展趋 势。以往的心电图仪一般采用2 5 0 点s ( 2 5 0 h z ) 采样率。近年,有关权威性国际医学 机构推荐心电图自动分析采样率标准至少应达到5 0 0 点s ( 5 0 0 h z l 以高保真地记录 心电信息,包括各种切迹和挫折变化。 临床中应用的数字化1 2 导同步心电图机外观和体积多种多样,但主要分为两大 类: 1 便携模式 硬件部分与相应软件紧凑地组合成一单元模块,构成体积小,智能化程度高,功 能全,使用灵活,操作方便的便携机型,适合携带外出、移动抢救等用途。记录部分 为高分辨热阵式打印,液晶监控显示屏幕,可以存储若干份心电图数据,并能通过标 准接1 5 1 将数据传输到计算机系统中。数字化1 2 导同步心电图机具有自动测量和心电 图诊断解释功能,自动在心电图纸旁打印出各种测量数据、中英文报告、导联标记等 信息。 2 计算机模式 由典型的个人计算机系统、高分辩率激光打印机、心电信息处理单元以及专门的 处理软件组成,往往还具有心电系统其它检测等功能,更适合心电信息的研究和探讨, 多用于固定场所和长时间监测。高分辨彩色显示器可以监控心电信号采集的质量和监 护异常心电图,并可从所获取的信息中人工选择需要的心电信号进行存储、打印等处 理。具有自动测量功能由于计算机备有海量存储器,可以存储大量的原始心电数据, 里兰堡篁圣! ! ! ! ! 竺= = ! 茎冀些竺皇篁耋兰茎垒霎茎堇些塑霎二! ! ! 竺竺! ! 一 尤其适合建立心电信息数据库。 1 4 本文工作内容简介 本课题是设计智能化心电信号记录分析系统,利用微机的高速处理速度和强大的 运算功能实现对心电信号的采集、显示及存储,利用数字滤波技术进行信号的预处理, 实现心电信号参数的测量,以及计算机后处理和建立心电图数据库。 智能化心电信号记录分析系统的软件功能主要有以下几个部分组成: 1 13 通道的心电信号的采样显示。心电图仪的数据采集实现是采用基于p c 机 s a 总线的自行设计的具有1 6 通道的数据采集卡。为了能实现心电信号的实时显示, 专门编写了数据采集卡的虚拟设备驱动程序( v x d ) 。 2 心电信号的预处理模块。采用数字滤波技术,设计梳状带阻滤波器除工频干 扰、肌电干扰和抑制基线漂移。利用m a t l a b 工具箱的强大运算功能,采用v i s u a lc + + 和m a t l a b 相结合的方法对心电信号进行预处理。 3 心电参数测量模块。对于已采集的心电信号,测量心电参数采用手工和自动 测量两种方法,可实现人机交互的手工操作及自动测量的方法。有利于医生对心电参 数的分析。 4 资料数据管理模块。设计界面可实现病人基本资料的输入与存储,实现心电 信号的数据回放和导联切换。设计数据库,可实现病人资料和心电参数结果以及医生 诊断的存储,查询。 硕士学位论文智能化心电信号记录分析系统的研究 2 智能化心电图仪( e c g ) 总体方案设计 2 1 引言 心电信号是微弱的信号,为了检测和分析,首先应该放大心电信号到一定的幅度, 再经数据采集后,由计算机进行显示、处理和分析。因此,系统整体上由硬件和软件 程序组成。智能化心电图仪包括e c g 硬件系统和e c g 软件系统。e c g 软件系统为 智能化心电信号记录分析系统,利用微机的高速处理速度和强大的运算功能实现对 一i l , 电信号的自动检测显示及存储,心电信号参数的测量,对所获一1 5 , 电信号进行解释、 分析和诊断,并给出诊断结果。 2 2e c g 硬件系统 智能化心电图仪的硬件系统主要有心电信号模拟提取放大部分,心电信号数据采 集卡( 1 2 位a d ) ,微机,打印机,其原理图如图2 1 1 。 一显示 r 耀h 霉吨粤一 一打印和 广i ji 际晶 网路传输 图2 2 1 硬件系统原理图 ( 1 ) 心电放大器 心电放大器是t :, e g 信号的模拟放大部分,是将微弱的心电信号提取放大到a d 转换可接受的范围。主要包括滤波保护电路,导联选择电路,前置放大器隔离电路, l m v 标准信号发生器,中间放大器,时间常数电路,以及一些辅助电路如增益调节、 闭锁、5 0 胞干扰和肌电干扰抑制电路等。 ( 2 ) 数据采集卡 婴主主些圣竺兰坠些些些丝型型垒竺一 数据采集卡是基于微机i s a 总线,对模拟心电信号进行采样、保持、a d 转换, 数字化输出数据。 ( 3 ) i o 接口 通过计算机的i o 接口对心电放大器、数据采集卡进行软件编程,实现导联的选 择、增益选择、采样频率选择等功能。 ( 4 ) 显示 实时显示心电数据和实现数据的回放。 f 5 1 打印 打印输出病人心电波形、基本资料和医生的诊断报告。 2 3e c g 软件系统 e c g 软件遵循使用方便、功能强、容错性强的原则。计算机软件处理系统是完 成对心电放大器的控制、心电信号采样、实时显示信号波形;用软件算法对数字心电 信号数据进行干扰滤波、基线漂移抑制;实现心电参数的测量;并能够进行心电波形 回放、存储;以及打印心电图及诊断报告,数据库查询等。 e c g 软件系统功能框图见图2 _ 3 ,1 。 l软件莱统 l 图2 3 1 软件系统功能图 本论文智能化心电信号记录分析系统的研究主要解决的问题是计算机软件处 理系统。 硕士学 ! :) = 论文智能化心电信号记录分析系统的研究 软件功能模块主要为:e c g 实时采集显示模块,信号处理模块,e c g 特征参 数检测模块数据资料管理模块以及打印模块。 ( 1 ) e c g 实时采集显示模块 实现1 3 通道的心电信号的实时采样和其中4 个通道的显示。 ( 2 ) 心电信号信号处理模块。 采用数字滤波技术,设计梳状带阻滤波器除工频干扰、肌电干扰和抑制基线漂移。 ( 3 ) 心电参数测量模块。对于己采集的心电信号,测量心电参数采用手工和自动 测量两种方法,可实现人机交互的手工操作及自动测量,有利于医生对心电参数的分 析。 ( 4 ) 资料数据管理模块。设计界面可实现病人基本资料的输入与存储,实现心电 信号的数据回放和导联切换。设计数据库,可实现病人资料、测量心电参数以及医生 诊断的存储和查询。 2 4 开发工具及环境选择 2 4 1 操作系统选择 d o s 是一个单任务过程控制系统,开发实时系统时对程序下一步要做什么完全可 以控制所以可以很容易地写出程序执行的流程:即使程序被中断也不必担忧,因为 中断执行完毕仍返回被中断的程序流程,而且d o s 允许修改中断向量,允许直接与 硬件打交道,所以实时性很强。但是d o s 开发的程序,界面特性差,功能单一不适应 软件开发。 功能强大的w i n d o w s 系统的出台,具有丰富的图形用户界面、简单灵活、高效、 稳定的多任务操作,可视化编程优势完全取代了d o s 编程平台,已经在许多领域得 到了广泛的应用。另外,由于本软件系统需要对硬件开发硬件驱动,该驱动只能运行 于w i n d o w s 9 x 下,因此本系统采用w i n d o w s 9 8 。 2 4 2 开发工具选择 本文采用v i s u a lc + + 软件来开发e c g 测试软件。 v i s u a lc + + 6 0 是m i c r o s o f t 公司在1 9 9 8 年推出的基于m n d o w s 9 x 和、矾n d o w sn t 的优秀集成开发环境。s u a l c + + 6 0 和其它高级编程语言( 如v i s u a lb a s i c ,d e l p h i 等) 7 硕士学位论文智能化心电信号记录分析系统的研究 相比具有速度快、尺寸小等优势,它还具有功能强大的m f c 库,给程序员带来了极 大的方便。 v i s u a lc + 十语言的主要优点是: ( 1 ) v i s u a lc + + 的最大特色就是提供对面向对象技术的支持,它利用类把大部分 与用户界面设计有关的w i n d o w sa p i 函数封装起来,通过m f c( m i c r o s o f t f o u n d a t i o nc l a s s ) 类库的方式提供给开发人员使用,大大提高了程序代码的重用性。 ( 2 ) v i s u a lc + + 提供一个功能强大的应用程序生成向导a p p w i z a r d 。有了 a p p w i z a r d ,用户将不会为创建繁琐的初始化代码而苦恼,a p p w i z a r d 将帮助m f c 类 库的用户自动生成一个运行程序框架一个空的不能做任何事情的应用程序,而用 户只需要在该框架的适当部分添加扩充代码就可以得到一个满意的应用程序。 ( 3 ) v i s u a lc + + 的另一个强大工具就是c t a s s w i z a r d ,用户通过它能够方便而有效 地使用和管理m f c 类库。以前,继承和派生一个类是一件相当麻烦的事,而现在简 单了,只需要在c l a s s w i z a r d 中指定一些必要信息,v i s u a lc + + 将自动为用户生成类 的框架和代码。 ( 4 ) v i s u a lc + + 利用“所见即所得”的方式完成程序界面的设计,大大减轻了程序 员的劳动强度,提高了开发效率。 ( 5 ) v i s u a lc + 十功能强大,用途广泛,不仅可以编写普通的应用程序;还能很好地 进行系统软件、通信软件和底层的软件开发。 ( 6 ) c + + 语言是著名的c 语言面向对象的扩展,同c 语言具有完全兼容性,是目 前广泛应用的种面向对象的语言。c + + 提供了处理软件复杂性的方法,提供了不同 的抽象层次从对象到类、类库直至整个应用框架,另外c + + 通过编译的方式产生代 码,其执行速度远比b a s i c 、j a v a 等解释性程序快。 ( 7 ) 在本测量系统中,需要对基于i s a 总线的数据采集卡进行硬件端口操作,但 由于安全的原因,很多编写语言如j a v a 等不能进行硬件的端口访问等任务。而 m i c r o s o f tw i n d o w s 的c + + 具有很高的系统访问权和更大的灵活性。它在任何时候都 能调用w i n 3 2a p i 函数。 基于以上原因,采用w i n d o w s 操作系统下v i s u a lc + + 6 0 开发环境来开发软件。 3w i n d o w s 环境下的e c g 的实时显示 3 1 引言 在w i n d o w s 系统中,数据采集卡作为主机与被用对象间的转换接口,其数据采 集程序采样频率的稳定性与精确性对于整个测试系统的实时准确性起着至关重要的 作用。程序对硬件端口的直接操作直接影响到整个应用程序运行的稳定性,数据采集 的实时显示在整个系统中的地位尤其重要,直接关系到以后的数据处理。 3 2 数据采集设计 3 2 1 数据采集采样定时方法 在w i n d o w s 系统中常用的定时方法有软件定时和硬件中断定时。 1 软件定时 ( 1 ) w i n d o w $ 中提供的常规定时器1 4 j 在一些常见的软件开发平台上都提供了这个定时器- - t i m e r 控件,使用起来很 方便,通过对它的应用可在一定的时间间隔执行某些操作,实现一定精度的定时功能。 另外w i n d o w s 提供s e t t i m e r o 函数来建立定时器对象,并指定一个以毫秒为单位的时 间间隔,这个时间间隔被换算为所需要的p c 硬件中的时间中断次数。在p c 硬件中 有一个8 2 5 3 定时芯片,r o m b i o s 将它初始化为每隔5 5 m s 产生1 次编号为0 x 0 8 的硬件中断,w i n d o w s 使用设备驱动程序s y s t e m d r v 来处理这个中断。当 s y s t e m d r v 接收到1 次时钟中断时,它调用u s e r e x e 模块中的函数将应用程序 所创建的每个定时器对象中时间计数减1 ,当它被减为0 时,时间计数又被回置为初 始所设定的值。同时定时器对象向w i n d o w s 的消息队列发送w mt i m e r 的消息。 应用程序得到消息后执行相应的处理程序。 此方法局限有二: ( 1 ) 应用程序调用函数s e t t i m e r o 函数创建定时器对象,其指 定的定时周期被换算为需要的中断次数,而w i n d o w s 仍是每隔5 5 m s 才能收到1 次中 断,所以这种方式的定时器只能精确到5 5 m s 左右。( 2 ) w i n d o w s 仍是一个消息驱动的 多任务操作系统,其消息队列中总有大量消息在等侯处理。且w mt i m e r 是低优先 9 翌圭兰竺笙兰兰竺些:皇生堡兰望茎坌堑至丝箜竺銮 一。 级消息。所以w mt i m e r 消息不能被应用程序立即接收并处理,因而定时也是不精 确的;此外,w i n d o w s 的工作方式为抢占式,其内部的时间管理函数并不能实现等间 隔的时间控制。这对于很多要求精确定时的数采系统来说是远远不够的。因此,该方 法只能应用于定时要求不是很高的地方。 f 2 1 多媒体定时器 m i c r o s o f t 公司在w i n 3 2 a p l ( c 函数库m m s y s t e m h ) 中已经为用户提供了一组用于 高精度计时的多媒体定时器函数,使用得当时其计时精度可达l m s 。多媒体时钟与系 统定时器使用同计数器工作,但不同的是多媒体定时器不依赖于消息机制,而是建 立在中断基础上。其工作原理是通过函数t i m e b e g i n p e r i o d o 按精度要求设置定时器 t c o 的计数初值由函数t i m e s e t e v e n t 0 产生一个优先级为1 5 ( t i m e - - - c r i t i c a l ) 的独立 线程,在达到一定中断次数时,越过应用程序消息队列中的w m t i m e r 消息及其他 消息,直接调用回调函数处理事件,从而保证定时事件得到实时响应。 在w i n d o w s 的多媒体扩展库中,为了解决多媒体的编程问题,提供了一套定时 器操作函数 5 】。这些函数包括: f i m e g e t d e v c a p s 0 获取定时器服务能力参数; t i m e b e g i n p e r i o d 0 设置定时器的定时精度; t i m e s e t e v e n t 0 设置定时间隔并启动定时器: t i m e k i l l e v e n t 0 删除定时事件; t i m e e n d p e r i o d 0 释放定时器资源。 首先,利用函数t i m e g e t d e v c a p s 0 确定定时器服务所能提供的最大和最小事件周 期;接着要使用函数t i m e b e g i n p e r i o d 0 建立想要使用的最小计时精度;尔后用函数 t i m e s e t e v e n t 0 初始化并启动定时器事件,此时应明确指定定时器事件发生周期、使用 精度和回调函数名称( 回调函数是一个中断服务程序) :在释放包括回调函数的动态链 接库d l l 之前,使用t i m e k i l i e v e n t ( ) 函数来删除定时器事件;最后,调用函数 t i m e e n d p e r i o d o 来删除应用程序建立的最小定时器精度。 这种方法的定时精度较高,最高定时精度能够达到l m s ,可以满足般采集系统 软件定时的需要。但是在定时精度要求非常高的情况下,如低于l m s ,这种方法就无 能为力了。这时需要考虑新的解决方法。 ( 3 ) 高精度性能内核定时器 在一些较新的微机系统中,包含了一种分辨率极高的计数器可作高精度定时之 用。 w i n 3 2 a p i 提供了两个相关函数 6 1 : q u e r y p e r f o r r n a n c e f r q u e n c y 0 和 q u e r y p e r f o r r n a c e c o u n t e r o 。 b o o l q u e r y p e r f o n n a a c e f r q u e n c y ( l a r g e _ i n t e g e r + l p f r e q u e n c y ) 。该函数取 得高分辨率性能计数器( 如果存在) 的频率:i p f r e q u e n c y 表示变量指针,该变量值的每 0 翌:! :兰竺笙圣:= ! ! := = 塑望量兰皇篁茎兰茎叁堑茎垒兰些坚坠! = = ! = = = ! 一 秒的计数被函数设置为当前性能计数器的频率;如果已安装的硬件支持高分辨率性能 计数器,函数返回非零值,否则返回值是零。 b o o l q u e r y p e r f o r m a c e c o u n t e r ( l a r g e i n t e g e r + l p p e r f o r m a c e c o u n t ) 。该函数 取得高分辨率性能计数器( 如果存在) 的当前值( 以开机时刻为o ) :i p p e r f o r m a c e c o u n t 表示变量指针,该变量的值被函数设置为当前性能计数器值。如果已安装的硬件支持 高分辨率性能计数器,函数返回非零值,否则返回值是零。由前后两次调用 q u e r y p e r f o r m a n c e c o u n t 耐) 函数获得的两个计数值之差,可计算出两次调用之间的时 削间隔。 2 硬件中断定时 ( 1 ) 通用微机定时器8 2 5 3 1 9 1 w i n d o w s 系统中用8 2 5 3 芯片产生一个1 8 2 h z 的定时中断。因此可以通过对p c 中的8 2 5 3 芯片重新编程,提高中断的频率。然后设置新的中断服务程序使它能绕 过操作系统的控制直接执行高优先级的任务,从而满足精确定时的要求。 p c 机的8 2 5 3 芯片有3 个定时计数器。定时器o 用于系统定时,定时器l 用于 动态存储器的刷新,定时器2 用于产生1k h z 的方波送到扬声器显然我们只需对定 时器0 进行编程就可以达到改变系统定时的目的。 在系统初始化时,b i o s 就初始化定时器0 的输入频率为1 1 9 3 1 8 0 肘e 隆,经6 5 5 3 5 分频得到1 8 2 h z 频率得时钟,即每隔5 5 m s 产生1 次编号为0 x 0 8 ( i r q 0 ) 的硬件中 断。因而,修改定时器0 的预置计数器,即可获得较高频率的时钟。如果修改了定时 器0 的预置计数器值,即改变了时钟中断的中断频率,这样势必影响到w i n d o w s 本 身的时钟及其部分功能r 如鼠标的双击功能等) 。这样修改后的系统时钟中的时间单元 的计数频率加快,使得编程中使用t i m e 命令得不到准确的时间,保存文件所附的时 间也不准确。特别是由于计数加快,对于长时间工作的测试系统势必引起新目标置位, 导致日期也发生错误。所有这些对于欲记录时间的实时系统是很不利的。 ( 2 ) 通用微机实时钟c m o s 所谓实时钟是指不仅支持每天时间( h 、m i n 、s ) 的更新而且支持日期( 世纪、 年、月、日和星期几) 更新的一种永久性时钟电路。 实时钟芯片可接受三种基准频率:3 2 7 6 8 尼、1 0 4 8 5 7 6 朋胁、4 1 9 4 3 0 4 肘m , p c a t 初始化选定3 2 ,7 6 8 k h z 为基准频率。实时钟芯片在基准频率作用下驱动内部 时钟电路工作,同时可通过对内部寄存器a ( d 3 d o ) 编程,p c a t 机初始化选定2 2 分 频,即以1 0 2 4 k h z 的频率周期性地输出方波和周期中断请求信号。p c a t 机中利用 周期中断请求作为实时钟中断信号反相后直接连到8 2 5 9 a 一5 从片的第0 级 m q 8 。即实时钟中断频率为1 0 2 4 k h z ( 即周期为o 9 7 6 5 6 2 m s ) 。 实时钟有两个端口:地址端口为0 7 0 h ,数据端口为0 7 1 h 。对实时钟内部r a m 硕+ 学位论文智能化心电信号记录分析系统的研究 读写应该分为两步进行。读操作时先把需读出的r a m 单元位移地址送到地址端口, 再从数据端口读出该单元的内容。写操作时先把需写入的r a m 单元位移地址送到地 址端口,再把信息内容向数据端口写入该单元。 实时钟的状态寄存器a 能够产生定时时钟,状态寄存器a 的内容如表3 2 1 。 表3 2 1 状态寄存器a d 7d 6d 5d 4d 3d 2d 1d 0 【 u i pd v 2d v ld v 0r s 3r s 2r s lr s 0 j 时钟更新选择2 2 级分频器的输入基准频率选择2 2 级分频器输出信号频率 u i p = 1 表示实时钟更新信息,不能读写;u i p = 0 ,可以读写,初始化时u i p = 0 。 可以对状态寄存器重新写入控制字,产生实时钟控制电路的输入频率,也是周期中断 请求信号。 d v 2 d v 0 :选择2 2 级分频器的输入基准频率。若为0 1 0 时,输入基准频率为 3 2 7 6 8 k h z ; r s 3 r s 0 :选择2 2 级分频器的输出信号频率,p c a t 初始化时为0 1 1 0 ,则选 择输出基准频率为1 0 2 4 丘眈。 如果编程对状态寄存器a ( 地址为0 a h ) 重新写入控制字设计产生5 1 2 胁和2 5 6 h z 的输出频率如下: o u t p ( 0 x 7 0 ,0 x 0 a ) : o u t p ( 0 x 7 1 ,0 x 2 7 ) :5 1 2 h z o u t p ( 0 x 7 0 ,0 x 0 a ) ; _ o u t p ( 0 x 7 t ,0 x 2 8 ) :2 5 6 h z 有关中断方面是由实时钟的状态寄存器b 和状态寄存器c 来控制的。 状态寄存器b 的内容如表3 2 2 所示。 表3 , 2 2状态寄存器b d 7d 6d 5d 4 d 3d 2d 1d o l t ep i ea i eu i e s q w e d mm 2 4d s e 状态寄存器b 为中断控制寄存器,其中各位定义为: t e :计时允许位。 p i e :周期中断允许位。 a i e :报警中断允许位。 1 2 硕十学位论文 智能化心电信号记录分析系统的研究 u i e :训时更新结束中断允许位。 s q w e :方波输出允许位。 m 2 4 :m 2 4 = 0 ,小时以1 2 为模,m 2 4 = 1 ,小时以2 4 为模。 d s e :允许夏令时为1 ,否则为0 。 当需要允许中期中断时,程序为: 一o u t p ( o x 7 0 o x o b ) : 一o u t p ( o x 7 1 ,0 x 4 0 ) ; 状态寄存器c 的内容如表3 2 3 所示。 表3 2 3 状态寄存器c l d 7d 6d 5d 4d 3d 2d ld o li r q f p fa fu f l 中断请求周期中断报警中断计时更新保留 寄存器c 为中断标志寄存器,只读,高四位有意义。 i r q f :中断请求标志。当寄存器b 指出的三季中中断源中有任何一种提出中断请 求时该位置l ,同时i r q 8 中断请求信号变低电平。 p f ,a f , u f :分别对应中期中断、报警中断、更新结束中断。当有任何一种中断产 生时,该位置1 。 每当有中断产生后,必须读寄存器c ,清除中断标志位,下次中断才能产生。程 序为: _ o u t p ( 0 x 7 0 ,0 x 0 c ) : 一i n p ( 0 x 7 1 ) : 这样修改寄存器a ( d 3 一d o ) ,修改寄存器b 允许中断,就可对基准频率进行分频 得到所需频率的周期中断请求信号。对于采集卡上没有定时器的情况,采用微机本身 的实时钟定时当是较好的选择,然而c m o s 实时钟产生的时钟频率只能是2 ”胁的频 率信号,频率限制较大,有时无法满足要求的频率信号。 ( 3 ) 数据采集卡板载时钟电路定时 在实际应用中,也可在数据采集卡上设置专门的硬件时钟电路来获取可靠的时间 触发信号,令外界的定时触发作为一个硬件中断,c p u 响应来进行实时地数据采集 处理。这种方式既能够保证精确定时,又可随任务的不同而通过编程的方式将它们的 定时周期进行更改。 众所周知,在w i n d o w s 操作系统下编程是基于消息机制的,任何事情的执行都 硕士学位论文智能化心电信号记录分析系统的研究 是通过发送和接收消息来完成的。这样就带来了一个问题:一旦计算机的c p u 被某 个进程占用,或系统资源紧张时,发送在消息队列中的消息就暂时破挂起,得不到实 时处理。因此,不能简单地通过消息引发一个对定时要求严格的事件。另外,w i n d o w s 操作系统是多任务抢占式的运行机制,c p u 不可能总被某个进程所占用,当有高优 先级的中断发生时,c p u 会先处理中断程序,此时高精度的软件定时也会受影响, 造成定时不准,影响数据采集的准确性。因此在本文中采用硬件定时中断的方法定时, 避免软件定时的方法的不准确。 3 2 2 数据采集编程方法 本文的数据实时采集采用硬件中断定时,在中断响应期间基于i s a 卡的数采卡完 成1 3 个通道的a d 数据转换,并且实时显示数据。 i n t e 的8 0 x 8 6 系列芯片规定了o 、l 、2 和3 四个级别的执行代码可信度,w i n d o w s 9 x 中只用到了0 级和3 级。执行于第0 级的代码具有最高的可信度,可直接对硬件、中 断和文件系统进行物理访问,仅有操作系统及其部件被允许在第0 级内执行。而应用 程序的代码只在可信度最低的第3 级内执行,其访问硬件和接触自身进程空间以外的 内存的能力受到限制,另外0 级的运行速度要比3 级的运行速度快很多。 在w i n d o w s 9 x 下可以用两种方法实现中断数据采集,一种是在应用程序中直接 编写动态链接库d l l 程序,另一种是使用虚拟设备驱动程序( v x d ) 。两者的区别在于 v x d 是作为操作系统的组件运行于第0 级的,而d l l 程序却运行于第3 级。 ( 1 ) 动态链接库d l l 大多数的基于w i n d o w s9 x 环境下的实时控制系统都可采用了成熟的编程工具编 写动态链接库的方法来实现。但这些动态链接库都位于系统的r i n 9 3 层,其代码访问 硬件或接触自身进程空间以外的内存的能力都受到了限制。因此,在对时间的响应上, 如果通过消息来驱动位于r i n 9 3 层的中断服务函数,那是不可能实现快速响应的。 ( 2 ) 虚拟设备驱动程序( v x d ) 在w i n d o w s 9 x 中,应用程序要进行数据采集一般不能直接和硬件打交道,而是 在硬件虚拟化后,应用程序通过虚拟设备驱动程序控制硬件的运作。原因是: w i n d o w s 9 x 是多任务操作系统,某个硬件可能“同时”被多个例程所使用,若直接在 程序中采取插入汇编语言程序或其他措施的办法控制硬件运作,则可能导致混乱、产 生异常错误、造成冲突,甚至使系统崩溃;即使只有一个任务使用硬件,也会使其性 能下降、运行速度大为降低,因应用程序处在系统的r i n 9 3 层上,该层比处于r i n 9 0 层的设备驱动程序至少要慢3 倍。所以,用户如果需要实现硬件中断、d m a 、i 0 或 硕士学位论文智能化心电信号记录分析系统的研究 者绝对存储访问,便都使用虚拟设备驱动程序。w i n d o w s 9 x 利用虚拟设备驱动程序 ( v x d ) 实现应用程序和硬件的隔离,当程序访问设备时,操作系统通过特定的v x d 为 程序提供设备的虚拟实现。v x d 可以看作是具有r i n 9 0 特权级( 最高特权级) 的系统动 态链接库( d l l ) ,可以在操作系统启动后动态加入,并增加访问系统注册薄、w i n 3 2 应用程序接口等新特性。 由此可见,在w i n d o w s 下中断方式下的数据采集应选用对数据采集卡写相应的 虚拟设备驱动程序( v x d ) 在r i n 9 0 层完成数据的实时采集。 3 3 虚拟设备驱动程序( v x d ) 3 3 1v x d 介绍及v x d 开发工具 虚拟设备驱动程序v x d ( v i s u a ld e v i c ed r i v e r ) 是用来扩展w i n d o w s 操作系统功能 的一类程序,最初用于支持硬件设备的管理,它以d l l 形式链入w i n d o w s 操作系统 的核心层( r i n 9 0 层) ( 1 3 1 o v x d 是运行在虚拟机管理器( v m m ) 的监控之下,但是位于 最底层的操作系统部件,w m d o w s 通过v x d 将硬件“虚拟化”,v m m 的任务是将构 成系统的硬件虚拟化,分配应用程序执行的时间片并管理虚拟内存的内务,对用户而 言是不可见的。在w i n d o w s 平台下,当有硬件中断发生时,v x d 并不直接截获这些 中断,而是依赖于用虚拟可编程中断控制器( v p i c d ) 来处理硬件中断的。v p i c d 是重 要的系统级硬件设备管理程序,负责管理所有的硬件中断事件,实现了对物理可编程 中断控制器( p p i c ,如8 2 5 9 中断控制器) 的虚拟化。当中断发生时通过一个缺省机 制触发驻留在v m 中的中断处理函数,并且完全允许v x d 根据其需要而重载中断处 理函数。 在w i n d o w s 9 x 下开发v x d 的专f - j t 具有:目前有m i c r o s o f t 公司提供的对应不 同w i n d o w s 的d d k ,其中包含了开发v x d 所需的各种类库及汇编工具等。由于d d k 开发v x d 大多使用汇编语言,所以开发相对比较困难。另外是v i d e os o f t w a r e 提供 的v t o o l s d ,v t o o l s d 开发包提供了对v x d 编程的c ,c - 卜+ 类库支持,利用v t o o l s d 中 的q u i c k v x d 工具可快速生成v x d 的代码框架开发者可以在此基础上根据自己的 需要添加自己的代码,完成特定的程序功能。编写好的工程文件可用v i s u a lc + + 或 b o r l a n d c + + 编译器进行编译。v t o o l s d 还提供了一些范例程序,程序员可以安全、方 便地引用其中的部分代码。本系统用v t o o l s d 生成v x d 框架,以v i s u a lc + + 为工具, 编写了w i n d o w s 9 8 下的e c g 信号采集设备驱动程序。 硕士学位论文智能化心电信号记录分析系统的研究 3 3 2v x d 的基本结构 每个虚拟设备驱动程序都拥有一个虚拟机的名字、版本号、初始化过程以及虚拟 机控制过程( 程序入口) 。有些虚拟设备驱动程序还可以声明设备标志号和接口函数。 v x d 程序分为两部分:一是可废弃的初始化部分,即在v x d 被载入并初始化之后, 这部分代码及数据所占的内存被释放;另一部分是只在v x d 卸载之后才被废弃的固 定代码。虚拟设备驱动程序没有m a i n 或、】 n m a i n 函数,其运作由控制派发器:( c o n t r o l d i s p a 沁k r ) 一手操办。v x d 是用程序通过c r ea _ t c f i l e 函数进行加载的,v x d 被加载后, 控制派发器得到消息,令其执行初始化任务;通过c l o s e h a n d l e 函数进彳亍卸载,v x d 被卸载后,控制派发器得到消息,首先令其执行清除虚拟化硬件、恢复相应资源的原 始默认状态任务,然后整个v x d 被卸载 在某些特定的条件下会向v x d 发送消息 并释放内存。在实际硬件控制中,v m m 例如应用程序调用虚拟设备驱动程序时, 通过d e v i c e i o c o n t r o l 函数将需要进行何种操作的消息传递给虚拟设备驱动程序,而 虚拟设备驱动程序则由控制派发器( c o n 仃0 ld i s p a t c h e r ) 负责找到处理相应消息的控制 消息处理例程。 3 3 3 v x d 中断 在w i n d o w s9 x 中是通过虚拟可编程中断控制器( v p i c d ) 负责管理所有的硬件中 断事件的。v p i c d 是负责管理所有硬件中断事件的程序,它本身也是一种v x d , 能够提供缺省的中断处理函数或者允许其它v x d 重载中断处理函数。其中断处理过 程如图3 3 1 所示。 虚拟设备驰动程序v x d

温馨提示

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

评论

0/150

提交评论