ihal: an xml-based instrumentation hardware abstraction language 116 th telemetry group conference...

45
IHAL: An XML-Based Instrumentation Hardware Abstraction Language 116 th Telemetry Group Conference Dayton, OH August 21 st , 2007 Ron Fernandes Mike Graul Perakath Benjamin Knowledge Based Systems, Inc. Charles Jones AFFTC – Edwards AFB

Upload: marcus-blair

Post on 02-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

IHAL: An XML-Based Instrumentation Hardware Abstraction Language

116th Telemetry Group Conference

Dayton, OH

August 21st, 2007

Ron Fernandes

Mike Graul

Perakath BenjaminKnowledge Based Systems, Inc.

Charles JonesAFFTC – Edwards AFB

Agenda

• The Problem

• Overview of the Solution

• IHAL Design

• Prototype Tools to support IHAL

• Use Cases

• Conclusions

The Problem

HardwareComponent 1

ISS 1

HardwareComponent 4

HardwareComponent n

HardwareComponent 2

ISS mISS 3ISS 2

HardwareComponent 3

More about the Problem

• Lack of documentation for T&E system configuration– A lot of data but not much data about the data

• ISS developers are diverse• Hardware specification creep and newer versions• Test article tested on different test ranges

– Joint Strike Fighter (JSF)

– Joint Air-to-Surface Standoff Missile (JASSM)

• Lack of adequate simulation-based acquisition for T&E– Simulate the T&E instrumentation setup before purchase

Overview of the Solution

HardwareComponent 1

ISS 1

HardwareComponent 4

HardwareComponent n

HardwareComponent 2

ISS mISS 3ISS 2

HardwareComponent 3

IHAL

IHAL as a neutralcommand & query

language

IHAL Application Viewpoints• IHAL as specification language

– Hardware functional description– Configuration and calibration– T&E Instrumentation network specification– Numerous “high-level” applications

• IHAL as control language– Instrument control/setup from within an ISS– Supports the O(mn) O(m+n) concept

• IHAL as query language– Query instrument(s) for current configuration

IHAL Design Criteria• XML-based• Support for generic instrument/function• A hardware function can be composed of sub-

functions at any level of decomposition• Support for common instruments with specific

parameters (e.g., ADC and scope)• Concept of an instrument pool (i.e., template)• Concept of an instrumentation network

(configuration)

IHAL and iNET

IHAL (TMATS

Section H ?)

iNET Measurement metadata

outputs

Ethernet

Engg units

measurement

Sample rate

signals

IHAL Design Criteria (cont.)

• Concept of an instrument use

• Support for generic parameters

• Support for configurable parameters

• Generic support for inputs and outputs

• Support parameter value specification of any instrument that is part of an existing configuration

IHAL Design

IHAL as Specification Language• Specification at the “Pool” level

– Each instrument in the pool described according to its design and configuration capabilities.

– What function does it perform?

– What is it composed of?

– What can be configured?

• Instruments at the pool level fall into one of two categories: (1) First-class and (2) Generic

IHAL as Specification Language• “First-class” instruments:

– Perform commonly-occurring instrumentation functions (e.g. ADC).

– Has a corresponding IHAL element defined (e.g. <adc>) and a set of common attributes.

– Need not be specified in terms of sub-components.

<adc id="adc3" name="Acqiris DC438“modelNumber="DC438“manufacturer="Acqiris“impedance="50”maxPower="25”numChannels="2”perChannelMemory="4"><input id="adcI2" busType="CompactPCI"/><output id="adco2" busType="CompactPCI"/>

</adc>

IHAL as Specification LanguageGeneric Instruments

• “Generic” instruments: – Covers every other type of instrument.

– Defined using IHAL generic <instrument> element.

– Attributes specified using IHAL generic <param> element.

– Specified in terms of sub-instruments (and sub-sub-instruments, etc)

– Basic “Building Block” instruments: Amp, Filter, Multiplexor, etc.

IHAL as Specification LanguageGeneric Instruments

-<instrument id="i1" type="Signal Conditioner" manufacturer="L-3 Communications" modelNumber="PSCC-108-1" name="8 Channel Signal Conditioner"> 

-<param name="diagramImageFile" value="pscc1081.jpg" />   -<input id="input1" />   -<input id="input2" />   -<input id="input3" />   -<input id="input4" /> -<output id="output1" format="PAM" />-<instrument id="i2" type="Signal Conditioner" name="Signal Conditioner Channel">

+<mux id="mux1" name="Fault Protected Input Selection Multiplexor" numInputs="4" numOutputs="2">

+<amp id="amp1" name="Precision Difference Amplifier">+<amp id="amp2" name="Digitally Programmable Gain Amplifier">+<filter name="Digitally Programmable Analog Filter" id="filter1" type="Butterworth"

numPoles="6">  </instrument>+<instrument id="i3" type="Signal Conditioner" name="Signal Conditioner Channel">+<instrument id="i4" type="Signal Conditioner" name="Signal Conditioner Channel">+<instrument id="i5" type="Signal Conditioner" name="Signal Conditioner Channel">-<mux id="mux9" numInputs="16" numOutputs="1" name="Channel Selection Multiplexor">

-<input id="input42" inputObject="i2" />-<input id="input43" inputObject="i3" />-<input id="input44" inputObject="i4" />-<input id="input45" inputObject="i5" />-<output id="output34" outputObject="output1" />

</mux></instrument>

IHAL as Specification LanguageGeneric Instruments

-<instrument id="i1" type="Signal Conditioner" manufacturer="L-3 Communications" modelNumber="PSCC-108-1" name="8 Channel Signal Conditioner"> 

-<param name="diagramImageFile" value="pscc1081.jpg" />   -<input id="input1" />   -<input id="input2" />   -<input id="input3" />   -<input id="input4" /> -<output id="output1" format="PAM" />-<instrument id="i2" type="Signal Conditioner" name="Signal Conditioner Channel">

+<mux id="mux1" name="Fault Protected Input Selection Multiplexor" numInputs="4" numOutputs="2">

+<amp id="amp1" name="Precision Difference Amplifier">+<amp id="amp2" name="Digitally Programmable Gain Amplifier">+<filter name="Digitally Programmable Analog Filter" id="filter1" type="Butterworth"

numPoles="6">  </instrument>+<instrument id="i3" type="Signal Conditioner" name="Signal Conditioner Channel">+<instrument id="i4" type="Signal Conditioner" name="Signal Conditioner Channel">+<instrument id="i5" type="Signal Conditioner" name="Signal Conditioner Channel">-<mux id="mux9" numInputs="16" numOutputs="1" name="Channel Selection Multiplexor">

-<input id="input42" inputObject="i2" />-<input id="input43" inputObject="i3" />-<input id="input44" inputObject="i4" />-<input id="input45" inputObject="i5" />-<output id="output34" outputObject="output1" />

</mux></instrument>

IHAL as Specification LanguageGeneric Instruments

Sub-Instruments

-<instrument id="i1" type="Signal Conditioner" manufacturer="L-3 Communications" modelNumber="PSCC-108-1" name="8 Channel Signal Conditioner"> 

-<param name="diagramImageFile" value="pscc1081.jpg" />   -<input id="input1" />   -<input id="input2" />   -<input id="input3" />   -<input id="input4" /> -<output id="output1" format="PAM" />-<instrument id="i2" type="Signal Conditioner" name="Signal Conditioner Channel">

+<mux id="mux1" name="Fault Protected Input Selection Multiplexor" numInputs="4" numOutputs="2">

+<amp id="amp1" name="Precision Difference Amplifier">+<amp id="amp2" name="Digitally Programmable Gain Amplifier">+<filter name="Digitally Programmable Analog Filter" id="filter1" type="Butterworth"

numPoles="6">  </instrument>+<instrument id="i3" type="Signal Conditioner" name="Signal Conditioner Channel">+<instrument id="i4" type="Signal Conditioner" name="Signal Conditioner Channel">+<instrument id="i5" type="Signal Conditioner" name="Signal Conditioner Channel">-<mux id="mux9" numInputs="16" numOutputs="1" name="Channel Selection Multiplexor">

-<input id="input42" inputObject="i2" />-<input id="input43" inputObject="i3" />-<input id="input44" inputObject="i4" />-<input id="input45" inputObject="i5" />-<output id="output34" outputObject="output1" />

</mux></instrument>

IHAL as Specification LanguageGeneric Instruments

Sub-Instruments

Basic “Building Block”Instruments

IHAL as Specification Language – Configurable Parameters

• All instruments (first-class AND generic) can have “Configurable Parameters”– Specified by “type” and possible values

– Values can be specified in two ways• Range plus increment (e.g. “0-10 in increments of 2”).

• Enumeration (e.g. “15, 25, or 50”).

<configurableParameter type="bandwidth"><enumeration>

<enumeratedValue units="MHz">100</enumeratedValue><enumeratedValue units="MHz">300</enumeratedValue>

</enumeration></configurableParameter>

IHAL as Specification – “Use” Level• The “use” level specifies how instruments are

actually configured on the test article• An IHAL file may contain multiple configurations.• Each configuration may contain multiple networks.• Each network composed of “uses” of instruments

from the pool.

IHAL as Specification“Use” Level

• Each instrument “use” element structured the same as its corresponding pool element.

• Configurable parameters are replaced with Configured parameters.

• Configured parameters specified by name, type, and current value.

• <input>, <output>, and <bus> elements describe how instruments are connected in the network.

IHAL as Specification“Use” Level

IHAL as Specification“Use” Level

- <adc_use id="adcu1" pool_ref="adc1" name="Idealized ADC Quantizer">- <configuredParameter type="other" otherType="numBits" name="Number of Converter

Bits">- <value>8</value>

- </configuredParameter>

- <configuredParameter type="other" otherType="vMin" name="Min Input Voltage at Low Output">

- <value>-10</value>

- </configuredParameter>

- <configuredParameter type="other" otherType="vMax" name="Max Input Voltage at 2^n Output">

- <value>10</value>

- </configuredParameter>

- <input id="adcIn" inputObject="sau1" />

- <output id="adcOut" outputObject="su0" />

- </adc_use>

IHAL as a Command Language• IHAL command same as IHAL use spec

with one extra attribute: “action=SET”

<scope_use id="su0" pool_ref="scope0" name="Bench Oscilloscope"><configuredParameter type="channel">

<value>1</value></configuredParameter><configuredParameter type="voltsPerDiv" action=”SET”>

<value units="volts">0.1</value></configuredParameter><configuredParameter type="timeBase" action=”SET”>

<value units="seconds">0.00000025</value></configuredParameter><configuredParameter type="bus">

<value>gpib</value></configuredParameter><input id="scopeIn" inputObject="adcu1"/>

</scope_use>

IHAL as a Query Language

• IHAL query same as IHAL command with attribute: “action=GET”

<scope_use id="su0" pool_ref="scope0" name="Bench Oscilloscope"><configuredParameter type="channel">

<value>1</value></configuredParameter><configuredParameter type="voltsPerDiv" action=”GET”>

<value units="volts">0.1</value></configuredParameter><configuredParameter type="timeBase" action=”GET”>

<value units="seconds">0.00000025</value></configuredParameter><configuredParameter type="bus">

<value>gpib</value></configuredParameter><input id="scopeIn" inputObject="adcu1"/>

</scope_use>

IHAL Validation Tools and Use Cases

IHAL Validation Tool Prototypes• Instrumentation Configuration Repository

– Associated Files

– Search Capability

– IHAL XML Preview/Edit capability

– Integrates Instrument Map

• Instrument Map– Graphically displays multiple instrumentation networks

– Filters display by category

– Four-panel – tree, properties, network, and detail

– Instrumentation control capability through IHAL

– Supports images of instruments/networks

IHAL Use Case #1• IHAL as Control

– InstrumentMap (ISS) IHAL LabView (ISS) • LabView (translator) Tektronix Scope

– InstrumentMap (ISS) IHAL Matlab Scope (Instrument)

• Same IHAL file generated by InstrumentMap is used to control two different instruments

IHAL Use Case #1IHAL As Control

MatlabScope

InstrumentMap ISS 2 ISS 3 LabView

HardwareComponent 3

HardwareComponent 4

TektronixScope

HardwareComponent 2

IHAL

IHAL Use Case #1IHAL As Control

Instrument Map IHAL

IHAL-Aware Scope

Matlab

Tektronix ScopeTranslator/ Parser

IHAL Labview

LabView ISS

GPIB /Serialbus

IHAL Use Case #2• IHAL as Control with Simulated Instruments

– InstrumentMap (ISS) IHAL Simulink Signal Analyzer (Simulated Instrument)

– InstrumentMap (ISS) IHAL Simulink ADC (Simulated Instrument)

• Signal Analyzer (SA) – A class of controllable instruments.

• Developed a basic simulation of SA• Simulated hardware functionality enables

– Plug and Play for Testing.

• Use IHAL to interact with simulated instruments

IHAL Use Case #2Simulating Instruments

SimulinkSignal

Analyzer

InstrumentMap

ISS 2 ISS 3 ISS m

HardwareComponent 3

HardwareComponent 4

SimulinkADC

HardwareComponent 2

IHAL

IHALTranslator

IHALTranslator

.mdl.mdl

IHAL Use Case #2Simulating Instruments

IHALIHAL

IHAL SIMULINK Translator

IHAL SIMULINK Translator

ADCSignal Analyzer

Instrument Map

IHAL Use Case #3

• IHAL specifications can be used to find a replacement for an instrument.

• In InstrumentMap, the instrument pool can be searched to find potential replacements for a particular instrument use.– Useful for deprecated instruments or defunct

vendors/models– Cheaper instruments

IHAL Use Case #3Hardware Replacement

• Replacement search can be based on user-defined criteria, including:– Attributes (non-configurable) – are they within an

acceptable range?– Configurable parameters – Can they be set to

acceptable values?– Inputs/Outputs – Does the instrument have the

same interface?

• Search performed using XQuery Language

IHAL Use Case #3Hardware Replacement

IHAL version 3

A Critique of the previous version• No distinction between an instrument and its

functions– First class instrument limited to one function– Instruments with secondary function is relegated to the

generic <instrument> class– Recursive <instrument> is actually an <instrument> with

multiple <hardwarefunction> with the latter being recursive

• No support for identical multiple channels– Forced named multiple channels that duplicated

specification n-times– Lack of system versus channel connectors

• Complexity of use-level instrument specification– Instrument structure duplication

First class Instrument Pool

instrument

function

Number of channels

Generic instrument in the pool

Connectors

Configurable Parameters

Before

After

Simplification of Use-level Instrument Specification

Moving on …• Provide instance documents

• Validate tools against new schema

• Configure new use cases for IHAL

• Demonstrate tools at ITC 2007

• Provide website support for download and feedback

Conclusions

• IHAL is a generic XML-based neutral language for describing, configuring, and querying instrumentation hardware, networks, and their configurations.

• Prototype tools developed to support use of IHAL.

Points of Contact• Dr. Charles Jones, AFFTC, EAFB

[email protected]

• Ronald Fernandes, KBSI– [email protected]

• Mike Graul, KBSI– [email protected]

• John Hamilton, KBSI– [email protected]