Updated: Sep 26, 2019
For years, I was given the task of developing diagnostic services for ECUs (electronic control units). And I have to say that almost all car manufacturers who I worked with have almost the same requirement with, of course, little differences depending on the ECU functionality and purpose it serves in the vehicle. But generally, they all want to implement UDS as primarily debugging for their vehicles.
UDS is really easy to understand but if you had to learn it the hard way as I did. It can be frustrating sometimes. But once you understand the main concept, reading through the ISO standard can be easy and fun.
What is UDS?
UDS is a diagnostic communication protocol which is a fancy way to say it is a defined request and response.
For example, if you sent a request message “Y”, you should expect the response “X” if the request is valid (Positive response) or you should expect the response of “Z” if the request is not valid (Negative response).
You will never get the response “K” (If you implemented UDS correctly, of course).
The ISO standard that defines the requests and the responses is ISO 14229-1.
If you don’t understand so far, that is fine. Just stick around and I will try to simplify it as I can.
But first, we need to know,
why car manufacturers and suppliers like to implement UDS into their ECU?
Well, car manufacturers need to implement diagnostics in modern vehicles for so many reasons but here are some common reasons:
They need to read the data written inside the memory of the ECU such as the software version installed on this ECU or read VIN number (Vehicle Identification Number) to make sure that it is the right part installed into the vehicle.
They need to choose the correct variant for the software installed on the ECU, in case the ECU is intended to be installed in different car models or variants, and then save (Write) in the memory the chosen one.
They need to control the input and output for the ECU for testing purposes. Like for example, ECU that controls headlight, they might want to send a command to turn the light on and off with different intensity and see how the ECU actually react to the input.
They might need to define certain routines, like define a scenario and see if they get the expected performance in order to validate the ECU functionality.
They need to update the software with new versions that fix an issue or add a new feature.
For vehicle parts suppliers they need also diagnostics for pretty much the same reasons car manufacturers need it but also they need it for debugging purposes and warranties. Consider this scenario, the ECU is installed into the vehicle and went to the car owner who constantly goes to service his/her car. When the service shop detects an error using their diagnostic equipment, if they couldn’t fix the issue, they contact the manufacturer who in turn contacts the supplier according to the warranty agreement.
Suppliers also need diagnostics during the series production of their ECUs, as they need to flash their software on the ECU memory, validate the basic functionalities of the product and make their product ready to be installed in vehicles.
Manufacturing ECUs for modern vehicles is a very complex process and ECUs have different life cycles.
During development, system and software engineers need to debug and control the ECU.
During production, suppliers need an easy way to flash software, validate basic functionalities.
Car Manufacturers need to assess the supplied product before installing them into their vehicles
During services and maintenance, service shops need to detect the errors and maintain the vehicle.
So different parties with different backgrounds need to speak a common language and that is why a unified diagnostic service was created to address different interests during the life cycle of the ECU.
It also ensures the integrity of the supplier and the car manufacturers and helps the end customer to come back to the manufacturers with warranty if any problem occurred.
Next blog post, I will dive into UDS ISO standard and explain more in detail how it works. If you have a question, leave a comment and I will answer it.
Don’t forget to join our forum and open discussions.