Safety Cortex-R4-Mikrocontroller für das Automobil

Im Automobil werden heute alle wichtigen Funktionen elektronisch gesteuert. Die Module benötigen elektrische Versorgungs- und Kommunikationsleitungen, das hat ein komplexes Kabelnetzwerk und Mehrgewicht im Fahrzeug zur Folge. Eine Lösung ist, die Funktionen mehrerer Steuergeräte in jeweils einem zu vereinen, dessen Prozessor muss dann über mehr Rechenleistung und I/O-Funktionen verfügen.

Die Liste elektronischer Steuergeräte ist lang und reicht von den Chassis-Control- und Sicherheits-Funktionen (Motor, Getriebe, Bremsen, Lenkung, Airbags, Fahrdynamikregelung) bis hin zu Komfort-Funktionen (Fensterheber, Sitzverstellung, Türschlösser, Diebstahlsicherung, Spiegelverstellung, Scheinwerfer, Klimaanlage, Radio, Navigationssystem). Eine Fehlfunktion von Bremse, Lenkung oder Motor wäre fatal, und deswegen ist die Entwicklung und Realisierung des Sicherheitskonzepts dieser Systeme genauso wichtig wie deren Funktion.

TMS570-Mikrocontroller sind die ersten ARM-Cortex-R4F-basierenden MCUs mit Gleitkomma-Einheit, die für den Sicherheitsstandard IEC 61508/SIL3 entwickelt wurden.

Der TMS570 ist die leistungsfähigere Variante des TMS470, der in ABS-, Fahrdynamik- und Airbag-Elektronik eingesetzt wird. Weitere Anwendungsgebiete des TMS570 im Automobil sind Chassis und Stabilitätssteuerung, elektrische Lenkung (Electric Power Steering), Antriebsregelung bei Hybrid- und Elektrofahrzeugen sowie Radarsysteme. Aufgrund seiner Sicherheitsmerkmale ist der TMS570 auch für Avionik, Schienenverkehr und andere sicherheitskritische Anwendungen geeignet.

Maßgeblich für die Entwicklung von sicherheitskritischen elektronischen Systemen einschließlich zugehöriger Entwicklungsprozesse und Qualitätsmaßnahmen ist die internationale Norm IEC 61508. Die Norm ISO 26262, die sich derzeit noch im Entwurfsstadium befindet, ist eine Ableitung der IEC 61508 an die spezifischen Gegebenheiten im Automobilbereich, d.h. für sicherheitsrelevante elektrische/elektronische Systeme in Kraftfahrzeugen.

Ein zertifiziertes SIL3-System

Die TMS570-Mikrocontrollerfamilie wurde speziell für Safety-Integrity-Level-3-Systeme (SIL3) nach IEC 61508 ausgelegt. Die SIL3-Zertifizierung des Entwicklungsprozesses und des Sicherheitskonzepts des TMS570 erfolgte durch Exida, eine unabhängige Firma, die auf Gutachten im Bereich der funktionalen Sicherheit spezialisiert ist. Die TMS570LS-Serie verwendet auf dem Chip zwei identische CPUs vom Typ ARM Cortex-R4F, die dasselbe Programm im so genannten Lock-Step-Verfahren bearbeiten. Operationen und Ergebnisse beider Berechnungen werden in jedem CPU-Zyklus von einer Logik miteinander verglichen, um mögliche Fehler zu erkennen und darauf zu reagieren. Beide CPUs haben sowohl geometrische als auch zeitliche Diversität, um physikalische Fehler gemeinsamer Ursache zu erkennen. So ist die zweite CPU auf dem Silizium-Chip gespiegelt, um 90 ° gedreht und in der Abarbeitung um wenige Zyklen verzögert.

Der Vorteile der Lock-Step-Architekturen ist die hohe diagnostische Abdeckung, da die Hardware, welche die Aktionen beider CPUs vergleicht, permanent, d.h. in jedem CPU Zyklus, arbeitet. Im Falle einer Fehlererkennung kann binnen weniger CPU-Zyklen ein fehlersicherer Zustand hergestellt, z.B. abgeschaltet werden. Da die Fehlererkennung auf der CPU ausschließlich von der Hardware bewerkstelligt wird, ist sie für die Software transparent. Weitere mögliche Fehlerarten des Mikrocontrollers werden durch Hardware-Mechanismen erkannt. Der Aufwand für die Software-Entwicklung und für die systemseitige Sicherheitsvalidierung wird dadurch stark reduziert. Anwender können Software-Pakete von Dritten mit geringerem Aufwand in das Gesamtprojekt integrieren, und der Schritt von einem Zwei- auf ein Ein-Prozessor System kann helfen, Kosten zu reduzieren.

Fehlererkennung in Programm und Speicher

Um Fehler sowohl im Programm- als auch im Datenspeicher des TMS570LS zu erkennen und darauf reagieren zu können, verfügt jede CPU über eine integrierte Fehlerkorrektur-Logik (ECC). Dieses Modul ermöglicht es, einzelne Bit-Fehler zu korrigieren und Doppelfehler zu erkennen. Zusätzlich werden intern Adressbusse und Decoder überwacht. Zwei Arten von eingebauten Selbsttest-Modulen überwachen die CPUs (LBIST) bzw. den Datenspeicher (PBIST). Das LBIST-Modul überprüft die CPU während der Initialisierung des Controllers oder während der laufenden Applikation auf CPU-Defekte. Das PBIST-Modul testet alle integrierten Datenspeicher (RAM) mit verschiedenen wählbaren Algorithmen. Die eingebauten BIST-Module helfen dem Entwickler, die Software zu vereinfachen, da keine Testroutinen für die CPUs sowie die Datenspeicher implementiert werden müssen.

Alle Peripherie-Module, die über einen eigenen Datenspeicher verfügen (NHET, MibADC, FlexRay, DCAN und MibSPI), sind durch Paritätslogik in Hardware abgesichert. Diese RAM-Bereiche können ebenso per PBIST getestet werden.

Um Zugriffe auf bestimmte Speicherbereiche zu überwachen beziehungsweise diesen Bereichen spezifische Zugriffsrechte zuzuweisen, kann die integrierte Speicherschutzeinheit (MPU) verwendet werden. Zum Test gespeicherter statischer Daten ist eine 64-bit-CRC-Einheit vorhanden, die per DMA im Hintergrund betrieben werden kann. Zusätzlich haben die Peripherie-Module eigene Fehlererkennungsfähigkeiten, wie zum Beispiel der Selbsttest der A/D-Wandler. Alle Module, die zur Fehlererkennung dienen, sind mit dem so genannten Error-Signaling-Modul verbunden. Dieses Modul ermöglicht eine zentrale Priorisierung und Auswertung sowie die Signalisierung aller erkannten Fehler nach außen.