Skip to content

automotive_software

prototux edited this page Nov 8, 2021 · 1 revision

Software standards in automotive

As automotive is a world in which the automakers often outsource the ECU design and code to other companies (an example is Bosch with it's engine ECUs), some standards has emerged over time to have a common base where each automaker can have their own features on.

Some standards are designed to provide a common basic set of features, while others are best practice guides to write safe code, and some are complete stacks, mostly for infotainment or diagnostics.

MISRA

Misra is a set of guidelines for code safety used in embedded systems where reliability is key (automotive, aerospace, telecom, medical, defense, trains...)

There is currently 2 sets:

  • MISRA-C, currently in it's third iteration
  • MISRA-C++, currently in it's first iteration

It is most often not used directly, but included as a baseline for other guidelines, either in standards such as AUTOSAR, or in internal guidelines such as the NASA JPL C coding standards.

OSEK(/VDX)

OSEK (and later extended to OSEK/VDX) is a standard for an automotive RTOS and network stack.

Historically, OSEK was created by a consortium of mainly german automakers and ECU OEMs, and was lated expended to OSEK/VDX when french automakers (Renault and PSA) merged their own VDX standard into OSEK.

It defines a RTOS API on top of which mcu-agnostic applications can be written. the OSEK standard assumes that the implementation of said API is arch dependant, and that the mcu doesn't use any MMU.

The consortium has been disbanded in favor of AUTOSAR, which includes OSEK standards as part of itself.

AUTOSAR

AUTOSAR is a consortium that is kind of a follow-up on OSEK/VDX.

The AUTOSAR consortium includes 2 standards:

Classic Platform

The classic platform is an extension of OSEK/VDX, defining not only the RTOS, but also the base software API and drivers.

Adaptive Platform

The adaptive platform is a re-creation from scratch of the standard, which uses much newer and higher level concepts.

GENIVI

GENIVI is an alliance that defines standards for automotive middleware and other parts of the infotainment system.

It can be integrated with the AUTOSAR Classic Platform using the Franca IDL.

Automotive Grade Linux

Automotive Grade Linux is a project by the Linux Foundation that is building a framework for automotive applications, mainly infotainement systems, called the Unified Code Base (UCB in short).

It uses components from other projects by the Linux Foundation (such as Tizen) as well as components developped by the GENIVI Alliance.

Other projects

Android

Android is slowly but surely making it's way in infotainement systems, with some automakers interested in including it directly as the base of their own systems.

AppLink

A connected infotainement system by Ford, doesn't seems to hold a chance against android and AGL.

OpenXC

Another initiative by Ford, this time that is a concurrent to OBD-II's live data, even more dead than AppLink

Freenivi

An AGL-like framework, seemingly by some academic with some industrial (including PSA and Renault), based on Qt5. Seems dead since 2017.