The Automotive Diagnostic Command Set is structured into three layers of functionality:

  • The top layer implements three sets of diagnostic services for the diagnostic protocols KWP2000, UDS (DiagOnCAN), and OBD (On-Board Diagnostics).
  • The second layer implements general routines involving opening and closing diagnostic communication connections, connecting and disconnecting to/from an ECU, and executing a diagnostic service on byte level. The latter routine is the one the top layer uses heavily.
  • The third layer implements the transport protocols needed for diagnostic communication to an ECU. The second layer uses these routines to communicate to an ECU.

All three top layers are fully implemented in LabVIEW.

The transport protocols then execute CAN/LIN Read/Write operations through a specialized DLL for streamlining the CAN/LIN data flow, especially in higher busload situations.