(计算机应用技术专业论文)基于中间件的嵌入式虚拟仪器集成开发环境的设计.pdf_第1页
(计算机应用技术专业论文)基于中间件的嵌入式虚拟仪器集成开发环境的设计.pdf_第2页
(计算机应用技术专业论文)基于中间件的嵌入式虚拟仪器集成开发环境的设计.pdf_第3页
(计算机应用技术专业论文)基于中间件的嵌入式虚拟仪器集成开发环境的设计.pdf_第4页
(计算机应用技术专业论文)基于中间件的嵌入式虚拟仪器集成开发环境的设计.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机应用技术专业论文)基于中间件的嵌入式虚拟仪器集成开发环境的设计.pdf.pdf 免费下载

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

文档简介

一 i 、, , 武汉科技大学 研究生学位论文创新性声明 本人郑重声明:所呈交的学位论文是本人在导师指导下,独立进行研 究所取得的成果。除了文中已经注明引用的内容或属合作研究共同完成的 工作外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。 对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 论文作者签名:黑联、二日期:印f c 7 争与月乃朗 , 研究生学位论文版权使用授权声明 本论文的研究成果归武汉科技大学所有,其研究内容不得以其它单位 的名义发表。本人完全了解武汉科技大学有关保留、使用学位论文的规定, 同意学校保留并向有关部门( 按照武汉科技大学关于研究生学位论文收录 工作的规定执行) 送交论文的复印件和电子版本,允许论文被查阅和借阅, 同意学校将本论文的全部或部分内容编入学校认可的国家相关数据库进行 检索和对外服务。 论文作者签名: 指导教师签名: 日期: 吴聪 醴塑 塑坦垒兰旦丝旦 一 一 , _ 武汉科技大学硕士学位论文第1 页 摘要 虚拟仪器技术是模拟传统测试测量仪器,充分结合计算机的高效、精准的计算能力, 运用软硬件相结合来实现传统仪器的功能的一种技术。它的优点是硬件体积小,计算分析 的可靠性高,用软件实现了数据分析、数据显示的功能。 要进行虚拟仪器的设计开发,最方便可行的是使用可视化开发环境进行二次开发。目 前在p c 环境下的虚拟仪器开发环境已经得到了比较完善的发展,但嵌入式领域下的虚拟 仪器开发环境不多,原因是嵌入式环境资源少,开发难度大,并且每个项目都是针对特定 需求,功能专一,目前嵌入式环境下的虚拟仪器开发还没有完全发展起来。随着虚拟仪器 技术广泛地应用于嵌入式系统领域,需要开发出能在嵌入式环境下使用的嵌入式虚拟仪器 快速开发工具,以解决虚拟仪器在嵌入式环境下的开发不便的问题。 本文通过使用c o r b a 中间件体系结构实现了嵌入式虚拟仪器的i d l 设计,从而减弱 了平台差异性,使开发出的虚拟仪器能够方便地移植到其他平台;基于i 标准进行了可 互换虚拟仪器控件的设计,从而使同类嵌入式虚拟仪器控件在特定条件下能够根据需要相 互替换使用;根据信号槽机制,建立各类虚拟仪器控件的拼接联系,完成数据准确无误的 流动;通过以上三部分内容完成多种嵌入式虚拟仪器中间件( e v i ) 的设计,进而实现一 个可以粘合这些嵌入式虚拟仪器控件的快速开发虚拟仪器的集成环境( e v i i d e ) ,从而实 现可视化的虚拟仪器开发。 关键词:嵌入式虚拟仪器;i v i 标准;c o r b a 中间件;信号槽机制 第1 i 页武汉科技大学硕士学位论文 a b s t r a c t t h ev i r t u a li n s t r u m e n tt e c h n o l o g yi sak i n do ft e c h n o l o g yw h i c hs i m u l a t e st h et r a d i t i o n a l m e a s u r e m e n tm a c h i n e ,f u l l yi n t e g r a t e dt h ee f f 矗c i e n ta n da c c u r a t ec a l c u l a t i o n so ft h ec o m p u t e r s , c o m b i n e sw i t ht h eh a r d w a r ea n ds o f t w a r et og e tt ot h ef u n c t i o no ft r a d i t i o n a lm e a s u r e m e n t m a c h i n e i th a sas m a l ls i z ei nh a r d w a r e , m u c hm o r er e l i a b i l i t yi nc a l c u l a t i o na n da n a l y s i s i tc a n a n a l y z ed a t aa n dd i s p l a yd a t aw i t hs o f t w a r e u s i n gv i s u a ld e v e l o p m e n te n v i r o n m e n tf o ras e c o n d a r yd e v e l o p m e n ti st h em o s tc o n v e n i e n t a n dp o s s i b l ew a yt od e s i g na n dd e v e l o pt h ev i r t u a li n s t r u m e n t a tp r e s e n tt h ev i r t u a li n s t r u m e n t i sw i d e l yu s e di np ce n v i r o n m e n t ,b u ti sn o ts op o p u l a ri nt h ee m b e d d e df i e l db e c a u s eo fl a c k i n g o fr e s o u r c e ,d i f f i c u l ti nd e v e l o p m e n ta n di t ss p e c i f i c i t yn e e d sa n df u n c t i o n s c u r r e n t l yt h e e m b e d d e dv i r t u a li n s t r u m e n ti ss t i l lo nt h ew a y a st h ev i r t u a li n s t r u m e n tt e c h n o l o g yu s e dw i d e l y i nt h ee m b e d d e ds y s t e mf i e l d ,t h e r ei san e e dt od e v e l o par a p i de m b e d d e dv i r t u a li n s t r u m e n t d e v e l o p m e n tw h i c hi su s e di ne m b e d d e ds y s t e mt os o l v et h ep r o b l e m st h a tv i r t u a li n s t r u m e n t s d e v e l o p m e n ta r ei n c o n v e n i e n ti ne m b e d d e ds y s t e m t h r o u g ht h e u s eo fc o r b am i d d l e w a r ea r c h i t e c t u r et oa c h i e v ee m b e d d e dv i r t u a l i n s t r u m e n ti d ld e s i g n ,i tc a nr e d u c et h ed i f f e r e n c ea m o n gp l a t f o r m sa n dm a k ei tc o n v e n i e n tt o t r a n s p l a n tt oo t h e rp l a t f o r m s i td e s i g n st h ei n t e r c h a n g e a b l ev i r t u a li n s t r u m e n t a lc o m p o n e n t s b a s e do nt h ew is t a n d a r d ss ot h a tt h es a l t l ek i n do ft h ev i r t u a li n s t r u m e n t a lc o m p o n e n t sc a l lb e c h a n g e db ye a c ho t h e ru n d e rs p e c i f i cc o n d i t i o n s a c c o r d i n gt ot h es i g n a la n dp l o tm e c h a n i s m ,i t c r e a t e st h ec o n n e c t i o nb e t w e e nd i f f e r e n tc o m p o n e n t st os e n da n dr e c e i v et h ed a t a f r o mt h e s e t h r e ep a r t st h i st h e s i sd e s i g n sm a n ye m b e d d e dv i r t u a li n s t r u m e n t sb yc o m p o n e n t s ,a n da tl a s t d e s i g n sas y s t e mw h i c hc a l l e de m b e d d e dv i r t u a li n s t r u m e n t si n t e g r a t e dd e v d o p e de n v i r o n m e n t t oa c h i e v ev i s u a l i z a t i o no ft h ev i r t u a li n s t r u m e n td e v e l o p m e n t k e y w o r d s :e m b e d d e dv i r t u a li n s t r u m e n t ;i n t e r c h a n g e a b l ev i r t u a li n s t r u m e n t ss t a n d a r d ;c o r b a m i d d l e w a r e ;s i g n a la n ds l o t 武汉科技大学硕士学位论文 第1 i i 页 目录 摘要i a b s 仃a c t i i 目录i i i 第一章绪论1 1 1 本文研究背景1 1 2 国内外研究现状2 1 2 1 国外研究现状2 1 2 2 国内研究现状3 1 3 选题的目的和意义4 1 4 本文主要研究内容4 1 5 各章节安排4 第二章构造嵌入式虚拟仪器中间件6 2 1 中间件技术概述6 2 1 ,l 中间件的出现6 2 1 2 中间件的基本概念。7 2 1 3 中间件的特点7 2 1 4 中间件的分类7 2 2 几种比较成熟的中间件规范8 2 3c o 融a 中间件体系结构1 0 2 4c o r b a 中间件接口的调用方式1 2 2 5o m g 接口定义语言d l :1 3 2 6 使用a c e 肛a o 进行中间件系统设计1 3 2 7 本章小结。1 4 第三章嵌入式虚拟仪器控件类及接口标准的规划1 5 3 1 i 标准1 5 3 2 嵌入式虚拟仪器中间件划分1 5 3 2 1 数据获取产生源控件1 6 3 2 2 数据表示类控件2 0 3 2 3 数据处理与分析类控件2 4 3 2 4 控制类控件2 6 3 3 本章小结2 8 第四章构造嵌入式虚拟仪器中间件及数据流动的实现3 0 4 1 构造嵌入式虚拟仪器中问件3 0 第1 v 页武汉科技大学硕士学位论文 4 1 1 基于中间件的嵌入式虚拟仪器i d l 设计3 0 4 1 2 服务器端应用程序的设计3 3 4 1 3 客户端应用程序的设计3 4 4 2 嵌入式虚拟仪器的组合设计方式3 4 4 3 信号槽机制的原理3 5 4 4 使用信号槽实现数据流动3 6 4 5 本章小结3 9 第五章i d e 环境的图形界面的设计4 1 5 1 图形用户界面g u i 的设计4 l 5 2i d e 环境各部分结构4 2 5 - 3 本文主要设计部分控件树4 3 5 4 用一个示波器的具体例子来描述整个i d e 的使用4 5 第六章总结与展望4 8 6 1 论文总结4 8 6 2 展望4 8 参考文献。5 0 致谢5 3 附录a 攻读硕士期间发表的文章5 4 _ 武汉科技大学硕士学位论文第1 页 第一章绪论 1 1 本文研究背景 随着测控测量技术的发展和计算机接口技术的发展,虚拟仪器已逐渐取代了传统仪 器。虚拟仪器技术是指使用计算机平台,按照测试目标的需求来设计仪器的测试功能,这 样就能充分利用计算机来实现和扩展传统仪器功能。通俗地说,虚拟仪器是在计算机的显 示界面上模拟传统的仪器面板,当用户使用鼠标和键盘来对该软件进行操作时,就与在传 统仪器上操作旋钮、开关等按键一样,然后由计算机软件程序完成传统仪器中由硬件电路 完成的信号处理功能【。虚拟仪器技术将计算机的运算功能、各种数字信号的处理技术、 多种软件工程方法综合起来,是未来测量测试仪器的发展方向1 2 儿引。 与传统物理仪器设备相比,虚拟仪器基于p c 技术,拥有很好的处理器运算功能和文 件i o 等资源【4 1 ,能进行复杂的信号数据分析能力,保证了其数据处理结果的精确性,而 且随着互联网的快速发展虚拟仪器有着更强大的发展空间【5 l 【6 】。另外,传统仪器功能由各 种各样的生产厂商定义,产品做出来就无法改变,而虚拟仪器的功能由软件定义,用户选 择不同的软件就可以定义不同的虚拟仪器,因此虚拟仪器的扩展性和维护性较强,能以极 少的硬件投资和软件升级来改进整个系统,不像传统仪器功能固定,若是更新就将只能替 换整个仪器,造成浪费。而且,虚拟仪器将仪器的概念提到了软件上,用户不仅能使用别 人开发好的仪器,还能使用别的公司开发的工具,自己开发想要的特定功能的虚拟仪器。 如今,虚拟仪器技术已广泛应用到测试测量、工业i o 和控制等应用中1 7 j 。 虚拟仪器在p c 下的发展已经比较完善,有较好的虚拟仪器软件平台供使用,例如n i 公司的l a b v i e w ,惠普公司开发的基于h p i b 、v x i 等总线结构的可视化编程开发环境h p v e e t 8 1 ,美国c e c 公司开发的以时间驱动方式工作的数据采集软件包t e s t p o i n t 等。而在恶 劣环境下测试任务的实践过程中,基于p c 和工控机的虚拟仪器暴露了很多缺点,如体积庞 大、携带不便,它的主要存储介质是机械硬盘,因此抗震性差、稳定性差等【9 】。随着嵌入 式系统的不断发展,嵌入式系统的体积小、可靠性高等特点能够满足实现工业现场和较差 条件下的便携虚拟仪器的需要,同时它还能满足对虚拟仪器高精确度的要求。由于嵌入式 虚拟仪器通常是针对特定领域特定应用的仪器,仍旧受到自身的限制,因此不足以灵活地 解决不同的仪器需要【1 0 1 。开发嵌入式虚拟仪器难度较大,因为平台异构性导致分布式应用 开发越来越困难,而且语言多样性导致适用的语言不一定能用到当时的环境【l 。目前嵌入 式系统下开发虚拟仪器向着直观的设计环境,高层次地抽象整个系统,增加软件可复用性, 图形化系统设计等几个方面来发展【1 2 1 。 随着嵌入式系统在虚拟仪器方面的广泛应用,系统间协同工作的需求日益普遍,应用 范围也更加广阔,涉及到多种硬件平台、通信介质以及操作系统,软件开发往往要求在这 些异构的硬软件平台上运行。为了消除软硬件平台之间的异构性,本文引入了中问件 ( m i d d l e w a r e ) 概念。中间件属于可复用软件范畴【i3 1 ,是一类独立的系统软件或服务程序, 第2 页武汉科技大学硕士学位论文 它介于操作系统和应用程序之间【1 4 1 。基于中间件的应用程序可以较为容易地运行于各种操 作系统和硬件平台之上,从而将应用程序的开发变得更加简捷、使产品的开放性和可移植 性更强【1 5 】【1 6 】。也就是说,中间件能为嵌入式虚拟仪器的开发提供跨操作系统和硬件平台, 层次化,模块化和可扩展的接口【1 7 】。 随着嵌入式虚拟仪器应用的日益增多,如何提高开发效率成了一个需要解决的问题。 集成开发环境( i d e ) 能够方便用户的操作【1 8 】,它提供可视化的表单、控件拖拽功能,使 用户能方便地拼凑自己想要的控件,所见即所得,又能自动生成简单的框架代码,留出用 户需要编写的代码区,极大地减少了用户的工作量【1 9 l 。i d e 是一种计算机辅助设计工具, 一般由基本工具,常用工具,可选工具等组成。比如说,编辑器,编译器,调试工具,仿 真器等。目前虚拟仪器的集成开发平台主要是n i 公司的l a b v i e w 和l a b w i n d o w s c v i 。 l a b v i e w 是n i 公司设计的标准虚拟仪器开发平台。它是一个基于图形化编程语言g 的虚 拟仪器开发环境,对虚拟仪器软件进行图形化操作。l a b v i e w 带有大量数据采集、分析、 显示、存储的函数库以及众多的程序开发工具,还通过动态链接库d l l 、共享库函数、 a c t i v e x 等提供了大量的外部代码接口。在调试方面,具有设置断电、单步运行等功能。 l a b w i n d o w s c v l t 2 0 】是n i 开发的3 2 位,面向计算机测控领域的交互式c 语言的集成开发 环境,可以在多种操作系统下运行。它的集成化开发、交互式编程方法、丰富的功能面板 和库函数大大增强了c 语言的功能,为熟悉c 的开发人员提供了一个提供了一个功能强大 的集成开发环境。但是,在嵌入式虚拟仪器中的集成开发环境几乎没有,所以,本项目的 最终目标是建立一个基于嵌入式虚拟仪器中间件的i d e 。当然,i d e 的建立相当繁琐,个 人的能力是很难完成的,但是,可以在开源软件上进行扩展自己需要的控件的属性和方法, 从而改造出一个适合嵌入式虚拟仪器的集成开发环境。 1 2 国内外研究现状 1 2 1 国外研究现状 虚拟仪器的开发系统主要有两类:一类是面向对象的非图形化开发环境,比如v i s u a l c + + ,另一类是可视化的图形化开发环境,也称为g 语言( g r a p h i c a ll a n g u a g e ) 开发环境, 比如说l a b v i e w 。图形化开发环境一般是针对虚拟仪器而建立的专有平台,除了提供可视 化的编程界面外,而内聚了很多算法、开发工具、调试工具、函数库等等为开发提供便利 的工具。因此以后的虚拟仪器将朝着图形化开发环境的方向发展。 关于嵌入式虚拟仪器的研究,很多公司已完成相关产品。其中n i 公司不仅将l a b v i e w 做成p c 平台下非常好的虚拟仪器丌发平台,而且还将虚拟仪器发展到嵌入式领域。n i 图 形化系统设计平台为嵌入式系统的设计提供了更好的设计方式,通过在设计早期将真实信 号和硬件i o 引入到设计流程中,从而及时验证和反馈设计的可行性【2 。比如说,基于图 形化系统设计平台在机器控制领域进行嵌入式设计的丌发案例:救生机器人蜘蛛设计,采 用用于b l a c k f i n 处理器的l a b v i e w 嵌入式模块所提供的图形化编程环境,将图形化系统 武汉科技大学硕士学位论文第3 页 设计,整合高处理效能与极低的能源耗用模式,设计高机动性与高自由度的机器人,从而 在严苛环境中执行重要的救生任务【2 2 】。一些其它的公司也出了相关产品,比如美国福禄克 手持示波器和超级雷达探测器等产品。 提到虚拟仪器开发平台软件,首屈一指的是美国n i 公司的l a b v l e w 。l a b v i e w 全称 为l a b o r a t o r yv i r t u a li n s t r u m e n te n g i n e e r i n gw o r k b e l l c h 【2 3 】,它分为用户界面软面板和图形代 码程序框图两部分【2 4 】。软面板是用于人机交互的图形界面,集成了开关、旋钮、图形显示 器等对象,程序框图代表了程序的源代码,包括各种函数、与软面板对象所对应的图标、 以及他们之间的连线。l a b v i e w 内置了信号采集、测量分析、数据显示等功能,为用户开 发虚拟仪器系统提供了很大的便利。 自从n i 公司推出虚拟仪器以来,许多其他国外著名仪器公司也开发了一些虚拟仪器 开发平台软件。a g i l e n tv i s u a le n g i n e e r i n ge n v i r o n m e n t ( a g i l e n tv e e ) 是一种用于仪表优化 控制的图形语言。用户用鼠标从菜单中挑选出对象,然后将代表对象的图标按流程连接起 来,即可产生程序,不必使用键盘,而程序也只是一张数据流程图,比传统的代码方式更 便于使用和理解。a g i l e n tv e e 不但编程快速,而且有着良好的输入输出解决方案,能提供 多种适合仪器使用的数据类型,提供数学分析能力,有方便的数据显示方式,易于生成报 告,它还允许与其他语言混合编程。 l a b w i n d o w s c v i 是由n i 公司推出的与l a b v i e w 相对应的虚拟仪器软件开发平台, 它完整地集成了a n s i c 丌发环境,将c 语言与用于数据采集、分析和显示的测量控制专 业工具很好地结合起来,提供了许多实用的特性,更方便用户对虚拟仪器的开发。 针对目前虚拟仪器硬件体系结构庞大,一种通过集成和构件化的新的技术应运而生, 可以达到硬件小型化和软件构件化,使仪器具有较好的稳定性,互操作性,可扩展性和可 维护性【2 5 1 。 1 2 2 国内研究现状 国内的一些科研机构也在进行嵌入式虚拟仪器软件平台的研究,例如吉林大学开发的 l a b s c e n e 图形化开发平刽2 6 1 ,能实现虚拟仪器的开发;重庆大学针对机械测量开发了一套 图形化开发平台,称为v m i d s ( v i r t u a lm e a s u r e m e n ti n s t r u m e n td e v e l o ps y s t e m ) 系鲥2 7 j 。 它是由重庆大学秦树人教授提出并成功研制出的层次消息总线零编程的虚拟仪器开发系 统,集成了非常多的机械信号处理算法,包括一个测控仪器软件模块化功能库与一个控件 库,通过在v m i d s 系统中以功能库和控件库为基础进行设计、调试从而形成所需的智能 虚拟仪器控件,然后在仪器拼搭场中利用那些智能虚拟控件拼搭出用户自己所需要的虚拟 仪器,无需通过编程。v m i d s 尽可能将数据采集、处理、分析、显示等专业性的工作在内 部解决,而留给用户所完成的工作都是较容易、轻松的任务,从而降低了对用户的要求, 达到真正的零编程:浙江大学数字技术及仪器研究所在国家“九五”重点科技攻关项目的资 助下,研制丌发了一个全中文界面的、自主版权的图形化编程软件平台,并命名为v p p 2 s 】 ( v i s u a lp r o g r a m m i n gp l a t f o r m ) 。 第4 页武汉科技大学硕士学位论文 1 3 选题的目的和意义 本项目研究的关键问题是将利用中间件这种采用组件思想设计的软件,为嵌入式虚拟 仪器的开发提供跨操作系统和跨硬件平台,层次化、模块化和可扩展的接口。只要保证中 间件层对应用层的接口定义不变,可以不用重新编写或大范围地修改应用层的程序代码, 只通过改变其中的配置参数,就将虚拟仪器的应用程序移植到不同的操作系统或硬件平台 上。然后通过扩展,升级代码来开发一个快速开发辅助工具i d e ,使得用户对嵌入式虚拟 仪器的开发更加快速,高效,方便,并且节约成本。 目前虚拟仪器的开发在p c 机下可以说已经比较完善,但是由于嵌入式系统下资源紧 张,性能要求高,导致虚拟仪器在嵌入式系统下的开发难度较大。因此对嵌入式系统下的 虚拟仪器集成开发环境的研究与设计有重要的意义。而目前虚拟仪器的开发环境都朝着图 形化方向发展,可视化的图形化开发更适合人类习惯,方便用户进行虚拟仪器的构建。而 基于控件的组装所需要的虚拟仪器的思想使得虚拟仪器的开发灵活机动,不死板;控件可 随意添加与拆卸,使整个虚拟仪器的设计更为方便;其可互换功能使以前设计的虚拟仪器 大部分部位可以重复使用,避免了重复劳动。而将中间件技术引入到嵌入式虚拟仪器控件 类及接口设计中,只需保持中间件层对各应用层的接口不变,不需重新修改应用层的程序 就能方便地将应用程序移植到不同的操作系统和硬件平台上,由此更方便了嵌入式虚拟仪 器的开发1 2 9 】。 1 4 本文主要研究内容 本文主要依托湖北省教育厅科研计划重点项目( 2 0 0 8 2 0 1 0 ) “嵌入式虚拟仪器架构及中 间件研究( d 2 0 0 8 1 l l o ) ”,通过对虚拟仪器控件的设计以及中问件研究,来完成嵌入式虚拟 仪器集成开发环境的设计。 本文以嵌入式虚拟仪器和中间件为核心,结合中间件接口标准规范c o r b a 、i 可互 换虚拟仪器驱动规范,结合硬件平台和设备运行环境特征,设计一个高性能、高可靠性、 易移植、可定制、符合w i 接口规范标准的嵌入式虚拟仪器中间件系统,满足工业现场环 境或恶劣条件下的便携虚拟仪器的设计需要,并最终提出符合条件的虚拟仪器的i d l 文件 格式,通过编译i d l 文件直接生成可以使用的嵌入式虚拟仪器控件,添加嵌入式虚拟仪器 对象的控件的属性和方法,最终实现一个快速开发的辅助工具i d e 。这个集成开发环境能 实现通过拖拉虚拟仪器的控件开发出可以在开发板的l i n u x 环境下运行的虚拟仪器。 1 5 各章节安排 本文第一章介绍了嵌入式虚拟仪器的当前国内外研究背景,并介绍了本文的组织结 构。第二章介绍了基于c o r b a 中间件体系结构来设计嵌入式虚拟仪器控件继承分类关系, 并设计了嵌入式虚拟仪器控件i d l 。第三章根据w i 标准规范,设计了嵌入式虚拟仪器控 件类及接口标准规范。第四章介绍如何拼接各控件,形成仪器的组合设计方式,并利用信 武汉科技大学硕士学位论文第5 页 号槽机制来实现数据流动,用户根据自己需要来构建虚拟仪器,在一次虚拟仪器组装中根 据信号槽机制拼接数据产生,数据处理与分析,数据控制,数据显示等相关控件。第五章 介绍了集成开发环境的图形化设计。最后的结论是基于i v i 标准和中间件体系结构,设计 了一个快速开发嵌入式虚拟仪器的集成开发环境。 第6 页武汉科技大学硕士学位论文 第二章构造嵌入式虚拟仪器中间件 本文设计的嵌入式虚拟仪器集成开发环境( e m b e d d e dv i r t u a li n s t r u m e n t si n t e g r a t e d d e v e l o p m e n te n v i r o n m e n t ,简称e v i i d e ) 是一个图形化的虚拟仪器辅助开发工具。基于中 间件的嵌入式虚拟仪器集成开发环境体系结构如图2 1 所示,它包括嵌入式虚拟仪器中间 件接口层,数据流动核心服务层以及仪器驱动层这三个层次。该环境下的嵌入式虚拟仪器 控件参照i v i 标准,为嵌入式虚拟仪器中间件规划类及接口标准,使其具有虚拟仪器控件 的特点;基于c o r b a 中间件体系结构,采用i d l 文件来描述一个中间件,使其符合中间 件的特点,为应用程序提供标准通讯服务和面向对象的封装的接口;根据信号槽机制,为 嵌入式虚拟仪器中间件产生信号并连接槽函数,使其传递各种数据以实现数据的流动。完 成了各种嵌入式虚拟仪器中间件的设计后,再将它们封装到一个集成环境中,以实现一个 可视化的通过拖拽虚拟仪器中间件来动态配置,快速开发虚拟仪器的集成环境。 窆 v 毡 厘 岳 熊 g 辑 螳 = = = 7 = = 一 (i d e 界面) 、一一一一 1 产 j :一一 f 嵌入式虚拟l ! 墅控竹接旦一1 仪耋:罂件l 中间件接口( c o r b a ) j 竺、f _ :器竺二兰 动,口滩簟怒j i = 哂数据流动核! ,一 心服务层 q t 信号槽控制数据流动 、:汀 + 1 , 4 g d l 【 壁弛a 讪叠鲫逊:一忙= = 妙一一j 图2 1 基于中间件的嵌入式虚拟仪器集成开发环境体系结构 2 1 中间件技术概述 2 1 1 中间件的出现 早期在集中控制式系统中,在面向过程的语言环境中仅存在本地进程调用,到了2 0 世纪8 0 年代,面向对象的技术逐渐发展起来。尽管这种面向对象的调用依然发生在本地 进程中,但随着面向对象的分析,设计,编程技术的广泛应用,它为分布式系统的产生于 发展提供了必要的支持。分布式系统中的分布式对象支持位置透明和实现方式透明,使得 盆=阔v挥醑越欺链球稚毯鞲镁悄 r e s o l v e _ i n i t i a l r e f e r e n c e ( n a m i n gs e r v i c e ”) ; c o s n a m i n g :n a m i n g c o n t e x t _ v a rn a m i n g _ c o n t e x t = c o s n a m i n g :n a m i n gc o n t e x t :n a r r o w ( n a m i n g s e r v i c e i n ( ) ) ; 服务器端通过通用控件提取出具体的各类控件来响应请求。通用控件程序文件中获取 可移植对象适配器p o a 的继承程序如下: c l a s sc o n t r o l l e r _ i m p l :p u b l i ev i r t u a lp o a c o n t r o l l e r p u b l i c : v i r t u a li c o m p o n e n t t y p eg e t _ n o m i n a l ot h r o w ( c o r b a :s y s t e m e x c e p t i o n ) ; v i r t u a li c o m p o n e n t t y p es e t _ n o m i n a l 0t h r o w ( c o r b a :s y s t e m e x c e p t i o n ) ; ; 以上主要叙述了服务器端用于请求服务的对象实现程序的寻找,服务器端用于控制连 接的主程序为: m tm a m ( 缸a r g o ,c h a r 幸a r j g v 口) s e r v e r c p p 仃y 初始化o r b c o r b a :o r b v a ro r b = c o r b a :o r b _ i n i t ( a r g c ,a r g v ) ; 获得根p o a 的对象引用 ,c o r b a :o b j e c t _ v a rp o a _ o b j = o r b 一 r e s o l v e _ i n i t i a l _ r e f e r e n c e ( “r o o tp o a ”) ; p o r t a b l e s e r v e r :p o a _ v a rr o o t _ p o a 2 p o r t a b l e s e r v e r :p o a :n a r r o w ( p o a _ _ o b j ) ; 获取p o a 管理器 p o r t a b l e s e r v e r :p o a m a n a g e r _ v a rm a n a g e r = r o o t _ p o a - t h e _ p o am a n a g e r o ; 第3 4 页 馓活p o a m a n a g e r - a c t i v a t e ( ) ; ,启动o r b 核心 o r b 咖( ) ; ) c a t c h ( c o n s tc o r b a :e x c e p t i o n & ) - , 4 1 3 客户端应用程序的设计 客户端程序要做的初始化的内容与服务器端类似,即首先要进行客户端o r b 的初始 化工作,然后通过发送消息请求来调用服务器端的各控件对象,其中的参数传递靠m a i n 函数来传递参数来初始化o r b 核心,o r b 核心根据此消息再找到对应的服务器对象进行 请求处理。客户端程序发送请求消息给目标对象时,同样要得到该对象的引用,从而调用 该对象的方法。 在服务器端获取对象的引用是通过命名服务来得到的,在客户端要获取对象的引用, 同样要通过命名服务器,只不过这时使用命名服务是用来解析命名服务的。解析命名服务 的代码如下: c o r b a :o b i e c l v a rn a m e _ o b j e c t = o r b r e s o l v e _ i n i t i a l _ r e f e r e n c e ( n a m i n gs e r v i c e ”) ; c o s n a m i n g :n a m i n g c o n t e x l v a r n a m i n g _ _ e o n t e x t = c o s n a m i n g :n a m i n gc o n t e x t :m a r r o w ( n a m i n g s e r v i c e i n ( ) ) ; 客户端用于控制连接时初始化o r b 如下: c o r b a :o r b v a ro r b _ s t u b = c o r b a :o r b i n i t ( a r g c ,a r g v ) ; 初始化o r b 后,就可以通过命名服务得到对象的引用了。得到对象的引用是通过m a i n 函数传递参数来完成的,即: c o r b a :o b j e c l v a ro b j = o r b _ s t u b - = s t r i n g _ t o _ o b j e c t ( a r g v 1 ) ; 7 当连接完成后,在客户端的主程序当中还要调用对应的i d l 函数,以完成各项请求以 及接收从服务器端返回的已经处理的结果,即: c o m p o n e n t t y p ei c o m _ s g e t _ n o m i n a l ( ) ; j|,j:jj_ j 。“。ij?、j j j j 。| 7 : l j 。 当一次请求经过发送和接收处理后,o r b 就完成了所需的工作,必须对其进行销毁, 以便等待下一次请求的处理。销毁o r b 时还要注意处理产生的异常: o r b - : d e s t r o y o ; c a t c h ( c o n s tc o r b a :e x c e p t i o n e x ) ) 4 2 嵌入式虚拟仪器的组合设计方式 将虚拟仪器控件设计出后,再以某种方式拼接起来,才可以形成功能完整的仪器。这 样的仪器组合方式有很多。其中典型的有秦树人的仪器拼搭场和l a b v i e w 的程序前面板 和程序框图结构。 重庆大学秦树人教授研究的虚拟仪器的拼接方式是通过仪器拼搭场完成的【2 7 1 。它首先 武汉科技大学硕士学位论文 第3 5 页 是对非智能仪器控件的相应部位或结构赋予测试功能,这个操作称为“功能赋予”,然后这 种被功能赋予了的,且相应部位或结构上自带测试功能并满足性能的虚拟控件称为“智能虚 拟控件”,转换成将所需的一些智能虚拟控件以搭积木的方式组装在一起,形成具有某一完 整测试功能的虚拟仪器的过程称为“仪器拼搭”,拼搭好的虚拟仪器称为“智能控件化虚拟仪 器”,拼搭智能控件化虚拟仪器所依托的平台是“仪器拼搭场”。仪器拼搭场相当于智能控件 化虚拟仪器开发系统中的装配工厂,用户通过选用智能控件库中的一些相应的智能虚拟控 件,在仪器拼搭场中按要求进行随机置位,只需对控件进行一些属性设置,不需要编程, 也不需要在控件间进行连线,便能组装、拼搭出所需要的测试仪器。 l a b v i e w 用图形语言( g 语言) 、图表和连线代替文本的形式编写程序,它由程序前面 板和程序框图构成,它是一种基于数据流的编译型图形化编程环境,在各种不同的操作系 统中能兼容,为信号数据的采集,处理分析,显示输出提供集成效应。前面板用于设置输 入数值,查看输出量和模拟真实仪表的面板。前面板是图形用户界面,输入量和输出量以 各种形象的图形形式显示在前面板上,其特点是直观易懂。程序框图是实现虚拟仪器逻辑 功能的图形化源代码,它与前面板相对应,由端口,节点,图框和连线等构成。其中端口 用来同程序6 订面板中的输入量和输出量传递数据,节点实现了函数和功能调用,节点与外 界通过端口进行数据交换。连接线代表程序执行过程中的数据流,定义了框图内的数据流 动方向。 比较上述两种仪器组建方式可以看出,秦树人教授研究的虚拟仪器的拼接方式是通过 功能赋予、测试融合,从功能库选取所需的功能赋予给特定的控件,只需对控件进行属性 设置,不需控件间连线,即可在拼搭场中进行组装。l a b v i e w 平台组建仪器的实质是在后 台编程连线的同时,在系统中以解释语言的形式保存各单元的逻辑制约关系。它通过带输 入输出接口的图标节点和以数据流驱动的图形化编程语言开发仪器,程序运行时,根据用 户交互输入和系统保存的逻辑关系计算数据和处理事物,并得出相应的结果。而本文中的 虚拟仪器组建方式为按照数据流动拖拉虚拟仪器控件,控件之间以中间件系统进行架构, 并通过信号槽机制进行数据流的传输。 4 3 信号槽机制的原理 信号槽是一种比较高级的通信机制【4 5 1 ,应用于对象之间的通信,或者是某些模块化组 件之间的通信。在一般的图形用户界面设计上,当两个具有通信功能的窗体部件要进行通 信时,一个窗体部件发射信号,另一个窗体部件接收信号,这时只需提供一个通道将发射 端与接收端连接起来,即可完成通信。这个过程可以有很多种方法实现。但若此时由于某 个事件的发生,可能是某个时间到了,或者是某个期望的数据值来临,此时导致了其中一 个窗口部件状态发生了改变,这时就产生了一个问题:怎么将该窗口部件的状态的改变通 知给其他希望捕捉到这一信息的相关窗口部件呢? 因此要建立一种机制,能够动态地在不 同类型的对象之间进行信息传递【4 6 1 。 在以前的窗口部件对象间进行通信时,用到的是回调函数。它将一个函数指针作为函 第3 6 页武汉科技大学硕士学位论文 数的参数,当某个对象的状态发生改变时,它通知其他函数调用那个函数指针所指向的函 数,以此来及时通知事件的发生。由于不同的对象可能调用不同的回调函数,当对象多而 复杂时,会导致编写程序时函数指针显得凌乱,容易出错。并且回调函数与调用对

温馨提示

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

评论

0/150

提交评论