Skip to main content
main-content

19.06.2013 | Automobilelektronik + Software | Im Fokus | Onlineartikel

Das Echtzeit-Problem eingebetteter Software

Autor:
Andreas Burkert
2 Min. Lesedauer

Hochautomatisiertes Fahren erfordert von den Softwareentwicklern genauste Kenntnisse über echtzeitfähige Softwareprogrammierung. Um Latenzzeiten bei der Code-Ausführung zu vermeiden, setzen viele auf die Programmiersprache C. Aber auch die aus den 1980iger Jahren bekannte Sprache Ada ist für Echtzeitanwendungen geeignet.

Das hochautomatisierte Fahren wird von den Automobilherstellern derzeit stark beworben. Immer besser gelingt ihnen das Vernetzen komplexer Sensor- und Aktorsysteme mit den zahlreichen Steuergeräten im Automobil und mit externen Verkehrsleitsystemen. Für das Gelingen von hochautomatisiertem, beziehungsweise dem teilautonomen Fahren müssen die eingebetteten Systeme die strengen Bedingungen an die Echtzeit erfüllen. Die Charakteristika und die Herausforderungen von Echtzeit- sowie Echtzeitbetriebssystemen sind dafür klar definiert worden, wie es Peter Scholz in seinem Buch "Softwareentwicklung eingebetteter Systeme" erklärt.

Die korrekte Funktionsweise eines Echtzeitsystems ist seiner Ansicht nach nicht nur von der logischen Korrektheit der Ergebnisse seiner Verarbeitungsschritte abhängig, sondern auch von dem Zeitpunkt an dem die Ergebnisse produziert wurden. "Es handelt sich selbst dann um ein inkorrektes Verhalten, wenn das Ergebnis nicht zum richtigen Zeitpunkt vorliegt und nicht nur dann, wenn das Ergebnis selbst falsch ist. Ein Fehler in der Reaktion, oder mit anderen Worten ein falscher Reaktionszeitpunkt ist daher genauso falsch wie eine falsche Reaktion: Ein richtiges Ergebnis zur falschen Zeit ist ein Fehler."

Echtzeitbetriebssystem notwendig

Die unter anderem für sicherheitskritische Systeme im Automobil entwickelten echtzeitfähigen Programme laufen deshalb in der Regel in einem Echtzeit-Betriebssystem (RTOS) oder zumindest in einem speziellen Echtzeit-Rahmen (Echtzeit-Frame). Wie Henning Wallentowitz und Konrad Reif in ihrem "Handbuch Kraftfahrzeugelektronik" beschreiben, sollte dieser spezielle Echtzeit-Rahmen echtes Multitasking bieten sowie Timer-, Software- oder Hardware-Interrupts unterstützen.

Zwar wird die Software, die auf Echtzeitprozessoren ausgeführt wird, üblicherweise in der Programmiersprache C erstellt, doch ist auch die Programmiersprache Ada ist für Echtzeitanwendungen geeignet. Der Vorteil: Ada stellt einfache Sprachfeatures zur Beschreibung von parallelen Prozessen bereit. Zudem benötigt Ada keinen Garbage Collector, der den Programmablauf verzögern könnte. Unvorhersehbare Latenzzeiten, die bei sicherheitskritischen Anwendungen unakzeptabel sind, werden ausgeschlossen.

Lesen Sie auch:

Anforderungsmanagement in der Softwareentwicklung

Die Hintergründe zu diesem Inhalt

2006 | OriginalPaper | Buchkapitel

Software-Entwicklung

Quelle:
Handbuch Kraftfahrzeugelektronik

01.02.2013 | Entwicklung | Ausgabe 1/2013

Anforderungsmanagement in der Softwareentwicklung

2012 | Buch

Einführung in die Softwareentwicklung mit C

Eine Einführung mit dem Visual Studio 2010

Premium Partner

    Bildnachweise