-
Die vorliegende Erfindung betrifft das Gebiet der digitalen Datenübertragung und, in bestimmten Ausführungsbeispielen, die zuverlässige Übertragung von digitalen Datenrahmen (auch Daten-Frames, engl.: data frames) zur Reduzierung der Bit-Fehlerrate in empfangenen Datenrahmen.
-
Es gibt viele bekannte Möglichkeiten zu detektieren, ob eine Sequenz einer bestimmten Anzahl von Bits (auch als Datenrahmen, Daten-Frame oder einfach als "Frame" bezeichnet) fehlerhafte Bits enthält, z.B. aufgrund einer fehlerhaften Übertragung oder Speicherung eines Datenrahmens. Ein üblicher Weg besteht darin, weitere Datenbits in den Datenrahmen aufzunehmen, welche eine Prüfsumme repräsentieren (auch als Hash-Summe oder Hash-Wert bezeichnet). Beispielsweise kann ein einziges Paritätsbit (engl.: parity bit) eine sehr einfache Prüfsumme repräsentieren. Es sind jedoch auch komplexere Prozeduren zur Berechnung von Prüfsummen bekannt (sogenannte Hash-Funktionen). Ein anderes Beispiel für eine Hash-Funktion, die zur Erzeugung von Prüfsummen verwendet werden kann, ist die zyklische Redundanzprüfung (engl.: "cyclic redundancy check“, kurz CRC). Eine CRC-Prüfsumme wird auch als Polynomialcode-Prüfsumme (engl: "polynomial code checksum") bezeichnet. Abhängig von der Ordnung des Polynoms, der in einer derartigen Funktion verwendet wird, wird von einer CRC4, CRC12, CRC64, etc. gesprochen (d.h. von einer zyklischen Redundanzprüfung unter Verwendung von Polynomen vierter, zwölfter, vierundsechzigster, etc. Ordnung). Beispielsweise werden Datenübertragungen über ein Ethernet-Netzwerk oder Übertragungen von und zu einer Festplatte mit Hilfe von CRC-Verfahren geprüft.
-
Unterschiedliche CRC-Verfahren, die Polynome unterschiedlicher Länge verwenden, (oder allgemein unterschiedliche Verfahren zur Prüfsummenberechnung) gewährleisten typischerweise unterschiedliche Wahrscheinlichkeiten, dass ein empfangenes fehlerhaftes Bit nicht detektiert wird. Eine Anwendung, in der Bitfehler fatale Konsequenzen haben können, sind elektronische Steuereinheiten (engl. „electronic control units“, kurz: ECUs), die das Auslösen von Airbags in Automobilen steuern. In solchen Anwendungen stehen die Wahrscheinlichkeit eines unerkannten Bit-Fehlers (Bit-Fehlerwahrscheinlichkeit) und die Bitfehlerrate in enger Beziehung mit der Wahrscheinlichkeit eines ungewollten Auslösens des Airbags, was fatale Konsequenzen nach sich ziehen kann. Aus diesem Grund definieren die relevanten Standards, wie z.B.
ISO26262 (mit dem Titel "Road Vehicles – Functional Safety") sogenannte "Safety Integrity Levels" (deutsch: „Sicherheitsanforderungsstufen“, z.B. ASIL A bis ASIL D, wobei ASIL für "automotive safety integrity level" steht), welche abhängig von einem mit einer Fehlfunktion verbundenen Risiko Obergrenzen für die Wahrscheinlichkeit einer Fehlfunktion definieren.
-
Angesichts der extrem hohen Anforderungen für die Detektion von Fehlern in übertragenen Datenrahmen, insbesondere in Anwendungen im Automobilbereich, besteht die der Erfindung zugrunde liegende Aufgabe darin, verbesserte Verfahren und Systeme zur Ermöglichung einer zuverlässigen Datenübertragung zu schaffen.
-
Die genannte Aufgabe wird beispielsweise durch ein Datenübertragungssystem gemäß Anspruch 1, ein Bussystem gemäß Anspruch 10 sowie ein Datenübertragungsverfahren gemäß Anspruch 18 gelöst. Beispielhafte Ausführungsformen und Weiterentwicklungen der Erfindung sind Gegenstand der anhängigen Ansprüche.
-
Im folgenden wird ein System zur Datenübertragung beschrieben. Gemäß einem Beispiel der vorliegenden Erfindung umfasst das System zumindest eine Übertragungsleitung, einen Sender, der dazu ausgebildet ist, Datenrahmen über die zumindest eine Übertragungsleitung zu senden, sowie einen Empfänger, der dazu ausgebildet ist, die Datenrahmen über die zumindest einen Übertragungsleitung zu empfangen. Sowohl der Sender, als auch der Empfänger sind beide dazu ausgebildet, eine Prüfsumme zu bestimmen basierend auf einer Vielzahl von korrespondierenden Datenrahmen welche über die Übertragungsleitung gesendet bzw. über diese empfangen werden. Das Datenübertragungssystem umfasst des Weiteren eine Einheit zum Vergleichen von Prüfsummen, die dazu ausgebildet ist, die vom Sender bestimmte Prüfsumme und die korrespondierende vom Empfänger bestimmte Prüfsumme zu empfangen und zu vergleichen, und die weiter dazu ausgebildet ist, einen Übertragungsfehler zu signalisieren, oder eine Sicherheitsfunktion auszulösen, wenn die verglichenen Prüfsummen nicht gleich sind.
-
Es wird auch ein Bussystem beschrieben. Gemäß einem weiteren Beispiel der vorliegenden Erfindung umfasst ein derartiges Bussystem zumindest eine Busleitung, einen Sender, der dazu ausgebildet ist, Datenrahmen über die zumindest eine Busleitung zu senden, sowie einen Empfänger, der dazu ausgebildet ist, die Datenrahmen über die zumindest eine Busleitung zu empfangen. Sowohl der Sender, als auch der Empfänger sind dazu ausgebildet, Prüfsummen basierend auf einer Vielzahl korrespondierender Datenrahmen, welche über die zumindest eine Busleitung gesendet bzw. über diese empfangen werden, zu bestimmen. Das Bussystem umfasst des Weiteren eine Prüfsummenvergleichseinheit, die dazu ausgebildet ist, die von dem Sender bestimmte Prüfsumme und die korrespondierende von dem Empfänger bestimmte Prüfsumme zu empfangen und zu vergleichen, und die weiter dazu ausgebildet ist, einen Übertragungsfehler zu signalisieren oder eine Sicherheitsfunktion auszulösen, wenn die verglichenen Prüfsummen nicht gleich sind.
-
Schließlich wird ein Verfahren zur Übertragung von Datenrahmen von einem Sender zu einem Empfänger über einen Übertragungskanal beschrieben. Gemäß einem weiteren Beispiel der Erfindung umfasst das Verfahren das senderseitige Bestimmen einer Prüfsumme basierend auf einer Vielzahl von gesendeten Datenrahmen. Empfängerseitig wird eine Prüfsumme basierend auf einer Vielzahl von korrespondierenden Datenrahmen bestimmt, die empfangen wurden. Die vom Sender bestimmte Prüfsumme, sowie die korrespondierende vom Empfänger bestimmte Prüfsumme werden verglichen und ein Übertragungsfehler wird signalisiert, wenn die verglichenen Prüfsummen nicht gleich sind.
-
Die Erfindung wird nun unter Bezugnahme auf die folgenden Abbildungen beschrieben. Die in den Abbildungen dargestellten Komponenten sind nicht notwendigerweise als Einschränkung zu verstehen, vielmehr wird Wert darauf gelegt, das der Erfindung zugrundeliegende Prinzip zu erläutern. In den Abbildungen zeigen:
-
1 ein Blockdiagramm mit den wesentlichen Komponenten einer ECU, welche das Auslösen eines Airbags in einem Automobil steuert;
-
2 ein Blockdiagramm mit einem Beispiel eines Bus-Interfaces, welches eine ECU mit externen Sensoren verbindet und welches gemäß einem ersten Beispiel der vorliegenden Erfindung arbeitet;
-
3 ein Blockdiagramm mit einem weiteren Beispiel eines Bus-Interfaces, welches eine ECU mit externen Sensoren verbindet und welches gemäß einem weiteren Beispiel der vorliegenden Erfindung arbeitet; und
-
4 ein Blockdiagramm mit einem weiteren Beispiel von Bus-Interfaces, welche gemäß einem dritten Beispiel der vorliegenden Erfindung arbeiten.
-
In den in den Figuren dargestellten Abbildungen bezeichnen gleiche Bezugszeichen gleiche oder ähnliche Komponenten oder Signale mit gleicher oder ähnlicher Bedeutung.
-
Der Aufbau und die Verwendung der hier beschriebenen Ausführungsbeispiele wird im Folgenden detailliert erläutert. Es ist jedoch anzumerken, dass die vorliegende Erfindung viele zur Erfindung gehörige Konzepte aufweist, welche in einer Vielzahl von unterschiedlichen Zusammenhängen eingesetzt werden können. Die hier beschriebenen spezifischen Ausführungsbeispiele sind lediglich als spezifische illustrative Möglichkeiten zu sehen, die Erfindung auszuführen und zu benutzen und beschränken nicht den Schutzbereich der zu schützenden Erfindung. In der weiteren Beschreibung wird die Erfindung anhand einer Airbag-ECU (ECU ist kurz für „electronic control unit“) beispielhaft beschrieben, wobei die ECU über ein SPI-Bussystem in mit externen Sensoren Verbindung steht (SPI ist kurz für "seriel peripheral interface"). Jedoch sind auch andere Anwendungen der erfinderischen Konzepte möglich.
-
1 ist ein Blockdiagramm, welches die grundlegenden Komponenten einer ECU 10 zeigt, welche die Airbag-Auslösung in einem Automobil kontrolliert. Die Airbags werden ausgelöst ("gezündet") unter Verwendung sogenannter „Zündpillen“ (auch als "squibs" bezeichnet). Eine Zündpille 40 wird dadurch gezündet, dass sie mit einem geeigneten elektrischen Strom versorgt wird. Eine Zündpille hat üblicherweise zwei Anschlüsse, von denen einer mit einem unteren Versorgungspotential VSS ("low side supply potential") über einen Low-Side-Transistor TLS und der andere mit einem oberen Versorgungspotential VCC (oder VDD, "high side supply potenital“) über einen High-Side-Transistor THS verbunden ist. Wenn beide Transistoren leitend angesteuert werden (d.h. in einen leitenden Zustand mit geringem ohmschen Widerstand) liegt die gesamte Versorgungsspannung VCC-VSS an der Zündpille 40 an. Um ein ungewolltes Zünden der Zündpille 40 zu vermeiden, wird z.B. ein Sperr-Transistor TB ("blocking transistor") in Serie zu der Zündpille 40 und den Transistoren TRS und TLS geschaltet, so dass ein Zünden der Zündpille verhindert wird, wenn der Sperrtransistor sperrend angesteuert ist (d.h. in einen nichtleitenden Zustand mit hohem ohmschen Widerstand). Der Sperrtransistor TB wird sperrend angesteuert, wenn in empfangenen Daten, die für das Auslösen des Airbags relevant sind, eine Inkonsistenz detektiert wird. Die Transistoren TRS und TLS werden durch eine Auslöselogikeinheit 131 („firing logic“) angesteuert, wobei in dem vorliegenden Beispiel die Transistoren TRS und TLS als MOSFETs implementiert sind und folglich die Auslöselogikeinheit 131 geeignete Gatetreiber umfasst zur Erzeugung von Gatesignalen nach Maßgabe eines Eingangssignals, welches der Auslöselogikeinheit 131 zugeführt ist. Die Transistoren TRS und TLS sowie die Auslöselogik 131 bilden, u.a., ein Airbag-Auslöse-Interface 13. Des Weiteren bilden der Sperrtransistor TB, eine zugehörige Treiberschaltung 142 (z.B. ein FET-Treiber als Gate-Treiber) und eine korrespondierende Sicherheitsprüfeinheit 141 ("safety integrity check unit") eine Sicherheitsschaltung 4 („safety circuit“), die dazu ausgebildet ist, ein ungewolltes Auslösen des Airbags aufgrund von Inkonsistenzen oder beschädigten Daten, welche relevant für die Airbag-Auslösung sind, zu verhindern.
-
Das erwähnte Eingangssignal für das Airbag-Auslöse-Interface 13 wird durch die Mikrocontroller-Einheit 12 (engl.: „micro controller unit“, kurz: MCU) bereitgestellt, welche unter anderem Daten von externen Sensoren 20 über eine Bus-Interface-Einheit 11 (in 1 als SPI-Einheit bezeichnet) empfängt. Die Bus-Interface-Einheit 11 kommuniziert wird mit den externen Sensoren 20 über Busleitungen 30. In dem vorliegenden Beispiel umfasst die Bus-Interface-Einheit 11 beispielsweise ein PSI5 (kurz für "peripheral sensor interface“) zum Verwalten der Kommunikation mit externen Sensoren 20 und ein SPI-Interface, welches verwendet wird, um die von den externen Sensoren 20 empfangene Information an den internen SPI-Bus der ECU 10 weiter zu kommunizieren. Folglich kann die Bus-Interface-Einheit 11 als Brückeneinheit (engl.: "bridge unit") gesehen werden, welche es den Sensoren 20 ermöglicht, mit der MCU 12 über ein Standard-Interface, wie z.B. SPI zu kommunizieren. Die externen Sensoren können einen anderen Standard verwenden, um mit der Bus-Interface-Einheit 11 zu kommunizieren wie beispielsweise PSI5 (siehe Beispiel in 1), DSI (kurz für Digital-Signal-Interface), LIN (kurz für "local interconnect network"), CAN-Bus oder ähnliches. Unterschiedliche Standards können dazu verwendet werden, um unterschiedliche Typen von externen Sensoren 20 mit einer ECU 10 zu verbinden. Die oben erwähnte Sicherheitsschaltung 4 (oder Teile davon) können in der MCU 12 implementiert sein unter Verwendung geeigneter Software. Es kann jedoch bevorzugt sein, separate und unabhängig betreibbare Hardware für die Sicherheitsschaltung 4 zu verwenden. Zu diesem Zweck kann die Sicherheitsschaltung auch in einem separaten Halbleiterchip implementiert sein.
-
Die externen Sensoren 20 können Informationen liefern, die für das Auslösen eines Airbags relevant sind. Derartige Informationen können u.a. die Besetzung der Sitze, die Beschleunigung, den Atmosphärendruck innerhalb der Türen, die Fahrtrichtung, die Geschwindigkeit, etc. betreffen. Wie bereits erwähnt können die jeweiligen Sensoren 20 mit der Bus-Interface-Einheit 11 der ECU 10 über ein Zwei-Draht-Sensor-Interface kommunizieren wie z.B. das peripheral sensor interface 5 (PSI5), welches im Bereich automobiler Anwendungen für die Verbindung von Sensoren mit anderen elektronischen Schaltkreisen (wie z.B. die ECU 10) üblich ist. Andere Kommunikationsstandards können jedoch ebenfalls für die Verbindung der externen Sensoren 20 mit der ECU geeignet sein.
-
Wie bereits oben erwähnt empfängt das SPI-Interface 11 der ECU 10 Daten, welche für das Auslösen des Airbags relevant sein können, von den externen Sensoren 20 (auch als „Satellitensensoren“ bezeichnet) und leitet diese Information an die MCU 12 weiter unter Verwendung eines Standard-Bussystems wie z.B. das SPI-Bussystem, welches von vielen der üblicherweise verwendeten Mikrocontroller unterstützt wird. Eine Weiterleitung kann auch, sofern notwendig, über die MCU 12 an die Sicherheitsschaltung 4 erfolgen. In manchen Anwendungen ist es wünschenswert, die Airbags (z.B. die Seitenairbags) basierend auf Informationen auszulösen, welche lediglich von den erwähnten externen Sensoren zur Verfügung gestellt werden. In solchen Fällen müssen alle Daten, die für die Airbag-Auslösung relevant sind, über die Busleitungen (z.B. die SPI-Busleitungen) übertragen werden, welche das SPI-Interface 11 und die MCU 12 der Airbag-ECU 10 verbinden. In solchen Fällen muss die Kommunikation sehr hohen Sicherheitsanforderungen genügen und ein ausreichender Sicherheitsspielraum muss auch unter Worst-Case-Bedingungen sichergestellt werden, wie z.B. Umgebungsbedingungen, die zu einer maximalen Signalverzerrung führen, Kabelbruch, kalte Lötstellen auf der Platine, etc., wobei alle diese Beispiele zu einer signifikant erhöhten Bit-Fehlerwahrscheinlichkeit führen. In dem gegenwärtigen Beispiel einer Airbag-ECU muss das gesamte elektronische System, welches die Airbag-Auslösung steuert den Anforderungen von ASIL D (gemäß ISO 26262) genügen, und folglich wird eine Fehlerrate (FIT-Rate, "failure in time rate") von weniger als 10–8 pro Stunde gefordert. Die Bit-Fehlerrate bei Datenübertragungen über den SPI-Bus muss einen zusätzlichen Sicherheitsspielraum aufweisen, da der Bus nicht die einzige Komponente ist, welche zu der Fehlerrate des gesamten Systems beiträgt. Folglich muss die FIT-Rate im Bezug auf die Datenübertragung über den Bus weniger als 10–10 pro Stunde betragen. Der tatsächliche nummerische Wert kann jedoch in unterschiedlichen Anwendungen anders sein.
-
Unter der Annahme der genannten FIT-Rate von 10–10 pro Stunde kann eine korrespondierende Bit-Fehlerwahrscheinlichkeit abhängig von der Methode, nach der die Prüfsummen bestimmt werden, berechnet werden, um eine Detektion von fehlerhaften Datenrahmen, die von dem SPI-Bus empfangen wurden, zu ermöglichen. Beispielsweise beträgt, wenn ein CRC-Verfahren mit einem Polynom vierter Ordnung und einer Hamming-Distanz von zwei verwendet wird die korrespondierende zulässige Bit-Fehlerwahrscheinlichkeit 3·10–10. Wenn ein CRC-Verfahren mit einem Polynom achter Ordnung und einer Hamming-Distanz von vier verwendet wird beträgt die korrespondierende zulässige Bit-Fehlerwahrscheinlichkeit ungefähr 1,5·10–5. Diese Berechnungen basieren auf einem typischen System umfassend zwei externe Sensoren, welche alle 500 µs Daten-Samples liefern, wobei Übertragungsfehler in 32-Bit-Datenrahmen detektiert werden sollen. Die Berechnung von extrem geringen Bit-Fehlerwahrscheinlichkeiten kann in einer realen Umgebung nicht sichergestellt werden. Es werden daher Verbesserungen der Prüfsummenberechnungsverfahren vorgeschlagen, um höhere Bit-Fehlerwahrscheinlichkeiten erlauben zu können, ohne die zugehörige FIT-Rate zu erhöhen, die durch ASIL D vorgeschrieben ist.
-
Eine simple Erhöhung der Ordnung (z.B. CRC16 oder CRC32) der Polynome, die in dem CRC-Verfahren verwendet werden, kann helfen, die Situation zu verbessern. Eine zyklische Redundanzprüfung hoher Ordnung (16 oder mehr) würde jedoch ein höheres Datenvolumen zur Folge haben, welches über die Busleitungen übertragen werden muss, was wiederum einen höheren Bustakt notwendig macht, was wiederum in manchen Anwendungen unerwünscht ist und einen negativen Einfluss auf die Bit-Fehlerwahrscheinlichkeit haben kann. Eine Übertragung über redundante Hardware-Kanäle würde die Komplexität der Hardware vergrößern, was ebenfalls unerwünscht sein kann. Alternativ kann eine zweite zyklische Redundanzprüfung mit einem Polynom hoher Ordnung (z.B. CRC32 oder CRC64) auf eine Gruppe von aufeinanderfolgenden Datenrahmen (z.B. eine Gruppe von zwanzig Datenrahmen von jeweils 32 Bits) angewendet werden, wobei jeder einzelne Datenrahmen durch eine CRC-Prüfsumme niedrigerer Ordnung (z.B. CRC4 oder CRC8) geschützt ist. Eine derartige zweite zyklische Redundanzprüfung reduziert die Anforderungen an die Bit-Fehlerwahrscheinlichkeit signifikant.
-
Die zusätzliche CRC-Prüfsumme wird nicht über die Busleitungen zusammen mit jedem Datenrahmen übertragen. Die Prüfsumme wird vielmehr jedes Mal dann aktualisiert, wenn ein neuer Datenrahmen übertragen wird und diese Prüfsumme hängt von allen Datenrahmen ab (und repräsentiert daher dieselben), die nach einem Reset (einem Zurücksetzen bzw. einer Initialisierung) der Prüfsumme übertragen wurden. Der aktuelle Wert der Prüfsumme kann durch einen speziellen Bus-Befehl (ein SPI Kommando in dem vorliegenden Beispiel) angefordert werden. Der Bus-Master kann diese "kumulierte" CRC-Prüfsumme zumindest einmal anfordern, nachdem eine definierte Anzahl von Datenrahmen (z.B. zwanzig Frames) von dem Bus-Slave empfangen wurde. Des Weiteren kann die kumulierte Prüfsumme angefordert werden, wenn die vom Bus empfangenen Sensordaten Informationen beinhalten, die zu einem Auslösen des Airbags führen würden.
-
Die oben erwähnte zusätzliche Prüfsumme wird basierend auf den gesendeten Datenrahmen senderseitig berechnet (d.h. in dem SPI-Interface 11, siehe Beispiel aus 1). Diese Sender-Prüfsumme wird zu dem Empfänger aufgrund einer entsprechenden Anforderung übertragen (d.h. dem Bus-Master, was im vorliegenden Beispiel die MCU 12, siehe 1) und mit einer Empfänger-Prüfsumme verglichen, die durch den Empfänger (den Bus-Master) basierend auf dem empfangenen Datenrahmen berechnet wurde. Wenn die empfangenen Datenrahmen identisch mit den gesendeten Datenrahmen sind, dann sind auch die CRC-Prüfsummen, die von Sender und Empfänger berechnet werden, gleich. Wenn während der Übertragung ein Fehler auftritt, dann unterscheidet sich zumindest ein empfangener Datenrahmen von dem korrespondierenden gesendeten Datenrahmen und folglich sind auch die zugehörigen Prüfsummen (d.h. die Empfänger- und Sender-Prüfsumme) verschieden. Wenn ein Vergleich der Empfänger- und der Sender-Prüfsumme ergibt, dass die Prüfsummen verschieden sind, werden die empfangenen Daten als fehlerhaft qualifiziert.
-
Die 2 und 3 illustrieren einige beispielhafte Implementierungen des oben eingeführten Konzepts. 2 ist ein Blockdiagramm mit einer ersten beispielhaften Implementierung des neuen Konzepts. 2 umfasst jedoch nicht die vollständige Airbag-ECU 10, sondern nur jene Komponenten, die für die weitere Diskussion relevant sind. Dementsprechend umfasst 2 neben einem externen Sensor 20, eine SPI-Slave-Einheit 11 (entspricht dem SPI-Interface aus 1), welche die Funktion des Datenempfangs von dem externen Sensor gewährleistet, sowie die Konvertierung in Datenrahmen, die dem verwendeten Bus-Protokoll entsprechen (d.h. dem SPI-Standard im vorliegenden Beispiel), sowie die Übertragung der Datenrahmen über die Busleitungen zu einer SPI-Master-Einheit 120, welche in der MCU 12 implementiert sein kann (siehe 1). Die SPI-Slave-Einheit 11 kann ein Sensor-Interface 110 umfassen, welches dazu ausgebildet ist, Messdaten von den externen Sensoren 20 zu empfangen und die darin enthaltenen Informationen in Datenrahmen zu konvertieren (Datenworte definierter Länge, z.B. 32 Bits). Jeder Datenrahmen kann eine kurze Prüfsumme umfassen, beispielsweise eine CRC-Prüfsumme vierter Ordnung (CRC4). Die von dem Sensor-Interface 110 bereitgestellten Datenrahmen werden an das SPI-Interface 111 weitergegeben, welches für die Bus-Kommunikation gemäß dem Bus-Protokoll verantwortlich ist. Im Falle eines SPI-Bussystems sind vier Signale in die Bus-Kommunikation involviert. Diese Signale werden als MISO (master input, slave output), MOSI (master output, slave input), SCLK (serielles Taktsignal, welches vom Bus-Master erzeugt wird) und SS („slave select“) bezeichnet. Da das SPI-Bussystem hinreichend bekannt ist, werden die diesbezüglichen Details an dieser Stelle nicht weiter erläutert. Im vorliegenden Beispiel sendet die SPI-Slave-Einheit 11 Daten an den SPI-Master 120 unter Verwendung der Busleitungen, welche das MISO-Signal übertragen.
-
Eine CRC-Einheit 112 ist mit dem SPI-Interface 111 gekoppelt. Die CRC-Einheit 112 empfängt (siehe Pfeil mit Bezeichnung "Daten") jeden übertragenen (oder zu übertragenden) Datenrahmen und ist dazu ausgebildet, eine zusätzliche (zusätzlich zu den ohnehin jedem Datenrahmen hinzugefügten CRC-Bits) kumulative Prüfsumme zu berechnen, wie es oben bereits beschrieben wurde. Eine aktualisierte CRC-Prüfsumme wird jedes Mal dann berechnet, wenn ein Datenrahmen übertragen wird, wobei die aktuelle Prüfsumme von allen vorangegangenen Datenrahmen, welche nach einem Reset (siehe mit "Reset" bezeichneten Pfeil) übertragen wurden, abhängt. In ähnlicher Weise kann die gleiche CRC-Prüfsumme auf Seiten des SPI-Masters berechnet werden unter Verwendung einer entsprechenden CRC-Einheit 122, welche mit dem SPI-Interface 121 des Bus-Masters gekoppelt ist. Die CRC-Einheit 122 empfängt (siehe als "Daten" bezeichneter Pfeil) jeden Datenrahmen, der durch das SPI-Interface 121 empfangen wird. Des Weiteren ist die CRC-Einheit 122 auch dazu ausgebildet, die zusätzliche kumulative Prüfsumme in der gleichen Weise zu berechnen, wie die CRC-Einheit 112 auf Seiten des Bus-Slaves. D.h. eine aktualisierte CRC-Prüfsumme wird immer dann berechnet, wenn ein Datenrahmen empfangen wurde, wobei die aktuelle Prüfsumme von allen zuvor empfangenen Datenrahmen abhängt, beginnend von dem letzten Reset (siehe als "Reset" bezeichneter Pfeil).
-
Eine CRC-Steuereinheit 123 ist mit der SPI-Mastereinheit 120 verbunden. Wie bereits erwähnt kann die CRC-Steuereinheit 123 auch in der MCU 12 unter Verwendung geeigneter Software implementiert sein. Die CRC-Steuereinheit 123 triggert den Reset der CRC-Einheit 122 des Bus-Masters, sowie der CRC-Einheit 112 des Bus-Slaves, wobei im letzteren Fall ein entsprechendes Reset-Kommando über die Busleitungen gesendet wird. Die Steuereinheit 123 kann des Weiteren ein Fetch-Kommando (Abruf-Befehl) über den Bus schicken, um die CRC-Einheit 112 des Bus-Slaves zu veranlassen, die aktuelle kumulierte CRC-Prüfsumme an den Bus-Master 120 und schließlich an die Steuereinheit 123 zu senden (siehe Pfeile mit der Bezeichnung "Slave-CRC abrufen" und "Slave-CRC vom SPI"). Die Steuereinheit 123 hat auch Zugang zu der CRC-Prüfsumme (siehe Pfeil mit der Bezeichnung "Lesen" und "Master-CRC"), die auf Seiten des Bus-Masters durch die CRC-Einheit 122 berechnet wurde und kann daher die beiden Prüfsummen vergleichen, wie dies bereits weiter oben diskutiert wurde. Wenn die Prüfsummen identisch sind, dann sind die Daten konsistent; wenn nicht, können die Daten als beschädigt angesehen werden, und folglich kann eine Sicherheitsfunktion ausgelöst werden. Eine derartige Sicherheitsfunktion kann im vorliegenden Beispiel die Deaktivierung des Airbag-Auslöse-Interfaces 13 (siehe 1) sein, wodurch ein fehlerhaftes Auslösen des Airbags verhindert wird.
-
3 zeigt ein Blockdiagramm mit einer alternativen Implementierung zu jener aus 2. Das Beispiel aus 3 arbeitet ähnlich wie die vorangegangenen Beispiele mit der Ausnahme, dass die CRC-Prüfsummen des Masters und des Slaves auf Seiten des Slaves (aus Sicht des SPI-Bus) verglichen werden statt auf Seiten des Bus-Masters. In diesem Fall ist die CRC-Steuereinheit 123 "verteilt" über Master und Slave, d.h. ein Teil 123' der Steuereinheit ist auf der Slave-Seite des SPI-Bus implementiert. In dem vorliegenden Beispiel empfängt die Steuereinheit 123 die CRC-Prüfsumme, welche von der CRC-Einheit 122 des Masters berechnet wird, und sendet diese zu der CRC-Einheit 112 auf der Seite des Slaves über das SPI-Interface 111 (siehe Pfeil mit der Bezeichnung "schreibe Master CRC"). Die Steuereinheit 123' (angeordnet auf Seiten des Slaves) empfängt beide CRC-Prüfsummen von der CRC-Einheit 112 des Slaves also auch von der CRC-Einheit 122 (über die SPI-Busleitungen) des Masters und vergleicht die beiden Prüfsummen. In dem Fall, dass Unterschiede zwischen den beiden korrespondierenden Prüfsummen detektiert werden, können Sicherheitsfunktionen direkt durch die Steuereinheit 123' getriggert werden (über die Einheit 141, siehe 1) oder alternativ kann eine Fehlermeldung über den SPI-Bus zu der CRC-Steuereinheit 123 auf Seiten des Bus-Masters geschickt werden. Wie oben erwähnt kann eine Sicherheitsfunktion darin bestehen, dass ein fehlerhaftes Auslösen des Airbags verhindert wird (entweder über die Sicherheitsschaltung 4 oder durch Deaktivierung der Airbag-Auslöse-Interface 13). Die CRC-Prüfsumme, die auf Seiten des Bus-Masters berechnet wird, kann auch an die Steuereinheit 123' auf Seiten des Slaves zu definierten Zeitintervallen gesendet werden (z.B. als Reaktion auf den zwanzigsten empfangenen Datenrahmen nach einem Reset).
-
Im Beispiel aus 4 wird der Vergleich der CRC-Prüfsummen, die durch den SPI-Master 120 und den SPI-Slave 11 bereitgestellt werden, durch eine separate SPI-Monitoreinheit 60 durchgeführt, die als zweite SPI-Slave-Einheit gesehen werden kann und die in der Einheit zur Prüfung der Sicherheitsanforderungen 141 inkludiert sein kann (siehe 1). Die SPI-Monitoreinheit 60 umfasst ein SPI-Empfängerinterface 61, das dazu ausgebildet ist, Nachrichten über den Bus zumindest von dem Bus-Master 120 zu empfangen. Wie in dem Beispiel aus 2 fordert der Bus-Master den Slave auf, seine aktuelle kumulierte CRC-Prüfsumme zu senden, die auf Basis der gesendeten Datenrahmen berechnet wurde. Der Bus-Master sendet beide Prüfsummen zu dem SPI-Monitor 60, wo die Prüfsummen verglichen werden, wie weiter oben bereits erläutert. Das SPI-Interface 61 ist typischerweise dazu ausgebildet, sämtliche Datenkommunikation auf dem SPI-Bus zu überwachen und folglich sämtliche Nachrichten zu empfangen, die von dem Bus-Master 120 und dem SPI-Slave 11 gesendet wurden. Abhängig von dem Ergebnis des Vergleichs können Fehlermeldungen gesendet oder Sicherheitsfunktionen ausgelöst werden. Fertige Sicherheitsfunktionen können beispielsweise eine Auslösung des Airbags verhindern.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- ISO26262 (mit dem Titel "Road Vehicles – Functional Safety") [0003]
- ISO 26262 [0019]