Funktionale Sicherheit

Sicherheitsgerichtetes Embedded-System entwickeln

27. Februar 2014, 9:21 Uhr | Von Thomas Baier

Fortsetzung des Artikels von Teil 1

Die sichere CPU

Blockschaltbild des miriac EK5744 SafeAssure Kit. Die sicherheitsrelevanten Komponenten sind blau dargestellt.
Blockschaltbild des miriac EK5744 SafeAssure Kit. Die sicherheitsrelevanten Komponenten sind blau dargestellt.
© Elektronik

Ein einfacher Ansatz beim Design eines sicherheitsgerichteten Systems ist es, alle – oder die meisten – Komponenten zu vervielfachen, meist zu verdoppeln. Neben etwas Hardware benötigt man noch einige Vergleichsfunktionen (oftmals in Software ausgeführt), und fertig ist das sichere System. Wenn ein (signifikanter) Unterschied zwischen den Signalen der beiden Kanäle festgestellt wird, so geht das System in einen sicheren Zustand, meist durch kontrolliertes Abschalten (SAFE STOP).

Nachteil dieses Ansatzes ist der hohe Aufwand – einerseits für die Hardware, andererseits für geeignete Synchronisationsmechanismen zwischen den Kanälen, die meist von Software übernommen werden. Zu definierten Zeitpunkten werden dabei Vergleiche durchgeführt und bei Abweichungen Sicherheitsmaßnahmen ausgelöst. Jede Synchronisation bedeutet aber neben dem Design- und Implementierungsaufwand auch einen Aufwand zur Laufzeit. Er reduziert gemeinsam mit den Vergleichsfunktionen die CPU-Leistung unter Umständen signifikant. Zumindest auf CPU-Ebene (oder Mikrocontroller-Ebene in der Terminologie der meisten Hersteller) gibt es bereits taugliche Lösungsansätze in Form sogenannter »Lockstep«-CPUs. Stark vereinfacht bedeutet dies, dass mehrere CPU-Kerne (meist zwei) parallel das gleiche Programm verarbeiten und eine integrierte Vergleichs- und damit Überwachungsfunktion haben. Schenkte man manchen Aussagen der Hersteller solcher CPUs Glauben, so wäre damit das sicherheitsgerichtete Embedded-System bereit fast fertig. Jedoch fordern unabhängige Prüfinstitutionen für solche Aussagen auch normkonforme, belastbare Nachweise, die aber nicht immer leicht erhältlich sind. Mit Freescale als Partner hat MicroSys ein Lockstep-basiertes Design umgesetzt, das auf Basis der MCU MPC5744P aus der CPU-Familie Qorivva von Freescale arbeitet. Das mirac EK5744 SafeAssure Kit (Bild) von MicroSys bietet eine Basis für sicherheitsgerichtete projektspezifische Designs mit spezieller Peripherieanbindung und einer sicherheitsgerichteten Firmware. Freescales MPC5744P besteht aus zwei CPU-Kernen (PowerPC e200z4 Cores), die im Delayed-Lockstep-Modus arbeiten. Dies bedeutet, dass zwei Kerne mit geringem Zeitversatz dieselbe Software abarbeiten. Einer der beiden Kerne hat dabei die Funktion des »Überwachers«. Er überprüft in Echtzeit, ob beide Kerne zum selben Rechenergebnis kommen. Neben den CPU-Kernen beinhaltet die MCU auch integrierten Datenspeicher mit Fehlererkennung/-prüfung (ECC SRAM) und Programmspeicher mit ebensolcher (ECC Flash). Es gibt getrennten Programm- und Datenspeicher (Harvard-Architektur), das Programm wird direkt aus dem Flash ausgeführt. Neben diverser Peripherie sind für sicherheitsrelevante Anwendungen vor allem die geschickt in unterschiedliche Bereiche des Siliziums platzierten Analog- und Digital-Ein- und Ausgänge sowie eine redundant ausgeführte CAN-Schnittstelle, z.B. für CANopen Safety.

Sicherheitsgerichtete I/Os

Sicherheitsgerichtete Ein- und Ausgänge müssen genauso wie auch die CPU fehlervermeidend bzw. fehlererkennend ausgeführt sein und müssen dem gewünschten SIL Claim bzw. PL oder der Kategorie entsprechen.

MicroSys‘ miriac EK5744 SafeAssure Kit ist eine Evaluations-, Design- und Prototyping-Plattform für sicherheitsgerichtete Geräte basierend auf dem MPC5744P. Als solches sind neben der MCU selbst und dafür nötigen und unterstützenden Bauteilen auch sicherheitsgerichtete Ein- und Ausgänge implementiert. Für höherwertige Anwendungen nach SIL2 bzw. PL c–d oder Kategorie 2 (bzw. 3) wurde entschieden, eine zweikanalige Architektur der Ein- und Ausgänge umzusetzen. Dies bedeutet, dass je Ein- oder Ausgang zwei I/O-Pins der MCU verwendet werden. Intern kann das Programm dann (bei Eingängen) die Werte der Eingänge vergleichen bzw. bei Ausgängen immer parallel die zugehörigen Ausgänge zugleich mit gleichem Wert schalten.

Für Anwendungen nach SIL1 bzw. PL a–b oder Kategorie 1 wurde entschieden, Ein- und Ausgänge einkanalig auszuführen. Hier ist die Verwendung von zweikanaligen Architekturen aufgrund der dadurch nötigen zweikanaligen Sensorik und Aktorik nicht wünschenswert, weil die zugehörige Sensorik und Aktorik, ebenso wie die nötige zweikanalige Verkabelung, das Gesamtsystem unnötig verteuern würde. Die Problematik bei einkanalig ausgeführten Ein- und Ausgängen ist allerdings, dass die Ein- und Ausgänge testbar (Eingänge) bzw. rücklesbar (Ausgänge) gestaltet werden müssen, so dass eventuell auftretende Fehler erkannt werden können.

Hard- und Software im Einklang

Für sich selbst betrachtet ist die Hardware auch im Fall des miriac EK5744P für eine sicherheitsgerichtete Anwendung eigentlich nutzlos. Zur Erfüllung einer sinnvollen Aufgabe ist jedes PES mit Software ausgestattet, die für diese Sicherheitsfunktionen speziell erstellt wird: die Safety-Applikation.

Die Software für ein sicherheitsgerichtetes System besteht jedoch nicht nur aus der eigentlichen Applikation. Wie bei jedem Embedded-System gibt es einen Bootloader, eine Initialisierung, Treiber zum Zugriff auf die Peripherie und ggf. Software Stacks für höherwertige Kommunikation, z.B. TCP/IP oder CANopen. Wir nennen diese im Gegensatz zur wirklichen Applikation Firm­ware. Im Fall des sicherheitsgerichteten Systems muss diese Firmware noch zusätzliche Aufgaben erfüllen. Die Firmware des miriac EK5744P ist nicht nur die Schale, die die Ausführung der Anwendung ermöglicht, sie hilft auch dabei, die Anwendung bei lästigen, aber doch nötigen Pflichten zu unterstützen. Zu definierten Zeitpunkten (wann, ist abhängig von der Anwendung und von der benötigten Sicherheitsstufe) müssen auch bei einer Lockstep-MCU diverse Tests durchgeführt werden. Zwar ist es meist nicht nötig, Instruktionstests zu machen (dies wird vom Lockstep-Mechanismus bereits erfolgreich ersetzt), jedoch sind Peripherietests nötig. Zu diesen zählt unter anderem auch ein Test der einkanalig ausgeführten Eingänge bzw. ein Rücklesen der einkanalig ausgeführten Ausgänge. Diese Firmware, die als Basis für die eigene Anwendung dient, ist integraler Bestandteil des miriac EK5744. Damit kann auch die Software-Entwicklung auf bekannte und bewährte Schnittstellen aufsetzen und diese nutzen, ohne das Rad immer wieder neu erfinden zu müssen.


  1. Sicherheitsgerichtetes Embedded-System entwickeln
  2. Die sichere CPU
  3. Der Weg zum eigenen Gerät

Das könnte Sie auch interessieren

Verwandte Artikel

MicroSys Electronics GmbH, Freescale Halbleiter Deutschland GmbH