1 / 45

IHAL: An XML-Based Instrumentation Hardware Abstraction Language

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

kamuzu
Download Presentation

IHAL: An XML-Based Instrumentation Hardware Abstraction Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Agenda • The Problem • Overview of the Solution • IHAL Design • Prototype Tools to support IHAL • Use Cases • Conclusions

  3. 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

  4. 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

  5. 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

  6. 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(mn)  O(m+n) concept • IHAL as query language • Query instrument(s) for current configuration

  7. 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)

  8. IHAL and iNET iNET Measurement metadata signals outputs Sample rate IHAL (TMATS Section H ?) Engg units measurement Ethernet

  9. 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

  10. IHAL Design

  11. 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

  12. <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.

  13. 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.

  14. IHAL as Specification LanguageGeneric Instruments

  15. -<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

  16. -<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

  17. -<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

  18. <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”).

  19. 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.

  20. 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.

  21. IHAL as Specification“Use” Level

  22. 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>

  23. <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”

  24. <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”

  25. IHAL Validation Tools and Use Cases

  26. 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

  27. 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

  28. 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

  29. IHAL-Aware Scope Tektronix Scope IHAL Use Case #1IHAL As Control Instrument Map IHAL LabView ISS Matlab GPIB / Serial bus Translator/ Parser IHAL  Labview

  30. 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

  31. 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

  32. IHAL IHAL IHAL Use Case #2Simulating Instruments Instrument Map IHAL SIMULINK Translator IHAL SIMULINK Translator ADC Signal Analyzer

  33. 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

  34. 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

  35. IHAL Use Case #3Hardware Replacement

  36. IHAL version 3

  37. 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

  38. First class Instrument Pool instrument Number of channels function

  39. Generic instrument in the pool

  40. Connectors

  41. Configurable Parameters Before After

  42. Simplification of Use-level Instrument Specification

  43. 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

  44. 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.

  45. 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

More Related