Every in-vehicle controller is required to feature a function that allows remote access. For this purpose, the Unified Diagnostic Services (UDS) was developed as an example, which is specified in ISO 14229. The UDS protocol defines how a so-called tester - that is, a computer equipped with a certain piece of software - connects to the controller in order to carry out specific diagnostic services on the controller.
The most important services are:
UDS provides a specified interface with access to the appropriate services for the testers. The UDS protocol does not contain specifications as to how the services should be implemented.
Telemotive has many years of experience with the implementation of various diagnostic services, for example with updating the firmware by means of a boot loader.
The boot loader is responsible for updating the software of a controller. It consists of different software modules, such as the CAN driver, the diagnostic manager for processing the UDS messages and the flash manager.
The updating process consists of the following steps:
The tester prompts the controller to switch to the "programming session".
The controller performs a reset, switches to the "programming session" and starts the boot loader.
After the boot loader has started up, it returns the information to the tester that the switch to the "programming session" was successful.
The data to be sent is validated.
The tester sends the firmware data to the controller via individual UDS messages.
The data is loaded into the flash memory ("flashing" of the controller).
Once all of the data has been transferred, the controller performs another reset. After that, the controller is in "default session" again, that is, in normal operation with updated software.