Chinaunix首页 | 论坛 | 博客
  • 博客访问: 658887
  • 博文数量: 205
  • 博客积分: 7891
  • 博客等级: 少将
  • 技术积分: 2168
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-29 13:16
文章分类

全部博文(205)

文章存档

2015年(4)

2014年(5)

2013年(1)

2012年(4)

2011年(51)

2010年(86)

2009年(45)

2008年(9)

分类: 嵌入式

2011-09-20 17:25:28

长期以来,互换性成为许多工程师建造测试系统的目标。因为在很多情况下,仪器硬件不是过时就是需要更换,因此迫切需要一种无需改变测试程序代码就可用新的仪器硬件改进系统的方法。针对这一问题,在19989月成立了IVIInterchangeable Virtual Instrument)基金会。IVI基金会是最终用户、系统集成商和仪器制造商的一个开放的联盟。目前,该组织已经制订了五类仪器的规范一一示波器/数字化仪(IVIScope)、数字万用表(IVIDmm)、任意波形发生器/函数发生器(IVIFGen)、开关/多路复用器/矩阵(IVISwitch)及电源(IVIPower)。美国国家仪器公司(简称NI)作为IVI的系统联盟之一,积极响应IVI的号召,开发了基于虚拟仪器软件平台的IVI驱动程序库。

VI的概念

                               

1   VI的内部功能划分

VI(虚拟仪器,Virtual Instrument)通过应用程序将通用计算机与仪器硬件结合起来,用户可以通过友好的图形界面(通常叫做虚拟前面板)操作这台计算机,就象在操作自己定义、自己设计的一台单个传统仪器一样。VI以透明的方式把计算机资源(如微处理器、内存、显示器等)和仪器硬件(A/DD/A、数字I/O、定时器、信号调理等)的测量、控制能力结合在一起,通过软件实现对数据的分析处理、表达以及图形化用户接口(见图2-1)

应用程序将可选硬件(GPIBVXIRS-232DAQ)和可重复用原码库函数等软件结合在一起,实现了仪器模块间的通信、定时与触发。原码库函数为用户构造自己的VI系统提供了基本的软件模块。由于VI的模块化、开放性和灵活性,以及软件是关键的特点,当用户的测试要求变化时,可以方便地由用户自己来增减硬、软件模块,或重新配置现有系统以满足新的测试要求。这样,当用户从一个项目转向另一个项目时,就能简单地构造出新的VI系统而不丢弃已有的硬件和软件资源。

关于 IVI
  IVI Foundation 成立于 1998 年,目的是创建基于VXIplug&play 规范之上的仪器驱动标准,并提供各种额外特性(包括驱动 API 一致性、可互换性、仿真、状态高速缓存、多线程安全等)。这些特性帮助延长了使用 IVI 测试系统的寿命。IVI Foundation 定义了两种基本的架构和接口类型,即 IVI-C  IVI-COMIVI-C 驱动程序基于现有的 VXIplug&play 规范和标准的 ANSI C 编程模型。IVI-COM 驱动程序基于微软公司的标准的 COMComponent Object Model,组件对象模型)技术。IVI 仪器驱动程序可在通用的开发环境中使用,包括NI公司的 LabVIEW  LabWindows/CVI、安捷伦公司的 VEE Pro,以及微软公司的Visual BasicVisual C++  Visual C# .NET

IVIVISA的关系

VISA是在不同的总线上作了一个统一的编程接口。IVI是在同类仪器,不同的产品间作了一个统一的编程接口。或者说为同类仪器的不同仪器驱动上作了一个统一的编程接口。 
使用VISA接口编写的程序可以对不同的总线上(如GPIBVXISerialPXI)的仪器进行控制。但要求被控的仪器是同一厂商的同类仪器。即仪器的程控指令集是一样的。使用IVI接口编写的程序可以对同类仪器,但厂商不同,程控指令集不同的仪器进行控制。要求是
 
被控仪器支持IVI标准,提供IVI仪器驱动。如果从软件体系结构上由低向高的来排序,应该是:程控仪器->程控指令+VISA->仪器驱动->IVI->测试系统应用。

从二者的英文全名也可窥见一斑:

VISA: Virtual Instrument Software Architecture

IVI: Interchangeable Virtual Instrument

实现IVI-COM驱动程序

上面说到了IVI Foundation定义了两种基本的架构和接口类型,针对LabWindowLabVIEWIVI-C驱动程序的实现占据着主要地位,虽然IVI Foundation定义了IVI-COM驱动程序框架和接口函数,但实现的并不是很多,此次采用ATL技术实现了IVI-COM驱动程序,实际上实现了一个通用的函数库,方便不同的驱动程序开发者进行调用。

为了实现这样一个函数库,还需要VISA函数库,互换性原则的体现在对VIAS库中不同仪器控制命令的调用。IVI-FoundationIVI-COM驱动程序的定义是比较详细的,例如有这样的定义:

COM Method Prototype

HRESULT SendSoftwareTrigger ();

定义了一个COM方法SendSoftwareTrigger,调用该函数发送一个软触发的三角波信号到设备上。在规范中详细的定义了每个接口类的类名、属性、方法以及参数说明,详细的接口定义文件可以参考规范中的IDL文件附件,有了这个IDL文件和接口说明,具有ATL技术背景的话,实现IVI-COM就不是问题了,又例如:

Data Type   ViString

Access      R

Applies to   <capability>

Coercion    None

High Level Functions

该列表定义了一个COM属性,其属性名为:Name ([in] LONG Index),返回值类型为ViString,输入参数为长整型,ViString数据类型和MFC中的CString类似。

限于篇幅这里不详细列出实现代码细节,具体的文档还可以参考以下网址:

虚拟仪器名词扫盲()

VIRTUAL INSTRUMENTS :虚拟仪器(其实VIRLTUAL 真实意思有一层与虚拟截然不同的意思,实 质,真实...

VIRTUAL INSTRUMENTATION:注意INSTRUMENT :仪器, INSTRUMENTATION:乃是指测量测试的方 法,技术.

LABVIEWLaboratory Virtual Instrument Engineering Workbench.

GPIB(HP-IBIEEE488):General Purpose Interface Bus,Hewlett-Packard Interface Bus, IEEE 488

Bus都是同一个东西,用来控制台式仪器的通讯协议(当然既要有软也要有硬方面的规范了),和后来IEEE 488.2

SCPIStandard Commands for Programmable Instruments ,可程控仪器标准指令集。

VISAVirtual Instrument Software Architecture,虚拟仪器软件架构

IVI driver:Inerchangeable Virtual Instrauments Driver 可互换虚拟仪器驱动               VXI(IEEE 1155)VMEbus eXtensions for Instrumentation(VME:VERSAbus Module Eurocard) 
               VME
总线是70年代末80年代初时由MotorolaSignatic等公司创立的一计算机总线。

PXIPCIbus eXtensions for Instrumentation(PCIJ)

DAQData AcQuisition数据采集,多指基于计算机的板卡及插卡式仪器的DAQ

SCXISignal Conditioning eXtensions for Instrumentation,NI自定义的一专用于信号条理 
领域的“总线”

CompactPCI   一种坚固的模块化结构,结合了PCI电气规范与Eurocard封装。适合于工业计算应用。

GPIB   General-Purpose Interface Bus, 通用接口总线。一种8位的并行通信接口。根据IEEE 488-1987 标准,数据传输速率可达1Mbyte/s

Industrial PC   工业计算机,或称为工控机,一种能够承受工业环境的计算机。 
   
 MXI-2  
一种PCI系统与VXI系统间的总线扩展器。由此PCI系统可以像内置VXI控制器一样控制VXI  
MXI-3  
一种PCIPCI的桥(PCI-PCI bridge),用于以台式计算机远程控制PXI机箱。
PICMG   PCI Industrial Computer Manufacture Group PCI工业计算机制造商协会。一个会员公司的组织,维护目前的CompactPCIPCI/ISA规范。
PXI  
一种基于PCI的坚固、模块化的结构,具有专为测试与测量应用设计的电气规范与时钟电路。 
PXI System Alliance    PXI
系统联盟,一个全球生产商与系统集成商的组织。控制PXI规范,定义用于测试与测量、工业自动化  与数据采集应用的CompactPCI产品系统级要求。
RTSI Bus   
实时系统集成(Real-Time System Integration)总线。一种局部总线,通过在插入式数据采集卡    或仪器类板卡间直接连线实现计数器、时钟和触发信号的共享。 
Star Trigger  
星形触发。组合了第二槽(Slot 2)的左侧局部总线,用于为第3槽至第15槽提供高精度、低  偏移的触发。
Trigger Lines   
触发线。PXI总线上的信号线,专门用于在模块间传送触发信号。
VISA 
  提供LabVIEWCVIMeasurement StudioCC++Visual Basic等各个编程环境与编程语言之间的接口。 
VXI 
一种工业标准的仪器总线,基于VME总线,主要用于模块化的单卡仪器(instrument-on-a-card)系统。 
VXIplug&play 
标识硬件和软件与VXIplug&play 系统联盟(VXIplug&play System Alliance)规范的一致性。VISA是该联盟的官方软件语言。

阅读(7219) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~