Delivering Interchangeability and More AUTOTESTCON 2012 Anaheim CA
Delivering Interchangeability and More AUTOTESTCON 2012 Anaheim, CA September 10 -13, 2012
Agenda IVI Basics and Background n IVI Architecture n IVI Shared Components n Why IVI? n IVI-COM, IVI. NET and IVI-C n www. ivifoundation. org
IVI Background n Open consortium End-users ¨ System integrators ¨ Instrument and software vendors ¨ n n n Founded in August 1998, incorporated in March 2001 26 member companies Consolidated home for many SW standards ¨ ¨ ¨ IVI Instrument Drivers VISA VXIplug&play SCPI LXI Synchronization www. ivifoundation. org
What is IVI? The primary purpose of the Consortium is to • Promote the development and adoption of standard specifications for programming test instrument • Focus on the needs of the people that use and develop test systems who must take off-the-shelf instrument drivers and build and maintain highperformance test systems • Build on existing industry standards to deliver specifications that simplify interchanging instruments and provide for better performing and more easily maintainable programs From IVI Foundation By-laws www. ivifoundation. org
IVI’s Fit with Other Specs IVI 4. x(Classes) Scope DMM FGen DCPwr ACPwr Swtch Pwr. Me Spec. An RFSig. Gn Counter Down. Cnv Up. Conv Digitiz Instrument Capabilities Programming Interfaces for C/C++/C#/VB Lab. VIEW, etc IVI 3. x (Arch) SCPI C COM VXI plug&play . NET VISA message register IO Interfaces & SW Protocols IVI 6. 3 PXI plug-in Hi. SLIP PXI-2 and PXI-6: Software AXIe 2. 0 VXI-11 GPIB LXI USB TMC GPIB Ethernet USB VXI VME PXI AXIe 1. 0 PCI, PCIe & Compact PCI AXIe 3. 1 T&M Specific Needs Physical Connection
IVI’s Fit with Other Specs IVI 4. x(Classes) Scope DMM FGen DCPwr ACPwr Swtch Pwr. Me Spec. An RFSig. Gn Counter Down. Cnv Up. Conv Digitiz Instrument Capabilities Programming Interfaces for C/C++/C#/VB Lab. VIEW, etc IVI 3. x (Arch) SCPI C COM VXI plug&play . NET VISA message register IO Interfaces & SW Protocols IVI 6. 3 PXI plug-in Hi. SLIP PXI-2 and PXI-6: Software AXIe 2. 0 VXI-11 GPIB LXI USB TMC GPIB Ethernet USB VXI VME PXI AXIe 1. 0 PCI, PCIe & Compact PCI AXIe 3. 1 T&M Specific Needs Physical Connection
What is IVI – Really? ? 4. 15 Digitizer 4. 14 Up. Conv 4. 13 Down. Cnv 4. 12 Counter 4. 10 RFSig. Gn 4. 8 Spec. An 4. 7 Pwr. Me 4. 6 Swtch 4. 5 ACPwr 4. 4 DCPwr 4. 1 Scope n 4. 3 FGen n Architecture specifications Instrument class specifications A library of shared software components 4. 2 DMM n Architecture Specifications 3. 1, 3. 2, 3. 3, 3. 4, 3. 5, 3. 6, 3. 9, . 3. 10, 3. 12, 3. 17, 3. 18 www. ivifoundation. org 13 specs @ ~220 pages ~1140 pages of specs
Goals of the IVI Foundation n Hardware Interchangeability Simplify replacing an instrument from a system with a similar one ¨ Preserve test software when instruments become obsolete ¨ Simplify test code reuse from design validation to production test ¨ n Quality Improve driver quality ¨ Establish guidelines for driver testing and verification ¨ n Software Interchangeability Provide an architectural framework that allows users to easily integrate software from multiple vendors ¨ Provide standard access to driver capabilities such as simulation, state caching, range checking and coercion ¨ Provide consistent instrument control in popular programming environments ¨ www. ivifoundation. org
IVI Membership Benefits n n n Influence the development of standards Participate in and access future standards Share ideas with developers, users, system integrators and vendors Access source code for shared components Participate in interoperability sessions Network with test and measurement industry leaders www. ivifoundation. org
Approved Instrument Classes n n n n DC power supply AC power supply DMM Function generator Oscilloscope Power meter RF signal generator n n n Spectrum analyzer Switch Upconverter Downconverter Digitizer Counter/timer www. ivifoundation. org
Driver Architecture Spec’s n n n IVI-3. 1: Driver Architecture Specification IVI-3. 2: Inherent Capabilities Specification IVI-3. 3: Standard Cross-Class Capabilities Specification IVI-3. 4: API Style Guide IVI-3. 5: IVI Configuration Server Specification IVI-3. 6: COM Session Factory Specification IVI-3. 9: C Shared Components IVI-3. 12: Floating Point Services Specification IVI-3. 14: Primary Interop Assembly Specification IVI-3. 15: Ivi. Lxi. Sync Specification IVI-3. 17: Installer Requirements Specification IVI-3. 18: IVI. NET Utility Classes and Interfaces Specification www. ivifoundation. org
IVI Driver Features n Simulation Required of all IVI drivers ¨ Very useful for testing in new ADEs ¨ Helpful when instruments are difficult to procure ¨ n n n State caching Range checking Coercion ¨ n Coercion recording All extended features enabled and accessed in a standard fashion www. ivifoundation. org
IVI Shared Components C Shared Components n Floating Point Services n IVI-COM Session Factory n Configuration Server n COM Type Libraries n. NET PIAs n IVI. NET Shared Components n www. ivifoundation. org
IVI Conformance n Basic conformance ¨ ¨ ¨ n Follows all architecture specs Implements inherent capabilities defined in IVI-3. 2. Not one of the classic instrument types No class-compliant functionality (none of the IVI-4. X specs apply) Can be advertised as fully IVI compliant Instrument-class conformance ¨ Basic conformance + one or more instrument class APIs (IVI-4. X specs) www. ivifoundation. org
What is IVI Compliant -Really? ? Standard install location and process n Support for IVI Features n Common API for common tasks n ¨ ~40 common functions ¨ Simulation, Caching, Open, Close, Initialize, SW Trigger, Status check, Version check …. . n Consistent API ¨ Common types, Name generation, Organization www. ivifoundation. org
What is IVI Class Compliant Really? ? Adds Class Compliant API n Instrument API same as other instruments n Custom API still available n ¨ Especially n for capabilities beyond the class Simplifies swapping instruments IVIFoundation. org ww. ivifoundation. org
Why IVI – One Driver to Rule them All n n Much more than interchangeability Arguably the biggest benefit is the ability to provide one driver and give users a first class experience in nearly all ADEs ¨ ¨ ¨ ¨ Visual Basic 6 Visual C++ Visual C# and Visual Basic. NET VBA (Excel, Word, Power. Point) MATLAB Lab. VIEW Lab. Windows/CVI Agilent VEE www. ivifoundation. org
Why IVI? – Uniform Way of Doing Common Tasks n n Avoids frustrations of arbitrary differences Instantiation, initialization, shutdown Controlling driver features – state caching, error query, simulation, etc. Configuration and installation No need to dig thru header files, registry settings, help or readme ¨ One place to reliably set the I/O address is a big benefit ¨ n Standard mechanism for handling multi-channel devices ¨ n Standard error reporting ¨ n aka repeated capabilities in IVI parlance No need to deal with the numerous possible error schemes Versioning standards www. ivifoundation. org
Why IVI – Tools, Tools n Far easier to develop an IVI driver with a tool than it is to develop a customer driver without a tool n Common requirements enable tools ¨ n Leads to better, cheaper drivers Driver is much more than a DLL w/ function exports Help files ¨ Installer ¨ n ¨ ¨ IVI 3 -17 dedicated to IVI installers and is 53 pages Regression test apps / Unit test apps Special components for. NET n n n XML Intelli. Sense file interop assembly version policy files www. ivifoundation. org
Why IVI – Tracking the Standards n Vendors relieved from onerous task of keeping pace with multiple moving targets Windows OSs, Windows help, Windows installer, Windows API, security, . NET platform ¨ Six versions of Visual Studio since IVI ¨ Vista and UAC was a major challenge for IVI ¨ 64 -bit OS support took two years within IVI ¨ n IVI member companies bring experts to meetings to ensure IVI solutions work with their hardware ¨ Users of IVI directly leverage R&D efforts of NI, Agilent, R&S, etc. www. ivifoundation. org
API Standards in IVI specifications layout three APIs IVI. NET ¨ IVI-COM ¨ IVI-C ¨ n Many considerations for both driver developers and end users when choosing which technology to use Driver developer environment ¨ Custom environment ¨ Others…(more on this later) ¨ n IVI specs also define how to build driver wrappers Allows one code base while supporting IVI-C, IVI-COM and IVI. NET APIs ¨ IVI-COM on top of IVI-C (not common) ¨ IVI-C on top of IVI-COM (very common in today’s IVI drivers) ¨ www. ivifoundation. org
Simple IVI-COM Driver Usage in Visual Basic Dim driver as New Agilent 54600 Dim scope as IIvi. Scope Set scope = driver scope. Initialize “GPIB: : 10”, False, “” scope. Trigger. Level = 3. 4 scope. Trigger. Type = Ivi. Scope. Trigger. Edge ‘setting a numeric property ‘setting an enum property scope. Measurements. Initiate ‘calling a method scope. Close www. ivifoundation. org
Simple IVI-C Driver Usage // NOTE: Error checking not shown #include “ag 54600. h” int _tmain(int argc, _TCHAR* argv[]) { Vi. Session vi; Vi. Status vi. Status = ag 54600_init(“GPIB: : 10”, VI_FALSE, &vi); vi. Status = ag 54600_Set. Attribute. Vi. Real 64(vi, “”, AG 54600_ATTR_TRIGGER_LEVEL, 3. 2); vi. Status = ag 54600_Set. Attribute. Vi. Int 32(vi, “”, AG 54600_ATTR_TRIGGER_TYPE, AG 54600_VAL_EDGE_TRIGGER); vi. Status = ag 54600_Initiate. Acquisition(); vi. Status = ag 54600_close(); } www. ivifoundation. org
Motivations for IVI. NET n n Present an API more suited to. NET developers Simplify source code Allow end users to understand instrument behavior by examining driver source ¨ Allow end users to fix bugs on their own ¨ Allow end users to add features to drivers on their own ¨ n Richer, more expressive APIs More flexibility with API data types ¨ Clean handling of asynchronous notifications (aka “events”) ¨ n Side-by-side deployment of drivers Only one version of an IVI-COM or IVI-C driver can be installed at a time ¨ IVI. NET allows multiple versions of a driver to be installed ¨ www. ivifoundation. org
Richer Type System in IVI. NET n Both IVI-COM and IVI-C drivers suffer from a limited set of data types Integers, floats, Booleans, strings ¨ Arrays of the above, but extra parameters are required in IVI-C ¨ n n IVI-C cannot expose an array of strings IVI-C cannot expose structs ¨ Can be done in IVI-COM, but it’s tedious to implement Ivi. Scope_Fetch. Waveform(Vi. Session vi, Vi. Const. String channel, Vi. Int 32 waveform. Size, // # of elements on input Vi. Real 64 waveform[], // actual data buffer Vi. Int 32 *actual. Points, // # of elements on output Vi. Real 64 *initial. X, Vi. Real 64 *x. Increment); www. ivifoundation. org
Simplifying APIs with. NET Types IVI-C signature Ivi. Digitizer_Fetch. Waveform. Real 64(Vi. Session Vi, Vi. Const. String Channel. Name, Vi. Int 64 Waveform. Array. Size, Vi. Real 64 Waveform. Array[], Vi. Int 64* Actual. Points, Vi. Int 64* First. Valid. Point, Vi. Real 64* Initial. XOffset, Vi. Real 64* Initial. XTime. Seconds, Vi. Real 64* Initial. XTime. Fraction, Vi. Real 64* XIncrement); IVI. NET signature Channels[]. Measurement. Fetch. Waveform(IWaveform<Double> waveform) www. ivifoundation. org
Simplified Usage Syntax n Simplified access to very commonly used features Enums ¨ Repeated capabilities (e. g. “channels”) ¨ C# client using IVI-COM driver through interop digitizer. Arm. Sources. get_Item("LAN 3"). Detection = Ivi. Lxi. Sync. Arm. Source. Dection. Enum. Ivi. Lxi. Sync. Arm. Source. Detection. High; C# client using IVI. NET driver digitizer. Arm. Sources["LAN 3“]. Detection = Arm. Source. Detection. High; www. ivifoundation. org
Shared IVI. NET Data Types n IVI Foundation felt it would be useful to offer commonly used data types as part of the IVI. NET Shared Components Increase consistency amongst IVI. NET drivers ¨ Facilitate data interchange between drivers ¨ n Standardized IWaveform and ISpectrum interfaces Digitizers and scopes and RF spectrum analyzers all read waveforms ¨ Function generators and RF signal generators source waveforms ¨ Without a common definition of a “waveform”, client applications would need to write the tedious code to translate between each class’s notion of a waveform ¨ n Time-based parameters can use Precision. Date. Time and Precision. Time. Span No confusion about ms vs sec, absolute vs relative time, UTC time, etc ¨ Precision adequate for IEEE 1588 devices ¨ n Common trigger source data type ¨ Useful in “stitching” together devices in triggered source-measure operations www. ivifoundation. org
Additional Information n For more information or to join, go to our webpage at: www. ivifoundation. org n Additional Resources: ¨ IVI Getting Started Guide on our Home page or Resources page n n ¨ Either in in short pdf files for the ADE that you prefer Or, single pdf file that includes eight different ADEs Tutorial Videos Coming Soon: IVI Getting Started Guide tutorial videos in the ADE you prefer. www. ivifoundation. org
- Slides: 29