digital watch zee
  • Radical productivity gains in systems integration and test
  • Extremely rapid test tool development
  • View, edit and send messages in a human-readable format
  • Log incoming and outgoing messages
  • Create sequences of outgoing messages you can play, pause and stop
  • Write MiCL scripts to customize your emulation

Vehicle Engine Monitoring

Imagine we are part of an engineering team that must develop a diagnostic system for a commercial bus.  Maintenance crews will use our system to find and repair problems with the vehicle’s drive train.

By design, our diagnostic system must receive data from an Engine Control Unit (ECU) embedded in the bus’s engine.  The ECU regularly transmits a “Drive Train Status” message which contains status fields for the anti-lock braking system, the cruise control state, whether or not a gear shift is in process, etc.  Our diagnostic system merely needs to plug into the vehicle data bus in the garage and accept these messages.

However, we have a testing issue.  We need an ECU to stimulate our diagnostic system with incoming messages in the lab, but the ECUs are highly integrated into the engine hardware.  Also, even if we were able to extract it and bring it into the lab, it performs analog to digital conversions on the signals coming from many different drive train components, and the equipment needed to simulate those analog signals is extremely expensive.

So instead, we decide to develop an ECU emulator – a desktop application that will regularly transmit the Drive Train Status message to our diagnostic system.

Note that the engineering hours dedicated to developing a ECU Emulator are significant.  Here are some common emulator development tasks:
  • A GUI to display and enter message data,
  • Open a communications port (using a socket or device driver) and manage it’s configuration,
  • Encode and decode message data to and from a human-readable to it’s binary over-the-wire format
  • Software unit and integration testing
In contrast, with the Mimik™ Application Suite, we can collapse all the software programming time required for these features into the mere clerical act of creating the ECU/Diagnostic System Interface Control Document (ICD), using the suite’s ICD Editor.  Upon creation of the ICD, we load it into Mimic, and immediately have an ECU emulator that implements all the above features, with zero software development.  This collapses weeks or months of software development effort into hours.

But the Mimik™ advantage does not stop there.  We also get many other features for free once we develop the ICD.  These include:
  • Logging of any or all incoming and outgoing messages
  • Playing, pausing and stopping sequences of outgoing messages
  • Storing pre-defined outgoing messages so the user can bring them up and send them quickly
  • MiCL scripting.  MiCL is a simple scripting language that enables us to control the messaging behavior of our emulation.  For example, a MiCL script can control the conditions when a Drive Train Status message is transmitted to the CFD.
  • Simultaneous viewing of human-readable and binary (hex) message data
  • Automatically setting message data to random or default values upon user command
  • Many others…
Note that this is a grossly oversimplified example of vehicle diagnostic system and an ECU.  An ICD will typically define many more messages than the single Drive Train Status Message we talked about in this example.