WO2022063529A1 - Verfahren und vorrichtung zur aufzeichnung von ereignisdaten in einem fahrzeug - Google Patents

Verfahren und vorrichtung zur aufzeichnung von ereignisdaten in einem fahrzeug Download PDF

Info

Publication number
WO2022063529A1
WO2022063529A1 PCT/EP2021/073997 EP2021073997W WO2022063529A1 WO 2022063529 A1 WO2022063529 A1 WO 2022063529A1 EP 2021073997 W EP2021073997 W EP 2021073997W WO 2022063529 A1 WO2022063529 A1 WO 2022063529A1
Authority
WO
WIPO (PCT)
Prior art keywords
current
event
data
partition
time window
Prior art date
Application number
PCT/EP2021/073997
Other languages
English (en)
French (fr)
Inventor
Andreas Markus BRODT
Original Assignee
Robert Bosch Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch Gmbh filed Critical Robert Bosch Gmbh
Priority to US18/006,666 priority Critical patent/US20230282044A1/en
Priority to CN202180066371.8A priority patent/CN116210037A/zh
Publication of WO2022063529A1 publication Critical patent/WO2022063529A1/de

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/08Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
    • G07C5/0841Registering performance data
    • G07C5/085Registering performance data using electronic data carriers

Definitions

  • the invention is based on a method for recording event data in a vehicle.
  • the present invention also relates to a device and a computer program product for carrying out such a method for recording event data in a vehicle and a computer-readable storage medium on which the computer program product is stored.
  • vehicle data is continuously received from at least one vehicle system and written as event data in data frames with a predetermined size, with the individual data frames being stored in at least one volatile memory.
  • the stored data frames are managed and kept available in the at least one volatile memory until the event data stored in the individual data frames is older than a predetermined maximum occurrence time or is persistently stored in at least one non-volatile memory in response to a recognized predetermined event.
  • a device for carrying out such a method for recording event data generally comprises a data provision arrangement, an event recognition arrangement and a data recording arrangement. Disclosure of Invention
  • the method for recording event data in a vehicle with the features of independent claim 1 has the advantage that there is only one current write partition, which only one function can access exclusively, so that no other functions access the current write partition and its data content can change.
  • Embodiments of the present invention provide a method for recording event data in a vehicle, vehicle data being continuously received from at least one vehicle system and written as event data in data frames with a predetermined size.
  • the individual data frames are stored in at least one volatile memory, with the stored data frames being managed and kept available in the at least one volatile memory until the event data stored in the individual data frames are older than a specified maximum occurrence time or in response to a recognized specified Event are stored persistently in at least one non-volatile memory.
  • a plurality of partitions with a predetermined size are provided, one of the partitions being determined as the current write partition, into which the received reference information of the individual data frames is written, depending on at least one write criterion.
  • a device for carrying out such a method for recording event data in a vehicle which comprises a data supply arrangement, a buffer block, an event recognition arrangement and a data recording arrangement.
  • the data provision arrangement is designed to receive vehicle data to be recorded continuously from at least one vehicle system and to write it as event data in data frames with a predetermined size and to store the individual data frames in at least one volatile memory.
  • the buffer block is designed to manage the stored data frames and while in the keeping at least one volatile memory available until the event data stored in the individual data frames are older than a specified maximum occurrence time or are persistently stored in at least one non-volatile memory in response to a specified event recognized by the event detection arrangement.
  • the buffer block includes a write function and a plurality of partitions with a predetermined size, the write function being designed to determine one of the partitions as the current write partition as a function of at least one write criterion and to write reference information of the individual data frames received from the data provision arrangement into the current write partition.
  • a computer program product with a program code that is stored on a machine-readable carrier, such as a semiconductor memory, a hard disk memory or an optical memory and is used to carry out the evaluation when the computer program is executed, is also advantageous.
  • the data provision arrangement can be understood to mean a processing component which includes all processing steps from the acquisition of the original vehicle data to the organization and storage of the vehicle data as event data in volatile memory blocks, so that the event data is kept available in the at least one volatile memory for a limited period of time be able.
  • the event recognition system can be understood as a processing component that continuously monitors the state of the vehicle and decides when a preconfigured situation or a specified event has occurred, which requires the permanent storage of specified vehicle data.
  • a predefined event can be, for example, a detected malfunction of one of the vehicle systems or a detected collision of the vehicle with a stationary obstacle or trade another vehicle.
  • the data recording arrangement can be understood to mean a processing component which includes the processing steps to retrieve the vehicle data available in the at least one volatile memory, possibly carry out further data transformations, such as encryption, and finally store the vehicle data persistently in at least one non-volatile memory .
  • the data provision arrangement, the event recognition arrangement and the data recording arrangement can each have at least one interface, which can be configured as hardware and/or software.
  • the at least one interface can be part of what is known as a system ASIC, for example, which contains a wide variety of functions of the data provision arrangement.
  • the interfaces can be separate integrated circuits or to consist at least partially of discrete components.
  • the interfaces can be software modules which are present, for example, on a microcontroller alongside other software modules.
  • the data provision arrangement can receive the vehicle data to be recorded from the at least one vehicle system, which can be embodied, for example, as an environment detection system or as a personal protection system or as a driving dynamics system or as a braking system.
  • the data provision arrangement can be connected to the at least one volatile memory via at least one interface in order to keep the received vehicle data available in the at least one volatile memory for a limited period of time.
  • the data provision arrangement can include further components for preparing and pre-processing the received vehicle data.
  • the event detection arrangement can receive vehicle data or information from the at least one vehicle system via the at least one interface and evaluate the received vehicle data or information to detect relevant events.
  • the data provision arrangement or the event recognition arrangement can each be equipped with a vehicle data bus are coupled so that the data provision arrangement or the event detection arrangement can receive vehicle data and information from a variety of vehicle systems that are connected to the vehicle data bus.
  • the data recording arrangement can be connected to the at least one volatile memory via the at least one interface in order to read out the data to be stored persistently.
  • the data recording arrangement can be connected to the at least one non-volatile memory via the at least one interface in order to store the data to be persistently stored in the at least one non-volatile memory.
  • the buffer block can be understood to mean a component which establishes the connection between the data provision arrangement, the event recognition arrangement and the data recording arrangement.
  • the buffer block maintains the vehicle data made available by the data provision arrangement in the at least one volatile memory until the data is too old to be relevant for an event.
  • the buffer block releases the memory area that is used in the at least one volatile memory for the now obsolete vehicle data, so that this memory area can be reused by the data provision arrangement to store more recent vehicle data.
  • the event recognition arrangement notifies the buffer block that all vehicle data from a specific acquisition time window is to be made available to the data recording arrangement.
  • the buffer block ensures that all vehicle data of the specified current event time window remains available until the data recording arrangement has completely persistently stored this vehicle data in the at least one non-volatile memory.
  • This also includes the borderline case in which the data recording arrangement stores the vehicle data so slowly that the vehicle data for more recent events are now out of date. Even then, the buffer block must not free up or overwrite the corresponding memory area in the at least one volatile memory.
  • the data provision arrangement, the event detection arrangement and the data recording arrangement can be distributed over a number of components in the vehicle which are connected to one another via a suitable vehicle network infrastructure.
  • the data provision arrangement can be implemented on several "data sources” such as computer units, which can forward the vehicle data to other devices in the vehicle, which can carry out the event detection and further post-processing steps and contain the buffer block, while further post-processing steps and data storage are carried out on another computer unit can become.
  • Data delivery, event detection and data recording can be performed in separate processes.
  • the device or hardware on which the method for recording event data in a vehicle is executed can provide multiple CPU cores or multiple processors, which can actually execute these processes in parallel.
  • the buffer block can separate calls by the data recording arrangement, the event detection arrangement and the data providing arrangement, so that the results are always correct in each parallel execution.
  • the data provision arrangement can call up the buffer block in several parallel processes.
  • the data recording arrangement is executed in a single flow, ie the buffer block does not have to separate individual calls from the data recording arrangement.
  • the interface methods provided by the buffer block are called by the interface components and thus run in their respective processes.
  • one of the other partitions can be determined as the current read partition in response to a request and as a function of at least one predetermined read criterion, which includes at least one current event time window for which the event data is to be persistently recorded.
  • the current write partition which can be marked by a write partition pointer, for example, cannot be determined as the current read partition, which can be marked by a read partition pointer, for example.
  • reference information contained in the current read partition can be extracted from data frames read and forwarded, which contain event data to be recorded persistently. The data frames corresponding to the forwarded reference information can be persistently stored in the at least one non-volatile memory.
  • the single read partition, which only one function can access exclusively, can advantageously prevent other functions from accessing the current read partition and being able to change its data contents.
  • a start time of the current event time window can be specified as a time stamp in relation to a current zero reference time.
  • An end time of the current event time window can be specified as a time difference to the start time, whereby the current zero reference time can be redefined if necessary.
  • a first zero reference time can correspond to a start time of the vehicle. The method for recording event data in a vehicle does not have to deal with an event that occurs prior to the start of the current trip. Therefore, the zero reference time does not have to be before the start of the journey.
  • the current zero reference time can be redefined, for example, if a new current event time window cannot be represented with the current zero reference time because the start time of the new current event time window is too far away from the current zero reference time.
  • a time window can usually be represented as two absolute points in time, ie as two time stamps, a start time stamp and an end time stamp. 32 bits are required to represent such a time stamp, so that 64 bits are required to represent a time window.
  • a 32-bit processor can only read or write 32 bits atomically, i.e. in a machine instruction, so 64 bits require more than one machine instruction, which is not atomic.
  • the start timestamp and a time difference relative to the start timestamp are used instead of two timestamps to define the current event time window.
  • the length of the current event window is expected to be in the order of minutes.
  • bits can be saved by storing only the start timestamp of the current event window and the duration of the current event window.
  • the current event time window can be read or stored with an atomic machine instruction with a resolution of 0.1s with 17 bits for the start time stamp and with 14 bits for the duration or length of the current event time window.
  • the start time of the current event time window can be expressed up to a maximum value of 3.6 hours after the current zero reference time and the duration or length of the current event time window can be expressed up to a maximum value of 27.3 minutes or 1,638 seconds.
  • the individual data frames can relate to a time window.
  • the reference information of the individual data frames can each include a corresponding memory area and the corresponding time window with a start time stamp and an end time stamp of the individual data frames, in which at least one data segment of the event data contained in the corresponding data frame was generated or recorded. This makes it easy and quick to check whether the data frame contains event data or vehicle data whose generation or acquisition overlaps with the current event time window.
  • the start time stamp and the end time stamp of the individual data frames can be related to the current zero reference time.
  • a time window can be assigned to each of the individual partitions.
  • an oldest start time stamp of reference information of a corresponding data frame contained in the partition can be used as the start time stamp of the time window of a corresponding partition.
  • a most recent end time stamp of reference information of a corresponding data frame contained in the partition can be used as the end time stamp of the time window of the corresponding partition. This makes it easy and quick to check whether the corresponding partition overlaps with the current event time window.
  • the reference information can be read from at least one data frame from the current read partition whose time window overlaps with the current event time window.
  • the time window of the at least one data frame in the reference information can be invalidated after the reference information has been read out. This can prevent the reference information from being read multiple times from a data frame and the corresponding data frame being persistently stored multiple times in the at least one non-volatile memory.
  • the existing current event time window can be stored locally before the determination of the current read partition.
  • the locally stored current event time window can be compared with the current event time window and the current event time window can be stored locally if it differs from the locally stored current event time window.
  • it can be checked whether the time window of the current reading partition and the new current event time window overlap if the locally stored current event time window has been changed.
  • the reading partition scavenging process can be restarted when the current reading partition overlaps with the changed current event time window. That means the current reading partition will be read again from the beginning.
  • a new current reading partition may be determined if the current reading partition does not overlap with the changed current event time window. This means that the reading process of the current reading partition, which corresponds to the now obsolete current event time window, is aborted and not restarted.
  • a search can be made for a new write partition as a function of the at least one predetermined write criterion if the vehicle is restarted or the current write partition has been completely written with reference information.
  • a set of partitions can be determined which do not have a valid time window. This means that these partitions do not contain any data frame reference information, so no conflict can be caused between determining the current writing partition and determining the current reading partition. Because these partitions do not contain any data frame reference information, no attempt is made to use these partitions as the current read partitions. Therefore, one of these partitions can be designated as the current write partition.
  • partitions can be determined that have a valid time window that is completely older than the maximum occurrence time and does not overlap an existing current event time window. This means that no event that can occur in the future still needs the data frames of the respective partition, and that the partition is currently not relevant as a read partition, and not all reference information from data frames that overlap the current event window has been completely read out , even if they already extend beyond the maximum pre-event time. From this set of partitions, a partition that does not have a valid timeslot or a partition whose corresponding valid timeslot has the oldest start timestamp can be determined as the current write partition. In addition, before determining the current write partition, the existing current event time window can be stored locally.
  • the write partition pointer may be reset according to an atomic machine instruction.
  • the received reference information of the individual data frames can be written to the current write partition in any chronological order. In this way, subsequences of the written reference information items of the individual data frames that are sorted at random in terms of time can be determined and marked in the write partition. For this purpose, the written reference information of the individual data frames can be numbered in ascending order according to their writing order.
  • each time reference information of a new data frame is written, the time window of the new data frame can be compared with the time window of the data frame whose reference information was last written to the write partition.
  • the start time stamp of the new data frame can be compared with the start time stamp of the last data frame written, with a randomly sorted current start time sub-sequence being recognized and continued if the start time stamp of the new data frame is younger than the start time stamp of the last data frame written is.
  • a new start time subsequence can be started and its start time stamp marked by storing the corresponding numbering of the new data frame if the start time stamp of the new data frame is older than the start time stamp of the last written data frame.
  • a first start time subsequence can start with the start time stamp of the first data frame written. This means that the smallest number of the ascending numbering also marks the start of the first randomly sorted current start time subsequence.
  • the end time stamp of the new data frame can be compared with the end time stamp of the last data frame written, with a chronologically randomly sorted current end time subsequence being recognized and continued if the end time stamp of the new data frame is younger than the end time stamp of the last one written data frame is.
  • a new end time subsequence can be started and its end timestamp marked by storing the corresponding numbering of the new data frame.
  • a first end time subsequence can start with the end time stamp of the first data frame written. This means that the smallest number of the ascending numbering marks the start of the first randomly sorted current end time subsequence at the same time.
  • reference information to be read from the current reading partition can be determined from at least one data frame as a function of the time reference of the at least one randomly sorted start time subsequence and/or the at least one randomly sorted end time subsequence of the current reading partition to the current event time window.
  • the introduction of the chronologically randomly sorted start time subsequences and the chronologically randomly sorted end time subsequences can accelerate the finding of reference information to be read from data frames, since the reference information from all of the data frames contained in the current read partition does not always have to be checked.
  • the buffer block can include a read function, which is executed in response to a request from the data recording system and as a function of at least one predetermined read criterion, which includes at least one current event time window for which the event data is to be persistently recorded, one of the to determine other partitions as the current reading partition and to read out reference information contained in the current reading partition from data frames and forward it to the data recording arrangement, which contains event data to be recorded persistently.
  • the data recording arrangement can be designed to persistently store the data frames corresponding to the forwarded reference information in the at least one non-volatile memory.
  • the write function can be further implemented to write the received reference information of the individual data frames in any chronological order in the current write partition and to determine and mark subsequences of the written reference information of the individual data frames in the current write partition that are randomly sorted in terms of time.
  • the event detection arrangement can be designed to continuously monitor the state of the vehicle and to decide when a specified event has occurred which requires the persistent storage of the corresponding event data of the at least one vehicle system.
  • the event detection arrangement can be further designed to output the current event time window corresponding to the detected event to the buffer block, for which the event data is to be persistently recorded, with a start time of the current event time window not being before the maximum occurrence time.
  • the event detection arrangement can be further designed to specify the start time of the current event time window as a time stamp in relation to a current zero reference time and an end time of the current event time window as a time difference to the start time, wherein the buffer block can be designed to redefine the current zero reference time if necessary.
  • FIG. 1 shows a schematic flowchart of an exemplary embodiment of a method according to the invention for recording event data in a vehicle.
  • FIG. 2 shows a schematic representation of a first exemplary embodiment of a partition for the method according to the invention for recording event data in a vehicle from FIG.
  • FIG. 3 shows a schematic representation of a second exemplary embodiment of a partition for the method according to the invention for recording event data in a vehicle from FIG.
  • FIG. 4 shows a schematic representation of a first exemplary embodiment of a current event time window and several exemplary embodiments of partition time windows for the method according to the invention for recording event data in a vehicle from FIG. 1 .
  • FIG. 5 shows a tabular representation of a memory area during a redefinition of a current zero reference time for the method according to the invention for recording event data in a vehicle from FIG. 1.
  • FIG. 6 shows a schematic flowchart of a process for determining a current write partition for the method according to the invention for recording event data in a vehicle from FIG. 1.
  • FIG. 7 shows a schematic block diagram of an exemplary embodiment of a device according to the invention for carrying out the method according to the invention for recording event data in a vehicle from FIG. 1.
  • vehicle data is continuously received by at least one vehicle system 3 in a step S100 and written as event data in data frames DR with a predetermined size in step S110.
  • the individual data frames DR are stored in step S120 in at least one volatile memory 50, the stored data frames DR being managed and 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 predefined maximum occurrence time or are persistently stored in at least one non-volatile memory 46 in response to a detected predefined event.
  • step S130 a plurality of partitions 21, 21A, 21B with a predetermined size are provided, in step S140 depending on at least one writing criterion one of the partitions 21, 21A, 21B is determined as the current writing partition into which the received reference information 25 of the individual data frames DR are written in step S150.
  • step S170 reference information 25 contained in the current reading partition is read out and forwarded from data frames DR, which contain event data to be recorded persistently, and in step S180 the data frames DR corresponding to the forwarded reference information 25 are persistently stored in the at least one non-volatile memory 46.
  • the individual data frames DR each relate to a time window 27.
  • the reference information 25 of the individual data frames DR each include a corresponding memory area, which is preferably represented by a data frame pointer DRZ, and the corresponding Time window 27 with a start time stamp 28 and an end time stamp 29 of the individual data frames DR, in which at least one data segment of the event data contained in the corresponding data frame DR was generated or recorded.
  • the individual partitions 21, 21A, 21B are each assigned a time window 22, with the start time stamp 23 of the time window 22 of a corresponding partition 21, 21A, 21B being an oldest start time stamp 28 from in the partition 21 included reference information 25 a corresponding data frame DR is used.
  • a most recent end time stamp 29 of reference information 25 contained in the partition 21, 21A, 21B of a corresponding data frame DR is used as the end time stamp 24 of the time window 22 of the corresponding partition 21, 21A, 21B.
  • the fully written partitions 21A, 21B shown each include the reference information from fifteen data frames DR, which each relate to a corresponding time window 27.
  • the time window 22 of the illustrated partitions 21A, 21B each have the value “3” of the start time stamp 28 of a first data frame DR, which corresponds to the oldest start time stamp 28 in the illustrated partitions 21A, 21B.
  • the illustrated partitions 21A, 21B each have, for example, the value “37” of the end timestamp 29 of the last data frame DR as the end timestamp 24, which corresponds to the youngest end timestamp 29 in the illustrated partitions 21A, 21B.
  • a start time EZF_1 of the current event time window EZF shown in FIG. 4 is specified as a time stamp in relation to a current zero reference time B shown in FIG.
  • An end time EZF_2 of the current event time window EZF is specified as a time difference from the start time EZF_1, with the current zero reference time B being redefined if necessary.
  • the current zero reference time B is redefined if a new current event time window EZF cannot be represented with the current zero reference time B because the start time EZF_1 of the new current event time window EZF is too far away from the current zero reference time B.
  • the start time stamp 28 and the end time stamp 29 of the individual data frames DR and thus also the start time stamp 23 and the end time stamp 24 of the individual partitions 21, 21A, 21B are related to the current zero reference time B.
  • the process for redefining the zero reference time B will now be described with reference to FIG.
  • the two most recently used zero reference times A, B are each stored at a memory location epoch A, epoch B, with a marking M in a corresponding memory Place is displayed on which of the two stored zero reference times A, B the start time EZF_1 of the current event time window EZF refers.
  • an oldest zero reference time corresponds to a start time of the vehicle.
  • the current event time window EZF is encoded in 32 bits.
  • Bit 0 to 13 represent the duration or length of the current event time window EZF
  • bit 14 to 30 represent the start time EZF_1 of the current event time window EZF as a time difference between the start time EZF_1 of the current event time window EZF and the current zero reference time B.
  • Bit 31 represents the marking of the currently valid one Zero reference time B. For example, the validity of the zero reference time A stored in storage location epoch A can be marked by a logical value "0”, and the validity of the zero reference time B stored in storage space epoch B can be marked by a logical value "1", for example.
  • the second line of the table shows a current state of the corresponding memory area.
  • an older, first zero reference time A with the exemplary value 2:00:00:000 is stored in memory space Epoch A
  • a younger second zero reference time B with value 8:00:00:000 is stored in memory space Epoch B
  • the marking M with the value "B" shown indicates that the more recent second zero reference time B stored in the memory location Epoch B corresponds to the current zero reference time B.
  • an oldest zero reference time corresponds to a start time of the vehicle.
  • the zero reference time B currently used is redefined, first the older zero reference time A of the two stored zero reference times A, B is overwritten with a new zero reference time C.
  • the third line of the table shows this state of the corresponding memory area. This means that the new zero reference time point C with the exemplary value 16:00:00:000 is stored in memory location epoch A.
  • the now older second zero reference time B with the value 8:00:00:000 is still stored in memory location Epoch B, with the marking M with the represented value "B" still showing that the second zero reference time B stored in memory location Epoch B corresponds to the current Zero reference time B corresponds.
  • the new zero reference time point C is marked as the current zero reference time point C in an atomic operation.
  • the fourth line of the table shows this state of the corresponding memory area. This means that the new zero reference time point C with the exemplary value 16:00:00:000 is stored in memory location epoch A.
  • the now older second zero reference time B with the value 8:00:00:000 is still stored in memory location Epoch B, whereby the marking M with the value "A" shown now indicates that the new zero reference time C stored in memory location Epoch A now corresponds to the current zero reference time C corresponds.
  • the new current event time window EZF related to the new current zero reference time C is written atomically.
  • the fifth row of the table shows the state of the corresponding memory area after the redefinition of the current zero reference time C.
  • step S140 for determining a current write partition for the method 100 according to the invention for recording event data in a vehicle is described below with reference to FIG. 6 .
  • a new writing partition is searched for when the vehicle is restarted or the current writing partition has been completely written with reference information 25 .
  • the current event time window EZF if present, is stored locally before the current write partition is determined.
  • the determination process 140 is started in step S200.
  • step S210 it is checked whether at least one of the partitions 21, 21A, 21B does not have a valid time window 22.
  • step S220 one of these partitions 21, 21A, 21B is determined as the current write partition and the determination process is ended. If no partition 21, 21 A, 21 B with an invalid time window 22 is detected in step S210, then in step S230 it is checked whether at least one of the partitions 21, 21 A, 21 B has a valid time window 22, which is completely older than the maximum occurrence time is. If no such partition 21, 21A, 21B is recognized in step S230, then the determination process 140 returns to the check in step S210. If such a partition 21, 21A, 21B with a valid time window 22 is recognized in step S230, then in step S240 it is checked whether this partition overlaps an existing current event time window EZF or not.
  • step S240 If it is determined in step S240 that this partition 21, 21A, 21B overlaps an existing current event time window EZF, then the determination process 140 also returns to the check in step S210. If no current event time window EZF is recognized in step S240 or it is determined that this partition 21, 21A, 21B does not overlap an existing current event time window EZF, then in step S250 this partition 21, 21 A, 21 is added to a set of partitions 21, 21 A , 21B added. In step S260 it is checked whether further partitions 21, 21A, 21B are present. If this is the case, then in step S280 the next partition 21, 21A, 21B is selected and the determination process 140 continues with the check in step S210.
  • step S270 the partition 21, 21A, 21B is selected from the set of partitions 21, 21A, 21B whose corresponding valid time window 22 has the oldest start time stamp 23. This selected partition 21, 21A, 21B is then determined as the current writing partition in step S220, and the determination process is ended.
  • the received reference information 25 of the individual data frames DR is written to the current write partition in any chronological order, randomly sorted subsequences of the written reference information 25 of the individual data frames DR being determined and marked in the write partition.
  • the individual partitions 21, 21B include additional auxiliary information 60, as can also be seen from FIG.
  • the written reference information 25 of the individual data frames DR of the partition 21B shown in FIG. 3 includes a numbering 62. This means that the reference information 25 of the individual data frames DR of the partition shown in FIG 21B are numbered in ascending order according to their writing order.
  • the time window 27 of the new data frame DR is compared to the time window 27 of the data frame DR whose reference information 25 was previously written last to the current write partition.
  • the start time stamp 28 of the new data frame DR is compared with the start time stamp 28 of the last data frame DR written.
  • a temporal randomly sorted current start time subsequence 64 recognized and continued if the start time stamp 28 of the new data frame DR is younger than the start time stamp 28 of the last data frame DR written.
  • a new start time subsequence 64 is started and its start time stamp 28 is marked by storing the corresponding numbering 62 of the new data frame DR if the start time stamp 28 of the new data frame DR is older than the start time stamp 28 of the last data frame DR written.
  • a first start time subsequence 64 starts with the start time stamp 28 of the first data frame DR written and the number “0”.
  • the end time stamp 29 of the new data frame DR is compared with the end time stamp 29 of the last data frame DR written.
  • a current end time subsequence 66 sorted at random in terms of time is recognized and continued if the end time stamp 29 of the new data frame DR is younger than the end time stamp 29 of the last data frame DR written.
  • a new end time subsequence 64 is started and its end time stamp 29 is marked by storing the corresponding numbering 62 of the new data frame DR if the end time stamp 29 of the new data frame DR is older than the end time stamp 29 of the last data frame DR written.
  • a first end time subsequence 66 starts with the end time stamp 29 of the first data frame DR written.
  • the partition 21 B shown by way of example includes four start time subsequences 64.
  • the first start time subsequence 64 starts with a lowest number “0” of the ascending numbering 62.
  • a second start time sequence 64 starts with a number “3”, , since the start time stamp 28 of the corresponding data frame DR with the value “5” is older than the start time stamp 28 with the value “7” of the previous data frame DR.
  • a third start time subsequence 64 starts with a number “7” of the ascending numbering 62, since the start time stamp 28 of the corresponding data frame DR with the value “7” is older than the start time stamp 28 with the value “13” of the previous data frame DR.
  • a fourth start time subsequence 64 starts with a number “13” of the ascending numbering 62, since the start time stamp 28 of the corresponding data frame DR with the value “28” is older than the start time stamp 28 with the value “29” of the previous data frame DR is.
  • the partition 21B shown as an example also includes five end time subsequences 66.
  • the first end time subsequence 66 starts with the lowest number “0” of the ascending numbering 62.
  • a second end time sequence 66 starts with a number “1”, since the end time stamp 29 of the corresponding data frame DR with the value "19” is older than the end time stamp 29 with the value "20" of the previous data frame DR.
  • a third end time subsequence 66 starts with a number “5” since the end time stamp 29 of the corresponding data frame DR with the value “19” is older than the end time stamp 29 with the value “27” of the previous data frame DR.
  • a fourth end time subsequence 66 starts with a number “7” since the end time stamp 29 of the corresponding data frame DR with the value “12” is older than the end time stamp 29 with the value “30” of the previous data frame DR.
  • a fifth end time subsequence 66 starts with a number “11” since the end time stamp 29 of the corresponding data frame DR with the value “25” is older than the end time stamp 29 with the value “28” of the previous data frame DR.
  • FIG. 4 shows four time windows 22A, 22B, 22C, 22D of partitions 21, 21A, 21B, which overlap with the current event time window EZF. Since all of the time windows 22A, 22B, 22C, 22D shown overlap the current event time window EZF, all of the corresponding partitions 21, 21A, 21B are suitable for being determined as the current reading partition. Since the time window 22A, 22B, 22C, 22D of the current reading partition overlaps the current event time window EZF, at least one data frame DR of the current reading partition also overlaps the current event time window EZF.
  • the reference information 25 from at least one data frame DR is read from the current read partition whose time window 27 overlaps with the current event time window EZF. In this case, the time window 27 of the at least one data frame DR in the reference information 25 is made invalid after the reference information 25 has been read out.
  • the current event time window EZF that is present is stored locally, with the locally stored current event time window EZF with the current event time window before each reading process of the reference information 25 from at least one data frame DR EZF is compared.
  • the current event time window EZF is stored locally if it differs from the locally stored current event time window EZF.
  • it is checked whether the time window 22 of the current reading partition and the new current event time window EZF overlap if the locally stored current event time window EZF was changed. The process of reading out the reading partition is restarted when the current reading partition overlaps with the changed current event time window EZF.
  • a new current reading partition is determined if the current reading partition does not overlap with the changed current event time window EZF.
  • reference information 25 to be read from the current reading partition is determined from at least one data frame DR depending on the time reference of the at least one randomly sorted start time subsequence 64 and/or the at least one randomly sorted end time subsequence 66 of the current reading partition to the current event time window EZF .
  • the start time stamp 23 of a first time window 22 of a corresponding partition 21, 21A, 21B is outside of the current event time window EZF and the end time stamp 24 of the first time window 22 of the corresponding partition 21, 21A, 21B is inside of the current event time window EZF.
  • the partition 21, 21A, 21B can therefore contain data frames DR which are too old for the current event time window EZF, but no data frames DR which are too young for the current event time window EZF.
  • the start time stamp 23 and the end time stamp 24 of a second time window 22B of a corresponding partition 21, 21A, 21B are within the current event time window EZF. Therefore contains the Partition 21, 21A, 21B neither data frames DR, which are too old for the current event time window EZF, nor data frames DR, which are too young for the current event time window EZF, so that the reference information 25 from all data frames DR in the corresponding partition 21, 21A , 21B are read out and forwarded without further checking, and the corresponding data frames DR are persistently stored.
  • the start time stamp 28 of a third time window 22C of a corresponding partition 21, 21A, 21B is within the current event time window EZF and the end time stamp 29 of the third time window 22C of the corresponding partition 21, 21A, 21B is outside of the current one Event time window EZF.
  • the partition 21, 21A, 21B can therefore contain data frames DR which are too young for the current event time window EZF, but no data frames DR which are too old for the current event time window EZF.
  • the start time stamp 28 and the end time stamp 29 of a fourth time window 22D of a corresponding partition 21, 21A, 21B are outside of the current event time window EZF.
  • the partition 21, 21A, 21B can therefore contain data frames DR that are too young for the current event time window EZF and data frames DR that are too old for the current event time window EZF.
  • the start time stamp 28 of the marked start time subsequences 64 sorted at random in terms of time are compared with the end time EZF_2 of the current event time window EZF in order to identify data frames DR which completely follow the current Event time window EZF are.
  • end time stamps 29 of the marked end time subsequences 66 sorted randomly in terms of time are each associated with the start time EZF_1 of the current event time window EZF compared in order to recognize data frames DR which are completely before the current event time window EZF.
  • the randomly sorted end time subsequences 66 are first used in order to find a data frame DR which is not completely before the event time window EZF.
  • the end time stamp 29 of the data frame DR of the last entry of a first randomly sorted end time subsequence 66 is compared with the start time EZF_1 of the current event time window EZF in order to check whether the data frame DR of the first randomly sorted end time subsequence 66 is completely before the event time window EZF. If yes, then the process is continued with the next randomly sorted end time subsequence 66 and the reference information 25 of the data frame DR of the first randomly sorted end time subsequence 66 is not forwarded.
  • the end time stamp 29 of the data frame DR of the first randomly sorted end time subsequence 66 is checked to find a data frame DR which is not completely before the event time window EZF, since earlier entries of data frames DR of the randomly sorted first End time subsequence 66 can be completely older than the current event time window EZF.
  • the corresponding randomly sorted start time subsequence 64 containing this first data frame DR is determined.
  • the start time stamp 28 of the data frame DR of the first randomly sorted start time subsequence 64 is compared with the end time EZF_2 of the current event time window EZF in order to To find data frame DR, which is completely after the event time window EZF. If a data frame DR is found that lies completely after the current event time window EZF, then the process continues with a first entry of the next randomly sorted start time subsequence 64 .
  • Embodiments of the method 100 according to the invention can be implemented, for example, in software or hardware or in a mixed form of software and hardware.
  • the illustrated exemplary embodiment of a device 1 according to the invention for carrying out the method 100 for recording event data in a vehicle comprises a data provision arrangement 10, a buffer block 20, an event detection arrangement 30 and a data recording arrangement 40.
  • the data provision arrangement 10 continuously receives data to be recorded Vehicle data from at least one vehicle system 3 and writes them as event data in data frames DR with a predetermined size and stores the individual data frames DR in at least one volatile memory 50.
  • the buffer block 20 manages the stored data frames DR and keeps them in the at least one volatile memory 50 available until the event data stored in the individual data frames DR are older than a predefined maximum occurrence time or in response to a predefined event recognized by the event detection arrangement 30 Event are stored persistently in at least one non-volatile memory 46.
  • the buffer block 20 includes a write function SF and multiple partitions 21, 21A, 21B with a predetermined size. Depending on at least one write criterion, the write function SF determines one of the partitions 21, 21A, 21B as the current write partition and writes reference information 25 of the individual data frames DR received from the data provision arrangement 10 into the current write partition.
  • the buffer block 20 in the exemplary embodiment shown includes a read function LF.
  • the read function LF determines one of the other partitions 21 as the current read partition and reads in reference information 25 contained in the current read partition of data frames DR, which contain event data to be recorded persistently, and forwards this to the data recording arrangement 40 .
  • the data recording arrangement 40 persistently stores the data frames DR corresponding to the forwarded reference information 25 in the at least one non-volatile memory 46.
  • the write function SF writes the received reference information 25 of the individual data frames DR in any chronological order in the write partition and determines and marks subsequences of the written reference information 25 of the individual data frames DR in the at least one partition 21 that are sorted at random in terms of time.
  • the event recognition arrangement 30 continuously monitors the state of the vehicle and decides when a predetermined event has occurred which requires the persistent storage of the corresponding event data of the at least one vehicle system 3 .
  • the event recognition arrangement 30 outputs the current event time window EZF corresponding to the recognized event to the buffer block 20, for which the event data are to be persistently recorded, with a start time of the current event time window EZF not being before the maximum occurrence time.
  • a first vehicle system 3 is designed as an environment detection system 3A.
  • a second vehicle system 3 is designed as a personal protection system 3B, a third vehicle system 3 is designed as a driving dynamics system 3C and a fourth vehicle system is designed as a braking system 3D.
  • vehicle data from other vehicle systems or from another combination of the above Vehicle systems 3 are detected and recorded.
  • the event recognition arrangement 30 specifies the start time EZF_1 of the current event time window EZF as a time stamp in relation to a current zero reference time B and the end time EZF_2 of the current event time window EZF as a time difference from the start time EZF_1.
  • the buffer block 20 redefines the current zero reference time B if necessary.
  • the data provision arrangement 10 includes data acquisition 12 and data preprocessing and transfers the reference information 25 of the data frames DR stored in the at least one volatile memory 50 to the buffer block 20.
  • the reference information 25 of the individual data frames DR include, as already explained above, in the exemplary embodiment shown, data frame pointer DRZ, which indicates a memory location for the data blocks or data frames stored in the volatile memory, and the corresponding time window 27 of the data frame DR with the start time stamp 28 and the end time stamp 29.
  • the buffer block 20 forwards the corresponding reference information 25 from Data frames, which are to be stored persistently in the at least one non-volatile memory 46, to the data recording arrangement 40 on.
  • the data recording arrangement 40 comprises data post-processing 42, data storage 44 and the at least one non-volatile memory 46.
  • the individual data frames DR generally contain more than one data section which was generated or stored within the time window 27 of the data frame DR.
  • the buffer block 20 only knows the time window 27 of the data frame DR and does not know or understand the content of the data frame DR.
  • the buffer block 20 receives and forwards the data frames DR from the data supply device 10 to the data recording device 40 as a reference. This means that the buffer block 20 does not copy the memory content of the data frames DR. If the event recognition arrangement 30 notifies the buffer block 20 of a current event time window EZF, the buffer block 20 identifies the data frames DR which relate to the current event time window EZF.
  • the buffer block 20 then makes precisely the reference information 25 of the data frame DR available to the data recording arrangement 40 for data recording, which information overlaps in time with the current event time window EZF. This means that the buffer block 20 forwards the complete reference information 25 from data frames DR to the data recording arrangement 40, even if the data frames DR only partially overlap the current event time window EZF and therefore some data excerpts may lie outside of the current event time window EZF.
  • the buffer block 20 relates only data frame DR to the event that has occurred, which is a temporal Have an overlap with the current event time window EZF. The buffer block 20 does not apply any further criteria to assign the data frames DR to an event.
  • the buffer block 20 provides the data recording arrangement 40 with precisely the reference information 25 of data frames DR which overlap with the current event time window EZF. There are no restrictions on the order in which the buffer block 20 forwards the data frames DR to the data recording device 40.
  • the buffer block 20 processes only one event at a time.
  • the event recognition arrangement 30 only informs the buffer block 20 about the current event time window EZF.
  • the buffer block 20 does not need any further knowledge of the circumstances or details of the event. If the event recognition arrangement 30 identifies a second event while the buffer block 20 is already processing a current event time window EZF of a first event, the event recognition 30 can change the current event time window EZF.
  • the buffer block 20 has a limit that can be configured statically, ie known at the time of compilation, which specifies the maximum number of time units before the current point in time that a current event time window EZF can begin. This limit is called the maximum pre-event time.
  • the event recognition arrangement 30 cannot change the start of the current event time window EZF to a point in time which is before the maximum pre-event point in time.
  • the event recognition arrangement 30 cannot define a current event time window EZF whose start is before the maximum pre-event time.
  • the behavior of the buffer block 20 is thus indicated by the current event time window EZF.
  • the event detection arrangement 30 detects an event for which data must be permanently recorded, then the event detection arrangement 30 notifies the buffer block 20 of the corresponding current event time window EZF, which corresponds to a time range for which the corresponding data frames DR are to be stored persistently.
  • the end of the current event time window EZF can be a point in time in the future. If further events are detected, then the current event time window EZF can change. This can be the case, for example, when a less important event is detected first, followed by a more serious event considered related to the first event.
  • An example could be that the vehicle recognizes as event A that it crosses the center line of the road, i.e.
  • Event A can only be relevant for recording the vehicle data in a first event time window EZF with a start time EZF_1, which is 10 seconds before event A occurs, and an end time EZF_2, which is 10 seconds after event A occurs.
  • Event B which is significantly more serious than event A, can record the vehicle data in a second event time window EZF with a start time EZF_1, which is 30 seconds before the occurrence of event B, and an end time EZF_2, which is 30 seconds after the occurrence of the event B require. So while the vehicle data for event A is still being recorded, the event recognition system 30 changes the current event time window EZF for recording the vehicle data for event B.
  • the buffer block 20 corresponds to a collection of pointers DRZ to data frames DR, which the buffer block 20 retains for some time until the buffer block 20 returns them either to the memory management of the at least one volatile memory 50 or to the data recording arrangement 40 which reads the data frames DR corresponding to the forwarded pointers DRZ from the at least one volatile memory 50 and stores them persistently in the at least one non-volatile memory 46.
  • the buffer block 20 can mark the current write partition with a write partition pointer in an atomic machine instruction.
  • the buffer block comprises a number of partitions 21, 21A, 21B.
  • a single partition 21, 21A, 21B corresponds, for example, to an array of data frame pointers DRZ, which are enriched with some additional information 26 relating to the time window 27 of the corresponding data frame DR, and auxiliary information 60, which facilitate and accelerate the reading process of the reference information 25.
  • Both the size and the number of partitions 21, 21A, 21B in the buffer block 20 are statically configurable, ie known at compile time.
  • the buffer block 20 statically contains the memory area of the partitions 21, 21A, 21B, ie the buffer block 20 assigns the partitions 21, 21A, 21B statically when the program starts.
  • the size and number of partitions 21, 21A, 21B can be configured in such a way that the number of data frame pointers DRZ is sufficient under all conditions.
  • the buffer block 20 contains a materialized representation of the current event time window EZF.
  • the data provision arrangement 10 inserts data frames DR, i.e. reference information 25 of the corresponding data frames DR, into the buffer block 20, while the data recording arrangement 40 reads the reference information 25 of the data frames DR from the buffer block 20 and persistently stores the associated data frames DR. Therefore, the data providing device 10 is referred to here as a “writer” and the data recording device 40 as a “reader”. Writers and readers can invoke buffer block 20 methods concurrently from different threads, and of course the internal state of the buffer block 20 remains correct in all possible parallel threads.
  • the buffer block 20 separates a write operation of the write function SF from a read operation of the read function LF via exclusive ownership of partitions 21, 21A, 21B.
  • the buffer block 20 designates one of the partitions 21, 21A, 21B as the current "write partition".
  • the write function SF exclusively owns this current write partition.
  • the read function LF can neither read nor change the current write partition, even if the current write partition contains data frames DR which temporally overlap the current event time window EZF.
  • the write function SF searches for a new current write partition using the determination process 140 described above, and the previous write partition becomes accessible to the read function LF.
  • the write function SF When the write function SF has determined the new current write partition, the write function SF resets the write partition pointer of the buffer block 20 according to an atomic store. This eliminates race conditions, which can be caused by the read function LF accessing an outdated cached version of the current write partition, e.g. B. in a CPU cache of another CPU core.
  • the read function LF has a partition 21, 21A, 21B which is designated as the current read partition.
  • the current read partition naturally overlaps with the current event time window EZF, otherwise the read function LF would not be interested in the data frames DR it contains. Due to the determination process described above, the write function SF will never access the current read partition without some other means of separating operations. If the read function LF has read all reference information 25 of the relevant data frame DR from the current read partition, then the time window 22 of the current read partition is either invalid because all the data frames DR contained in the current read partition have been read out, or the time window 22 of the current read partition overlaps no longer with the current event time window EZF.
  • the read function LF searches for another partition 21, 21A, 21B which overlaps with the current event time window EZF and is not the current write partition. If the read function LF finds such a partition 21, 21A, 21B because the buffer block contains reference information 25 from a number of relevant data frames DR for the current event, then the read function LF determines this partition 21, 21A, 21B as the new current read partition. Since the write function SF never accesses the current read partition, there is also no need to store the read partition pointer atomically. In the vast majority of calls to the buffer block 20, the write function SF simply appends reference information 25 to a new data frame DR at the end of the current write partition, possibly extending the time window 22 of the current write partition.
  • the read function LF simply reads out the reference information 25 for the next data frame DR from the current read partition. In this way, the write function SF and the read function LF never interfere with each other. Only if the current write partition has been completely written or the current read partition has been read completely, there can be simultaneous accesses to partitions. However, these are read-only accesses that compare the time windows 22 of the partitions 21, 21A, 21B with one another. Due to the definition of a new exclusive read partition or a new exclusive write partition, the read and write operations are properly separated at all times.
  • the event recognition can be carried out in the event recognition arrangement 30 in a separate process.
  • the event recognition arrangement 30 does not interact directly with the processing of the data frames DR.
  • the event recognition arrangement 30 can set, change or invalidate the current event time window stored in the buffer block 20 at any time.
  • the write function SF reads the current event time window EZF when searching for a new write partition.
  • the buffer block 20 ensures that the write function SF does not read a partially written and thus arbitrarily damaged current event time window EZF, while the event recognition arrangement 30 changes the current event time window EZF.
  • the buffer block 20 resolves the conflict between the event recognition arrangement 30 and the write function SF by storing the current event time window EZF as an atomic value, ie in a single machine instruction.
  • the event recognition arrangement 30 therefore writes the new current event time window EZF in a single atomic process.
  • the write function SF reads either the old current event time window EZF or the new current event time window EZF, but never a damaged, partially written current event time window EZF.
  • the write function SF When searching for a new write partition, the write function SF first creates a runtime-local copy of the current event time window EZF using an atomic read process. Then the write function SF only works with the pre-local copy until a new write partition is found. In this way it is possible for the write function SF to search for a new write partition using an outdated current event time window EZF. However, this behavior is identical to the case in which the write function SF first updates the write partition and the event recognition arrangement 30 then changes the current event time window EZF.
  • the read function LF also has a read/write conflict with the event recognition arrangement 30 for accessing the current event time window EZF of the buffer block 20.
  • the read function LF must know the current event time window EZF in order to find a partition 21, 21A, 21B which contains data frames DR that overlap with the current event time window EZF, and if this partition 21, 21A, 21B is not completely in the current event time window EZF is included to identify or determine the relevant data frames DR within this partition.
  • the read function LF does not read a partially written damaged current event time window EZF, while the event recognition arrangement 30 changes the current event time window EZF at the same time.
  • the event recognition arrangement 30 updates the current event time window EZF atomically.
  • the read function LF reads the current event time window EZF atomically at the beginning of each method call of the buffer block 20 and stores it in a run-local copy. During the execution of the readout process, the read function LF uses this copy wherever the current event time window EZF is required.
  • the current event time window EZF stored in the buffer block 20 differs from the run-local copy of the read function LF.
  • the read function LF terminates the current readout process with the now obsolete current event time window EZF and thus forwards at most the reference information 25 from a data frame DR whose time window 22 is outside the current event time window EZF to the data recording arrangement 40 .
  • this behavior is as if the event recognition arrangement 30 had only defined the new current event time window EZF after the read function LF had processed this data frame DR and is therefore tolerable.
  • the read function LF not only creates a runtime-local copy of the current event time window EZF, but also checks whether the current event time window EZF has changed since the previous call. If the current event time window EZF has changed, the read function LF first checks whether the current read partition still overlaps the new current event time window. If not, the read function LF searches for a new current read partition as described above. If the current reading partition still overlaps with the new current event time window EZF, the read function LF restarts the reading process and starts reading the current reading partition again from the beginning.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Traffic Control Systems (AREA)
  • Time Recorders, Dirve Recorders, Access Control (AREA)

Abstract

Die Erfindung betrifft ein Verfahren 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 (DR) 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 Voreigniszeitpunkt sind oder in Reaktion auf ein erkanntes vorgegebenes Ereignis persistent in mindestens einem nichtflüchtigen Speicher (46) gespeichert sind, wobei mehrere Partitionen mit einer vorgegebenen Größe vorgesehen werden, wobei in Abhängigkeit von mindestens einem Schreibkriterium eine der Partitionen als aktuelle Schreibpartition bestimmt wird, in welche die empfangenen Referenzinformationen der einzelnen Datenrahmen (DR) geschrieben werden, sowie eine Vorrichtung (1) zur Durchführung des Verfahrens zur Aufzeichnung von Ereignisdaten in einem Fahrzeug.

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 nur eine aktuelle Schreibpartition vorhanden ist, auf welche nur eine Funktion exklusiv zugreifen kann, so dass keine anderen Funktionen auf die aktuelle Schreibpartition zugreifen und deren Dateninhalte verändern können.
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 werden mehrere Partitionen mit einer vorgegebenen Größe vorgesehen, wobei in Abhängigkeit von mindestens einem Schreibkriterium eine der Partitionen als aktuelle Schreibpartition bestimmt wird, in welche die empfangenen Referenzinformationen der einzelnen Datenrahmen geschrieben werden.
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 umfasst der Pufferblock eine Schreibfunktion und mehrere Partitionen mit einer vorgegebenen Größe, wobei die Schreibfunktion ausgeführt ist, in Abhängigkeit von mindestens einem Schreibkriterium eine der Partitionen als aktuelle Schreibpartition zu bestimmen und von der Datenbereitstellungsanordnung empfangene Referenzinformationen der einzelnen Datenrahmen in die aktuelle Schreibpartition zu schreiben.
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 20 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 Fahrzeugdaten- bus 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 implementiert 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 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, eine der anderen Partitionen als aktuelle Lesepartition bestimmt werden kann. Das bedeutet, dass die aktuelle Schreibpartition, welche beispielsweise durch einen Schreibpartitionszeiger markiert werden kann, nicht als aktuelle Lesepartition bestimmt werden kann, welche beispielsweise durch einen Lesepartitionszeiger markiert werden kann. Hierbei können in der aktuellen Lesepartition enthaltene Referenzinformationen von Datenrahmen aus- gelesen 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. Durch die einzige Lesepartition, auf welche nur eine Funktion exklusiv zugreifen kann, kann in vorteilhafter Weise verhindert werden, dass andere Funktionen auf die aktuelle Lesepartition zugreifen und deren Dateninhalte verändern können.
In vorteilhafter Ausgestaltung des Verfahrens kann ein Startzeitpunkt des aktuellen Ereigniszeitfensters als Zeitstempel in Bezug auf einen aktuellen Nullreferenzzeitpunkt vorgegeben werden. Ein Endzeitpunkt des aktuellen Ereigniszeitfensters kann als Zeitdifferenz zum Startzeitpunkt vorgegeben werden, wobei der aktuelle Nullreferenzzeitpunkt bei Bedarf neu definiert werden kann. Hierbei kann ein erster Nullreferenzzeitpunkt einem Startzeitpunkt des Fahrzeugs entsprechen. 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. Der aktuelle Nullreferenzzeitpunkt kann beispielsweise 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. Üblicherweise kann ein Zeitfenster als zwei absolute Zeitpunkte, d. h. als zwei Zeitstempel, einem Startzeitstempel und einem Endzeitstempel dargestellt werden. Zur Darstellung eines solchen Zeitstempels werden 32 Bits benötigt, so dass zur Darstellung eines Zeitfensters 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 zu bieten, werden der Startzeitzeitstempel und eine Zeitdifferenz in Bezug zum Startzeitstempel anstelle von zwei Zeitstempeln verwendet, um das aktuelle Ereigniszeitfenster zu definieren. Die 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 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.
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 können 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 können die empfangenen Referenzinformationen der einzelnen Datenrahmen in beliebiger zeitlicher Reihenfolge in die aktuelle Schreibpartition geschrieben werden. Hierbei können zeitlich zufällig sortierte Untersequenzen der geschriebenen Referenzinformationen der einzelnen Datenrahmen in der Schreibpartition 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 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 Startzeituntersequenz 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.
In vorteilhafter Ausgestaltung der Vorrichtung kann der Pufferblock eine Lesefunktion umfassen, welche ausgeführt ist, 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 persistent aufgezeichnet werden sollen, eine der anderen Partitionen als aktuelle Lesepartition zu bestimmen und in der aktuellen Lesepartition enthaltene Referenzinformationen von Datenrahmen auszulesen und an die Datenaufzeichnungsanordnung weiterzuleiten, welche persistent 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 die Schreibfunktion weiter ausgeführt sein, die empfangenen Referenzinformationen der einzelnen Datenrahmen in beliebiger zeitlicher Reihenfolge in die aktuelle Schreibpartition zu schreiben und zeitlich zufällig sortierte Untersequenzen der geschriebenen Referenzinformationen der einzelnen Datenrahmen in der aktuellen Schreibpartition zu ermitteln und zu markieren.
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. Hierbei kann die Ereigniserkennungsanordnung weiter ausgeführt sein, das mit dem erkannten Ereignis korrespondierende aktuelle Ereigniszeitfenster an den Pufferblock auszugeben, für welches die Ereignisdaten persistent aufgezeichnet werden sollen, wobei ein Startzeitpunkt des aktuellen Ereigniszeitfensters zeitlich nicht vor dem maximalen Voreigniszeitpunkt liegt. Zudem kann die Ereigniserkennungsanordnung weiter ausgeführt sein, den Startzeitpunkt des aktuellen 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 sein kann, den aktuellen Nullreferenzzeitpunkt bei Bedarf neu zu definieren.
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 Bestimmung einer aktuellen Schreibpartition 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 werden im Schritt S130 mehrere Partitionen 21, 21 A, 21 B mit einer vorgegebenen Größe vorgesehen, wobei im Schritt S140 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 S150 geschrieben werden.
Im dargestellten Ausführungsbeispiel des erfindungsgemäßen Verfahrens 100 wird im Schritt S160 in Reaktion auf eine Anforderung 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, 21A, 21B als aktuelle Lesepartition bestimmt. Im Schritt S170 werden in der aktuellen Lesepartition enthaltene Referenzinformationen 25 von Datenrahmen DR ausgelesen und weitergeleitet, welche persistent aufzuzeichnende Ereignisdaten enthalten, und im Schritt S180 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, 21A, 21B wird ein jüngster Endzeitstempel 29 von in der Partition 21, 21A, 21B 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 21 A, 21 B weisen jeweils beispielhaft den Wert „3“ des Startzeitstempels 28 eines ersten Datenrahmens DR auf, welcher dem ältesten Startzeitstempel 28 in den dargestellten Partitionen 21 A, 21 B entspricht. Als Endzeitstempel 24 weisen die dargestellten Partitionen 21 A, 21 B 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 der Vorgang 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 Speicher- platz 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. Hierbei entspricht ein ältester Nullreferenzzeitpunkt einem Startzeitpunkt des Fahrzeugs.
Wie aus Fig. 5 weiter ersichtlich ist, wird bei einer Neudefinition des aktuell verwendeten Nullreferenzzeitpunkts B 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. Dann wird der neue Nullreferenzzeit- punkt 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. Anschließend wird 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 unter Bezugnahme auf Fig. 6 der im Schritt S140 durchgeführte Vorgang 140 zur Bestimmung einer aktuellen Schreibpartition für das erfindungsgemäße Verfahren 100 zur Aufzeichnung von Ereignisdaten in einem Fahrzeug 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. Wie aus Fig. 6 weiter ersichtlich ist, wird der Bestimmungsvorgang 140 im Schritt S200 gestartet. Im Schritt S210 wird überprüft, ob mindestens eine der Partitionen 21, 21A, 21B kein gültiges Zeitfenster 22 hat. Ist dies der Fall, dann wird im Schritt S220 eine dieser Partitionen 21, 21A, 21B als aktuelle Schreibpartition bestimmt und der Bestimmungsvorgang ist beendet. Wird im Schritt S210 keine Partition 21, 21 A, 21 B mit einem ungültigen Zeitfenster 22 erkannt, dann wird im Schritt S230 überprüft, ob mindestens eine der Partitionen 21, 21 A, 21 B ein gültiges Zeitfenster 22 hat, welches vollständig älter als der maximale Voreigniszeitpunkt ist. Wird im Schritt S230 keine solche Partition 21, 21A, 21B erkannt, dann kehrt der Bestimmungsvorgang 140 zur Überprüfung im Schritt S210 zurück. Wird im Schritt S230 eine solche Partition 21, 21 A, 21 B mit einem gültigen Zeitfenster 22 erkannt, dann wird im Schritt S240 überprüft, ob diese Partition ein vorhandenes aktuelles Ereigniszeitfenster EZF überlappt oder nicht. Wird im Schritt S240 festgestellt, dass diese Partition 21, 21A, 21B ein vorhandenes aktuelles Ereigniszeitfenster EZF überlappt, dann kehrt der Bestimmungsvorgang 140 ebenfalls zur Überprüfung im Schritt S210 zurück. Wird im Schritt S240 kein aktuelles Ereigniszeitfenster EZF erkannt bzw. festgestellt, dass diese Partition 21, 21A, 21B ein vorhandenes aktuelles Ereigniszeitfenster EZF nicht überlappt, dann wird diese Partition 21, 21 A, 21 im Schritt S250 einem Satz von Partitionen 21, 21 A, 21 B hinzugefügt. Im Schritt S260 wird überprüft, ob noch weitere Partitionen 21, 21A, 21B vorhanden sind. Ist dies der Fall, dann wird im Schritte S280 die nächste Partition 21, 21A, 21 B ausgewählt und der Bestimmungsvorgang 140 mit der Überprüfung im Schritt S210 fortgesetzt. Wird im Schritt S270 keine weitere Partition 21, 21A, 21B erkannt, dann wird im Schritt S270 die Partition 21, 21A, 21B aus dem Satz der Partitionen 21, 21A, 21B ausgewählt, deren korrespondierendes gültiges Zeitfenster 22 den ältesten Startzeitstempel 23 hat. Diese ausgewählte Partition 21, 21A, 21B wird dann im Schritt S220 als aktuelle Schreibpartition bestimmt und der Bestimmungsvorgang ist beendet.
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, 21 B 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 21 B 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 Endzeitsequenz 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 DR 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 22D 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, 21A, 21B 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. Hierbei umfasst der Pufferblock 20 eine Schreibfunktion SF und mehrere Partitionen 21, 21A, 21B mit einer vorgegebenen 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 Ereigniserkennungsanordnung 30 gibt den Startzeitpunkt EZF_1 des aktuellen Ereigniszeitfensters EZF als Zeitstempel in Bezug auf einen aktuellen Nullreferenzzeitpunkt B und den Endzeitpunkt EZF_2 des aktuellen Ereigniszeitfensters EZF als Zeitdifferenz zum Startzeitpunkt EZF_1 vor. Der Pufferblock 20 definiert den aktuellen Nullreferenzzeitpunkt B bei Bedarf neu. Die Datenbereitstellunganordnung 10 umfasst im dargestellten Ausführungsbeispiel eine Datenerfassung 12 und eine Daten Vorverarbeitung 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 28 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 vollständigen Referenzinformationen 25 von 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 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 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 beispielsweise 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 Referenzinformationen 25 gefüllt hat, sucht die Schreibfunktion SF mit dem oben beschriebenen Bestimmungsvorgang 140 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, 21A, 21B 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 einzigen 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 aktuelle 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.

Claims

- 35 - 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 (DR) 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 mehrere Partitionen (22) 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.
2. Verfahren (100) nach Anspruch 1, dadurch gekennzeichnet, dass in Reaktion auf eine Anforderung 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 bestimmt wird, wobei in der aktuellen Lesepartition 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. - 36 - Verfahren (100) nach Anspruch 2, dadurch gekennzeichnet, dass ein Startzeitpunkt (EZF_1) des aktuellen Ereigniszeitfensters (EZF) als Zeitstempel in Bezug auf einen aktuellen Nullreferenzzeitpunkt (B) vorgegeben wird und ein Endzeitpunkt (EZF_2) des aktuellen Ereigniszeitfensters (EZF) als Zeitdifferenz zum Startzeitpunkt (EZF_1) vorgegeben wird, wobei der aktuelle Nullreferenzzeitpunkt (B) bei Bedarf neu definiert wird. Verfahren (100) nach Anspruch 3, dadurch gekennzeichnet, dass ein ältester Nullreferenzzeitpunkt einem Startzeitpunkt des Fahrzeugs entspricht. Verfahren (100) nach Anspruch 3 oder 4, 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. Verfahren (100) nach einem der Ansprüche 1 bis 5, 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. Verfahren (100) nach Anspruch 6, dadurch gekennzeichnet, dass der Startzeitstempel (28) und der Endzeitstempel (29) der einzelnen Datenrahmen (DR) auf den aktuellen Nullreferenzzeitpunkt (B) bezogen sind. Verfahren (100) nach Anspruch 6 oder 7, 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) von in der Partition (21) enthaltenen Referenzinformationen (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 8, 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, und wobei das Zeitfenster (27) des mindestens einen Datenrahmens (DR) in den Referenzinformationen (25) nach dem Auslesen der Referenzinformationen (25) ungültig gemacht wird. Verfahren (100) nach Anspruch 9, 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. - ss - Verfahren (100) nach einem der Ansprüche 1 bis 10, 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 (25) beschrieben ist. Verfahren (100) nach Anspruch 11, 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 Anspruch 11 oder 12, dadurch gekennzeichnet, dass vor der Bestimmung der aktuellen Schreibpartition das vorhandene aktuelle Ereigniszeitfenster (EZF) lokal gespeichert wird. Verfahren (100) nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, dass die empfangenen Referenzinformationen (25) der einzelnen Datenrahmen (DR) in beliebiger zeitlicher Reihenfolge in die aktuelle Schreibpartition geschrieben werden, wobei zeitlich zufällig sortierte Untersequenzen der geschriebenen Referenzinformationen (25) der einzelnen Datenrahmen (DR) in der Schreibpartition ermittelt und markiert werden. Verfahren (100) nach Anspruch 14, dadurch gekennzeichnet, dass die geschriebenen Referenzinformationen (25) der einzelnen Datenrahmen (DR) gemäß ihrer Schreibreihenfolge aufsteigend durchnummeriert werden. - 39 - Verfahren (100) nach Anspruch 15, 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 aktuelle Schreibpartition geschrieben wurden. Verfahren (100) nach Anspruch 16, 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 geschriebenen Datenrahmens (DR) ist, und wobei eine erste Startzeituntersequenz (64) mit dem Startzeitstempel (28) des ersten geschriebenen Datenrahmens (DR) und einer niedrigsten Nummer (0) der korrespondierenden Nummerierung (62) startet. Verfahren (100) nach Anspruch 16 oder 17, 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 geschrie- - 40 - benen Datenrahmens (DR) ist, und wobei eine erste Endzeituntersequenz (66) mit dem Endzeitstempel (29) des ersten geschriebenen Datenrahmens (DR) und der niedrigsten Nummer (0) der korrespondierenden Nummerierung (62) startet. Verfahren (100) nach Anspruch 17 und 18, 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 19, 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 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 der Pufferblock (20) eine Schreibfunktion (SF) und mehrere Partitionen (22) mit einer vorgegebenen Größe umfasst, wobei die Schreibfunktion (SF) ausgeführt ist, in Abhängigkeit von mindestens einem Schreibkriterium eine der Partitionen (21) als aktuelle - 41 -
Schreibpartition zu bestimmen und von der Datenbereitstellungsanordnung (10) empfangene Referenzinformationen (25) der einzelnen Datenrahmen (DR) in die aktuelle Schreibpartition zu schreiben. Vorrichtung (1) nach Anspruch 20, dadurch gekennzeichnet, dass der Pufferblock (20) eine Lesefunktion (LF) umfasst, wobei die Lesefunktion (LF) 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 persistent aufgezeichnet werden sollen, eine der anderen Partitionen (21) als aktuelle Lesepartition zu bestimmen und in der aktuellen Lesepartition enthaltene Referenzinformationen (25) von Datenrahmen (DR) auszulesen und an die Datenaufzeichnungsanordnung (40) weiterzuleiten, welche persistent 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 20 oder 21, dadurch gekennzeichnet, dass die Schreibfunktion (SF) weiter ausgeführt ist, die empfangenen Referenzinformationen (25) der einzelnen Datenrahmen (DR) in beliebiger zeitlicher Reihenfolge in die aktuelle Schreibpartition zu schreiben und zeitlich zufällig sortierte Untersequenzen der geschriebenen Referenzinformationen (25) der einzelnen Datenrahmen (DR) in der aktuellen Schreibpartition zu ermitteln und zu markieren. Vorrichtung (1) nach einem der Ansprüche 20 bis 22, 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, wobei die Ereigniserken- - 42 - nungsanordnung (30) weiter ausgeführt ist, das mit dem erkannten Ereignis korrespondierende aktuelle Ereigniszeitfenster (EZF) an den Pufferblock (20) auszugeben, für welches die Ereignisdaten persistent aufgezeichnet werden sollen, wobei ein Startzeitpunkt des aktuellen Ereigniszeitfensters (EZF) zeitlich nicht vor dem maximalen Voreigniszeit- punkt liegt. Vorrichtung (1) nach einem der Ansprüche 20 bis 23, dadurch gekennzeichnet, dass das mindestens eine Fahrzeugsystem (3) als Umfelderfassungssystem (3A) oder als Personenschutzsystem (3B) oder als Fahrdynamiksystem (3C) oder als Bremssystem (3D) ausgeführt ist. Vorrichtung (1) nach Anspruch 23 oder 24, dadurch gekennzeichnet, dass die Ereigniserkennungsanordnung (30) weiter ausgeführt ist, den 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 einem der Ansprüche 20 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 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 19 auszuführen. Computerlesbares Speichermedium, auf dem das Computerprogrammprodukt nach Anspruch 27 gespeichert ist.
PCT/EP2021/073997 2020-09-28 2021-08-31 Verfahren und vorrichtung zur aufzeichnung von ereignisdaten in einem fahrzeug WO2022063529A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US18/006,666 US20230282044A1 (en) 2020-09-28 2021-08-31 Method and device for recording event data in a vehicle
CN202180066371.8A CN116210037A (zh) 2020-09-28 2021-08-31 用于在车辆中记录事件数据的方法和设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020212140.0 2020-09-28
DE102020212140.0A DE102020212140A1 (de) 2020-09-28 2020-09-28 Verfahren und Vorrichtung zur Aufzeichnung von Ereignisdaten in einem Fahrzeug

Publications (1)

Publication Number Publication Date
WO2022063529A1 true WO2022063529A1 (de) 2022-03-31

Family

ID=77864522

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/073997 WO2022063529A1 (de) 2020-09-28 2021-08-31 Verfahren und vorrichtung zur aufzeichnung von ereignisdaten in einem fahrzeug

Country Status (4)

Country Link
US (1) US20230282044A1 (de)
CN (1) CN116210037A (de)
DE (1) DE102020212140A1 (de)
WO (1) WO2022063529A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3866013A1 (de) * 2020-02-11 2021-08-18 Aptiv Technologies Limited Datenprotokollierungssystem zum sammeln und speichern von eingangsdaten

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140178031A1 (en) * 2012-12-20 2014-06-26 Brett I. Walker Apparatus, Systems and Methods for Monitoring Vehicular Activity
US20160162739A1 (en) * 2013-08-06 2016-06-09 Mitsubishi Electric Corporation Train interior monitoring method and train interior monitoring system
US20190311554A1 (en) * 2018-04-06 2019-10-10 Robert Bosch Gmbh Data recorder system for a vehicle
US20200058174A1 (en) * 2010-12-15 2020-02-20 Andrew William Wright Method and System for Logging Vehicle Behaviour

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200058174A1 (en) * 2010-12-15 2020-02-20 Andrew William Wright Method and System for Logging Vehicle Behaviour
US20140178031A1 (en) * 2012-12-20 2014-06-26 Brett I. Walker Apparatus, Systems and Methods for Monitoring Vehicular Activity
US20160162739A1 (en) * 2013-08-06 2016-06-09 Mitsubishi Electric Corporation Train interior monitoring method and train interior monitoring system
US20190311554A1 (en) * 2018-04-06 2019-10-10 Robert Bosch Gmbh Data recorder system for a vehicle

Also Published As

Publication number Publication date
US20230282044A1 (en) 2023-09-07
DE102020212140A1 (de) 2022-03-31
CN116210037A (zh) 2023-06-02

Similar Documents

Publication Publication Date Title
DE69128367T2 (de) System und Verfahren zur Transaktionsbearbeitung mit verminderter Verriegelung
DE69802437T2 (de) Feinkörniger übereinstimmungsmechanismus für optimistische parallelsteuerung mit verriegelungsgruppen
DE69126067T2 (de) Verfahren und Gerät zur Verwaltung von Zustandsidentifizierern zur effizienten Wiederherstellung
DE112010004947B4 (de) Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten
DE4220198C2 (de) Transaktionsverarbeitungsverfahren für einen digitalen Computer und Transaktionsverarbeitungssystem
DE3856055T2 (de) Verfahren und Einrichtung, um gleichzeitigen Zugriff zu indizierten sequentiellen Dateien zu ermöglichen
DE69232881T2 (de) Verbesserter Digitalprozessor mit verteiltem Speichersystem
DE3786956T2 (de) Verwaltung von registrierungsdaten in einem transaktionsorientierten System.
DE3151745C2 (de)
DE3854667T2 (de) Datenbasissystem mit einer Baumstruktur.
DE112005002402B4 (de) Hybride Hardware-/Software-Implementierung eines Transaktionsspeicherzugriffs
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE69625768T2 (de) Cache-Speicher mit maximalem gleichzeitigem Nachschlag für Rechneranordnungen mit Vielfaden-Umgebung
DE3856451T2 (de) Multiprozessor-Digitaldatenverarbeitungssystem
DE69434728T2 (de) Synchronisationssystem und verfahren in einem datencachesystem mit aufgeteiltem pegel
DE69027253T2 (de) Multiprozessor-Cachespeichersystem
DE69126066T2 (de) Verfahren und Gerät zur Optimierung des Logbuchaufhebungsgebrauchs
WO2015090668A1 (de) Posix-kompatibles dateisystem, verfahren zum erzeugen einer dateiliste und speichervorrichtung
DE3102150A1 (de) "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
DE3390323T1 (de) Ermittlung eines sequentiellen Datenstroms
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE1499182B2 (de) Datenspeichersystem
WO2022063529A1 (de) Verfahren und vorrichtung zur aufzeichnung von ereignisdaten in einem fahrzeug
WO2022063566A1 (de) Verfahren und vorrichtung zur aufzeichnung von ereignisdaten in einem fahrzeug
EP1449091B1 (de) Verfahren zum synchronisieren eines speichers mit dem hauptspeicher einer rechenanlage

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21773473

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21773473

Country of ref document: EP

Kind code of ref document: A1