OSEK (Offene Systeme und deren Schnittstellen für die Elektronik in Kraftfahrzeugen; English: "Open Systems and their Interfaces for the Electronics in Motor Vehicles") is a standards body that has produced specifications for an embedded operating system, a communications stack, and a network management protocol for automotive embedded systems.[1][2][3] It has produced related specifications, namely AUTOSAR. OSEK was designed to provide a reliable standard software architecture for the various electronic control units (ECUs) throughout a car.

OSEK was founded in 1993 by a German automotive company consortium (BMW, Robert Bosch GmbH, DaimlerChrysler, Opel, Siemens, and Volkswagen Group) and the University of Karlsruhe.[4][5] In 1994, the French cars manufacturers Renault and PSA Peugeot Citroën, which had a similar project called VDX (Vehicle Distributed eXecutive), joined the consortium. Therefore, the official name was OSEK/VDX and OSEK was registered trademark of Continental Automotive GmbH (until 2007: Siemens AG).[6]

Standards

edit

OSEK is an open standard, published by a consortium founded by the automobile industry.[7][8][9] Some parts of OSEK are standardized in ISO 17356.[10][11]

  • ISO 17356-1:2005 Road vehicles—Open interface for embedded automotive applications—Part 1: General structure and terms, definitions and abbreviated terms
  • ISO 17356-2:2005 Road vehicles—Open interface for embedded automotive applications—Part 2: OSEK/VDX specifications for binding OS, COM and NM
  • ISO 17356-3:2005 Road vehicles—Open interface for embedded automotive applications—Part 3: OSEK/VDX Operating System (OS)
  • ISO 17356-4:2005 Road vehicles—Open interface for embedded automotive applications—Part 4: OSEK/VDX Communication (COM)
  • ISO 17356-5:2006 Road vehicles—Open interface for embedded automotive applications—Part 5: OSEK/VDX Network Management (NM)
  • ISO 17356-6:2006 Road vehicles—Open interface for embedded automotive applications—Part 6: OSEK/VDX Implementation Language (OIL)

before ISO

edit

OSEK VDX Portal[12]

  • OSEK/VDX Operating system(OS) : "event-triggered" Real-time kernel
  • OSEK/VDX Communication(COM) : Application level communication protocol
  • OSEK/VDX Newark Management(NM) : Network management
  • OSEK/VDX OSEK Implementation Language(OIL) : Offline application description and configuration language
  • OSEK/VDX OSEK RTI(ORTI) : Debugging interface
  • OSEK/VDX Binding Specification: Binding document
  • MODISTARC
    • OSEK/VDX Conformance Testing Methodology
    • OSEK/VDX Operating System Test Plan
    • OSEK/VDX Operating System Test Procedure
    • OSEK/VDX Communication Test Plan
    • OSEK/VDX Communication Test Procedure
    • OSEK/VDX Communication Test Suites
    • OSEK/VDX Network Management Test Plan
    • OSEK/VDX Network Management Test Procedure
    • OSEK/VDX direct Network Management Test Suites
    • OSEK/VDX indirect Network Management Test Suites

OSEK Functioning

edit

The OSEK standard specifies interfaces to multitasking functions—generic I/O and peripheral access—and thus remains architecture dependent. OSEK is expected to run on microcontroller without memory management unit (MMU), which is favored for safety-critical systems such as cars, therefore features of an OSEK implementation will be usually configured at compile-time. The number of application tasks, stacks, mutexes, etc. is statically configured; it is not possible to create more at run time. OSEK recognizes two types of tasks/threads/compliance levels: basic tasks and enhanced tasks. Basic tasks never block; they "run to completion" (coroutine). Enhanced tasks can sleep and block on event objects. The events can be triggered by other tasks (basic and enhanced) or interrupt routines. Only static priorities are allowed for tasks. First In First Out (FIFO) scheduling is used for tasks with equal priority. Deadlocks and priority inversion are prevented by priority ceiling (i.e. no priority inheritance).

The specification uses ISO/ANSI-C-like syntax; however, the implementation language of the system services is not specified. An Application Binary Interface (ABI) is also not specified.

OSEK-OS scheduling can be configured as:[13][14]

  • Preemptive, a task can always be preempted by means of a higher priority task
  • Non-preemptive, a task can only be preempted in prefixed compile-time points (cooperative scheduling)
  • Mixed mode scheduling
  • Groups of tasks (cooperative)

State of the art

edit

AUTOSAR

edit

Currently the AUTOSAR consortium reuses the OSEK specifications as part of the Classic Platform.[15]

The operating system is a backwards compatible superset of OSEK OS which also covers the functionality of OSEKtime, and the communication module is derived from OSEK COM.[16] OSEKtime specifies a standard for optional time-triggered real-time operating systems.[17] If used, OSEKtime triggered callbacks run with higher priority than OSEK tasks.

Research

edit

There is also a limited amount of active research, e. g. in the area of systems engineering and OSEK / VDX RTOS[18] or in relation to the compatibility between OSEK and AUTOSAR.[19]

Quality

edit

In a 48-page report from 2003 by the Software Engineering Institute (SEI) at Carnegie Mellon University (CMU), the specifications were examined and possible weaknesses in the areas of alarm and event mechanisms were identified with possible solutions. The potential of OSEK was also mentioned.[20][21]

Implementations

edit

Note: A limited number of implementations and vendors exist. Most products are only commercially sold and licensed, others are freely available with open-source license for a limited number of controllers. See also: Comparison of real-time operating systems.

Table of OSEK / AUTOSAR implementations
Vendor Products License Targets Other information
Elektrobit Automotive GmbH (part of Continental AG)[22]
  • EB tresos Safety OS[23]
  • EB tresos AutoCore OS
Proprietary Infineon AURIX TC38XQ, etc. Former product names: ProOSEK and ProOSEK/time by 3SOFT (3SOFT was purchased by Elektrobit)
ERIKA Enterprise[24]
  • ERIKA v2[25]
  • ERIKA v3
GPL or GPL linking exception or Commercial[26] ARM Cortex, Intel x86, Infineon AURIX, etc.[27] Officially certified on ARM Cortex-M4 and Infineon TriCore AURIX
ETAS Group (part of Robert Bosch GmbH)[28]
  • RTA-OS
  • RTA-OSEK
Proprietary Various architectures
NXP Semiconductors (former Freescale)
  • AUTOSAR 3.0, 4.0, 4.2, 4.3
Proprietary PowerPC 5xxx (e. g. e200), S12/S32, etc.[29] Former product names: OSEKturbo
Siemens (through acquisition of Mentor Graphics's Automotive arm)
  • Capital VSTAR OS[30]
Proprietary Various architectures
Vector Informatik
  • MICROSAR.OS[31]
  • MICROSAR Safe
Proprietary Various architectures Supporting software: DaVinci Configurator Pro

Open-source derivates

edit

Note: Open-source developments are often very limited in scope (targets, conformance classes, characteristics) and are not verified against the specifications unless told otherwise.

Defunct, not active, unknown status

edit

Further reading

edit
  • Berkely EE249 on OSEK (Presentation in PDF formatting)
  • Christian Michel Sendis. OSEK/RTOS & OSEKturbo Introduction (PDF, March 2009, NXP Semiconductors)
  • Lemieux, Joseph (2001). Programming in the OSEK/VDX environment. Lawrence, Kan.: CMP Books. ISBN 978-0-08-052218-0. OCLC 171039798.

See also

edit

References

edit
  1. ^ Evertsson, Pontus (2004). "Investigation of Real-Time Operating Systems: OSEK/VDX and Rubus". MSC Theses. ISSN 0280-5316.
  2. ^ Foster, Neale; Schwab, Markus (2000-03-06). "Real-Time 32-Bit Microcontroller with OSEK/VDX Operating System Support". SAE Technical Paper Series. 1. Warrendale, PA: SAE International. doi:10.4271/2000-01-1243.
  3. ^ Waszniowski, Libor; Hanzalek, Zdenek. Analysis of Osek/Vdx Based Automotive Applications. CiteSeerX 10.1.1.67.6507.
  4. ^ John, D. (November 1998). "OSEK/VDX history and structure". IEE Seminar OSEK/VDX Open Systems in Automotive Networks. Vol. 1998. pp. 2/1–214. doi:10.1049/ic:19981073.
  5. ^ Handbuch Fahrerassistenzsysteme Grundlagen, Komponenten und Systeme für aktive Sicherheit und Komfort. Hermann Winner, Stephan Hakuli, Felix Lotz, Christina Singer (3., überarb. u. erg. Aufl. 2015 ed.). Wiesbaden. 2015. pp. 115 ff. ISBN 978-3-658-05734-3. OCLC 906179237.{{cite book}}: CS1 maint: location missing publisher (link) CS1 maint: others (link)
  6. ^ "OSEK VDX Portal - Trademark Information". 2011-08-25. Archived from the original on 2011-08-25. Retrieved 2021-03-08.
  7. ^ OSEK/VDX Operating System Specification 2.2.3 https://www.irisa.fr/alf/downloads/puaut/TPNXT/images/os223.pdf
  8. ^ Roy, L. (November 1998). "ISO and OSEK harmonisation efforts". IEE Seminar OSEK/VDX Open Systems in Automotive Networks. Vol. 1998. pp. 3/1–3/3. doi:10.1049/ic:19981074 (inactive 7 December 2024).{{cite book}}: CS1 maint: DOI inactive as of December 2024 (link)
  9. ^ Herausgeber, Winner, Hermann 1955- Herausgeber Hakuli, Stephan Herausgeber Wolf, Gabriele (7 October 2011). Handbuch Fahrerassistenzsysteme Grundlagen, Komponenten und Systeme für aktive Sicherheit und Komfort; mit 45 Tabellen. Vieweg+Teubner Verlag. ISBN 978-3-8348-1457-9. OCLC 759826017.{{cite book}}: CS1 maint: multiple names: authors list (link) CS1 maint: numeric names: authors list (link)
  10. ^ "openOSEK : ISO17356 Standards Overview". openosek.org. Retrieved 2021-03-08.
  11. ^ "ISO 17356-2:2005". ISO. Retrieved 2021-03-08.
  12. ^ "OSEK VDX Portal - Deprecated Specification". portal.osek-vdx.org. Archived from the original on 24 August 2011. Retrieved 12 January 2022.
  13. ^ Hong, J.; Kum, D.; Jin, S. (November 2011). "Analysis of the scheduler development techniques for the optimization of the OSEK OS". 2012 9th International Conference on Ubiquitous Robots and Ambient Intelligence (URAI). pp. 614–615. doi:10.1109/URAI.2012.6463096. ISBN 978-1-4673-3112-8. S2CID 17396815.
  14. ^ Chung, Y.; Kim, D.; Choi, Y. (December 2017). "Modeling OSEK/VDX OS Requirements in C". 2017 24th Asia-Pacific Software Engineering Conference (APSEC). pp. 398–407. doi:10.1109/APSEC.2017.46. ISBN 978-1-5386-3681-7. S2CID 3709038.
  15. ^ "Classic Platform". www.autosar.org. Retrieved 2021-03-08.
  16. ^ Hofer, Wanja; Danner, Daniel; Muller, Rainer; Scheler, Fabian; Schroder-Preikschat, Wolfgang; Lohmann, Daniel (December 2012). "Sloth on Time: Efficient Hardware-Based Scheduling for Time-Triggered RTOS". 2012 IEEE 33rd Real-Time Systems Symposium. San Juan, PR, USA: IEEE. pp. 237–247. doi:10.1109/RTSS.2012.75. ISBN 978-1-4673-3098-5. S2CID 12499184.
  17. ^ Poledna, Stefan; Glück, Martin; Tanzer, Christian; Boutin, Samuel; Dilger, Elmar; Führer, Thomas; Ebner, Christian; Fuchs, Emmerich; Belschner, Ralf; Hedenetz, Bernd; Holzmann, Bettina (2000-03-06). "OSEKtime: A Dependable Real-Time Fault-Tolerant Operating System and Communication Layer as an Enabling Technology for By-Wire Applications". SAE Technical Paper Series. Vol. 1. Warrendale, PA. doi:10.4271/2000-01-1051.{{cite book}}: CS1 maint: location missing publisher (link)
  18. ^ Macher, Georg; Atas, Muesluem; Armengaud, Eric; Kreiner, Christian (2015-01-22). "Automotive real-time operating systems: a model-based configuration approach". ACM SIGBED Review. 11 (4): 67–72. doi:10.1145/2724942.2724953. ISSN 1551-3688. S2CID 17490657.
  19. ^ Lee, Y. H.; Kim, Jin Ho; Jeon, Jae Wook (2013). "Applying AUTOSAR Network Management in OSEK/VDX for Compatibility of AUTOSAR and OSEK/VDX". Proceedings of the FISITA 2012 World Automotive Congress. Lecture Notes in Electrical Engineering. Vol. 194. Berlin, Heidelberg: Springer. pp. 693–704. doi:10.1007/978-3-642-33829-8_65. ISBN 978-3-642-33829-8.
  20. ^ Feiler, Peter H. (2018). "Real-Time Application Development with OSEK: A Review of the OSEK Standards": 168866 Bytes. doi:10.1184/R1/6582899.V1. {{cite journal}}: Cite journal requires |journal= (help)
  21. ^ "Real-Time Application Development with OSEK: A Review of the OSEK Standards". resources.sei.cmu.edu. 31 October 2003. Retrieved 2021-10-05.
  22. ^ "EB tresos BSW". Elektrobit. Retrieved 2021-10-05.
  23. ^ "EB tresos operating systems". Elektrobit. Retrieved 2021-10-07.
  24. ^ "Erika Enterprise RTOS v3". Erika3. 2021-07-29. Retrieved 2021-10-05.
  25. ^ "v2 vs v3". Erika3. 2021-07-29. Retrieved 2021-10-07.
  26. ^ "Licensing". Erika3. 2021-07-29. Retrieved 2021-10-07.
  27. ^ "Supported architectures". Erika3. 2021-07-29. Retrieved 2021-10-07.
  28. ^ "RTA-OS". www.etas.com. Retrieved 2021-10-05.
  29. ^ "AUTOSAR Software Architecture | NXP Semiconductors". www.nxp.com. Retrieved 2021-10-07.
  30. ^ "Streamlined ECU software development". Siemens Digital Industries Software. Retrieved 2021-10-07.
  31. ^ "MICROSAR | Vector". www.vector.com. Retrieved 2021-10-07.
  32. ^ "AUTOSAR tools and software for the automotive industry - ARCCORE". www.arccore.com. Retrieved 2021-10-05.
  33. ^ "Proyecto CIAA". www.proyecto-ciaa.com.ar. Retrieved 2021-10-05.
  34. ^ "nxtOSEK/JSP: ANSI C/C++ with OSEK/μITRON RTOS for LEGO MINDSTORMS NXT". lejos-osek.sf.net. Retrieved 2021-10-05.
  35. ^ "TOPPERS Project/ATK1". www.toppers.jp. Retrieved 2021-10-05.
  36. ^ "TOPPERS Project/ATK2". www.toppers.jp. Retrieved 2021-10-07.
  37. ^ "Free OSEK real-time kernel for dsPIC | Microchip". www.microchip.com. Retrieved 2021-10-05.
  38. ^ "COMASSO". www.comasso.org. Retrieved 2021-10-05.
edit