(模式识别与智能系统专业论文)放射治疗中动态呼吸系统.pdf_第1页
(模式识别与智能系统专业论文)放射治疗中动态呼吸系统.pdf_第2页
(模式识别与智能系统专业论文)放射治疗中动态呼吸系统.pdf_第3页
(模式识别与智能系统专业论文)放射治疗中动态呼吸系统.pdf_第4页
(模式识别与智能系统专业论文)放射治疗中动态呼吸系统.pdf_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

电子科技大学硕士论文 中文摘要 本课题来源于在放射治疗中,因为人体的呼吸运动造成放射治疗时体位 的移动,给放射治疗带来不可定位的错误,为了减少对病人的伤害,而需要 对病人的呼吸做训练,得出病人的呼吸规律,配合放射治疗的定位。 在我国的放射治疗中,一些有条件的医院引进了先进的动态呼吸系统。 然而,由于我们国家的市场前景很大,我们有必要开发国内的动态呼吸系统。 在汲取国外一些先进的公司的产品如瑞典的e l e k t a 公司的a b c ( a c t i v e b r e a t h ec o n t r o ls y s t e m ) 产品的先进经验上,研发可以自主的动态呼吸系统, 为我国的放射治疗领域提供医治定位。 本课题的动态呼吸系统主要目的是解决:当体位固定后,因呼吸( 其它 如胃肠蠕动、血液流动等) 引起靶区在体内一定范围内运动,而导致的靶区 定位精度的不确定性。核心是建立一项利用一个呼吸传感器监测患者呼吸并 训练和指导患者对呼吸进行主动控制的呼吸选通放疗技术。 本课题实现了对病人的呼吸规律的时适绘制、显示,并且保存病人的吸 气量,闭气时间。同时,在闭气所指定的时间内,如果病人感到不舒适,可 以通过按扭自己打开闭气阀。 在设计实现过程中,采用了高档的1 6 位的三菱单片机,由于其功能的齐 全性和丰富性,给硬件的实现带来了很大的方便性。其次,p c 机采用了面向 对象的c + + b u i l d e r 开发工具,也给设计带来了方便。 p c 机为了实现从单片机传来的数据,采用了子线程来接收数据。 在动态呼吸系统的实现过程中,为了方便病人自己控制闭气阀,采用了 动态呼吸系统的最高中断级别,能够及时的打开闭气阀。 同时,在对病人的存档中,病人的文件档案包括病人的姓名,日期,闭 气时间,最大吸气量,监护医生的名字。采用文本文件的方式存取,采取列 式,既每行只对一个目录进行有序的存取。 关键字 面向对象、闭气量、闭气时间、a d 、串口通信、定时器 电子科技大学硕士论文 a b s tr a c t t h is s u b j e c t i sf r o mr o d i o - c u r e t h e r eiss o m e u n p r e d i c t e d e r r o r sb e c a u s em a nb r e a t h ec a u s eh i sb o d ym o v e m e n t f o r1i m i t e dh a r m o fb o d y ,d o c t o rn u s tt r a i np a t i e n c eb r e a t h e ,a n dg e tp a t ie n c eb r e a t h e 1 a w i no u r c o u n t r y s o m eh o s p i t a l sh a v e i m p o r t e da d v a n c e da b c ( a c t j v e b r e a t h ec o n t r o s y s t e m ) w es h o u dd e v e l o po u ra b cf o ro u rc o u n t r y b r o a d l ym a r k e t o nt h eb a s i so fe x p e r i e n c eo ff o r e i g np r o d u c t t h e s u b j e e to fa b co v e r c o m et h et a r g e t 7 sb o d em o v e m e n tw h e n p a t ie n c eb r e a t h e t h ed e s i g nm a i n lyu s et h eb r e a t h es e n s o rt oi n s p e c t p a t je n c eb r e a t h ea n dd i r e c tp a t i e n c eb r e a t h e t h es u b j e c to fa b cc a r ld r a wa n dd i s p l a yt i m e l yp a t ie n c eb r e a t h e r u l e jnt h ec o u r s et h ep a t i e n c ed o c u m e n t si ss a v e di n c l u d e so ft h e h o l do f i n s p i r a t i o na n dt h e t i m eo f i n s p i r a t i o n w h e nt h ep a t i e n t i n s p i r e ,h es h o u l do p e nt h ea i ro b s t r u c t i o n i fh ef e e lur l e a s e t h es u b j e c to fa b cu s em i t s u b i s hm c u 一1 6f o rm o r ef u n c t j o n sa n d p c d e v e l o p e db yc + + b u i l d p cr e c e i r e dd a t a f r o mn c ub ys u b t h r e a d p a t i e n c ed o c u m e n ti n c l u d e sp a t i e n c en a m ed a t ei n s p i r a t i o r h o 】e a n di n s p i r a t i o n t i m ea n dd o c t o rn a m e k e yw o r d s o b j e c t o r i e n t e d i n s p i r a t i o n h o l d s i n s p i r a t i o n t i m e a d s e r i a lc o m m u n i c a t i o n 。t i m e r u 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名:落堡翌 日期:) ,。,年月日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:盏兰二黧导师签名:逾翅 日期: 岛年;月乏日 电子科技大学硕士论文 1 1 动态呼吸系统概述 第1 章绪论 近十多年来,在我国多数具有一定规模的医院中已陆续建立了重症监护 病房或深切治疗室,对各类型呼吸衰竭的防治工作取碍了一定进展。但是有 的医院虽然引进了先进的通气器械,却不知道选择那种通气模式进行针对性 治疗:有的病人虽进行了人工通气维持,却因某些合并症( 如感染,肺损伤 等) 而死亡;有的病人虽成功地进行了人工通气,却因营养不良,呼吸肌无 力,心理恐惧等因数而无法脱机;对于某些特殊疾病,如急性呼吸窘迫综合 症,危重哮喘以及支气管胸膜瘘、单侧肺损伤等,应该怎样选择通气,缺乏 应有的知识与对策等。为了适应这种需要,我们国家也在大力发展这种有利 于人民的呼吸系统。 乐观地说,在放射治疗领域,新的治疗方法终将导致局部控制率的提高 而使病人受益。然而,我们必须慎重对待我们的期望适行度越高意味着冒治 疗失败的风险也越高。因此,放射治疗不仅要关注治疗计划的优先,而且要 确保治疗的精确实施。如果不能将治疗的误差降低至最小,那么不仅会削弱 治疗的结果而且会导致错误的和可悲的结论:即先进的治疗方法如不强调精 确是无效的。 目前,主动呼吸系统在国内前景广大,为了加快我们国内自身的放疗人 体控制,我们在汲取国外一些先迸的公司的产品如瑞典的e l e k t a 公司的 a b c 产品的先进经验上,研发可以自主的动态呼吸系统,为我国的放射治疗 领域提供医治定位。 1 2动态呼吸系统方案 1 2 1 方案总体目标 动态呼吸系统主要目的是解决:当体位固定后,因呼吸( 其它如胃肠蠕 动、血液流动等) 引起靶区在体内一定范围内运动,面导致的靶区定位精度 的不确定性。核心是建立一项利用一个呼吸传感器监测患者呼吸并训练和指 导患者对呼吸进行主动控制的呼吸选通放疗技术。 电子科技大学硕士论文 1 2 ,2 方案的设计说明 】2 2 1 主要技术要求: 1 指导并训练患者进行呼吸调节和控制,采样并保存患者呼吸规律资料。 2 在影像定位和治疗整个过程中呼吸规律要保持一致。 3 呼吸运动规律将作为制定治疗计划的依据。 4 需考虑射野边缘缩减量和剂量扩大因素。 1 2 2 2 关键设计分析: 1 治疗室患者反馈显示器( 显示设备的选择) 、病人控制开关组成友好人机 环境。 2 动态呼吸伺服模块和监控电脑处理采样参数并通过控制线与治疗室设备 连接。 3 病房呼吸训练和采样装置可用同一套装置。 4 c t 室定位和治疗可用同一套装置。 1 2 3 主要工作原理 、 1 首先对初定需应用本系统的患者进行呼吸规律及阔气时间采样,以确定 其是否可用本系统进行呼吸控制治疗。 2 对确定应用本系统的患者让其在病房内对照患者显示器显示的呼吸规律 进行呼吸调节及闭气训练,使其尽可能延长闭气时间并趋于稳定。 3 待训练的成果被认可后即可应用本系统进行影像( c t ,m r t 等) 定位, 并保存此时呼吸状态资料。 4 制定治疗计划。 5 采用本系统让患者将呼吸控制到影像定位一致时进行选通放疗。 1 2 4 系统的具体实现 1 2 4 1 硬件部分 1 a d 采集数据,经单片机处理后串行( r s 4 2 2 ) 转换传输给主机( r s 2 3 2 接口) ,编写串口接收数据并编程显示呼吸规律曲线,同时在治疗室显示。 2 病人的吸气量以及治疗需要确定一个吸气量的值,在病人经过简单的几 次呼吸训练调整之后,达到该值且处于稳定区域。病人根据屏幕指示开始闭 气,主机发出指令传输给单片机,关闭气阀,病人开始闭气,治疗开始;当 闭气时间结束的同时,单片机自动定时打开气阀,病人恢复正常呼吸。在定 位时,保存病人闭气量和闭气时间。 2 电子科技大学硕士论文 3 按钮控制,在病人感到不适应的时候,可以放弃主动呼吸控制。按钮发 出一个开关量信号,以中断方式传输给单片机,单片机立即响应发出气阀打 开的指令。 1 2 4 2 软件部分 1 主控界面:实时显示病人呼吸规律以及闭气曲线;对病人开始和停止动 态呼吸控制的命令;显示病人的简单档案;动态显示闭气时间;以及病人所 处的治疗状态;能够保存病人的呼吸规律资料等。 2 病人反馈显示器:显示呼吸循环并给予病人简单的指示。包括病人的闭 气时间的动态显示。 1 2 4 3 系统的设备实现 1 数据采集部分:传感器a w m 3 3 0 3 为气流质量传感器,供给电压8 - 1 5 v d c , 输出电压:卜5 v d c ;、引脚:p i n :v c c ( e x c i t a tj o nv d c8 - 1 5 ) p i n 2 :v o u t ( 1 - 5 v d c ) p i n 3 :g r o u n d : 2 系统采用1 6 位单片机控制。三菱1 6 位单片机有相同的内核形成7 7 0 0 族,品种极为丰富,已经开发的有工业用高级民品用7 7 0 0 系列、7 7 5 0 系列、 7 7 5 1 系列、录像机用7 7 7 0 系列和汽车用7 7 9 0 系列此外还有新推出的m 1 6 c 族 三菱1 6 位机主要特征是低工作电压、低功耗、高速、内藏多种电路、小 型封装等 7 7 0 0 族1 6 位单片机具有高速( 4 0 m h z 晶振) 、1 6 m 字节寻址空间、d m a 控 制器、d r a m 控制器及1 0 位a d 转换等新的i o 功能广泛应用子硬盘控制 器h d d 、c d r o m 、打印机、录像机、v c d 通信及汽车等领域其主要特征如下: 片内r o m :0 - 1 2 4 k 字节 片内r a m , 5 1 2 - 3 9 6 8 字节 寻址范围:1 6 m 字节 定时器:1 6 位:5 + 3 个看门狗定时器 a d 转换:4 - 8 通道 d a 转换:0 - 2 通道 串行i 0 :卜3 个 d m a c :( 0 - 4 ) x 2 4 位 d r a m c 中断:1 9 - 2 3 类( 7 级) i 0 端口:3 卜6 8 根 3 电子科技大学硕士论文 3 传输部分。 p c 机上都有r s 2 3 2 串行接口,利用t t l r s 2 3 2 转换就可以 和计算机的串口通信了,但是只有1 5 m 的传输距离;r s 4 2 2 方式的串e l 数据, 经过转换为差分电平后,抗干扰能力强了很多,可以有1 0 0 0 米的通讯距离。 常用的单片机上都有串行通信接口,使用这些串行通信接口和r s 4 2 2 接口驱 动芯片,通过r s 2 3 2 r s 4 4 2 转换器,t 单片机就可以和主机进行通信了。 4 电子科技大学硕士论文 第2 章动态呼吸系统软件设计 2 1 软件的面向对象( 0 0 ) 2 1 1 面向对象简述 针对日趋复杂的软件需求的挑战,软件业界发展出了面向对象( 0 0 ) 的软 件开发模式。目前作为针对“软件危机”的最佳对策,0 0 技术已经引起人 们的普遍关注。最初被多数人看作只是一种不切实际的方法和满足时好奇 心的研究,现在得到了人们近乎狂热的欢迎。许多编程语言都推出了支持面 向对象的新版本。大量的面向对象的开发方法被提出来。关于0 0 的会议、 学术研讨班和课程极受欢迎。无数专业的学术期刊都为这一话题开辟了专门 的版面。一些软件开发合同甚至也指明了必须使用0 0 的技术和语言。面肉 对象的软件开发对于9 0 年代,就向是结构化的软件开发对于7 0 年代那样让 人着迷,而且0 0 的发展势头还在日益加速。 2 1 2 面向对象编程 在面向对象编程中,程序被看作是相互协作的对象集合,每个对象都是 某个类的实例,所有的类构成个通过继承关系相联系的层次结构。面向对 象的语言常常具有以下特征:对象生成功能、消息传递机制、类和遗传机制。 这些概念当然可以并且也已经在其他编程语言中单独出现,但只有在面向对 象语言中,他们才共同出现,以一种独特的合作方式互相协作、互相补充。 过程化编程模式:参数输入一| 代码卜一结果输出 为实现某个功能,参数被传入某个处理过程,最后传回计算结果。 i 对象数据结构面向对象编程模式: 界面i 对象和 f 对象操作 o o p 中,功能是通过与对象的通讯获得的。对象可以被定义为一个封装了状 态和行为的实体:或者说是数据结构( 或属性) 和操作。状态实际上是为执 行行为而必须存于对象之中的数据、信息。对番的界面,也可称之为协议, 是一组对象能够响应的消息的集合。消息是对象通讯的方式,因而也是获得 功能的方式。对象受到发给他的消息后,或者执行一个内部操作( 有对成为 方法或过程) ,或者再去调用其他对象的操作。所有对象都是类的实例。类是 具有相同特点的对象的集合,或者也可以说。类是可用于产生对象的一个模 电子科技大学硕士论文 版。对象响应一个消息而调用的方法,由接受该消息的对象自己决定。类可 以以一种层次结构来安排。在这个层次结构中,予类可以从比他高的超类中 继承得到状态和方法。当对象接收到一个消息后,寻找相应的方法的过程将 在从该对象的类开始,并在该类所处的层次结构中展开,最后,直到找着该 方法,或者什么也没找到( 将会报错) 。在某些语言中,个给定的类可以从 不止一个超类中继承,称之为多继承。如果采用动态联编,继承就导致了多 态性。多态性描述的是如下现象:如果几个子类都重新定义了超类的某个函 数( 都用相同的函数名) ,当消息被发送到一个子类对象时,在执行时该消息 会由于子类确定的不同面被解释为不同的操作。方法也可以被包括在超类的 界面中被子类继承,而实际上并不去真正定义他。这样的超类也叫抽象类。 抽象类不能被实例化,因此也就只能被用于产生子类。 2 2 动态呼吸系统软件设计 在现代的一个具体的应用软件中,随着越来越多的相应的比较好的图形 软件的出现,人们越来越追求一个非常漂亮、美观、舒适与友好的操作界面, 在操作系统中,比如人们很熟悉的w i n d o w s 9 8 、w i n d o w s 2 0 0 0 、w i n d o w s n t , 在具体的应用开发工具的软件中,比如m i c r o s o f t 公司的v c + + 、b o r l a n d 公 司的d e l p h i 以及b u i l d e rc + + ;。所有这些开发工具,都是一个可以快速生成 客户所需求的界面。 在动态呼吸伺服系统中,我们将使用b u i l d e rc + 十。 2 2 1c + + b u i l d e r b o r l a n dc + + b u i l d e r ( 简称b c b ) 发展至今已是第五版,它是一种面向对象 的、可视化的快速应用程序开发环境( r a d ) 。所谓“可视化”,它是指开发 图形用户接口的方法,其方法就是在建立用户入接口( u s e ri n t e r f a c e ) 时, 不必编写程序来描述输入或输出接口的外观和配置,只要使用工其箱的工其, 在程序设计阶段便可实现,是属于一种“w h a ty o us e ei sw h a ty o ug e t ”直观 式的设计概念。使用c + + b u i l d e r , 可以用最少的手工编写的代码,刨建出高效 的3 2 位窗口应用程序。c + + b u i l d e r 提供了所有的程序开发时所需要的测试, 调试和应用配置工具,包括大规模可重用主件库、设计工具、应用程序和窗 体摸板以及编程向导。这些工具简化了应用程序原型设计并且缩短了开发时 间。 c + + b u i l d e r 以c 语言为基础,并加入了许多对象的概念以及 w i n d o w s g u i 有关的功能,它有以下特点: 6 电子科技大学硕士论文 2 2 1 1 基于对象( o b i e c t b a s e d ) 的程序设计 c + + b u i l d e r 执行的过程是以对象为主,当使用鼠标或键盘触发哪个对象就执 行该对象所设置的动作。不像传统c 程序设计是采用程序导向设计,也就是 说程序执行的流程在写程序的时候就设计好了;至于c + + b u i l d e r 程序的流程 是在执行时间由操作者来决定其流程。 2 2 1 2 输出入接口设计简单 通过k a d ( 快速应用程序开发环境) ,c + + b u i l d e r 提供组件摸板,来缩 短程序的开发时间,只要设置该组件的接口改变其属性目录,不用写程序便 能做出实用的输出入接口设计,至于传统c 语言就必须编写复杂的程序,一 般人是很难做到的。 2 2 1 3 提供最标准的c c + + 开发工具 c + + b u i l d e r 拥有最符合a n s i c c + + 标准的开发工具,而且1 0 0 与 a n s i i s o t e m p l a t e s 和a n s i ,i s os t l 兼容,所以它是最佳的学习和开发工 具。由于c + + b u i l d e r 提供高效率的3 2 b i t s a n s i i s oc 十+ 编译器以及易学易 用c + + 的可视化集成开发环境,可产生高效率的执行代码,是执行效率提高 1 0 倍以上。与v i s a u lc + + 兼容性并可直接编译其程序代码。 2 2 1 4 提供一流的开发环境 提供全新的a p pb r o w s e r 以及c o d ee x p l o r e r 简化程序源代码浏览管理, 增强c o d ec o m p l e t e 技术,编辑程序时会自动列出v c l 组件可用的属性与方 法以供选取,c o d e t e m p l a t e 让常用的代码以摸板的方式应用于程序使用中, c l a s se x p l o r e r 是以阶梯方式来浏览程序中用到的类别。集成开发环境采用 d o c k i n g ( 停驻) 方式,让多个窗口上下互相连在一起,可以停驻在桌面的四 周,可以自行组合喜欢的集成开发环境以及工具列的排放方式。 2 2 1 5 提供丰富的组件与最强劲的调试工具 v c l 摸板提供1 7 5 个可以重复使用的软件组件,以及数以干计免费的组 件供选用;除了可以随时通过s m a r t 工具来调试并可以通过网络提供远程调 试功能,譬如可针对m u l t i - t i e r s 分布式开发环境,通过调试工具让开发人员 通过网络直接对远程的应用程序服务器调试,让复杂的m u l t i t i e r s 应用系统 调试变得更容易。 2 2 2 动态呼吸系统的软件设计 由于系统的软件设计是使用的面向对象技术,顾而,我们将按照面向对 7 电子科技大学硕士论文 象的软件工程方法来完成设计。 2 2 2 1 软件设计流程图 系统中的软件设计中,有r s 2 3 2 串口传来的数据,通过串口通信程序来 接收,在软件的后台进行处理,前台要响应键盘、鼠标事件,与适时响应串 口的数据显示,以便指导对病人的呼吸。使用多线程编程技术,一个主线程 来监控键盘与鼠标事件,及时的响应,进行处理,发出命令;予线程来接收 r s 2 3 2 串口的数据以及发送主线程来的命令。在程序进入初始化阶段,把子 窗口定义为不可见;当要对文件进行操作的时候,把主窗口定义为可见,以 便对文件进行操作,在对文件操作完成后,在定义子窗口不可见。当医生开 始调入病人后,就发送病人的最大闭气时间,然后单击闭气阀的按扭,马上 发送数据到率口,有控制气阀的控制器执行命令。 当病人感到不舒适的时候,通过控制器的外部触发打开闲气阀的时候, p c 机会接道停止闭气的响应,而停止绘图。 其程序流程图如图2 。l 所示。 s 电子科技大学硕士论文 图2 - 1 动态砰吸系统软件流程图 9 电子科技大学硕士论文 2 2 2 2 动态呼吸系统软件的类 窗体是在程序设计时,用来规划输入出的地方,我们使用了两个v c l 组件的容器( c o n t a i n e r ) ,因此我们可以将组件摸板中的组件放置到窗体中, 并被称之为“控件”( c o n t r 0 1 ) 或“对象”( o b j e c t ) 。包括两个窗体,个主窗 体,一个是在进行文件的保存、打开时使用的子窗体。 主窗体的类名为t f o r m l ,其中包括了所有要使用的控件。主要有:主菜单、 标签、编辑、以及按扭等一些控件。其定义如下: c l a s st f o r m l :p u b l i ct f o r m 自定义的变量; _ _ p u b l i s h e d :i d e m a n a g e dc o m p o n e n t s + 主窗口中的控件的定义与说明 用来绘制病人曲线的控件; t g r o u p b o x + g r o u p b o x l ; 用于表示说明的l a b e l 控件; 用于打开文件的菜单: 文本控件来响应键盘输入; 消息响应函数; 自定义函数; ) 其中: t p a n e l * p a n e l l :用来绘画病人的呼吸曲线,t m e n u l t e m * o p e n l 与 t m e n u l t e m * n e w l 可以激活用于打开和保存文件的子窗口;9 个l a b e l 控件 是用来对各个单位的标注说明;还有一个全局的句柄h d c ,这是当绘制我们 的病人呼吸的响应曲线时使用的。下面说说一下几个函数: s e t d r a w ( b 0 0 1 ) :返回的是无值,参数是一个布尔变量,是一个对当前要绘制 图形时的设置。 c l e a r ( ) :返回的是无值,没有参数,是对病人的说明时,可以进行修改的函数。 o p e n c o m m 0 :返回的是无值,没有参数,是用来打开串口的函数。 子窗口的类名是t f o r m 2 ,主要用于打开和保存病人的文件档案。主要包括按 扭和文件控件。定义如下: c l a s st f o r m 2 :p u b l i ct f o r m 1 0 电子科技大学硕士论文 _ _ _ p u b l i s h e d : i d e m a n a g e dc o m p o n e n t s 文件过滤及文件路径和文件列表控件; 用来对程序的文件打开与保存的控件按扭 文件w i n d o w s 控件的消息响应函数; 文件保存与打开的消息响应函数; p r i v a t e :u s e rd e c l a r a t i o n s p u b l i c : u s e rd e c l a r a t i o n s f a s t c a l lt f o r m 2 ( t c o m p o n e n t o w n e 0 ; 自定义的变量; 自定义的函数: ) ; 其中: , t b u t t o n + b u t t o n l 与t b u t t o n + b u t t o n 2 控件用来触发保存、打开文件和取消消 息事件。 o p e n ( c h a r + p f i l e ) :返回无值,参数是个指向字符的指针,是个文件名与路径 的字符串,用来打开文件。 s a v e ( c h a r + p f i l e ) :返回无值,参数是个指向字符的指针,是个文件名与路径的 字符串,用来保存文件。 布尔变量m _ n o p e n 和m _ n n e w 是来对文件的打开与保存进行操作的。当 m n o p e n 为真的时候,表示对文件进行打开操作;当m n n e w 为真的时候, 表示对文件进行保存操作。当两者为假时,表示不对文件操作。 另一个类是为子线程写的,用来完成数据的读。其定义如下: c l a s sr s 2 3 2 :p u b l i ct t h r e a d f p r i v a t e : p r o t e c t e d : p 系统给定的函数+ v o i d f a s t c a l le x e c u t e ( ) ; p u b l i c : f a s t c a l lr s 2 3 2 ( b o o lc r e a t e s u s p e n d e d ) ; v o i df a s t c a l lr s 2 3 2 :r e a d d a t a 0 ;读串口数据。 ) ; 其中,类名构造函数r s 2 3 2 ( b o o lc r e a t e s u s p e n d e d ) 中的布尔参数为真时, 电子科技大学硕士论文 子线程不先工作:当布尔变量为假的时候,子线程可以直接工作。即是在初 始化线程的时候,我们要求是: p r s 2 3 2 = n e wr s 2 3 2 ( t r u e ) ; p r s 2 3 2 是我们定义的指向子线程类的一个类指针,表明我们暂时不让子线程 工作。当我们准备工作的初始化工作开始后,可以进行打开我们的予线程进 行读串口的数据,其调用函数 p r s 2 3 2 一 r e s u m e ( ) ; r e a d d a t a 0 是个返回无值的函数,用来读串口 在r s 2 3 2 类的e x c u t e 0 函数,其定义如下: v o i df a s t c a l lr s 2 3 2 :e x e c u t e ( ) f w h i l e ( ! t e r m i n a t e d ) r e a d d a t a ; p l a c et h r e a dc o d eh e r e 一 w h i l e ( ! t e r m i n a t e d ) 是个条件判断,在程序的初始化的时候,定义为真,在这 里,这个判断语句是个无穷循环。 2 2 2 3 消息事件的响应 在程序的设计中,主要涉及的事件是键盘的空格键,鼠标触动按扭,以 及文件的打开与保存。键盘的空格键按下第一次。a d 转换开始,同时发送 病人闭气时间,其响应函数如下: v o i df a s t c a l lt f o r m l :f o r m k e y d o w n ( t o b j e c t4 s e n d e r ,w o r d & k e y , t s h i f t s t a t es h i f t ) ,其程序流程图如图2 2 : 电子科技大学硕士论文 子线程工作 写串口 i 读串口 绘图 获取时间吸气量 图2 - 2 响应函数流程图 鼠标触动按扭i n h a l e 那么就打开气阀,再第二次触动按扭i n h a l e 时,气阀处 于自由活动状态,其响应函数如下: v o i df a s t c a l lt f o r m l :b u t t o n l c l i c k ( t o b j e c t * s e n d e r ) 发送数据到r e 2 3 2 。 当我们按下菜单按扭,就会出现我们喜欢看到的文件子菜单。打开文件操作 的子菜单如下: v o i df a s t c a l lt f o r m l :0 p e n l c l i c k ( t o b j e c t + s e n d e r ) f o r m 2 一 m _ n o p e n = t r u e ;小i 开文件为真。 f o r m 2 - v i s i b l e = t r u e ;使得子菜单窗口显示 电子科技大学硕士论文 ) 保存文件的操作子菜单响应函数如下: v o i d f a s t c a l lt f o r m l :n e w l c l i c k ( t o b j e c t s e n d e r ) f o r m 2 - mn n e w = t r u e ;保存文件为真。 f o r m 2 一 v i s i b l e = t r u e ;使得子菜单窗口显示。 ) 文件操作程序流程图如2 - 3 所示 图2 - 3 文件操作流程图 电子科拄大学硕士论文 2 2 2 4 接收数据 由于在程序的启动之后,马上可能对串口进行读、写,子线程的初始化 必须要放在主线程进行初始化,其初始化如下: v o i df a s t c a l lt f o r m l :f o r m a c t i v a t e ( t o b j e c t + s e n d e r ) o p e n c o m m 0 ; ) 其中: o p e n c o m m 0 中要完成串口的初始化工作。 其定义如下: 定义一个d c b 的数据结构; 打开一个串口文件; i f ( 未打开串口文件) 显示提示信息:“打开串口失败! ! ”; 返回; ) 取得串口的状态; 设置波特率; 设置字节位: 设置奇偶位; 设置停止位: ) 用函数h c o m m = c r e a t e f i l e ( ”c o m l , g e n e r i c _ r e a d l g e n e r i cw r i t e ,0 ,n u l l ,o p e ne x i s t i n g , 0 ,o ) ,用来打开串口,使用 了文件打开方式。部分参数说明如下: 其中,参数“c o m l ”表示动态呼吸系统使用“c o m l ”串口:参数 g e n e r i cr e a dg e n e r i cw r i t e 表示可对串口进行读写操作;第三个参 数表示是共享串口,使用0 表示独占,使用l 表示共享;第四个参数表示是 否被子线程所继承,使用0 或n u l l ,表示不可继承。 使用g e t c o m m s t a t e ( h c o m m ,& d e b ) 的函数的两个参数为:第个参数为全 局变量,为整个程序提供一个h a n d l e 旬柄,而d c b 为h d c 数据结构,整 个函数就是取得程序所需要的c o m i 的状态,也就是是否为其他的程序所占 电子科技大学硕士论文 用,如果占用的话,将提示用户。 在取得个串口的状态后,还要对c o m l 进行设置,可以是如下的a p i 函数为: s e t c o m m s t a t e ( h c o m m ,& d c b ) 其中,h c o m m 为以文件方式打开c o m l 返回的全局变量,两第二个参数 的是一个数据结构。程序在设置串口前,将要对其中的成员进行附值,主要 有上面提到的: 波特率设置为9 6 0 0 ; 字节为8 b i t s ; 奇偶为设置为无: 停止位为l ; 在完成了上面的设置后,就可以调用r t s u - 一( ) 函数启动了线程束读串口 数据。 同时,在初始化的时候,使予线程处于睡眠状态,因为是在有前台的键盘、 鼠标的动作后,才能进行对串口的读、写。使用如下方式: p r s 2 3 2 = 1 3 e wr s 2 3 2 ( t r u e ) 当使用布尔变量为t r u e 时,就使用如下函数可以唤醒: p r s 2 3 2 r e s u m e ( ) ; 对串口的读数据的程序流程如图2 - 4 所示。 图2 4 串口读数据沆程图 j 6 电子科技大学硕士论文 当病人因为不舒适,发送按动打开按扭,就是程序判断是否还要继续绘 制显示病人的呼吸曲线;如果串口接收来的数据是病人发送来的要求暂停呼 吸指导训练,那么串口读数据结束,同时停止绘图。如果病人进行正常的呼 吸训练或者正常的呼吸放射治疗过程的闭气状态,继续接收串口的来的数据, 并且适时地绘制显示。 2 2 2 5 数据处理 其发送过来的数据为一个字节,强制转换为整型,其值范围为 3 1 h f f f f h ,由于气流质量传感器a w m 3 3 0 3 v 的输出电压是1 5 v d c 。故 此,我们的数据处理为: s t e p = ( i n t ) ( ( ( f l o a t ) ( ( i n t ) 【接收数据】+ 5 ) ) ,2 5 5 ) + 1 0 0 ) 由于我们的p c 机的显示器分辨率都大于5 0 0 ,可以使用s t e p 的实际值绘制 呼吸曲线。 2 2 2 6 图形的绘制 利用s t e p 作为我们绘图的纵坐标,a d 转换的时钟频率可以绘制呼吸曲线。 其曲线图如图2 5 所示。 图2 - 5 呼吸系统呼吸益线 电子科技丈学丽士论文 由于气流质量传感器a w m 3 3 0 3 v 的输出l 5 v d c ,绘制曲线的时候进行 了坐标移动,定义3 v 为0 ;起使点表示吸气已经开始;最后一段的波动,是 让吸气足够,然后闭气一段时间。本该显示在0 v 附近处但是为了医生便于 观测,让其显示在顶端,作出如下判断: i f ( a b s ( 当前值先前值) 1 ) 闭气开始 以先前值为准绘制; ) 波动是由子在闭气的时候,还有少量的呼吸气体。 横轴是以取得系统的时间来绘制。 2 2 2 7 文件档案 病人的文件档案包括病人的姓名,日期,闭气时间,最大吸气量、监护 医生的名字。采用文本文件的方式存取,采取列式,既每行只对一个目录进 行有序的存取,格式如下: 姓名: 日期: 闭气时间: 最大吸气量: 监护医生: 采用这种格式能够很好的对病人的档案进行存、取,同时方便医生查看病人 档案。 在对文件的存、取的方式是使用c + + l u i l d e r 的类t s t t i n g l i s t 类来实现, 很方便的进行了存、取。 电子科技大学硕士论文 第3 章动态呼吸系统硬件设计 3 1 动态呼吸系统的整体组成图 动态呼吸系统的整体组成图如3 1 所示。 图3 - 1硬件系统整体组成图 单片机选用的是三菱公司的m 3 0 6 2 4 f g f p 。传感嚣是h o n e y w e l l 公司的 a w m 3 3 0 3 v 气流质量传感器。a d 转换器为m 3 0 6 2 4 f g f p 内置。 3 2 三菱公司的m 3 0 6 2 4 f g f p 特点 片机( m c u ) 在国民经济的各个部门和人们的日常生活中得到越来越多 的应用。预计全世界各种单片机的总数约为6 0 亿,单片机的销售额增加到了 约1 4 0 亿美元。随着以多媒体电脑、国际互连网、移动电话、数字影音 1 9 电子科技大学硕士论文 产品时代的来临,对单片机产品的功能和性能不断提出更多、更高的要求, 发展之迅猛可谓日新月异。三菱单片机品种丰富,根据不同的应用领域,从 不同的着眼点出发,可组合不同的标准功能,从而构成了适用广泛、体系庞 大的三菱单片机系列。单片机主要有7 2 0 系列和4 5 0 0 系列。单片机有着同一 种内核,形成7 4 0 族。已由最初的7 4 0 系列拓展出3 8 0 0 系列、7 6 0 0 系列等。 三菱高档单片机由1 6 位机和3 2 位机组成。1 6 位机有两种内核,分别构成7 7 0 0 及m 1 6 c 两大族。7 7 0 0 族中主要有7 7 0 0 系列、7 7 5 i 系列和7 9 0 0 系列。m 1 6 c 是新开发的1 6 位单片机,他采用新的体系结构其第一个产品是m 1 6 c 6 0 系 列,现已开发新的m 1 6 c 2 0 系列和m 1 6 c 8 0 系列。 3 2 1m 3 0 6 2 4 f g f p 是1 6 位单片机 近年来为满足高速数字处理的需要,1 6 位单片机的;应用得到了迅速发 展。预计到达现在,其市场份额将和8 位机不相上下。三菱1 6 位单片机由 m 1 6 c 族单片机和7 7 0 0 族单片机两部分组成。m 3 0 6 2 4 f g f p 是m 1 6 c 族。 三菱m 1 6 c 族单片机是1 9 9 6 年才推出的一种新型1 6 位单片机。m 1 6 c 族 单片机基于崭新的设计理念,为客户提供完整的系统支持。m 1 6 c 族单片机 融合了基于寄存器和基于存储器型两种结构的优点,从而能够实现类似r i s c 的高速处理性能。m 1 6 c 单片机具有超低功耗、极强的抗干扰能力和很高的 c 语言编程效率等特点,片内集成了1 0 位a d 转换器、d m a 控制器、异步 通信道、定时器等丰富的周边功能电路模块,适合于非常广阔的应用领域, 是用户设计产品的完美选择。 3 2 2m 3 0 6 2 4 f g f p 单片机的性能特点 3 2 2 1 处理速度高 m 3 0 6 2 4 f g f p 单片机有内置乘法器,进行1 6 位x 1 6 位的乘法只需5 个 机器周期。具有很多功能强大的指令,其指令周期短,7 1 的操作指令在三 个周期内完成( 对1 6 m h z 震荡频率为o 2 u s ) ,因此其处理速度高。 3 2 2 2 编程效率高 由于m 3 0 6 2 4 f g f p 单片机既有一般的指令格式,又有紧凑的指令格式, 无论是面向计算类应用,还是面向控制类应用,程序都可以做到简洁紧凑。 使用c 语言编程时,其目标程序的效率很高,达到同领域内最高水准。 功能强大的指令 高速的乘法运算、增强的存储器与存储器之间的操作、增强的按位处理 功能、高效的对4 位和8 位的操作、高速的1 6 位处理能力,使处理速度大大 电子科技大学硕士论文 加快。 3 2 2 3 地址空间大 m 3 0 6 2 4 f g f p 提供1 m b 的无6 4 k b 边界限制的线性存储空间。 3 2 2 4 内置多种功能电路模块 考虑到多样化的应用,片内具有多种接口功能。内置大容量存储器、 d m a c 电路、多功能的串行i 0 、c r c 校验电路等。 3 2 2 5 低工作电压,低功耗 在3 v 电压,7 m h z 工作频率,1 等待方式工作时,功耗为18 m v 。 3 2 2 6 抗外部干扰能力强 采取了多种抗噪措施,在必要的地方加入抗噪滤波器,对所有的引脚作 适当的安排。如在时钟输入端( x i n ) 输出端( x o u t ) 引脚上的噪声常会引发 误操作,就将这两个端口用v e t 、v s s 和r e s e t 引脚包围起来。这些引脚的 电平常保持恒定,可作为噪声的屏障。x i n 和x o u t 被v s s 端分开,使震荡 电路部分印制板的布线变得容易。这些措施使抗噪声干扰能力提高到原来的 2 - 4 倍。可以使他用在电磁工作环境恶劣的地方,如汽车等。 3 2 2 7 程序纠正能力强 m 3 0 6 2 4 f g f p 单片机可使用地址匹配中断来纠正程序的缺损。该两地址 用外部e e p r o m 中的内容来代替。这样,无需因出错重新制作掩模,从而降 低了救错所花费的成本,并缩短了交付产品的时阎。 总之,m

温馨提示

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

评论

0/150

提交评论