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
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,
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.
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,
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.
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.
The following UDS services are part of the Diagnostic and Communication Management function group.
Visit our product page here.
For more information or inquiries, please contact mktg@iwavesystems.com
Keep Reading
ISO 1576, SAE J1939, and UDS protocol stack on TCU | DSRC and C-V2X: Revolutionizing connected mobility | Securing Edge IoT devices with OP-TEE |