Embedded-Mikrocontroller Funktionale Sicherheit in Auto und Industrie

Sicherheit in Auto und Industrie
Mikrocontroller

Der Trend zu steigender Rechenleistung bei fallenden Kosten für Embedded-Mikrocontroller eröffnet der Automobilelektronik und bei industriellen Steuerungen neue Anwendungsmöglichkeiten. AURIX-Mikrocontroller unterstützen die dabei relevanten Anforderungen an Funktionale Sicherheit.

Ob es sich um die automatische Geschwindigkeitsregelung im Auto oder um ein Material-Handling-System in einer Fabrik handelt: Viele dieser Automatisierungssysteme basieren auf intelligenten Software-Algorithmen mit optimierten Embedded-Steuerungsstrategien, die den Anwender entlasten und Energie sparen. Die Verfügbarkeit von kompakteren, leistungsfähigeren und effizienteren Aktoren, zusammen mit der Forderung, den CO² -Ausstoß von Fahrzeugen und Fabriken zu senken, eröffnet einen neuen Markt für elektronisch gesteuerte Fahrzeugsysteme und industrielle Anlagen.

In vielen Fällen erfordern derartige Systeme eine direkte menschliche Interaktion, entweder mit dem Fahrer und den Passagieren in einem Fahrzeug oder dem Bedien- und Wartungspersonal. Wenn eine Fehlfunktion eine potenzielle Gefahr für die Menschen darstellt, muss eine entsprechende Gefährdungs- und Risikoanalyse durchgeführt werden, um die mögliche Gefährdung auf ein Minimum zu reduzieren.

Dieser Prozess der Sicherheits-Analyse von elektronisch gesteuerten Systemen hat die „Funktionale Sicherheit“ zum Ziel und ist - abhängig von den unterschiedlichen Industriesektoren - durch mehrere entsprechende Standards definiert. Zwei dieser Standards sind die IEC61508 für industrielle Steuerungen und die neue ISO26262 für die Automobilelektronik.

Diese Standards beschreiben nicht nur die jeweilige Ausprägung der Funktionalen Sicherheit in Bezug auf die physikalische Implementierung, sondern auch die Prozesse für Entwicklung, Inbetriebnahme, laufenden Betrieb und Wartung. Der risikobasierte Ansatz der Funktionalen Sicherheit bewertet das Gefährdungspotenzial eines fehlerhaften Systems, was in den Abstufungen SIL1 bis SIL4 (für Industriesysteme) und ASIL A bis ASIL D (für Automobilsysteme) ausgedrückt wird.

SIL steht für „Safety Integrity Level“ und ASIL entsprechend für „Automotive Safety Integrity Level“. Je höher die Zahl bzw. die alphabetische Ordnung, desto größer ist das Risiko, Menschen zu verletzen. Damit steigen auch die Ansprüche an die Funktionale Sicherheit. Beide Standards erfordern von den beteiligten Parteien eine strikte Einhaltung der strengen Vorgaben im Entwicklungsprozess. Dabei ist jede Funktion von einem Top-Down-Systemansatz abgeleitet und schlussendlich untergeordneten Ebenen zugewiesen, einschließlich Embedded-Hardware und -Software.

Der Mikrocontroller als Gehirn eines Systems

Der Embedded-Mikrocontroller ist das „Gehirn“ eines Systems. Er liest die Sensor- und Eingangssignale, verarbeitet die Software-Algorithmen und generiert bzw. treibt entsprechende Ausgänge und Nachrichten auf Kommunikationsbussen für die Ansteuerung externer Prozesse und Aktuatoren.

Weist der Mikrocontroller oder die auf ihm ablaufende Software einen Fehler auf, dann kann dies zur fehlerhaften Ansteuerung eines Ausgangs führen und Menschen gefährden. Daher muss die Hardware so entwickelt werden, dass Fehler, die zu Fehlfunktionen führen können, entdeckt werden. Andererseits muss Software mit sicherheitsrelevanten Funktionen so ausgelegt sein, dass sie ausreichend Sicherheitsreserven und definierte Prozesse hat, damit ein Fehler die Sicherheitsvorgaben nicht verletzen kann.

Die dafür benötigten, stringenten Entwicklungsprozesse sind teuer und zeitaufwendig. Wird ein für den Kon-sum-bereich qualifizierter Mikrocontroller für ein Sicherheitssystem genutzt, dann ist eine detaillierte Analyse der internen Hardware-Mechanismen erforderlich. So soll verhindert werden, dass Fehler in einem Core die korrekte Ausführung des Programmes auf einem oder mehreren anderen Cores beeinflussen können. Üblicherweise kann diese Anforderung mit einem Standard-Mikrocontroller nicht erfüllt werden. Damit bleibt dem Anwender nichts anderes übrig, als seine Embedded-Software so auszulegen, dass sie die höchsten (A)SIL-Vorgaben für die Systemsteuerung erfüllt.

Eine ideale Lösung würde erlauben, dass Systeme mit unterschiedlichen Sicherheitsanforderungen auf einem Multicore-Mikrocontroller laufen können. So wäre es vorteilhaft, wenn in einem Automobilsystem hochintegrierte ASIL-D-Funktionen neben Funktionen mit geringeren Sicherheitsansprüchen (ASIL A/ASIL B/ASIL C) oder nicht sicherheitsrelevante Funktionen nebeneinander ausgeführt werden können, ohne Kompromisse bei der Sicherheit einzugehen.

Das kann allerdings bei Multicore-Mikrocontrollern eine Herausforderung sein, da diese oftmals gemeinsame Ressourcen (Speicher, Timer, Kommunikationsperipherie) und Echtzeit-Verhalten erfordern. Mechanismen zur Task-Kapselung werden benötigt. Diese müssen in der Lage sein, Schutz-Abgrenzungen entsprechend den höchsten ASIL-Anforderungen auf dem Mikrocontroller zu liefern. Die Task-Kapselung wird üblicherweise mit dem Betriebssystem für jeden der Cores realisiert, und zwar mit Hilfe einer Speicherschutzeinheit (MPU, Memory Protection Unit), auf der das Update der Task-Ressourcen für jede neue Task erfolgt. Das Umschalten des MPU-Bereichs muss schnell und mit geringer Latenzzeit erfolgen, damit die Lösung auch für Embedded-Echtzeitsysteme geeignet ist.