Aurix-Mikrocontroller: Auf Nummer sicher gehen

15.12.2020 Know-How

Das Thema Sicherheit gewinnt in allen technischen Bereichen an Bedeutung. Entwickler müssen daher immer häufiger schlüssige Sicherheitskonzepte entwerfen, die die einzelnen Bauelemente bis ins Detail berücksichtigen. Als Herzstück eines Systems stehen Mikrocontroller dabei im Fokus.

Hinsichtlich funktionaler Sicherheit liefert die IEC 61508 die zentralen Vorgaben. Sie umfasst eine Reihe von Normen für die „funktionale Sicherheit sicherheitsbezogener elektrischer/elektronischer/programmierbarer elektronischer Systeme“. Für bestimmte Anwendungsgebiete existieren leicht angepasste Normen, die der IEC 61508 untergeordnet sind. Als Anpassung von IEC 61508 an die spezifischen Gegebenheiten im Automobilsektor gilt ISO 26262 – „sicherheitsrelevante elektrische/elektronische Systeme in Kraftfahrzeugen“.

 

Zahlreiche Sicherheitsmerkmale

Die 32-bit-Mikrocontroller-Familie Aurix von Infineon erfüllt nicht nur die Anforderungen von ISO 26262 bis ASIL-D, sondern sie wurde auch als SEooC (Safety Element out of Context) entwickelt. Das bedeutet, dass die Derivate der Aurix-Familie aufgrund ihrer Sicherheitsmerkmale in ein sicherheitsrelevantes Gesamtsystem integriert werden können.
Die Aurix-Familie wird in der zweiten Generation in 40-nm-Embedded-Flash-Technologie gefertigt und ist vollständig Automotive-qualifiziert. Dank sechs TriCore-Prozessorkernen mit bis zu 300 MHz bietet sie deutlich mehr Rechenleistung als ihr Vorgänger (1. Generation, TC2x: 740 DMIPS; 2. Generation, TC3x: 2400 DMIPS).
Besonders die Unterstützung für die funktionale Sicherheit macht den Aurix auch für Industrie-Applikationen interessant. Folgende Sicherheitsmerkmale in Hard- und Software zeichnen den Aurix-Mikrocontroller für sicherheitskritische Anwendungen aus:

  • Checker-Cores
  • Flash & RAM ECC (Error-Correcting Code)
  • Safe SRI (Crossbar)
  • Spannungs-, Frequenz- und Peripherieüberwachung
  • Safety-Management-Unit (SMU)
  • Sicherheitsmanager SafeTpack
  • Logic-Built-In-Self-Test (LBIST)

 

Sicherheitseigenschaften

Die Checker-Cores laufen im Hintergrund und überwachen den Prozessor. Alle Operationen werden doppelt ausgeführt. Sobald unterschiedliche Ergebnisse erzielt werden, erfolgt eine Fehlermeldung durch die SMU.
Sowohl das Flash als auch das RAM weisen eine integrierte ECC-Funktion auf. Dieses Fehlererkennungsverfahren stellt fest, ob bei der Speicherung oder Übertragung von Daten ein Fehler vorliegt. Falls ein solcher erkannt wird, lässt er sich korrigieren.
Über SRI (Shared Resource Interconnection), auch Crossbar genannt, werden Daten zwischen den Cores und dem Speicher hin und her transferiert. Diese Verbindungen sind mit Hardwaremechanismen in Form von Ende-zu-Ende-Verbindungen abgesichert.
Die zweite Generation der Aurix-Mikrocontroller basiert auf einer Betriebsspannung von 3,3 V und einer Frequenz von 300 MHz. Bei Über- oder Unterschreiten der zulässigen Toleranzen wird ein Alarm generiert. Die Peripherie kann z.B. per CRC (Cyclic Redundancy Check) überwacht werden. Bei diesem Verfahren wird die korrekte Datenübertragung mit Prüfsummen kontrolliert.
Die Safety-Management-Unit ist als integrierte Hardware-IP im Aurix für die Erfassung, Verarbeitung und Auswertung aller Fehler in Bezug auf Sicherheit zuständig.
SafeTpack ist ein umfassender Sicherheitsmanager für die zweite Aurix-Generation und wurde von der Firma Hitex entwickelt. Er koordiniert die Durchführung von Inbetriebnahme- und zyklischen Tests, die den korrekten Betrieb der Aurix-Prozessorkerne und der internen Busse durch eine Mischung aus Hard- und Softwaremodulen sicherstellen.
Der Logic-Built-In-Self-Test ist Teil der SafeTpack-Softwarebibliothek. Sie gibt dem Entwickler die Möglichkeit, mittels Software die einwandfreie Funktion des Aurix bei jedem Start des Controllers zu gewährleisten.
Diese Hard- und Softwaremerkmale schaffen einen Grad an Sicherheit, der mit einem Standard-Mikrocontroller nicht ohne Weiteres zu erreichen ist.

 

Funktionale Sicherheit umsetzen

Funktionale Sicherheit lässt sich jedoch nicht allein mit dem Mikrocontroller herstellen, vielmehr ist sie als zentraler Bestandteil des gesamten Designs zu sehen. Nur wer von Anfang an ein Sicherheitskonzept erarbeitet und dieses mit letzter Konsequenz verfolgt, kann die Sicherheit des Gesamtsystems gewährleisten. Dieser komplexe Prozess lässt sich auf fünf Schritte zusammenfassen.

1. Gefährdungs- und Risikoanalyse durchführen
Bei der Risikoanalyse ist zu ermitteln, inwiefern sicherheitskritische Anwendungen in Betracht gezogen werden und inwieweit diese in Bezug auf gesetzliche Vorgaben für funktionale Sicherheit eingehalten werden muss. Hierfür stehen verschiedene Verfahren zur Verfügung. Beliebt ist z.B. HARA (Hazard-Analysis and Risk-Assessment). Damit lässt sich bestimmen, ob ein System ein sicherheitsrelevantes System ist, und, falls ja, wie hoch der Grad der Sicherheitsrelevanz ist.

2. Sicherheitsanforderungsstufe definieren
Je nach Norm existieren unterschiedliche Sicherheitsanforderungsstufen. Für Industrieapplikationen definiert IEC 61508 das sog. „Safety Integrity Level (SIL)“ mit den Stufen SIL1 bis SIL4. Welche Stufe hier relevant ist, kann anhand der Kombination der Parameter Schadensausmaß, Aufenthaltsdauer, Gefahrenabwehr, Eintrittswahrscheinlichkeit in einer Matrix abgelesen werden.
Analog dazu definiert ISO 26262 die adäquaten Sicherheitskriterien für Automotive-Umgebungen. Hier heißen die Sicherheitsstufen ASIL-A bis ASIL-D.

3. Bauelemente bestimmen und Design realisieren
Für die Realisierung einer gewünschten Applikation wird das geeignete Bauelement ausgewählt. Berücksichtigt werden hierbei konkrete Sicherheitsfunktionen. Damit kann nun das Layout der Platine entworfen und diese entsprechend bestückt werden. Nachdem die Hardware aufgebaut ist, kann die Software implementiert werden. Hier ist vor allem beim Programmieren des Mikrocontrollers ein schlüssiges Sicherheitskonzept zu erarbeiten und umzusetzen. Denn der Mikrocontroller steuert als zentrale Einheit das Geschehen.

4. Sicherheitsfunktion validieren
Das Validierungsverfahren zeigt auf, ob alle sicherheitsrelevanten Funktionen ordnungsgemäß arbeiten – und zwar jede einzelne Funktion, unabhängig vom Gesamtsystem. Sollte eine oder mehrere nicht gemäß den Vorgaben funktionieren, so kann diese noch während der Entwicklung überarbeitet werden. Diese Prozedur wird so oft wiederholt, bis alle Sicherheitsfunktionen die Vorgaben erfüllen.

5. Sicherheit verifizieren
Die Verifizierung ist der zweite Teil der Überprüfung, der nach der Validierung erfolgt. Hierbei wird auf Basis von Checklisten der einwandfreie Betrieb des Systems geprüft. Im Gegensatz zur Validierung wird bei der Verifikation das System als Ganzes betrachtet. Unabhängige Zertifizierer, wie z.B. der TÜV, unterstützen diesen Schritt und bescheinigen die Sicherheit gemäß den gesetzlichen Vorgaben.

 

Umfassender Support durch Partnernetzwerk

Die Programmierung eines komplexen Mikrocontrollers wie des Aurix ist aufwändig, vor allem, wenn Sicherheitsaspekte hinzukommen. Um Entwickler dabei zu unterstützen und die Programmierung zu beschleunigen, hat Infineon für alle Kunden das sogenannte PDH-Konzept (Preferred Design-House) entwickelt. Eine Übersicht zu allen im PDH enthaltenen Partnerfirmen und deren Expertise ist unter www.infineon.com/pdh aufgelistet.
Das PDH-Modell umfasst kostenlose sowie kostenpflichtige Support-Services. Kostenfrei erhalten Kunden zum Beispiel den 1st-Level-Support sowie Beratungs- und Schulungsleistungen. Eine vollständige Implementierung von Hard- und Softwarekomponenten steht Kunden gegen Bezahlung zur Verfügung. Entsprechende Unterstützung bietet auch der Rutronik-Partner Hitex. Das Unternehmen hat sich über die Jahre den Ruf eines Spezialisten für funktionale Sicherheit erarbeitet. Während Rutronik Entwickler bei der Entwicklung umfassend unterstützt, erhalten Kunden hier Support bei der vollständigen, erfolgreichen Implementierung einer aufwändigen und komplexen Funktionalität.

 

Komponenten gibt es auf www.rutronik24.de.

Bleiben Sie auf dem Laufenden, indem Sie unseren Newsletter abonnieren.