UDS Software Services for Vehicle Diagnostics


Every vehicle’s electronic control unit (ECU) should have reliable diagnostics capabilities so that all faults can be stored and reported. UDS or Unified Diagnostic Service, also known as ISO-14229, is an application protocol interface used in automotive ECUs to enable diagnostic, firmware updates, routine testing, and more.

iWave’s ready-to-deploy UDS protocol stack expedites vehicle diagnostics. Built on the ISO 14229-1 standard, the stack supports both client and server UDS stacks. The UDS stack also supports ISO 15765-2 CAN and implements both CAN FD and CAN 2.0.

The UDS protocol stack is c based and compatible with FreeRTOS, Linux, and Baremetal operating platforms.

Diagnostic service format

UDS communication takes place in a client-server model, with the client being a tester tool and the server being a vehicle ECU. Messages exchanged between the client and the server, are represented by a Request and a Response.

The client sends Requests to the server that include a Service ID, an optional subfunction, and some data. The server processes the request and responds with a Positive or a Negative Response based on the service supported.

When the ECU responds positively to a UDS request, the response frame consists of an echo of the Service Id + 0x40 and the service-defined response parameters. In some cases, an ECU may respond negatively to a UDS request, represented by a three-byte message containing a Negative Response Service ID as the first byte, an echo of the original Service ID as the second byte, and a response code as the third.

List of services provided by UDS protocol stack from iWave

  • Data Transmission Capabilities

The data transmission service enables the clients to read/write any information to/from the ECUs. The data can be read or written to control units based on identifiers, periodic identifiers, and physical memory addresses.

The data can vary from static information like ECU serial numbers to real-time data like engine speed and the current status of sensors. For example, Read Data by Periodic Identifier service is required when the client requires ECU to send periodic service values. A client can also write data based on an identifier and an address. Parameters like threshold values and angles can be changed using the write service. Its related UDS services are,

    • Read Data by Identifier – Read data from ECU(s)
    • Read Data by Periodic Identifier – Data/values are sent periodically by ECU(s)
    • Dynamically Define Data Identifier – Configure data identifier using a device-specified data identifier pool.
    • Write Data by Identifier – Write data from ECU(s).
    • Read Scaling Data by Identifier – Read scaling data stored in the server using a data identifier.
    • Input Output Control by Identifier – Control the input/output signals through the diagnostic interface.
    • Read Data by Address – Read memory data from the memory address provided.
    • Write Data by Address – Write information into the server memory location.
  • Diagnostic Trouble Codes (Stored Data Transmission)

Diagnostic trouble codes (DTCs) associated with each issue in a vehicle are stored in the fault code memory (FCM). This service allows the client to read both emission-related and non-emission-related DTC information.

    • Read DTC Information – Read DTC information from the server
    • Clear Diagnostic Information – Erase DTC and other data stored in the server.
    • Control DTC Setting – Enable/disable updating of DTC settings in ECU
  • Upload/Download Functional Unit

This service allows a client to write or read new firmware from the server’s memory to enable the reprogramming of ECUs. For example, a car equipped with an anti-lock braking system (ABS) can be updated with the necessary configurations and settings to control the ABS. Its related service includes,

    • Request Download – Request ECU to initiate a download session based on the request from the tester
    • Request Upload – Request ECU to upload data
    • Transfer Data Service – Manage actual transmission (upload and download) of data
    • Transfer Exit Service – Terminate and exit data transfer

  • Remote Routine Activation

It involves testing faulty components within a defined parameter range. So basically, this service is used to notify the start/stop of execution of a task and to erase the memory or perform a checksum of integrity after download.

A client can initiate a routine, stop a routine, and request results after a routine have been completed. For instance, a client can run the engine fan for a given time period and record the results to understand and rectify issues.

    • ECU Reset – Reset ECU to default session
    • Routine Control – This service is used to start/stop tasks based on the request.
  • Security Critical Services

Through this service, unauthorized access to writing sensitive data to the ECU can be controlled. The writing permissions are reserved by the OEMs for the secure functioning of the vehicle.

    • Secure Access – Limit access to data and services to prevent unauthorized access.
    • Secure Data Transmission – The data transmitted will be cryptographically protected.
    • Authentication – Enables a client to apply their security policies on user access.
  • Diagnostic and Communication Services

The following UDS services are part of the Diagnostic and Communication Management function group.

    • Diagnostic Session Control – Various diagnostic sessions can be enabled within the ECU.
    • Communication Control – Control the exchange of messages between the ECUs.
    • Link Control – Control the communication between the ECU and the client to gain bus bandwidth for diagnostic purposes.
    • Tester Present – Alert the ECU(s) that client is still connected so that diagnostic sessions remain active.
    • Access Timing Parameter – Reads and writes the communication link’s default timing parameters for the duration of the communication.
    • Response On Event – Provides the possibility to automatically execute a diagnostic service in case a specified event occurs in the server.

Visit our product page here.

For more information or inquiries, please contact mktg@iwavesystems.com

Keep Reading

V2X_image_diagramatically Telematics Control Unit
ISO 1576, SAE J1939, and UDS protocol stack on TCU DSRC and C-V2X: Revolutionizing  connected mobility Securing Edge IoT devices with OP-TEE

Copyright © 2022 iWave Systems Technologies Pvt. Ltd.