(计算机应用技术专业论文)一个可编程虚拟实验的平台研究.pdf_第1页
(计算机应用技术专业论文)一个可编程虚拟实验的平台研究.pdf_第2页
(计算机应用技术专业论文)一个可编程虚拟实验的平台研究.pdf_第3页
(计算机应用技术专业论文)一个可编程虚拟实验的平台研究.pdf_第4页
(计算机应用技术专业论文)一个可编程虚拟实验的平台研究.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(计算机应用技术专业论文)一个可编程虚拟实验的平台研究.pdf.pdf 免费下载

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

文档简介

华中科技大学硕士学位论文 摘要 远程教育的快速发展,促进了虚拟实验环境的研究,特别是接口类可编程虚拟 实验平台的研究。目前对可编程虚拟实验的研究比较滞后,不能满足远程教育日益 发展的需求。在国家创新基金资助项目( 0 1 c 2 6 2 2 4 2 1 0 5 5 5 ) 的资助下,在v p d 模型的 基础上,对可编程虚拟实验进行了更加深入的研究。 可编程实验的实质是实验程序通过i 0 指令对外部设备进行控帝如所以构造可 编程虚拟实验平台的核心也就是实验程序根据i o 指令控制虚拟可编程设备的动作, 因而提出了由应用程序开发环境及虚拟机、虚拟设备驱动程序、虚拟可编程设备以 及w d m 设备驱动程序四个部分组成的通用v p e p ( v i r t u a lp r o g r a m m a b l ee x p e r i m e n tp l a t f o r m ) 模型。在v p e p 模型中,通过虚拟设备驱动程序截获应用程序在d o s 虚拟机环境下执 行产生的i o 指令,并利用以同步事件和共享存储技术为基础的同步报文交换机制 实现虚拟设备驱动程序与虚拟可编程设备之间的实时双向通信,从而实现了应用程 序虚拟机和虚拟可编程设备之间的实时双向通信,应用程序就可以控制可编程虚拟 设备,达到虚拟实验的目的。通过在虚拟设备驱动程序和虚拟可编程设备之间引入 了中断报文和中断虚拟机制,解决了虚拟设备所需的中断资源问题,进一步满足了 中断方式下可编程虚拟实验的需要。 实践证明,v p e p 模型以及该模型中引入的实时同步报文交换机制,很好地解决 了已有v p d 模型中系统资源占用多、通讯实时性差以及实验效果不理想等问题,具有 通用性强,稳定性好,中断实验容易、灵活,实验效果逼真等优点,可以更好地满 足可编程虚拟实验的需要。在v p e p 模型的基础上,提出了基于状态变迁的虚拟实验 指导教师的设计方案。 用v p e p 模型在w i n 2 k 系统下所开发的系统一“接口技术虚拟实验平台”,说明 了v p e p 模型的通用性和可靠性。 关键词:虚拟实验,可编程,虚拟设备驱动程序,同步事件,报文,虚拟中断 _一一 1 华中科技大学硕士学位论文 a b s t ra c t a l o n g w i t ht h el o n g d i s t a n c ee d u c a t i o n s r a p i dd e v e l o p m e n t ,t h es t u d i e sa b o u t v i r t u a l e x p e r i m e n te n v i r o n m e n ta r ea c c e l e r a t e d ,e s p e c i a l l yr e s e a r c h e so f v i r t u a lp r o g r a m m a b l e e x p e r i m e n tp l a t f o r ml i k ec o m p u t e ri n t e r f a c et e c h n o l o g y b e c a u s eo f t h el a go f t h e s t u d i e s a b o u tv i r t u a lp r o g r a m m a b l e e x p e r i m e n tp l a t f o r m ,t o d a yi tc a l ln o tf u l f i l lt h ee x p e c t a t i o n s o ft h ei n c r e a s i n g l yl o n g d i s t a n c ee d u c a t i o n d e v e l o p m e n t b a s e do n t h ev p d m o d e l ,u n d e r t h es u p p o r to fn a t i o n a li n n o v a t i v ef u n dp r o j e c t ( 0 1 c 2 6 2 2 4 2 1 0 5 5 5 ) ,w ed e e p l yc o n t i n u e t h er e s e a r c ho f v i r t u a lp r 0 留煳d b l e e x p e r i m e n t 。 t h ee s s e n t i a l so ft h ep r o g r a m m a b l ee x p e r i m e n ta r et h a tt h ee x p e r i m e n tp r o g r a m s c o n t r o lt h ep r o g r a m m a b l ep e r i p h e r a ld e v i c eu s i n gi 0 i n s t r u c t i o n s , s o i st h ec o r eo f d e s i g n i n gav i r t u a lp r o g r a m m a b l ee x p e r i m e n tp l a t f o r m w ep u tf o r w a r dag e n e r a lv p e p ( v i r t u a lp r o g r a m m a b l ee x p e r i m e n tp l a t f o r m ) m o d e l ,w h i c hc o n s i s t so fi d ea n dd v m ( d o sv i r t u a lm a c h i n e ) ,v i r t u a ld e v i c ed r i v e r s ,v i r t u a lp r o g r a m m a b l ed e v i c e sa n dd e v i c e d r i v e r s i nt h ev p e p m o d e l ,t h ev i r t u a ld e v i c ed r i v e r si n t e r c e p tt h ei oi n s t r u c t i o n sw h e n e x p e r i m e n t sp r o g r a m s r u nu n d e rd o s v m ,a n dc o m m u n i c a t e w i t hv i r t u a l p r o g r a n n n a b i e d e v i c e st h r o u g has y n c h r o n i z a t i o nm e s s a g e - s w i t c hm e c h a n i s mb a s e do ns y n c h r o n i z a t i o n e v e n ta n ds h a r a b l em e m o r y s ot h et w o d i r e c t i o nr e a l - t i m ec o m m u n i c a t i o nb e t w e e nd v m a n dv i r t u a lp r o g r a m m a b l ed e v i c ei sr e a l i z e d d v mc a nc o n t r o lv i r t u a ld e v i c e ,t h i sa l m o s t s a t i s f i e st h ev i r t u a lp r o g r a m m a b l ee x p e r i m e n t t h r o u g hi n t r o d u c i n g i n t e r r u p tm e s s a g ea n d v i a u a li n t e r r u p t t h ev p e pm o d e ls o l v e st h ep r o b l e mt h a tt h ev i r t u a lp r o g r a m m a b l e d e v i c e sh a v en o t 也e i ri n t e r r u p tr e s o u r c e s c o m m e n d a b l ys u f f i c e st h er e q u i r e m e n t so f v i r t u a le x p e r i m e n tw i t h i n t e r r u p ts u p p o r t t h ev p e pm o d e lw i t hs y n c h r o n i z a t i o nm e s s a g e s w i t c hm e c h a n i s mr e s o l v e st h e p r o b l e m so f v p d :t o om a n ys y s t e mr e s o u r c e so c c u p a t i o n ,n o nr e a l t i m ec o m m u n i c a t i o n a n dn o n i d e a l e x p e r i m e n t e f f e c te t c t h ev p e pm o d e lh a sm a n ye x c e l l e n c e s :g o o d g e n e r a l i t ya n dr e l i a b i l i t y , e f f o r t l e s sa n df l e x i b l ei n t e r r u p te x p e r i m e n t ,v i v i de x p e r i m e n t e t c ,s ot h ev i r t u a lp r o g r a m m a b l ee x p e r i m e n ti sm o r es a t i s f i e d f i n a l l y , b a s e do nv p e p m o d e l ,a ne l e m e n t a r yd e s i g ns c h e m ea b o u tv i r t u a le x p e r i m e n tt u t o ro nt h eb a s eo fp o r t s t a t u sl i s ta g g r e g a t ec h a n g ei sp r e s e n t , l i 华中科技大学硕士学位论文 t h ev i r t u a l e x p e r i m e n tp l a t f o r mo fi n t e r f a c et e c h n o l o g yi s r e a l i z e db yt h ev p e p m o d e l i tp r o v e dt h a tt h ev p e pm o d e li sg e n e r a la n dr e l i a b l e k e yw o r d a :v u m a le x p e r i m e n t ,p r o g r a m m a b l e ,v i r t u a l d e v i c ed r i v e r ,s y n c h r o n i z a t i o n e v e n t ,m e s s a g e ,v i r t u a li n t e n u p t l i l 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:阜彩 日期:沙卢年r 月写日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定。即:学校 有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被奋阅 和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于 不保密凹。 ( 请在以上方框内打“4 ”) 学位论文作者签名: 事移 指导教师签名 日期:囊蝴仁年f 月乡一日日期:伽牛年( 月扣日 华中科技大学硕士学位论文 1绪论 近年来,虚拟实验得到了快速的发展,但大都集中在物理、化学等基础学科领域, 以计算机接口技术、微机原理为代表的可编程类虚拟实验由于受技术的限制发展则 相对落后,因此,十分有必要对可编程类虚拟实验进行深入的研究。 1 1 课题背景 实验是所学知识的验证,更是技术训练、设计能力和创新精神培养的重要途径。 实验教学是工程类和技术类高等教学计划中的重要组成部分,是实践教学中一个必 不可少的重要环节f l 】,对学习者深入理解和巩固掌握课本知识有着举足轻重的作用。 教学过程中如果不能辅助以实验教学,学习过程中缺少了动手的环节,教学的质量 和效果都将大打折扣【2 瑚。传统实验教学目前的一般状况是:实验教学是学生通过组 建实验平台一动手实验一观察实验现象一分析实验结果等过程,辅助课堂课本理论 学习实现理论和实践的结合,从而可以更好地理解所学知识,提高教学效果和学习 质量。传统实验教学模式存在着一些问题与不足【4 _ ”:( 1 ) 设备一次性投资大,维护工 作艰巨;( 2 ) 实验教学方法机械单一;( 3 ) 实验设备易老化、陈旧;( 4 ) 实验系统缺乏足 够的灵活性;( 5 ) 人机交互能力差,可视化程度低。微机系统的广泛应用和飞速发展, 可以充分利用微机强大的功能和丰富的软硬件资源使原来需要用硬件实现的传统实 验软件化或虚拟化【8 1 “,从而最大限度地降低系统的成本,增强系统的功能和灵活性。 另一方面,近年来,由于我国远程教育的大力发展,教育部已经批准多所重点高校开 办网络远程教育,再加上原有的成人教育也在逐渐往互联网上迁移,网上学校已如 雨后春笋般迅速涌现起来。远程教育的兴起和发展,对于我国教育的普及和建立终 生学习体系,实现教育的可持续发展,都具有重大的现实意义。传统远程实验教学, 虽然经历了多年的发展技术上已经比较成熟,但还仅仅局限于物理、化学等自然科 学科目,大都是一些演示型的实验 1 1 - 1 4 j 。这种演示型实验对于学习者了解定理、熟 悉实验流程有一定的帮助,但对于像计算机接口这种需要学习者主动参与、动手编 程、通过程序运行控制设备工作察看运行效果来检验程序正确性的实验来说,就无 能为力,因此接口技术虚拟实验还停留在计算机课件的水平。由于谋件无法反映可 编程设备运作状态与实验程序执行指令之间的相互关系,所以达不到理想的实验教 学效果。 为了弥补传统实验的不足和解决远程实验教学中可编程虚拟实验这一课题,华中 华中科技大学硕士学位论文 科技大学对可编程实验进行了初步研究,提出了v p d 模型【l ”,初步解决了可编程类 虚拟实验的问题,但是在v p d 模型中,还存在者模型技术落后、系统资源占用多、 实验效果不理想、中断实验较困难等不足;而且,在个人计算机操作系统领域, w i n d o w s9 x 正逐渐退出历史舞台,以w i n d o wn t 核心为基础的w i n d o w s2 0 0 0 、 w i n d o w s x p 和w i n d o w s2 0 0 3 操作系统正逐步取代w i n d o w s9 x 成为主流系统配置。由 于固有缺陷和赖以依靠的w i n d o w s 9 x 即将退出市场,v p d 模型应用前景不窖乐观。 因此,如何根据远程教育自身规律和计算机技术发展特点,把发展远程实验教学 和避免传统实验教学不足结合起来,弥补v p d 模型的不足,建立一个可靠适用的新 型可编程虚拟实验平台,是新的课题。由此在国家创新基金资助项目 ( 0 1 c 2 6 2 2 4 2 1 0 5 5 5 ) 的资助下,开展了对构造和设计可编程虚拟实验平台的进一步研 究。 1 2 国内外研究现状及其实现技术 虚拟实验,就是按照实验教学的基本要求,建立虚拟的工程实验环境,运用各 种虚拟实验仪器、仪表或设备,对建立起来的实验模型进行实时仿真,构成新型的 教学实验【临1 8 j 。一些基础性实验,如物理实验、机械基础实验、电子技术实验和自 动控制原理与系统实验等,都可以采用虚拟的方法进行实验【1 9 2 。虚拟实验的开展, 符合教学现代化的要求,有利于受训人员素质的提高。同时,虚拟实验把设计环境 和验证环境结合起来,扩展了设计环境。虚拟实验与应用一般的计算机课件进行辅 助教学有着实质性的区别,虚拟实验应该为学员提供一个系统的完整的实验条件和 环境2 厶2 引。虚拟实验符合以下五个基本要点: 1 按照实验教学要求,提供非常逼真的工程实验环境。 2 在逼真的工程实验环境下,按有关实验要求,能对所要用到的仪器和相关的 器材任意使用、操作。 3 依据具体实验内容中的理论模型,建立与教学内容相适应的实验教学模型, 采用计算机实时仿真技术,实施整个过程的仿真。 4 能对实验中产生的各种数据进行实时的记录、分析,然后自动产生实验报告。 5 具有围绕实验教学所需要的其它辅助功能,如实验丑的、要求、实验内容即 工作原理、原理电路等的讲解,以及实验仪器、设备使用的在线帮助等。 由于虚拟实验能够节省大量的硬件成本,引发教学模式的变革,调动学生的想 象力,培养学生的动手能力,实现程序静态性与程序执行效果动态性的结合,所以 华中科技大学硕士学位论文 国内外已经有很多单位进行了虚拟实验的研究【2 4 - 2 6 l ,特别是物理、化学等基础课程 的虚拟实验研究已经取得了重大进展,各种商用的虚拟实验产品也层出不穷。但整 体看来,国内外的可编程虚拟实验研究还处于萌芽阶段,基本停留在演示性实验阶 段。虽然一些学校也在接口技术、微机原理等这样的可编程虚拟实验领域进行研究。 但大都还是一些演示型实验或播放型虚拟实验。总结他们所使用的技术,可以大致 分为以下几类; 1 2 1 使用a u t h o rw a r e 进行开发 a u t h o r w a r e 是美国著名多媒体开发工具商m a c r o m e d i a 公司的代表产品,它是一 种面向对象的、以图形流程线逻辑编辑为主导、以函数变量为辅助、以动态连接库 ( d l l ) 为扩展机制的“无需编程”的多媒体工具软件。它凭借先进、丰富的可视媒体 制作解决方案,不仅能将图形、声音、动画、文字和电影等元素融合到多媒体程序 中,还可以连接数据库,具有内建的学习数据跟踪、进度检查、结果统计等功能。 a u t h o r w a r e 的特点是简单易用,使用者可以在短时期内上手使用,非专业人员 也能轻松实现自己制作多媒体课件。目前许多高校和中学教师都采用a u t l l o r w a r e 技术来开发课件进行信息化教学,但是a u t h o rw a r e 只能实现演示型或简单交互性课 件的设计,适合编写物理、化学等学科的一些验证和演示实验,对计算机接口技术 这样通过程序控制的可编程虚拟实验则不能胜任。 1 2 2 使用j a v a 进行开发 j a v a 语言是最一种网上通用语言,使用它开发的程序具有两种层次上的可移植 性,源代码级可移植性和二进制级可移植性。j v m ( j a v a v i r t u a lm a c h i n e ) 的存在使 得这种可移植性成为了可能1 2 弭。另外j ,a 语言的下标检查机制和自动内存管理机 制也为其增加了较强的稳定性和安全性,这一点对于构建网上虚拟实验室系统来说 也是非常关键的【2 ”9 1 。j a v a 语言的长处在于网上应用,利用j a v a 技术设计出的虚 拟实验由于缺少真实性,只是局限于构造物理、化学等基础学科的网上虚拟实验环 境【”】,还不能构造计算机接口技术这样的可编程类虚拟实验环境。目前利用这种技 术开发出来的系统有:普渡大学的交互式硬件实验系统、北京大学的3 w n v l a b 系 统等。 1 2 3 使用a c t i v e x 控件进行开发 a c t i v e x 技术允许不同软件开发的组件在网络上可以互相进行操作 3 1 】。a c t i v e x 使用了微软的组件对象技术使得本地的组件可以和网络上的组件进行通信。使用 华中科技大学硕士学位论文 a c t i v e x 进行开发的另一个好处在于它的代码复用性,也就是说在虚拟实验室的开发 过程中,一个实验仪器可以在多个实验环境中重复使用,这一点对于持续开发过程 尤为重要【3 2 l 。这种技术使得一个大的工程项目可以划分成小块的组件,也就相当于 把复杂的工程简单为一个个组成部分,完成了每个组成部分之后集成起来就可以得 到最终的项目。可以开发a c t i v e x 组件的环境有很多,其中开发效率最高和最易使 用的是v i s u a lb a s i c 。利用a c t i v e x 技术开发出来的系统有大连理工大学的气相色谱 仪,这个系统实现了分析仪器和化学滴定分析实验平台,在国内一些高校内得到了 应用【3 3 。 1 。2 4 使用v r m l 进行开发 v l m l 是一种三维场景描述性语言,也是在i n t e m e t 网上实现虚拟现实的关键性 技术【3 4 l 。v 1 l m l 不仅提供了建造虚拟现实空间的二、三维图形图像模型和结构框架, 还规定了相应的网络通讯规范和交互装置,而且由于v r 2 d l 平台的无关性和低带宽 要求,这样就非常易于用户利用网上的客户机服务器模式来设计网上虚拟实验。 v i l v i l 的基本原理是用文本信息描述三维场景,在i n t e r n e t 网上传输,在本地机上由 v i l m l 的浏览器解释生成三维场景,解释生成的标准规范即是v r m l 规范。正是这 种思想使得在i n t e m e t 上传输很少的数据,就可以在w e b 上实现三维虚拟场景浏览。 前面介绍的两种技术和v r j v i l 技术之间的关键区别就在于v r _ m l 可以生成网络上的 三维场景。虽然j a v a 技术现在支持三维场景的创建,但是使用j a v a3 d 创建虚拟 场景不是那么容易的事情,和v p j v l l 相比它的开发周期较长,也没有v r m l 技术那 么成熟。用v p d v l l 实现与i n t e m e t 虚拟现实结合可以实现灵活高效的虚拟实验环境, 其主要有下面几个优点:平台的独立性、丰富的媒体表现形式、协同工作角色的可 视化管理、改善了协同环境的用户界面和增强了协同环境的交互性。可见,将v r m l 融合到网上虚拟实验平台的开发过程中,既可以增强表现力,又可以实现较好的协 同工作虚拟化环境。用v k i v l l 可以制作两种类型的虚拟实验:一类是“演示型”虚 拟实验,只对实验现象进行演示,实验者仅为观众;另一类是“操作型”虚拟实验 实验者亲自参与实验,是实验的主导者【3 5 3 6 】。用v r m l 设计操作型实验,主要涉及 到两个问题:( 1 ) 实验现象的演示。即在特定的事件发生时,如何调出相应的事件触 发动画,即动画的实现问题。v r m l 中的动画主要依靠一个时间传感器和一些内插 节点来控制场景的动画效果。其基本的方法就是时间检测器( t i m es e n s o r ) 给出一个控 制动画效果的时钟,这个时钟包含了动画效果的开始时间、停止时间、时间间隔和 华中科技大学硕士学位论文 是否循环等动画参数。然后通过这个时钟的输出在虚拟世界中驱动各种内插节点产 生各种动画效果,而在内插节点中将给出各种动画效果的关键点和关键值,浏览器 将自动根据这些关键点通过线性插值的方法来完成整个动画过程。( 2 ) 虚拟仪器操作 的实现。如虚拟仪器的移动、放置等,即如何实现用户与虚拟仪器之间的交互。v r m l 通过在一般的s h a p e 节点上加上类似传感器( s e n s o r ) 节点来实现虚拟实验中的交互 性。所谓传感器节点,就是指一些能感知用户各种操作的节点。传感器是靠着感应 用户的输入装置而产生反应,最常见的输入装置是鼠标。当用户的鼠标移动到装有 传感器的虚拟对象时,传感器可以感应到鼠标,一般来说鼠标有三种动作使感应器 开始工作,即移动、单击和拖动。这三种动作可以使装有传感器的虚拟对象因为感 应到用户的动作而有所改变。 总之,由于虚拟现实建模语言州l 是种描述性的文本语言,只需要通过网 络传输一个很小的描述文件,而不需要像视频节目那样需要大量的存储量和网络带 宽,这就可以在低带宽的i n t e r n e t 上实现虚拟三维场景的传输、显示和交互。用虚拟 现实技术制作虚拟实验简单方便,并且能够使实验者真正获得现场操作的临场感觉, 这是j a v a 技术无法比拟的,但是由于接口技术类可编程虚拟实验的特殊性,用 v r m i 技术也很难实现可编程虚拟实验平台的设计。 1 2 5 使用0 u i e k t i m ev r 进行开发 q u i c k t i m e 是苹果公司的一个重要产品,在q u i c k t i m e3 0 之后就开始支持 q u i c k t i m ev r p ”。这是一种实景建模的虚拟现实技术,和传统的虚拟现实技术的不 同之处在于其实现平台只需p c 机,而不需要图形工作站或者数据手套等高额昂贵的 硬件设备支持。和传统影视媒体相比,传统影视媒体只能按照录制的顺序播放,参 与者不可改变其播放顺序从而缺乏交互性;但q t v r 技术使参与者可以自己控制实 验的进程和顺序,可以挑选自己感兴趣的环节而略过其他部分;和传统虚拟现实技 术相比,q t v r 不需要特殊的硬件和附属设备,在普通的p c 机或m a c i n t o s h 机上即 可实现虚拟现实的效果。q t v r 可以应用照片、录像或数字图像来创建虚拟环境, 这就不同于静止的c a d 或g i s 制作,使它较之传统的虚拟现实技术有着更高的真实 感、更车富的图像和更鲜明的细节特征:和多媒体软件相比,多媒体在感知领域的 应用不及v r 广泛,且多媒体技术所操纵的对象都是二维的,q u i c k t i m ev r 则可以 很容易的表现三维真实感场景和用户操纵浏览三维场景,拥有比多媒体技术更强的 真实感。 华中科技大学硕士学位论文 q u i c k t i m ev r 主要使用节点技术实现虚拟现实。在o u i c k t i m e 中,每一个三维 场景称为一个节点。q u i c k t i m ev r 主要含有两种类型的节点 3 8 - 3 9 :全景节点和物体 节点。所谓全景节点就是用户可以以某一观测点为中心,自由旋转3 6 0 度浏览四周的 场景,观测点还可以随用户自由移动。通过全景节点,用户可以非常方便地操纵鼠标 和键盘来调整观测点和视野的位置。用户不仅可以在水平面上自由地旋转,还可以以 一定的角度仰视或俯视当前的场景。物体节点不同于全景节点,它不是用于浏览观测 点周围的场景。物体节点使得用户可以从不同的角度观测某一物体。用户可以通过 鼠标和键盘来控制物体的旋转方向,同时还可以改变视点的位置,使得物体在视觉上 产生放大和缩小的感受。在一个q u i c k t i m ev r 文件中,用户可以自由组合全景节点 和物体节点。节点与节点之间可以相互链接。在浏览一令场景时,通过点击链接部位 可以切换到另个场景节点。此外,在o u i c k t i m ev r 文件中除了全景节点和物体节 点之外,还可以通过链接点链接其它类型的媒体f 4 0 】,这些媒体包括动画和声音片段、 静态图像,甚至可以是另一个q u i c k t i m ev r 文件。 a p p l e 公司的q u i c k t i m ev r 技术为虚拟现实系统开创了一个全新的发展方向, 其运行速度快、文件空间小、真实感强和易于操作的特点吸引了越来越多的用户利 用q u i c k t i m ev r 来开发虚拟实验环境,但由于q u i c k t i m ev r 技术不能实时得到实 验程序对可编程设备端口的操作指令流,所以也不能实现虚拟可编程实验。 1 2 6 使用虚拟设备驱动程序v x d 技术进行开发 华中科技大学计算机学院在国家创新基金资助项目( 0 1 c 2 6 2 2 4 2 1 0 5 5 5 ) 的资助下, 抛开以上几种技术,对可编程类虚拟实验进行了的研究。研究小组提出了以v p d 模 型为基础、以虚拟设备驱动程序v x d 为核心的虚拟实验环境。v p d 模型体系结构如 图1 1 所示。该模型由d o s 虚拟机d v m ( d o sv i r t u a lm a c h i n e ) ,虚拟设备驱 动程序和虚拟设备三个部分组成【1 翻。 图1 1v p d 模型 d v m 是指在w i n d o w 环境下运行的d o s 程序,运行在r i n g3 层。 虚拟设备驱动程序是v p d 模型中的核心,运行在r i n g0 层。由于i n t e lc p u 保 6 华中科技大学硕士学位论丈 护模式下的i o 保护机制,使得d v m 在r i n g3 层运行过程中产生的i o 指令被核心 模式下虚拟设备驱动程序v x d 截获,然后通过给虚拟设备发送v x d a p po u t 消息, 将o u t 指令所执行的操作信息传送到虚拟设备;或者当用户在虚拟设备上按下虚拟 按钮后,虚拟设备调用系统函数d e v i c e l o c o n t r o l 来修改虚拟设备驱动程序中的虚拟 端口状态,d v m 程序读指令就可以从虚拟设备驱动程序中读取这些端口状态。 虚拟设备是对真实设备的仿真,在界面上虚拟设备是对真实设备的外观模拟, 在内部逻辑处理模块上是对真实设备的功能仿真。 通过虚拟设备驱动程序的桥接作用,实现了d v m 和虚拟设备之间的间接双向通 信。v p d 模型通过d v m ,虚拟设备驱动程序和虚拟设备之间的紧密配合完成了对虚 拟设备的仿真,用户可以编写控制程序驱动虚拟设备,从而实现了可编程虚拟实验。 1 3 研究意义和主要研究工作 在传统实验教学实践中,实际实验效果并没有达到预期的实验教学目的1 3 ”。 主要问题是:( 1 ) 学生平时对计算机硬件的实践操作机会很少,初次涉及较多的接插 线和元器件常出现错误,造成实验时间过长,也给实验教师带来了很大的工作量; ( 2 ) 硬件实验不像软件实验,一旦出现差错易造成器件或设备的损坏和故障危险,给 学生带来了心理压力,严重挫伤了学生学习的主动性和积极性;( 3 ) 设备少学生多, 很难满足每个学生拥有一台设备的要求;并且随着近几年学校招生人数的增加和社 会上继续教育、成人教育和函授教育的发展,授课对象群不断扩大,实验设备更加 紧张;远程教育不断发展虽然使更多的人有机会直接在家中接受教育,但不可能让 每个人都将实验设备购到家中。 在可编程实验教学中,这种问题更加突出。在国家创新基金资助项目 ( 0 1 c 2 6 2 2 4 2 1 0 5 5 5 ) 的资助下课题组对编程类虚拟实验进行了研究。经过努力,提出 了以w i n d o w s9 x 下v x d 技术为基础的可编程虚拟实验v p d 模型,设计了接口技术虚 拟可编程实验环境,基本满足了可编程类虚拟实验环境的需求。但是,虽然相对其 他几种技术来说,这种以系统r i n g0 层v x d 技术为核心的虚拟实验平台可以不用设 计编译器,也不用解析r i n g3 层实验程序,通过核心驱动技术v x d 直接截获实验程 序执行中对1 7 0 端口的操作流和虚拟设备进行交互,就可以实现可编程虚拟实验的效 果,但是在实际实验中,往往还存在着一些不足: 1 平台通用性差,只支持w i n d o w s 9 x 操作系统。w i n d o w s 9 x 系统正日落西山, 当前个人用户或单位大都采用w d m 驱动模型为基础的w i n d o w s2 0 0 0 或w i n d o wx p 华中科技大学硕士学位论文 操作系统。随着计算机技术的进一步发展,w i n d o w s2 0 0 3 操作系统将会成为个人计 算机的主流操作系统。以v x d 驱动程序为核心的虚拟实验环境必将随着系统支撑平 台的淡出而失去应用前景。 2 平台占用系统资源较多。 3 中断加载困难,中断实验灵活性差。 4 实时通讯差,实验效果不理想。v p d 模型中的虚拟设备驱动程序是通过消息 和虚拟可编程设备通讯,由于消息要经过消息队列的排队处理,所以带来较大的延 时,造成实验效果不逼真等问题。 为了弥补v p d 模型的不足,十分有必要对可编程虚拟实验进行了全新的研究。 在对可编程实验进行仔细分析和深入研究n t 内核的基础上,设计了v p e p ( v i r t u a l p r o g r a m m a b l ee x p e r i m e n tp l a t f o r m ) 模型,并且以微型计算机接口技术课程为 例,利用v p e p 模型实现了接口技术虚拟实验平台的开发。 主要的研究内容包括: 1 通用v p e p 模型的设计。设计了由集成开发环境和虚拟机、虚拟设备驱动程 序、虚拟可编程设备和设备驱动程序组成的可编程虚拟实验模型。 2 解决v p e p 模型中对中断方式下可编程实验的处理。通过在模型中引入了虚 拟中断和中断报文机制,给出了虚拟设备按需申请、虚拟设备驱动程序虚拟中断的 中断实验解决方案。 3 在v p e p 模型的基础上,虚拟实验指导教师的初步设计。给出了基础v p e p 模型的虚拟实验指导教师模型和构造虚拟实验指导教师的详细步骤。 4 最后用v p e p 模型实现了接口技术虚拟实验平台的设计。 现把各章主要内容作简要介绍如下: 第一章为绪论,主要描述本课题的研究背景,相关概念,国内外研究现状以及 课题研究意义,最后介绍了主要研究工作。 第二章为可编程虚拟实验技术的研究。分析了w i n d o w s n t 系统下实现可编程虚 拟实验的几种技术,其中对w d m 模型和其中的v d d 技术进行了重点探讨,给出了 采用v d d 技术实现编程类硬件虚拟实验的可能性和尚待解决的主要技术问题。 第三章是本文的核心部分。首先给出了v p e p 模型,并阐述了其工作原理并详 细介绍了模型中的关键技术一事件同步和报文机制。为解决可编程虚拟实验中中断 方式下编程的需要,在v p e p 模型中引入了中断虚拟和中断报文机制。最后给出了 虚拟指导教师的设计方案。 华中科技大学硕士学位论文 第四章是可编程虚拟实验平台的具体实现。以微型计算机接口技术课程为例, 运用v p e p 模型在以w i n d o w sn t 为核心的操作系统下实现了接口技术虚拟实验平 台。 第五章对接口技术虚拟实验平台进行了功能分析和性能测试。 第六章是总结。对本课题作总结,并进一步讨论了该课题的未来发展。 9 华中科技大学硕士学位论文 2 可编程虚拟实验技术分析 由于受技术限制,目前可编程虚拟实验比较滞后,还不能满足可编程虚拟实验 发展的需求。在此类实验中,如果实验者只能运行给定的实验程序和观察虚拟实验 设备执行结果,由于这种执行效果也是预先设置的,实验者在选定实验程序后就无 法干预。在整个实验过程中,实验者并不参与实验程序的编写和调试,只是简单地 通过执行或播放由虚拟实验系统开发者提供的“节目”来达到实验的目的。可编程 实验的核心是编程,如果仅仅让实验者走马观花地观看,而不让他们自己动手编程、 调试和执行实验程序,根本达不到预想的实验效果,也不能提起实验者对编程类实 验的兴趣。实现虚拟可编程实验的实质是根据实验者程序执行后产生的i o 指令流, 虚拟设备实时动作以仿真物理可编程设备真实的动作效果。可以看出,构造虚拟实 验环境的根本是让虚拟可编程设备实时获得实验程序执行后的i o 操作流,有三条技 术可以实现可编程虚拟实验。( 1 ) 编译器开发技术。根据编程类实验的具体需求设计 一个编译器,对学习者编写的源程序进行编译、连接和定位后,生成一个符合需求 的可执行程序;运行编译器生成的可执行程序,并将运行后得到的i o 端口操作流发 送给虚拟设备,虚拟设备动态仿真程序运行效果,从而达到编程类虚拟实验的目的。 ( 2 ) 核心虚拟设备驱动程序技术。利用虚拟设备驱动程序开发工具,设计一个核心模 式下虚拟设备驱动程序,在实验开始前实验者加载该虚拟设备驱动程序至操作系统 核心层。实验者编写的实验程序执行时,产生对i o 端口的操作指令,虚拟设备程序 在内核模式下截获这些端口操作流,并通过发送w i n d o w s 消息和虚拟可编程设备进 行通讯,把端口操作流转发给虚拟可编程设备,虚拟设备动态仿真程序运行效果, 实现编程类虚拟实验的目的。( 3 ) 用户虚拟设备驱动程序技术。实验者在执行实验程 序时,操作系统在用户模式下自动加载用户模式下的虚拟设备驱动程序,处于用户 模式下的虚拟设备驱动程序在用户层( 即w i n d o w sr i n 9 3 ) 就可以捕获实验程序中的端 口操作,利用某种机制和虚拟设备实时通讯,把这些端口操作序列“实时发送”给 虚拟设备,虚拟设备动态仿真程序运行效果,实现编程类虚拟实验的目的。下面分 别对采用编译开发技术、核心虚拟设备驱动程序技术和用户虚拟设备驱动技术实现 编程类虚拟实验进行分析。 2 1 编译器开发技术 编译器开发技术实现可编程虚拟实验的实质就是为了得到实验程序对可编程设 华中科技大学硕士学位论文 备端口操作指令流自己设计编译器来实现虚拟可编程实验的目的。用户在进行编 程类实验时一般采用c 语言或汇编等语言来编写实验程序,为了采用开发编译器技 术在不同的语言环境下实现虚拟可编程实验,就必须分别编写支持c 语言和汇编等 语言的不同编译器。现以用c 语言开发实验程序为例来说明用编译器开发技术实现 虚拟实验平台。c 语言作为一种通用高级编程语言,它的程序开发过程如图2 1 所示 4 h 。 图2 1 典型c 程序开发流程 由图2 1 可以看出,用编译器开发技术实现可编程虚拟实验要做以下几个方面的 研究: 1 文本编辑器模块:提供编辑用户c 或汇编源程序的功能。在此模块中,包括 文件的打开、保存等功能和编辑中的拷贝、粘贴等功能子模块。 2 编译模块:可对c 源程序( 或汇编源程序) 进行编译( 或汇编) ,生成可重定位 的浮动目标码模块,在源程序出现语法或词法错误时,提供错误信息的显示和定位 功能。这是采用编译器开发技术实现可编程虚拟实验的核心部分。 3 连接模块:负责连接用户程序的各个模块以及用户函数库和系统函数库,各 目标码连接定位生成最终可在虚拟机上执行的绝对定位目标码文件。操作成功时 即可产生供调试模块使用的符号信息文件,否受i j 提供连接错误信息显示功能。 4 调试模块:在目标码加载至虚拟机时,可对目标程序进行源程序级调试,并 提供单步、断点、变量和寄存器观察等一般程序开发平台具有的调试功能。 5 运行模块:目标码在虚拟机运行时,可控制虚拟设备产生预期的动作,并能 够接收从虚拟设备产生的输入信号,以决定程序的流程。 和其他模块相比,文本编辑器模块的设计则相对简单得多,对此不作讨论。这 里就以编译模块的设计为例,分析需要解决的问题。 源程序编译器的设计是项复杂的任务,不同的编译器有不同的组织结构和工 华中科技大学硕士学位论文 作方式,所以没有固定的结构方式,图2 2 是编译模块的一般结构图m 4 3 】。如图2 2 所示,该模块可划分为7 个子模块:词法分析、语法分析、中间代码生成、中间代 码优化、目标代码生成、错误处理和符号表管理模块。编译一般都采用多趟扫描编 译法,但对扫描遍数没有严格的限制,遍的多少只是一个技术问题,和具体的机器 以及设计者的意愿有关。多遍扫描的好处是算法清晰,便于分工和优化,但多遍扫 描难免会做些重复性的工作。从图2 2 可以看出,多遍扫描中,每一次扫描的对象都 是前一次扫描的结果,下面对各子模块功能进行详细说明。 i 源 i 霉 l : 目 标 程 序 图2 2 编译器的一般结构图 词法分析:每一种高级语言都有允许使用的字符集、标识符和关键字。词法分 析的主要任务是扫描源程序,从源程序字符流中识别这些单诃并把他们表示成机内 能识别的t o k e n 字形式。此外,词法分析还需要指出源程序的单词错误。 语法分析:语法分析的主要任务是检查源程序的形式语法错误。语法分析主要 是通过“组词成句”,把词法分析得到的t o k e n 字按语法规则构成更大的语法单位, 如表达式,各类语句等。 中间代码生成:扫描对象是语法分析的结果。这一部分的主要任务是把源程序 中的t o k e n 字序列转换成更接近目标代码的中间代码三元式或四元式序列。另外, 这个阶段还要做些语义检查工作。 中间代码优化:扫描对象是中间代码。这个部分的主要任务是原中间代码转换 成高质量的目标代码。其中包括常表达式优化、公共子表达式优化、不变表达式外 提和消减运算强度等。 目标代码生成:扫描对象是优化后的中间代码。这部分的主要任务是从中间代 华中科技大学硕士学位论文 码生成目标代码。在整个编译的几个阶段,只有这部分的工作和目标机紧密相关。 错误处理:错误包括词法错误、语法错误、静态语义错误、动态语义错误等编 译过程中的所以错误。其中动态语义错误只有运行目标程序时才能发现。在编译过 程的各个阶段都要有错误处理部分。 符号表管理:编译程序往往要用到很多表格。合理设计和利用表格对编译器设 计的成败有着举足轻重的作

温馨提示

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

最新文档

评论

0/150

提交评论