(通信与信息系统专业论文)信号发生器的ivicom仪器驱动器研究与实现.pdf_第1页
(通信与信息系统专业论文)信号发生器的ivicom仪器驱动器研究与实现.pdf_第2页
(通信与信息系统专业论文)信号发生器的ivicom仪器驱动器研究与实现.pdf_第3页
(通信与信息系统专业论文)信号发生器的ivicom仪器驱动器研究与实现.pdf_第4页
(通信与信息系统专业论文)信号发生器的ivicom仪器驱动器研究与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(通信与信息系统专业论文)信号发生器的ivicom仪器驱动器研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 本论文分析了自动测试系统和虚拟仪器总的发展趋势,介绍了仪器驱动器的 基本概念。过去2 0 年来虚拟仪器技术的快速发展和应用,极大地促进了测试、测 量及自动化领域的变革。虚拟仪器技术增大了自动测试系统开发的灵活性,降低 了其开发成本。仪器驱动器是现代自动测试系统的重要组成部分,它实现了和仪 器的通信并对它进行控制,提供了更高层的、易用的编程模型,使得对仪器的自 动测试变为简单的函数调用。 本论文的主要任务是对信号发生器的i v i c o m 的设计与实现。可互换虚拟仪 器( i v i ) 是仪器驱动器的一个革命性的变革,它能带来:高性能、仪器仿真、仪 器互换、灵活开发等好处。目前有两种不同类型的i v i 驱动器,分别是:i c 和i v i c o m 。本论文说明了i v i c o m 驱动器的通用开发步骤,包括设计、实现 等。本文所用到的设计和编程工具a g i l e n td r i v e rk i t 和m i c r o s o f tv i s u a lc + + ,能 给设计者提供组件模板并隐藏下层细节,节约大量重复开发的时间。 本文还介绍了s c p i 语法自动测试的相关知识,并给出了一些测试信号发生 器s c p i 解析器的例子。然后对所设计的i v i c o m 仪器驱动器进行功能验证,说 明此设计的正确性。此外,文中还讨论了如何使用所开发的i v i c o m 驱动来设计 信号发生器固件自动测试系统,给出了软件结构设计、用户界面和一些程序流程 图。 本文讨论的i v i c o m 驱动已经完成,实验证明它能有效帮助用户实现自动测 试系统的快速开发。 关键词:自动测试系统,虚拟仪器,i v i c o m ,信号发生器,接口 a b s t r a c t a b s t r a c t t h i sd i s s e r t a t i o na n a l y z e st h eg e n e r a ld e v e l o p m e n tt r e n do ft h ea u t o m a t e dt e s t s y s t e ma n dv i r t u a li n s t r u m e n t s ,a n dg i v e sab r i e f c o n c e p t i o no f i n s t r u m e n td r i v e r t h e r a p i da d o p t i o no f t h ev i r t u a li n s t r u m e n t a t i o nt e c h n o l o g yi nt h el a s t2 0y e a r sc a t a l y z e da r e v o l u t i o ni ni n s t r u m e n t a t i o nf o rt e s t ,m e a s u r e m e n t ,a n da u t o m a t i o n v i r t u a l i n s t r u m e n t a t i o n t e c h n o l o g y i n c r e a s e st h e p r o d u c t i v i t y a n dl o w e r st e s t s y s t e m d e v e l o p m e n tc o s t s i n s t r u m e n t d r i v e r sa r ea l li m p o r t a n tc o m p o n e n ti nm o d e m a u t o m a t e dt e s ts y s t e m s t h e yp e r f o r mt h ec o m m u n i c a t i o na n dc o n t r o lo ft h e i n s t r u m e n th a r d w a r ei nt h es y s t e m ,a sw e l la sp r o v i d i n gah i g h l e v e la n de a s y - t o u s e p r o g r a m m i n gm o d e lt h a t t u r n sc o m p l e xi n s t r u m e n tm e a s u r e m e n tc a p a b i l i t i e si n t o s i m p l es o f t w a r ef u n c t i o nc a l l s n ei v i c o md e s i g na n dr e a l i z a t i o no fs i g n a lg e n e r a t o ri st h em a i nt a s ko ft h i s d i s s e r t a t i o n 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 s ,o ri v i ,i sar e v o l u t i o n a r ys t a n d a r df o r i n s t r u m e n td r i v e rs o o v a t et e c h n o l o g y i v ic a np r o v i d ey o uw i t hm a n yb e n e f i t s ,s u c h a s h i 曲p e r f o r m a n c e ,i n s t r u m e n ts i m u l a t i o n ,i n s t r u m e n t i n t e r c h a n g e a b i l i t y , d e v e l o p m e n tf l e x i b i l i t y t h e r ea r et w ov e r yd i f f e r e n tm o d e l sf o ri n t e r f a c i n gw i t l la n i v id r i v e r :i v i c o ma n di v i c t h ed i s s e r t a t i o np r o v i d e st h eb a s i cd e v e l o p m e n t p r o c e s so fa n i c o md r i v e r , i n c l u d i n gd e s i g n i m p l e m e n t a t i o na n ds oo n a g i l e n t d r i v e rk i ta n dm i c r o s o f tv i s u a lc + + a r ec h o s e na st h ed e s i g na n dp r o g r a m m i n gt o o l s w h i c hh i d et h ed e t a i l so fc o ma n dg i v et h ed e s i g n e di v i c o md r i v e rm u c hm o r e f l e x i b i l i t y n l ed i s s e r t a t i o na l s op r o v i d e si n f o r m a t i o na n dad e t a i l e db a c k g r o u n do f t h es c p i s y n t a xa u t o m a t i o nt e s t s o m ee x a m p l e s f o rt e s t i n gt h es c p ip a r s e ro ft h es i g n a l g e n e r a t o ra r eg i v e n a f t e rt h a t ,t h e r ei sal e v e lt e s tf o rt h ef u n c t i o n so fi v i - c o m d r i v e r i na d d i t i o n ,t h ed i s s e r t a t i o nd i s c u s s e st h eb a s i cd e s i g ni d e a so ft h ea u t o m a t e d t e s ts y s t e mb a s e do ni v i - c o md r i v e rf o rt h ef i r m w a r eo ft h es i g n a l g e n e r a t o r , i n c l u d i n gt h ed e s i g no ft h es o f t w a r es t r u c t u r e ,t h ed e s i g no ft h eu s e ri n t e r f a c ea n dt h e p r o g r a mf l o wc h a r t s t h e i c o md r i v e rd i s c u s s e di nt h ed i s s e r t a t i o nh a sa l r e a d yc o m p l e t e d i th a s t t 堕! 坠! ! b e e np r o v e dt h a tt h ed e s c r i b e dd r i v e rs o f t w a r ec a nr e s u l ti nf a s t e rc o d ed e v e l o p m e n t f o rat e s ts y s t e m k e y w o r d :a u t o m a t e dt e s ts y s t e m ,v i r t u a li n s t r u m e n t ,i v i c o m ,s i g n a lg e n e r a t o r , i n t e r f a c e i i i 堕堕堕一 a t s a p i c o m d l l i v i i v i m s s v i s a v p p v x i s i c l s c p i g p i b i v i i v i c o m 缩略语 a u t o m a t i ct e s ts y s t e m a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e c o m p o n e n to b j e c tm o d e l d y n a m i cl i n kl i b r a r y 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 s i v im e a 吼l r e m e n ta n ds t i m u l u ss u b s y s t e m s a r c h i t e c t u r e v i r t u a li n s t r u m e n ts o f t w a r ea r c h i t e c t u r e v x i p l u g & p l a y v m e b u se x t e n s i o n sf o ri n s t r u m e n t a t i o n a g i l e n ts t a n d a r di n s t r u m e mc o n t r o ll i b r a r y s t a n d a r dc o m m a n d s f o r p r o g r a m m a b l e i n s t r u m e n t s g e n e r a lp u r p o s ei n t e r f a c eb u s c o n f i g u r a t i o n s e s s i o nf a c t o r y v i 自动测试系统 应用编程接口 组件对象模型 动态链接库文件 可互换虚拟仪器 测量激励子系统 虚拟仪器软件体系结构 v x i b o 插即用 用于仪器的v m e 总线扩展 标准仪器控制库 可编程仪器标准命令集 通用接口总线 i v i 配置仓 i v i 。c o m 通话厂 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 驾蓥 日期:年月日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 j 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 趔蓥导师签轹硷塑 日期:年月日 第一章引言 第一章引言 本章通过介绍自动测试系统的概念和虚拟仪器技术的基本架构,引出仪器驱 动器概念,并介绍了毕业设计的主要内容。 1 1 自动测试系统概况 随着科学技术的发展,测试任务越来越复杂,测试工作量加大,而且有些测 试现场人们难以进入,这就要求对被测对象( d e v i c eu n d e rt e s t ,简称d u t ) 能 进行自动测试。通常把采用计算机控制,建立在标准的仪器总线基础上,能自动 完成某种特定测试任务的测量仪器以及其相关设备的有机整体称为自动测试系统 ( a u t o m a t e dt e s ts y s t e m ,简称a t s ) 【jj 。 图1 1 说明了通用的自动测试系统结构,它一般由:控制器( 通常是计算机) 、 程控仪器、仪器接口总线、测试软件、被测对象这五部分组成。控制器通过接口 总线与测试仪器互连,被测对象通过开关( 信号) 将其连到测试仪器的输入输出 端。仪器所使用的接口总线可以是g p i b 、v x i 、u s b 等等,甚至也可以是计算机 内的总线。 自动测试系统的发展大致经历了三个阶段1 2 j : ( 1 ) 第一代自动测试系统 它是针对具体测试任务而研制的,系统的控制采用计算机和些简单的逻辑 和定时电路。这样的系统在接口以及标准化方面,复用性和通用性很差,其适应 性和可扩展性也不好; ( 2 ) 第二代自动测试系统 第二代a t s 集中解决了接口标准化的问题。a t s 中的各个计算机、可程控仪 器、可程控开关都配有符合接口标准的电路,然后用标准的接口总线电缆,如 g p i b 、r s 一2 3 2 等将系统所含的各个设备连在一起,构成整个测试系统。 ( 3 ) 第三代自动测试系统 这是以计算机为核心的自动测试系统。在第三代a t s 中,计算机软件不仅承 担系统控制和通信功能,也开始代替传统仪器中某些硬件的功能,使计算机成为 测量仪器不可分割的部分,这就导致了虚拟仪器( v i r t u a li n s t r u m e n t ,简称v i ) 产生。第三代a t s 主要基于v x i 、p x i 等模块化测试总线,由模块化的仪器设备 电子科技大学硕士学位论文 组成,具有数据传输速率高、数据吞吐量大、体积小、重量轻,系统组建灵活,扩 展容易,标准化程度高等众多优点。 图1 - 1自动测试平台的系统结构 1 2 虚拟仪器技术在自动测试系统中的应用 虚拟仪器是以通用计算机作为系统控制器、以软件实现人机交互和大部分仪 器功能的一种计算机仪器系统。即在一定的硬件环境下编制虚拟仪器软件,利用 p c 的显示功能模拟真实仪器的控制面板,通过虚拟仪器软件功能实现信号的运算、 分析、处理,由加接口设备完成信号的采集、测量与调理,从而实现各种用户定 制的仪器或测试功能。 虚拟仪器代表着从传统硬件为主的测试系统到以软件为中心的测试系统的根 本性转变。表1 1 列出了传统仪器同虚拟仪器技术之间的基本差别。 表1 1虚拟仪器与传统仪器的比较 传统仪器虚拟仪器 由厂商定义最终功能由用户定义最终功能 封闭式的、固定的功能开放的、灵活的功能 2 第一章引言 具有有限连接能力的单独仪器面向应用,具有到网络、外设的连接能力 硬件是关键软件是关键 开发和维护费用昂贵,性价比低开发、维护费用较低,性价比高 技术更新周期时间长技术更新周期时间短,一般l 一2 年 软件在虚拟仪器中具有重要的地位,虚拟仪器的硬件确定后,它的许多分析 和计算功能主要是通过软件来实现的。在很大程度上,虚拟仪器能否成功地运行, 就取决于虚拟仪器的软件。一般来讲,虚拟仪器的软件可以分为三个层次,包括 应用软件( 软面板) 、仪器驱动程序和总线接口软件,图1 2 显示了一个仪器控制 系统的软件架构【3 l 。 应用程序 l 仪器驱动程序 直接i oi i i o 驱动稗序 l 眦m c tl u s b llg 哪0 v x l 0p x i 卜r i a - l 图1 - 2仪器控制系统软件架构 应用程序主要用来对采入计算机的数据进行处理,用户就是通过编制应用程 序来定义虚拟仪器的功能。大部分应用软件可以在计算机屏幕上生成与传统仪器 面板相似的图形界面,用于显示测量结果等,因此应用程序也常常称为软面板程 序。同时,用户还可以通过软面板上的开关和按钮,模拟传统仪器的各种操作, 通过键盘或鼠标实现对虚拟仪器的操作;仪器驱动程序主要用来初始化虚拟仪器, 设定特殊的参数和工作方式,控制虚拟仪器保持正常的工作状态:总线接口软件 即i o 软件,它用来实现应用软件与仪器的实际通信。 本论文所论述的基于c o m 的i v i 仪器驱动器在图1 - 2 中属于仪器驱动程序这 一块。i v i 规范提出了一种全新的虚拟仪器驱动器概念,从而使得用i v i 技术构建 电子科技大学硕士学位论文 自动测试系统也成为一个革命性的变革。i v i 相关技术规范将在第二章里详细讨 论。 1 3 毕业设计的任务 从前面仪器控制系统的软件架构中可以看到,仪器驱动器是自动测试系统应 用程序和仪器进行交流的重要桥梁。特别是对于v x i 总线系统一类的,只能与软 件一起使用的仪器,如果没有仪器驱动器将无法完成自动测试。实际上,仪器驱 动器已经成为虚拟仪器软件体系中最重要的元素,也是现代测试和测量系统的关 键。 本人在安捷伦成都仪器事业部实习期间,参与了该公司某型号信号发生器项 目的i v i c o m 仪器驱动器设计以及部分软件测试的工作,本论文的所涉及的内容 均来源于该项目。注:如无特别说明,论文中所提及的信号发生器和i v i c o m 仪 器驱动器均指该课题所设计。毕业设计的主要工作包括以下三个方面: 信号发生器的i v i c o m 整体设计与实现 信号发生器的s c p i 语法测试 i v i c o m 仪器驱动器的功能测试 信号发生器的i v i c o m 在自动测试系统中的应用 仪器驱动器已经在得到了广泛的应用,目前实际上应用较多的都是v p p 规范 的仪器驱动器,近两年来国内许多高校和研究所已经开始对i 规范的仪器驱动器 进行研究。i v i 规范有两种实现方式:基于a n s ic 的i v i c 和基于c o m 的 i v i c o m ,而国内的研究大部分都是采用n i 公司提出的i c 的体系结构。本论 文所设计的i v ! 仪器驱动器建立在安捷伦公司提出的用c o m 实现i v i 的设计思想 之上,论文中,对i v i c o m 技术从架构、设计、实现、测试以及应用等多方面进 行了深入、系统的研究和探讨,希望能对国内的基于i v i 仪器驱动器研究提供有价 值的参考。 4 第二章仪器驱动器设计的关键技术 第二章仪器驱动器设计的关键技术 虚拟仪器系统通常被认为是第三代a t s 的同义语。计算机在仪器和测试技术 中的应用导致了仪器驱动器概念的诞生。这章将讨论本文所设计的驱动器相关技 术,包括虚拟仪器技术、c o m 技术和i v i 技术。 2 1 仪器驱动器技术 2 1 1 仪器驱动器概念及结构 在上一章介绍的虚拟仪器的软件体系中,有一个称为“仪器驱动器”的部分。早 期的自动测试系统开发,程序员需要学习不同仪器的每一个命令集,编程往往是 最耗时的部分。在使用同样的仪器创建新的应用时,程序员会发现自己要做大量 的重复工作。针对这种情况,一些仪器厂商开始采用模块化编程方法,编写隐藏 了低层命令并符合通用标准的驱动程序,并尝试研究部分仪器代码可重用性问题。 这些为特定仪器预先编写的一些软件程序库被称为仪器驱动程序,即:仪器 驱动器( i n s t n n n e n td r i v e r ) ,它是介于计算机与仪器硬件设备之间的软件中间层, 由函数库、实用程序、工具套件等组成,是一系列软件代码模块的集合,该集合 对应于一个计划的操作,如配置仪器、从仪器读取、向仪器写入和触发仪器等。 它驻留在计算机中,是连接计算机和仪器的桥梁和纽带。通过提供方便编程的高 层次模块化库,用户不再需要学习复杂的针对某个仪器专用的低层编程协议,可 见采用仪器驱动器是快速开发测试测量应用的关键。 从功能上看,一个通用的仪器驱动器一般由功能体、交互式开发者接口、编 程开发者接口、i o 接口和子程序接口5 部分组成【4 j ,如图2 1 所表示。 电子科技大学硕士学位论文 应用程序 交互式开发者接口编程开发者接口 仪器驱动程序( 功能体) 子程序接口 i o 接口( v i s a ) 图2 1通用的仪器驱动器模型 功能体。这是仪器驱动器的主功能区,可以理解为仪器驱动器的框架程序, 它从总体上决定了一个仪器驱动器与另一个仪器驱动器在开发和用方面的 差别。 交互开发者接口。为方便用户使用,支持仪器驱动器开发的应用开发环境 通常提供图形化的交互开发接口。例如,l a b w i n d o w s c v l 中,函数面板就 是一种交互开发接口。函数面板中,仪器驱动器函数的各个参数都是以图 形化的控件形式表示。 编程开发者接口。它是应用程序调用仪器驱动器函数的软件接口,例如 w i n d o w s 系统下仪器驱动器的动态链接库文件d l l 。 i o 接口。它完成仪器驱动器与仪器间的实际通信。可以使用总线专用y o 软件,如g p i b 、r s 2 3 2 。也可以使用跨多个总线使用的通用的标准i o 软 件:v i s a i 0 。 子程序接口。它是仪器驱动器访问其它一些支持库的软件接口,例如数据 库、f f t 函数等。当仪器驱动器为完成其任务而需调用其它软件模块、操 作系统、程控代码库及分析函数库时,将用到子程序接口。 2 1 2 仪器驱动器技术的分类 伴随着测试领域的应用经历了从传统仪器到虚拟仪器等不同的发展阶段,仪 器驱动器技术规范也经历了从i e e e 4 8 8 2 、s c p i 、v p p 仪器驱动器到i v i 仪器驱动 器的发展。到目前为止,可以分为以下三种类型的仪器驱动器: ( 1 ) 直接i o 3 】 6 ) ) ) ) ) q 6 第二章仪器驱动器设计的关键技术 又被称为命令集编程方式。编程者在程序中,直接使用符合i e e e 4 8 8 2 和s c p i 规范的程控命令来控制仪器。当: 只须给仪器发送几个命令 仪器驱动程序不存在 不必把仪器命令集合分发给其他开发者 时,需要编程者使用直接i 。 ( 2 ) v p p 仪器驱动器 v p p ( v x ip l u g & p l a y ) 系统联盟发布了v p p 规范,该规范定义了系统的框架、 软件接口、软件环境和仪器驱动器模型【5 】。v p p 仪器驱动比直接i o 高一个层次, 它把与仪器的底层通信封装成一些高层函数,用户可以在应用程序中直接使用这 些高层函数,而无需关心所控制的仪器是支持s c p i 还是不支持s c p i ,也不用关 心仪器是消息基还是寄存器基。v i s a ( 将在2 3 节作介绍) 作为底层i ,o 库,是这 一时期的主要成果。它不区分仪器的种类,用一组通用函数实现驱动器功能,通 用性得到了很大加强。 ( 3 ) i v i 仪器驱动器 然而跟i e e e 4 8 8 2 类似,v p p 驱动器接口仍没有严格的语义标准,仪器厂商 可以根据自己的特长进行开发,这使得驱动器产品的接口不统一,仪器互换性仍 没有最终实现。在这种背景下,为了实现仪器互换和互操作,1 9 9 8 年成立了可互 换虚拟仪器驱动器( 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 s ,简称i v i ) 基金会,讨论 开发可互换仪器驱动模型,致力对硬件互换、运行性能、发展弹性、质量保证等 驱动器问题进行规范【5 j 。 i v i 仪器驱动器的相关技术和规范,将在2 3 节中进行详细的论述。 2 2 基于c o m 的组件开发 组件对象模型( c o m p o n e n to b j e c tm o d e l ,简称c o m ) ,是一种以组件为发布 单元的对象模型,这种模型使各软件组件可以用一种统一的方式进行交互【6 l 。它是 由微软提出的组件标准,不仅定义了组件之间进行交互的规范,也提供了组件程 序运行所需的环境,因为组件对象之间交互的规范不依赖于任何特定的语言,所 以c o m 可以作为不同语言协作开发的一种标准。 7 电子科技大学硕士学位论文 2 2 1 组件的概念和特点 ( 1 ) 组件的概念 组件是可以明确辨识和管理,可以提供某项服务的自包含的软件模块。它封 装了一定的数据( 属性) 和方法( 函数) ,并提供特定接口。开发人员通过访问这 些特定接口来使用组件与其它程序模块通信、交互,实现预期功能。 ( 2 ) 组件的特点 即插即用:组件可以方便地集成在系统中,不用修改代码,也不用重新 编译。 以接口为核心:组件的接口和实现是分开的,组件通过接口实现与其它 组件或系统的交互,其具体的实现被封装在内部。使用组件时只需要关 心接口而不必关心实现的细节。 标准化:组件的接口必须严格标准化。 总之,组件在功能上是离散的、被定义好的;组件对自己封装的方法都提供 标准而清晰的接口;组件可以单独使用,也可以与其它组件一起组装成一个完整 的系统。 组件是实现仪器驱动器语言、平台无关和网络位置透明的关键技术。基于组 件技术的驱动器模块通过标准接口与其它软件模块通信,各个组件就像挂在“总 线”上一样通过公共通道传递信息。基于此,编程人员可以像“搭积木”似的开发自 己的测试程序。更换仪器后,只要驱动器接口不变就不用更改测试程序。使用驱 动器组件的仪器模拟的互换性、测试软件的开放性和可重用性得到了根本保证, 同时实现了软件开发和应用的不断“迭代和增量”过程。 2 2 2c o m 以及c o m 接口规范 实际上,组件之间的接口是组件软件的关键,因为接口是双方进行通信的基 础。如果不考虑与其他软件的通信,接口标准可以自定义;否则,应使用一个达 成一致的规范。从目前w i n d o w s 系统上的软件使用情况来看,c o m 就是这样一 个定义了一套在构建一个组件时所必须遵循的标准。 2 2 2 1 面向对象组件模型 c o m 不仅仅提供了组件间接口标准,它还引入了面向对象的思想。在c o m 标准中,组件模块为c o m 对象提供了活动空间,c o m 对象以接口的方式提供服 8 第二章仪器驱动器设计的关键技术 务,这种接口称为c o m 接口。如图2 2 可以说明c o m 组件、c o m 对象和c o m 接口的关系。 接口1接口2 接口3 图2 2c o m 接口模型 在w i n d o w s 系统平台上,一个c o m 组件或者是个d l l ( d y n a m i cl i n k i n g l i b r a r y ,动态链接库) 文件,或者是一个e x e ( 可执行程序) 文件。一个组件程 序可以包含多个c o m 对象,并且每个c o m 对象可以实现多个接口。当要调用 组件功能时,它首先创建一个c o m 对象或者通过其他途径获得c o m 对象,然 后通过该对象所实现的c o m 接口调用它的服务。当所有服务结束后,如果客户 程序不再需要c o m 对象,那么它应该释放掉对象所占有的资源,包括对象本身。 大多数c o m 组件只包含一个c o m 对象。组件和对象的区别在于:对象封 装了一组相关的函数,而组件则封装了一组相关的对象。 c o m 组件对象具有以下特性: ( 1 ) 语言无关性 c o m 标准与实现语言无关,因为它所采用的是种二进制代码级的标准, 而不是原代码级的标准。c o m 对象把o o p ( o b j e c t o r i e n t e dp r o g u a m m i n g ,面向 对象编程) 语言中的对象封装起来,并提供统一的接口,使得它可以被各种不同 的语言所使用。只要是具有足够强描述力的语言,就可以用来编写c o m 组件, 并且差不多每种语言在实现时都提供了对c o m 的支持。如:v i s u a lc c + + 、v i s u a l b a s i c 、d e l p h i 、c + + b u i l d e r 、j a v a 甚至传统的p a s c a l 等。 虽然c o m 规范的定义与语言无关,但与c o m 规范最贴近并且最能够反映 c o m 特性的还是c 或者c + + 语言。 ( 2 ) 进程透明性 在客户服务器模型的软件结构中,运行在客户端的代码和运行在服务器端的 9 电子科技大学硕士学位论文 代码,既可以在同一个进程中,也可以在不同进程中。c o m 所提供的服务组件 对象在实现的时候也有两种模型:进程内对象和进程外对象。但是这种区别对于 客户程序来说是透明的,客户只需要遵守c o m 规范就可以了。 实现这种进程透明性在于c o m 库,c o m 库负责组件程序的定位,管理组件 对象的创建和对象与客户之间的通信。当客户创建组件对象时,c o m 库负责装 入组件模块或者启动组件进程,如果客户在远程机器上创建对象时,两个c o m 库会协作完成远程c o m 对象的创建工作,并且在客户进程中创建一个代理对象 ( p r o x c yo b j e c t ) ,客户程序直接与代理对象进行交互。因此,即使组件的进程模 型发生了变化,客户程序也不需要重新编译。 ( 3 ) 可重用性 可重用性是任何对象模型实现的目标。对c o m 对象的客户程序来说,不知 道c o m 对象内部实现过程,因此,对象的重用性可建立在组件对象的行为方式 上,而不是具体的实现上。 c o m 用两种机制实现对象的重用。包括包容( c o n t a i n m e n t ) 和聚合 ( a g g r e g a t i o n ) 两种重用模型。这两种重用机制非常相似,其本质也都是在一个 组件中对另外一个组件的使用。在包容机制中,外部组件除了实现自己的接口外, 还包含了指向内部组件所有接口的指针,使内部组件接口相对于外部组件的客户 是不可见的,只有通过外部组件提供的接口才能间接完成对内部组件接口的调用, 并以此实现对已有组件的重用。聚合机制的本质其实就是包容,只不过是一个特 例而已。采用聚合机制的组件并没有实现用于转发给内部组件接口的接口,而是 直接将客户发出的对内部组件接口的请求直接传递给内部组件的接口,使其直接 暴露于外部组件的客户。但是客户在请求到此接口指针并对其接口进行调用时, 仍不会意识到被重用组件的存在。由于外部组件对内部组件的重用只是通过传递 对接口的请求而将被请求接口暴露于客户,因此只能实现与被重用组件所提供服 务完全一样的重用功能。 2 2 2 2c o m 接口规范 ( 1 ) c o m 接口 c o m 接口本身也是c o m 的一种特性,它为c o m 组件与客户之间进行通信 提供了保障,为多个客户共享同一个组件对象提供了有效的控制手段。 接口是包含了一组函数的数据结构,通过这些数据结构,客户代码可以调用 组件对象的功能。客户程序是一个指向接口数据结构的指针来调用接口成员函数。 1 0 第二章仪器驱动器设计的关键技术 如图2 3 所示,接口指针实际上又指向另外一个指针,这第二个指针又指向一组 函数,称为接口函数表,通常也称为虚函数表( v i r t u a lf u n c t i o nt a b l e ) 。 b p v t a b l e v t a b l e l 竺竺h 竺卜 指针函数1 指针函数2 _ 对象实现 指针函数3 4 4 图2 3虚函数表 ( 2 ) 接口定义语言 c o m 规范采用描述远程调用接口i d l ( i n t e r f a c ed e s c r i p t i o nl a n g u a g e ,接口 描述语言) 基础上,进行扩展形成了c o m 接口的描述语言。接口描述语言提供 了一种不依赖于任何语言的接口描述方法,它可以成为组件程序和客户程序之间 的共同语言。例如: i n t e r f a c ei a g i l e n t r f s i n g e n s w e e p :i u n k n o w n h r e s u l t c o n f i g u r e ( i n 】a g i l e n t r f s i n g e n a m s w e e p m o d e e n u mm o d e , i n l o n gd i r e c t i o n ) ; h r e s u l l d i r e c t i o n ( i n a g i l e n t r f s i n g e n a m s w e e p d i r e c t i o n e n u mv a l ) ; ( 3 ) 接口特性 二进制特性:c o m 规范是与语言无关的,同样,接口的定义也是与语言无 关的。 接口不变性:组件开发好后,接口不能随意改动,这样才能保证客户程序与 组件之间的协调运作。因此,只要客户程序与组件程序都按照既定的接口进行开 发,就可以保证两者独立开发结束后,还能正常协同工作。 继承性( 扩展性) :接口不变,并不意味着接口不再发展,随着组件的发展, 接口也需要发展。新的接口可以继承老接口的说明,但它无法继承老接口的实现, 电子科技大学硕士学位论文 接口总是一种规范和要求,它与其功能的实现并没有必然的联系。接口继承和c + + 的类继承不一样,它是一种说明性继承,而类继承不只是说明继承,也是实现继 承;接口继承只允许单继承,不允许多重继承,但类继承的一个派生类可以有多 个基类。 2 3i v l 相关技术规范 无论是v p p 仪器驱动器,还是i v i 仪器驱动器,都是通过调用下层的v i s a y o 来实现仪器的实际通信。 2 3 1 虚拟仪器软件结构v i s a i o 接口是完成仪器驱动器和仪器间通信的通道,随着v x i 技术和虚拟仪器 技术的发展。各个仪器厂商推出的仅适用于某类仪器的i o 接口软件已经不能满 足需求了。这时,v p p 系统联盟制定了新一代的接口软件规范,即虚拟仪器软件 体系( v i r t u a li n s t r u m e n ts o f t w a r e a r c h i t e c t u r e ,简称v i s a ) ,使得各个厂商均以该 接口软件作为i o 控制的底层函数库来开发仪器驱动程序。这样,不同厂商的软 件就可以在同一平台上协作运行,大大减少了软件的重复开发。 对仪器驱动器和应用程序而言,v i s a 库函数是一套可方便调用的函数,其 核心函数能够控制各种类型器件,无需考虑器件的接口类型和软件的兼容性。掌 握了v i s a 后,就不需要学习不同接口、不同厂商的i o 接口软件了。目前有很 多设备既有串行口又有g p i b 口,如果不使用v i s a ,根据连接方式,可能必须学 习和使用两种与设备通信的a p i 。而用v i s a ,只需使用一种a p i 与设备通信, 而不用关心其连接方式了。 各大公司都有自己v i s a 库,在本文的设计与实现中,使用a g i l e n t 公司为用 户提供的基于v i s a c o m 的a g i l e n ti ol i b r a r y 作为底层i o 库1 7 j 。 v i s a 是在不同的总线上作了一个统一的编程接口,使用v i s a 接口编写的程 序可以对使用不同总线的仪器进行控制;而i v i 驱动比v i s a 规范更高一层,是 在同类仪器不同的产品间作了一个统一的编程接口。使用i v i 仪器驱动器可以对 支持i v i 规范的同类仪器进行控制。 1 2 第二章仪器驱动器设计的关键技术 2 3 2i v i 规范 仪器驱动器的概念以及相关标准已经被广泛接受,其优势在于将仪器i o 代 码与测试逻辑代码分开,这不但使得测试程序的开发变得简单,而且也使得测试 代码更易于维护。 尽管如此,在仪器编程和测试系统软件应用方面,仍存在一些亟待解决的问 题,比如,能否做到在更换系统中些陈旧仪器时测试软件无需改动;一个测试 软件包能否适应不同类型仪器硬件构成的测试系统;测试代码能否被移植到不同 的仪器上:当仪器故障或需要校准时,测试系统能否不间断运行。 基于以上问题,n i 公司提出了一种可互换的仪器驱动编程模型,联合众仪器 厂商成立了i v i 基金会,致力于在v p p 兼容框架的基础定义上定义一系列标准仪 器编程模型。i v i 基金会的主要任务表现在以下方面: ( 】) i v i 基金会根据在常用测试系统中仪器的重要性和通用性,划分仪器类。 目前,已经定义的最新仪器类有:示波器类( i v i s c o p e ) 、数字万用表类 ( i v i d m m ) 、函数发生器类( i v i f g e n ) 、开关类( i v i s w t c h ) 、功率表类 ( i v i p o w e r ) 、频谱分析仪类( i l v i s p e c a n ) 、射频信号发生器类 ( i l v i r f s i g g e n ) 、直流功率源类( i l v i d c p w r ) 。 ( 2 ) i v i 基金会的目的是通过制定一套包括基本功能、设置和允许值在内的标 准仪器驱动器编程接口规范,来降低总的测试系统开发费用。 ( 3 ) 1 v i 基金会定义了适用于仪器中所有仪器的通用属性模型,以实现仪器的 互换性,改善仪器的执行性能。 ( 4 ) 除了与仪器相关特性之外,i v i 基金会还定义了一些全局属性,来描述仪 器驱动器如何管理计算机与仪器硬件间的控制操作。 ( 5 ) i v i 基金会为确保驱动器的互换性和灵活性,描述仪器驱动器功能完整性 和正确性,要定义相关规范。 ( 6 ) v p p 规范是建立i v i 规范的基础,i v i 基金会在其基础上做一些扩展来达 到i v i 的目标。 下面列出i v i 基金会已制定的一些主要的i v i 技术规范。 i v i 3 1 :i v i 仪器驱动器系统结构规范; i v i 3 2 :固有功能规范; i v i 3 3 :标准交叉仪器类功能规范; i v i 3 4 :a p i 设计格式指南; 电子科技大学硕士学位论文 i v i - 3 5 :配置服务器规范: i v i 3 6 :c o m 通话厂规范: i v i 3 7 :事件服务器规范: i v i 3 9 :c 共享组件规范: i 一3 1 0 :i v i - m s s 规范 i v i 3 1 2 :浮点共享组件规范; i v i 4 1 :i v i s c o p e 示波器类规范; i v i 一4 2 :i v i d m m 万用表类规范; i 4 3 :i v i f g e n 函数发生器类规范; i v i - 4 4 :,i v i d c p w r 直流功率源类规范; i v i - 4 6 :i v i s w t c h 开关类规范; i v i 4 7 :i v i p w r m e t e r 功率表类规范; i v i 4 8 :i v i s p e c a n 频谱分析仪类规范; i v i 4 10 :i v i r f s e n g e n 射频信号发生器类规范。 2 3 3i 驱动器特性 i v i 规范定义的仪器驱动器有i v i 类驱动器和i 专用驱动器两大类。如图 2 - 4 所示嘲。 i v i 专用驱动器 封装了用于控制某一种或某一类仪器所需的信息,能够直接与仪器硬件 通信。 i v i 类兼容专业驱动器 与某一类已定义的i 仪器类兼容,使用已定义仪器类的标准a p i ,但 同时增加了一些其他特性,以满足用户对仪器互换性的要求。 i v i 定制专用驱动器 使用用户化的a p i ,不与任何定义的仪器类标准兼容,不能实现硬件的 互换性,主要用于一些特殊的仪器。 1 4 第二章仪器驱动器设计的关键技术 图2 - 4i v i 驱动器类型 i v i 类驱动器 提供符合已定义i v i 仪器类规范的仪器驱动器a p i ,通过i v i 类兼容专 用驱动器间接实现仪器的通信连接。可以把i 类驱动器想成一

温馨提示

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

评论

0/150

提交评论