Themen wie CAN und Funktionale Sicherheit (ISO 26262) gehören zusammen wie das „Moin Moin“ zum Hamburger. Aufgrund der zunehmenden Verteilung und Vernetzung der Funktionen im Fahrzeug rückt die Kommunikation zwischen den Steuergeräten als sicherheitskritisches Element schnell ins Blickfeld der Funktionalen Sicherheit. In diesen Artikel möchte ich die Kernaspekte zur Funktionalen Sicherheit (FuSi) kurz ansprechen.
Zuerst die CAN Grundlagen und dann Funktionale Sicherheit
Die CAN-Kommunikation wurde in folgenden Standards definiert:
- ISO 11898-1:2015 Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling
- ISO 11898-2:2016 Road vehicles — Controller area network (CAN) — Part 2: High-speed medium access unit
- ISO 11898-3:2006 Road vehicles — Controller area network (CAN) — Part 3: Low-speed, fault-tolerant, medium-dependent interface
- ISO 11898-3:2006/Cor 1:2006 Road vehicles — Controller area network (CAN) — Part 3: Low-speed, fault-tolerant, medium-dependent interface — Technical Corrigendum 1
- ISO 11898-4:2004 Road vehicles — Controller area network (CAN) — Part 4: Time-triggered communication
Der bekannte Standard-CAN-2.0A oder 2.0B ist nach ISO 11898-1 ein zweidraht (Single Pair, SP) multimaster Bussystem mit Linientopologie und mit max. 1Mbit/s Übertragungsrate, das nach dem CSMA/CR Verfahren den Zugriff auf das gemeinsam genutze Medium (Shared Medium) regelt. Die Nachrichten sind mit einer ID nach Priorität geordnet und werden meisst in einen festen Intervall gesendet, jedoch nicht frei von Jitter mit nicht deterministischen Verhalten bei Kollisionen für niederpriore Nachrichten. D.h. Daten mit hoher Priorität setzen sich zerstörungsfrei im Arbitriervorgang durch. Bei einen „0“ dominanten CAN-Netzwerk wie dem CAN 2.0 setzt sich demnach in der Arbitrierungsphase die Nachricht mit der niedrigsten ID (Nr. 1) durch. Die Kodierung erfolgt mittels NRZ und die Synchronisierung auf Bitebene erfolgt entweder hart mit der ersten Flanke oder per Resynchronisation mittels 5er Bit-Stuffing.
Die Teilnehmerzahl ist auf bis zu 128 beschränkt. Die Anzahl der Nachrichten ist abhängig von dem Object-Identifier-Format, welche je nach CAN-Standard unterschiedlich sind:
- CAN 2.0A: Base Frame Format (11 Bit-ID)
- CAN 2.0B: Extended Frame Format (29 Bit-ID)
Ein Nachricht darf nur ein Sender haben, um eine erfolgreiche Arbitrierung im Netzwerk sicherzustellen. Nachrichten und Sender werden i.d.R. in einer Kommunikationsmatrix (K-Matrix) festgelegt. Nachrichten mit höherer Priorität verdrängen Nachrichten niedriger Priorität verlustfrei.
PHY-Layer: Datensicherung & Synchronisation auf Bitebene
Die Daten werden per Cyclic Redundancy Check (CRC) gesichert. Dabei wird der zu übertragende Datenblock um 15 „0“Bits erweitert und mittels Polynomdivision mit einen Generatorpolynom in der Hardware des CAN-Controllers (Shift und XOR) ein Restpolynom r(x) berechnet. Das Restpolynom wird als CRC-Checksumme im CAN-Telegramm mitgesendet und ermöglicht dem Empfänger bei einer Hammingdistanz von 6 ein Erkennen von bis zu 5 fehlerhaften Bits. Bei CAN 2.0A kommt folgendes Generatorpolynom der 15. Ordnung zum Einsatz:
g(x) = x^15 + x^14 + x^10 + x^8 + x^7 + x^4 + x^3 + 1
Ein CRC-Polynom der 15. Ordnung kann Datenblöcke mit einer Länge von bis zu 2^7-1=127 Bits, also 112 Datenbits und die CRC-Checksumme (15 Bit) abdecken. Der längste Codeblock findet sich im extended CAN Format. Dabei wird ein Datenblock, angefangen von Abitrierdatenfeld bis zum Ende der Nutzdaten, mit dem CRC-Polynom gesichert. Dieser Datenblock kann bis zu 102 Bit lang werden und ist damit recht gut abgesichert.
Die Synchronisierung durch das 5er Bit-Stuffing birgt jedoch noch Fehlerpotenzial und muss bei der Wahl der Datenblöcke als sicherheitskritischer Aspekt Berücksichtigung finden. Beim Bitstuffing werden bei 5 gleichartigen Bits ein invertiertes Bit in den Bitstream von dem Sender eingefügt und im Empfänger wieder entfernt. Dabei kann es zu einer Fehlinterpretation im Empfänger kommen. Dies würde jedoch unter umständen die Datenrahmenlänge (Frame Length) verändern und durch einen Frame-Length-Checker erkannt werden. Es kann bei mehrfach fehlerhaften „Destuffing“ innerhalb eines Blocks zu scheinbar konsitenten Datenblöcken kommen, die auch durch den CRC Check nicht erkannt werden. Es muss davon ausgegangen werden, dass die Hammingsdistanz von 6 daher nicht sicher angenommen werden kann für eine bestimmte Gruppe von Datenblöcken mit einem spezifischen Fehlerbild.
Mehr Speed mit CAN-FD
Bei dem Nachfolger des klassischen Standard-CAN, dem CAN-FD ist die Risikoquelle „Bitstuffing“ weniger problematisch, da hier die CRC-Checksumme aus dem vorbereiteten Datenstream mit den Stuffbits gebildet und angehängt wird. Sicherheitsmechanismen höherer Protokollebenen können dieses Fehlerpotenzial i.d.R. leicht behandeln. Weiterhin hat der CAN-FD noch zusätzliche Informationsbits im CRC-gesicherten Bereich, welche den Fehlerzustand des Knotens (Node: Active/Passive) anzeigen. Das FD steht für Flexible Datarate, welche die Fahigkeit beschreibt, die Übertragungsrate nach dem Arbitrierungsvorgang zu erhöhen, um die Nutzdaten und CRC-Daten schneller übertragen zu können (5 bis 8Mbit/s). CAN-FD ist abwärtskompatibel, während bei CAN 2.0A/B Aufwärtskompatibilität nicht gewährleistet ist.
Funktionale Sicherheit nach ISO 26262 und CAN
Nehmen wir an, wir benötigen ein unabhängigen Signalpfad nach ASIL B von einen Steuergerät A (ST-A) zum Steuergerät B (ST-B) und wählen im technischen Sicherheitskonzept (TSC) den klassichen CAN-Bus als Medium. Nun sind aus Kostengründen in der Regel mehrere Teilnehmer (Multi-Master) am CAN-Bus und eine Analyse zur Koexistenz von Elementen nach Teil 9-6 der ISO26262 ist erforderlich. Es kann vorkommen, dass eine Nachricht von einer anderen überschrieben wird. Gerade wenn zwei Master zeitversetzt die gleiche Nachricht-ID versenden. Gegebenenfalls könnte eine Art „Master-ID-Checksumme“ Abhilfe schaffen. Jedoch ist keine Koexistenz ohne weiteres gewährleistet und es kommt zu einen ASIL-Lift-UP. D.h. alle Busteilnehmer müssen nach dem höchsten ASIL im Bussystem entwickelt werden oder die lokalen Sicherheitsarchitekturen in den Steuergeräten müssen angepasst werden (Dekomposition). Sofern es sich bei dem System um Fail-Safe-Charakteristik handelt und ein Steuergerät auch ohne Kommunikation den sicheren Zustand herstellen kann, gehen diese Fehlerbilder nur in das Budget der quantitativen Betrachtung ein. Fail-Operational-Anwendungen benötigen einen alternativen und unabhängigen Pfad bzw. eine CAN-Direktverbindung (Punkt zu Punkt Verbindung). Damit wird deutlich, dass die Themen CAN und Funktionale Sicherheit recht komplex sind.
Würde es zu einen ASIL-Lift-UP kommen, so ist z.B. für ein ASIL C ein SPFM Zielwert von >97% nur über eine „Combination of information redundancy, frame counter and timeout monitoring“ um ein DC von 99% (high) zu erreichen. In Anbetracht des steigenden Overheads und der Bandbreite des CAN-Bussystems (CAN max. 50-55% der Kapazität) nicht unproblematisch. In ISO26262 Part 5 (Hardware), Annex D 2.7.6 wird ein Diagnostic Coverage (DC) von 90% (medium) angegeben für die CAN typische CRC-Sicherung. Für die Datenintegrität nach ASIL B würde diese Maßnahme den in den Harwaremetriken für Einfachfehler geforderten SPFM-Zielwert von 90% ohne weitere Maßnahmen bereits erfüllen.
Funktionale Sicherheit & Dekomposition im CAN-Netzwerk ?
Nun sei eine Dekomposition nach ASIL B (C) angenommen für den CAN-Bus in den ISO-OSI-7-Schichtenmodell von Schicht 1(Bitübertragung) bis zur Schicht 4 (Transportschicht, Ende-zu-Ende-Verbindung). Durch die Dekomposition findet eine Verschiebung der strengen Anforderungen von ASIL C/D in die oberen Schichten des ISO-OSI-Modells statt. Der CAN-Stack kann dann ggf. nach QM dekomponiert werden sofern es sich um ein Fail-Safe-System handelt. Die oberen ISO-OSI Schichten 5-7 können dann in Software nach den Prinzip der Wechselwirkungsfreiheit entwickelt werden. Dazu ist ISO 26262 Teil 6, Annex D „Freedom from interference between software elements“ Unterpunkt 2.4 (Informationsaustausch) ein lesenswerter Abschnitt.
Fehlertoleranz im CAN-Netzwerk
Die Terminierung (120 Ohm) im CAN-Netz ist notwendig, um elektrische Symmetrie zwischen der Signal-Quelle und der Signal-Senke zu erhalten. Ein Fehler im Abschlusswiderstand (Termination) im High-Speed-CAN nach ISO 11898-1 führt zum Verlust der Funktion des PHY-Layers. In ISO 11898-3 (Low-Speed-CAN) ist ein PHY spezifiziert, welcher Fehlertoleranzeigenschaften mit sich bringt. Eine Terminierung findet in jedem Knoten (Node) statt und liegt im Gesamtnetzwerk bei ca. 100 Ohm. Weiterhin ist die Übertragungsrate verringert (125 Kb/s), um höherer Spannungspegel zu erhalten. Es lassen sich daher Hybrid-Star-Bus-Topologien realisieren.
Die Fehlertoleranz bezieht sich auf folgende Fehlerbilder:
- ein Bussignal (CAN H / CAN L) hat Kurzschluss (V+ oder GND)
- ein Bussignal (CAN H / CAN L) ist hochohmig
- Terminierung (120 Ohm) versagt
Folglich ist die Kommunikation nur über eine der Hauptleitungen möglich. Dies ist mit Vorsicht zu betrachten, da Masseschleifen durch räumlich verteilte Netzwerke im Fahrzeug durch EM-Strahlungen nicht gerade vorteilhaft sind.
Funktionale Sicherheit & Quantifizierung der CAN Kommunikation
Nun stellt sich noch die Frage nach der quantitativen Sichtweise. Dazu sei auf die Bit Error Rate (BER) verwiesen und der dazu vorhandenen vielfältigen Literatur.
BER=Fehlerhafte Bits/Gesamtbitzahl=Fehlerhafte Bits/(Übertragungsrate*Zeitintervall)
Nun kann nach [1] eine Poissonverteilung angenommen werden und für die Berechnung der Fehlerrate im Bezug auf nur eine versendete Nachricht gilt dann:
λ=1-e^(-BER*Anzahl der zu übertragenden Bits)
Die BER liegt nach [2] empirisch bei 10^-10 in unproblematischen Umgebungen, bei 10^-8 in aggressiven Umgebungen und im worst case (starke EM-Strahlung in der Nähe von Radiosendern) sogar bei 10^-3 [3]! Je nach Fehlermodell kann es gerade bei Burst-Error-Betrachtungen zu intensiven Testszenarien kommen, die dann auch die Effektivität der bereits betrachteten CRC-Sicherung erkennen lassen wird. In [1] wird über folgendes berichtet: „In more aggressive environments, it has also been reported that around 90% of these Burst errors occur in short correlated bursts, with durations typically between 5 to 20 bit times“. Dies lässt vermuten, dass die CAN-Technologie mit der Hammingdistanz von 6 und dem 5er Bitstuffing für das Fehlerbild „short correlated bursts“, mit dem Vielfachen einer 5er Bitzeit (5,15,20) anfällig ist. Dies sollte daher in den oberen Protokollschichten beherrscht werden.
Faktor Zeit – Determinismus
Der Aspekt der deterministischen Datenübertragung ist bei replika-deterministischen Strukturen eine wichtige Grundlage. Bei zeitkritischen Anwendungen wie X-by-Wire oder Regelschleifen kommt der klassische CAN mit seiner CDMA/CA Charakteristik (ereignisgesteuerter priorer Buszugriff) an seine Grenzen. Insbesondere Jitter können die Regelkreisstabilität gefährden bei fehlender Phasenreserve. Daher wird das TDMA-Verfahren auf den oberen Ebenen des ISO-OSI-Modells für CAN-Netze in ISO11898-4 vorgeschlagen. Es entsteht ein TTCAN (time-triggered CAN)-Netzwerk, bei den ein „Time-Master“ arbitrierende (CDMA/CA, ereignisgesteuerte Datenübertragung) , exklusive (deterministische Datenübertragung) sowie freie Zeitfenster (Erweiterung) festlegt. Es empfiehlt sich jedoch auf andere Netzwerktechnologien mit synchronen Buszugriff wie FlexRay zu setzen bei Echtzeit-Anforderungen. Es sei noch angemerkt, dass eine kalte Redundanz des CAN-Übertragungskanals bei Kabelbruch einer Leitung durch Eindraht-Masse Kommunikation als Rückfallebene mit eingeschränkter Übertragungsrate bei einigen Controllern möglich ist. Die komplexere FlexRay-Technologie bietet dagegen 2 Kanäle und damit heiße Redundanz, die von Systemen mit ASIL C/D und Fail-Operational-Charakteristik oft verwendet wird.
Fazit zum Thema Funktionale Sicherheit & CAN
Kurz gesagt, Sie können CAN bis ASIL B ohne weitere Sicherheitsmechnismen/Maßnahmen nutzen, wenn Sie den Aspekt der CRC und Bit-Stuffing beachten. Das meisst verbreitete Mixed-ASIL-CAN-Architektur erzwingt die Verwendung von modifizierten Sicherheitskonzepten in den Steuergeräten und mindestens das Timeout-Monitoring und den Frame-Counter. Eine Steuergerätespezifische Checksumme im Datenblock sichert den Fall des „überschreibens“ durch einen defekten Teilnehmer ab. Weiterhin sei auf die Gefahr eines „Babbling Idiot’s“ verwiesen, bei dem ein Busteilnehmer ständig eine Nachricht hoher Priorität versendet und anderen Teilnehmern durch die Natur der Arbitrierung das Senden ihrer Nachrichten unmöglich macht. Lösung hier die Bus-Guardian-Funktionalität. Es ist eine leistungsfähige End-2-End-Absicherung in den oberen Schichten mit den Sicherheitsmechanismen eines „Safety-Communication-Layers“ (SCL) nach dem Black-Channel-Prinzip gem. IEC 61508 erforderlich.
Stand: 14.01.2020
Quellen:
[1]: „Bandwidth-Efficient Burst Error Tolerance in TDMA-based CAN Networks“, M.Short, I.Sheikh, S.A.I.Rizvi, 2011
[2] J. Ferreira, A. Oliveira, P. Fonseca and J.A. Fonseca, “An Experiment to Assess Bit Error Rate in CAN”, In Proceedings of the 3rd International Workshop on Real-Time Networks, June 2004.
[3]B. Gaujal and N. Navet, “Fault Confinement Mechanisms on CAN: Analysis and Improvements”, IEEE Transactions on Vehicular Technology, Vol. 54, No. 3, pp. 1103-1113, 2005.