450 likes | 575 Views
IHAL: An XML-Based Instrumentation Hardware Abstraction Language. Ron Fernandes Mike Graul Perakath Benjamin Knowledge Based Systems, Inc. Charles Jones AFFTC – Edwards AFB. 116 th Telemetry Group Conference Dayton, OH August 21 st , 2007. Agenda. The Problem
E N D
IHAL: An XML-Based Instrumentation Hardware Abstraction Language Ron Fernandes Mike Graul Perakath Benjamin Knowledge Based Systems, Inc. Charles Jones AFFTC – Edwards AFB 116th Telemetry Group Conference Dayton, OH August 21st, 2007
Agenda • The Problem • Overview of the Solution • IHAL Design • Prototype Tools to support IHAL • Use Cases • Conclusions
The Problem ISS 1 ISS 2 ISS 3 ISS m Hardware Component 1 Hardware Component 2 Hardware Component 4 Hardware Component 3 Hardware Component n
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 ISS 1 ISS 2 ISS 3 ISS m IHAL as a neutral command & query language IHAL Hardware Component 1 Hardware Component 2 Hardware Component 4 Hardware Component 3 Hardware Component n
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 iNET Measurement metadata signals outputs Sample rate IHAL (TMATS Section H ?) Engg units measurement Ethernet
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 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
<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 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.
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.
-<instrument id="i1" type="Signal Conditioner" manufacturer="L-3 Communications" modelNumber="PSCC-108-1" name="8 Channel Signal Conditioner"> -<paramname="diagramImageFile" value="pscc1081.jpg" /> -<inputid="input1" /> -<inputid="input2" /> -<inputid="input3" /> -<inputid="input4" /> -<outputid="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"> -<inputid="input42" inputObject="i2" /> -<inputid="input43" inputObject="i3" /> -<inputid="input44" inputObject="i4" /> -<inputid="input45" inputObject="i5" /> -<outputid="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"> -<paramname="diagramImageFile" value="pscc1081.jpg" /> -<inputid="input1" /> -<inputid="input2" /> -<inputid="input3" /> -<inputid="input4" /> -<outputid="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"> -<inputid="input42" inputObject="i2" /> -<inputid="input43" inputObject="i3" /> -<inputid="input44" inputObject="i4" /> -<inputid="input45" inputObject="i5" /> -<outputid="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"> -<paramname="diagramImageFile" value="pscc1081.jpg" /> -<inputid="input1" /> -<inputid="input2" /> -<inputid="input3" /> -<inputid="input4" /> -<outputid="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"> -<inputid="input42" inputObject="i2" /> -<inputid="input43" inputObject="i3" /> -<inputid="input44" inputObject="i4" /> -<inputid="input45" inputObject="i5" /> -<outputid="output34" outputObject="output1" /> </mux> </instrument> IHAL as Specification LanguageGeneric Instruments Sub-Instruments Basic “Building Block” Instruments
<configurableParameter type="bandwidth"> <enumeration> <enumeratedValue units="MHz">100</enumeratedValue> <enumeratedValue units="MHz">300</enumeratedValue> </enumeration> </configurableParameter> 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”).
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 • <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> • <inputid="adcIn" inputObject="sau1" /> • <outputid="adcOut" outputObject="su0" /> • </adc_use>
<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 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=”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 as a Query Language • IHAL query same as IHAL command with attribute: “action=GET”
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 LabView ISS 2 ISS 3 InstrumentMap IHAL Matlab Scope Tektronix Scope Hardware Component 2 Hardware Component 3 Hardware Component 4
IHAL-Aware Scope Tektronix Scope IHAL Use Case #1IHAL As Control Instrument Map IHAL LabView ISS Matlab GPIB / Serial bus Translator/ Parser IHAL Labview
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 Instrument Map ISS 2 ISS 3 ISS m IHAL IHAL Translator IHAL Translator .mdl .mdl Simulink Signal Analyzer Hardware Component 2 Hardware Component 3 Hardware Component 4 Simulink ADC
IHAL IHAL IHAL Use Case #2Simulating Instruments Instrument Map IHAL SIMULINK Translator IHAL SIMULINK Translator ADC Signal Analyzer
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
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 Number of channels function
Configurable Parameters Before After
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 • charles.jones@edwards.af.mil • Ronald Fernandes, KBSI • rfernandes@kbsi.com • Mike Graul, KBSI • mgraul@kbsi.com • John Hamilton, KBSI • jlhamilton@kbsi.com