Vehicle Diagnostics is like speaking to a vehicle, more precisely commanding. If you give the vehicle the right command in the right manner, it will respond back. Note that diagnostics is always request-response. It is not like CAN messages which are available on the network without any request.
So, in what format or protocol should the commands (or more accurately called requests) be sent? Who decides these formats or protocols?
Of course, the protocols can be decided and implemented by any Tom, Dick, and Harry! But such protocols lack the advantages of standardization. So, organizations like SAE (Society of Automotive Engineers) have defined standards that can be used in Automotive for vehicle diagnostics. Let’s look at some of the most important standards in use today.
Before diving into the standards, let us understand vehicle diagnostics and OBD. OBD stands for On-Board Diagnostics. How is it different from vehicle diagnostics? Well, it’s no different. The purpose and operation are still the same – to diagnose vehicles. The term OBD is regularly used to point to the data that the certifying authorities and agencies demand. Whereas Vehicle diagnostics is the term mostly used to represent OEM specific diagnostic data (the data that OEMs do not share with the agencies and would like to keep confidential). Such diagnostic data will be used by OEMs for testing their automobiles.
OBD standards – These standards define not only the protocols of the request (sent to ECUs) and response (from ECUs), but also the identifiers and corresponding data from the ECU. The data/information that can be read from automobiles is fixed in these standards. The codes/ids to be used to access the data are also fixed. There is no scope for changes/extensions/reductions in these cases. The format of the data, resolution, factors, offsets is fixed. These standards are used for certification and homologation purposes.
The well-know OBD standards are:
- SAE J1979 – This diagnostic standard is majorly used for passenger vehicles like cars, SUVs, motorbikes, 3 wheelers (rickshaws, tuk-tuks), etc. To get to know the standard technically, access the documentation from SAE.
- SAE J1939 – This is also called as HD OBD (Heavy Duty OBD). As you might have guessed, this standard is majorly used for trucks, buses and off-road vehicles (cranes, excavators).
An important fact to be noted about J1939 is that it was not developed for diagnostics, it is mainly a protocol that was developed for inter-ECU communication and the same protocol has been used for diagnostic purposes. SAE provides detailed technical documentation on J1939.
- ISO 27145 – As mentioned earlier J1939 was not built for diagnostic purposes, but the dataset of J1939 is still valid for diagnostic applications. Hence the standard ISO 27145 was developed and it is called World Wide Harmonized (WWH) OBD. ISO 27145’s dataset is the same/similar to J1939’s dataset and as protocol part, UDS (introduced below) is used. This OBD protocol is gaining popularity over J1939.
UDS – This protocol called Unified Diagnostic Services. In this protocol, different services like how to read/write data, reading fault codes, diagnostics sessions are defined. This protocol does not define the dataset. Using this protocol, the OEMs have control over defining the data, the resolution, factors, offsets, codes/ids. OEMs can create their own dataset in the form of ODX files (Open Diagnostic eXchange) and that data can be used for testing. UDS is so powerful that it can be utilized for flashing ECUs.