Developing an ECU bootloader with UDS communication protocol in Java SE 8

OData support
Kövesdán Gábor
Department of Automation and Applied Informatics

It can be said, that nowadays, testing and verifying the functionality is essential in any developed software, especially one that is safety-critical. This applies to the integrated softwares of the car industry, like the ones developed at Thyssenkrupp Components Technology Hungary’s Budapest site. Each time a new version is compiled, the freshly rolled out program must be verified, before deployment. To do this, we test it’s functionalities by uploading, or flashing it onto the hardware, then running several diagnostic processes that determine the software’s integrity and functionality. In fact, these sort of tests can be performed midway into the development process, to ensure that the already implemented functions are working correctly, therefore aiding the process in multiple ways.

However, in order to do so, the feedback from the testers must be quick, and therefore, Thyssenkrupp has implemented a Java based automated testing environment, referred to as QuickCheck Automation or QCA. It’s purpose is to evaluate the functionalities of the integrated software of our PowerPacks (PP), the module that holds the Electronic Control Unit (ECU) that governs the steering systems. However to do that, we need an efficient way of downloading the new software onto the steering system’s control unit.

This can be done in a number of ways, depending on the type of system we flash. However, using the Unified Diagnostic Services communication protocol, on our products that support it, is very beneficial, because it can be done with the same equipment we would use during the tests, This means that flashing does not require additional dedicated hardware and can be performed at no additional cost.

Such an application would need to fit in the already established architecture of Java based the QCA system, but it would also have the benefits of being able to rely on it’s already implemented resources and sollutions, such as the UDS API, which would be used extensively during the flashing process.

This would include understanding the both UDS and it’s underlying communication protocols, as well as their implementation on our in-house hardware for testing, through it’embedded C code, as well as it’s Java based QCA client software. The following pages will detail the creation of the before mentioned flasher application.


Please sign in to download the files of this thesis.