DE102020209128A1 - Resumption of a write operation in a memory element after an interruption - Google Patents

Resumption of a write operation in a memory element after an interruption Download PDF

Info

Publication number
DE102020209128A1
DE102020209128A1 DE102020209128.5A DE102020209128A DE102020209128A1 DE 102020209128 A1 DE102020209128 A1 DE 102020209128A1 DE 102020209128 A DE102020209128 A DE 102020209128A DE 102020209128 A1 DE102020209128 A1 DE 102020209128A1
Authority
DE
Germany
Prior art keywords
data
memory
point
section
resume
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
DE102020209128.5A
Other languages
German (de)
Inventor
Ingo Dwertmann
Christian Haefner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
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 DE102020209128.5A priority Critical patent/DE102020209128A1/en
Publication of DE102020209128A1 publication Critical patent/DE102020209128A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

Abstract

Die Erfindung betrifft ein Verfahren zum Wiederaufnehmen eines Schreibvorgangs in einem nichtflüchtigen Speicherelement (110), umfassend: Empfangen (320) eines Datenabschnitts (202, 204, 206, 208), wobei ein Transferpunkt (TD) definiert ist, welcher einen Beginn des Datenabschnitts anzeigt; Verarbeiten (330) des empfangenen Datenabschnitts (202, 204, 206, 208); Erzeugen (340) eines Speicherabschnitts (222, 224, 226, 228) durch Schreiben des verarbeiteten Datenabschnitts in das nichtflüchtige Speicherelement, wobei ein Speicherpunkt (SP) des Datenabschnitts definiert ist, welcher einen Beginn des aus dem Datenabschnitt erzeugten Speicherabschnitts anzeigt; wobei in dem nichtflüchtigen Speicherelement (110) ein oder mehrere Speicheradressen als Wiederaufnahmepunkte (RP) definiert sind, an denen ein Schreiben in das nichtflüchtige Speicherelement nach einer Unterbrechung wieder aufgenommen werden kann; Prüfen (360), ob mindestens ein Wiederaufnahmepunkt (RP) in dem erzeugten Speicherabschnitt liegt; und falls dies der Fall ist, Abspeichern (370) des Transferpunkts und des Speicherpunkts des Datenabschnitts, und Abspeichern des letzten Wiederaufnahmepunkts, der in dem geschriebenen Speicherabschnitt liegt.The invention relates to a method for resuming a write operation in a non-volatile memory element (110), comprising: receiving (320) a data section (202, 204, 206, 208), wherein a transfer point (TD) is defined, which indicates a beginning of the data section ; processing (330) the received portion of data (202, 204, 206, 208); creating (340) a memory section (222, 224, 226, 228) by writing the processed data section to the non-volatile memory element, wherein a memory point (SP) of the data section is defined which indicates a beginning of the memory section created from the data section; wherein in the non-volatile memory element (110) one or more memory addresses are defined as resume points (RP) at which writing to the non-volatile memory element can be resumed after an interruption; checking (360) whether at least one resume point (RP) is in the created portion of memory; and if so, storing (370) the transfer point and the save point of the data portion, and storing the last resume point that is in the written portion of memory.

Description

Die vorliegende Erfindung betrifft ein Verfahren zur Wiederaufnahme eines Schreibvorgangs in einem Speicherelement nach einer Unterbrechung, insbesondere für ein Speicherelement in einem Steuergerät, sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.The present invention relates to a method for resuming a write operation in a memory element after an interruption, in particular for a memory element in a control unit, and a computing unit and a computer program for carrying it out.

Stand der TechnikState of the art

Die Programmierung von Steuergeräten, beispielsweise über das gemäß ISO-14229 definierte UDS-Protokoll (Unified Diagnostic Services) ist im Automobilbereich weit verbreitet. Dabei werden üblicherweise Daten zur Neuprogrammierung von einer externen Quelle an das Steuergerät übertragen, wo dann entsprechende Speicherbereiche gelöscht und mit den neuen Daten überschrieben werden. Zur Übertragung von Daten an das Steuergerät sieht das UDS-Protokoll neben einer normalen Übertragung auch eine verschlüsselte oder komprimierte Übertragung vor. Diese beiden Varianten gewinnen im Rahmen der größer werdenden Datenmengen und der erhöhten Sicherheitsanforderungen immer stärker an Bedeutung.The programming of control units, for example using the UDS protocol (Unified Diagnostic Services) defined according to ISO-14229, is widespread in the automotive sector. In this case, data for reprogramming is usually transmitted from an external source to the control unit, where corresponding memory areas are then deleted and overwritten with the new data. In addition to normal transmission, the UDS protocol also provides for encrypted or compressed transmission of data to the control unit. These two variants are becoming more and more important in the context of increasing data volumes and increased security requirements.

Da eine derartige Programmierung nicht mehr ausschließlich in Werkstätten, sondern auch im Feld über drahtlose Verbindungen (over the air) erfolgt, wo die Datenübertragung häufiger unterbrochen werden kann, spielt der Umgang mit derartigen Unterbrechungen und der Wiederaufnahme der Programmierung nach einer Unterbrechung eine große Rolle. Während die Programmierung und auch die Wiederaufnahme einer Programmierung nach einer Unterbrechung üblicherweise auf feste physikalische Speicheradressen im Speicher eines Steuergeräts gerichtet ist, ist eine direkte lineare Zuordnung von gesendeten Datenbereichen zu den Speicheradressen nicht zwingend möglich, falls die Daten vor der Speicherung noch verarbeitet werden, beispielsweise dekomprimiert oder entschlüsselt werden.Since such programming is no longer exclusively done in workshops, but also in the field via wireless connections (over the air), where data transmission can be interrupted more frequently, dealing with such interruptions and resuming programming after an interruption plays a major role. While programming and also the resumption of programming after an interruption is usually aimed at fixed physical memory addresses in the memory of a control unit, a direct linear assignment of sent data areas to the memory addresses is not necessarily possible if the data is still being processed before it is stored, for example be decompressed or decrypted.

Offenbarung der ErfindungDisclosure of Invention

Erfindungsgemäß werden ein Verfahren zur Wiederaufnahme eines Schreibvorgangs in einem nichtflüchtigen Speicherelement nach einer Unterbrechung sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.According to the invention, a method for resuming a write operation in a non-volatile memory element after an interruption as well as a computing unit and a computer program for its implementation with the features of the independent patent claims are proposed. Advantageous configurations are the subject of the dependent claims and the following description.

Im Rahmen der Erfindung werden Datenabschnitte empfangen und verarbeitet, um daraus Speicherabschnitte zu erzeugen, die dann hintereinander in dem nichtflüchtigen Speicherelement gespeichert werden. Die Datenabschnitte können dabei insbesondere komprimierte und/oder verschlüsselte Daten enthalten, wobei das Verarbeiten dementsprechend ein Dekomprimieren bzw. Entschlüsseln umfasst. In dem nichtflüchtigen Speicherelement sind ein oder mehrere Speicheradressen als Wiederaufnahmepunkte definiert, an denen ein Schreiben in das nichtflüchtige Speicherelement nach einer Unterbrechung wiederaufgenommen werden kann. Wenn nun beim Schreiben eines Speicherabschnitts ein solcher Wiederaufnahmepunkt erreicht wird, wird dieser zusammen mit dem Beginn des aktuellen Speicherabschnitts (im Folgenden als Speicherpunkt bezeichnet) und dem Beginn des aktuellen Datenabschnitts (im Folgenden als Transferpunkt bezeichnet) gespeichert, um eine spätere Wiederaufnahme der Speicherung zu ermöglichen. Bei einer späteren Wiederaufnahme bleiben die Teile des Speicherabschnitts zwischen Speicherpunkt und Wiederaufnahmepunkt erhalten und das weitere Schreiben in den Speicherabschnitt beginnt am Wiederaufnahmepunkt.In the context of the invention, data sections are received and processed in order to generate memory sections therefrom, which are then successively stored in the non-volatile memory element. The data sections can in particular contain compressed and/or encrypted data, with the processing correspondingly including decompression or decryption. In the non-volatile memory element, one or more memory addresses are defined as resume points at which writing to the non-volatile memory element can be resumed after an interruption. If such a resume point is reached when writing a memory section, this is saved together with the beginning of the current memory section (hereinafter referred to as memory point) and the beginning of the current data section (hereinafter referred to as transfer point) in order to allow storage to be resumed later enable. If resumed later, the portions of the memory section between the save point and the resume point are preserved and further writing to the memory section begins at the resume point.

Das Verfahren kann bevorzugt angewendet werden, wenn ein oder mehrere Datenabschnitte ein Datenobjekt bilden, wobei die vorstehend genannten Schritte wiederholt werden, bis alle Datenabschnitte eines Datenobjekts in das nichtflüchtige Speicherelement geschrieben wurden.The method can preferably be applied when one or more data sections form a data object, the above steps being repeated until all data sections of a data object have been written to the non-volatile memory element.

Durch die Speicherung von Wiederaufnahmepunkten kann damit auch bei einer Unterbrechung des Schreibvorgangs ermittelt werden, bis wohin Daten des Datenobjekts bereits geschrieben sind. Bei Daten, bei denen beispielsweise durch Komprimierung oder Verschlüsselung nicht auf die zugehörige Transferadresse bzw. den Transferpunkt rückgeschlossen werden kann, wird durch die zusätzliche Festlegung eines zugehörigen Speicherpunkts ermöglicht, einen Schreibvorgang bzw. eine Programmierung von empfangenen Datenabschnitten an definierten Stellen wieder aufzunehmen. Damit entfällt die neue Übertragung und Speicherung größerer Mengen bereits geschriebener Daten, und es ist möglich, einen Schreibvorgang stückweise erfolgen zu lassen.As a result of the storage of resume points, it is also possible to determine up to where data of the data object have already been written, even if the writing process is interrupted. In the case of data for which the associated transfer address or transfer point cannot be deduced, for example due to compression or encryption, the additional definition of an associated memory point makes it possible to resume a writing process or programming of received data sections at defined points. This eliminates the need to retransmit and store large amounts of data that has already been written, and it is possible to have a write process performed piecemeal.

Ein oder mehrere der erzeugten Speicherabschnitte, die aus Datenabschnitten eines Datenobjekts erzeugt wurden, können dabei ein gespeichertes Datenobjekt bilden, wobei Transferpunkte und/oder Speicherpunkte eines Datenabschnitts als relative Speicheradressen in Bezug auf das Datenobjekt definiert werden können. Damit kann beispielsweise bestimmt werden, welcher Teil bzw. welcher Datenabschnitt eines Datenobjekts bereits übertragen und/oder geschrieben wurde. Beispielsweise kann am Beginn eines Datenobjekts ein erster Transferpunkt mit dem Wert 0 definiert werden, und am Beginn eines gespeicherten Datenobjekts kann ein erster Speicherpunkt mit dem Wert 0 definiert werden, wobei weitere Transfer- und Speicherpunkte dann relativ zu diesem ersten Punkt festgelegt werden können.One or more of the created memory sections, which were created from data sections of a data object, can form a stored data object, whereby transfer points and/or memory points of a data section can be defined as relative memory addresses in relation to the data object. It can thus be determined, for example, which part or which data section of a data object has already been transmitted and/or written. For example, a first transfer point with the value 0 can be defined at the beginning of a data object, and a first save point can be defined with the value 0, whereby further transfer and save points can then be defined relative to this first point.

Auch die Wiederaufnahmepunkte können als relative oder auch als absolute Speicheradressen definiert sein. Beispielsweise können die Wiederaufnahmepunkte auch als physikalische Speicheradresse in dem Speicherelement definiert sein, oder sie können alternativ relativ zu einer physikalischen Speicheradresse definiert sein, welche den Beginn des gespeicherten Datenobjekts angibt.The resume points can also be defined as relative or absolute memory addresses. For example, the resume points may also be defined as a physical memory address in the memory element, or alternatively they may be defined relative to a physical memory address indicating the beginning of the stored data object.

Das Verfahren kann beispielsweise vorteilhaft in Fällen angewendet werden, in denen das Verarbeiten des Datenabschnitts eine Veränderung der Größe des Datenabschnitts oder der Anordnung der Daten innerhalb des Datenabschnitts bewirkt. In solchen Fällen ist damit dennoch eine Zuordnung der Datenabschnitte und der bereits geschriebenen Speicherabschnitte relativ zu Wiederaufnahmepunkten möglich.For example, the method can be used to advantage in cases where the processing of the data chunk causes a change in the size of the data chunk or the arrangement of the data within the data chunk. In such cases, it is still possible to allocate the data sections and the memory sections that have already been written relative to resume points.

Es ist beispielsweise möglich, dass der empfangene Datenabschnitt komprimiert und/oder verschlüsselt ist, wobei das Verarbeiten des Datenabschnitts ein Dekomprimieren und/oder Entschlüsseln des Datenabschnitts umfasst. Da insbesondere drahtlos übertragene Daten, aber auch drahtgebunden übertragene Daten häufig komprimiert oder verschlüsselt sind, kann damit auch für diese Daten, bei denen eine Zuordnung der Datenabschnitte und Speicheradressen ansonsten erschwert wäre, eine sichere Zuordnung und damit die Möglichkeit einer Wiederaufnahme des Schreibvorgangs nach einer Unterbrechung sichergestellt werden.It is possible, for example, for the received data section to be compressed and/or encrypted, with the processing of the data section comprising decompressing and/or decrypting the data section. Since data transmitted wirelessly in particular, but also data transmitted by wire, is often compressed or encrypted, a secure assignment and thus the possibility of resuming the writing process after an interruption can also be made for this data, for which an assignment of the data sections and memory addresses would otherwise be difficult be ensured.

Gemäß einer beispielhaften Ausführungsform umfasst das Verfahren außerdem das Zurücksetzen von Variablen für das Abspeichern des Transferpunkt, des Speicherpunkts und des Wiederaufnahmepunkts vor dem Erzeugen eines ersten Speicherabschnitts. Beispielsweise können alle Werte auf Null gesetzt werden.According to an exemplary embodiment, the method also includes resetting variables for storing the transfer point, the save point, and the resume point prior to creating a first portion of memory. For example, all values can be set to zero.

Vorteilhafterweise wird geprüft, ob beim Empfangen eines Datenabschnitts und/oder beim Erzeugen eines Speicherabschnitts ein Fehler aufgetreten ist, und falls dies der Fall ist, wird ein zuletzt abgespeicherter Transferpunkt an einen Sender, von dem der Datenabschnitt empfangen wurde, übermittelt; der Datenabschnitt, der dem übermittelten Transferpunkt entspricht, erneut empfangen und verarbeitet; Daten, die beim Erzeugen des Speicherabschnitts aus dem erneut empfangenen Datenabschnitt für Speicheradressen zwischen dem zuletzt gespeicherten Speicherpunkt und dem zuletzt gespeicherten Wiederaufnahmepunkt vorgesehen sind, werden verworfen (d.h. die dort bereits zuvor geschriebenen Daten bleiben erhalten), und die nicht verworfenen Daten des verarbeiteten Datenabschnitts nach dem zuletzt gespeicherten Wiederaufnahmepunkt werden geschrieben.It is advantageously checked whether an error has occurred when receiving a data section and/or when generating a memory section, and if this is the case, a transfer point last stored is transmitted to a transmitter from which the data section was received; re-receive and process the portion of data corresponding to the transmitted transfer point; Data intended for memory addresses between the last saved memory point and the last saved resume point when creating the memory section from the re-received data section is discarded (i.e. the data already previously written there is preserved), and the non-discarded data of the processed data section after the last saved resume point are written.

Auf diese Weise kann dem Sender der Datenabschnitte, also z.B. einem Programmiermodul, mitgeteilt werden, ab welcher Adresse (entsprechend einem Transferpunkt) die Daten nach einer Unterbrechung des Schreibvorgangs erneut gesendet werden müssen. Dabei können dann in der Regel auch Daten gesendet werden, die schon im Speicherelement geschrieben sind. Diese bereits geschriebenen Daten können aber anhand der Speicherpunkte und Wiederaufnahmepunkte in den verarbeiteten (z.B. entschlüsselten oder dekomprimierten) Daten identifiziert und verworfen werden, so dass nur die noch nicht gespeicherten Daten geschrieben werden müssen.In this way, the sender of the data sections, e.g. a programming module, can be informed from which address (corresponding to a transfer point) the data must be sent again after an interruption in the write process. In this case, as a rule, data can also be sent that have already been written in the memory element. However, this already written data can be identified by the save points and resume points in the processed (e.g. decrypted or decompressed) data and discarded so that only the unsaved data needs to be written.

Beispiele für derartige Fehler sind etwa ein Verbindungsabbruch, ein Fehler beim Schreiben des verarbeiteten Datenabschnitts, oder eine übermäßige Verzögerung beim Empfangen des Datenabschnitts.Examples of such errors include a disconnect, an error writing the processed data portion, or an excessive delay in receiving the data portion.

Darüber hinaus kann in beispielhaften Ausführungsformen vor der Prüfung, ob ein Wiederaufnahmepunkt in dem erzeugten Speicherabschnitt liegt, zusätzlich geprüft werden, ob der empfangene Datenabschnitt der letzte Datenabschnitt eines Datenobjekts ist. Falls dies der Fall ist, muss kein Markierungspunkt, also kein Speicherpunkt, Wiederaufnahmepunkt oder Transferpunkt mehr gespeichert werden, so dass das Verfahren abgebrochen werden kann, bevorzugt nach dem erfolgreichen Erzeugen des Speicherabschnitts aus dem letzten Datenabschnitt.In addition, in exemplary embodiments, before checking whether a resume point is in the generated memory section, it can also be checked whether the received data section is the last data section of a data object. If this is the case, no marker point, i.e. no save point, resume point or transfer point, has to be stored anymore, so that the method can be terminated, preferably after the memory section has been successfully generated from the last data section.

Die beschriebenen Ausführungsformen eignen sich beispielsweise für das Schreiben in einem nichtflüchtigen Speicherelement, das zum Speichern der Steuerung einer Steuereinheit vorgesehen ist. Es kann sich dabei etwa um ein Steuergerät eines Fahrzeugs, wie beispielsweise ein Motorsteuergerät handeln, bei dem eine Programmierung oder Neuprogrammierung zumindest eines Teils der Steuerung durch Schreiben in das Speicherelement erfolgen soll.The described embodiments are suitable, for example, for writing in a non-volatile memory element which is provided for storing the control of a control unit. This can be a control device of a vehicle, such as an engine control device, in which programming or reprogramming of at least a part of the control is to take place by writing to the memory element.

Das Empfangen von Datenabschnitten und das Übermitteln von Daten kann zum Beispiel gemäß dem Unified Diagnostic Services-Protokoll durchgeführt werden, was im Fahrzeugbereich ein häufig angewandtes Protokoll zur Kommunikation und Diagnostik darstellt.The receiving of data sections and the transmission of data can be carried out, for example, according to the Unified Diagnostic Services protocol, which is a frequently used protocol for communication and diagnostics in the automotive field.

Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.A computing unit according to the invention, for example a control unit of a motor vehicle, is, in particular their programming, set up to carry out a method according to the invention.

Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.The implementation of a method according to the invention in the form of a computer program or computer program product with program code for carrying out all method steps is advantageous because this causes particularly low costs, especially if an executing control device is also used for other tasks and is therefore available anyway. Suitable data carriers for providing the computer program are, in particular, magnetic, optical and electrical memories, such as hard drives, flash memories, EEPROMs, DVDs, etc. It is also possible to download a program via computer networks (Internet, intranet, etc.).

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further advantages and refinements of the invention result from the description and the attached drawing.

Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.The invention is shown schematically in the drawing using exemplary embodiments and is described below with reference to the drawing.

Figurenlistecharacter list

  • 1 zeigt beispielhaft ein System, in dem Ausführungsformen der Erfindung verwendet werden können, 1 shows an example of a system in which embodiments of the invention can be used,
  • 2 zeigt schematisch zu programmierende Daten mit verschiedenen Wiederaufnahmepunkten, und 2 shows schematically data to be programmed with different resume points, and
  • 3 zeigt beispielhafte Verfahrensschritte in einem Ablaufdiagramm. 3 shows exemplary method steps in a flowchart.

Ausführungsformen der ErfindungEmbodiments of the invention

In 1 ist schematisch ein beispielhaftes System dargestellt, in dem Ausführungsformen der Erfindung verwendet werden können. Das System weist eine Steuereinheit 100 auf, die mit einer oder mehreren Verarbeitungseinheiten 112 wie etwa Microcontroller oder Prozessoren ausgestattet ist, welche mit zugehörigen flüchtigen und nichtflüchtigen Speicherelementen 110 ergänzt werden können. Bei der Steuereinheit 100 kann es sich beispielweise um ein Motorsteuergerät (ECU) oder ein anderes Steuergerät in einem Fahrzeug handeln. Mehrere Steuergeräte 100, 150, 152 und andere Einheiten oder Schnittstellen können über einen Systembus 120 (z.B. CAN, Ethernet, LIN) miteinander verbunden sein, so dass systemweit Informationen über Betriebszustände, Messdaten, Ansteuerungsbefehle und andere Daten übertragen werden können. Ebenso kann über einen derartigen Systembus 120 und eine geeignete Schnittstelle 140 ein Fahrzeugdiagnosegerät 130 angeschlossen werden, das eine Kommunikation mit den Steuergeräten zur Auffindung von Fehlern oder zum Datenabgleich gemäß einem vorgegebenen Diagnoseprotokoll erlaubt. Dabei können auch drahtlose Verbindungen über entsprechende drahtlose Schnittstellen 142 am Systembus verwendet werden, wie etwa WLAN- oder Mobilfunk-Verbindungen, so dass eine Kommunikation mit Steuergeräten nicht mehr nur in Werkstätten, sondern auch jederzeit ortsunabhängig vorgenommen werden kann.In 1 1 is a schematic representation of an example system in which embodiments of the invention may be used. The system comprises a control unit 100 equipped with one or more processing units 112 such as microcontrollers or processors, which can be supplemented with associated volatile and non-volatile memory elements 110 . The control unit 100 can be, for example, an engine control unit (ECU) or another control unit in a vehicle. Several control units 100, 150, 152 and other units or interfaces can be connected to one another via a system bus 120 (eg CAN, Ethernet, LIN), so that information about operating states, measurement data, control commands and other data can be transmitted system-wide. Likewise, a vehicle diagnostic device 130 can be connected via such a system bus 120 and a suitable interface 140, which allows communication with the control devices to locate errors or to compare data according to a predetermined diagnostic protocol. Wireless connections can also be used via corresponding wireless interfaces 142 on the system bus, such as WLAN or mobile radio connections, so that communication with control devices can be carried out not only in workshops, but also at any time, regardless of location.

Die Steuereinheit 100 weist bevorzugt ein nichtflüchtiges Speicherelement 110 auf, das zur Speicherung der erforderlichen Software der Steuerung und von sonstigen Daten dienen kann. Dabei kann es sich beispielsweise um einen Flash-Speicher oder ein (nicht flashbasiertes) EEPROM handeln. Abhängig von der Speichertechnologie sind unterschiedliche Schritte erforderlich, um einen Bereich des Speicherelements neu zu programmieren. Ein direktes Überschreiben von Daten ist meist nicht möglich, stattdessen müssen die jeweiligen Bereiche zunächst gelöscht und anschließend neu beschrieben werden. Während bei einem klassischen EEPROM in kleinen Blöcken bzw. byteweise gelöscht werden muss, erlaubt Flash-Speicher ein schnelleres Löschen in größeren Blöcken.The control unit 100 preferably has a non-volatile memory element 110, which can be used to store the software required for the controller and other data. This can be, for example, a flash memory or a (non-flash-based) EEPROM. Depending on the memory technology, different steps are required to reprogram an area of the memory element. Direct overwriting of data is usually not possible; instead, the respective areas must first be deleted and then rewritten. While a classic EEPROM has to be erased in small blocks or bytes, flash memory allows faster erasing in larger blocks.

Ein häufig verwendetes Protokoll zur Diagnostik und Kommunikation im Fahrzeugbereich ist das UDS-Protokoll (Unified Diagnostic Services). In diesem Protokoll ist auch eine Neuprogrammierung bzw. Aktualisierung der Programmierung eines Steuergeräts vorgesehen. Zu diesem Zweck kann auf der Seite eines über eine Busschnittstelle drahtlos oder drahtgebunden verbundenen Fahrzeugdiagnosegeräts 130, bei dem es sich beispielsweise auch um einen PC mit entsprechenden Softwaremodulen handeln kann, ein softwarebasiertes Programmiermodul 132 (Flash Tool) vorhanden sein, welches Daten zur Programmierung und zugehörige Parameter an Steuereinheiten senden kann.A frequently used protocol for diagnostics and communication in the vehicle sector is the UDS protocol (Unified Diagnostic Services). This protocol also provides for reprogramming or updating the programming of a control unit. For this purpose, a software-based programming module 132 (flash tool) can be present on the side of a vehicle diagnostic device 130 connected wirelessly or by wire via a bus interface, which can also be a PC with corresponding software modules, for example, which contains data for programming and associated Can send parameters to control units.

Dabei können Daten von oder zu der Steuereinheit 100 in vorgegebenen Datenabschnitten übertragen werden. Die Größe dieser Abschnitte kann beispielsweise durch das Kommunikationsprotokoll vorgegeben sein, welches die Übertragung der Daten regelt. Dabei kann die Größe auch durch veränderbare Parameter vorgegeben sein. Im UDS-Protokoll als Beispiel können Daten in beide Übertragungsrichtungen durch einen Dienst mit dem Namen „Transfer Data“ übertragen werden, wobei mehrere Transfer-Data-Vorgänge verwendet werden können, falls die zu übertragenden Datenobjekte größer sind als die vorgegebene Abschnittsgröße. Für eine Aktualisierung bzw. Neuprogrammierung von Teilen der Steuerungssoftware wird dies üblicherweise der Fall sein. Ähnliche Abläufe sind aber auch in anderen Umgebungen und Protokollen möglich. Die so empfangenen Daten können dann in einen nichtflüchtigen Speicher geschrieben werden, optional an einer bestimmten, physikalischen Speicheradresse.In this case, data can be transmitted from or to the control unit 100 in predetermined data sections. The size of these sections can be specified, for example, by the communication protocol that regulates the transmission of the data. The size can also be predetermined by variable parameters. Using the UDS protocol as an example, data can be transferred in both transfer directions by a service called "Transfer Data", where multiple Transfer Data operations can be used if the data objects to be transferred are larger than the specified chunk size. This will usually be the case for updating or reprogramming parts of the control software. But the processes are similar also possible in other environments and protocols. The data received in this way can then be written to a non-volatile memory, optionally at a specific physical memory address.

2 zeigt schematisch die Funktionsweise einer beispielhaften Ausführungsform der Erfindung anhand von empfangenen Datenabschnitten und verarbeiteten Speicherabschnitten in einer Steuereinheit, wobei verschiedene Markierungspunkte definiert sind. 2 shows schematically the functioning of an exemplary embodiment of the invention based on received data sections and processed memory sections in a control unit, with various marking points being defined.

Dabei ist auf der linken Seite ein Datenobjekt 200 gezeigt, das von der Steuereinheit 100 empfangen wird und eine Größe von mehreren Speichereinheiten aufweist. Dabei können die Speichereinheiten auf unterschiedliche Arten definiert sein. Beispielsweise kann einen Speichereinheit einem Byte entsprechen, es können aber auch andere Größen festgelegt werden, je nachdem, in welcher Weise die Adressierung in der jeweiligen Ausführungsform stattfindet. In der Figur sind die Speichereinheiten ohne Größeneinheit angegeben und als beispielhafte Darstellung zu verstehen.A data object 200 is shown on the left-hand side, which is received by the control unit 100 and has a size of several memory units. The storage units can be defined in different ways. For example, a memory unit can correspond to one byte, but other sizes can also be specified, depending on the manner in which the addressing takes place in the respective embodiment. In the figure, the memory units are given without a unit of size and are to be understood as an exemplary representation.

Wie bereits beschrieben, können die Daten an die Steuereinheit in mehreren Datenabschnitten 202, 204, 206, 208 übertragen werden, wobei die Größe der Datenabschnitte vorgegeben sein kann und das Datenobjekt somit in mehrere Übertragungen dieser Größe unterteilt werden kann. Die mit TD1, TD2.... bezeichneten Transferpunkte bezeichnen jeweils die Startposition eines neuen Datenabschnitts in den empfangenen Daten und können mit den festgelegten Speichereinheiten als Parameter angegeben sein. Im vorliegenden Beispiel entspricht der erste Transferpunkt TD1 dem Beginn des gesamten Datenobjekts 200 sowie dem Beginn des ersten Datenabschnitts 202 und damit dem Wert TD1 = 0, der zweite Transferpunkt ist der Beginn des zweiten Datenabschnitts 204 bei einem Wert von TD2 = 10, der dritte Transferpunkt kennzeichnet den Beginn des dritten Datenabschnitts 206 bei TD3 = 20, und so weiter. Im vorliegenden Beispiel weist also jeder Datenabschnitt eine Länge von 10 Speichereinheiten auf.As already described, the data can be transmitted to the control unit in several data sections 202, 204, 206, 208, with the size of the data sections being predetermined and the data object thus being able to be divided into several transmissions of this size. The transfer points designated by TD1, TD2.... each designate the start position of a new data section in the received data and can be specified as parameters with the specified storage units. In the present example, the first transfer point TD1 corresponds to the beginning of the entire data object 200 and the beginning of the first data section 202 and thus the value TD1 = 0, the second transfer point is the beginning of the second data section 204 with a value of TD2 = 10, the third transfer point marks the beginning of the third data section 206 at TD3=20, and so on. In the present example, each data section has a length of 10 memory units.

Das als Beispiel angegebene UDS-Protokoll erlaubt Nachrichten beliebiger Länge, so dass die maximale Größe der Datenabschnitte dort durch das eingesetzte Transportprotokoll vorgegeben wird. Beim häufig verwendeten ISO-TP, einem häufig eingesetzten Transportprotokoll für fahrzeugspezifische Bussysteme, sind zum Beispiel Botschaften bis zu einer Länge von 4095 Byte erlaubt. Zur Verwendung in der vorliegenden Erfindung kann dann beispielsweise die tatsächliche Länge der Abschnitte in Byte für die Transferpunkte angegeben sein; wahlweise können aber auch größere Einheiten mit mehreren Byte als Speichereinheiten für die Transferpunkte gewählt werden, so dass etwa wie im Beispiel ein Wert von 10 Speichereinheiten 640 Byte oder jeder anderen geeigneten Anzahl entsprechen kann.The UDS protocol given as an example allows messages of any length, so that the maximum size of the data sections there is specified by the transport protocol used. With the frequently used ISO-TP, a frequently used transport protocol for vehicle-specific bus systems, for example, messages up to a length of 4095 bytes are permitted. For use in the present invention, then, for example, the actual length of the sections in bytes can be specified for the transfer points; Alternatively, however, larger units with several bytes can be selected as storage units for the transfer points, so that, for example, as in the example, a value of 10 storage units can correspond to 640 bytes or any other suitable number.

Nach dem Empfangen der Datenabschnitte 202, 204, 206, 208 kann die Steuereinheit bzw. ein geeignetes Modul der Steuereinheit diese Daten noch weiter verarbeiten, bevor sie zur Programmierung der Steuereinheit, also zum Schreiben in das Speicherelement 110, bereit sind. Falls die Datenabschnitte komprimiert sind, können sie also nun dekomprimiert werden; zusätzlich oder alternativ können verschlüsselte Daten vor dem Schreiben entschlüsselt werden. Optional kann dabei der Steuereinheit durch einen entsprechenden Indikator in den empfangenen Daten mitgeteilt werden, ob die empfangenen Datenabschnitte verschlüsselt oder komprimiert sind. Ebenso ist auch möglich, dass Informationen über die Verschlüsselung oder Komprimierung der empfangenen Daten z.B. beim Einleiten des Datenempfangs ausgetauscht wurden.After receiving the data sections 202, 204, 206, 208, the control unit or a suitable module of the control unit can process this data further before it is ready for programming the control unit, ie for writing to the memory element 110. Thus, if the data sections are compressed, they can now be decompressed; additionally or alternatively, encrypted data can be decrypted before writing. Optionally, the control unit can be informed by a corresponding indicator in the received data whether the received data sections are encrypted or compressed. It is also possible that information about the encryption or compression of the received data was exchanged, e.g. when data reception was initiated.

Die so verarbeiteten Daten können nun in den nichtflüchtigen Speicher an den vorgegebenen physikalischen Speicheradressen geschrieben werden. Das vorhergehende Löschen der erforderlichen Speicherbereiche ist hier nicht näher beschrieben.The data processed in this way can now be written to the specified physical memory addresses in the non-volatile memory. The previous deletion of the required memory areas is not described in detail here.

Das abgespeicherte Datenobjekt 220 ist rechts gezeigt. Da aber die Adresse in den verarbeiteten, gespeicherten Daten nicht der Adresse in den übertragenen Daten entspricht, da z.B. die dekomprimierten Daten mehr Bytes bzw. Speichereinheiten aufweisen als die komprimierten Daten, kann nun in den gespeicherten Daten zu jedem übertragenen Datenabschnitt ein Speicherpunkt SP definiert werden, welcher den Beginn des Speicherabschnitts 222, 224, 226, 228 bezeichnet, in dem die verarbeiteten Daten des zugehörigen Datenabschnitts 202, 204, 206, 208 geschrieben wurden. Ein erster Speicherpunkt SP1 am Beginn des ersten Speicherabschnitts 222 entspricht also einem ersten Transferpunkt TD1, der den Beginn des ersten übertragenen Datenabschnitts 202 bezeichnet. Ein zweiter Speicherpunkt SP2 entspricht dann einem zweiten Transferpunkt TD2, welcher den Beginn des zweiten Datenabschnitts 204 angibt, der auf den ersten Datenabschnitt 202 folgt. Der zweite Speicherpunkt SP2 kennzeichnet also in den gespeicherten Daten den Beginn des zweiten Speicherabschnitts 224, in welchem die verarbeiteten Daten des zweiten Datenabschnitts abgespeichert sind. Ebenso sind auch zu den weiteren übertragenen Datenabschnitten und abgespeicherten Speicherabschnitten jeweils Transferpunkte und zugehörige Speicherpunkte definiert.The saved data object 220 is shown on the right. However, since the address in the processed, stored data does not correspond to the address in the transmitted data, for example because the decompressed data has more bytes or memory units than the compressed data, a memory point SP can now be defined in the stored data for each transmitted data section , which designates the beginning of the memory section 222, 224, 226, 228 in which the processed data of the associated data section 202, 204, 206, 208 were written. A first memory point SP1 at the beginning of the first memory section 222 thus corresponds to a first transfer point TD1, which designates the beginning of the first data section 202 to be transmitted. A second memory point SP2 then corresponds to a second transfer point TD2 which indicates the beginning of the second data section 204 which follows the first data section 202 . In the stored data, the second memory point SP2 therefore marks the start of the second memory section 224, in which the processed data of the second data section are stored. Transfer points and associated storage points are also defined for the further transmitted data sections and stored memory sections.

Das in der Figur dargestellte Beispiel zeigt komprimierte Daten, so dass die gespeicherten, nicht mehr komprimierten Abschnitte 222, 224, 226, 228 im Vergleich zu den übertragenen Datenabschnitten 202, 204, 206, 208 größer sind. Beispielsweise ist der zweite Transferpunkt TD2 bei 10 Speichereinheiten gezeigt, während der zugehörige zweite Speicherpunkt SP2 einen Wert von 18 aufweist. Ebenso liegt der dritte Transferpunkt TD3 bei 20 Speichereinheiten, während der zugehörige dritte Speicherpunkt bei SP3 = 36 liegt.The example shown in the figure shows compressed data, so that the stored, no longer compressed sections 222, 224, 226, 228 compared to the transmitted data sections 202, 204, 206, 208 are larger. For example, the second transfer point TD2 is shown at 10 storage units, while the associated second storage point SP2 has a value of 18. Likewise, the third transfer point TD3 is at 20 storage units, while the associated third storage point is at SP3=36.

Ebenso könnten die gespeicherten Daten in anderen Fällen aber auch eine geringere Größe als die übertragenen Daten aufweisen, beispielsweise bei bestimmten Verschlüsselungsmethoden.In other cases, the stored data could also be smaller than the transmitted data, for example with certain encryption methods.

Zusätzlich können in dem Speicherelement der Steuereinheit Wiederaufnahmepunkte RP definiert werden, welche sich bevorzugt auf physikalische Speicheradressen des Speicherelements beziehen und damit zunächst unabhängig von den gespeicherten Daten sind. Diese Wiederaufnahmepunkte können angeben, ab welchen Punkten bzw. Adressen jeweils eine Wiederaufnahme des Schreibvorgangs nach einer Unterbrechung möglich ist. Dabei kann ein Wiederaufnahmepunkt als absolute Adresse oder als relative Adresse mit Bezug auf das Schreiben des aktuellen Datenobjekts definiert werden. Bei einer relativen Angabe kann ein Wert von null für den Wiederaufnahmepunkt der Speicheradresse entsprechen, ab dem das gesamte Datenobjekt geschrieben werden soll, während die folgenden Werte wieder in Speichereinheiten relativ zu dieser Adresse angegeben sein können.In addition, resume points RP can be defined in the memory element of the control unit, which preferably relate to physical memory addresses of the memory element and are therefore initially independent of the stored data. These resume points can indicate from which points or addresses the write process can be resumed after an interruption. A resume point can be defined as an absolute address or as a relative address with reference to the writing of the current data object. When relative, a resume point value of zero may correspond to the memory address from which the entire data object is to be written, while subsequent values may again be specified in memory units relative to that address.

Beim Schreiben von erhaltenen Daten im Speicherelement, also bei der Neuprogrammierung bestimmter Programmabschnitte, kann dann nach jedem erhaltenen und verarbeiteten Datenabschnitt abgespeichert werden, welcher Wiederaufnahmepunkt RP erreicht wurde und welcher der entsprechende zugehörige Transferpunkt TD und Speicherpunkt SP ist. Diese Markierungspunkte 250 können beispielsweise in Form eines Zählers bzw. als Variable, welche die betreffenden Markierungspunkte in einer vorgegebenen Einheit (z.B. den zuvor beschriebenen Speichereinheiten) angibt, in einem nichtflüchtigen Speicherelement der Steuereinheit abgespeichert werden. Dabei kann es sich um das Speicherelement handeln, in dem auch das Steuerungsprogramm gespeichert ist; grundsätzlich kann es sich aber auch um ein anderes Speicherelement handeln.When writing received data in the memory element, i.e. when reprogramming certain program sections, it can then be stored after each received and processed data section which resume point RP was reached and which is the corresponding associated transfer point TD and memory point SP. These marking points 250 can be stored in a non-volatile memory element of the control unit, for example in the form of a counter or as a variable which indicates the relevant marking points in a predetermined unit (e.g. the memory units described above). This can be the memory element in which the control program is also stored; in principle, however, it can also be a different storage element.

Falls die Datenübertragung während der Programmierung unterbrochen wird, können die zuletzt abgespeicherten Werte ausgewertet und/oder an das Programmiermodul übermittelt werden, um anzuzeigen, bis zu welcher Stelle die übertragenen Daten bereits abgespeichert wurden. Dies ermöglicht es, bereits vollständig programmierte Datenabschnitte auch bei komprimierten, verschlüsselten oder anderweitig verarbeiteten Daten nicht erneut zu übertragen und die Übertragung und Einspeicherung der Daten an einer geeigneten Stelle fortzusetzen. Die Werte für den letzten Transferpunkt, Speicherpunkt und Wiederaufnahmepunkt, die nach Erhalt und Speicherung eines Datenabschnitts abgespeichert werden, können dabei jeweils den vorherigen gespeicherten Wert für diese Punkte überschreiben. Alternativ können auch die zugehörigen Punkte mehrerer empfangener Datenabschnitte abgespeichert werden, beispielsweise bis zur erfolgreichen Programmierung des gesamten Datenobjekts.If the data transmission is interrupted during programming, the last stored values can be evaluated and/or transmitted to the programming module in order to indicate up to which point the transmitted data have already been stored. This makes it possible not to transmit data sections that have already been fully programmed, even in the case of compressed, encrypted or otherwise processed data, and to continue the transmission and storage of the data at a suitable point. The values for the last transfer point, save point and resume point, which are saved after a data section has been received and saved, can each overwrite the previously saved value for these points. Alternatively, the associated points of several received data sections can also be stored, for example until the entire data object has been successfully programmed.

3 zeigt einen beispielhaften Verfahrensablauf zur Programmierung einer Steuereinheit, wobei die Datenabschnitte und Markierungspunkte in Bezug auf 2 beschrieben werden. 3 FIG. 12 shows an exemplary process flow for programming a control unit, the data sections and marker points relating to FIG 2 to be discribed.

Im Folgenden wird zunächst ein nicht unterbrochener Übertragungs- und Schreibvorgang gemäß einer Ausführungsform beschrieben.In the following, an uninterrupted transmission and writing process according to an embodiment is first described.

Dabei wird in Schritt 300 ein Abruf eines Datenobjekts 200 eingeleitet, das in der Steuereinheit gespeichert werden soll. Zu diesem Zweck kann einen entsprechende Nachricht von dem Programmiertool an die Steuereinheit oder umgekehrt gesendet werden. Optional können dabei auch bestimmte Parameter übermittelt und/oder geprüft werden, um beispielsweise festzustellen, ob das Steuergerät bereit für eine Programmierung ist (kein aktiver Betrieb etc.). Auch Kennungen von Hardware oder Software können optional zwischen den beteiligten Seiten ausgetauscht werden. Ebenso können in diesem Schritt beispielsweise die Grö-ße des gesamten Datenobjekts, die Größe und/oder Anzahl der zu übertragenden Datenabschnitte, die das Datenobjekt bilden, und weitere Parameter übertragen werden.In this case, in step 300 a retrieval of a data object 200 which is to be stored in the control unit is initiated. For this purpose, a corresponding message can be sent from the programming tool to the control unit or vice versa. Optionally, certain parameters can also be transmitted and/or checked in order to determine, for example, whether the control unit is ready for programming (no active operation, etc.). Hardware or software identifiers can also optionally be exchanged between the parties involved. Likewise, in this step, for example, the size of the entire data object, the size and/or number of the data sections to be transmitted, which form the data object, and other parameters can be transmitted.

In Schritt 310 kann dann zunächst der Zähler für alle Markierungspunkte, also für die Transferpunkte, die Speicherpunkte und die Wiederaufnahmepunkte auf null gesetzt werden. Falls nicht für alle Punkte relative Adressen verwendet werden, kann stattdessen beispielsweise der entsprechende Anfangswert für die Speicheradresse gesetzt werden. In Schritt 320 kann ein erster Datenabschnitt 202 von dem Programmiertool in der Steuereinheit empfangen werden, der in Schritt 330 von der Steuereinheit auf vorgesehene Weise bearbeitet wird, also beispielsweise dekomprimiert und/oder entschlüsselt wird.In step 310, the counter for all marker points, ie for the transfer points, the memory points and the resume points, can then be set to zero. If relative addresses are not used for all points, the corresponding initial value for the memory address can be set instead, for example. In step 320, a first data section 202 can be received by the programming tool in the control unit, which is processed by the control unit in the intended manner in step 330, ie, for example, is decompressed and/or decrypted.

In Schritt 340 werden die bearbeiteten Daten beginnend an einer vorgegebenen Speicheradresse in den nichtflüchtigen Speicher geschrieben und bilden so einen ersten Speicherabschnitt 222. In Schritt 350 wird jeweils geprüft, ob es sich bei dem empfangenen Datenabschnitt um den letzten übertragenen Datenabschnitt des Datenobjekts handelt. Dieser Schritt kann optional auch vor dem Schreiben oder Verarbeiten stattfinden.In step 340 the processed data is written to the non-volatile memory starting at a predetermined memory address and thus forms a first memory section 222. In step 350 it is checked in each case whether the received data section is the last one to be transmitted a data section of the data object. This step can optionally also take place before writing or processing.

Anschließend wird in Schritt 360 geprüft, ob bei diesem ersten Transfer- und Speicherschritt mindestens ein Wiederaufnahmepunkt überschritten wurde. Falls dies der Fall ist, wird in Schritt 370 der letzte überschrittene Wiederaufnahmepunkt abgespeichert. Im Beispiel aus 2 wurde durch den ersten Speicherabschnitt 222 auch der erste Wiederaufnahmepunkt RP1 beim Wert 10 überschritten. Zusätzlich können in diesem Schritt auch der Transfer- und Speicherpunkt des zugehörigen Datenabschnitts bzw. Speicherabschnitts abgespeichert werden. Im vorliegenden Beispiel nach dem Übertragen und Speichern des ersten Datenabschnitts werden also für die Wiederaufnahmepunkt-Variable RP der Wert RP1 = 10 abgespeichert, für die Transferpunkt-Variable TD der Wert TD1 = 0, sowie für die Speicherpunkt-Variable SP der Wert SP1 = 0. Falls dagegen kein Wiederaufnahmepunkt überschritten wurde, wird kein neuer Wert gespeichert und die vorliegenden Variablenwerte für Wiederaufnahmepunkt, Transferpunkt und Speicherpunkt bleiben unverändert bestehen.Then, in step 360, it is checked whether at least one resume point was exceeded in this first transfer and storage step. If so, in step 370 the last resume point passed is saved. In the example off 2 the first resuming point RP1 at the value 10 was also exceeded by the first memory section 222 . In addition, the transfer and storage point of the associated data section or storage section can also be stored in this step. In the present example, after the transfer and storage of the first data section, the value RP1 = 10 is stored for the resume point variable RP, the value TD1 = 0 for the transfer point variable TD, and the value SP1 = 0 for the storage point variable SP Conversely, if no resume point has been crossed, no new value is stored and the existing resume point, transfer point, and save point variable values remain unchanged.

Falls damit nicht bereits das vollständige Datenobjekt 200 übertragen wurde, dessen Länge beispielsweise in Schritt 300 mitgeteilt wurde, wird das Verfahren nun erneut mit Schritt 320 mit dem Empfang eines weiteren Datenabschnitts fortgesetzt, der wiederum in Schritt 330 verarbeitet wird und in Schritt 340 anschließend an den vorherigen Speicherabschnitt in den nichtflüchtigen Speicher geschrieben wird. Wie in 2 zu sehen ist, wurden in diesem Beispiel mit dem zweiten Speicherabschnitt 224 sowohl der zweite Wiederaufnahmepunkt RP2 bei der Speicheradresse bzw. beim Wert 20 als auch der dritte Wiederaufnahmepunkt RP3 beim Wert 30 überschritten, wie bei der Prüfung in Schritt 360 festgestellt werden kann. In Schritt 370 werden also nun neue Werte für die Markierungspunkte gespeichert, so dass im Ausführungsbeispiel die Werte RP = 30, TD = 10 und SP = 18 geschrieben werden.If the complete data object 200 has not already been transmitted, the length of which was communicated in step 300, for example, the method is now continued again with step 320 with the receipt of a further data section, which in turn is processed in step 330 and in step 340 subsequent to the previous memory section is written to the non-volatile memory. As in 2 As can be seen, in this example with the second memory section 224 both the second resume point RP2 at the memory address or value 20 and the third resume point RP3 at the value 30 have been exceeded, as can be determined by the test in step 360. In step 370, new values for the marking points are now stored, so that the values RP=30, TD=10 and SP=18 are written in the exemplary embodiment.

Auf diese Weise können die vorstehenden Schritte wiederholt durchlaufen werden, bis alle Datenabschnitte an die Steuereinheit übertragen und dort korrekt gespeichert wurden. Erneut mit Bezug auf das Ausführungsbeispiel aus 2 kann nach dem Speichern des dritten Datenabschnitts 206 bzw. Speicherabschnitts 226 in Schritt 360 festgestellt werden, dass kein neuer Wiederaufnahmepunkt überschritten wurde. Somit wird in diesem Durchlauf kein neuer Wert für die Markierungspunkte gespeichert; es sind also weiterhin die Werte RP = 30, TD = 10 und SP = 18 des vorherigen Durchlaufs gespeichert.In this way, the above steps can be run through repeatedly until all data sections have been transferred to the control unit and stored there correctly. Referring again to the embodiment of FIG 2 After storing the third data section 206 or memory section 226, it can be determined in step 360 that no new resume point has been exceeded. Thus, no new value for the marker points is stored in this pass; the values RP=30, TD=10 and SP=18 of the previous run are therefore still stored.

Schließlich wird nach der Übertragung des vierten Datenabschnitts 208 in Schritt 350 festgestellt, dass es sich um den letzten übertragenen Datenabschnitt des Datenobjekts 200 handelt, so dass keine weitere Speicherung von Markierungspunkten notwendig ist. Der nun ebenfalls überschrittene Wiederaufnahmepunkt RP4 = 50 muss daher nicht abgespeichert werden. Bevorzugt kann diese Prüfung auch erst dann stattfinden, wenn sichergestellt ist, dass die Daten korrekt in den nichtflüchtigen Speicher eingespeichert wurden und beispielsweise keine Fehler beim Schreiben aufgetreten sind.Finally, after the fourth data section 208 has been transmitted, it is determined in step 350 that this is the last transmitted data section of the data object 200, so that no further storage of marking points is necessary. The resume point RP4 = 50, which has now also been exceeded, therefore does not have to be saved. Preferably, this check can also only take place when it is ensured that the data has been correctly stored in the non-volatile memory and, for example, no errors have occurred during writing.

Während vorstehend eine ungestörte Übertragung und Speicherung von Programmdaten in die Steuereinheit beschrieben wurde, wird nun - wieder mit Bezug auf die 2 und 3 - eine unterbrochene Programmierung als Beispiel beschrieben. Dabei kann es sich um beliebige Störungen oder Unterbrechungen handeln. Beispielsweise kann die Übertragung der Daten unmittelbar unterbrochen werden, etwa durch einen Übertragungsfehler oder einen Verbindungsabbruch. Ebenso können aber auch Fehler auf Seiten der Steuereinheit auftreten, wie etwa ein unvorhergesehenes Abschalten, Fehler beim Beschreiben des Speicherelements, oder andere. Die Feststellung einer derartigen Unterbrechung durch die Steuereinheit kann auf beliebige Weise erfolgen und kann auch abhängig von der Art des Fehlers sein. Beispielsweise kann für den Empfang und/oder das Schreiben der übertragenen Daten ein gewisses Zeitfenster vorgesehen sein, so dass eine Zeitüberschreitung als Fehler bzw. Unterbrechung gewertet wird.While above undisturbed transmission and storage of program data was described in the control unit, is now - again with reference to 2 and 3 - an interrupted programming described as an example. This can be any glitches or interruptions. For example, the transmission of the data can be interrupted immediately, for example due to a transmission error or a disconnection. Likewise, however, errors can also occur on the part of the control unit, such as an unforeseen shutdown, errors when writing to the memory element, or others. The detection of such an interruption by the control unit can be done in any way and can also be dependent on the type of error. For example, a certain time window can be provided for receiving and/or writing the transmitted data, so that a timeout is evaluated as an error or interruption.

Es kann somit nach oder während jedem der Schritte 320 (Empfang eines neuen Datenabschnitts), 330 (Verarbeitung des Datenabschnitts), und/oder 340 (Schreiben des verarbeiteten Datenabschnitts) in den zugehörigen Prüfschritten 322, 332 und 342 überprüft werden, ob diese Vorgänge fehlerfrei durchgeführt wurden oder ob beispielsweise in Schritt 320 der erwartete Datenabschnitt nicht bzw. nicht korrekt empfangen wurde.It can thus be checked after or during each of steps 320 (receipt of a new data section), 330 (processing of the data section), and/or 340 (writing of the processed data section) in the associated test steps 322, 332 and 342 whether these processes are error-free were carried out or whether, for example in step 320, the expected data section was not received or was not received correctly.

Bei einer fehlerhaften Übertragung oder einer anderen Störung, falls also in einem der Schritte 322, 332 oder 342 ein Fehler festgestellt wurde, kann die Steuereinheit eine Meldung an das übertragende Programmiermodul senden, in dem angegeben wird, welche Daten erneut übertragen werden müssen. Zu diesem Zweck kann die Steuereinheit nun in Schritt 380 die letzten gespeicherten Markierungspunkte auslesen und den gespeicherten Wert für den Transferpunkt TD an das Programmiermodul übermitteln. In Folge kann das Programmiermodul die Übertragung der Datenabschnitte unmittelbar mit dem durch den übermittelten Transferpunkt angegebenen Datenabschnitt fortsetzen, so dass die Steuereinheit in Schritt 382 diesen Datenabschnitt erneut empfängt.In the event of a failed transmission or other failure, that is, if an error is detected in any of steps 322, 332, or 342, the controller may send a message to the transmitting programmer module specifying what data needs to be retransmitted. For this purpose, the control unit can now read out the last saved marking points in step 380 and transmit the saved value for the transfer point TD to the programming module. As a result, the programming module can continue the transfer of the data sections immediately with the data section indicated by the transmitted transfer point, so that in step 382 the control unit receives this data section again.

Die Steuereinheit kann dann wiederum den erneut übertragenen Datenabschnitt wie zuvor in Schritt 384 bearbeiten, also z.B. dekomprimieren und entschlüsseln, aber dann die Daten, die zwischen dem letzten abgespeicherten Speicherpunkt und dem letzten gespeicherten Wiederaufnahmepunkt liegen, verwerfen. Erst die Daten des Speicherabschnitts, die nach dem letzten Wiederaufnahmepunkt liegen, werden dann in Schritt 386 in den nichtflüchtigen Speicher geschrieben. Die Daten, die bereits vor diesem Wiederaufnahmepunkt in den Speicher geschrieben wurden, müssen daher nicht erneut geschrieben werden.Again, the controller may operate on the retransmitted portion of data as before in step 384, e.g., decompress and decrypt, but then discard the data between the last saved memory point and the last saved resume point. Only the data of the memory section which is after the last resume point is then written in step 386 into the non-volatile memory. Therefore, the data that was already written to memory prior to this resume point does not need to be rewritten.

Es versteht sich, dass auch während dieser erneuten Übertragung im Fehlerfall nach oder bei jedem Schritt geprüft werden kann, ob dieser Schritt fehlerfrei erfolgt ist, also ob z.B. der erneut übertragene Datenabschnitt nun erfolgreich übermittelt wurde, und dass ansonsten auch wiederholt die Verfahrensschritte ab Schritt 380 durchgeführt werden können, auch wenn dies in 3 zur Vereinfachung nicht dargestellt ist. Dabei kann optional auch festgelegt sein, dass nach einer bestimmten Anzahl von fehlerhaften Versuchen die Programmierung abgebrochen wird oder eine andere Fehlermeldung an das Programmiermodul gesendet wird, oder dass beispielsweise für eine bestimmte Zeit gewartet wird, bevor ein erneuter Übertragungsversuch gestartet wird.It goes without saying that even during this re-transmission, in the event of an error, after or during each step it can be checked whether this step has taken place without errors, i.e. whether, for example, the re-transmitted data section has now been successfully transmitted, and that otherwise the procedural steps from step 380 are repeated can be carried out, even if this is in 3 is not shown for the sake of simplicity. It can optionally also be specified that after a certain number of failed attempts, the programming is aborted or another error message is sent to the programming module, or that, for example, there is a wait for a certain time before a new transmission attempt is started.

Falls der Fehler nicht in der Übertragung aufgetreten ist, sondern beispielsweise beim Schreiben der verarbeiteten Daten, und falls die erforderlichen Daten des durch den gespeicherten Transferpunkt angegebenen Datenabschnitts noch in der Steuereinheit vorhanden sind, beispielsweise in einem flüchtigen Zwischenspeicher, kann die erneute Übertragung alternativ ausgelassen werden und wie beschrieben die Daten nach dem Wiederaufnahmepunkt geschrieben werden, während die übrigen Daten zwischen dem letzten Speicherpunkt und dem Wiederaufnahmepunkt verworfen werden.Alternatively, if the error did not occur in the transmission, but e.g. when writing the processed data, and if the required data of the data section specified by the stored transfer point is still present in the control unit, e.g. in a volatile buffer, the retransmission can alternatively be omitted and as described, writing the data after the resume point while discarding the remaining data between the last save point and the resume point.

So können in einem Beispielfall wie in 2 die ersten beiden Datenabschnitte 202, 204 wie bereits vorstehend beschrieben übertragen und gespeichert werden. Ebenso wurden nach beiden Datenabschnitten die vorstehend beschriebenen Markierungspunkte eingespeichert, so dass nach dem Übertragen und Speichern des zweiten Datenabschnitts die Werte TD = TD2 = 10 für den Transferpunkt, SP = SP2 = 18 für den Speicherpunkt, und RP = RP3 = 30 für den Wiederaufnahmepunkt abgespeichert sind. Nun kommt es als Beispiel zu einer Unterbrechung während der Übertragung des dritten Datenabschnitts, der mit dem dritten Transferpunkt TD3 = 20 beginnt. Bei einer herkömmlichen, nicht verschlüsselten oder komprimierten Übertragung könnte an das Programmiermodul nun die Speicheradresse des letzten überschrittenen Wiederaufnahmepunkts, also RP = 30 übermittelt werden, von wo dann die Programmierung wieder aufgenommen werden kann. Stattdessen kann nun in Schritt 380 der derzeit abgespeicherte zweite Transferpunkt TD = 10 von der Steuereinheit an das Programmiermodul übermittelt werden, woraufhin das Programmiermodul die Übertragung mit dem durch diesen Transferpunkt markierten zweiten Datenabschnitt wieder aufnehmen kann. Der zweite Datenabschnitt wird also in Schritt 382 erneut übermittelt (und wie zuvor verarbeitet), weil ein Teil des zugehörigen Speicherabschnitts nach dem letzten (dritten) Wiederaufnahmepunkt zu liegen kommt. Da jedoch der erste Speicherabschnitt sowie der erste Teil des verarbeiteten zweiten Speicherabschnitts, der vor dem dritten Wiederaufnahmepunkt liegt, bereits korrekt abgespeichert wurde, kann die Steuereinheit nun die erneut übertragenen Daten dieses ersten Teils verwerfen, also die Daten, die den Teil des Speicherabschnitts zwischen dem zweiten Speicherpunkt SP2 = 18 und dem dritten Wiederaufnahmepunkt RP3 = 30 bilden. Somit verwirft die Steuereinheit die ersten 12 Speichereinheiten des verarbeiteten Datenabschnitts und schreibt anschließend in Schritt 384 die verbleibenden Speichereinheiten ab dem dritten Wiederaufnahmepunkt RP3 in das nichtflüchtige Speicherelement.So in an example case like in 2 the first two data sections 202, 204 are transmitted and stored as already described above. Likewise, the marker points described above were stored after both data sections, so that after the transmission and storage of the second data section, the values TD = TD2 = 10 for the transfer point, SP = SP2 = 18 for the storage point, and RP = RP3 = 30 for the resume point are saved. Now, as an example, an interruption occurs during the transfer of the third data section beginning with the third transfer point TD3=20. In the case of a conventional, non-encrypted or compressed transmission, the memory address of the last resume point that was exceeded, ie RP=30, could now be transmitted to the programming module, from where programming can then be resumed. Instead, the currently stored second transfer point TD=10 can now be transmitted from the control unit to the programming module in step 380, whereupon the programming module can resume transmission with the second data section marked by this transfer point. Thus, the second data chunk is retransmitted (and processed as before) in step 382 because a portion of the associated memory chunk comes after the last (third) resume point. However, since the first memory section and the first part of the processed second memory section, which lies before the third resumption point, have already been saved correctly, the control unit can now discard the retransmitted data of this first part, i.e. the data that contains the part of the memory section between the second save point SP2=18 and third resume point RP3=30. Thus, the control unit discards the first 12 storage units of the processed data portion and then in step 384 writes the remaining storage units from the third resume point RP3 into the non-volatile storage element.

Nach dieser erneuten Übertragung 384 des zweiten Datenabschnitts kann die Übertragung, Verarbeitung und Speicherung der übrigen Daten mit dem dritten und jedem weiteren Datenabschnitt wie bereits beschrieben in Schritt 320 fortgesetzt werden, bis alle Datenabschnitte übertragen wurden und das gesamte Datenobjekt in den Speicher der Steuereinheit geschrieben wurde.After this re-transmission 384 of the second data chunk, the transmission, processing and storage of the remaining data may continue with the third and any further data chunks as previously described in step 320 until all data chunks have been transmitted and the entire data object has been written to the controller memory .

Da in diesem speziellen Beispiel mit dem dritten Speicherabschnitt 226 (zwischen SP3 und SP4 in 2) kein Wiederaufnahmepunkt überschritten wird, werden wie bereits oben beschrieben nach diesem Abschnitt keine neuen Markierungspunkte abgespeichert. Ein Übertragungsfehler beim vierten Datenabschnitt würde daher zu demselben Ergebnis führen wie der vorstehend beschriebene Ablauf für einen Übertragungsfehler beim dritten Datenabschnitt.Because in this particular example, with the third memory section 226 (between SP3 and SP4 in 2 ) no resume point is passed, no new marker points are saved after this section as described above. A transmission error in the fourth data section would therefore lead to the same result as the procedure described above for a transmission error in the third data section.

Mittels der beschriebenen Verfahren kann also ein Wiederaufsetzen einer Programmierung nach einer Unterbrechung auch bei Datenobjekten eingesetzt werden, bei denen die Größe der empfangenen Datenabschnitte noch durch einen Verarbeitungsschritt in der Steuereinheit verändert wird. Die Schritte sind jedoch ebenso auf nicht verschlüsselte oder komprimierte Daten anwendbar, bzw. auf Daten, die bei einer eventuellen Verarbeitung keine Änderung der Größe ergeben. Optional kann in beispielhaften Ausführungsformen geprüft werden, ob die Daten komprimiert, verschlüsselt oder anderweitig in ihrer Größe verändert sind, und dann wahlweise die beschriebenen Schritte mit Übertragung der Transferpunkte oder eine direkte Adressierung über die Wiederaufnahmepunkte nutzen.Using the methods described, programming can be restarted after an interruption even in the case of data objects in which the size of the received data sections is still changed by a processing step in the control unit. However, the steps are equally applicable to non-encrypted or compressed data, respectively Data that, if processed, do not result in a change in size. Optionally, in exemplary embodiments, it can be checked whether the data is compressed, encrypted or otherwise resized, and then optionally use the described steps with transmission of the transfer points or direct addressing via the resumption points.

Es versteht sich, dass zusätzlich zu den genannten Schritten weitere Verfahrensschritte stattfinden können und weitere oder andere Nachrichten gesendet werden können, die hier nicht ausdrücklich genannt sind. Weitere Details der Datenübertragung können sich dabei nach dem jeweils verwendeten Kommunikationsprotokoll bzw. Transportprotokoll richten und diesem entnommen werden.It goes without saying that, in addition to the steps mentioned, further method steps can take place and further or other messages can be sent that are not expressly mentioned here. Further details of the data transmission can depend on the communication protocol or transport protocol used in each case and can be taken from this.

Das Verfahren kann in allen Fällen verwendet werden, in denen die Daten vor dem Speichern verarbeitet werden und dabei die Adresse in den übertragenen Daten nicht der Adresse in den gespeicherten Daten entspricht, d.h. wenn die Größe der übertragenen Abschnitte sich von der Größe der gespeicherten Abschnitte unterscheidet. Dies ist insbesondere der Fall, wenn übertragene Daten zunächst dekomprimiert und/oder entschlüsselt werden müssen.The method can be used in all cases where the data is processed before storage and the address in the transferred data does not correspond to the address in the stored data, ie when the size of the transferred sections differs from the size of the stored sections . This is particularly the case when transmitted data must first be decompressed and/or decrypted.

Die vorstehenden Beispiele wurden in Bezug auf das UDS-Protokoll beschrieben, jedoch kann die Idee grundsätzlich auch mit anderen Protokollen eingesetzt werden, die ähnliche Abläufe beim Neuprogrammieren einer Vorrichtung anwenden.The examples above have been described in relation to the UDS protocol, but the idea can in principle be used with other protocols that use similar procedures when reprogramming a device.

Claims (15)

Verfahren zum Wiederaufnehmen eines Schreibvorgangs in einem nichtflüchtigen Speicherelement (110), umfassend: Empfangen (320) eines Datenabschnitts (202, 204, 206, 208), wobei ein Transferpunkt (TD) definiert ist, welcher einen Beginn des Datenabschnitts anzeigt; Verarbeiten (330) des empfangenen Datenabschnitts (202, 204, 206, 208); Erzeugen (340) eines Speicherabschnitts (222, 224, 226, 228) durch Schreiben des verarbeiteten Datenabschnitts in das nichtflüchtige Speicherelement, wobei ein Speicherpunkt (SP) des Datenabschnitts definiert ist, welcher einen Beginn des aus dem Datenabschnitt erzeugten Speicherabschnitts anzeigt; wobei in dem nichtflüchtigen Speicherelement (110) ein oder mehrere Speicheradressen als Wiederaufnahmepunkte (RP) definiert sind, an denen ein Schreiben in das nichtflüchtige Speicherelement nach einer Unterbrechung wieder aufgenommen werden kann; Prüfen (360), ob mindestens ein Wiederaufnahmepunkt (RP) in dem erzeugten Speicherabschnitt liegt; und falls dies der Fall ist, Abspeichern (370) des Transferpunkts und des Speicherpunkts des Datenabschnitts, und Abspeichern des letzten Wiederaufnahmepunkts, der in dem geschriebenen Speicherabschnitt liegt.A method for resuming a write operation in a non-volatile memory element (110), comprising: receiving (320) a portion of data (202, 204, 206, 208) wherein a transfer point (TD) is defined which indicates a beginning of the portion of data; processing (330) the received portion of data (202, 204, 206, 208); creating (340) a memory section (222, 224, 226, 228) by writing the processed data section to the non-volatile memory element, wherein a memory point (SP) of the data section is defined which indicates a beginning of the memory section created from the data section; wherein in the non-volatile memory element (110) one or more memory addresses are defined as resume points (RP) at which writing to the non-volatile memory element can be resumed after an interruption; checking (360) whether at least one resume point (RP) is in the created portion of memory; and if so, storing (370) the transfer point and the save point of the data portion, and storing the last resume point that is within the written portion of memory. Verfahren nach Anspruch 1, wobei ein oder mehrere Datenabschnitte (202, 204, 206, 208) ein Datenobjekt (200) bilden, und wobei die Schritte wiederholt werden, bis alle Datenabschnitte des Datenobjekts (200) in das nichtflüchtige Speicherelement (110) geschrieben wurden.procedure after claim 1 wherein one or more data portions (202, 204, 206, 208) form a data object (200), and wherein the steps are repeated until all data portions of the data object (200) have been written to the non-volatile memory element (110). Verfahren nach Anspruch 1 oder 2, wobei ein oder mehrere Datenabschnitte (202, 204, 206, 208) ein Datenobjekt (200) bilden, und wobei ein oder mehrere entsprechende Speicherabschnitte (222, 224, 226, 228) ein gespeichertes Datenobjekt (220) bilden, wobei Transferpunkte (TD) und/oder Speicherpunkte (SP) eines Datenabschnitts als relative Speicheradressen in Bezug auf das Datenobjekt (200, 220) definiert werden.procedure after claim 1 or 2 , wherein one or more data sections (202, 204, 206, 208) form a data object (200), and wherein one or more corresponding memory sections (222, 224, 226, 228) form a stored data object (220), wherein transfer points (TD ) and/or memory points (SP) of a data section are defined as relative memory addresses with respect to the data object (200, 220). Verfahren nach einem der vorhergehenden Ansprüche, wobei die Wiederaufnahmepunkte (RP) als relative oder absolute Speicheradressen des nichtflüchtigen Speicherelements definiert sind.Method according to one of the preceding claims, wherein the resume points (RP) are defined as relative or absolute memory addresses of the non-volatile memory element. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verarbeiten (330) des Datenabschnitts eine Veränderung der Größe des Datenabschnitts bewirkt.A method according to any one of the preceding claims, wherein the processing (330) of the data portion causes a change in the size of the data portion. Verfahren nach einem der vorhergehenden Ansprüche, wobei der empfangene Datenabschnitt komprimiert und/oder verschlüsselt ist, und wobei das Verarbeiten (330) des Datenabschnitts ein Dekomprimieren bzw. Entschlüsseln des Datenabschnitts umfasst.The method of any preceding claim, wherein the received data portion is compressed and/or encrypted, and wherein processing (330) the data portion includes decompressing or decrypting the data portion. Verfahren nach einem der vorhergehenden Ansprüche, weiter umfassend: Zurücksetzen (310) von Variablen für das Abspeichern des Transferpunkts (TD), des Speicherpunkts (SP) und des Wiederaufnahmepunkts (RP) vor dem Erzeugen eines ersten Speicherabschnitts (222).Method according to any one of the preceding claims, further comprising: resetting (310) variables for storing the transfer point (TD), the storage point (SP) and the resume point (RP) before creating a first storage section (222). Verfahren nach einem der vorhergehenden Ansprüche, weiter umfassend: Prüfen (322, 332, 342), ob beim Empfangen eines Datenabschnitts und/oder beim Erzeugen eines Speicherabschnitts ein Fehler aufgetreten ist, und falls dies der Fall ist, Durchführen der folgenden Schritte: Übermitteln (380) eines zuletzt abgespeicherten Transferpunkts an einen Sender, von dem der Datenabschnitt empfangen wurde; erneutes Empfangen und Verarbeiten (382) des Datenabschnitts, der dem übermittelten Transferpunkt entspricht; und Verwerfen von Daten, die beim Erzeugen des Speicherabschnitts aus dem erneut empfangenen Datenabschnitt für Speicheradressen zwischen dem zuletzt gespeicherten Speicherpunkt und dem zuletzt gespeicherten Wiederaufnahmepunkt vorgesehen sind, und Schreiben (384) der nicht verworfenen Daten des verarbeiteten Datenabschnitts nach dem zuletzt gespeicherten Wiederaufnahmepunkt.Method according to one of the preceding claims, further comprising: checking (322, 332, 342) whether an error has occurred when receiving a data section and/or creating a memory section, and if this is the case, performing the following steps: transmitting ( 380) a last stored transfer point to a sender from which the data section was received; re-receiving and processing (382) the portion of data corresponding to the transmitted transfer point corresponds; and discarding data intended for memory addresses between the last saved memory point and the last saved resume point in creating the memory portion from the re-received data portion, and writing (384) the non-discarded data of the processed data portion after the last saved resume point. Verfahren nach Anspruch 8, wobei der aufgetretene Fehler eines der folgenden umfasst: einen Verbindungsabbruch, einen Fehler beim Schreiben des verarbeiteten Datenabschnitts, eine Verzögerung beim Empfangen des Datenabschnitts.procedure after claim 8 , wherein the error that has occurred comprises one of the following: a connection abort, an error in writing the processed data section, a delay in receiving the data section. Verfahren nach einem der vorhergehenden Ansprüche, weiter umfassend: vor dem Schritt des Prüfens (360), ob ein Wiederaufnahmepunkt in dem erzeugten Speicherabschnitt liegt: Prüfen (350), ob der empfangene Datenabschnitt der letzte Datenabschnitt eines Datenobjekts (200) ist, und Abbrechen des Verfahrens nach dem erfolgreichen Erzeugen des letzten Speicherabschnitts (228) aus dem letzten Datenabschnitt (208).Method according to any one of the preceding claims, further comprising: before the step of checking (360) whether a resume point is in the created memory section: checking (350) whether the received data chunk is the last data chunk of a data object (200), and aborting the method after successfully creating the last memory section (228) from the last data section (208). Verfahren nach einem der vorhergehenden Abschnitte, wobei das nichtflüchtige Speicherelement (110) zum Speichern der Steuerung einer Steuereinheit (100) vorgesehen ist.Method according to one of the preceding sections, wherein the non-volatile memory element (110) is for storing the control of a control unit (100). Verfahren nach einem der vorhergehenden Ansprüche, wobei mindestens das Empfangen von Datenabschnitten und das Übermitteln von Daten gemäß dem Unified Diagnostic Services-Protokoll durchgeführt wird.A method according to any one of the preceding claims, wherein at least the receiving of data portions and the transmitting of data is performed according to the Unified Diagnostic Services protocol. Recheneinheit, die dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.Arithmetic unit which is set up to carry out all method steps of a method according to one of the preceding claims. Computerprogramm, das eine Recheneinheit dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 12 durchzuführen, wenn es auf der Recheneinheit ausgeführt wird.Computer program that causes a computing unit to carry out all the method steps of a method according to one of Claims 1 until 12 to be performed when it is executed on the computing unit. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 14.Machine-readable storage medium with a computer program stored on it Claim 14 .
DE102020209128.5A 2020-07-21 2020-07-21 Resumption of a write operation in a memory element after an interruption Pending DE102020209128A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102020209128.5A DE102020209128A1 (en) 2020-07-21 2020-07-21 Resumption of a write operation in a memory element after an interruption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020209128.5A DE102020209128A1 (en) 2020-07-21 2020-07-21 Resumption of a write operation in a memory element after an interruption

Publications (1)

Publication Number Publication Date
DE102020209128A1 true DE102020209128A1 (en) 2022-01-27

Family

ID=79179304

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020209128.5A Pending DE102020209128A1 (en) 2020-07-21 2020-07-21 Resumption of a write operation in a memory element after an interruption

Country Status (1)

Country Link
DE (1) DE102020209128A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018105427A1 (en) 2017-05-11 2018-11-15 Western Digital Technologies, Inc. Maintaining data during power off

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018105427A1 (en) 2017-05-11 2018-11-15 Western Digital Technologies, Inc. Maintaining data during power off

Similar Documents

Publication Publication Date Title
EP3326101B1 (en) Method and system for firmware-updating a control device for process control
EP2702497B1 (en) Method and device for serial data transmission which is adapted to memory sizes
DE102010043011A1 (en) Parallel programming and updating of building services bus subscribers
DE10318031A1 (en) Method to ensure the integrity and authenticity of Flashware for ECUs
DE19839680A1 (en) Altering control equipment memory contents involves securing first and/or second programs and/or data by copying before clearing, copying and/or reading in program/data
DE102017127903A1 (en) Connection device for a data exchange between a fieldbus network and a cloud
DE102014001462B4 (en) Field bus module, machine control and method for parameterizing an, in particular safety-related, field bus module
EP1417469A2 (en) Communication method and communication module
DE102020209128A1 (en) Resumption of a write operation in a memory element after an interruption
EP3811261A1 (en) Cryptography module and method for operating same
EP2297967B1 (en) Devices and method for processing data packets of a data stream and use of said devices
WO2023036597A1 (en) Method and system for controlling a transmission of data on the basis of at least one attribute of a file
DE102013214795A1 (en) Tachograph arrangement and method for operating a tachograph arrangement
DE112021004928T5 (en) ELECTRONIC CONTROL DEVICE
DE102009027168B4 (en) Method for determining a transmitted telegram data length
EP3797352B1 (en) Method for exchanging a first executable program code and a second executable program code, and control unit
WO2021197820A1 (en) Method for handling an anomaly in data, in particular in a motor vehicle
EP1876533A1 (en) Assembly and method for loading data into a storage device
DE102018221954A1 (en) Computing device and method for operating a computing device
EP3871393A1 (en) Method for monitoring a data transmission system, data transmission system and motor vehicle
DE102021002488A1 (en) Method for error analysis of a functionality provided by an embedded system on a developer system
DE112018007104T5 (en) Information processing device, method and program
WO2021197828A1 (en) Method for processing a data anomaly, in particular in a motor vehicle
EP4300893A1 (en) Device and method for coupling a device network and a communication network and automation system
WO2024008460A1 (en) Method for processing log files, data processing system and vehicle

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed