Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR RECORDING EVENT DATA IN A VEHICLE
Document Type and Number:
WIPO Patent Application WO/2022/063566
Kind Code:
A1
Abstract:
The invention relates to a method for recording event data in a vehicle, wherein: vehicle data from at least one vehicle system (3) are continually received and written as event data into data frames (DR) having a specified size; the individual data frames (DR) are stored in at least one volatile memory (50); the stored data frames (DR) are managed and are kept available in the at least one volatile memory (50) until the event data stored in the individual data frames (DR) are older than a specified maximum pre-event time or, in response to a detected specified event, are persistently stored in at least one nonvolatile memory (46); a current event time frame (EZF) is specified for which the event data are to be persistently recorded, a start time of the current event time frame (EZF) being specified as a time stamp in relation to a current zero reference time, which is newly defined if necessary, and an end time of the current event time frame (EZF) being specified as a time difference from the start time. The invention also relates to a device (1) for carrying out the method for recording event data in a vehicle.

Inventors:
BRODT ANDREAS MARKUS (DE)
Application Number:
PCT/EP2021/074582
Publication Date:
March 31, 2022
Filing Date:
September 07, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G07C5/08
Foreign References:
US20200210336A12020-07-02
US20140178031A12014-06-26
EP0820619B12000-03-08
US20200058174A12020-02-20
Other References:
ANONYMOUS: "Epoch (computing) - Wikipedia", 10 April 2020 (2020-04-10), XP055870500, Retrieved from the Internet [retrieved on 20211208]
ANONYMOUS: "Disk partitioning - Wikipedia", 15 June 2020 (2020-06-15), XP055870917, Retrieved from the Internet [retrieved on 20211209]
Download PDF:
Claims:
- 36 -

Ansprüche

1. Verfahren (100) zur Aufzeichnung von Ereignisdaten in einem Fahrzeug, wobei fortlaufend Fahrzeugdaten von mindestens einem Fahrzeugsystem (3) empfangen und als Ereignisdaten in Datenrahmen (DR) mit einer vorgegebenen Größe geschrieben werden, wobei die einzelnen Datenrahmen (D ) in mindestens einem flüchtigen Speicher (50) gespeichert werden, wobei die gespeicherten Datenrahmen (DR) verwaltet und solange in dem mindestens einen flüchtigen Speicher (50) verfügbar gehalten werden, bis die in den einzelnen Datenrahmen (DR) gespeicherten Ereignisdaten älter als ein vorgegebener maximaler Voreigniszeit- punkt sind oder in Reaktion auf ein erkanntes vorgegebenes Ereignis persistent in mindestens einem nichtflüchtigen Speicher (46) gespeichert sind, wobei ein aktuelles Ereigniszeitfenster (EZF) vorgegeben wird, für welches die Ereignisdaten persistent aufgezeichnet werden sollen, wobei ein Startzeitpunkt (EZF_1) des aktuellen Ereigniszeitfensters (EZF) als Zeitstempel in Bezug auf einen aktuellen Nullreferenzzeitpunkt (B), welcher bei Bedarf neu definiert wird, vorgegeben wird und ein Endzeitpunkt (EZF_2) des aktuellen Ereigniszeitfensters (EZF) als Zeitdifferenz zum Startzeitpunkt (EZF_1) vorgegeben wird.

2. Verfahren (100) nach Anspruch 1, dadurch gekennzeichnet, dass ein ältester Nullreferenzzeitpunkt einem Startzeitpunkt des Fahrzeugs entspricht.

3. Verfahren (100) nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der aktuelle Nullreferenzzeitpunkt (B) neu definiert wird, wenn ein neues aktuelles Ereigniszeitfenster (EZF) nicht mit dem aktuellen Nullreferenzzeitpunkt (B) darstellbar ist, weil der Startzeitpunkt (EZF_1) des neuen aktuellen Ereigniszeitfensters (EZF) zeitlich zu weit von dem aktuellen Nullreferenzzeitpunkt (B) entfernt ist. - 37 - Verfahren (100) nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die beiden zuletzt verwendeten Nullreferenzzeitpunkte (A, B) jeweils an einem Speicherplatz (Epoch A, Epoch B) gespeichert werden, wobei in dem aktuellen Ereigniszeitfenster (EZF) durch eine Markierung (M) angezeigt wird, auf welchen der beiden gespeicherten Nullreferenzzeitpunkte (A, B) sich der Startzeitpunkt (EZF_1) des aktuellen Ereigniszeitfensters (EZF) bezieht. Verfahren (100) nach Anspruch 4, dadurch gekennzeichnet, dass bei einer Neudefinition des aktuell verwendeten Nullreferenzzeitpunkts (B) zuerst der ältere Nullreferenzzeitpunkt (A) der beiden gespeicherten Nullreferenzzeitpunkte (A, B) mit dem neuen Nullreferenzzeitpunkt (C) überschrieben wird und dann der neue Nullreferenzzeitpunkt (C) in einem atomaren Vorgang als aktueller Nullreferenzzeitpunkt (C) markiert wird. Verfahren (100) nach Anspruch 5, dadurch gekennzeichnet, dass anschließend das neue aktuelle Ereigniszeitfenster (EZF) bezogen auf den neuen aktuellen Nullreferenzzeitpunkt (C) atomar geschrieben wird. Verfahren (100) nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass mindestens eine Partition (21) mit einer vorgegebenen Größe vorgesehen wird, in welche die empfangenen Referenzinformationen (25) der einzelnen Datenrahmen (DR) in beliebiger zeitlicher Reihenfolge geschrieben werden, wobei zeitlich zufällig sortierte Untersequenzen der geschriebenen Referenzinformationen (25) der einzelnen Datenrahmen (DR) in der mindestens einen Partition (21) ermittelt und markiert werden. Verfahren (100) nach Anspruch 7, dadurch gekennzeichnet, dass die geschriebenen Referenzinformationen (25) der einzelnen Datenrahmen (DR) gemäß ihrer Schreibreihenfolge aufsteigend durchnummeriert werden. Verfahren (100) nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass in Reaktion auf eine Anforderung und in Abhängigkeit von mindestens einem vorgegebenen Lesekriterium, welches zumindest das aktuelle Ereigniszeitfenster (EZF) umfasst, für welches die Ereignisdaten persistent aufgezeichnet werden sollen, in der mindestens einen Partition (21) enthaltene Referenzinformationen (25) von Datenrahmen (DR) ausgelesen und weitergeleitet werden, welche persistent aufzuzeichnende Ereignisdaten enthalten, und wobei die mit den weitergeleiteten Referenzinformationen (25) korrespondierenden Datenrahmen (DR) persistent in dem mindestens einen nichtflüchtigen Speicher (46) gespeichert werden. Verfahren (100) nach einem der Ansprüche 7 bis 9, dadurch gekennzeichnet, dass mehrere Partitionen (21) mit einer vorgegebenen Größe vorgesehen werden, wobei in Abhängigkeit von mindestens einem Schreibkriterium eine der Partitionen (21) als aktuelle Schreibpartition bestimmt wird, in welche die empfangenen Referenzinformationen (25) der einzelnen Datenrahmen (DR) geschrieben werden, und wobei in Reaktion auf die Anforderung und in Abhängigkeit von dem mindestens einen vorgegebenen Lesekriterium eine der anderen Partitionen (21) als aktuelle Lesepartition bestimmt wird, aus welcher enthaltene Referenzinformationen (25) von Datenrahmen (DR) ausgelesen und weitergeleitet werden, welche aufzuzeichnende Ereignisdaten enthalten. Verfahren (100) nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass die einzelnen Datenrahmen (DR) ein Zeitfenster (27) betreffen, wobei die Referenzinformationen (25) der einzelnen Datenrahmen (DR) jeweils einen korrespondierenden Speicherbereich und das korrespondierende Zeitfenster (27) mit einem Startzeitstempel (28) und einem Endzeitstempel (29) der einzelnen Datenrahmen (DR) umfassen, in welchem mindestens ein im korrespondierenden Datenrahmen (DR) enthaltenes Datensegment der Ereignisdaten erzeugt oder erfasst wurde, wobei der Startzeitstempel (28) und der Endzeitstempel (29) der einzelnen Datenrahmen (DR) auf den aktuellen Nullreferenzzeitpunkt (B) bezogen sind. Verfahren (100) nach Anspruch 11, dadurch gekennzeichnet, dass den einzelnen Partitionen (21) jeweils ein Zeitfenster (22) zugeordnet wird, wobei als Startzeitstempel (23) des Zeitfensters (22) einer korrespondierenden Partition (21) ein ältester Startzeitstempel (28) einer in der Partition (21) enthaltenen Referenzinformation (25) eines korrespondierenden Datenrahmens (DR) eingesetzt wird, und wobei als Endzeitstempel (24) des Zeitfensters (22) der korrespondierenden Partition (21) ein jüngster Endzeitstempel (29) von in der Partition (21) enthaltenen Referenzinformationen (25) eines korrespondierenden Datenrahmens (DR) eingesetzt wird. Verfahren (100) nach Anspruch 12, dadurch gekennzeichnet, dass die Referenzinformationen (25) von mindestens einem Datenrahmen (DR) aus der aktuellen Lesepartition ausgelesen werden, dessen Zeitfenster (27) mit dem aktuellen Ereigniszeitfenster (EZF) überlappt, wobei das Zeitfenster (27) des mindestens einen Datenrahmens (DR) in den korrespondierenden Referenzinformationen (25) nach dem Auslesen der Referenzinformationen (25) ungültig gemacht wird. Verfahren (100) nach Anspruch 13, dadurch gekennzeichnet, dass vor der Bestimmung der aktuellen Lesepartition das vorhandene aktuelle Ereigniszeitfenster (EZF) lokal gespeichert wird, wobei vor jedem Auslesevorgang der Referenzinformationen (25) von mindestens einem Datenrahmen (DR) das lokal gespeicherte aktuelle Ereigniszeitfenster (EZF) mit dem aktuellen Ereigniszeitfenster (EZF) verglichen und das aktuelle Ereigniszeitfenster (EZF) lokal gespeichert wird, wenn es sich vom lokal gespeicherten aktuellen Ereigniszeitfenster (EZF) unterscheidet, wobei überprüft wird, ob sich das Zeitfenster (22) der aktuellen Lesepartition und das neue aktuelle Ereigniszeitfenster (EZF) überlappen, wenn das lokal gespeicherte aktuelle Ereigniszeitfenster (EZF) geändert wurde, und wobei der Auslesevorgang der Lesepartition neu gestartet wird, wenn die aktuelle Lesepartition mit dem geänderten aktuellen Ereigniszeitfenster (EZF) überlappt, oder eine neue aktuelle Lesepartition bestimmt wird, wenn die aktuelle Lesepartition mit dem geänderten aktuellen Ereigniszeitfenster (EZF) nicht überlappt. Verfahren (100) nach einem der Ansprüche 10 bis 14, dadurch gekennzeichnet, dass in Abhängigkeit von dem mindestens einen vorgegebenen Schreibkriterium nach einer neuen Schreibpartition gesucht wird, wenn das Fahrzeug neu gestartet wird oder die aktuelle Schreibpartition vollständig mit Referenzinformationen beschrieben ist. Verfahren (100) nach Anspruch 15, dadurch gekennzeichnet, dass ein Satz von Partitionen (21) bestimmt wird, welche kein gültiges Zeitfenster (22) oder ein gültiges Zeitfenster (22) haben, welches vollständig älter als der maximale Voreigniszeitpunkt ist und ein vorhandenes aktuelles Ereigniszeitfenster (EZF) nicht überlappt, wobei aus diesem Satz von Partitionen (21) eine Partition (21), welche kein gültiges Zeitfenster (22) hat, oder eine Partition (21) als aktuelle Schreibpartition bestimmt wird, deren korrespondierendes gültiges Zeitfenster (22) den ältesten Startzeitstempel (23) hat. Verfahren (100) nach einem der Ansprüche 12 bis 16, dadurch gekennzeichnet, dass bei jedem Schreiben von Referenzinformationen (25) eines neuen Datenrahmens (DR) das Zeitfenster (27) des neuen Datenrahmens (DR) mit dem Zeitfenster (27) des Datenrahmens (DR) verglichen wird, dessen Referenzinformationen (25) zuvor als letztes in die mindestens eine Partition geschrieben wurden. Verfahren (100) nach Anspruch 17, dadurch gekennzeichnet, dass der Startzeitstempel (28) des neuen Datenrahmens (DR) mit dem Startzeitstempel (28) des zuletzt geschriebenen Datenrahmens (DR) verglichen wird, wobei eine zeitlich zufällig sortierte aktuelle Startzeituntersequenz (64) erkannt und fortgesetzt wird, wenn der Startzeitstempel (28) des neuen Datenrahmes (DR) jünger als der Startzeitstempel (28) des zuletzt geschriebenen Datenrahmens (DR) ist, oder eine neue Startzeituntersequenz (64) gestartet und deren Startzeitstempel (28) durch Speichern der korrespondierenden Nummerierung (62) des neuen Datenrahmens (DR) markiert wird, wenn der Startzeitstempel (28) des neuen Datenrahmes (DR) älter als der Startzeitstempel (28) des zuletzt geschrie- - 41 - benen Datenrahmens (DR) ist, und wobei eine erste Startzeituntersequenz (64) mit dem Startzeitstempel (28) des ersten geschriebenen Datenrahmens (DR) startet. Verfahren (100) nach Anspruch 17 oder 18, dadurch gekennzeichnet, dass der Endzeitstempel (29) des neuen Datenrahmens (DR) mit dem Endzeitstempel (29) des zuletzt geschriebenen Datenrahmens (DR) verglichen wird, wobei eine zeitlich zufällig sortierte aktuelle Endzeituntersequenz (66) erkannt und fortgesetzt wird, wenn der Endzeitstempel (29) des neuen Datenrahmes (DR) jünger als der Endzeitstempel (29) des zuletzt geschriebenen Datenrahmens (DR) ist, oder eine neue Endzeituntersequenz (64) gestartet und deren Endzeitstempel (29) durch Speichern der korrespondierenden Nummerierung (62) des neuen Datenrahmens (DR) markiert wird, wenn der Endzeitstempel (29) des neuen Datenrahmes (DR) älter als der Endzeitstempel (29) des zuletzt geschriebenen Datenrahmens (DR) ist, und wobei eine erste Endzeituntersequenz (66) mit dem Endzeitstempel (29) des ersten geschriebenen Datenrahmens (DR) startet. Verfahren (100) nach Ansprüche 18 oder 19, dadurch gekennzeichnet, dass aus der aktuellen Lesepartition auszulesende Referenzinformationen (25) von mindestens einem Datenrahmen (DR) in Abhängigkeit vom zeitlichen Bezug der mindestens einen zeitlich zufällig sortierten Startzeituntersequenz (64) und/oder der mindestens einen zeitlich zufällig sortierten Endzeituntersequenz (66) der aktuellen Lesepartition zum aktuellen Ereigniszeitfenster (EZF) ermittelt werden. Vorrichtung (1) zur Durchführung des Verfahrens zur Aufzeichnung von Ereignisdaten in einem Fahrzeug nach einem der Ansprüche 1 bis 20, mit einer Datenbereitstellungsanordnung (10), einem Pufferblock (20), einer Ereigniserkennungsanordnung (30) und einer Datenaufzeichnungsanordnung (40), wobei die Datenbereitstellungsanordnung (10) ausgeführt ist, fortlaufend aufzuzeichnende Fahrzeugdaten von mindestens einem Fahrzeugsystem (3) zu empfangen und als Ereignisdaten in Datenrahmen (DR) mit einer vorgegebenen Größe zu schreiben und die - 42 - einzelnen Datenrahmen (DR) in mindestens einem flüchtigen Speicher (50) zu speichern, wobei der Pufferblock (20) ausgeführt ist, die gespeicherten Datenrahmen (DR) zu verwalten und solange in dem mindestens einen flüchtigen Speicher (50) verfügbar zu halten, bis die in den einzelnen Datenrahmen (DR) gespeicherten Ereignisdaten älter als ein vorgegebener maximaler Voreigniszeitpunkt sind oder in Reaktion auf ein durch die Ereigniserkennungsanordnung (30) erkanntes vorgegebenes Ereignis persistent in mindestens einem nichtflüchtigen Speicher (46) gespeichert sind, wobei die Ereigniserkennungsanordnung (30) ausgeführt ist, ein aktuelles Ereigniszeitfenster (EZF) vorzugeben, für welches die Ereignisdaten persistent aufgezeichnet werden sollen, wobei die Ereigniserkennungsanordnung (30) weiter ausgeführt ist, einen Startzeitpunkt (EZF_1) des aktuellen Ereigniszeitfensters (EZF) als Zeitstempel in Bezug auf einen aktuellen Nullreferenzzeitpunkt (B) und einen Endzeitpunkt (EZF_2) des aktuellen Ereigniszeitfensters (EZF) als Zeitdifferenz zum Startzeitpunkt (EZF_1) vorzugeben, wobei der Pufferblock (20) ausgeführt ist, den aktuellen Nullreferenzzeitpunkt (B) bei Bedarf neu zu definieren. Vorrichtung (1) nach Anspruch 21, dadurch gekennzeichnet, dass der Pufferblock (20) eine Schreibfunktion (SF) und mindestens eine Partition (21) mit einer vorgegebenen Größe umfasst, wobei die Schreibfunktion (SF) ausgeführt ist, die empfangenen Referenzinformationen (25) der einzelnen Datenrahmen (DR) in beliebiger zeitlicher Reihenfolge in die mindestens eine Partition (21) zu schreiben und zeitlich zufällig sortierte Untersequenzen der geschriebenen Referenzinformationen (25) der einzelnen Datenrahmen (DR) in der mindestens einen Partition (21) zu markieren. Vorrichtung (1) nach Anspruch 22, dadurch gekennzeichnet, dass der Pufferblock (20) eine Lesefunktion (LF) umfasst, welche ausgeführt ist, in Reaktion auf eine Anforderung der Datenaufzeichnungsanordnung (40) und in Abhängigkeit von mindestens einem vorgegebenen Lesekriterium, welches zumindest ein aktuelles Ereigniszeitfenster (EZF) umfasst, für welches die Ereignisdaten aufgezeichnet werden sollen, die in - 43 - der mindestens einen Partition (21) enthaltene Referenzinformationen (25) von Datenrahmen (DR) auszulesen und an die Datenaufzeichnungsanordnung (40) weiterzuleiten, welche aufzuzeichnende Ereignisdaten enthalten, und wobei die Datenaufzeichnungsanordnung (40) ausgeführt ist, die mit den weitergeleiteten Referenzinformationen (25) korrespondierenden Datenrahmen (DR) persistent in dem mindestens einen nichtflüchtigen Speicher (46) zu speichern. Vorrichtung (1) nach Anspruch 22 und 23, dadurch gekennzeichnet, dass der Pufferblock (20) mehrere Partitionen (21) mit einer vorgegebenen Größe umfasst, wobei die Schreibfunktion (SF) weiter ausgeführt ist, in Abhängigkeit von dem mindestens einen Schreibkriterium eine der Partitionen (21) als aktuelle Schreibpartition zu bestimmen, in welche die von der Datenbereitstellungsanordnung (10) empfangene Referenzinformationen (25) der einzelnen Datenrahmen (DR) geschrieben werden, und wobei die Lesefunktion (LF) weiter ausgeführt ist, in Reaktion auf die Anforderung der Datenaufzeichnungsanordnung (40) und in Abhängigkeit von dem mindestens einen vorgegebenen Lesekriterium eine der anderen Partitionen (21) als aktuelle Lesepartition zu bestimmen, aus welcher enthaltene Referenzinformationen (25) von Datenrahmen (DR) ausgelesen und an die Datenaufzeichnungsanordnung (40) weitergeleitet werden. Vorrichtung (1) nach einem der Ansprüche 21 bis 24, dadurch gekennzeichnet, dass die Ereigniserkennungsanordnung (30) ausgeführt ist, kontinuierlich den Zustand des Fahrzeugs zu überwachen und zu entscheiden, wann ein vorgegebenes Ereignis aufgetreten ist, welches die persistente Speicherung der korrespondierenden Ereignisdaten des mindestens einen Fahrzeugsystems (3) erfordert. Vorrichtung (1) nach einem der Ansprüche 21 bis 25, dadurch gekennzeichnet, dass die Datenbereitstellungsanordnung (10) und/oder der Pufferblock (20) und/oder die Ereigniserkennungsanordnung (30) und/oder die Datenaufzeichnungsanordnung (40) über mehrere Geräte im - 44 -

Fahrzeug verteilt sind, welche über eine Fahrzeugnetzwerkstruktur miteinander kommunizieren. Computerprogrammprodukt, welches eingerichtet ist, das Verfahren zur Aufzeichnung von Ereignisdaten in einem Fahrzeug nach einem der Ansprüche 1 bis 20 auszuführen. Computerlesbares Speichermedium, auf dem das Computerprogrammprodukt nach Anspruch 27 gespeichert ist.

Description:
Beschreibung

Titel

Verfahren und Vorrichtung zur Aufzeichnung von Ereignisdaten in einem Fahrzeug

Die Erfindung geht aus von einem Verfahren zur Aufzeichnung von Ereignisdaten in einem Fahrzeug. Gegenstand der vorliegenden Erfindung sind auch eine Vorrichtung und ein Computerprogrammprodukt zur Durchführung eines solchen Verfahrens zur Aufzeichnung von Ereignisdaten in einem Fahrzeug sowie ein computerlesbares Speichermedium, auf dem das Computerprogrammprodukt gespeichert ist.

Hochautomatisiertes Fahren verspricht sichereren Verkehr aufgrund fehlender menschlicher Fehler. Gleichzeitig erhöht es den Bedarf an Datenerfassung in solchen Fahrzeugen mit hochautomatisierten Fahrfunktionen für den Fall, dass etwas schief geht, so dass alle erforderlichen Informationen für spätere Analysen und Produktverbesserungen zur Verfügung stehen. Daher werden Verfahren zur Aufzeichnung von Ereignisdaten in solchen Fahrzeugen eingesetzt. Hierbei werden fortlaufend Fahrzeugdaten von mindestens einem Fahrzeugsystem empfangen und als Ereignisdaten in Datenrahmen mit einer vorgegebenen Größe geschrieben, wobei die einzelnen Datenrahmen in mindestens einem flüchtigen Speicher gespeichert werden. Die gespeicherten Datenrahmen werden verwaltet und solange in dem mindestens einen flüchtigen Speicher verfügbar gehalten, bis die in den einzelnen Datenrahmen gespeicherten Ereignisdaten älter als ein vorgegebener maximaler Voreigniszeitpunkt sind oder in Reaktion auf ein erkanntes vorgegebenes Ereignis persistent in mindestens einem nichtflüchtigen Speicher gespeichert sind. Eine Vorrichtung zur Durchführung eines solchen Verfahrens zur Aufzeichnung von Ereignisdaten umfasst in der Regel eine Datenbereitstellungsanordnung, eine Ereigniserkennungsanordnung und eine Datenaufzeichnungsanordnung. Offenbarung der Erfindung

Das Verfahren zur Aufzeichnung von Ereignisdaten in einem Fahrzeug mit den Merkmalen des unabhängigen Patentanspruchs 1 hat den Vorteil, dass bei der Darstellung und Speicherung eines Startzeitpunks und eines Endzeitpunkts für ein aktuelles Ereigniszeitfensters Bits eingespart werden können, indem nur der Starzeitpunkt des aktuellen Ereigniszeitfensters und die Dauer des Ereignisfensters gespeichert werden. Üblicherweise kann ein Zeitfenster als zwei absolute Zeitpunkte, d. h. als zwei Zeitstempel, einem Startzeitstempel und einem Endzeitstempel dargestellt werden. Ein solcher Zeitstempel benötigt 32 Bits, so dass zur Darstellung eines Zeitfenster 64 Bit benötigt werden. Ein 32- Bit- Prozessor kann nur 32 Bit atomar, d.h. in einer Maschinenanweisung, lesen oder schreiben, daher erfordern 64 Bit mehr als eine Maschinenanweisung, was nicht atomar ist. Um das aktuelle Ereigniszeitfenster in 32 Bit darzustellen und damit eine sperrfreie atomare Implementierung des aktuellen Ereigniszeitfensters auch mit 32- Bit- Prozessoren zu bieten, wird der Startzeitzeitstempel und eine Zeitdifferenz in Bezug zum Startzeitstempel anstelle von zwei Zeitstempeln verwendet, um das aktuelle Ereigniszeitfenster zu definieren. Die Dauer bzw. Länge des aktuellen Ereigniszeitfensters wird voraussichtlich in der Reihenfolge von Minuten liegen. Anstatt also zwei vollständige Zeitstempel für den Startzeitpunkt und den Endzeitpunkt des aktuellen Ereigniszeitfensters zu speichern, können Bits eingespart werden, indem nur der Starzeitstempel für den Startzeitpunkt des aktuellen Ereigniszeitfensters und die Dauer des aktuellen Ereignisfensters gespeichert werden. So kann beispielsweise mit einem 32- Bit- Prozessor das aktuelle Ereigniszeitfenster bei einer Auflösung von 0,1s mit 17 Bits für den Startzeitstempel und mit 14 Bits für die Dauer bzw. Länge des aktuellen Ereigniszeitfensters mit einer atomaren Maschinenanweisung gelesen oder gespeichert werden. Hierbei kann der Startzeitpunkt des aktuellen Ereigniszeitfensters beispielsweise bis zu einem maximalen Wert von 3,6 Stunden nach dem aktuellen Nullreferenzzeitpunkt und die Dauer bzw. Länge des aktuellen Ereigniszeitfensters kann bis zu einem Maximalwert von 27,3 Minuten oder 1.638 Sekunden ausgedrückt werden. Ausführungsformen der vorliegenden Erfindung stellen ein Verfahren zur Aufzeichnung von Ereignisdaten in einem Fahrzeug zur Verfügung, wobei fortlaufend Fahrzeugdaten von mindestens einem Fahrzeugsystem empfangen und als Ereignisdaten in Datenrahmen mit einer vorgegebenen Größe geschrieben werden. Die einzelnen Datenrahmen werden in mindestens einem flüchtigen Speicher gespeichert, wobei die gespeicherten Datenrahmen verwaltet und solange in dem mindestens einen flüchtigen Speicher verfügbar gehalten werden, bis die in den einzelnen Datenrahmen gespeicherten Ereignisdaten älter als ein vorgegebener maximaler Voreigniszeitpunkt sind oder in Reaktion auf ein erkanntes vorgegebenes Ereignis persistent in mindestens einem nichtflüchtigen Speicher gespeichert sind. Hierbei wird ein aktuelles Ereigniszeitfenster vorgegeben, für welches die Ereignisdaten persistent aufgezeichnet werden sollen, wobei ein Startzeitpunkt des aktuellen Ereigniszeitfensters als Zeitstempel in Bezug auf einen aktuellen Nullreferenzzeitpunkt, welcher bei Bedarf neu definiert wird, vorgegeben wird und ein Endzeitpunkt des aktuellen Ereigniszeitfensters als Zeitdifferenz zum Startzeitpunkt vorgegeben wird.

Zudem wird eine Vorrichtung zur Durchführung eines solchen Verfahrens zur Aufzeichnung von Ereignisdaten in einem Fahrzeug vorgesehen, welche eine Datenbereitstellungsanordnung, einen Pufferblock, eine Ereigniserkennungsanordnung und eine Datenaufzeichnungsanordnung umfasst. Die Datenbereitstellungsanordnung ist ausgeführt, fortlaufend aufzuzeichnende Fahrzeugdaten von mindestens einem Fahrzeugsystem zu empfangen und als Ereignisdaten in Datenrahmen mit einer vorgegebenen Größe zu schreiben und die einzelnen Datenrahmen in mindestens einem flüchtigen Speicher zu speichern. Der Pufferblock ist ausgeführt, die gespeicherten Datenrahmen zu verwalten und solange in dem mindestens einen flüchtigen Speicher verfügbar zu halten, bis die in den einzelnen Datenrahmen gespeicherten Ereignisdaten älter als ein vorgegebener maximaler Voreigniszeitpunkt sind oder in Reaktion auf ein durch die Ereigniserkennungsanordnung erkanntes vorgegebenes Ereignis persistent in mindestens einem nichtflüchtigen Speicher gespeichert sind. Hierbei ist die Ereigniserkennungsanordnung ausgeführt, ein aktuelles Ereigniszeitfenster vorzugeben, für welches die Ereignisdaten persistent aufgezeichnet werden sollen, wobei die Ereigniserkennungsanordnung weiter ausgeführt ist, einen Startzeitpunkt des aktu- ellen Ereigniszeitfensters als Zeitstempel in Bezug auf einen aktuellen Nullreferenzzeitpunkt und einen Endzeitpunkt des aktuellen Ereigniszeitfensters als Zeitdifferenz zum Startzeitpunkt vorzugeben, wobei der Pufferblock ausgeführt ist, den aktuellen Nullreferenzzeitpunkt bei Bedarf neu zu definieren.

Von Vorteil ist auch ein Computerprogrammprodukt mit Programmcode, der auf einem maschinenlesbaren Träger, wie einem Halbleiterspeicher, einem Festplattenspeicher oder einem optischen Speicher gespeichert ist und zur Durchführung der Auswertung verwendet wird, wenn das Computerprogramm ausgeführt wird.

Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen und Weiterbildungen sind vorteilhafte Verbesserungen des im unabhängigen Patentanspruch 1 angegebenen Verfahrens zur Aufzeichnung von Ereignisdaten in einem Fahrzeug und der im unabhängigen Patentanspruch 21 angegebenen Vorrichtung zur Aufzeichnung von Ereignisdaten in einem Fahrzeug möglich.

Unter der Datenbereitstellunganordnung kann vorliegend eine Verarbeitungskomponente verstanden werden, welche alle Verarbeitungsschritte von der Erfassung der ursprünglichen Fahrzeugdaten bis zur Organisation und Speicherung der Fahrzeugdaten als Ereignisdaten in flüchtigen Speicherblöcken umfasst, so dass die Ereignisdaten für eine begrenzte Zeitspanne in dem mindestens einen flüchtigen Speicher verfügbar gehalten werden können. Unter der Ereigniserkennungsanordnung kann vorliegend eine Verarbeitungskomponente verstanden werden, welche kontinuierlich den Zustand des Fahrzeugs überwacht und entscheidet, wann eine vorkonfigurierte Situation bzw. ein vorgegebenes Ereignis aufgetreten ist, welche bzw. welches die dauerhafte Speicherung von vorgegebenen Fahrzeugdaten erfordert. Bei einem solchen vorgegebenen Ereignis kann es sich beispielsweise um eine erkannte Fehlfunktion eines der Fahrzeugsysteme oder um einen erkannten Aufprall des Fahrzeugs auf ein feststehendes Hindernis oder ein anderes Fahrzeug handeln. Unter der Datenaufzeichnungsanordnung kann vorliegend eine Verarbeitungskomponente verstanden werden, welche die Verarbeitungsschritte umfasst, um die in dem mindestens einen flüchtigen Speicher zur Verfügung stehenden Fahrzeugdaten abzuholen, eventuell weitere Datentransformationen, wie beispielsweise eine Verschlüsselung durchzuführen und die Fahrzeugdaten schließlich persistent in mindestens einem nichtflüchtigen Speicher zu speichern.

Hierzu können die Datenbereitstellunganordnung, die Ereigniserkennungsanordnung und die Datenaufzeichnungsanordnung jeweils mindestens eine Schnittstelle aufweisen, die hard- und/oder softwaremäßig ausgebildet sein kann. Bei einer hardwaremäßigen Ausbildung kann die mindestens eine Schnittstelle beispielsweise Teil eines sogenannten System-ASICs sein, der verschiedenste Funktionen der Datenbereitstellunganordnung beinhaltet. Es ist jedoch auch möglich, dass die Schnittstellen eigene, integrierte Schaltkreise sind oder zumindest teilweise aus diskreten Bauelementen bestehen. Bei einer softwaremäßigen Ausbildung können die Schnittstellen Softwaremodule sein, die beispielsweise auf einem Mikrocontroller neben anderen Softwaremodulen vorhanden sind.

Über die mindestens eine Schnittstelle kann die Datenbereitstellunganordnung die aufzuzeichnenden Fahrzeugdaten von dem mindestens Fahrzeugsystem empfangen, welches beispielsweise als Umfelderfassungssystem oder als Personenschutzsystem oder als Fahrdynamiksystem oder als Bremssystem ausgeführt sein kann. Zudem kann die Datenbereitstellunganordnung über mindestens eine Schnittstelle mit dem mindestens einen flüchtigen Speicher verbunden sein, um die empfangenen Fahrzeugdaten für eine begrenzte Zeitspanne in dem mindestens einen flüchtigen Speicher verfügbar zu halten. Des Weiteren kann die Datenbereitstellunganordnung weitere Komponenten zur Aufbereitung und Vorverarbeitung der empfangenen Fahrzeugdaten umfassen. Die Ereigniserkennungsanordnung kann über die mindestens eine Schnittstelle Fahrzeugdaten bzw. Informationen von dem mindestens einen Fahrzeugsystem empfangen und die empfangenen Fahrzeugdaten bzw. Informationen zur Erkennung von relevanten Ereignissen auswerten. So können die Datenbereitstellunganordnung bzw. die Ereigniserkennungsanordnung beispielsweise jeweils mit einem Fahrzeugdatenbus gekoppelt werden, so dass die Datenbereitstellunganordnung bzw. die Ereigniserkennungsanordnung Fahrzeugdaten und Informationen von einer Vielzahl von Fahrzeugsystemen empfangen kann, die mit dem Fahrzeugdatenbus verbunden sind. Die Datenaufzeichnungsanordnung kann über die mindestens eine Schnittstelle mit dem mindestens einen flüchtigen Speicher verbunden sein, um die persistent zu speichernden Daten auszulesen. Zudem kann die Datenaufzeichnungsanordnung über die mindestens eine Schnittstelle mit dem mindestens einen nichtflüchtigen Speicher verbunden sein, um die persistent zu speichernden Daten in dem mindestens einen nichtflüchtigen Speicher zu speichern.

Unter dem Pufferblock kann vorliegend eine Komponente verstanden werden, welche die Verbindung zwischen der Datenbereitstellunganordnung, der Ereigniserkennungsanordnung und der Datenaufzeichnungsanordnung herstellt. Hierbei hält der Pufferblock die von der Datenbereitstellunganordnung zur Verfügung gestellten Fahrzeugdaten in dem mindestens einen flüchtigen Speicher so lange aufrecht, bis die Daten zu alt sind, um für ein Ereignis relevant zu sein. In diesem Fall gibt der Pufferblock den Speicherbereich frei, welcher in dem mindestens einen flüchtigen Speicher für die jetzt veralteten Fahrzeugdaten verwendet wird, so dass dieser Speicherbereich von der Datenbereitstellunganordnung wiederverwendet werden kann, um neuere Fahrzeugdaten zu speichern. Alternativ benachrichtigt die Ereigniserkennungsanordnung den Pufferblock, dass alle Fahrzeugdaten aus einem bestimmten Erfassungszeitfenster der Datenaufzeichnungsanordnung zur Verfügung zu stellen sind. In diesem Fall stellt der Pufferblock sicher, dass alle Fahrzeugdaten des vorgegebenen aktuellen Ereigniszeitfensters verfügbar bleiben, bis die Datenaufzeichnungsanordnung diese Fahrzeugdaten vollständig persistent in dem mindestens einen nichtflüchtigen Speicher gespeichert hat. Dazu gehört auch der Grenzfall, dass die Datenaufzeichnungsanordnung die Fahrzeugdaten so langsam speichert, dass die Fahrzeugdaten für neuere Ereignisse inzwischen veraltet sind. Auch dann darf der Pufferblock den korrespondierenden Speicherbereich in dem mindestens einen flüchtigen Speicher nicht frei machen oder überschreiben.

Die Datenbereitstellunganordnung, die Ereigniserkennungsanordnung und die Datenaufzeichnungsanordnung können über mehrere Komponenten im Fahrzeug verteilt werden, welche über eine geeignete Fahrzeugnetzwerkinfrastruktur miteinander verbunden sind. Beispielsweise kann die Datenbereitstellunganordnung auf mehrere "Datenquellen" wie beispielsweise Rechnereinheiten imple- mentiert werden, welche die Fahrzeugdaten an andere Geräte im Fahrzeug weiterleiten können, welche die Ereigniserkennung und weitere Nachverarbeitungsschritte durchführen und den Pufferblock enthalten können, während weitere Nachverarbeitungsschritte und die Datenspeicherung auf einer weiteren Rechnereinheit ausgeführt werden können. Die Datenbereitstellung, Ereigniserkennung und Datenaufzeichnung können in separaten Abläufen ausgeführt werden. Darüber hinaus kann die Vorrichtung bzw. Hardware, auf welcher das Verfahren zur Aufzeichnung von Ereignisdaten in einem Fahrzeug ausgeführt wird, mehrere CPU-Kerne oder mehrere Prozessoren bereitstellen, welche diese Abläufe wirklich parallel ausführen können. Der Pufferblock kann Aufrufe durch die Datenaufzeichnungsanordnung, die Ereigniserkennungsanordnung und die Datenbereitstellunganordnung voneinander trennen, so dass die Ergebnisse in jeder parallelen Ausführung immer korrekt sind. Darüber hinaus kann die Datenbereitstellunganordnung den Pufferblock in mehreren parallelen Abläufen aufrufen. Die Datenaufzeichnungsanordnung wird in einem einzelnen Ablauf ausgeführt, d.h. der Pufferblock muss keine einzelnen Aufrufe von der Datenaufzeichnungsanordnung voneinander trennen. Die Schnittstellenverfahren, welche der Pufferblock bereitstellt, werden von den Schnittstellenkomponenten aufgerufen und laufen somit in ihren jeweiligen Abläufen.

Besonders vorteilhaft ist, dass ein erster Nullreferenzzeitpunkt einem Startzeitpunkt des Fahrzeugs entsprechen kann. Das Verfahren zur Aufzeichnung von Ereignisdaten in einem Fahrzeug muss sich mit keinem Ereignis beschäftigen, welches zeitlich vor dem Beginn der aktuellen Fahrt liegt. Daher muss auch der Nullreferenzzeitpunkt nicht vor dem Fahrtbeginn liegen.

In weiterer vorteilhafter Ausgestaltung des Verfahrens kann der aktuelle Nullreferenzzeitpunkt neu definiert werden, wenn ein neues aktuelles Ereigniszeitfenster nicht mit dem aktuellen Nullreferenzzeitpunkt darstellbar ist, weil der Startzeitpunkt des neuen aktuellen Ereigniszeitfensters zeitlich zu weit von dem aktuellen Nullreferenzzeitpunkt entfernt ist. Für die meisten Fahrten reicht es vermutlich aus, die Startzeit der Fahrt als Nullreferenzzeitpunkt zu nutzen und sich daran zu halten. Es ist jedoch gut möglich, dass eine Fahrt länger als 3,6 Stunden dauert. Um den Startzeitpunkt des aktuellen Ereigniszeitfensters nicht zu überlaufen, kann der Nullreferenzzeitpunkt neu definiert werden. So kann beispielsweise jedes Mal, wenn die Ereigniserkennung versucht, ein aktuelles Ereigniszeitfenster festzulegen, das nicht mit dem aktuellen Nullreferenzzeitpunkt dargestellt werden kann, ein neuer Nullreferenzzeitpunkt definiert werden.

In weiterer vorteilhafter Ausgestaltung des Verfahrens können die beiden zuletzt verwendeten Nullreferenzzeitpunkte jeweils an einem Speicherplatz gespeichert werden. Hierbei kann in dem aktuellen Ereigniszeitfenster durch eine Markierung angezeigt werden, auf welchen der beiden gespeicherten Nullreferenzzeitpunkte sich der Startzeitpunkt des aktuellen Ereigniszeitfensters bezieht. Des Weiteren kann bei einer Neudefinition des aktuell verwendeten Nullreferenzzeitpunkts zuerst der ältere Nullreferenzzeitpunkt der beiden gespeicherten Nullreferenzzeitpunkte mit dem neuen Nullreferenzzeitpunkt überschrieben werden, und dann kann der neue Nullreferenzzeitpunkt in einem atomaren Vorgang als aktueller Nullreferenzzeitpunkt markiert werden. Dafür kann das 32-te Bit des aktuellen Ereigniszeitfensters vorgesehen werden. Dieses Bit wird als Arrayindex für die beiden gespeicherten Nullreferenzzeitpunkte (d.h. „0“ oder „l“) verwendet. Zusammenfassend kann das aktuelle Ereigniszeitfenster wie folgt in 32 Bit kodiert werden. Bit 0 bis 13 können für die Dauer bzw. Länge des aktuellen Ereigniszeitfensters vorgesehen werden. Bit 14 bis 30 können für die Zeitdifferenz des Startzeitpunkts vom Nullreferenzzeitpunkt vorgesehen werden. Bit 31 kann als Index bzw. Markierung des Nullreferenzzeitpunkts verwendet werden. Zudem kann anschließend das neue aktuelle Ereigniszeitfenster bezogen auf den neuen aktuellen Nullreferenzzeitpunkt atomar geschrieben werden. Dieses Vorgehen ist für gleichzeitige Lesevorgänge sicher, solange kein Aufruf bzw. Ablauf noch den alten zu ersetzenden Nullreferenzzeitpunkt erfordert, welcher vor dem aktuellen Nullreferenzzeitpunkt verwendet wurde. Geht man von einer Auflösung von 0,1 s und 17 Bit für den Startzeitpunkt aus, ist der vorherige oder alte Nullreferenzzeitpunkt mindestens 3,6 Stunden alt. Nach einer solchen Dauer gibt es kein Ereignis mehr, welches ein aktuelles Ereigniszeitfenster in diesem alten Zeitfenster benötigt.

In weiterer vorteilhafter Ausgestaltung des Verfahrens kann mindestens eine Partition mit einer vorgegebenen Größe vorgesehen werden, in welche die empfangenen Referenzinformationen der einzelnen Datenrahmen in beliebiger zeitlicher Reihenfolge geschrieben werden können. Hierbei können zeitlich zufällig sortierte Untersequenzen der geschriebenen Referenzinformationen der einzelnen Datenrahmen in der mindestens einen Partition ermittelt und markiert werden. Hierzu können die geschriebenen Referenzinformationen der einzelnen Datenrahmen gemäß ihrer Schreibreihenfolge aufsteigend durchnummeriert werden.

In weiterer vorteilhafter Ausgestaltung des Verfahrens können in Reaktion auf eine Anforderung und in Abhängigkeit von mindestens einem vorgegebenen Lesekriterium, welches zumindest ein aktuelles Ereigniszeitfenster umfasst, für welches die Ereignisdaten persistent aufgezeichnet werden sollen, in der mindestens einen Partition enthaltene Referenzinformationen von Datenrahmen ausgelesen und weitergeleitet werden, welche persistent aufzuzeichnende Ereignisdaten enthalten. Die mit den weitergeleiteten Referenzinformationen korrespondierenden Datenrahmen können persistent in dem mindestens einen nichtflüchtigen Speicher gespeichert werden.

In weiterer vorteilhafter Ausgestaltung des Verfahrens können mehrere Partitionen mit einer vorgegebenen Größe vorgesehen werden. Hierbei wird in Abhängigkeit von mindestens einem Schreibkriterium eine der Partitionen als aktuelle Schreibpartition bestimmt, in welche die empfangenen Referenzinformationen der einzelnen Datenrahmen geschrieben werden. In Reaktion auf die Anforderung und in Abhängigkeit von dem mindestens einen vorgegebenen Lesekriterium kann eine der anderen Partitionen als aktuelle Lesepartition bestimmt werden, aus welcher enthaltene Referenzinformationen von Datenrahmen ausgelesen und weitergeleitet werden, welche aufzuzeichnende Ereignisdaten enthalten. Hierbei kann die aktuelle Schreibpartition durch einen Schreibpartitionszeiger markiert werden, und die aktuelle Lesepartition kann durch einen Lesepartitionszeiger markiert werden. Durch die einzige aktuelle Schreibpartition, auf welche nur eine Funktion exklusiv zugreifen kann, kann in vorteilhafter Weise verhindert werden, dass andere Funktionen auf die aktuelle Schreibpartition zugreifen und deren Dateninhalte verändern können. Gleiches gilt für die einzige Lesepartition, auf welche nur eine Funktion exklusiv zugreifen kann, so dass keine anderen Funktionen auf die aktuelle Lesepartition zugreifen und deren Dateninhalte verändern können. In weiterer vorteilhafter Ausgestaltung des Verfahrens können die einzelnen Datenrahmen ein Zeitfenster betreffen. Hierbei können die Referenzinformationen der einzelnen Datenrahmen jeweils einen korrespondierenden Speicherbereich und das korrespondierende Zeitfenster mit einem Startzeitstempel und einem Endzeitstempel der einzelnen Datenrahmen umfassen, in welchem mindestens ein im korrespondierenden Datenrahmen enthaltenes Datensegment der Ereignisdaten erzeugt oder erfasst wurde. Dadurch kann einfach und schnell überprüft werden, ob der Datenrahmen Ereignisdaten bzw. Fahrzeugdaten enthält, deren Erzeugung oder Erfassung sich mit dem aktuellen Ereigniszeitfenster überlappt. Zudem kann der Startzeitstempel und der Endzeitstempel der einzelnen Datenrahmen auf den aktuellen Nullreferenzzeitpunkt bezogen sein.

In weiterer vorteilhafter Ausgestaltung des Verfahrens kann den einzelnen Partitionen jeweils ein Zeitfenster zugeordnet werden. Hierbei kann als Startzeitstempel des Zeitfensters einer korrespondierenden Partition ein ältester Startzeitstempel von in der Partition enthaltenen Referenzinformationen eines korrespondierenden Datenrahmens eingesetzt werden. Als Endzeitstempel des Zeitfensters der korrespondierenden Partition kann ein jüngster Endzeitstempel von in der Partition enthaltenen Referenzinformationen eines korrespondierenden Datenrahmens eingesetzt werden. Dadurch kann einfach und schnell überprüft werden, ob die korrespondierende Partition mit dem aktuellen Ereigniszeitfenster überlappt.

In weiterer vorteilhafter Ausgestaltung des Verfahrens können die Referenzinformationen von mindestens einem Datenrahmen aus der aktuellen Lesepartition ausgelesen werden, dessen Zeitfenster mit dem aktuellen Ereigniszeitfenster überlappt. Zudem kann das Zeitfenster des mindestens einen Datenrahmens in den Referenzinformationen nach dem Auslesen der Referenzinformationen ungültig gemacht werden. Dadurch kann verhindert werden, dass die Referenzinformationen von einem Datenrahmen mehrfach ausgelesen und der korrespondierende Datenrahmen mehrfach persistent in dem mindestens einen nichtflüchtigen Speicher gespeichert wird. In weiterer vorteilhafter Ausgestaltung des Verfahrens kann vor der Bestimmung der aktuellen Lesepartition das vorhandene aktuelle Ereigniszeitfenster lokal gespeichert werden. Hierbei kann vor jedem Auslesevorgang der Referenzinformationen von mindestens einem Datenrahmen das lokal gespeicherte aktuelle Ereigniszeitfenster mit dem aktuellen Ereigniszeitfenster verglichen und das aktuelle Ereigniszeitfenster lokal gespeichert werden, wenn es sich vom lokal gespeicherten aktuellen Ereigniszeitfenster unterscheidet. Zudem kann überprüft werden, ob sich das Zeitfenster der aktuellen Lesepartition und das neue aktuelle Ereigniszeitfenster überlappen, wenn das lokal gespeicherte aktuelle Ereigniszeitfenster geändert wurde. Der Auslesevorgang der Lesepartition kann neu gestartet werden, wenn die aktuelle Lesepartition mit dem geänderten aktuellen Ereigniszeitfenster überlappt. Das bedeutet, dass die aktuelle Lesepartition von Anfang an erneut gelesen wird. Hierbei werden bereits ausgelesene Referenzinformationen nicht nochmal ausgelesen, da das Zeitfenster des korrespondierenden Datenrahmens in den Referenzinformationen nach dem Auslesen der Referenzinformationen ungültig gemacht wurde. Alternativ kann eine neue aktuelle Lesepartition bestimmt werden, wenn die aktuelle Lesepartition mit dem geänderten aktuellen Ereigniszeitfenster nicht überlappt. Das bedeutet, dass der Auslesevorgang der aktuellen Lesepartition, der mit dem inzwischen veralteten aktuellen Ereigniszeitfenster korrespondiert, abgebrochen und nicht neu gestartet wird.

Dadurch werden höchstens Referenzinformationen von einem Datenrahmen zur Datenaufzeichnungsanordnung weitergeleitet, dessen Zeitfenster sich jetzt außerhalb des neuen aktuellen Ereigniszeitfensters befindet. Dieses Verhalten ist jedoch so, als ob die Ereigniserkennungsanordnung das neue aktuelle Ereigniszeitfenster erst festgelegt hätte, nachdem der Auslesevorgang die Referenzinformationen dieses Datenrahmens ausgelesen hat und ist somit tolerierbar.

In weiterer vorteilhafter Ausgestaltung des Verfahrens kann in Abhängigkeit von dem mindestens einen vorgegebenen Schreibkriterium nach einer neuen Schreibpartition gesucht werden, wenn das Fahrzeug neu gestartet wird oder die aktuelle Schreibpartition vollständig mit Referenzinformationen beschrieben ist. Hierzu kann beispielsweise ein Satz von Partitionen bestimmt werden, welche kein gültiges Zeitfenster haben. Das bedeutet, dass diese Partitionen keine Referenzinformationen von Datenrahmen enthalten, so dass kein Konflikt zwischen dem Bestimmen der aktuellen Schreibpartition und dem Bestimmen der aktuellen Lesepartition verursacht werden kann. Da diese Partitionen keine Referenzinformationen von Datenrahmen enthalten, wird auch nicht versucht, diese Partitionen als aktuelle Lesepartitionen zu verwenden. Daher kann eine dieser Partitionen als aktuelle Schreibpartition bestimmt werden. Zusätzlich oder alternativ können Partitionen bestimmt werden, welche ein gültiges Zeitfenster haben, welches vollständig älter als der maximale Voreigniszeitpunkt ist und ein vorhandenes aktuelles Ereigniszeitfenster nicht überlappt. Das bedeutet, dass kein Ereignis, das in der Zukunft auftreten kann, noch die Datenrahmen der jeweiligen Partition benötigt, und dass die Partition derzeit auch nicht als Lesepartition relevant ist, und noch nicht alle Referenzinformationen von Datenrahmen vollständig ausgelesen sind, welche das aktuelle Ereignisfenster überlappen, auch wenn sie bereits über den maximalen Vorereigniszeitpunkt hinausreichen. Aus diesem Satz von Partitionen kann eine Partition, welche kein gültiges Zeitfenster hat, oder eine Partition als aktuelle Schreibpartition bestimmt werden, deren korrespondierendes gültiges Zeitfenster den ältesten Startzeitstempel hat. Zudem kann vor der Bestimmung der aktuellen Schreibpartition das vorhandene aktuelle Ereigniszeitfenster lokal gespeichert werden. Dadurch kann vor der Bestimmung der aktuellen Schreibpartition überprüft werden, ob sich das aktuelle Ereigniszeitfenster verändert hat. Wenn die neue aktuelle Schreibpartition bestimmt ist, kann der Schreibpartitionszeiger entsprechend einer atomaren Maschinenanweisung zurückgesetzt werden.

In weiterer vorteilhafter Ausgestaltung des Verfahrens kann bei jedem Schreiben von Referenzinformationen eines neuen Datenrahmens das Zeitfenster des neuen Datenrahmens mit dem Zeitfenster des Datenrahmens verglichen werden, dessen Referenzinformationen zuvor als letztes in die Schreibpartition geschrieben wurden.

In weiterer vorteilhafter Ausgestaltung des Verfahrens kann beispielsweise der Startzeitstempel des neuen Datenrahmens mit dem Startzeitstempel des zuletzt geschriebenen Datenrahmens verglichen werden, wobei eine zeitlich zufällig sortierte aktuelle Startzeituntersequenz erkannt und fortgesetzt werden kann, wenn der Startzeitstempel des neuen Datenrahmes jünger als der Startzeitstempel des zuletzt geschriebenen Datenrahmens ist. Alternativ kann eine neue Startzeitun- tersequenz gestartet und deren Startzeitstempel durch Speichern der korrespondierenden Nummerierung des neuen Datenrahmens markiert werden, wenn der Startzeitstempel des neuen Datenrahmes älter als der Startzeitstempel des zuletzt geschriebenen Datenrahmens ist. Zudem kann eine erste Startzeituntersequenz mit dem Startzeitstempel des ersten geschriebenen Datenrahmens starten. Das bedeutet, dass die kleinste Nummer der aufsteigenden Nummerierung gleichzeitig den Start der ersten zeitlich zufällig sortierten aktuellen Startzeituntersequenz markiert.

In weiterer vorteilhafter Ausgestaltung des Verfahrens kann der Endzeitstempel des neuen Datenrahmens mit dem Endzeitstempel des zuletzt geschriebenen Datenrahmens verglichen werden, wobei eine zeitlich zufällig sortierte aktuelle Endzeituntersequenz erkannt und fortgesetzt wird, wenn der Endzeitstempel des neuen Datenrahmes jünger als der Endzeitstempel des zuletzt geschriebenen Datenrahmens ist. Alternativ kann eine neue Endzeituntersequenz gestartet und deren Endzeitstempel durch Speichern der korrespondierenden Nummerierung des neuen Datenrahmens markiert werden, wenn der Endzeitstempel des neuen Datenrahmes älter als der Endzeitstempel des zuletzt geschriebenen Datenrahmens ist. Zudem kann eine erste Endzeituntersequenz mit dem Endzeitstempel des ersten geschriebenen Datenrahmens starten. Das bedeutet, dass die kleinste Nummer der aufsteigenden Nummerierung gleichzeitig den Start der ersten zeitlich zufällig sortierten aktuellen Endzeituntersequenz markiert.

In weiterer vorteilhafter Ausgestaltung des Verfahrens kann aus der aktuellen Lesepartition auszulesende Referenzinformationen von mindestens einem Datenrahmen in Abhängigkeit vom zeitlichen Bezug der mindestens einen zeitlich zufällig sortierten Startzeituntersequenz und/oder der mindestens einen zeitlich zufällig sortierten Endzeituntersequenz der aktuellen Lesepartition zum aktuellen Ereigniszeitfenster ermittelt werden. Durch die Einführung der zeitlich zufällig sortierten Startzeituntersequenzen und der zeitlich zufällig sortierten Endzeituntersequenzen kann das Auffinden von auszulesenden Referenzinformationen von Datenrahmen beschleunigt werden, da nicht immer die Referenzinformationen von allen in der aktuellen Lesepartition enthaltenen Datenrahmen überprüft werden müssen. ln vorteilhafter Ausgestaltung der Vorrichtung kann der Pufferblock eine Schreibfunktion und mindestens eine Partition mit einer vorgegebenen Größe umfassen. Hierbei kann die Schreibfunktion ausgeführt sein, die empfangenen Referenzinformationen der einzelnen Datenrahmen in beliebiger zeitlicher Reihenfolge in die mindestens eine Partition zu schreiben und zeitlich zufällig sortierte Untersequenzen der geschriebenen Referenzinformationen der einzelnen Datenrahmen in der mindestens einen Partition zu markieren. Zudem kann der Pufferblock eine Lesefunktion umfassen, welche ausgeführt sein kann, in Reaktion auf eine Anforderung der Datenaufzeichnungsanordnung und in Abhängigkeit von mindestens einem vorgegebenen Lesekriterium, welches zumindest ein aktuelles Ereigniszeitfenster umfasst, für welches die Ereignisdaten aufgezeichnet werden sollen, die in der mindestens einen Partition enthaltene Referenzinformationen von Datenrahmen auszulesen und an die Datenaufzeichnungsanordnung weiterzuleiten, welche aufzuzeichnende Ereignisdaten enthalten. Die Datenaufzeichnungsanordnung kann ausgeführt sein, die mit den weitergeleiteten Referenzinformationen korrespondierenden Datenrahmen persistent in dem mindestens einen nichtflüchtigen Speicher zu speichern.

In weiterer vorteilhafter Ausgestaltung der Vorrichtung kann der Pufferblock mehrere Partitionen mit einer vorgegebenen Größe umfassen, wobei die Schreibfunktion weiter ausgeführt sein kann, in Abhängigkeit von dem mindestens einen Schreibkriterium eine der Partitionen als aktuelle Schreibpartition zu bestimmen, in welche die von der Datenbereitstellungsanordnung empfangene Referenzinformationen der einzelnen Datenrahmen geschrieben werden. Die Lesefunktion kann weiter ausgeführt sein, in Reaktion auf die Anforderung der Datenaufzeichnungsanordnung und in Abhängigkeit von dem mindestens einen vorgegebenen Lesekriterium eine der anderen Partitionen als aktuelle Lesepartition zu bestimmen, aus welcher enthaltene Referenzinformationen von Datenrahmen ausgelesen und an die Datenaufzeichnungsanordnung weitergeleitet werden.

In weiterer vorteilhafter Ausgestaltung der Vorrichtung kann die Ereigniserkennungsanordnung ausgeführt sein, kontinuierlich den Zustand des Fahrzeugs zu überwachen und zu entscheiden, wann ein vorgegebenes Ereignis aufgetreten ist, welches die persistente Speicherung der korrespondierenden Ereignisdaten des mindestens einen Fahrzeugsystems erfordert. Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und werden in der nachfolgenden Beschreibung näher erläutert. In den Zeichnungen bezeichnen gleiche Bezugszeichen Komponenten bzw. Elemente, die gleiche bzw. analoge Funktionen ausführen.

Kurze Beschreibung der Zeichnungen

Fig. 1 zeigt ein schematisches Ablaufdiagramm eines Ausführungsbeispiels eines erfindungsgemäßen Verfahrens zur Aufzeichnung von Ereignisdaten in einem Fahrzeug.

Fig. 2 zeigt eine schematische Darstellung eines ersten Ausführungsbeispiels einer Partition für das erfindungsgemäße Verfahren zur Aufzeichnung von Ereignisdaten in einem Fahrzeug aus Fig. 1.

Fig. 3 zeigt eine schematische Darstellung eines zweiten Ausführungsbeispiels einer Partition für das erfindungsgemäße Verfahren zur Aufzeichnung von Ereignisdaten in einem Fahrzeug aus Fig. 1.

Fig. 4 zeigt eine schematische Darstellung eines ersten Ausführungsbeispiels eines aktuellen Ereigniszeitfensters und mehreren Ausführungsbeispielen von Partitionszeitfenstern für das erfindungsgemäße Verfahren zur Aufzeichnung von Ereignisdaten in einem Fahrzeug aus Fig. 1.

Fig. 5 zeigt eine tabellarische Darstellung eines Speicherbereichs während einer Neudefinition eines aktuellen Nullreferenzzeitpunkts für das erfindungsgemäße Verfahren zur Aufzeichnung von Ereignisdaten in einem Fahrzeug aus Fig. 1.

Fig. 6 zeigt ein schematisches Ablaufdiagramm eines Vorgangs zur Neudefinition eines Nullreferenzzeitpunkts für das erfindungsgemäße Verfahren zur Aufzeichnung von Ereignisdaten in einem Fahrzeug aus Fig. 1. Fig. 7 zeigt ein schematisches Blockdiagramm eines Ausführungsbeispiels einer erfindungsgemäßen Vorrichtung zur Durchführung des erfindungsgemäßen Verfahrens zur Aufzeichnung von Ereignisdaten in einem Fahrzeug aus Fig. 1.

Ausführungsformen der Erfindung

Wie aus Fig. 1 ersichtlich ist, werden im dargestellten Ausführungsbeispiel eines erfindungsgemäßen Verfahrens 100 zur Aufzeichnung von Ereignisdaten in einem Fahrzeug in einem Schritt S100 fortlaufend Fahrzeugdaten von mindestens einem Fahrzeugsystem 3 empfangen und im Schritt S110 als Ereignisdaten in Datenrahmen DR mit einer vorgegebenen Größe geschrieben. Die einzelnen Datenrahmen DR werden im Schritt S120 in mindestens einem flüchtigen Speicher 50 gespeichert, wobei die gespeicherten Datenrahmen DR verwaltet und solange in dem mindestens einen flüchtigen Speicher 50 verfügbar gehalten werden, bis die in den einzelnen Datenrahmen DR gespeicherten Ereignisdaten älter als ein vorgegebener maximaler Voreigniszeitpunkt sind oder in Reaktion auf ein erkanntes vorgegebenes Ereignis persistent in mindestens einem nichtflüchtigen Speicher 46 gespeichert sind. Hierzu wird ein aktuelles Ereigniszeitfenster EZF vorgegeben, für welches die Ereignisdaten persistent aufgezeichnet werden sollen, wobei im Schritt S130 ein Startzeitpunkt EZF_1 des aktuellen Ereigniszeitfensters EZF als Zeitstempel in Bezug auf einen aktuellen in Fig. 5 dargestellten Nullreferenzzeitpunkt B, welcher bei Bedarf neu definiert wird, vorgegeben wird, und im Schritt S140 ein Endzeitpunkt EZF_2 des aktuellen Ereigniszeitfensters EZF als Zeitdifferenz zum Startzeitpunkt EZF_1 vorgegeben wird.

Im dargestellten Ausführungsbeispiel des erfindungsgemäßen Verfahrens 100 werden im Schritt S150 mehrere Partitionen 21, 21A, 21B mit einer vorgegebenen Größe vorgesehen, wobei im Schritt S160 in Abhängigkeit von mindestens einem Schreibkriterium eine der Partitionen 21, 21A, 21B als aktuelle Schreibpartition bestimmt wird, in welche die empfangenen Referenzinformationen 25 der einzelnen Datenrahmen DR im Schritt S170 geschrieben werden. Des Weiteren wird im Schritt S180 in Reaktion auf eine Anforderung und in Abhängigkeit von mindestens einem vorgegebenen Lesekriterium, welches zumindest das aktuelle Ereigniszeitfenster EZF umfasst, für welches die Ereignisdaten persistent aufgezeichnet werden sollen, eine der anderen Partitionen 21, 21A, 21B als aktuelle Lesepartition bestimmt. Im Schritt S190 werden in der aktuellen Lesepartition enthaltene Referenzinformationen 25 von Datenrahmen DR ausgelesen und weitergeleitet, welche persistent aufzuzeichnende Ereignisdaten enthalten, und im Schritt S195 werden die mit den weitergeleiteten Referenzinformationen 25 korrespondierenden Datenrahmen DR persistent in dem mindestens einen nichtflüchtigen Speicher 46 gespeichert.

In den dargestellten Ausführungsbeispielen betreffen die einzelnen Datenrahmen DR jeweils ein Zeitfenster 27. Wie aus Fig. 2 und 3 weiter ersichtlich ist, umfassen die Referenzinformationen 25 der einzelnen Datenrahmen DR jeweils einen korrespondierenden Speicherbereich, welcher vorzugsweise durch einen Datenrahmenzeiger DRZ dargestellt ist, und das korrespondierende Zeitfenster 27 mit einem Startzeitstempel 28 und einem Endzeitstempel 29 der einzelnen Datenrahmen DR, in welchem mindestens ein im korrespondierenden Datenrahmen DR enthaltenes Datensegment der Ereignisdaten erzeugt oder erfasst wurde.

Wie aus Fig. 2 und 3 weiter ersichtlich ist, wird den einzelnen Partitionen 21, 21A, 21B jeweils ein Zeitfenster 22 zugeordnet, wobei als Startzeitstempel 23 des Zeitfensters 22 einer korrespondierenden Partition 21, 21A, 21B ein ältester Startzeitstempel 28 von in der Partition 21 enthaltenen Referenzinformationen 25 eines korrespondierenden Datenrahmens DR eingesetzt wird. Als Endzeitstempel 24 des Zeitfensters 22 der korrespondierenden Partition 21 wird ein jüngster Endzeitstempel 29 von in der Partition 21 enthaltenen Referenzinformationen 25 eines korrespondierenden Datenrahmens DR eingesetzt. Wie aus Fig. 2 und 3 weiter ersichtlich ist umfassen die dargestellten vollständig beschriebenen Partitionen 21A, 21B jeweils die Referenzinformationen von fünfzehn Datenrahmen DR, welche jeweils ein korrespondierendes Zeitfenster 27 betreffen. Das Zeitfenster 22 der dargestellten Partitionen 21A, 21B weisen jeweils beispielhaft den Wert „3“ des Startzeitstempels 28 eines ersten Datenrahmens DR auf, welcher dem ältesten Startzeitstempel 28 in den dargestellten Partitionen 21A, 21B entspricht. Als Endzeitstempel 24 weisen die dargestellten Partitionen 21A, 21B jeweils beispielhaft den Wert „37“ des Endzeitstempels 29 des letzten Datenrahmens DR auf, welcher dem jüngsten Endzeitstempel 29 in den dargestellten Partitionen 21A, 21B entspricht. In den dargestellten Ausführungsbeispielen wird ein in Fig. 4 dargestellter Startzeitpunkt EZF_1 des aktuellen Ereigniszeitfensters EZF als Zeitstempel in Bezug auf einen in Fig. 5 dargestellten aktuellen Nullreferenzzeitpunkt B vorgegeben.

Ein Endzeitpunkt EZF_2 des aktuellen Ereigniszeitfensters EZF wird als Zeitdifferenz zum Startzeitpunkt EZF_1 vorgegeben, wobei der aktuelle Nullreferenzzeitpunkt B bei Bedarf neu definiert wird. Beispielsweise wird der aktuelle Nullreferenzzeitpunkt B neu definiert, wenn ein neues aktuelles Ereigniszeitfenster EZF nicht mit dem aktuellen Nullreferenzzeitpunkt B darstellbar ist, weil der Startzeitpunkt EZF_1 des neuen aktuellen Ereigniszeitfensters EZF zeitlich zu weit von dem aktuellen Nullreferenzzeitpunkt B entfernt ist. Zudem sind auch der Startzeitstempel 28 und der Endzeitstempel 29 der einzelnen Datenrahmen DR und somit auch der Startzeitstempel 23 und der Endzeitstempel 24 der einzelnen Partitionen 21, 21A, 21B auf den aktuellen Nullreferenzzeitpunkt B bezogen.

Nachfolgend wird unter Bezugnahme auf Fig. 5 und 6 der Vorgang 200 zur Neudefinition des Nullreferenzzeitpunkts B beschrieben. Wie aus Fig. 5 ersichtlich ist, werden die beiden zuletzt verwendeten Nullreferenzzeitpunkte A, B jeweils an einem Speicherplatz Epoch A, Epoch B gespeichert, wobei in dem aktuellen Ereigniszeitfenster EZF durch eine Markierung M in einem korrespondierenden Speicherplatz angezeigt wird, auf welchen der beiden gespeicherten Nullreferenzzeitpunkte A, B sich der Startzeitpunkt EZF_1 des aktuellen Ereigniszeitfensters EZF bezieht. In der Regel entspricht ein ältester Nullreferenzzeitpunkt einem Startzeitpunkt des Fahrzeugs. Im dargestellten Ausführungsbeispiel ist das aktuelle Ereigniszeitfenster EZF in 32 Bit kodiert. Hierbei repräsentieren Bit 0 bis 13 die Dauer bzw. Länge des aktuellen Ereigniszeitfensters EZF, Bit 14 bis 30 repräsentieren den Startzeitpunkt EZF_1 des aktuellen Ereigniszeitfensters EZF als Zeitdifferenz des Startzeitpunkts EZF_1 des aktuellen Ereigniszeitfensters EZF zum aktuellen Nullreferenzzeitpunkt B. Bit 31 repräsentiert die Markierung des aktuell gültigen Nullreferenzzeitpunkt B. So kann die Gültigkeit des im Speicherplatz Epoch A gespeicherten Nullreferenzzeitpunkts A beispielsweise durch einen logischen Wert „0“ markiert werden, und die Gültigkeit des im Speicherplatz Epoch B gespeicherten Nullreferenzzeitpunkts B kann beispielsweise durch einen logischen Wert „1“ markiert werden. In Fig. 5 zeigt die zweite Zeile der Tabelle einen aktuellen Zustand des korrespondierenden Speicherbereichs. Das bedeutet, dass im Speicherplatz Epoch A ein älterer erster Nullreferenzzeitpunkt A mit dem beispielhaften Wert 2:00:00:000 und im Speicherplatz Epoch B ein jüngerer zweiter Nullreferenzzeitpunkt B mit dem Wert 8:00:00:000 gespeichert sind, wobei die Markierung M mit dem dargestellten Wert „B“ anzeigt, dass der im Speicherplatz Epoch B gespeicherte jüngere zweite Nullreferenzzeitpunkt B dem aktuellen Nullreferenzzeitpunkt B entspricht.

Wie aus Fig. 6 weiter ersichtlich ist, wird bei einer Neudefinition des aktuell verwendeten Nullreferenzzeitpunkts B im Schritt S200 zuerst der ältere Nullreferenzzeitpunkt A der beiden gespeicherten Nullreferenzzeitpunkte A, B mit einem neuen Nullreferenzzeitpunkt C überschrieben. In Fig. 5 zeigt die dritte Zeile der Tabelle diesen Zustand des korrespondierenden Speicherbereichs. Das bedeutet, dass im Speicherplatz Epoch A der neue Nullreferenzzeitpunkt C mit dem beispielhaften Wert 16:00:00:000 gespeichert wird. Im Speicherplatz Epoch B ist weiterhin der nun ältere zweite Nullreferenzzeitpunkt B mit dem Wert 8:00:00:000 gespeichert, wobei die Markierung M mit dem dargestellten Wert „B“ weiterhin anzeigt, dass der im Speicherplatz Epoch B gespeicherte zweite Nullreferenzzeitpunkt B dem aktuellen Nullreferenzzeitpunkt B entspricht. Im Schritt S210 wird dann der neue Nullreferenzzeitpunkt C in einem atomaren Vorgang als aktueller Nullreferenzzeitpunkt C markiert. In Fig. 5 zeigt die vierte Zeile der Tabelle diesen Zustand des korrespondierenden Speicherbereichs. Das bedeutet, dass im Speicherplatz Epoch A der neue Nullreferenzzeitpunkt C mit dem beispielhaften Wert 16:00:00:000 gespeichert ist. Im Speicherplatz Epoch B ist weiterhin der nun ältere zweite Nullreferenzzeitpunkt B mit dem Wert 8:00:00:000 gespeichert, wobei die Markierung M mit dem dargestellten Wert „A“ nun anzeigt, dass der im Speicherplatz Epoch A gespeicherte neue Nullreferenzzeitpunkt C nun dem aktuellen Nullreferenzzeitpunkt C entspricht. Im Schritt S220 wird anschließend das neue aktuelle Ereigniszeitfenster EZF bezogen auf den neuen aktuellen Nullreferenzzeitpunkt C atomar geschrieben. In Fig. 5 zeigt die fünfte Zeile der Tabelle den Zustand des korrespondierenden Speicherbereichs nach der Neudefinition des aktuellen Nullreferenzzeitpunkts C.

Nachfolgend wird der im Schritt S160 durchgeführte Vorgang zur Bestimmung einer aktuellen Schreibpartition für das erfindungsgemäße Verfahren 100 zur Aufzeichnung von Ereignisdaten in einem Fahrzeug näher beschrieben. Hierbei wird in Abhängigkeit von dem mindestens einen vorgegebenen Schreibkriterium nach einer neuen Schreibpartition gesucht, wenn das Fahrzeug neu gestartet wird oder die aktuelle Schreibpartition vollständig mit Referenzinformationen 25 beschrieben ist. In den dargestellten Ausführungsbeispielen wird das aktuelle Ereigniszeitfenster EZF, falls vorhanden, vor der Bestimmung der aktuellen Schreibpartition lokal gespeichert. Der Vorgang bestimmt einen Satz von Partitionen 21, 21A, 21B, welche kein gültiges Zeitfenster 22 oder ein gültiges Zeitfenster 22 haben, welches vollständig älter als der maximale Voreigniszeitpunkt ist und ein vorhandenes aktuelles Ereigniszeitfenster EZF nicht überlappt. Aus diesem Satz von Partitionen 21, 21A, 21B wird eine Partition 21, 21A, 21B, welche kein gültiges Zeitfenster 22 hat, oder eine Partition 21, 21 A, 21 B als aktuelle Schreibpartition bestimmt, deren korrespondierendes gültiges Zeitfenster 22 den ältesten Startzeitstempel 23 hat.

In den dargestellten Ausführungsbeispielen der Erfindung werden die empfangenen Referenzinformationen 25 der einzelnen Datenrahmen DR in beliebiger zeitlicher Reihenfolge in die aktuelle Schreibpartition geschrieben, wobei zeitlich zufällig sortierte Untersequenzen der geschriebenen Referenzinformationen 25 der einzelnen Datenrahmen DR in der Schreibpartition ermittelt und markiert werden. Hierzu umfassen die einzelnen Partitionen 21, 21B zusätzliche Hilfsinformationen 60, wie aus Fig. 3 weiter ersichtlich ist. Im Unterschied zu der in Fig. 2 dargestellten Partition 21A umfassen die geschriebenen Referenzinformationen 25 der einzelnen Datenrahmen DR der in Fig. 3 dargestellten Partition 21B eine Nummerierung 62. Das bedeutet, dass die Referenzinformationen 25 der einzelnen Datenrahmen DR der in Fig. 3 dargestellten Partition 21B gemäß ihrer Schreibreihenfolge aufsteigend durchnummeriert werden.

Bei jedem Schreiben von Referenzinformationen 25 eines neuen Datenrahmens DR wird das Zeitfenster 27 des neuen Datenrahmens DR mit dem Zeitfenster 27 des Datenrahmens DR verglichen, dessen Referenzinformationen 25 zuvor als letztes in die aktuelle Schreibpartition geschrieben wurden. Hierzu wird der Startzeitstempel 28 des neuen Datenrahmens DR mit dem Startzeitstempel 28 des zuletzt geschriebenen Datenrahmens DR verglichen. Hierbei wird eine zeitlich zufällig sortierte aktuelle Startzeituntersequenz 64 erkannt und fortgesetzt, wenn der Startzeitstempel 28 des neuen Datenrahmes DR jünger als der Startzeitstempel 28 des zuletzt geschriebenen Datenrahmens DR ist. Alternativ wird eine neue Startzeituntersequenz 64 gestartet und deren Startzeitstempel 28 durch Speichern der korrespondierenden Nummerierung 62 des neuen Datenrahmens DR markiert, wenn der Startzeitstempel 28 des neuen Datenrahmes DR älter als der Startzeitstempel 28 des zuletzt geschriebenen Datenrahmens DR ist. Eine erste Startzeituntersequenz 64 startet mit dem Startzeitstempel 28 des ersten geschriebenen Datenrahmens DR und der Nummer „0“. Zudem wird der Endzeitstempel 29 des neuen Datenrahmens DR mit dem Endzeitstempel 29 des zuletzt geschriebenen Datenrahmens DR verglichen. Hierbei wird eine zeitlich zufällig sortierte aktuelle Endzeituntersequenz 66 erkannt und fortgesetzt, wenn der Endzeitstempel 29 des neuen Datenrahmes DR jünger als der Endzeitstempel 29 des zuletzt geschriebenen Datenrahmens DR ist. Alternativ wird eine neue Endzeituntersequenz 64 gestartet und deren Endzeitstempel 29 durch Speichern der korrespondierenden Nummerierung 62 des neuen Datenrahmens DR markiert, wenn der Endzeitstempel 29 des neuen Datenrahmes DR älter als der Endzeitstempel 29 des zuletzt geschriebenen Datenrahmens DR ist. Eine erste Endzeituntersequenz 66 startet mit dem Endzeitstempel 29 des ersten geschriebenen Datenrahmens DR.

Wie aus Fig. 3 weiter ersichtlich ist, umfasst die beispielhaft dargestellte Partition 21B vier Startzeituntersequenzen 64. Hierbei startet die erste Startzeituntersequenz 64 mit einer niedrigsten Nummer „0“ der aufsteigenden Nummerierung 62. Eine zweite Startzeitsequenz 64 startet mit einer Nummer „3“, , da der Startzeitstempel 28 des korrespondierenden Datenrahmens DR mit dem Wert „5“ älter als der Startzeitstempel 28 mit dem Wert „7“ des vorherigen Datenrahmens DR ist. Eine dritte Startzeituntersequenz 64 startet mit einer Nummer „7“ der aufsteigenden Nummerierung 62, da der Startzeitstempel 28 des korrespondierenden Datenrahmens DR mit dem Wert „7“ älter als der Startzeitstempel 28 mit dem Wert „13“ des vorherigen Datenrahmens DR ist. Eine vierte Startzeituntersequenz 64 startet mit einer Nummer „13“ der aufsteigenden Nummerierung 62, da der Startzeitstempel 28 des korrespondierenden Datenrahmens DR mit dem Wert „28“ älter als der Startzeitstempel 28 mit dem Wert „29“ des vorherigen Datenrahmens DR ist. Des Weiteren umfasst die beispielhaft dargestellte Partition 21B fünf Endzeituntersequenzen 66. Hierbei startet die erste Endzeituntersequenz 66 mit der niedrigsten Nummer „0“ der aufsteigenden Nummerierung 62. Eine zweite End- zeitsequenz 66 startet mit einer Nummer „1“, da der Endzeitstempel 29 des korrespondierenden Datenrahmens DR mit dem Wert „19“ älter als der Endzeitstempel 29 mit dem Wert „20“ des vorherigen Datenrahmens D ist. Eine dritte Endzeituntersequenz 66 startet mit einer Nummer „5“, da der Endzeitstempel 29 des korrespondierenden Datenrahmens DR mit dem Wert „19“ älter als der Endzeitstempel 29 mit dem Wert „27“ des vorherigen Datenrahmens DR ist. Eine vierte Endzeituntersequenz 66 startet mit einer Nummer „7“, da der Endzeitstempel 29 des korrespondierenden Datenrahmens DR mit dem Wert „12“ älter als der Endzeitstempel 29 mit dem Wert „30“ des vorherigen Datenrahmens DR ist. Eine fünfte Endzeituntersequenz 66 startet mit einer Nummer „11“, da der Endzeitstempel 29 des korrespondierenden Datenrahmens DR mit dem Wert „25“ älter als der Endzeitstempel 29 mit dem Wert „28“ des vorherigen Datenrahmens DR ist.

Fig. 4 zeigt beispielhaft vier Zeitfenster 22A, 22B, 22C, 22D von Partitionen 21, 21A, 21B, welche mit dem aktuellen Ereigniszeitfenster EZF überlappen. Da alle dargestellten Zeitfenster 22A, 22B, 22C, 22D das aktuelle Ereigniszeitfenster EZF überlappen, sind alle korrespondierenden Partitionen 21, 21A, 21B geeignet, als aktuelle Lesepartition bestimmt zu werden. Da das Zeitfenster 22 A, 22 B, 22C, 22D der aktuellen Lesepartition das aktuelle Ereigniszeitfenster EZF überlappt, überlappt auch mindestens ein Datenrahmen DR der aktuellen Lesepartition das aktuelle Ereigniszeitfenster EZF. Die Referenzinformationen 25 von mindestens einem Datenrahmen DR werden aus der aktuellen Lesepartition ausgelesen, dessen Zeitfenster 27 mit den dem aktuellen Ereigniszeitfenster EZF überlappt. Hierbei wird das Zeitfenster 27 des mindestens einen Datenrahmens DR in den Referenzinformationen 25 nach dem Auslesen der Referenzinformationen 25 ungültig gemacht.

Vor der Bestimmung der aktuellen Lesepartition wird das vorhandene aktuelle Ereigniszeitfenster EZF lokal gespeichert, wobei vor jedem Auslesevorgang der Referenzinformationen 25 von mindestens einem Datenrahmen DR das lokal gespeicherte aktuelle Ereigniszeitfenster EZF mit dem aktuellen Ereigniszeitfenster EZF verglichen wird. Hierbei wird das aktuelle Ereigniszeitfenster EZF lokal gespeichert, wenn es sich vom lokal gespeicherten aktuellen Ereigniszeitfenster EZF unterscheidet. Zudem wird überprüft, ob sich das Zeitfenster 22 der aktuellen Lesepartition und das neue aktuelle Ereigniszeitfenster EZF überlappen, wenn das lokal gespeicherte aktuelle Ereigniszeitfenster EZF geändert wurde. Der Auslesevorgang der Lesepartition wird neu gestartet, wenn die aktuelle Lesepartition mit dem geänderten aktuellen Ereigniszeitfenster EZF überlappt. Alternativ wird eine neue aktuelle Lesepartition bestimmt, wenn die aktuelle Lesepartition mit dem geänderten aktuellen Ereigniszeitfenster EZF nicht überlappt.

Zur Beschleunigung des Auslesevorgangs, werden aus der aktuellen Lesepartition auszulesende Referenzinformationen 25 von mindestens einem Datenrahmen DR in Abhängigkeit vom zeitlichen Bezug der mindestens einen zeitlich zufällig sortierten Startzeituntersequenz 64 und/oder der mindestens einen zeitlich zufällig sortierten Endzeituntersequenz 66 der aktuellen Lesepartition zum aktuellen Ereigniszeitfenster EZF ermittelt.

Wie aus Fig. 4 weiter ersichtlich ist, liegt der Startzeitstempel 23 eines ersten Zeitfensters 22 einer korrespondierenden Partition 21, 21A, 21B außerhalb des aktuellen Ereigniszeitfensters EZF und der Endzeitstempel 24 des ersten Zeitfensters 22 der korrespondierenden Partition 21, 21 A, 21 B liegt innerhalb des aktuellen Ereigniszeitfensters EZF. Daher kann die Partition 21, 21A, 21B Datenrahmen DR enthalten, welche zu alt für das aktuelle Ereigniszeitfenster EZF sind, aber keine Datenrahmen DR enthalten, welche zu jung für das aktuelle Ereigniszeitfenster EZF sind. Somit werden zur Ermittlung von aus der Partition 21, 21A, 21B auszulesenden Referenzinformationen 25 von Datenrahmen DR nur die Endzeitstempel 29 der Datenrahmen DR der markierten zeitlich zufällig sortierten Endzeituntersequenzen 66 mit dem Startzeitpunkt EZF_1 des aktuellen Ereigniszeitfensters EZF verglichen, um Datenrahmen DR zu erkennen, welche vollständig vor dem aktuellen Ereigniszeitfenster EZF liegen.

Wie aus Fig. 4 weiter ersichtlich ist, liegt der Startzeitstempel 23 und der Endzeitstempel 24 eines zweiten Zeitfensters 22 B einer korrespondierenden Partition 21, 21A, 21B innerhalb des aktuellen Ereigniszeitfensters EZF. Daher enthält die Partition 21, 21A, 21B weder Datenrahmen DR, welche zu alt für das aktuelle Ereigniszeitfenster EZF sind, noch Datenrahmen DR, welche zu jung für das aktuelle Ereigniszeitfenster EZF sind, so dass die Referenzinformationen 25 von allen Datenrahmen DR in der korrespondierenden Partition 21, 21A, 21B ohne weitere Überprüfung ausgelesen und weitergeleitet werden, und die korrespondierenden Datenrahmen DR persistent gespeichert werden.

Wie aus Fig. 4 weiter ersichtlich ist, liegt der Startzeitstempel 28 eines dritten Zeitfensters 22C einer korrespondierenden Partition 21, 21A, 21B innerhalb des aktuellen Ereigniszeitfensters EZF und der Endzeitstempel 29 des dritten Zeitfensters 22C der korrespondierenden Partition 21, 21A, 21B liegt außerhalb des aktuellen Ereigniszeitfensters EZF. Daher kann die Partition 21, 21A, 21B Datenrahmen DR enthalten, welche zu jung für das aktuelle Ereigniszeitfenster EZF sind, aber keine Datenrahmen DR enthalten, welche zu alt für das aktuelle Ereigniszeitfenster EZF sind. Somit werden zur Ermittlung von aus der Partition 21, 21A, 21B auszulesenden Referenzinformationen 25 von Datenrahmen DR nur die Startzeitstempel 28 der markierten zeitlich zufällig sortierten Startzeituntersequenzen 64 mit dem Endzeitpunkt EZF_2 des aktuellen Ereigniszeitfensters EZF verglichen, um Datenrahmen DR zu erkennen, welche vollständig nach dem aktuellen Ereigniszeitfenster EZF liegen.

Wie aus Fig. 4 weiter ersichtlich ist, liegt der Startzeitstempel 28 und der Endzeitstempel 29 eines vierten Zeitfensters 22 D einer korrespondierenden Partition 21, 21A, 21B außerhalb des aktuellen Ereigniszeitfensters EZF. Daher kann die Partition 21, 21A, 21B Datenrahmen DR enthalten, welche zu jung für das aktuelle Ereigniszeitfenster EZF sind, und Datenrahmen DR enthalten, welche zu alt für das aktuelle Ereigniszeitfenster EZF sind. Somit werden zur Ermittlung von aus der Partition 21, 21 A, 21 B auszulesenden Referenzinformationen 25 von Datenrahmen DR die Startzeitstempel 28 der markierten zeitlich zufällig sortierten Startzeituntersequenzen 64 mit dem Endzeitpunkt EZF_2 des aktuellen Ereigniszeitfensters EZF verglichen, um Datenrahmen DR zu erkennen, welche vollständig nach dem aktuellen Ereigniszeitfenster EZF liegen. Zudem werden die Endzeitstempel 29 der markierten zeitlich zufällig sortierten Endzeituntersequenzen 66 jeweils mit dem Startzeitpunkt EZF_1 des aktuellen Ereigniszeitfensters EZF verglichen, um Datenrahmen DR zu erkennen, welche vollständig vor dem aktuellen Ereigniszeitfenster EZF liegen. Hierbei werden zuerst die zufällig sortierten Endzeituntersequenzen 66 verwendet, um einen Datenrahmen DR zu finden, welcher nicht vollständig vor dem Ereigniszeitfenster EZF liegt. Dazu wird zunächst der Endzeitstempel 29 des Datenrahmens DR des letzten Eintrags einer ersten zufällig sortierten Endzeituntersequenz 66 mit dem Startzeitpunkt EZF_1 des aktuellen Ereigniszeitfensters EZF verglichen, um zu überprüfen, ob die Datenrahmen DR der ersten zufällig sortierten Endzeituntersequenz 66 vollständig vor dem Ereigniszeitfenster EZF liegen. Wenn ja, dann wird der Vorgang mit der nächsten zufällig sortierten Endzeituntersequenz 66 fortgesetzt und die Referenzinformationen 25 der Datenrahmen DR der ersten zufällig sortierten Endzeituntersequenz 66 werden nicht weitergeleitet. Wenn nicht, dann werden beginnend mit dem ersten Eintrag die Endzeitstempel 29 der Datenrahmen DR der ersten zufällig sortierten Endzeituntersequenz 66 überprüft, um einen Datenrahmen DR zu finden, welcher nicht vollständig vor dem Ereigniszeitfenster EZF liegt, da frühere Einträge von Datenrahmen DR der zufällig sortierten ersten Endzeituntersequenz 66 können noch vollständig älter als das aktuelle Ereigniszeitfensters EZF sein können. Nachdem die Nummer eines ersten solchen Datenrahmens DR ermittelt ist, wird die korrespondierende zufällig sortierte Startzeituntersequenz 64, welche diesen ersten Datenrahmen DR enthält. Um sicherzustellen, dass die Datenrahmen DR nicht vollständig nach dem Ereigniszeitfenster EZF liegen, werden beginnend mit dem Startzeitstempel 28 des ermittelten ersten Datenrahmens DR die Startzeitstempel 28 der Datenrahmen DR der ersten zufällig sortierten Startzeituntersequenz 64 mit dem Endzeitpunkt EZF_2 des aktuellen Ereigniszeitfensters EZF verglichen, um einen Datenrahmen DR zu finden, welcher vollständig nach dem Ereigniszeitfenster EZF liegt. Wird ein Datenrahmen DR gefunden, der vollständig nach dem aktuellen Ereigniszeitfenster EZF liegt, dann wird der Vorgang mit einem ersten Eintrag der nächsten zufällig sortierten Startzeituntersequenz 64 fortgesetzt. Zudem wird jedes Mal, wenn ein Datenrahmen DR gefunden wird, welcher mit dem aktuellen Ereigniszeitfensters EZF überlappt, überprüft, ob der gefundene Datenrahmen DR noch zu der zuvor überprüften zufällig sortierten Endzeituntersequenz 66 gehört. Wenn dies der Fall ist, werden die Referenzinformationen 25 des gefundenen Datenrahmens DR weitergeleitet und das Zeitfenster 27 in den Referenzinformationen 25 des Datenrahmen DR in der Partition 21 gelöscht. Andernfalls wird der Vorgang mit der zufällig sortierten Endzeituntersequenz 66 fortgesetzt, zu welcher der gefundene Datenrahmen DR gehört. Ausführungsformen des erfindungsgemäßen Verfahrens 100 können beispielsweise in Software oder Hardware oder in einer Mischform aus Software und Hardware implementiert sein.

Wie aus Fig. 7 ersichtlich ist, umfasst das dargestellte Ausführungsbeispiel einer erfindungsgemäßen Vorrichtung 1 zur Durchführung des Verfahrens 100 zur Aufzeichnung von Ereignisdaten in einem Fahrzeug eine Datenbereitstellungsanordnung 10, einen Pufferblock 20, eine Ereigniserkennungsanordnung 30 und eine Datenaufzeichnungsanordnung 40. Die Datenbereitstellungsanordnung 10 empfängt fortlaufend aufzuzeichnende Fahrzeugdaten von mindestens einem Fahrzeugsystem 3 und schreibt diese als Ereignisdaten in Datenrahmen DR mit einer vorgegebenen Größe und speichert die einzelnen Datenrahmen DR in mindestens einen flüchtigen Speicher 50. Der Pufferblock 20 verwaltet die gespeicherten Datenrahmen DR und hält diese solange in dem mindestens einen flüchtigen Speicher 50 verfügbar, bis die in den einzelnen Datenrahmen DR gespeicherten Ereignisdaten älter als ein vorgegebener maximaler Voreigniszeitpunkt sind oder in Reaktion auf ein durch die Ereigniserkennungsanordnung 30 erkanntes vorgegebenes Ereignis persistent in mindestens einem nichtflüchtigen Speicher 46 gespeichert sind. Die Ereigniserkennungsanordnung 30 gibt ein aktuelles Ereigniszeitfenster EZF vor, für welches die Ereignisdaten persistent aufgezeichnet werden sollen. Hierzu gibt die Ereigniserkennungsanordnung 30 einen Startzeitpunkt EZF_1 des aktuellen Ereigniszeitfensters EZF als Startzeitstempel in Bezug auf einen aktuellen Nullreferenzzeitpunkt B und einen Endzeitpunkt EZF_2 des aktuellen Ereigniszeitfensters EZF als Zeitdifferenz zum Startzeitpunkt EZF_1 vor, wobei der Pufferblock 20 den aktuellen Nullreferenzzeitpunkt B bei Bedarf neu definiert.

Zur Neudefinition des aktuellen Nullreferenzzeitpunkts B führt der Pufferblock 20 den oben beschriebenen Vorgang 200 zur Neudefinition des Nullreferenzzeitpunkts B durch.

Im dargestellten Ausführungsbeispiel umfasst der Pufferblock 20 eine Schreibfunktion SF und mehrere Partitionen 21, 21A, 21B mit einer vorgegebe- nen Größe. Die Schreibfunktion SF bestimmt in Abhängigkeit von mindestens einem Schreibkriterium eine der Partitionen 21, 21A, 21B als aktuelle Schreibpartition und schreibt von der Datenbereitstellungsanordnung 10 empfangene Referenzinformationen 25 der einzelnen Datenrahmen DR in die aktuelle Schreibpartition. Zudem umfasst der Pufferblock 20 im dargestellten Ausführungsbeispiel eine Lesefunktion LF. Die Lesefunktion LF bestimmt in Reaktion auf eine Anforderung der Datenaufzeichnungsanordnung 40 und in Abhängigkeit von mindestens einem vorgegebenen Lesekriterium, welches zumindest ein aktuelles Ereigniszeitfenster EZF umfasst, für welches die Ereignisdaten persistent aufgezeichnet werden sollen, eine der anderen Partitionen 21 als aktuelle Lesepartition und liest in der aktuellen Lesepartition enthaltene Referenzinformationen 25 von Datenrahmen DR, welche persistent aufzuzeichnende Ereignisdaten enthalten, aus und leitet diese an die Datenaufzeichnungsanordnung 40 weiter. Die Datenaufzeichnungsanordnung 40 speichert die mit den weitergeleiteten Referenzinformationen 25 korrespondierenden Datenrahmen DR persistent in dem mindestens einen nichtflüchtigen Speicher 46.

Des Weiteren schreibt die Schreibfunktion SF die empfangenen Referenzinformationen 25 der einzelnen Datenrahmen DR in beliebiger zeitlicher Reihenfolge in die Schreibpartition und ermittelt und markiert zeitlich zufällig sortierte Untersequenzen der geschriebenen Referenzinformationen 25 der einzelnen Datenrahmen DR in der mindestens einen Partition 21.

Die Ereigniserkennungsanordnung 30 überwacht kontinuierlich den Zustand des Fahrzeugs und entscheidet, wann ein vorgegebenes Ereignis aufgetreten ist, welches die persistente Speicherung der korrespondierenden Ereignisdaten des mindestens einen Fahrzeugsystems 3 erfordert. Die Ereigniserkennungsanordnung 30 gibt das mit dem erkannten Ereignis korrespondierende aktuelle Ereigniszeitfenster EZF an den Pufferblock 20 aus, für welches die Ereignisdaten persistent aufgezeichnet werden sollen, wobei ein Startzeitpunkt des aktuellen Ereigniszeitfensters EZF zeitlich nicht vor dem maximalen Voreigniszeitpunkt liegt.

Im dargestellten Ausführungsbeispiel ist ein erstes Fahrzeugsystem 3 als Umfelderfassungssystem 3A ausgeführt. Ein zweites Fahrzeugsystem 3 ist als Personenschutzsystem 3B, ein drittes Fahrzeugsystem 3 ist als Fahrdynamiksystem 3C und ein viertes Fahrzeugsystem ist als Bremssystem 3D ausgeführt. Selbstverständlich können auch noch Fahrzeugdaten von anderen Fahrzeugsystemen oder von einer anderen Kombination der o. g. Fahrzeugsystemen 3 erfasst und aufgezeichnet werden.

Die Datenbereitstellunganordnung 10 umfasst im dargestellten Ausführungsbeispiel eine Datenerfassung 12 und eine Datenvorverarbeitung und übergibt die Referenzinformationen 25 der in dem mindestens einen flüchtigen Speicher 50 gespeicherten Datenrahmen DR an den Pufferblock 20. Die Referenzinformationen 25 der einzelnen Datenrahmen DR umfassen, wie oben bereits ausgeführt ist, im dargestellten Ausführungsbeispiel Datenrahmenzeiger DRZ, welche einen Speicherplatz der im flüchtigen Speicher gespeicherten Datenblöcke bzw. Datenrahmen, sowie das korrespondierende Zeitfenster 27 des Datenrahmens DR mit dem Startzeitstempel 26 und dem Endzeitstempel 29. Der Pufferblock 20 leitet im Falle eines erkannten Ereignisses die korrespondierenden Referenzinformationen 25 von Datenrahmen, welche persistent in dem mindestens einen nichtflüchtigen Speicher 46 gespeichert werden sollen, an die Datenaufzeichnungsanordnung 40 weiter. Die Datenaufzeichnungsanordnung 40 umfasst im dargestellten Ausführungsbeispiel eine Datennachverarbeitung 42, eine Datenspeicherung 44 und den mindestens einen nichtflüchtigen Speicher 46. Die einzelnen Datenrahmen DR enthalten in der Regel mehr als einen Datenausschnitt, welcher innerhalb des Zeitfensters 27 des Datenrahmens DR erzeugt oder gespeichert wurde. Der Pufferblock 20 kennt nur das Zeitfenster 27 des Datenrahmens DR und kennt oder versteht den Inhalt des Datenrahmens DR nicht. Der Pufferblock 20 empfängt und leitet die Datenrahmen DR als Referenzierung von der Datenbereitstellunganordnung 10 an die Datenaufzeichnungsanordnung 40 weiter. Das bedeutet, dass der Pufferblock 20 den Speicherinhalt der Datenrahmen DR nicht kopiert. Falls die Ereigniserkennungsanordnung 30 den Pufferblock 20 über ein aktuelles Ereigniszeitfenster EZF benachrichtigt, identifiziert der Pufferblock 20 die Datenrahmen DR, welche sich auf das aktuelle Ereigniszeitfenster EZF beziehen. Der Pufferblock 20 stellt dann genau die Referenzinformationen 25 der Datenrahmen DR der Datenaufzeichnungsanordnung 40 zur Datenaufzeichnung zur Verfügung, welche sich zeitlich mit dem aktuellen Ereigniszeitfenster EZF überlappen. Das bedeutet, dass der Pufferblock 20 die Referenzinformationen 25 von vollständigen Datenrahmen DR an die Datenaufzeichnungsanordnung 40 weiterleitet, auch wenn sich die Datenrahmen DR nur teilweise mit dem aktuellen Ereigniszeitfenster EZF überlappen und daher einige Datenausschnitte außerhalb des aktuellen Ereigniszeitfensters EZF liegen können. Der Pufferblock 20 bezieht nur Datenrahmen DR auf das eingetretene Ereignis, welche eine zeitliche Überlappung mit dem aktuellen Ereigniszeitfenster EZF aufweisen. Der Pufferblock 20 wendet keine weiteren Kriterien an, um die Datenrahmen DR einem Ereignis zuzuordnen. Der Pufferblock 20 stellt der Datenaufzeichnungsanordnung 40 genau die Referenzinformationen 25 von Datenrahmen DR bereit, welche sich mit dem aktuellen Ereigniszeitfenster EZF überlappen. Es gibt keine Einschränkungen für die Reihenfolge, in welcher der Pufferblock 20 die Datenrahmen DR an die Datenaufzeichnungsanordnung 40 weiterleitet. Der Pufferblock 20 verarbeitet jeweils nur ein Ereignis zu einem Zeitpunkt. Die Ereigniserkennungsanordnung 30 informiert den Pufferblock 20 nur über das aktuelle Ereigniszeitfenster EZF. Der Pufferblock 20 braucht keine weiteren Kenntnisse über die Umstände oder Details des Ereignisses. Wenn die Ereigniserkennungsanordnung 30 ein zweites Ereignis identifiziert, während der Pufferblock 20 bereits ein aktuelles Ereigniszeitfenster EZF eines ersten Ereignisses verarbeitet, kann die Ereigniserkennung 30 das aktuelle Ereigniszeitfenster EZF ändern. Zudem hat der Pufferblock 20 eine statisch, d.h. zur Kompilierungszeit bekannte, konfigurierbare Grenze, welche angibt, wie viele Zeiteinheiten vor dem aktuellen Zeitpunkt ein aktuelles Ereigniszeitfenster EZF höchstens beginnen kann. Diese Grenze wird als maximaler Vorereigniszeitpunkt bezeichnet. Die Ereigniserkennungsanordnung 30 kann den Start des aktuellen Ereigniszeitfensters EZF nicht auf einen Zeitpunkt ändern, welcher zeitlich vor dem maximalen Vorereigniszeitpunkt liegt. Zudem kann die Ereigniserkennungsanordnung 30 kein aktuelles Ereigniszeitfenster EZF festlegen, dessen Beginn zeitlich vor dem maximalen Vorereigniszeitpunkt liegt.

Somit wird das Verhalten des Pufferblocks 20 durch das aktuelle Ereigniszeitfenster EZF angezeigt. Erkennt die Ereigniserkennungsanordnung 30 ein Ereignis, für welches Daten dauerhaft aufgezeichnet werden müssen, dann benachrichtigt die Ereigniserkennungsanordnung 30 den Pufferblock 20 über das entsprechende aktuelle Ereigniszeitfenster EZF, welches einem Zeitbereich entspricht, für welchen die entsprechenden Datenrahmen DR persistent gespeichert werden sollen. Das Ende des aktuellen Ereigniszeitfensters EZF kann ein Zeitpunkt in der Zukunft sein. Wenn weitere Ereignisse erkannt werden, dann kann sich das aktuelle Ereigniszeitfenster EZF ändern. Dies kann beispielsweise der Fall sein, wenn zuerst ein weniger wichtiges Ereignis erkannt wird, gefolgt von einem schwerwiegenderen Ereignis, das als mit dem ersten Ereignis zusammenhängend betrachtet wird. Ein Beispiel könnte sein, dass das Fahrzeug als Ereignis A erkennt, dass es die Mittellinie der Straße überquert, d. h. ein Fehler in einer automatischen Lenkfunktion des Fahrzeugs vorliegt, und anschließend ein Airbagsteuergerät die Ereigniserkennungsanordnung 30 über einen Airbageinsatz als Folge eines Frontaufpralls als Ereignis B benachrichtigt. Das Ereignis A kann allein als relevant für eine Aufzeichnung der Fahrzeugdaten in einem ersten aktuellen Ereigniszeitfenster EZF mit einem Startzeitpunkt EZF_1, welcher 10 Sekunden vor Eintritt des Ereignisses A liegt, und einem Endzeitpunkt EZF_2, welcher 10 Sekunden nach dem Eintritt des Ereignisses A betrachtet werden. Das Ereignis B, welches deutlich schwerwiegender als Ereignis A ist, kann eine Aufzeichnung der Fahrzeugdaten in einem zweiten aktuellen Ereigniszeitfenster EZF mit einem Startzeitpunkt EZF_1, welcher 30 Sekunden vor Eintritt des Ereignisses B liegt, und einem Endzeitpunkt EZF_2, welcher 30 Sekunden nach dem Eintritt des Ereignisses B erfordern. Während also die Aufzeichnung der Fahrzeugdaten für das Ereignis A noch läuft, änderte die Ereigniserkennungsanordnung 30 das aktuelle Ereigniszeitfenster EZF für die Aufzeichnung der Fahrzeugdaten für das Ereignis B.

Im dargestellten Ausführungsbeispiel entspricht der Pufferblock 20 von außen betrachtet einer Sammlung von Zeigern DRZ auf Datenrahmen DR, welche der Pufferblock 20 für einige Zeit behält, bis der Pufferblock 20 diese entweder an die Speicherverwaltung des mindestens einen flüchtigen Speichers 50 zurückgibt o- der an die Datenaufzeichnungsanordnung 40 weiterleitet, welche die den weitergeleiteten Zeigern DRZ korrespondierenden Datenrahmen DR aus dem mindestens einen flüchtigen Speicher 50 ausliest und persistent in dem mindestens einen nichtflüchtigen Speicher 46 speichert. Die aktuelle Schreibpartition kann der Pufferblock 20 beispielsweise mit einem Schreibpartitionszeiger in einer atomaren Maschinenanweisung markieren. Intern umfasst der Pufferblock eine Reihe von Partitionen 21, 21A, 21B. Eine einzelne Partition 21, 21A, 21B entspricht bei- spielsweise einem Array von Datenrahmenzeigern DRZ, welche mit einigen Zusatzinformationen 26, welche das Zeitfenster 27 des korrespondierenden Datenrahmens DR betreffen, und Hilfsinformationen 60 angereichert sind, welche den Auslesevorgang der Referenzinformationen 25 erleichtern und beschleunigen. Sowohl die Größe als auch die Anzahl der Partitionen 21, 21A, 21B im Pufferblock 20 sind statisch konfigurierbar, d.h. zur Kompilierungszeit bekannt. Der Pufferblock 20 enthält statisch den Speicherbereich der Partitionen 21, 21 A, 21 B, d.h. der Pufferblock 20 ordnet die Partitionen 21, 21A, 21B statisch beim Programmstart zu. Größe und Anzahl der Partitionen 21, 21A, 21B kann so konfiguriert werden, dass die Anzahl der Datenrahmenzeiger DRZ unter allen Bedingungen ausreichend ist. Zusätzlich zu den Partitionen 21, 21A, 21B, welche die Datenrahmenzeiger DRZ enthalten, enthält der Pufferblock 20 eine materialisierte Darstellung des aktuellen Ereigniszeitfensters EZF.

Die Datenbereitstellunganordnung 10 fügt Datenrahmen DR, d.h. Referenzinformationen 25 der korrespondierenden Datenrahmen DR, in den Pufferblock 20 ein, während die Datenaufzeichnungsanordnung 40 die Referenzinformationen 25 der Datenrahmen DR aus dem Pufferblock 20 ausliest und die zugehörigen Datenrahmen DR persistent speichert. Daher wird hier die Datenbereitstellunganordnung 10 als “Schreiber” und die Datenaufzeichnungsanordnung 40 als “Leser” bezeichnet. Schreiber und Leser können Verfahren des Pufferblocks 20 gleichzeitig bzw. parallel aus verschiedenen Abläufen aufrufen und der innere Zustand des Pufferblocks 20 bleibt natürlich in allen möglichen gleichzeitigen bzw. parallelen Abläufen korrekt.

Der Pufferblock 20 trennt einen Schreibablauf der Schreibfunktion SF von einem Leseablauf der Lesefunktion LF über den exklusiven Besitz von Partitionen 21, 21A, 21B. Der Pufferblock 20 bestimmt eine der Partitionen 21, 21A, 21B als die aktuelle "Schreibpartition". Die Schreibfunktion SF besitzt diese aktuelle Schreibpartition exklusiv. Die Lesefunktion LF kann die aktuelle Schreibpartition weder lesen noch ändern, auch wenn die aktuelle Schreibpartition Datenrahmen DR enthält, welche das aktuelle Ereigniszeitfenster EZF zeitlich überlappen. Wenn die Schreibfunktion SF die aktuelle Schreibpartition vollständig mit Referenzinfor- mationen 25 gefüllt hat, sucht die Schreibfunktion SF mit dem oben beschriebenen Bestimmungsvorgang nach einer neuen aktuellen Schreibpartition und die bisherige Schreibpartition wird für die Lesefunktion LF zugänglich.

Wenn die Schreibfunktion SF die neue aktuelle Schreibpartition bestimmt hat, setzt die Schreibfunktion SF den Schreibpartitionszeiger des Pufferblocks 20 entsprechend einem atomaren Speichervorgang zurück. Dadurch werden Wettlaufbedingungen ausgeschlossen, welche dadurch verursacht werden können, dass die Lesefunktion LF auf eine veraltete zwischengespeicherte Version der aktuellen Schreibpartition zugreift, z. B. in einem CPU-Cache eines anderen CPU- Kerns.

Ebenso besitzt die Lesefunktion LF eine Partition 21, 21A, 21B, die als aktuelle Lesepartition bestimmt ist. Natürlich überlappt sich die aktuelle Lesepartition zeitlich mit dem aktuellen Ereigniszeitfenster EZF, sonst würde sich die Lesefunktion LF nicht für die enthaltenen Datenrahmen DR interessieren. Aufgrund des oben beschriebenen Bestimmungsvorgangs wird die Schreibfunktion SF ohne weitere Mittel zum Trennen der Abläufe niemals auf die aktuelle Lesepartition zugreifen. Wenn die Lesefunktion LF alle Referenzinformationen 25 der relevanten Datenrahmen DR aus der aktuellen Lesepartition ausgelesen hat, dann ist das Zeitfenster 22 der aktuellen Lesepartition entweder ungültig, weil alle in der aktuellen Lesepartition enthaltenen Datenrahmen DR ausgelesen wurden, oder das Zeitfenster 22 der aktuellen Lesepartition überlappt sich nicht mehr mit dem aktuellen Ereigniszeitfenster EZF. Die Lesefunktion LF sucht dann nach einer anderen Partition 21, 21A, 21B, welche sich mit dem aktuellen Ereigniszeitfenster EZF überlappt und nicht die aktuelle Schreibpartition ist. Wenn die Lesefunktion LF eine solche Partition 21, 21 A, 21 B findet, da der Pufferblock Referenzinformationen 25 von mehreren relevanten Datenrahmen DR zum aktuellen Ereignis enthält, dann bestimmt die Lesefunktion LF diese Partition 21, 21A, 21B zur neuen aktuellen Lesepartition. Da die Schreibfunktion SF nie auf die aktuelle Lesepartition zugreift, ist es auch nicht erforderlich, den Lesepartitionszeiger atomar zu speichern. In der überwiegenden Mehrheit der Aufrufe des Pufferblocks 20 fügt die Schreibfunktion SF einfach Referenzinformationen 25 zu einem neuen Datenrahmen DR an das Ende der aktuellen Schreibpartition an, wodurch möglicherweise das Zeitfenster 22 der aktuellen Schreibpartition erweitert wird. Ebenso liest die Lesefunktion LF einfach die Referenzinformationen 25 zum nächsten Datenrahmen DR aus der aktuellen Lesepartition aus. Auf diese Weise stören sich die Schreibfunktion SF und die Lesefunktion LF nie gegenseitig. Nur wenn die aktuelle Schreibpartition vollständig beschrieben ist oder die aktuelle Lesepartition vollständig ausgelesen wurde, kann es gleichzeitige Zugriffe auf Partitionen geben. Dies sind jedoch schreibgeschützte Nur- Lese- Zugriffe, welche die Zeitfenster 22 der Partitionen 21, 21 A, 21 B miteinander vergleichen. Aufgrund der Definition einer neuen exklusiven Lesepartition oder einer neuen exklusiven Schreibpartition sind die Lese- und Schreibabläufe jederzeit ordnungsgemäß voneinander getrennt.

Es kann mehr als einen Aufruf der Schreibfunktion SF geben. Um Wettlaufbedingungen aufgrund von zwei Aufrufen zu vermeiden, welche gleichzeitig eine neue aktuelle Schreibpartition definieren oder Statusinformationen innerhalb der aktuellen Schreibpartition überschreiben wollen, werden alle Zugriffe auf den Pufferblock 20 von einem Aufruf der Schreibfunktion SF nur unter exklusivem Besitz einer Sperre ausgeführt. Bei nur einer einzigen Schreibfunktion SF ist diese Sperre immer in einem einzigen atomaren Lesevorgang verfügbar. Andernfalls muss ein zweiter Aufruf warten, bis die derzeit aktive Schreibfunktion SF diese Sperre freigegeben hat. Da die unter der Sperre ausgeführten Aktionen sehr schnell sind, ist dies die bessere Lösung, als im Gegensatz dazu eine separate aktuelle Schreibpartition für jeden Aufruf der Schreibfunktion SF einzeln einzuführen. Es ist zu beachten, dass weder die Lesefunktion LF noch die Ereigniserkennungsanordnung 30 jemals diese Sperre erwerben müssen. Das bedeutet, dass diese Sperre nur Wartezyklen verursacht, falls zwei Aufrufe dabei sind, über die Schreibfunktion SF jeweils Referenzinformationen 25 eines neuen Datenrahmens DR gleichzeitig in den Pufferblock 20 einzufügen.

Die Ereigniserkennung kann in der Ereigniserkennungsanordnung 30 in einem separaten Ablauf ausgeführt werden. Die Ereigniserkennungsanordnung 30 interagiert nicht direkt mit der Verarbeitung der Datenrahmen DR. Die Ereigniserkennungsanordnung 30 kann jedoch jederzeit das im Pufferblock 20 gespeicherte aktuelle Ereigniszeitfenster festlegen, ändern oder ungültig machen. Die Schreibfunktion SF liest das aktuelle Ereigniszeitfenster EZF bei der Suche nach einer neuen Schreibpartition. Obwohl der gleichzeitige Zugriff der Ereigniserkennungsanordnung 30 und der Schreibfunktion SF auf das aktuelle Ereigniszeitfenster "nur" ein Lese-/Schreibkonflikt ist, stellt der Pufferblock 20 sicher, dass die Schreibfunktion SF kein teilweise geschriebenes und damit willkürlich beschädigtes aktuelles Ereigniszeitfenster EZF liest, während die Ereigniserkennungsanordnung 30 das aktuelle Ereigniszeitfenster EZF ändert. Wenn es mehr als einen Aufruf der Schreibfunktion SF gibt, kann nur einer von ihnen die beschriebene exklusive Sperre erworben haben. Daher kann nur eine Schreibfunktion SF mit der Ereigniserkennungsanordnung 30 für den gleichzeitigen Zugriff auf das aktuelle Ereigniszeitfenster EZF in Konflikt stehen, während andere Aufrufe versuchen, die Sperre zu erhalten. Der Pufferblock 20 löst den Konflikt zwischen der Ereigniserkennungsanordnung 30 und der Schreibfunktion SF, indem das aktuelle Ereigniszeitfenster EZF als atomarer Wert, d.h. in einer Maschinenanweisung, gespeichert wird. Daher schreibt die Ereigniserkennungsanordnung 30 das neue aktuelle Ereigniszeitfenster EZF in einem einzelnen atomaren Vorgang. Die Schreibfunktion SF liest entweder das alte aktuelle Ereigniszeitfenster EZF oder das neue aktuelle Ereigniszeitfenster EZF, aber nie ein beschädigtes, teilweise geschriebenes aktuelles Ereigniszeitfenster EZF.

Bei der Suche nach einer neuen Schreibpartition erstellt die Schreibfunktion SF zunächst eine ablauflokale Kopie des aktuellen Ereigniszeitfensters EZF mit Hilfe eines atomaren Lesevorgangs. Anschließend arbeitet die Schreibfunktion SF nur mit der ablauflokalen Kopie, bis eine neue Schreibpartition gefunden ist. Auf diese Weise ist es möglich, dass die Schreibfunktion SF mit Hilfe eines veralteten aktuellen Ereigniszeitfensters EZF nach einer neuen Schreibpartition sucht. Dieses Verhalten ist jedoch identisch mit dem Fall, dass die Schreibfunktion SF zuerst die Schreibpartition aktualisiert und die Ereigniserkennungsanordnung 30 danach das aktuelle Ereigniszeitfenster EZF ändert.

Wie bei dem beschriebenen Lese-/Schreibkonflikt zwischen der Ereigniserkennungsanordnung 30 und der Schreibfunktion SF weist auch die Lesefunktion LF einen Lese-/Schreibkonflikt mit der Ereigniserkennungsanordnung 30 für Zugriffe auf das aktuelle Ereigniszeitfenster EZF des Pufferblocks 20 auf. Die Lesefunktion LF muss das aktuelle Ereigniszeitfenster EZF kennen, um eine Partition 21, 21A, 21B zu finden, welche Datenrahmen DR enthält, die sich mit dem aktuellen Ereigniszeitfenster EZF überlappen, und falls diese Partition 21, 21A, 21B nicht vollständig im aktuellen Ereigniszeitfenster EZF enthalten ist, um die relevanten Datenrahmen DR innerhalb dieser Partition zu identifizieren bzw. zu bestimmen. Natürlich liest die Lesefunktion LF kein teilweise geschriebenes beschädigtes aktuelles Ereigniszeitfenster EZF, während die Ereigniserkennungsanordnung 30 das aktuelle Ereigniszeitfenster EZF gleichzeitig ändert.

Wie oben ausgeführt ist, aktualisiert die Ereigniserkennungsanordnung 30 das aktuelle Ereigniszeitfenster EZF atomar. Ebenso liest die Lesefunktion LF das aktuelle Ereigniszeitfenster EZF atomar zu Beginn eines jeden Verfahrensaufrufs des Pufferblocks 20 und speichert es in einer ablauflokalen Kopie. Während der Ausführung des Auslesevorgang verwendet die Lesefunktion LF diese Kopie überall dort, wo das aktuelle Ereigniszeitfenster EZF benötigt wird.

Es ist möglich, dass sich das im Pufferblock 20 gespeicherte aktuelle Ereigniszeitfenster EZF von der ablauflokalen Kopie der Lesefunktion LF unterscheidet. Die Lesefunktion LF beendet den aktuellen Auslesevorgang mit dem inzwischen veralteten aktuellen Ereigniszeitfenster EZF und leitet somit höchstens die Referenzinformationen 25 von einem Datenrahmen DR, dessen Zeitfenster 22 sich außerhalb des aktuellen Ereigniszeitfensters EZF befindet, zur Datenaufzeichnungsanordnung 40 weiter. Dieses Verhalten ist jedoch so, als ob die Ereigniserkennungsanordnung 30 das neue aktuelle Ereigniszeitfenster EZF erst festgelegt hätte, nachdem die Lesefunktion LF diesen Datenrahmen DR verarbeitet hat und ist somit tolerierbar.

Zu Beginn eines jeden Aufrufs des Pufferblocks 20 erstellt die Lesefunktion LF nicht nur eine ablauflokale Kopie des aktuellen Ereigniszeitfensters EZF, sondern prüft auch, ob sich das aktuelle Ereigniszeitfenster EZF seit dem vorherigen Aufruf geändert hat. Wenn sich das aktuelle Ereigniszeitfenster EZF geändert hat, prüft die Lesefunktion LF zunächst, ob die aktuelle Lesepartition noch mit dem neuen aktuellen Ereigniszeitfenster überlappt. Ist dies nicht der Fall, sucht die Lesefunktion LF nach einer neuen aktuellen Lesepartition, wie oben beschrieben ist. Wenn sich die aktuelle Lesepartition immer noch mit dem neuen aktuellen Ereigniszeitfenster EZF überlappt, startet die Lesefunktion LF den Auslesevorgang erneut und beginnt die aktuelle Lesepartition von Anfang an erneut zu lesen.