WO2019242996A1 - Method for updating software on a target device - Google Patents

Method for updating software on a target device Download PDF

Info

Publication number
WO2019242996A1
WO2019242996A1 PCT/EP2019/063602 EP2019063602W WO2019242996A1 WO 2019242996 A1 WO2019242996 A1 WO 2019242996A1 EP 2019063602 W EP2019063602 W EP 2019063602W WO 2019242996 A1 WO2019242996 A1 WO 2019242996A1
Authority
WO
WIPO (PCT)
Prior art keywords
update
software
target device
data packet
information
Prior art date
Application number
PCT/EP2019/063602
Other languages
German (de)
French (fr)
Inventor
Lars PLISCHKE
Georg Rudolph
Wolfgang Fischer
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 EP19726990.5A priority Critical patent/EP3811203A1/en
Priority to CN201980053946.5A priority patent/CN112567339A/en
Publication of WO2019242996A1 publication Critical patent/WO2019242996A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Definitions

  • the invention is based on a method or a device according to the type of the independent claims.
  • the present invention also relates to a computer program.
  • So-called delta processes can be used to update the software of components. Differences between two software versions are calculated and transferred to the respective components.
  • Update device a corresponding update device, a method for processing a data packet and / or
  • Update device deposited copy of the current software to create a data packet representing the new software
  • the target device and / or the update device can be used and / or arranged, for example, in a vehicle or in an industrial system or a machine or in various other devices that are connected and connected to one another.
  • a target device or target unit can be understood to mean an electrical device, for example a control device that processes sensor signals and outputs control and / or data signals as a function thereof.
  • the target device can have an interface that can be designed in terms of hardware and / or software.
  • the target device controls the
  • the target device can, for example, access sensor signals such as acceleration, pressure, steering angle or environment sensor signals.
  • the control can take place via corresponding actuators such as brake or steering actuators.
  • a device for example installed in the vehicle, can be used for storing backups and controlling
  • Update processes can be understood in a delta process.
  • the first interface can be a radio interface for wireless communication, for example with the vehicle.
  • communication can take place via the first interface in a wired manner.
  • the second interface can be a radio interface for wireless communication, for example with the vehicle.
  • An external data processing device can be understood to mean, for example, a server or a mobile terminal. Under one
  • Differentiation information can be understood, for example, a so-called delta file.
  • a delta file also referred to as a delta update file
  • the differentiation information can represent a significantly smaller amount of data compared to a full version of the new software.
  • the data package can be a compressed or uncompressed update package for installing the full version of the new software.
  • the issuing step can be dependent on whether that
  • Target device only a software updater or additionally one
  • Update unit for example with a delta installer, for performing a delta method.
  • the data packet can be output in the first case, while in the second case it is sufficient to output only the differentiation information.
  • the approach presented here relates to devices that have software updates or consist of several components, each of which supports a software update, but has its own memory and is connected to one another. Individual components can be restricted due to their resource situation.
  • the approach presented here is based on the knowledge that to update the software of individual components, for example a vehicle, to a new version, a so-called delta file, which contains the differences between a currently installed version and the new version, and a copy of the, for example, stored in the vehicle currently installed version can be used, for example, to calculate and check the new version in the vehicle itself, before the new version is loaded onto the relevant component.
  • a so-called delta file which contains the differences between a currently installed version and the new version
  • a copy of the, for example, stored in the vehicle currently installed version can be used, for example, to calculate and check the new version in the vehicle itself, before the new version is loaded onto the relevant component.
  • security For example, errors affecting the vehicle when updating are kept to a minimum. It also has one
  • Update procedure has the advantage that, instead of a full version of the software, only the delta file assigned to the relevant component
  • Update This enables the update to be carried out particularly quickly and efficiently, in particular if the update is imported, for example, via a radio interface.
  • both the old and the new software are stored in the vehicle as a centrally stored backup, it is possible, for example, in the event of an error, to perform a full update or rollback as required
  • the approach presented here encompasses a system-wide delta update procedure that calculates, saves and verifies new versions from a delta file in an update device, such as a central delta installer with an integrated backup server, in order to use the new software in a second Step to distribute to the appropriate target units in the overall system.
  • an update device such as a central delta installer with an integrated backup server
  • Only one delta update version should ever be transmitted, be it wireless or in the internal system, for example via a vehicle bus.
  • Delta update files can only be transferred if the target unit also has a delta update.
  • Backup software for the individual target units must be available in the update device or at least be able to be loaded.
  • the update device can be created, for example, with one or more central installation units with one or more delta installers with corresponding storage resources, although it is rather common only to have a central point that supports several Delta Installers if necessary.
  • These central installation units with delta installer can have one or more delta update procedures and must also have the current software of the target unit as a backup or at least have access to it. It does not matter whether the target units use an update unit with or without a delta installer. The security of the update process is therefore not solely due to the individual components, but primarily centrally through the
  • Update units with delta installers of the individual components require minimal additional resources and less memory access than with a full update.
  • a major advantage of the approach presented here is that a resource-related expansion of the target units, such as RAM or flash memory, can be omitted and a secure update including rollback can still be supported. This means that even small target systems can use delta update procedures.
  • Another advantage is that wireless data transmission to the overall system, for example, can be minimized by the delta update process. This also applies to individual components that do not themselves support delta updates, and also in the event that a full update is to take place via the internal bus.
  • the bus load in the target system can be minimized if the target units themselves have an update unit with a delta installer.
  • the target units can carry out a delta update process very quickly, since no additional memory accesses are required.
  • the installation unit of the target units with delta installer does not require any rollback functionality for each component, since this can be implemented centrally in the update device.
  • the protection of the delta installer against each component is also advantageous.
  • the update device runs autonomously with the central delta installer and can check the received software without influencing the target unit and save it in a new version as a backup, it can be checked whether the software is correct before the user is even affected by a software update can be.
  • defects in target units can be avoided since the software is pre-checked or a backup of a full version of old and new software is available in the update device with a central delta installer.
  • Such a method can easily be integrated into existing central units, such as a central gateway.
  • such a method can be applied to any number of components, provided there is enough storage space.
  • the method can include a step of
  • the step of outputting the data packet and / or the differentiation information can be outputted depending on a result of the checking.
  • the integrity of the data packet can be determined using a
  • Checksum are checked to detect bit errors in the data packet. This allows errors in the data packet to be recognized early or corrected. This prevents incorrect software updates on the target device. Alternatively, bit errors can already be handled by the software update process. According to a further embodiment, the
  • Discrimination information is suppressed when it is found during the check that the data packet is faulty. This can prevent incorrect update data from being transferred to the target device. Functional failures of the target device as a result of an incorrect update can thus be avoided.
  • Data packets received by the update device are forwarded directly to the target device without prior calculation.
  • the target device and the update device calculate the new software in parallel or in succession.
  • the new software can be labeled as the current software if the result information from the target device indicates that the update was successful. Additionally or alternatively, the step of issuing can be carried out again by the update device in order to obtain the copy and / or reset information
  • the target device Return the target device to an earlier version of the software to the interface to the target device if the result information of the target device indicates that the update was unsuccessful. As a result, the risk of functional failures of the target device as a result of an update can be reduced to a minimum.
  • the target device is reset to an earlier version of the software
  • Update device with a central delta installer calculate a delta version between the new and old version in order to switch from the new software back to the old one. To do this, the installation units with the central delta installer also require a delta generator.
  • the approach presented here creates an update device with units that are designed to execute and / or to control the method according to one of the above embodiments.
  • the approach presented here also creates a process for
  • the approach presented here also relates to a target device with units which are designed to carry out and / or to control the processing method according to the above embodiment.
  • Target device or an update device can be implemented.
  • a computer program product or computer program with program code which can be stored on a machine-readable carrier or storage medium such as a semiconductor memory, a hard disk memory or an optical memory and for carrying out, implementing and / or controlling the steps of a method according to one of the
  • Fig. 1 is a schematic representation of a data flow in the
  • FIG. 2 shows a schematic illustration of the creation of a data packet from FIG. 1;
  • FIG. 3 shows a schematic illustration of an update device from FIG. 1 at three successive points in time
  • Fig. 4 is a schematic representation of a data flow in the
  • FIG. 5 shows a flowchart of a method for updating software according to an exemplary embodiment
  • Fig. 6 is a flowchart of a method for processing a
  • Fig. 7 is a schematic representation of a vehicle according to a
  • Fig. 1 shows a schematic representation of a data flow in the
  • Updating software on three target devices 100, 102, 104 here only by way of example control devices of a machine, here only by way of example of a vehicle, in a method according to an exemplary embodiment.
  • An exemplary sequence of an over-the-air update process is shown with an update device 106, which comprises an installation unit 120 with a central delta installer for target devices 100, 102 with and for a target device 104 without a delta update.
  • the three target devices 100, 102, 104 are each coupled to a central update device 106, for example of the vehicle.
  • the update device 106 comprises a receiving unit 108 for
  • Interface 116 here a radio interface as an example, to an external data processing device 118, which can also be a cable connection or a USB medium, among other things.
  • Differentiation information 110, 112, 114 is, for example, each a delta update file for software update in a so-called delta method.
  • the differentiation information in each case represents differences between current software installed on the respective target device 100, 102, 104 and new software to be installed on the respective target device 100, 102, 104.
  • Receiving unit 108 received differentiation information 110, 112, 114 each with a suitable storage unit 122, such as one
  • Flash memory combined copy of the current software installed on the respective target devices 100, 102, 104 to combine to form a data packet.
  • the three data packets each represent a full version of the new software to be installed on the respective target devices 100, 102, 104.
  • the installation unit 120 checks the data packets for their respective integrity, for example by means of checksums or other suitable check values. Only if a data packet is error-free and the calculation of the full version of the new software was also successful, does the installation unit 120 trigger one
  • Update process for updating the relevant target device 100, 102, 104 is updated.
  • the installation unit 120 provides the first differentiation information 110 after it has been more successful Checking the data packet assigned to the first target device 100, the second differentiation information 112 after successful checking of the data packet assigned to the second target device 102 and a data packet 124 assigned to the third target device 104 after its successful checking, each to a second interface 126, here, for example, to a CAN Bus of the vehicle.
  • the target devices 100, 102, 104 each include one
  • Target device receiving unit 128 for reading in data via the second
  • the update units 130 each include a suitable software updater.
  • the first target device 100 and the second target device 102 each comprise an update unit with a delta installer for carrying out a delta update using the first differentiation information 110 in the case of the first target device 100 or using the second differentiation information 112 in the case of the second
  • the update unit 130 of the third target device 104 is designed to carry out the update exclusively as a full update by means of the third data packet 124.
  • a delta installer is a software component as an extension to a software updater.
  • a software updater is a software component in a target device that is responsible for its own software update.
  • FIG. 2 shows a schematic representation of the creation of a data packet from FIG. 1.
  • the receiving unit 108 and the installation unit 120 are shown.
  • the update device 106 first receives the corresponding delta file from the receiving unit 108, here, for example, the first
  • Discrimination information 110 searches in a step 200 in the
  • Storage unit after the corresponding copy of the current software, creates the data packet in a subsequent step 202 by calculating the full version of the new software using the
  • FIG. 3 shows a schematic illustration of an update device 106 from FIG. 1 at three successive times one
  • version 1.0 is to be updated to version 1.1.
  • the storage unit 122 After receiving the discrimination information 110, the storage unit 122 has the first in addition to the copy 300
  • Distinction information 110 which represents a delta between version 1.0 and a new version 1.1 of the software, as shown in the middle image.
  • the right picture shows the content of the storage unit 122 after the calculation of the full version 1.1.
  • Fig. 4 shows a schematic representation of a data flow in the
  • the update device 106 contains the copy 300, the first differentiation information 110 and the data packet 302.
  • the target device 100 is updated in three ways.
  • the update device 106 merely provides the target device 100 with the differentiation information 110.
  • the target device 100 then updates the current software using the delta installer and finally stores the version of the new software in a target device storage unit 400, for example a flash memory.
  • the update device 106 provides the target device 100 with the data package 302 with the full version 1.1 for updating the current software, for example if the update using the delta installer fails.
  • the update device 106 provides the target device 100 with the copy 300 of version 1.0, for example.
  • 5 shows a flowchart of a method 500 for updating software according to an exemplary embodiment.
  • the method 500 can be carried out, for example, using an update device, as described above with reference to FIGS. 1 to 4.
  • the differentiation information or, depending on the number of target devices to be updated, a plurality of differentiation information assigned to one target device is received via the first interface to the data processing device external to the vehicle, for example.
  • the differentiation information is combined with a copy of a current software version stored on the respective target devices stored in the update device.
  • resulting data packets represent, for example, a full version of the new software to be installed for each target device.
  • Distinguishing information about the second interface to the target devices If the target device to be updated has, for example, a suitable delta installer, the update to the new software version can take place in a particularly resource-saving manner solely by means of the differentiation information transmitted to the target device and the current version on the target device.
  • FIG. 6 shows a flowchart of a method 600 for processing a data packet and / or a differentiation information according to one
  • the method 600 can be carried out, for example, using one of the target devices, as described above with reference to FIGS. 1 to 5.
  • the corresponding data packet or the corresponding differentiation information is received via the second interface, for example a CAN bus. This takes place in a second step 620
  • Update of the current software available on the target device in question using the data packet for example a
  • each target unit in the vehicle in FIG. 1 the three target devices 100, 102, 104 in this example, each has a software updater 128 with full update functionality and possibly a delta installer 130.
  • software updaters with delta Installers receive software updaters without a delta installer, not a delta file, but a full version for software updates.
  • the vehicle has a central delta installer.
  • This central delta installer previously called installation unit 120, is either part of an already existing component, for example a central gateway or an over-the-air master, or is implemented as an independent unit. If an existing central component is expanded, the installation unit 120 or the central component is the update master, for example.
  • the installation unit 120 has direct access via the storage unit 122 to backups of all software in the system which are to be updated by this method.
  • versions of the currently used software of all components should be available as full versions and be stored in a correspondingly large persistent storage unit 122.
  • These software backups for example, are flashed once during production or even pre-flashed.
  • the installation unit 120 accepts the delta update file of each individual target unit, searches for the corresponding backup in the storage unit 122 and uses this combination by means of a delta installer in the storage unit 122, as is shown schematically in FIG. 2.
  • the installation unit 120 now checks the calculated new software for correctness and saves it locally as the new backup version 302.
  • the update device 106 thus has the full version of the current software of each target unit, the full version of the new software of each target unit and the respective delta update file of each target unit. This can be seen from FIGS. 3 and 4.
  • the entire or subsystem is put into update mode.
  • the individual software updates of the target units are offered the previously received delta update file or the full version of the new software as an update package.
  • Target units now also use the delta update method, for example, and confirm the respective result to installation unit 120.
  • the installation unit 120 sends the previously self-calculated new full version in the form of the data packet 302 as a full update, compressed or uncompressed, to the relevant target unit, as shown in FIG. 4.
  • the old backup version for example, is transmitted in the form of a copy 300 as a full update.
  • the new version 302 of the software is noted in the installation unit 120 as the currently valid version, so that it can be used as a reference for further updates.
  • a condition for the update using the delta method is also that the delta installer in the installation unit 120 and the delta installer in the target unit to be updated are compatible.
  • a direct update for example via the vehicle bus, the
  • Installation unit 120 can also be updated so that the versions remain identical. Otherwise, a later over-the-air update in the field would only be possible with a full update.
  • the copy 300 of the current software is not permanently available in the storage unit 122, but is only loaded by the relevant target unit when required. Thus, an initial flashing of the memory unit 122 can be omitted.
  • the installation unit 120 additionally comprises a delta generator, for example in order to also be able to transmit a rollback file, which is calculated by the packages 302 and 300, as a delta file.
  • the vehicle 700 for example a road vehicle for the transportation of people, has a target device 100.
  • the target device 100 is, for example, an engine control device or an airbag control device with a functionality as implemented in known control devices.
  • the target device 100 has a rewritable memory for storing software for operating the target device 100. To the software too
  • an update device 106 is integrated in the vehicle 700, which is designed to transmit a data packet 302 and additionally or alternatively a signal comprising differentiation information 110 to the target device 100.
  • the data packet comprises
  • Embodiment an updated version of the software for storage in the memory of the target device 100.
  • the distinction information 110 comprises data which is a difference between the software stored in the target device 100 and the updated Define software version.
  • Differentiation information 110 is transmitted in the form of electrical signals according to one exemplary embodiment.
  • the update device 106 is designed to receive a signal, which includes the differentiation information 110, from a data processing device 118 arranged outside the vehicle and to use it to generate the data packet 302.
  • the data processing device 118 has a combining device which is designed to combine the differentiation information 110 with a copy 300 of the software currently stored in the target device 100, which is stored in a memory of the update device 106.
  • the data processing device 118 has a combining device which is designed to combine the differentiation information 110 with a copy 300 of the software currently stored in the target device 100, which is stored in a memory of the update device 106.
  • Data processing device 118 has a checking device which is designed to check the data packet 302 for errors.
  • the update device 106 is designed to, depending on a result of the check carried out in the checking device, either the data packet 302 or the
  • an exemplary embodiment comprises a “and / or” link between a first feature and a second feature, this is to be read in such a way that the embodiment according to one embodiment has both the first feature and the second feature and according to a further embodiment either only that has the first feature or only the second feature.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The invention relates to a method for updating software on a target device (100) by means of an update device (106). In a first step, an interface (116) to an external data processing device (118) receives distinction information (110) representing a difference between current software installed on the target device (100) and new software to be installed on the target device (100). In a second step the distinction information (110) is combined with a copy of the current software, which is saved in the update device (106), in order to create a data packet (302) representing the new software. Finally, in a third step the data packet (302) and/or the distinction information (110) are output to an interface (126) to the target device (100) in order to update the software on the target device (100).

Description

Beschreibung  description
Titel title
VERFAHREN ZUM AKTUALISIEREN VON SOFTWARE AUF EINEM ZIELGERÄT METHOD FOR UPDATING SOFTWARE ON A TARGET DEVICE
Stand der Technik State of the art
Die Erfindung geht aus von einem Verfahren oder einer Vorrichtung nach Gattung der unabhängigen Ansprüche. Gegenstand der vorliegenden Erfindung ist auch ein Computerprogramm. The invention is based on a method or a device according to the type of the independent claims. The present invention also relates to a computer program.
Zur Aktualisierung der Software von Komponenten können sogenannte Delta- Verfahren eingesetzt werden. Dabei werden Unterschiede zwischen zwei Softwareversionen berechnet und an die jeweiligen Komponenten übertragen. So-called delta processes can be used to update the software of components. Differences between two software versions are calculated and transferred to the respective components.
Offenbarung der Erfindung Disclosure of the invention
Vor diesem Hintergrund werden mit dem hier vorgestellten Ansatz ein Verfahren zum Aktualisieren von Software auf einem Zielgerät mittels einer Against this background, the approach presented here describes a method for updating software on a target device using a
Aktualisierungseinrichtung, eine entsprechende Aktualisierungseinrichtung, ein Verfahren zum Verarbeiten eines Datenpakets und/oder einer Update device, a corresponding update device, a method for processing a data packet and / or
Unterscheidungsinformation mittels eines Zielgeräts, ein entsprechendes Zielgerät sowie schließlich ein entsprechendes Computerprogramm gemäß den Hauptansprüchen vorgestellt. Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen der im unabhängigen Anspruch angegebenen Vorrichtung möglich. Es wird ein Verfahren zum Aktualisieren von Software auf einem Zielgerät mittels einer Aktualisierungseinrichtung vorgestellt, wobei das Verfahren folgende Schritte umfasst: Differentiation information by means of a target device, a corresponding target device and finally a corresponding computer program according to the main claims. The measures listed in the dependent claims allow advantageous developments and improvements of the device specified in the independent claim. A method for updating software on a target device by means of an update device is presented, the method comprising the following steps:
Empfangen einer Unterscheidungsinformation, die einen Unterschied zwischen einer auf dem Zielgerät installierten aktuellen Software und einer auf dem Zielgerät zu installierenden neuen Software repräsentiert, von einer Schnittstelle zu einer externen Datenverarbeitungseinrichtung; Receiving, from an interface to an external data processing device, distinctive information representing a difference between current software installed on the target device and new software to be installed on the target device;
Kombinieren der Unterscheidungsinformation mit einer in der Combine the discrimination information with one in the
Aktualisierungseinrichtung hinterlegten Kopie der aktuellen Software, um ein die neue Software repräsentierendes Datenpaket zu erstellen; und Update device deposited copy of the current software to create a data packet representing the new software; and
Ausgeben des Datenpakets und/oder der Unterscheidungsinformation an eine Schnittstelle zum Zielgerät, um die Software auf dem Zielgerät zu aktualisieren. Das Zielgerät und/oder die Aktualisierungseinrichtung kann beispielsweise in einem Fahrzeug oder in einer Industrieanlage oder einer Maschine oder in diversen anderen Software umfassenden und miteinander verbundenen Geräten genutzt werden und/oder angeordnet sein. Output of the data packet and / or the differentiation information to an interface to the target device in order to update the software on the target device. The target device and / or the update device can be used and / or arranged, for example, in a vehicle or in an industrial system or a machine or in various other devices that are connected and connected to one another.
Unter einem Zielgerät oder Zieleinheit kann ein elektrisches Gerät verstanden werden, beispielsweise, ein Steuergerät das Sensorsignale verarbeitet und in Abhängigkeit davon Steuer- und/oder Datensignale ausgibt. Das Zielgerät kann eine Schnittstelle aufweisen, die hard- und/oder softwaremäßig ausgebildet sein kann. A target device or target unit can be understood to mean an electrical device, for example a control device that processes sensor signals and outputs control and / or data signals as a function thereof. The target device can have an interface that can be designed in terms of hardware and / or software.
In einer Ausgestaltung erfolgt durch das Zielgerät eine Steuerung des In one embodiment, the target device controls the
Fahrzeugs. Hierzu kann das Zielgerät beispielsweise auf Sensorsignale wie Beschleunigungs-, Druck-, Lenkwinkel- oder Umfeldsensorsignale zugreifen. Die Ansteuerung kann über entsprechende Aktoren wie beispielsweise Brems- oder Lenkaktoren erfolgen. Vehicle. For this purpose, the target device can, for example, access sensor signals such as acceleration, pressure, steering angle or environment sensor signals. The control can take place via corresponding actuators such as brake or steering actuators.
Unter einer Aktualisierungseinrichtung kann eine, beispielsweise im Fahrzeug verbaute, Einrichtung zum Speichern von Backups und Steuern von Under an update device, a device, for example installed in the vehicle, can be used for storing backups and controlling
Aktualisierungsprozessen in einem Delta-Verfahren verstanden werden. Beispielsweise kann es sich bei der ersten Schnittstelle um eine Funkschnittstelle zur drahtlosen Kommunikation, beispielsweise mit dem Fahrzeug, handeln. Alternativ oder zusätzlich kann die Kommunikation über die erste Schnittstelle kabelgebunden erfolgen. Bei der zweiten Schnittstelle kann es sich Update processes can be understood in a delta process. For example, the first interface can be a radio interface for wireless communication, for example with the vehicle. As an alternative or in addition, communication can take place via the first interface in a wired manner. The second interface can
beispielsweise um einen Fahrzeugbus, etwa einen CAN-Bus, handeln. Unter einer externen Datenverarbeitungseinrichtung kann beispielsweise ein Server oder ein mobiles Endgerät verstanden werden. Unter einer act, for example, a vehicle bus, such as a CAN bus. An external data processing device can be understood to mean, for example, a server or a mobile terminal. Under one
Unterscheidungsinformation kann beispielsweise eine sogenannte Delta-Datei verstanden werden. Unter einer solchen Delta-Datei, auch als Delta-Update- Datei bezeichnet, kann etwa ein Software- Update- Paket zum Software-Update auf eine neue Version verstanden werden. Die Unterscheidungsinformation kann im Vergleich zu einer Vollversion der neuen Software eine deutlich geringere Datenmenge repräsentieren. Beispielsweise kann es sich bei dem Datenpaket um ein komprimiertes oder unkomprimiertes Update- Paket zum Installieren der Vollversion der neuen Software handeln. Differentiation information can be understood, for example, a so-called delta file. Such a delta file, also referred to as a delta update file, can be understood to mean, for example, a software update package for software updates to a new version. The differentiation information can represent a significantly smaller amount of data compared to a full version of the new software. For example, the data package can be a compressed or uncompressed update package for installing the full version of the new software.
Der Schritt des Ausgebens kann in Abhängigkeit davon erfolgen, ob das The issuing step can be dependent on whether that
Zielgerät lediglich einen Software- Updater oder zusätzlich eine Target device only a software updater or additionally one
Aktualisierungseinheit, beispielsweise mit einem Delta-Installer, zum Durchführen eines Delta-Verfahrens aufweist. So kann beispielsweise im ersten Fall das Datenpaket ausgegeben werden, während es im zweiten Fall ausreicht, lediglich die Unterscheidungsinformation auszugeben. Update unit, for example with a delta installer, for performing a delta method. For example, the data packet can be output in the first case, while in the second case it is sufficient to output only the differentiation information.
Der hier vorgestellte Ansatz betrifft Geräte, die über Software- Updates verfügen oder aus mehreren Komponenten bestehen, die je ein Software-Update unterstützen, aber einen eigenen Speicher haben und untereinander verbunden sind. Dabei können einzelne Komponenten aufgrund ihrer Ressourcensituation eingeschränkt sein. Der hier vorgestellte Ansatz beruht auf der Erkenntnis, dass zur Aktualisierung von Software einzelner Komponenten beispielsweise eines Fahrzeugs auf eine neue Version eine sogenannte Delta-Datei, die Unterschiede zwischen einer aktuell installierten Version und der neuen Version beinhaltet, und eine beispielsweise im Fahrzeug hinterlegte Kopie der aktuell installierten Version verwendet werden können, um die neue Version beispielsweise im Fahrzeug selbst zu berechnen und zu überprüfen, bevor die neue Version auf die betreffende Komponente aufgespielt wird. Somit können die Sicherheit beispielsweise des Fahrzeugs beeinträchtigende Fehler beim Aktualisieren auf ein Minimum beschränkt werden. Ferner hat ein derartiges The approach presented here relates to devices that have software updates or consist of several components, each of which supports a software update, but has its own memory and is connected to one another. Individual components can be restricted due to their resource situation. The approach presented here is based on the knowledge that to update the software of individual components, for example a vehicle, to a new version, a so-called delta file, which contains the differences between a currently installed version and the new version, and a copy of the, for example, stored in the vehicle currently installed version can be used, for example, to calculate and check the new version in the vehicle itself, before the new version is loaded onto the relevant component. Thus, security For example, errors affecting the vehicle when updating are kept to a minimum. It also has one
Aktualisierungsverfahren den Vorteil, dass statt einer Vollversion der Software lediglich die der betreffenden Komponente zugeordnete Delta-Datei Update procedure has the advantage that, instead of a full version of the software, only the delta file assigned to the relevant component
beispielsweise an das Fahrzeug übermittelt zu werden braucht, um die for example, needs to be transmitted to the vehicle in order to
Aktualisierung durchzuführen. Dadurch kann die Aktualisierung besonders schnell und effizient erfolgen, insbesondere wenn das Update beispielsweise über eine Funkschnittstelle eingespielt wird. Update. This enables the update to be carried out particularly quickly and efficiently, in particular if the update is imported, for example, via a radio interface.
Dadurch, dass beispielsweise im Fahrzeug sowohl die alte als auch die neue Software als zentral hinterlegtes Backup vorhanden ist, ist es beispielsweise im Fehlerfall möglich, je nach Bedarf ein Vollupdate oder ein Rollback Because, for example, both the old and the new software are stored in the vehicle as a centrally stored backup, it is possible, for example, in the event of an error, to perform a full update or rollback as required
durchzuführen, zumal diverse Komponenten aufgrund ihrer Ressourcensituation oftmals nicht in der Lage sind, eine Backup-Version ihrer jeweiligen Software zu speichern. Somit kann verhindert werden, dass die betreffenden Komponenten im Fall eines Update- Fehlers funktionsunfähig werden und einen especially since various components are often unable to save a backup version of their respective software due to their resource situation. This can prevent the relevant components from becoming inoperable in the event of an update error and prevent one
Werkstattbesuch erfordern. Es kann also sichergestellt werden, dass die Require workshop visit. It can therefore be ensured that the
Komponenten auch bei einem Softwareupdate im Feld weiterhin funktionieren. Components continue to work even with a software update in the field.
Der hier vorgestellte Ansatz umfasst ein systemweites Delta-Update-Verfahren, das in einer Aktualisierungseinrichtung, etwa einem zentralen Delta-Installer mit integriertem Backup-Server, neue Versionen aus einer Delta-Datei berechnet, speichert und verifiziert, um die neue Software in einem zweiten Schritt an die entsprechenden Zieleinheiten im Gesamtsystem zu verteilen. Dabei sollte immer nur eine Delta-Update-Version übertragen werden, sei es drahtlos oder im internen System, etwa über einen Fahrzeugbus. Wobei Delta- Update- Dateien nur dann übertragen werden können wenn auch die Zieleinheit über ein Delta- Update verfügt. The approach presented here encompasses a system-wide delta update procedure that calculates, saves and verifies new versions from a delta file in an update device, such as a central delta installer with an integrated backup server, in order to use the new software in a second Step to distribute to the appropriate target units in the overall system. Only one delta update version should ever be transmitted, be it wireless or in the internal system, for example via a vehicle bus. Delta update files can only be transferred if the target unit also has a delta update.
In der Aktualisierungseinrichtung muss eine Backup-Software für die einzelnen Zieleinheiten vorliegen oder diese zumindest geladen werden können.. Backup software for the individual target units must be available in the update device or at least be able to be loaded.
Die Aktualisierungseinrichtung kann beispielsweise mit einer oder mehreren zentralen Installationseinheiten mit einem oder mehreren Delta-Installer mit entsprechenden Speicherressourcen angelegt sein, obwohl es eher üblich ist nur eine zentrale Stelle zu haben, die ggf. mehrere Delta Installer unterstützt. Diese zentralen Installationseinheiten mit Delta- Installer können über ein oder mehrere Delta-Update-Verfahren verfügen und müssen ebenfalls die jeweilige aktuelle Software der Zieleinheit als Backup besitzen oder zumindest Zugriff drauf haben. Es ist unabhängig ob die Zieleinheiten eine Aktualisierungseinheit mit oder ohne Delta-Installer verwendet. Die Sicherheit beim Update-Prozess wird also nicht alleine durch die Einzelkomponenten, sondern primär zentral durch die The update device can be created, for example, with one or more central installation units with one or more delta installers with corresponding storage resources, although it is rather common only to have a central point that supports several Delta Installers if necessary. These central installation units with delta installer can have one or more delta update procedures and must also have the current software of the target unit as a backup or at least have access to it. It does not matter whether the target units use an update unit with or without a delta installer. The security of the update process is therefore not solely due to the individual components, but primarily centrally through the
Aktualisierungseinrichtung gewährleistet. Ein weiterer Punkt ist, dass die Update facility guaranteed. Another point is that the
Aktualisierungseinheiten mit Delta-Installer der Einzelkomponenten nur minimale zusätzliche Ressourcen erfordern und auch weniger Speicherzugriffe als bei einem Vollupdate stattfinden. Update units with delta installers of the individual components require minimal additional resources and less memory access than with a full update.
Ein wesentlicher Vorteil des hier vorgestellten Ansatzes besteht somit darin, dass eine ressourcentechnische Erweiterung der Zieleinheiten, etwa von RAM oder Flashspeicher, entfallen kann und trotzdem ein sicheres Update einschließlich Rollback unterstützt werden kann. So können auch kleine Zielsysteme Delta- Update-Verfahren nutzen. A major advantage of the approach presented here is that a resource-related expansion of the target units, such as RAM or flash memory, can be omitted and a secure update including rollback can still be supported. This means that even small target systems can use delta update procedures.
Ein weiterer Vorteil ist, dass die beispielsweise drahtlose Datenübertragung zum Gesamtsystem durch das Delta-Update-Verfahren grundsätzlich minimiert werden kann. Dies gilt auch für Einzelkomponenten, die selbst keine Delta- Updates unterstützen, und auch für den Fall, dass über den internen Bus ein Vollupdate stattfinden soll. Another advantage is that wireless data transmission to the overall system, for example, can be minimized by the delta update process. This also applies to individual components that do not themselves support delta updates, and also in the event that a full update is to take place via the internal bus.
Des Weiteren kann die Bus-Auslastung im Zielsystem minimiert werden, falls die Zieleinheiten selbst über eine Aktualisierungseinheit mit Delta-Installer verfügt. Furthermore, the bus load in the target system can be minimized if the target units themselves have an update unit with a delta installer.
Zudem können die Zieleinheiten ein Delta-Update-Verfahren sehr schnell ausführen, da keine zusätzlichen Speicherzugriffe erforderlich sind. In addition, the target units can carry out a delta update process very quickly, since no additional memory accesses are required.
Vorteilhaft ist ferner, dass die Installationseinheit der Zieleinheiten mit Delta- Installer je Komponente keine Rollback- Funktionalität erfordert, da diese zentral in der Aktualisierungseinrichtung implementiert werden kann. Optional kann der Schutz der Delta-Installer je Komponente gegen It is also advantageous that the installation unit of the target units with delta installer does not require any rollback functionality for each component, since this can be implemented centrally in the update device. Optionally, the protection of the delta installer against each component
Unterbrechung entfallen, falls dieser Fall als selten eingestuft werden kann und dann durch ein Vollupdate, angestoßen durch den zentralen Delta-Installer, repariert werden kann. There is no interruption if this case can be classified as rare and can then be repaired by a full update, initiated by the central delta installer.
Da die Aktualisierungseinrichtung mit zentralen Delta-Installer autark laufen und die empfangene Software ohne Einfluss auf die Zieleinheit prüfen und in einer neuen Version als Backup abspeichern können, kann geprüft werden, ob die Software korrekt ist, bevor der Nutzer überhaupt durch ein Software-Update beeinträchtigt werden kann. Since the update device runs autonomously with the central delta installer and can check the received software without influencing the target unit and save it in a new version as a backup, it can be checked whether the software is correct before the user is even affected by a software update can be.
Zudem können Defekte von Zieleinheiten vermieden werden, da die Software vorgeprüft wird bzw. im der Aktualisierungseinrichtung mit zentralem Delta- Installer ein Backup einer Vollversion von alter wie auch von neuer Software vorliegt. In addition, defects in target units can be avoided since the software is pre-checked or a backup of a full version of old and new software is available in the update device with a central delta installer.
Ein solches Verfahren kann einfach in bestehende zentrale Einheiten, etwa in ein zentrales Gateway, integriert werden. Außerdem kann ein solches Verfahren auf beliebig viele Komponenten angewendet werden, sofern genügend Speicherplatz vorhanden ist. Such a method can easily be integrated into existing central units, such as a central gateway. In addition, such a method can be applied to any number of components, provided there is enough storage space.
Durch die Anwendung weniger komplexer Delta-Update-Mechanismen kann schließlich auch die Fehlerhäufigkeit beim Aktualisieren reduziert werden. By using less complex delta update mechanisms, the frequency of errors when updating can also be reduced.
Gemäß einer Ausführungsform kann das Verfahren einen Schritt des According to one embodiment, the method can include a step of
Überprüfens des Datenpakets auf Fehler umfassen. Dabei kann im Schritt des Ausgebens das Datenpaket und/oder die Unterscheidungsinformation abhängig von einem Ergebnis des Überprüfens ausgegeben werden. Beispielsweise kann im Schritt des Überprüfens die Integrität des Datenpakets anhand einer Check the data packet for errors. In the step of outputting, the data packet and / or the differentiation information can be outputted depending on a result of the checking. For example, in the step of checking, the integrity of the data packet can be determined using a
Prüfsumme überprüft werden, um Bitfehler im Datenpaket zu erkennen. Dadurch können Fehler im Datenpaket frühzeitig erkannt oder auch korrigiert werden. Somit kann eine fehlerhafte Aktualisierung der Software auf dem Zielgerät vermieden werden. Alternativ können Bitfehler bereits durch den Software- Update- Prozess behandelt werden. Gemäß einer weiteren Ausführungsform kann in einem Schritt des Checksum are checked to detect bit errors in the data packet. This allows errors in the data packet to be recognized early or corrected. This prevents incorrect software updates on the target device. Alternatively, bit errors can already be handled by the software update process. According to a further embodiment, the
Unterdrückens das Ausgeben des Datenpakets und/oder der Suppress the output of the data packet and / or the
Unterscheidungsinformation unterdrückt werden, wenn sich beim Überprüfen ergibt, dass das Datenpaket fehlerhaft ist. Dadurch kann verhindert werden, dass fehlerhafte Aktualisierungsdaten auf das Zielgerät überspielt werden. Somit können Funktionsausfälle des Zielgeräts infolge einer fehlerhaften Aktualisierung vermieden werden. Discrimination information is suppressed when it is found during the check that the data packet is faulty. This can prevent incorrect update data from being transferred to the target device. Functional failures of the target device as a result of an incorrect update can thus be avoided.
Gemäß einer weiteren Ausführungsform kann das von der According to a further embodiment, that of the
Aktualisierungseinrichtung empfangene Datenpaket ohne vorherige Berechnung direkt an das Zielgerät weitergeleitet werden. Im zweiten Schritt berechnen das Zielgerät und die Aktualisierungseinrichtung parallel oder nacheinander die neue Software. Data packets received by the update device are forwarded directly to the target device without prior calculation. In the second step, the target device and the update device calculate the new software in parallel or in succession.
In einem Schritt des Kennzeichnens kann die neue Software als die aktuelle Software gekennzeichnet werden, wenn die Ergebnisinformation vom Zielgerät anzeigt, dass das Aktualisieren erfolgreich war. Zusätzlich oder alternativ kann der Schritt des Ausgebens von der Aktualisierungseinrichtung erneut ausgeführt werden, um die Kopie und/oder eine Zurücksetzungsinformation zum In a labeling step, the new software can be labeled as the current software if the result information from the target device indicates that the update was successful. Additionally or alternatively, the step of issuing can be carried out again by the update device in order to obtain the copy and / or reset information
Zurücksetzen des Zielgeräts auf eine frühere Version der Software an die Schnittstelle zum Zielgerät auszugeben, wenn die Ergebnisinformation des Zielgerätes anzeigt, dass das Aktualisieren nicht erfolgreich war. Dadurch kann das Risiko von Funktionsausfällen des Zielgeräts infolge einer Aktualisierung auf ein Minimum reduziert werden. Return the target device to an earlier version of the software to the interface to the target device if the result information of the target device indicates that the update was unsuccessful. As a result, the risk of functional failures of the target device as a result of an update can be reduced to a minimum.
Gemäß einer weiteren Ausführungsform kann im Falle eines Zurücksetzen des Zielgeräts auf eine frühere Version der Software auch die According to a further embodiment, if the target device is reset to an earlier version of the software, the
Aktualisierungseinrichtung mit zentralen Delta-Installer eine Delta Version zwischen neuer und alter Version berechnen um von der neuen SW wieder auf die alte zu kommen, dazu benötig die Installationseinheiten mit zentralen Delta- Installer auch einen Delta Generator. Update device with a central delta installer calculate a delta version between the new and old version in order to switch from the new software back to the old one. To do this, the installation units with the central delta installer also require a delta generator.
Zusätzlich schafft der hier vorgestellte Ansatz eine Aktualisierungseinrichtung mit Einheiten, die ausgebildet sind, um das Verfahren gemäß einer der vorstehenden Ausführungsformen auszuführen und/oder anzusteuern. Der hier vorgestellte Ansatz schafft darüber hinaus ein Verfahren zum In addition, the approach presented here creates an update device with units that are designed to execute and / or to control the method according to one of the above embodiments. The approach presented here also creates a process for
Verarbeiten eines Datenpakets und/oder einer Unterscheidungsinformation aus einem Verfahren gemäß einer der vorstehenden Ausführungsformen mittels eines Zielgeräts beispielweise eines Fahrzeugs, wobei das Verfahren folgende Schritte umfasst: Processing of a data packet and / or differentiation information from a method according to one of the above embodiments using a target device, for example a vehicle, the method comprising the following steps:
Empfangen des Datenpakets und/oder der Unterscheidungsinformation über eine Schnittstelle zur Aktualisierungseinrichtung; und Receiving the data packet and / or the differentiation information via an interface to the update device; and
Aktualisieren einer auf dem Zielgerät aktuell installierten Software unter Update software currently installed on the target device at
Verwendung des Datenpakets und/oder der Unterscheidungsinformation. Use of the data packet and / or the differentiation information.
Gegenstand des hier vorgestellten Ansatzes ist auch ein Zielgerät mit Einheiten, die ausgebildet sind, um das Verarbeitungsverfahren gemäß der vorstehenden Ausführungsform auszuführen und/oder anzusteuern. The approach presented here also relates to a target device with units which are designed to carry out and / or to control the processing method according to the above embodiment.
Die genannten Verfahren können beispielsweise in Software oder Hardware oder in einer Mischform aus Software und Hardware, beispielsweise in einem The methods mentioned can be, for example, in software or hardware or in a mixed form of software and hardware, for example in one
Zielgerät oder einer Aktualisierungseinrichtung, implementiert sein. Target device or an update device can be implemented.
Von Vorteil ist auch ein Computerprogrammprodukt oder Computerprogramm mit Programmcode, der auf einem maschinenlesbaren Träger oder Speichermedium wie etwa einem Halbleiterspeicher, einem Festplattenspeicher oder einem optischen Speicher gespeichert sein kann und zur Durchführung, Umsetzung und/oder Ansteuerung der Schritte eines Verfahrens nach einer der Also advantageous is a computer program product or computer program with program code, which can be stored on a machine-readable carrier or storage medium such as a semiconductor memory, a hard disk memory or an optical memory and for carrying out, implementing and / or controlling the steps of a method according to one of the
vorstehenden Ausführungsformen verwendet wird, insbesondere wenn das Programmprodukt oder Programm auf einem Computer oder einer Vorrichtung ausgeführt wird. above embodiments is used, especially when the program product or program is executed on a computer or a device.
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt: Fig. 1 eine schematische Darstellung eines Datenflusses bei der Embodiments of the invention are shown in the drawings and explained in more detail in the following description. It shows: Fig. 1 is a schematic representation of a data flow in the
Aktualisierung von Software auf Zielgeräten in einem Verfahren gemäß einem Ausführungsbeispiel;  Updating software on target devices in a method according to an embodiment;
Fig. 2 eine schematische Darstellung einer Erstellung eines Datenpakets aus Fig. 1;  FIG. 2 shows a schematic illustration of the creation of a data packet from FIG. 1;
Fig. 3 eine schematische Darstellung einer Aktualisierungseinrichtung aus Fig. 1 zu drei aufeinanderfolgenden Zeitpunkten eines  FIG. 3 shows a schematic illustration of an update device from FIG. 1 at three successive points in time
Aktualisierungsprozesses;  Update process;
Fig. 4 eine schematische Darstellung eines Datenflusses bei der  Fig. 4 is a schematic representation of a data flow in the
Aktualisierung von Software auf einem Zielgerät aus Fig. 1;  Updating software on a target device from FIG. 1;
Fig. 5 ein Ablaufdiagramm eines Verfahrens zum Aktualisieren von Software gemäß einem Ausführungsbeispiel;  5 shows a flowchart of a method for updating software according to an exemplary embodiment;
Fig. 6 ein Ablaufdiagramm eines Verfahrens zum Verarbeiten eines  Fig. 6 is a flowchart of a method for processing a
Datenpakets und/oder einer Unterscheidungsinformation gemäß einem Ausführungsbeispiel; und  Data packets and / or differentiation information according to an embodiment; and
Fig. 7 eine schematische Darstellung eines Fahrzeugs gemäß einem  Fig. 7 is a schematic representation of a vehicle according to a
Ausführungsbeispiel.  Embodiment.
In der nachfolgenden Beschreibung günstiger Ausführungsbeispiele der vorliegenden Erfindung werden für die in den verschiedenen Figuren dargestellten und ähnlich wirkenden Elemente gleiche oder ähnliche In the following description of favorable exemplary embodiments of the present invention, the same or similar elements are shown for the elements which are represented in the various figures and have a similar effect
Bezugszeichen verwendet, wobei auf eine wiederholte Beschreibung dieser Elemente verzichtet wird. Reference numerals are used, a repeated description of these elements being omitted.
Fig. 1 zeigt eine schematische Darstellung eines Datenflusses bei der Fig. 1 shows a schematic representation of a data flow in the
Aktualisierung von Software auf drei Zielgeräten 100, 102, 104, hier lediglich beispielhaft Steuergeräten einer Maschine, hier lediglich beispielhaft eines Fahrzeugs, in einem Verfahren gemäß einem Ausführungsbeispiel. Gezeigt ist ein beispielhafter Ablauf eines Over-the-Air-Updateprozesses mit einer Aktualisierungseinrichtung 106, die eine Installationseinheit 120 mit zentralem Delta-Installer für Zielgeräte 100, 102 mit und für ein Zielgerät 104 ohne Delta- Update umfasst. Die drei Zielgeräte 100, 102, 104 sind je mit einer zentralen Aktualisierungseinrichtung 106, beispielsweise des Fahrzeugs, gekoppelt. Die Aktualisierungseinrichtung 106 umfasst eine Empfangseinheit 108 zum Updating software on three target devices 100, 102, 104, here only by way of example control devices of a machine, here only by way of example of a vehicle, in a method according to an exemplary embodiment. An exemplary sequence of an over-the-air update process is shown with an update device 106, which comprises an installation unit 120 with a central delta installer for target devices 100, 102 with and for a target device 104 without a delta update. The three target devices 100, 102, 104 are each coupled to a central update device 106, for example of the vehicle. The update device 106 comprises a receiving unit 108 for
Empfangen einer dem ersten Zielgerät 100 zugeordneten ersten Unterscheidungsinformation 110, einer dem zweiten Zielgerät 102 zugeordneten zweiten Unterscheidungsinformation 112 sowie einer dem dritten Zielgerät 104 zugeordneten dritten Unterscheidungsinformation 114 über eine erste Receiving a first assigned to the first target device 100 Differentiation information 110, second differentiation information 112 assigned to second target device 102 and third differentiation information 114 assigned to third target device 104 about first
Schnittstelle 116, hier beispielhaft einer Funkschnittstelle, zu einer externen Datenverarbeitungseinrichtung 118, wobei diese unter anderen auch eine Kabelverbindung oder ein USB-Medium sein kann. Bei den Interface 116, here a radio interface as an example, to an external data processing device 118, which can also be a cable connection or a USB medium, among other things. Both
Unterscheidungsinformationen 110, 112, 114 handelt es sich beispielsweise je um eine Delta- Update- Datei zur Software-Aktualisierung in einem sogenannten Delta-Verfahren. Dabei repräsentieren die Unterscheidungsinformationen jeweils Unterschiede zwischen einer auf dem jeweiligen Zielgerät 100, 102, 104 installierten aktuellen Software und einer auf dem jeweiligen Zielgerät 100, 102, 104 zu installierenden neuen Software. Differentiation information 110, 112, 114 is, for example, each a delta update file for software update in a so-called delta method. The differentiation information in each case represents differences between current software installed on the respective target device 100, 102, 104 and new software to be installed on the respective target device 100, 102, 104.
Die Aktualisierungseinrichtung 106 fungiert gemäß diesem Ausführungsbeispiel als OTA-Master (OTA = Over-the-Air) zum drahtlosen Empfangen der According to this exemplary embodiment, the update device 106 functions as an OTA master (OTA = over-the-air) for wireless reception of the
Unterscheidungsinformationen 110, 112, 114 über die erste Schnittstelle 116. Eine in die Aktualisierungseinrichtung 106 integrierte Installationseinheit 120, auch zentraler Delta-Installer genannt, ist ausgebildet, um die von der Distinction information 110, 112, 114 via the first interface 116. An installation unit 120 integrated in the update device 106, also called a central delta installer, is designed to accommodate that of the
Empfangseinheit 108 empfangenen Unterscheidungsinformationen 110, 112, 114 jeweils mit einer in einer geeigneten Speichereinheit 122, etwa einem Receiving unit 108 received differentiation information 110, 112, 114 each with a suitable storage unit 122, such as one
Flashspeicher, hinterlegten Kopie der auf den jeweiligen Zielgeräten 100, 102, 104 installierten aktuellen Software zu je einem Datenpaket zu kombinieren. Insbesondere repräsentieren die drei Datenpakete dabei je eine Vollversion der auf den jeweiligen Zielgeräten 100, 102, 104 zu installierenden neuen Software. Flash memory, combined copy of the current software installed on the respective target devices 100, 102, 104 to combine to form a data packet. In particular, the three data packets each represent a full version of the new software to be installed on the respective target devices 100, 102, 104.
Um eine fehlerhafte Aktualisierung zu vermeiden, ist es vorteilhaft, wenn die Installationseinheit 120 die Datenpakete auf ihre jeweilige Integrität hin überprüft, beispielsweise mittels Prüfsummen oder sonstiger geeigneter Prüfwerte. Nur wenn ein Datenpaket fehlerfrei ist und auch die Berechnung der Vollversion der neuen Software erfolgreich war, stößt die Installationseinheit 120 einen In order to avoid an incorrect update, it is advantageous if the installation unit 120 checks the data packets for their respective integrity, for example by means of checksums or other suitable check values. Only if a data packet is error-free and the calculation of the full version of the new software was also successful, does the installation unit 120 trigger one
Aktualisierungsprozess zum Aktualisieren des betreffenden Zielgeräts 100, 102, 104 an. Update process for updating the relevant target device 100, 102, 104.
Gemäß dem in Fig. 1 gezeigten Ausführungsbeispiel gibt die Installationseinheit 120 beispielsweise die erste Unterscheidungsinformation 110 nach erfolgreicher Überprüfung des dem ersten Zielgerät 100 zugeordneten Datenpakets, die zweite Unterscheidungsinformation 112 nach erfolgreicher Überprüfung des dem zweiten Zielgerät 102 zugeordneten Datenpakets und ein dem dritten Zielgerät 104 zugeordnetes Datenpaket 124 nach dessen erfolgreicher Überprüfung je an eine zweite Schnittstelle 126 aus, hier beispielhaft an einen CAN-Bus des Fahrzeugs. Die Zielgeräte 100, 102, 104 umfassen je eine According to the exemplary embodiment shown in FIG. 1, the installation unit 120, for example, provides the first differentiation information 110 after it has been more successful Checking the data packet assigned to the first target device 100, the second differentiation information 112 after successful checking of the data packet assigned to the second target device 102 and a data packet 124 assigned to the third target device 104 after its successful checking, each to a second interface 126, here, for example, to a CAN Bus of the vehicle. The target devices 100, 102, 104 each include one
Zielgeräteempfangseinheit 128 zum Einlesen von Daten über die zweite Target device receiving unit 128 for reading in data via the second
Schnittstelle 126 sowie eine Aktualisierungseinheit 130 zum Aktualisieren ihrer jeweiligen Software. Die Aktualisierungseinheiten 130 umfassen je einen geeigneten Software- Updater. Zusätzlich zum Software-Updater umfassen das erste Zielgerät 100 und das zweite Zielgerät 102 je eine Aktualisierungseinheit mit einem Delta-Installer zum Durchführen eines Delta-Updates mittels der ersten Unterscheidungsinformation 110 im Fall des ersten Zielgeräts 100 oder mittels der zweiten Unterscheidungsinformation 112 im Fall des zweiten Zielgeräts 104. Die Aktualisierungseinheit 130 des dritten Zielgeräts 104 ist in diesem Beispiel hingegen ausgebildet, um die Aktualisierung ausschließlich als Vollupdate mittels des dritten Datenpakets 124 durchzuführen. Unter einem Delta-Installer ist hier eine Software- Komponente als Erweiterung zu einem Software-Updater zu verstehen. Unter einem Software-Updater ist hingegen eine Software- Komponente in einem Zielgerät, das für sein eigenes Software-Update zuständig ist, zu verstehen. Interface 126 and an update unit 130 for updating their respective software. The update units 130 each include a suitable software updater. In addition to the software updater, the first target device 100 and the second target device 102 each comprise an update unit with a delta installer for carrying out a delta update using the first differentiation information 110 in the case of the first target device 100 or using the second differentiation information 112 in the case of the second In contrast, in this example, the update unit 130 of the third target device 104 is designed to carry out the update exclusively as a full update by means of the third data packet 124. A delta installer is a software component as an extension to a software updater. A software updater, on the other hand, is a software component in a target device that is responsible for its own software update.
Fig. 2 zeigt eine schematische Darstellung einer Erstellung eines Datenpakets aus Fig. 1. Gezeigt sind die Empfangseinheit 108 und die Installationseinheit 120. Zur Berechnung einer neuen Version einer zu aktualisierenden Software empfängt die Aktualisierungseinrichtung 106 zunächst die entsprechende Delta- Datei von der Empfangseinheit 108, hier beispielsweise die erste FIG. 2 shows a schematic representation of the creation of a data packet from FIG. 1. The receiving unit 108 and the installation unit 120 are shown. To calculate a new version of software to be updated, the update device 106 first receives the corresponding delta file from the receiving unit 108, here, for example, the first
Unterscheidungsinformation 110, sucht dann in einem Schritt 200 in der Discrimination information 110, then searches in a step 200 in the
Speichereinheit nach der entsprechenden Kopie der aktuellen Software, erstellt in einem nachfolgenden Schritt 202 das Datenpaket durch Berechnung der Vollversion der neuen Software unter Verwendung der Storage unit after the corresponding copy of the current software, creates the data packet in a subsequent step 202 by calculating the full version of the new software using the
Unterscheidungsinformation 110 und hinterlegt schließlich nach erfolgreicher Überprüfung des Datenpakets in einem weiteren Schritt 204 die Vollversion der neuen Software in der Speichereinheit. Fig. 3 zeigt eine schematische Darstellung einer Aktualisierungseinrichtung 106 aus Fig. 1 zu drei aufeinanderfolgenden Zeitpunkten eines Distinction information 110 and, after the data packet has been successfully checked, in a further step 204 stores the full version of the new software in the storage unit. FIG. 3 shows a schematic illustration of an update device 106 from FIG. 1 at three successive times one
Aktualisierungsprozesses. Als Beispiel soll hier eine Version 1.0 auf eine Version 1.1 aktualisiert werden. Zu Beginn des Aktualisierungsprozesses, dargestellt im linken Bild, befindet sich auf der Speichereinheit 122 lediglich eine Kopie 300 einer aktuellen Version 1.0 der Software eines Zielgeräts, hier beispielhaft des ersten Zielgeräts. Nach dem Empfangen der Unterscheidungsinformation 110 weist die Speichereinheit 122 zusätzlich zur Kopie 300 die erste Update process. As an example, version 1.0 is to be updated to version 1.1. At the beginning of the update process, shown in the image on the left, there is only a copy 300 of a current version 1.0 of the software of a target device, here the example of the first target device, on the storage unit 122. After receiving the discrimination information 110, the storage unit 122 has the first in addition to the copy 300
Unterscheidungsinformation 110 auf, die ein Delta zwischen der Version 1.0 und einer neuen Version 1.1 der Software repräsentiert, wie es im mittleren Bild dargestellt ist. Das rechte Bild zeigt den Inhalt der Speichereinheit 122 nach der Berechnung der Vollversion 1.1. Distinction information 110, which represents a delta between version 1.0 and a new version 1.1 of the software, as shown in the middle image. The right picture shows the content of the storage unit 122 after the calculation of the full version 1.1.
Fig. 4 zeigt eine schematische Darstellung eines Datenflusses bei der Fig. 4 shows a schematic representation of a data flow in the
Aktualisierung von Software auf einem Zielgerät aus Fig. 1, hier beispielhaft auf dem ersten Zielgerät 100. Auf der Speichereinheit 122 der Updating software on a target device from FIG. 1, here by way of example on the first target device 100. On the storage unit 122 of the
Aktualisierungseinrichtung 106 befinden sich, wie in Fig. 3 gezeigt, die Kopie 300, die erste Unterscheidungsinformation 110 und das Datenpaket 302. Je nach Ausführungsbeispiel erfolgt die Aktualisierung des Zielgeräts 100 auf drei Arten. As shown in FIG. 3, the update device 106 contains the copy 300, the first differentiation information 110 and the data packet 302. Depending on the exemplary embodiment, the target device 100 is updated in three ways.
Bei einem regulären Update stellt die Aktualisierungseinrichtung 106 dem Zielgerät 100 lediglich die Unterscheidungsinformation 110 bereit. Das Zielgerät 100 führt dann die Aktualisierung der aktuellen Software mittels Delta-Installer durch und speichert abschließend die Version der neuen Software in einer Zielgerätespeichereinheit 400 ab, beispielsweise einem Flashspeicher. In the case of a regular update, the update device 106 merely provides the target device 100 with the differentiation information 110. The target device 100 then updates the current software using the delta installer and finally stores the version of the new software in a target device storage unit 400, for example a flash memory.
Alternativ stellt die Aktualisierungseinrichtung 106 dem Zielgerät 100 das Datenpaket 302 mit der Vollversion 1.1 zur Aktualisierung der aktuellen Software bereit, etwa wenn die Aktualisierung mittels Delta-Installer fehlschlägt. Alternatively, the update device 106 provides the target device 100 with the data package 302 with the full version 1.1 for updating the current software, for example if the update using the delta installer fails.
Drittens wird etwa im Fall einer fehlerhaften Aktualisierung die Software des Zielgeräts 100 auf eine frühere Version zurückgesetzt, was auch als Rollback bezeichnet wird. Hierzu stellt die Aktualisierungseinrichtung 106 dem Zielgerät 100 beispielsweise die Kopie 300 der Version 1.0 bereit. Fig. 5 zeigt ein Ablaufdiagramm eines Verfahrens 500 zum Aktualisieren von Software gemäß einem Ausführungsbeispiel. Das Verfahren 500 kann beispielsweise mittels einer Aktualisierungseinrichtung, wie sie vorangehend anhand der Figuren 1 bis 4 beschrieben ist, ausgeführt werden. Dabei wird zunächst in einem Schritt 510 die Unterscheidungsinformation oder, je nach Anzahl der zu aktualisierenden Zielgeräte, mehrere je einem Zielgerät zugeordnete Unterscheidungsinformationen über die erste Schnittstelle zur beispielsweise fahrzeugexternen Datenverarbeitungseinrichtung empfangen. In einem zweiten Schritt 520 werden die Unterscheidungsinformationen je mit einer in der Aktualisierungseinrichtung gespeicherten Kopie einer auf den jeweiligen Zielgeräten vorhandenen aktuellen Softwareversion kombiniert. Die Third, in the event of a faulty update, for example, the software of the target device 100 is reset to an earlier version, which is also referred to as rollback. For this purpose, the update device 106 provides the target device 100 with the copy 300 of version 1.0, for example. 5 shows a flowchart of a method 500 for updating software according to an exemplary embodiment. The method 500 can be carried out, for example, using an update device, as described above with reference to FIGS. 1 to 4. First of all, in a step 510, the differentiation information or, depending on the number of target devices to be updated, a plurality of differentiation information assigned to one target device is received via the first interface to the data processing device external to the vehicle, for example. In a second step 520, the differentiation information is combined with a copy of a current software version stored on the respective target devices stored in the update device. The
resultierenden Datenpakete repräsentieren dabei beispielsweise jeweils eine Vollversion der zu installierenden neuen Software je Zielgerät. Schließlich erfolgt in einem dritten Schritt 530 je nach Ausführungsbeispiel die Ausgabe des entsprechenden Datenpakets oder aber der entsprechenden resulting data packets represent, for example, a full version of the new software to be installed for each target device. Finally, depending on the exemplary embodiment, the corresponding data packet or else the corresponding one is output in a third step 530
Unterscheidungsinformationen über die zweite Schnittstelle zu den Zielgeräten. Verfügt das zu aktualisierende Zielgerät beispielsweise über einen geeigneten Delta- Installer, so kann die Aktualisierung auf die neue Softwareversion besonders ressourcenschonend allein mittels der an das Zielgerät übertragenen Unterscheidungsinformation und der aktuellen Version auf dem Zielgerät stattfinden. Distinguishing information about the second interface to the target devices. If the target device to be updated has, for example, a suitable delta installer, the update to the new software version can take place in a particularly resource-saving manner solely by means of the differentiation information transmitted to the target device and the current version on the target device.
Fig. 6 zeigt ein Ablaufdiagramm eines Verfahrens 600 zum Verarbeiten eines Datenpakets und/oder einer Unterscheidungsinformation gemäß einem 6 shows a flowchart of a method 600 for processing a data packet and / or a differentiation information according to one
Ausführungsbeispiel. Das Verfahren 600 kann beispielsweise unter Verwendung eines der Zielgeräte, wie sie vorangehend anhand der Figuren 1 bis 5 beschrieben sind, ausgeführt werden. Dabei wird in einem ersten Schritt 610 je nach Ausführungsbeispiel das entsprechende Datenpaket oder aber die entsprechende Unterscheidungsinformation über die zweite Schnittstelle, etwa einen CAN-Bus, empfangen. In einem zweiten Schritt 620 erfolgt die Embodiment. The method 600 can be carried out, for example, using one of the target devices, as described above with reference to FIGS. 1 to 5. In a first step 610, depending on the exemplary embodiment, the corresponding data packet or the corresponding differentiation information is received via the second interface, for example a CAN bus. This takes place in a second step 620
Aktualisierung der auf dem betreffenden Zielgerät vorhandenen aktuellen Software unter Verwendung des Datenpakets, das beispielsweise eine Update of the current software available on the target device in question using the data packet, for example a
Vollversion der zu installierenden neuen Software repräsentiert, bzw. unter Verwendung der Unterscheidungsinformation, sofern das Zielgerät zur Full version of the new software to be installed, or using the differentiation information, if the target device for
Durchführung eines Delta-Verfahrens ausgebildet ist. Die Unterscheidungsinformation repräsentiert im Gegensatz zum Datenpaket lediglich die Unterschiede zwischen der aktuellen und der neuen Implementation of a delta process is formed. The In contrast to the data packet, distinction information only represents the differences between the current and the new one
Softwareversion. Software version.
Nachfolgend werden verschiedene Ausführungsbeispiele des hier vorgestellten Ansatzes nochmals mit anderen Worten beschrieben. Various exemplary embodiments of the approach presented here are described again in other words below.
Mittels des in Fig. 1 dargestellten Aktualisierungsprozesses soll die Software innerhalb eines Gesamtsystems, etwa eines Fahrzeugs, durch ein Software- Update auf eine aktuelle Version gebracht werden. Dabei ist es unerheblich, ob das Update in einer Werkstatt oder drahtlos im Feld stattfindet. Jede Zieleinheit im Fahrzeug, in Fig. 1 die in diesem Beispiel drei Zielgeräte 100, 102, 104, besitzt hierzu je einen Software-Updater 128 mit Vollupdate- Funktionalität und gegebenenfalls einen Delta-Installer 130. Im Unterschied zu Software-Updatern mit Delta-Installer empfangen Software-Updater ohne Delta-Installer keine Delta- Datei, sondern eine Vollversion zur Software-Aktualisierung. 1, the software within an overall system, for example a vehicle, is to be updated to a current version by means of a software update. It is irrelevant whether the update takes place in a workshop or wirelessly in the field. For this purpose, each target unit in the vehicle, in FIG. 1 the three target devices 100, 102, 104 in this example, each has a software updater 128 with full update functionality and possibly a delta installer 130. In contrast to software updaters with delta Installers receive software updaters without a delta installer, not a delta file, but a full version for software updates.
Zusätzlich zu den standardmäßig im Fahrzeug befindlichen Modulen weist das Fahrzeug einen zentralen Delta-Installer auf. Dieser zentrale Delta-Installer, vorangehend Installationseinheit 120 genannt, ist entweder Teil einer bereits bestehenden Komponente, etwa eines zentralen Gateways oder eines Over-the- Air-Masters, oder ist als eigenständige Einheit realisiert. Bei einer Erweiterung einer bestehenden Zentralkomponente ist beispielsweise die Installationseinheit 120 oder die Zentralkomponente der Update-Master. In addition to the standard modules in the vehicle, the vehicle has a central delta installer. This central delta installer, previously called installation unit 120, is either part of an already existing component, for example a central gateway or an over-the-air master, or is implemented as an independent unit. If an existing central component is expanded, the installation unit 120 or the central component is the update master, for example.
Die Installationseinheit 120 hat über die Speichereinheit 122 direkten Zugriff auf Backups sämtlicher Software im System, die durch dieses Verfahren aktualisiert werden sollen. Insbesondere sollten Versionen der aktuell genutzten Software aller Komponenten als Vollversionen vorliegen und in einer entsprechend großen persistenten Speichereinheit 122 hinterlegt sein. Diese Software- Backups werden beispielsweise schon bei der Produktion einmalig geflasht oder sogar vorgeflasht. The installation unit 120 has direct access via the storage unit 122 to backups of all software in the system which are to be updated by this method. In particular, versions of the currently used software of all components should be available as full versions and be stored in a correspondingly large persistent storage unit 122. These software backups, for example, are flashed once during production or even pre-flashed.
Die Installationseinheit 120 nimmt die Delta-Update-Datei jeder einzelnen Zieleinheit entgegen, sucht das entsprechende Backup in der Speichereinheit 122 und wendet diese Kombination mittels Delta- Installer in der Speichereinheit 122 an, wie dies schematisch in Fig. 2 dargestellt ist. Die Installationseinheit 120 prüft jetzt die berechnete neue Software auf Korrektheit und speichert diese lokal als neue Backup-Version 302 ab. Somit verfügt die Aktualisierungseinrichtung 106 über die Vollversion der aktuellen Software einer jeden Zieleinheit, die Vollversion der neuen Software einer jeden Zieleinheit und über die jeweilige Delta-Update-Datei einer jeden Zieleinheit. Dies ist aus den Figuren 3 und 4 ersichtlich. The installation unit 120 accepts the delta update file of each individual target unit, searches for the corresponding backup in the storage unit 122 and uses this combination by means of a delta installer in the storage unit 122, as is shown schematically in FIG. 2. The installation unit 120 now checks the calculated new software for correctness and saves it locally as the new backup version 302. The update device 106 thus has the full version of the current software of each target unit, the full version of the new software of each target unit and the respective delta update file of each target unit. This can be seen from FIGS. 3 and 4.
Nach erfolgreicher Berechnung und Prüfung aller voneinander abhängigen Versionen wird das Gesamt- oder Teilsystem in den Update-Modus versetzt. Dabei wird den einzelnen Software-Updatern der Zieleinheiten je nach deren Ausstattung die zuvor empfangene Delta-Update-Datei oder die Vollversion der neuen Software als Update-Paket angeboten. Die Software-Updater der After successful calculation and testing of all interdependent versions, the entire or subsystem is put into update mode. Depending on their configuration, the individual software updates of the target units are offered the previously received delta update file or the full version of the new software as an update package. The software updater of
Zieleinheiten wenden nun beispielsweise ebenfalls das Delta-Update-Verfahren an und bestätigen der Installationseinheit 120 das jeweilige Ergebnis. Target units now also use the delta update method, for example, and confirm the respective result to installation unit 120.
Im Falle eines Fehlers, was aufgrund der Vorprüfung eher selten Vorkommen sollte, sendet die Installationseinheit 120 die zuvor selbst berechnete neue Vollversion in Form des Datenpakets 302 als Vollupdate komprimiert oder unkomprimiert an die betreffende Zieleinheit, wie es in Fig. 4 gezeigt ist. Im Falle eines Rollback auf die alte Version wird beispielsweise die alte Backup-Version in Form der Kopie 300 als Vollupdate übermittelt. Nach erfolgreichem Update wird in der Installationseinheit 120 die neue Version 302 der Software als aktuell gültige Version vermerkt, sodass diese als Referenz für weitere Updates nutzbar ist. In the event of an error, which should occur rather rarely due to the preliminary check, the installation unit 120 sends the previously self-calculated new full version in the form of the data packet 302 as a full update, compressed or uncompressed, to the relevant target unit, as shown in FIG. 4. In the case of a rollback to the old version, the old backup version, for example, is transmitted in the form of a copy 300 as a full update. After a successful update, the new version 302 of the software is noted in the installation unit 120 as the currently valid version, so that it can be used as a reference for further updates.
Wann und ob alte Versionen in der Installationseinheit 120 gelöscht werden, hängt unter anderem von der Größe der Speichereinheit 122 ab. Wichtig ist, dass das Backup der aktuellen Software einer zu aktualisierenden Komponente nicht gelöscht wird. When and whether old versions in the installation unit 120 are deleted depends, among other things, on the size of the storage unit 122. It is important that the backup of the current software of a component to be updated is not deleted.
Bedingung für die Aktualisierung mittels Delta-Verfahren ist ferner, dass der Delta-Installer in der Installationseinheit 120 und der Delta-Installer in der zu aktualisierenden Zieleinheit kompatibel sind. Bei einem direkten Update, etwa über den Fahrzeugbus, sollte die A condition for the update using the delta method is also that the delta installer in the installation unit 120 and the delta installer in the target unit to be updated are compatible. With a direct update, for example via the vehicle bus, the
Installationseinheit 120 zusätzlich aktualisiert werden, damit die Versionen identisch bleiben. Ansonsten wäre ein späteres Over-the-Air-Update im Feld nur per Vollupdate möglich. Installation unit 120 can also be updated so that the versions remain identical. Otherwise, a later over-the-air update in the field would only be possible with a full update.
Gemäß einem Ausführungsbeispiel liegt die Kopie 300 der jeweils aktuellen Software nicht dauerhaft in der Speichereinheit 122 vor, sondern wird erst bei Bedarf von der betreffenden Zieleinheit geladen. Somit kann ein initales Flashen der Speichereinheit 122 entfallen. According to one exemplary embodiment, the copy 300 of the current software is not permanently available in the storage unit 122, but is only loaded by the relevant target unit when required. Thus, an initial flashing of the memory unit 122 can be omitted.
Um die Gesamtzeit der Aktualisierung weiter zu reduzieren, ist es beispielsweise auch möglich, die Unterscheidungsinformation 110 direkt, d. h. ohne vorherige Überprüfung oder sonstige Zwischenschritte, an die Zieleinheit weiterzuleiten. In order to further reduce the total time of the update, it is also possible, for example, to directly distinguish information 110. H. without prior verification or other intermediate steps to forward to the target unit.
Gemäß einem weiteren Ausführungsbeispiel umfasst die Installationseinheit 120 zusätzlich einen Delta-Generator, etwa um eine Rollback-Datei, welche durch die Pakete 302 und 300 berechnet wird, ebenfalls als Delta-Datei übertragen zu können. According to a further exemplary embodiment, the installation unit 120 additionally comprises a delta generator, for example in order to also be able to transmit a rollback file, which is calculated by the packages 302 and 300, as a delta file.
Fig. 7 zeigt eine schematische Darstellung eines Fahrzeugs 700 gemäß einem Ausführungsbeispiel. Das Fahrzeug 700, beispielsweise ein Straßenfahrzeug zur Personenbeförderung, weist ein Zielgerät 100 auf. Bei dem Zielgerät 100 handelt es sich beispielweise um ein Motorsteuergerät oder ein Airbagsteuergerät mit einer Funktionalität, wie sie in bekannten Steuergeräten um gesetzt wird. Das Zielgerät 100 weist einen wiederbeschreibbaren Speicher zum Speichern einer Software zum Betreiben des Zielgeräts 100 auf. Um die Software zu 7 shows a schematic illustration of a vehicle 700 according to an exemplary embodiment. The vehicle 700, for example a road vehicle for the transportation of people, has a target device 100. The target device 100 is, for example, an engine control device or an airbag control device with a functionality as implemented in known control devices. The target device 100 has a rewritable memory for storing software for operating the target device 100. To the software too
aktualisieren, ist in dem Fahrzeug 700 eine Aktualisierungseinrichtung 106 integriert, die ausgebildet ist, um ein Datenpaket 302 und zusätzlich oder alternativ eine Unterscheidungsinformation 110 umfassendes Signal an das Zielgerät 100 zu übermitteln. Das Datenpaket umfasst gemäß einem update, an update device 106 is integrated in the vehicle 700, which is designed to transmit a data packet 302 and additionally or alternatively a signal comprising differentiation information 110 to the target device 100. According to one, the data packet comprises
Ausführungsbeispiel eine aktualisierte Version der Software zur Abspeicherung in dem Speicher des Zielgeräts 100. Die Unterscheidungsinformation 110 umfasst gemäß einem Ausführungsbeispiel Daten, die einen Unterschied zwischen der im Zielgerät 100 gespeicherten Software und der aktualisierten Version der Software definieren. Die Datenpaket 302 und die Embodiment an updated version of the software for storage in the memory of the target device 100. According to an embodiment, the distinction information 110 comprises data which is a difference between the software stored in the target device 100 and the updated Define software version. The data packet 302 and the
Unterscheidungsinformation 110 werden gemäß einem Ausführungsbeispiel in Form elektrischer Signale übertragen. Die Aktualisierungseinrichtung 106 ist ausgebildet, um ein Signal, das die Unterscheidungsinformation 110 umfasst, von einer fahrzeugextern angeordneten Datenverarbeitungseinrichtung 118 zu empfangen und zum Generieren des Datenpakets 302 zu verwenden. Dazu weist die Datenverarbeitungseinrichtung 118 eine Kombiniereinrichtung auf, die ausgebildet ist, um die Unterscheidungsinformation 110 mit einer in einem Speicher der Aktualisierungseinrichtung 106 gespeicherten Kopie 300 der aktuell in dem Zielgerät 100 gespeicherten Software zu kombinieren. Optional weist dieDifferentiation information 110 is transmitted in the form of electrical signals according to one exemplary embodiment. The update device 106 is designed to receive a signal, which includes the differentiation information 110, from a data processing device 118 arranged outside the vehicle and to use it to generate the data packet 302. For this purpose, the data processing device 118 has a combining device which is designed to combine the differentiation information 110 with a copy 300 of the software currently stored in the target device 100, which is stored in a memory of the update device 106. Optionally, the
Datenverarbeitungseinrichtung 118 eine Überprüfungseinrichtung auf, die ausgebildet ist, um das Datenpaket 302 auf Fehler zu überprüfen. Gemäß einem Ausführungsbeispiel ist die Aktualisierungseinrichtung 106 ausgebildet, um abhängig von einem Ergebnis der in der Überprüfungseinrichtung durchgeführten Überprüfung entweder das Datenpaket 302 oder die Data processing device 118 has a checking device which is designed to check the data packet 302 for errors. According to one exemplary embodiment, the update device 106 is designed to, depending on a result of the check carried out in the checking device, either the data packet 302 or the
Unterscheidungsinformation 110 an das Zielgerät 100 zu übermitteln.  To transmit distinction information 110 to the target device 100.
Umfasst ein Ausführungsbeispiel eine„und/oder“-Verknüpfung zwischen einem ersten Merkmal und einem zweiten Merkmal, so ist dies so zu lesen, dass das Ausführungsbeispiel gemäß einer Ausführungsform sowohl das erste Merkmal als auch das zweite Merkmal und gemäß einer weiteren Ausführungsform entweder nur das erste Merkmal oder nur das zweite Merkmal aufweist. If an exemplary embodiment comprises a “and / or” link between a first feature and a second feature, this is to be read in such a way that the embodiment according to one embodiment has both the first feature and the second feature and according to a further embodiment either only that has the first feature or only the second feature.

Claims

Ansprüche Expectations
1. Verfahren (500) zum Aktualisieren von Software auf einem 1. Method (500) for updating software on a
Zielgerät (100) mittels einer Aktualisierungseinrichtung (106), wobei das Verfahren (500) folgende Schritte umfasst:  Target device (100) using an update device (106), the method (500) comprising the following steps:
Empfangen (510) einer Unterscheidungsinformation (110), die einen Unterschied zwischen einer auf dem Zielgerät (100) installierten aktuellen Software und einer auf dem Zielgerät (100) zu installierenden neuen Software repräsentiert, von einer Schnittstelle (116) zu einer externen Datenverarbeitungseinrichtung (118); Receiving (510) discrimination information (110), which represents a difference between current software installed on the target device (100) and new software to be installed on the target device (100), from an interface (116) to an external data processing device (118 );
Kombinieren (520) der Unterscheidungsinformation (110) mit einer in der Aktualisierungseinrichtung (106) hinterlegten Kopie (300) der aktuellen Software, um ein die neue Software repräsentierendes Datenpaket (302) zu erstellen; und Combining (520) the differentiation information (110) with a copy (300) of the current software stored in the update device (106) in order to create a data packet (302) representing the new software; and
Ausgeben (530) des Datenpakets (302) und/oder der Outputting (530) the data packet (302) and / or the
Unterscheidungsinformation (110) an eine Schnittstelle (126) zum Zielgerät (100), um die Software auf dem Zielgerät (100) zu  Discrimination information (110) to an interface (126) to the target device (100) to the software on the target device (100)
aktualisieren.  To update.
2. Verfahren (500) gemäß Anspruch 1, mit einem Schritt des Überprüfens des Datenpakets (302) auf Fehler, wobei im Schritt des 2. The method (500) according to claim 1, with a step of checking the data packet (302) for errors, wherein in the step of
Ausgebens (530) das Datenpaket (302) und/oder die  Output (530) the data packet (302) and / or the
Unterscheidungsinformation (110) abhängig von einem Ergebnis des Überprüfens ausgegeben wird.  Discrimination information (110) is output depending on a result of the checking.
3. Verfahren (500) gemäß Anspruch 2, mit einem Schritt des 3. The method (500) according to claim 2, comprising a step of
Unterdrückens des Ausgebens (530) des Datenpakets (302) und/oder der Unterscheidungsinformation (110), wenn sich beim Überprüfen ergibt, dass das Datenpaket (302) fehlerhaft ist. Suppressing the output (530) of the data packet (302) and / or the discrimination information (110) if the check reveals that the data packet (302) is faulty.
4. Verfahren (500) gemäß einem der vorangegangenen Ansprüche, bei dem im Schritt des Kombinierens (520) eine Vollversion der neuen Software als das Datenpaket (302) erstellt wird. 4. The method (500) according to one of the preceding claims, in which in the step of combining (520) a full version of the new software is created as the data packet (302).
5. Verfahren (500) gemäß einem der vorangegangenen Ansprüche, mit einem weiteren Schritt des Empfangens, in dem nach dem Ausgeben ein Ergebnis des Aktualisierens repräsentierende Ergebnisinformation von der Schnittstelle (126) zum Zielgerät (100) empfangen wird, wobei in einem Schritt des Kennzeichnens die neue Software als die aktuelle Software gekennzeichnet wird, wenn die Ergebnisinformation anzeigt, dass das Aktualisieren erfolgreich war, und/oder der Schritt des 5. The method (500) according to one of the preceding claims, with a further step of receiving, in which, after the output, a result information representing a result of the update is received from the interface (126) to the target device (100), wherein in a step of labeling the new software is flagged as the current software if the result information indicates that the update was successful and / or the step of
Ausgebens (530) erneut ausgeführt wird, um das Datenpaket (302) und/oder die Kopie (300) und/oder eine Zurücksetzungsinformation zum Zurücksetzen des Zielgeräts (100) auf eine frühere Version der Software an die Schnittstelle (126) zum Zielgerät (100) auszugeben, wenn die Ergebnisinformation anzeigt, dass das Aktualisieren nicht erfolgreich war.  Outputting (530) is performed again to transfer the data packet (302) and / or the copy (300) and / or reset information for resetting the target device (100) to an earlier version of the software at the interface (126) to the target device (100 ) if the result information indicates that the update was not successful.
6. Verfahren (600) zum Verarbeiten eines Datenpakets (302) und/oder einer Unterscheidungsinformation (110) aus einem Verfahren (500) gemäß einem der Ansprüche 1 bis 5 mittels eines Zielgeräts (100), wobei das Verfahren (600) folgende Schritte umfasst: 6. A method (600) for processing a data packet (302) and / or a differentiation information (110) from a method (500) according to one of claims 1 to 5 by means of a target device (100), the method (600) comprising the following steps :
Empfangen (610) des Datenpakets (302) und/oder der Receiving (610) the data packet (302) and / or the
Unterscheidungsinformation (110) über eine Schnittstelle (126) zur Aktualisierungseinrichtung (106); und  Distinction information (110) via an interface (126) to the update device (106); and
Aktualisieren (620) einer auf dem Zielgerät (100) aktuell installierten Software unter Verwendung des Datenpakets (302) und/oder der Unterscheidungsinformation (110). Update (620) software currently installed on the target device (100) using the data packet (302) and / or the differentiation information (110).
7. Aktualisierungseinrichtung (106) mit Einheiten (108, 120, 122), die 7. Update device (106) with units (108, 120, 122) that
ausgebildet sind, um das Verfahren (500) gemäß einem der Ansprüche 1 bis 5 auszuführen und/oder anzusteuern. are designed to carry out and / or to control the method (500) according to one of claims 1 to 5.
8. Zielgerät (100) mit Einheiten (128, 130; 400), die ausgebildet sind, um das Verfahren (600) gemäß Anspruch 6 auszuführen und/oder anzusteuern. 8. target device (100) with units (128, 130; 400) which are designed to execute and / or to control the method (600) according to claim 6.
9. Computerprogramm, das ausgebildet ist, um das Verfahren (500) gemäß einem der Ansprüche 1 bis 5 und/oder das Verfahren (600) gemäß Anspruch 6 auszuführen und/oder anzusteuern. io. Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 9 gespeichert ist. 9. Computer program which is designed to execute and / or to control the method (500) according to one of claims 1 to 5 and / or the method (600) according to claim 6. io. Machine-readable storage medium on which the computer program according to claim 9 is stored.
PCT/EP2019/063602 2018-06-20 2019-05-27 Method for updating software on a target device WO2019242996A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP19726990.5A EP3811203A1 (en) 2018-06-20 2019-05-27 Method for updating software on a target device
CN201980053946.5A CN112567339A (en) 2018-06-20 2019-05-27 Method for updating software on a target device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102018209972.3A DE102018209972A1 (en) 2018-06-20 2018-06-20 Method for updating software on a target device using an update device and method for processing a data packet and / or a differentiation information using a target device
DE102018209972.3 2018-06-20

Publications (1)

Publication Number Publication Date
WO2019242996A1 true WO2019242996A1 (en) 2019-12-26

Family

ID=66668936

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2019/063602 WO2019242996A1 (en) 2018-06-20 2019-05-27 Method for updating software on a target device

Country Status (4)

Country Link
EP (1) EP3811203A1 (en)
CN (1) CN112567339A (en)
DE (1) DE102018209972A1 (en)
WO (1) WO2019242996A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505363B (en) * 2021-08-04 2022-11-29 上海瓶钵信息科技有限公司 Method and system for realizing memory space replay prevention through software mode

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160364230A1 (en) * 2015-06-15 2016-12-15 Lear Corporation Telematics control unit comprising a differential update package
US20180095745A1 (en) * 2016-09-30 2018-04-05 Hitachi, Ltd. Computer System, Method of Updating Software with Computer System, and Program Therefor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699408A (en) * 2013-12-12 2014-04-02 乐视网信息技术(北京)股份有限公司 Software updating method and equipment
JP6216730B2 (en) * 2015-03-16 2017-10-18 日立オートモティブシステムズ株式会社 Software update device and software update method
US10437680B2 (en) * 2015-11-13 2019-10-08 Kabushiki Kaisha Toshiba Relay apparatus, relay method, and computer program product

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160364230A1 (en) * 2015-06-15 2016-12-15 Lear Corporation Telematics control unit comprising a differential update package
US20180095745A1 (en) * 2016-09-30 2018-04-05 Hitachi, Ltd. Computer System, Method of Updating Software with Computer System, and Program Therefor

Also Published As

Publication number Publication date
CN112567339A (en) 2021-03-26
EP3811203A1 (en) 2021-04-28
DE102018209972A1 (en) 2019-12-24

Similar Documents

Publication Publication Date Title
DE102019109672A1 (en) CANCELLATION AFTER PARTIAL FAILURE IN MULTIPLE ELECTRONIC CONTROL UNITS BY OVER THE AIR UPDATE
WO2016074663A1 (en) Updating of firmware
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
WO2019096840A1 (en) Method and system for updating vehicle software
WO2019137773A1 (en) Backing up a software update of a control device of a means of transport
EP2109041A1 (en) Method for automatically updating software
WO2019242996A1 (en) Method for updating software on a target device
DE102021211908A1 (en) Methods for processing data
EP3353650A1 (en) System and method for distributing and/or updating software in interconnected control devices of a vehicle
DE102015207795A1 (en) Method and device for updating software in a means of transport
WO2017178211A1 (en) Method for operating a control device for a vehicle, control device, operating system, motor vehicle
DE102013021231A1 (en) Method for operating an assistance system of a vehicle and vehicle control unit
EP3384411B1 (en) Method for transmitting a function command between a motor vehicle and a device outside the vehicle, and interface apparatus and system
EP3724758B1 (en) Method for carrying out an update to a software application in a device which is operating, and device and motor vehicle
EP2962162B1 (en) Method for setting up and/or implementing a programming process of a control device of a transport means
DE102019000493A1 (en) Method for updating a respective software of several control units of a vehicle
WO2020099023A2 (en) Control device for a vehicle component, kit comprising a control device and a testing device, vehicle, method for updating a control device, and computer-readable storage medium
DE102020216481A1 (en) Method of operating a controller and controller
DE102012217312B4 (en) Method and system for updating code in processing systems
DE102012218665B4 (en) Application system for control units
WO2009103728A1 (en) Method and device for storing information data
DE202014010619U1 (en) Update a firmware
DE102017222267A1 (en) System and method for updating software modules of at least one rail vehicle
WO2023006531A1 (en) Method for checking digital signatures, vehicle computing unit and vehicle
DE102021202015A1 (en) Method of operating a controller and controller

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: 19726990

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019726990

Country of ref document: EP

Effective date: 20210120