WO2019096840A1 - Method and system for updating vehicle software - Google Patents

Method and system for updating vehicle software Download PDF

Info

Publication number
WO2019096840A1
WO2019096840A1 PCT/EP2018/081215 EP2018081215W WO2019096840A1 WO 2019096840 A1 WO2019096840 A1 WO 2019096840A1 EP 2018081215 W EP2018081215 W EP 2018081215W WO 2019096840 A1 WO2019096840 A1 WO 2019096840A1
Authority
WO
WIPO (PCT)
Prior art keywords
vehicle
software package
server
package
software
Prior art date
Application number
PCT/EP2018/081215
Other languages
German (de)
French (fr)
Inventor
Malek Naffati
Original Assignee
Audi Ag
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 Audi Ag filed Critical Audi Ag
Publication of WO2019096840A1 publication Critical patent/WO2019096840A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/44Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Definitions

  • the present invention relates to a method for updating a software stored in a control unit of a vehicle, in which a software package is transmitted to the electronic control device (ECU) and the software stored in the control unit is at least partially updated by means of the transmitted software package ,
  • Modern vehicles have a plurality of safety systems and comfort systems, which each comprise at least one device arranged in the vehicle and an operating system (operating system, OS) corresponding to the at least one device.
  • the operating system is provided in the form of software and therefore forms a software within the meaning of the invention.
  • the software usually has at least one application program and data required by the application program, is stored in a control unit of the vehicle and is executed by the latter.
  • the software of a vehicle is updated by means of a so-called test stand when, for example, the vehicle is for inspection in a garage of a dealer of a vehicle's vehicle.
  • the software stored in the control unit of the vehicle is generally completely replaced by a memory image of an updated version of the software, which involves a great deal of time and high costs. Consequently, considerations are being made for updating software of a vehicle, similar to computers or smartphones, incrementally or differentially (incrementally or differently) to reduce the amount of data to be transferred each time it is updated.
  • wireless communication devices for example mobile radio interfaces in the vehicles, can be used to update the software stored in the control devices via the mobile Internet.
  • DE 10 2012 001 047 A1 discloses a method for updating a software package which is stored in a control unit of a vehicle.
  • an updated software package is divided into an updated base package, which may relate to basic functions, and at least one updated supplementary package, which may relate to optional functions.
  • the basic package and the at least one additional package are transmitted via separate wireless connections in the control unit.
  • the updated base package is executable by the controller before the at least one updated supplemental package is completely transferred. In this way, each limited bandwidths of the wireless connections can be optimally used.
  • DE 10 2016 210 511 A1 describes a modular software system for updating a memory image stored in a memory unit of a control device of a vehicle.
  • a differential memory image for the control unit of the vehicle is generated by a manufacturer of the vehicle and made available for downloading.
  • the differential memory map includes one or more updated areas of the stored memory map.
  • the stored memory image is updated by replacing one or more areas of the stored memory image with a respective corresponding updated area.
  • DE 10 2012 001 048 A1 discloses a method for updating a software package which is stored in a mobile terminal, in particular a control unit of a vehicle.
  • an updated software package is encoded as an endless data stream and the encoded data stream is transmitted to a transmitting device which continuously transmits the encoded data stream.
  • the mobile terminal receives the coded data stream and decodes it to obtain the updated software package.
  • a software package in a plurality of mobile terminals can be updated simultaneously.
  • the software of many vehicles of a model series of a manufacturer can be updated simultaneously.
  • the installation and operation of such a system for vehicles of many model series and manufacturers is very expensive.
  • the invention is therefore based on the object of proposing an improved method for updating a software stored in a control unit of a vehicle, which avoids the disadvantages described. Moreover, it is an object of the invention to provide a system for updating a software stored in a control unit of a vehicle.
  • An object of the present invention is a method for updating a software stored in a control unit of a vehicle, in which a software package is transmitted to the control unit and the software stored in the control unit is at least partially updated by means of the transmitted software package.
  • the software package is generated and provided by a manufacturer of the vehicle.
  • the software package transferred to the controller is applied by the controller to update at least portions of the stored software, i. H. to replace. Any application of the software package is within the scope of the invention, independent of any particular embodiment.
  • At least one packet segment (data chunk) of the software package is transmitted by a control unit of another vehicle different from the vehicle when the vehicle is arranged in an environment of the further vehicle.
  • the software package accordingly comprises a plurality of packet segments, which are preferably transmitted wirelessly from one vehicle directly to another vehicle.
  • the invention takes advantage of the fact that each vehicle is naturally moved while approaching enough of another vehicle to provide an instant wireless connection between the two vehicles (car-to-car) produce.
  • the further vehicle usually already has a complete software stored in the control unit and a communication device for establishing a wireless connection. It can act as a replicator of the software. In this way, a decentralized distribution of the software package is achieved, whereby a mobile network and a accessible via the mobile network server system is relieved.
  • a packet segment of the software package is transmitted by a replication server when the vehicle is located in an environment of the replication server.
  • Replication servers provide another means for decentralized distribution of the software package. They are preferably installed in places where there are usually many vehicles in the area. The vehicle can establish a wireless connection (ca r-to-i nf rastru ctu re) to the replication server when it is in the vicinity of the replication server.
  • a software package having high priority and / or general applicability is transmitted in a plurality of vehicles.
  • Software packages concerning the safety of the vehicle or the protection of the software are given a high priority in the updating.
  • software packages with high-precision digital maps in many vehicles also different model series of a Fierstellers applicable.
  • the software package or a package segment of the software package is transmitted from a mirror server.
  • the vehicle may establish a car-to-internet (cellular) connection to the mirror server via a mobile network when in a mobile cell of a mobile network.
  • the software package is transmitted from a backend server (distributor) to a mirror server and / or transmitted from a mirror server to a different mirror server other than the mirror server and / or transmitted from a mirror server to a replication server.
  • the backend server may be provided by a manufacturer of the vehicle. All software packages for the vehicle are provided on the backend server. However, the vehicle does not connect to the back-end server to update a software package stored in the controller.
  • the backend server is exclusively configured to transfer software packages to a mirror server.
  • the software package is transmitted by means of a specific transmission protocol which is uniform in the method and which is designed in particular for load distribution.
  • the unified transmission protocol ensures that the software package can be transferred from a mirror server, from a replication server or from another vehicle in the same way to the control unit of the vehicle.
  • the uniform transmission protocol makes it possible to interrupt and continue a transmission.
  • it also supports transmitting different packet segments of a software package from different sources. This allows a load balancing to be achieved on the various sources. For example, a source of transmission may be selected randomly or round-robin.
  • a package list with at least one provided software package is requested and transmitted
  • the package list in particular filtered if requested by the vehicle
  • the packet list transmitted by a mirror server includes all software packages provided by the manufacturer of the vehicle on the backend server.
  • the packet list transmitted by a replication server or another vehicle comprises each software package provided on the replication server or in the control unit of the further vehicle.
  • Filtering the package list is for removing such software packages that are not applicable to the vehicle.
  • the filtering can be done on the source-forming mirror server or replication server. For this, a corresponding filter criterion must be transmitted when requesting the package list.
  • the package list can be filtered in the control unit of the vehicle. In this case, a complete transmitted package list is reduced by subsequently applying the filter criterion.
  • the source list includes any mirror server or replication server from which the packet segment is deployed and can be transmitted, but not the backend server.
  • One from a replication server The source list transferred contains only the replication server itself. This ensures the decentralized nature of the procedure, which reduces the load on the backend server and mirror servers.
  • the vehicle controller, replication server, or mirror server is notified to the backend server as a new source and inserted by it into the source list corresponding to the packet segment. Accordingly, with each successful transmission of the packet segment, the number of usable sources providing the packet segment increases.
  • the invention also relates to a system for updating a software stored in a control unit of a vehicle, which comprises a vehicle with a control unit in which the software is stored, and is configured to transmit a software package to the control unit in order to control the control unit stored software by means of the transmitted software package at least partially.
  • the system according to the invention comprises a further vehicle which is different from the vehicle and is configured to transmit at least one package segment of the software package from a control device of the further vehicle when the vehicle is arranged in an environment of the further vehicle. If a vehicle is sufficiently close to another vehicle, an immediate wireless connection between the two vehicles (car-to-car) can be established. Since the other vehicle usually has a complete software stored in the control unit, one or more parcel segments can be transferred from the further vehicle into the control unit of the vehicle. In this way, a decentralized distribution of the software package is achieved, whereby a mobile network and a accessible via the mobile network server system is relieved.
  • the system comprises a replication server, which in particular at a gas station or a charging station for the vehicle, in a parking garage, in a supermarket or is located in a shopping mall, and is configured to transmit a packet segment of the software package from the replication server when the vehicle is located in an environment of the replication server.
  • a place where a service is provided is frequented by a vehicle.
  • the vehicle is usually parked for the duration of the use of the service in the area surrounding the place.
  • its software may be updated by a replication server located at the service location.
  • the system includes a mirror server associated with a continent and located in an area of the continent, and is configured to transmit a packet segment of the software package from the mirror server when the vehicle is located in the region of the continent. If the vehicle is in a mobile radio cell of a mobile network provided in the area of the continent, its software can be updated via the mobile Internet from the mirror server.
  • a mirror server may also be associated with a single state or multiple states of a continent and located in a single state or multiple state area, thereby reducing a load on the mirror servers and facilitating load distribution to the mirror servers.
  • the system includes a back-end server and is configured to transfer a packet segment of the software package from the back-end server to a mirror server.
  • the backend server may be provided by a manufacturer of the vehicle and provides all software packages for the vehicle.
  • the backend server is not configured to transfer software packages to the vehicle.
  • the software package comprises a plurality of metadata, a checksum, an authentication information (signature), a plurality of packet segments, each comprising data and / or at least one application program, and a hash list referencing the plurality of packet segments.
  • the metadata Information about which vehicle the software package is applicable to or which priority it has.
  • the metadata may include a lead time for the software package. The deferral duration determines how long the software package will be kept in a cache memory of the vehicle's controller after transmission for transmission to other vehicles.
  • the checksum makes it easy to determine the integrity of the software package.
  • the authentication information identifies the software package as originating from a particular creator. The subdivision of the software package into several package segments enables the use of several different sources for transferring the software package.
  • Figure 1 is a schematic representation of an embodiment of the
  • Figure 2 is a schematic representation of a detail view of a in FIG.
  • Figure 3 is a schematic representation of a first subsystem of in
  • FIG. 4 is a flow chart of a first one shown in FIG.
  • Figure 5 is a schematic representation of a second subsystem of in
  • FIG. 6 shows in a flow chart a second method part corresponding to the second subsystem shown in FIG. 5 of an embodiment of the method according to the invention
  • Figure 7 is a schematic representation of a third subsystem of in
  • FIG. 8 is a flowchart showing a third to that shown in FIG.
  • Subsystem correspond ent third process part of a
  • Figure 1 shows a schematic representation of an embodiment of the inventive system for updating a software.
  • the system includes a plurality of vehicles 10 with a controller (not shown) in which the software is stored. Furthermore, the system comprises a plurality of other vehicles 11 different from the vehicle 10.
  • the system further comprises a plurality of replication servers 30, which are arranged in a supermarket 31 or a parking garage 32, a plurality of mirror servers 40, 41, which are each assigned to a state 42 and arranged in a region of the state 42, and a back-end server 60, which of a Fiersteller 61 is provided.
  • the system also includes multiple mirror servers, not shown, each associated with a continent.
  • the system is configured to transmit a software package 20 to the controllers of the vehicles 10 to at least partially update the software stored in the controllers by means of the transmitted software package 20.
  • packet segments 25 of the software package 20 can be transmitted from the control devices of the further vehicles 11 to the control devices of the vehicles 10 when a vehicle 10 is arranged in an environment of another vehicle 11.
  • the system is configured to transfer packet segments 25 of the software package 20 from the replication servers 30 to the controllers of the vehicles 10, 11 when a vehicle 10, 11 is located in an environment of a replication server 30, packet segments 25 of the software package 20 from the mirror servers 40 41 to transmit to the controllers of the vehicles 11 when a vehicle 11 is located in the area of the continent or state 42 of the mirror server 40, 41, and to transmit packet segments 25 of the software package 20 from the backend server 60 to the mirror servers 40, 41 ,
  • the software package 20 is first transmitted from the back-end server 60 to the mirror servers 40, 41. Likewise, the software package 20 may be moved from a mirror server 40 to another mirror server 41, which is different from the mirror server 40. H. between the mirror servers 40, 41 are transmitted.
  • the software package 20 When the software package 20 has high priority and / or general applicability in a plurality of vehicles 10, 11, it is transmitted from the mirror servers 40, 41 to the replication servers 30. In addition, the software package 20 or a package segment 25 of the software package 20 is transmitted directly from the mirror servers 40, 41 into the control units of the vehicles 11 (direct distribution).
  • a packet segment 25 of the software package 20 is transmitted from the replication servers 30 into the control units of the vehicles 10, when a vehicle 10 is arranged in an environment of a replication server 30, or from controllers of other vehicles 11 different from the vehicles 10 Control devices of the vehicles 10 transmitted when a vehicle 10 is disposed in an environment of another vehicle 1 1 (indirect distribution).
  • Each transmission of a software package 20 or a packet segment 25 of a software package takes place by means of a specific transmission protocol which is uniform throughout the entire process and which is designed for a load distribution with respect to the respective possible sources.
  • the software package 20 is transferred to the control units of the vehicles 10 and the software stored in the control units is updated by means of the transmitted software package 20.
  • FIG. 2 shows a schematic representation of a detailed view of a software package 20 shown in FIG. 1.
  • the software package 20 has a plurality of metadata 21, a checksum 22 and an authentication information 23.
  • the software package 20 has a plurality of packet segments 25, each comprising data and / or at least one application program, and a flash list 24, which references the multiple packet segments 25.
  • FIG. 3 shows a schematic representation of a first subsystem of the system shown in FIG.
  • the first subsystem comprises the backend server 60 and three mirror servers 40, 41, which are each assigned to different states 42 and arranged in the areas of the respective states 42.
  • FIG. 4 shows in a flowchart a first method part corresponding to the first subsystem shown in FIG. 3 of an embodiment of the method according to the invention.
  • a package list 26 which contains all the software packages 20 provided by the back-end server 60, is first requested and transmitted to the mirror server 40, 41. Then, any software package 20 missing in the package list 26 but stored on the mirror server 40, 41 is deleted.
  • software packages 20 contained in the package list 26 that need updating are requested from the back-end server 60 in succession. For each request, a hash list 24 and a source list 27 are transmitted for each packet segment 25 of the respective software package 20 referenced in the hash list 24.
  • the source list 27 may include any mirror server 40, 41 and / or the backend server 60. Then, for each packet segment 25, one source from the source list 27 is selected and the packet segment 25 is transmitted from the selected source. Subsequently, the source list 27 is supplemented accordingly by the back-end server 60 and regularly transmitted to the mirror servers 40, 41.
  • FIG. 5 shows a schematic representation of a second subsystem of the system shown in FIG.
  • the second subsystem comprises the three mirror servers 40, 41, which are each assigned to different states 42 and arranged in the areas of the respective states 42, and a vehicle 11.
  • FIG. 6 shows in a flow chart a second method part corresponding to the second subsystem shown in FIG. 5 of an embodiment of the method according to the invention.
  • the second part of the process predominantly coincides with the part of the process described with reference to FIG. 4, wherein in each case the backend server 60 is to be replaced by the mirroring servers 40, 41 and the mirroring servers 40, 41 by the further vehicle 11.
  • the following further differences exist.
  • the package list 26 is filtered to remove software packages 20 that are not applicable to the vehicle 10 from the package list 26.
  • the filtering can be done before being transmitted on the mirror server 40, 41 or after being transmitted in the control unit of the vehicle 10.
  • the source list 27 does not include the backend server 60.
  • the corresponding software packages 20 stored in the controller are deleted and the transmitted software packages 20 are installed. If a predefined duration for the software package 20 is determined in the metadata of a transmitted software package 20, the transmitted software package 20 is kept in a cache memory of the controller for the particular predetermined retention period in order to be transmitted to further vehicles 10.
  • FIG. 7 shows a schematic representation of a third subsystem of the system shown in FIG.
  • the third subsystem comprises the three mirror servers 40, 41, which are each assigned to different states 42 and arranged in the regions of the respective states 42, three replication servers 30, which are respectively arranged in a supermarket 31, an authorized workshop 34 and a charging station 33, an additional vehicle 1 1 acting as a replication server and a vehicle 10.
  • FIG. 8 shows in a flow chart a third method part corresponding to the third subsystem shown in FIG. 7 of an embodiment of the method according to the invention.
  • the third part of the process predominantly coincides with the part of the process described with reference to FIG. 6, the mirror servers 40, 41 having to be replaced by the replication servers 30.
  • the source list 27 contains exclusively the respective replication server 30 and no regular transmission of the source list 27 takes place.
  • the method according to the invention offers the advantage of significantly speeding up the updating of the software package 20 in the control units of many vehicles 10, 11 and also of achieving those vehicles 10, 11 which predominantly have no access to the mobile Internet.
  • the load on a mobile network and accessible via the mobile Internet server systems is reduced.
  • updating of the software package 20 can be interrupted at any time and continued later.
  • the can Packet segments 25 of the software package 20 are transmitted from different sources.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The invention relates to a method for updating software stored in a control device of a vehicle, in which a software package is transferred to the control device and the software that is stored in said control device is at least partly updated using the transferred software package.

Description

Verfahren und System zum Aktualisieren einer Fahrzeugsoftware  Method and system for updating vehicle software
BESCHREIBUNG: Die vorliegende Erfindung betrifft ein Verfahren zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs gespeicherten Software, bei dem ein Softwarepaket in das Steuergerät (Electronic Control Device, ECU) übertragen wird und die in dem Steuergerät gespeicherte Software mittels des übertragenen Softwarepakets mindestens teilweise aktualisiert wird. DESCRIPTION The present invention relates to a method for updating a software stored in a control unit of a vehicle, in which a software package is transmitted to the electronic control device (ECU) and the software stored in the control unit is at least partially updated by means of the transmitted software package ,
Moderne Fahrzeuge weisen eine Vielzahl von Sicherheitssystemen und Komfortsystemen auf, welche jeweils mindestens eine in dem Fahrzeug angeordnete Vorrichtung und ein zu der mindestens einen Vorrichtung korrespondierendes Betriebssystem (Operating System, OS) umfassen. Das Betriebssystem ist in Form einer Software vorgesehen und bildet daher eine Software im Sinne der Erfindung. Die Software weist gewöhnlich mindestens ein Anwendungsprogramm sowie von dem Anwendungsprogramm benötigte Daten auf, ist in einem Steuergerät des Fahrzeugs gespeichert und wird von diesem ausgeführt. Modern vehicles have a plurality of safety systems and comfort systems, which each comprise at least one device arranged in the vehicle and an operating system (operating system, OS) corresponding to the at least one device. The operating system is provided in the form of software and therefore forms a software within the meaning of the invention. The software usually has at least one application program and data required by the application program, is stored in a control unit of the vehicle and is executed by the latter.
Mit einem zunehmenden Umfang, einer wachsenden Komplexität und immer kürzeren Entwicklungszyklen der Funktionssysteme und Komfortsysteme erhöht sich auch der Aktualisierungsbedarf für die in dem Steuergerät gespeicherte Software. Gerade mit Blick auf eine künftige weitgehende oder vollständige Selbstfahrfunktion (autonomes Fahren) von Fahrzeugen kommt einer zuverlässigen zeitnahen Aktualisierung der Software eine besondere Bedeutung zu. Üblicherweise wird die Software eines Fahrzeugs mittels eines sogenannten Prüfstands aktualisiert, wenn sich das Fahrzeug beispielsweise zu einer Inspektion in einer Werkstatt eines Vertragshändlers eines Fierstellers des Fahrzeugs befindet. Dabei wird in der Regel die in dem Steuergerät des Fahrzeugs gespeicherte Software vollständig durch ein Speicherabbild (image) einer aktualisierten Version der Software ersetzt, was mit einem großen Zeitbedarf und hohen Kosten einhergeht. Folglich gehen Überlegungen dahin, Aktualisierungsverfahren für eine Software eines Fahrzeugs ähnlich wie für Computer oder Smartphones inkrementeil oder differentiell (incremental or differential update) auszugestalten, um das bei einem Aktualisieren jeweils zu übertragende Datenvolumen zu verringern. As the size, complexity, and development cycles of functional systems and comfort systems become shorter and shorter, so does the need for updating the software stored in the controller. Especially with a view to a future extensive or complete self-propelled function (autonomous driving) of vehicles, a reliable, timely update of the software is of particular importance. Usually, the software of a vehicle is updated by means of a so-called test stand when, for example, the vehicle is for inspection in a garage of a dealer of a vehicle's vehicle. In this case, the software stored in the control unit of the vehicle is generally completely replaced by a memory image of an updated version of the software, which involves a great deal of time and high costs. Consequently, considerations are being made for updating software of a vehicle, similar to computers or smartphones, incrementally or differentially (incrementally or differently) to reduce the amount of data to be transferred each time it is updated.
Allerdings meiden manche Fahrzeughalter die Werkstätten von Vertragshändlern, so dass deren Fahrzeuge von einer Aktualisierung der in ihren Steuergeräten gespeicherten Software grundsätzlich abgeschnitten sind. Eine veraltete Software ist aber gerade bei Fahrzeugen mit einer Selbstfahrfunktion aus Gründen der Sicherheit nicht hinnehmbar. Zum Vermeiden dieses Problems können drahtlose Kommunikations- einrichtungen, beispielsweise Mobilfunkschnittstellen in den Fahrzeugen genutzt werden, um die in den Steuergeräten gespeicherte Software über das mobile Internet zu aktualisieren. However, some vehicle owners avoid the workshops of authorized dealers, so that their vehicles are fundamentally cut off from an update of the software stored in their control units. Outdated software, however, is unacceptable especially for vehicles with a self-driving function for safety reasons. To avoid this problem, wireless communication devices, for example mobile radio interfaces in the vehicles, can be used to update the software stored in the control devices via the mobile Internet.
So offenbart die DE 10 2012 001 047 A1 ein Verfahren zum Aktualisieren eines Softwarepakets, welches in einem Steuergerät eines Fahrzeugs gespeichert ist. Bei dem Verfahren wird ein aktualisiertes Softwarepaket in ein aktualisiertes Basispaket, welches Grundfunktionen betreffen kann, und mindestens ein aktualisiertes Zusatzpaket, welches optionale Funktionen betreffen kann, geteilt. Das Basispaket und das mindestens eine Zusatzpaket werden über separate drahtlose Verbindungen in das Steuergerät übertragen. Das aktualisierte Basispaket ist von dem Steuergerät ausführbar, bevor das mindestens eine aktualisierte Zusatzpaket vollständig übertragen ist. Auf diese Weise lassen sich jeweils begrenzte Bandbreiten der drahtlosen Verbindungen optimal nutzen. Demgegenüber ist in der DE 10 2016 210 511 A1 ein modulares Softwaresystem zum Aktualisieren eines in einer Speichereinheit eines Steuergeräts eines Fahrzeugs gespeicherten Speicherabbilds beschrieben. Mittels des modularen Softwaresystems wird von einem Hersteller des Fahrzeugs ein differentielles Speicherabbild für das Steuergerät des Fahrzeugs generiert und zum Herunterladen bereitgestellt. Das differentielle Speicherabbild umfasst einen oder mehrere aktualisierte Bereiche des gespeicherten Speicherabbilds. Das gespeicherte Speicherabbild wird aktualisiert, indem ein oder mehrere Bereiche des gespeicherten Speicherabbilds durch jeweils einen korrespondierenden aktualisierten Bereich ersetzt werden. Thus, DE 10 2012 001 047 A1 discloses a method for updating a software package which is stored in a control unit of a vehicle. In the method, an updated software package is divided into an updated base package, which may relate to basic functions, and at least one updated supplementary package, which may relate to optional functions. The basic package and the at least one additional package are transmitted via separate wireless connections in the control unit. The updated base package is executable by the controller before the at least one updated supplemental package is completely transferred. In this way, each limited bandwidths of the wireless connections can be optimally used. In contrast, DE 10 2016 210 511 A1 describes a modular software system for updating a memory image stored in a memory unit of a control device of a vehicle. By means of the modular software system, a differential memory image for the control unit of the vehicle is generated by a manufacturer of the vehicle and made available for downloading. The differential memory map includes one or more updated areas of the stored memory map. The stored memory image is updated by replacing one or more areas of the stored memory image with a respective corresponding updated area.
Diese und ähnliche Verfahren beruhen also jeweils auf einer Nutzung eines Mobilfunknetzes. In einem städtischen Gebiet mit sehr vielen Fahrzeugen können Basisstationen des Mobilfunknetzes oder über das mobile Internet zugängliche stationäre Serversysteme aber infolge eines hohen Aufkommens von Aktualisierungen überlastet sein, insbesondere wenn gleichzeitig die Software vieler Fahrzeuge aktualisiert wird. Zudem kann die Fahrt eines Fahrzeugs in einem städtischen Gebiet zu kurz sein, um die in dem Steuergerät gespeicherte Software vollständig zu aktualisieren. Außerhalb von städtischen Gebieten existiert überdies oftmals kein ausreichendes Mobilfunknetz, so dass die Software dortiger Fahrzeuge nicht zeitnah aktualisiert werden kann. This and similar methods are thus based in each case on a use of a mobile network. However, in an urban area with many vehicles, mobile network base stations or stationary server systems accessible via the mobile Internet may be overloaded due to a high volume of updates, particularly if at the same time the software of many vehicles is being updated. In addition, the travel of a vehicle in an urban area may be too short to completely update the software stored in the controller. Moreover, outside of urban areas, there is often insufficient mobile network, so that the software of local vehicles can not be updated in a timely manner.
Zur Meldung solcher Schwierigkeiten offenbart die DE 10 2012 001 048 A1 ein Verfahren zum Aktualisieren eines Softwarepakets, welches in einem mobilen Endgerät, insbesondere einem Steuergerät eines Fahrzeugs gespeichert ist. Bei dem Verfahren wird ein aktualisiertes Softwarepaket als ein endloser Datenstrom kodiert und der kodierte Datenstrom zu einer Sendeeinrichtung übertragen, welche den kodierten Datenstrom fortlaufend sendet. Das mobile Endgerät empfängt den kodierten Datenstrom und dekodiert diesen, um das aktualisierte Softwarepaket zu erhalten. Auf diese Weise kann ein Softwarepaket in einer Vielzahl von mobilen Endgeräten gleichzeitig aktualisiert werden. Zwar kann auf diese Weise die Software vieler Fahrzeuge einer Modellreihe eines Herstellers gleichzeitig aktualisiert werden. Jedoch ist die Installation und der Betrieb eines solchen Systems für Fahrzeuge vieler Modellreihen und Hersteller sehr aufwändig. To report such difficulties, DE 10 2012 001 048 A1 discloses a method for updating a software package which is stored in a mobile terminal, in particular a control unit of a vehicle. In the method, an updated software package is encoded as an endless data stream and the encoded data stream is transmitted to a transmitting device which continuously transmits the encoded data stream. The mobile terminal receives the coded data stream and decodes it to obtain the updated software package. In this way, a software package in a plurality of mobile terminals can be updated simultaneously. Although this way, the software of many vehicles of a model series of a manufacturer can be updated simultaneously. However, the installation and operation of such a system for vehicles of many model series and manufacturers is very expensive.
Der Erfindung liegt daher die Aufgabe zugrunde, ein verbessertes Verfahren zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs gespeicherten Software vorzuschlagen, welches die beschriebenen Nachteile vermeidet. Darüber hinaus ist es Aufgabe der Erfindung, ein System zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs gespeicherten Software zu schaffen. The invention is therefore based on the object of proposing an improved method for updating a software stored in a control unit of a vehicle, which avoids the disadvantages described. Moreover, it is an object of the invention to provide a system for updating a software stored in a control unit of a vehicle.
Ein Gegenstand der vorliegenden Erfindung ist ein Verfahren zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs gespeicherten Software, bei dem ein Softwarepaket in das Steuergerät übertragen wird und die in dem Steuergerät gespeicherte Software mittels des übertragenen Softwarepakets mindestens teilweise aktualisiert wird. Das Softwarepaket wird von einem Hersteller des Fahrzeugs erzeugt und bereitgestellt. Das in das Steuergerät übertragene Softwarepaket wird von dem Steuergerät angewendet, um mindestens Teile der gespeicherten Software zu aktualisieren, d. h. zu ersetzen. Jedes Anwenden des Softwarepakets liegt unabhängig von einem konkreten Ausführungsverfahren im Schutzbereich der Erfindung. An object of the present invention is a method for updating a software stored in a control unit of a vehicle, in which a software package is transmitted to the control unit and the software stored in the control unit is at least partially updated by means of the transmitted software package. The software package is generated and provided by a manufacturer of the vehicle. The software package transferred to the controller is applied by the controller to update at least portions of the stored software, i. H. to replace. Any application of the software package is within the scope of the invention, independent of any particular embodiment.
Bei dem erfindungsgemäßen Verfahren wird mindestens ein Paketsegment (data chunk) des Softwarepakets von einem Steuergerät eines von dem Fahrzeug verschiedenen weiteren Fahrzeugs übertragen, wenn das Fahrzeug in einer Umgebung des weiteren Fahrzeugs angeordnet ist. Das Softwarepaket umfasst demnach mehrere Paketsegmente, welche von einem Fahrzeug unmittelbar zu einem anderen Fahrzeug bevorzugt drahtlos übertragen werden. Die Erfindung macht sich den Umstand zunutze, dass jedes Fahrzeug naturgemäß bewegt wird und dabei einem weiteren Fahrzeug genügend nahekommt, um eine unmittelbare drahtlose Verbindung zwischen den beiden Fahrzeugen (car-to-car) herzustellen. Weiterhin wird ausgenutzt, dass das weitere Fahrzeug gewöhnlich bereits eine in dem Steuergerät gespeicherte vollständige Software und eine Kommunikationseinrichtung zum Flerstellen einer drahtlosen Verbindung aufweist. Es kann also als Replikator der Software wirken. Auf diese Weise wird eine dezentrale Verteilung des Softwarepakets erreicht, wodurch ein Mobilfunknetz und ein über das Mobilfunknetz zugängliches Serversystem entlastet ist. In the method according to the invention, at least one packet segment (data chunk) of the software package is transmitted by a control unit of another vehicle different from the vehicle when the vehicle is arranged in an environment of the further vehicle. The software package accordingly comprises a plurality of packet segments, which are preferably transmitted wirelessly from one vehicle directly to another vehicle. The invention takes advantage of the fact that each vehicle is naturally moved while approaching enough of another vehicle to provide an instant wireless connection between the two vehicles (car-to-car) produce. Furthermore, it is exploited that the further vehicle usually already has a complete software stored in the control unit and a communication device for establishing a wireless connection. It can act as a replicator of the software. In this way, a decentralized distribution of the software package is achieved, whereby a mobile network and a accessible via the mobile network server system is relieved.
In einer bevorzugten Ausführungsform wird ein Paketsegment des Softwarepakets von einem Replikationsserver übertragen, wenn das Fahrzeug in einer Umgebung des Replikationsservers angeordnet ist. Replikationsserver bilden ein weiteres Mittel für eine dezentrale Verteilung des Softwarepakets. Sie sind bevorzugt an Orten installiert, in deren Umgebung sich gewöhnlich viele Fahrzeuge befinden. Das Fahrzeug kann zu dem Replikationsserver eine drahtlose Verbindung (ca r-to-i nf rastru ctu re) hersteilen, wenn es sich in der Umgebung des Replikationsservers befindet. In a preferred embodiment, a packet segment of the software package is transmitted by a replication server when the vehicle is located in an environment of the replication server. Replication servers provide another means for decentralized distribution of the software package. They are preferably installed in places where there are usually many vehicles in the area. The vehicle can establish a wireless connection (ca r-to-i nf rastru ctu re) to the replication server when it is in the vicinity of the replication server.
In einer weiteren Ausführungsform wird ein Softwarepaket mit einer hohen Priorität und/oder einer allgemeinen Anwendbarkeit in einer Vielzahl von Fahrzeugen übertragen. Softwarepakete, welche die Sicherheit des Fahrzeugs oder den Schutz der Software betreffen, genießen bei dem Aktualisieren eine hohe Priorität. Demgegenüber sind beispielsweise Softwarepakete mit hochpräzisen digitalen Karten in vielen Fahrzeugen auch unterschiedlicher Modellreihen eines Fierstellers anwendbar. In another embodiment, a software package having high priority and / or general applicability is transmitted in a plurality of vehicles. Software packages concerning the safety of the vehicle or the protection of the software are given a high priority in the updating. In contrast, for example, software packages with high-precision digital maps in many vehicles also different model series of a Fierstellers applicable.
In anderen Ausführungsformen wird das Softwarepaket oder ein Paketsegment des Softwarepakets von einem Spiegelserver (mirror) übertragen. Auf dem Spiegelserver sind sämtliche, insbesondere solche mit niedriger Priorität oder ausschließlich für das Fahrzeug anwendbare Softwarepakete bereitgestellt. Das Fahrzeug kann zu dem Spiegelserver über ein Mobilnetz eine Mobilfunkverbindung (car-to-internet) aufbauen, wenn es sich in einer Mobilfunkzelle eines Mobilnetzes befindet. In einer weiteren Ausführungsform wird das Softwarepaket von einem Backendserver (distributor) auf einen Spiegelserver übertragen und/oder von einem Spiegelserver auf einen von dem Spiegelserver verschiedenen weiteren Spiegelserver übertragen und/oder von einem Spiegelserver auf einen Replikationsserver übertragen. Der Backendserver kann von einem Hersteller des Fahrzeugs bereitgestellt sein. Auf dem Backendserver sind sämtliche Softwarepakete für das Fahrzeug bereitgestellt. Das Fahrzeug stellt jedoch keine Verbindung zu dem Backendserver her, um ein in dem Steuergerät gespeichertes Softwarepaket zu aktualisieren. Der Backendserver ist ausschließlich konfiguriert, Softwarepakete an einen Spiegelserver zu übertragen. In other embodiments, the software package or a package segment of the software package is transmitted from a mirror server. On the mirror server all, especially those with low priority or exclusively applicable to the vehicle software packages are provided. The vehicle may establish a car-to-internet (cellular) connection to the mirror server via a mobile network when in a mobile cell of a mobile network. In a further embodiment, the software package is transmitted from a backend server (distributor) to a mirror server and / or transmitted from a mirror server to a different mirror server other than the mirror server and / or transmitted from a mirror server to a replication server. The backend server may be provided by a manufacturer of the vehicle. All software packages for the vehicle are provided on the backend server. However, the vehicle does not connect to the back-end server to update a software package stored in the controller. The backend server is exclusively configured to transfer software packages to a mirror server.
In einer bevorzugten Ausführungsform wird das Softwarepaket mittels eines bestimmten in dem Verfahren einheitlichen Übertragungsprotokolls, welches insbesondere für eine Lastverteilung ausgebildet ist, übertragen. Durch das einheitliche Übertragungsprotokoll wird sichergestellt, dass das Softwarepaket von einem Spiegelserver, von einem Replikationsserver oder von einem weiteren Fahrzeug auf dieselbe Weise in das Steuergerät des Fahrzeugs übertragen werden kann. Das einheitliche Übertragungsprotokoll ermöglicht einerseits ein Unterbrechen und ein Fortsetzen einer Übertragung. Andererseits unterstützt es ein Übertragen unterschiedlicher Paketsegmente eines Softwarepakets auch von verschiedenen Quellen. Dadurch kann eine Lastverteilung (load balancing) auf die verschiedenen Quellen erreicht werden. Eine Quelle einer Übertragung kann beispielsweise zufällig (random selection) oder umlaufend (round-robin) ausgewählt werden. In a preferred embodiment, the software package is transmitted by means of a specific transmission protocol which is uniform in the method and which is designed in particular for load distribution. The unified transmission protocol ensures that the software package can be transferred from a mirror server, from a replication server or from another vehicle in the same way to the control unit of the vehicle. On the one hand, the uniform transmission protocol makes it possible to interrupt and continue a transmission. On the other hand, it also supports transmitting different packet segments of a software package from different sources. This allows a load balancing to be achieved on the various sources. For example, a source of transmission may be selected randomly or round-robin.
In einer weiteren Ausführungsform wird zum Übertragen des Softwarepakets eine Paketliste mit mindestens einem bereitgestellten Softwarepaket angefordert und übertragen, In a further embodiment, to transmit the software package, a package list with at least one provided software package is requested and transmitted,
die Paketliste insbesondere gefiltert, falls sie von dem Fahrzeug angefordert wird,  the package list in particular filtered if requested by the vehicle,
jedes in der Paketliste fehlende gespeicherte Softwarepaket gelöscht, falls die Paketliste von einem Backendserver oder einem Spiegelserver übertragen wird, ein in der Paketliste enthaltenes Softwarepaket angefordert und eine Hashliste und eine Quellenliste für jedes in der Hashliste referenzierte Paketsegment des Softwarepakets übertragen, deletes any stored software package missing in the package list if the package list is being transferred from a backend server or a mirror server, requesting a software package contained in the package list and transmitting a hash list and a source list for each software package packet segment referenced in the hash list,
eine Quelle aus der Quellenliste für jedes Paketsegment ausgewählt und das Paketsegment von der ausgewählten Quelle übertragen, die Quellenliste von dem Backendserver jeweils entsprechend ergänzt, falls das Paketsegment von dem Backendserver oder von einem Spiegelserver übertragen wird.  selects a source from the source list for each packet segment and transmits the packet segment from the selected source, completing the source list from the backend server, respectively, if the packet segment is transmitted from the backend server or from a mirror server.
Die von einem Spiegelserver übertragene Paketliste umfasst sämtliche von dem Hersteller des Fahrzeugs auf dem Backendserver bereitgestellten Softwarepakete. Die von einem Replikationsserver oder einem weiteren Fahrzeug übertragene Paketliste umfasst jedes auf dem Replikationsserver bzw. in dem Steuergerät des weiteren Fahrzeugs bereitgestellte Softwarepaket. The packet list transmitted by a mirror server includes all software packages provided by the manufacturer of the vehicle on the backend server. The packet list transmitted by a replication server or another vehicle comprises each software package provided on the replication server or in the control unit of the further vehicle.
Das Filtern der Paketliste dient dem Entfernen solcher Softwarepakete, welche auf das Fahrzeug nicht anwendbar sind. Das Filtern kann auf dem die Quelle bildenden Spiegelserver oder Replikationsserver erfolgen. Dazu muss bei dem Anfordern der Paketliste ein entsprechendes Filterkriterium übermittelt werden. Alternativ kann die Paketliste in dem Steuergerät des Fahrzeugs gefiltert werden. In diesem Fall wird eine vollständige übertragene Paketliste durch nachträgliches Anwenden des Filterkriteriums reduziert. Filtering the package list is for removing such software packages that are not applicable to the vehicle. The filtering can be done on the source-forming mirror server or replication server. For this, a corresponding filter criterion must be transmitted when requesting the package list. Alternatively, the package list can be filtered in the control unit of the vehicle. In this case, a complete transmitted package list is reduced by subsequently applying the filter criterion.
Da von einem Spiegelserver übertragene Paketlisten vollständig sind, können Softwarepakete, welche in dem Steuergerät gespeichert, aber nicht in einer von einem Spiegelserver übertragenen Paketliste enthalten sind, als obsolet interpretiert und gelöscht werden. Dies gilt nicht für von einem Replikationsserver übertragene Paketlisten, da diese nur Softwarepakete mit hoher Priorität oder allgemeiner Anwendbarkeit enthalten. Since package lists transmitted from a mirror server are complete, software packages stored in the controller but not contained in a package list transmitted by a mirror server can be interpreted as obsolete and deleted. This does not apply to package lists transmitted by a replication server because they contain only high priority or general purpose software packages.
Die Quellenliste umfasst jeden Spiegelserver oder Replikationsserver, von dem das Paketsegment bereitgestellt wird und übertragen werden kann, nicht aber den Backendserver. Eine von einem Replikationsserver übertragene Quellenliste enthält ausschließlich den Replikationsserver selbst. Auf diese Weise wird eine Dezentralität des Verfahrens gewährleistet, wodurch die Last für den Backendserver und die Spiegelserver verringert ist. Wenn ein Paketsegment übertragen ist, wird das Steuergerät des Fahrzeugs, der Replikationsserver oder der Spiegelserver dem Backendserver als neue Quelle mitgeteilt und von diesem in die zu dem Paketsegment korrespondierende Quellenliste eingefügt. Entsprechend vergrößert sich mit jeder erfolgreichen Übertragung des Paketsegments die Zahl der nutzbaren das Paketsegment bereitstellenden Quellen. The source list includes any mirror server or replication server from which the packet segment is deployed and can be transmitted, but not the backend server. One from a replication server The source list transferred contains only the replication server itself. This ensures the decentralized nature of the procedure, which reduces the load on the backend server and mirror servers. When a packet segment is transmitted, the vehicle controller, replication server, or mirror server is notified to the backend server as a new source and inserted by it into the source list corresponding to the packet segment. Accordingly, with each successful transmission of the packet segment, the number of usable sources providing the packet segment increases.
Gegenstand der Erfindung ist auch ein System zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs gespeicherten Software, welches ein Fahrzeug mit einem Steuergerät, in dem die Software gespeichert ist, umfasst und konfiguriert ist, ein Softwarepaket in das Steuergerät zu übertragen, um die in dem Steuergerät gespeicherte Software mittels des übertragenen Softwarepakets mindestens teilweise zu aktualisieren. The invention also relates to a system for updating a software stored in a control unit of a vehicle, which comprises a vehicle with a control unit in which the software is stored, and is configured to transmit a software package to the control unit in order to control the control unit stored software by means of the transmitted software package at least partially.
Das erfindungsgemäße System umfasst ein von dem Fahrzeug verschiedenes weiteres Fahrzeug und ist konfiguriert, mindestens ein Paketsegment des Softwarepakets von einem Steuergerät des weiteren Fahrzeugs zu übertragen, wenn das Fahrzeug in einer Umgebung des weiteren Fahrzeugs angeordnet ist. Wenn ein Fahrzeug einem weiteren Fahrzeug genügend nahekommt, kann eine unmittelbare drahtlose Verbindung zwischen den beiden Fahrzeugen (car-to-car) hergestellt werden. Da das weitere Fahrzeug gewöhnlich eine in dem Steuergerät gespeicherte vollständige Software aufweist, können ein oder mehrere Paketsegmente von dem weiteren Fahrzeug in das Steuergerät des Fahrzeugs übertragen werden. Auf diese Weise wird ein dezentrales Verteilen des Softwarepakets erreicht, wodurch ein Mobilfunknetz und ein über das Mobilfunknetz zugängliches Serversystem entlastet ist. The system according to the invention comprises a further vehicle which is different from the vehicle and is configured to transmit at least one package segment of the software package from a control device of the further vehicle when the vehicle is arranged in an environment of the further vehicle. If a vehicle is sufficiently close to another vehicle, an immediate wireless connection between the two vehicles (car-to-car) can be established. Since the other vehicle usually has a complete software stored in the control unit, one or more parcel segments can be transferred from the further vehicle into the control unit of the vehicle. In this way, a decentralized distribution of the software package is achieved, whereby a mobile network and a accessible via the mobile network server system is relieved.
In einer bevorzugten Ausführungsform umfasst das System einen Replikationsserver, welcher insbesondere an einer Tankstelle oder einer Ladestation für das Fahrzeug, in einem Parkhaus, in einem Supermarkt oder in einem Einkaufszentrum angeordnet ist, und ist konfiguriert, ein Paketsegment des Softwarepakets von dem Replikationsserver zu übertragen, wenn das Fahrzeug in einer Umgebung des Replikationsservers angeordnet ist. Ein Ort, an dem eine Dienstleistung erbracht wird, wird mit einem Fahrzeug häufig angefahren. Das Fahrzeug wird gewöhnlich für die Dauer der Inanspruchnahme der Dienstleistung in der Umgebung des Orts abgestellt. Während dieser Zeit kann seine Software durch einen am Ort der Dienstleistung angeordneten Replikationsserver aktualisiert werden. In a preferred embodiment, the system comprises a replication server, which in particular at a gas station or a charging station for the vehicle, in a parking garage, in a supermarket or is located in a shopping mall, and is configured to transmit a packet segment of the software package from the replication server when the vehicle is located in an environment of the replication server. A place where a service is provided is frequented by a vehicle. The vehicle is usually parked for the duration of the use of the service in the area surrounding the place. During this time, its software may be updated by a replication server located at the service location.
In weiteren Ausführungsformen umfasst das System einen Spiegelserver, welcher einem Kontinent zugeordnet und in einem Gebiet des Kontinents angeordnet ist, und ist konfiguriert, ein Paketsegment des Softwarepakets von dem Spiegelserver zu übertragen, wenn das Fahrzeug in dem Gebiet des Kontinents angeordnet ist. Wenn sich das Fahrzeug in einer Mobilfunkzelle eines in dem Gebiet des Kontinents vorgesehenen Mobilfunknetzes befindet, kann seine Software über das mobile Internet von dem Spiegelserver aktualisiert werden. Alternativ oder zusätzlich kann ein Spiegelserver auch einem einzigen Staat oder mehreren Staaten eines Kontinents zugeordnet und in einem Gebiet des einzigen Staats oder der mehreren Staaten angeordnet sein, wodurch eine Last der Spiegelserver verringert und eine Lastverteilung auf die Spiegelserver erleichtert wird. In further embodiments, the system includes a mirror server associated with a continent and located in an area of the continent, and is configured to transmit a packet segment of the software package from the mirror server when the vehicle is located in the region of the continent. If the vehicle is in a mobile radio cell of a mobile network provided in the area of the continent, its software can be updated via the mobile Internet from the mirror server. Alternatively or additionally, a mirror server may also be associated with a single state or multiple states of a continent and located in a single state or multiple state area, thereby reducing a load on the mirror servers and facilitating load distribution to the mirror servers.
In einer Ausführungsform umfasst das System einen Backendserver und ist konfiguriert, ein Paketsegment des Softwarepakets von dem Backendserver auf einen Spiegelserver zu übertragen. Der Backendserver kann von einem Hersteller des Fahrzeugs bereitgestellt sein und stellt sämtliche Softwarepakete für das Fahrzeug bereit. Der Backendserver ist aber nicht konfiguriert, Softwarepakete an das Fahrzeug zu übertragen. In one embodiment, the system includes a back-end server and is configured to transfer a packet segment of the software package from the back-end server to a mirror server. The backend server may be provided by a manufacturer of the vehicle and provides all software packages for the vehicle. The backend server is not configured to transfer software packages to the vehicle.
In noch einer Ausführungsform weist das Softwarepaket mehrere Metadaten, eine Prüfsumme (checksum), eine Authentisierungsinformation (signature), mehrere Paketsegmente, welche jeweils Daten und/oder mindestens ein Anwendungsprogramm umfassen, und eine die mehreren Paketsegmente referenzierende Hashliste auf. Die Metadaten können beispielsweise Informationen darüber enthalten, für welches Fahrzeug das Softwarepaket anwendbar ist oder welche Priorität es besitzt. Zudem können die Metadaten eine Vorhaltedauer für das Softwarepaket enthalten. Die Vorhaltedauer bestimmt, wie lange das Softwarepaket nach dem Übertragen in einem Cache-Speicher des Steuergeräts des Fahrzeugs vorgehalten wird, um es zu weiteren Fahrzeugen zu übertragen. Mittels der Prüfsumme lässt sich die Integrität des Softwarepakets einfach feststellen. Die Authentisierungsinformation weist das Softwarepaket als von einem bestimmten Fiersteller stammend aus. Die Unterteilung des Softwarepakets in mehrere Paketsegmente ermöglicht eine Nutzung mehrerer unterschiedlicher Quellen zum Übertragen des Softwarepakets. In yet another embodiment, the software package comprises a plurality of metadata, a checksum, an authentication information (signature), a plurality of packet segments, each comprising data and / or at least one application program, and a hash list referencing the plurality of packet segments. For example, the metadata Information about which vehicle the software package is applicable to or which priority it has. In addition, the metadata may include a lead time for the software package. The deferral duration determines how long the software package will be kept in a cache memory of the vehicle's controller after transmission for transmission to other vehicles. The checksum makes it easy to determine the integrity of the software package. The authentication information identifies the software package as originating from a particular creator. The subdivision of the software package into several package segments enables the use of several different sources for transferring the software package.
Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird unter Bezugnahme auf die Zeichnungen weiter beschrieben. Es zeigt: The invention is schematically illustrated by means of embodiments in the drawings and will be further described with reference to the drawings. It shows:
Figur 1 in einer schematischen Darstellung eine Ausführungsform des Figure 1 is a schematic representation of an embodiment of the
erfindungsgemäßen Systems zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs gespeicherten Software;  A system according to the invention for updating software stored in a control unit of a vehicle;
Figur 2 in einer schematischen Darstellung eine Detailansicht eines in Figur Figure 2 is a schematic representation of a detail view of a in FIG
1 gezeigten Softwarepakets;  1 software packages shown;
Figur 3 in einer schematischen Darstellung ein erstes Teilsystem des in Figure 3 is a schematic representation of a first subsystem of in
Figur 1 gezeigten Systems;  Figure 1 system shown;
Figur 4 in einem Ablaufdiagramm einen zu dem in Figur 3 gezeigten ersten FIG. 4 is a flow chart of a first one shown in FIG
Teilsystem korrespond ierenden ersten Verfahrensteil einer Ausführungsform des erfindungsgemäßen Verfahrens;  Subsystem corre sponding first part of an embodiment of the method according to the invention;
Figur 5 in einer schematischen Darstellung ein zweites Teilsystem des in Figure 5 is a schematic representation of a second subsystem of in
Figur 1 gezeigten Systems; Figur 6 in einem Ablaufdiagramm einen zu dem in Figur 5 gezeigten zweiten Teilsystem korrespondierenden zweiten Verfahrensteil einer Ausführungsform des erfindungsgemäßen Verfahrens; Figur 7 in einer schematischen Darstellung ein drittes Teilsystem des in Figure 1 system shown; FIG. 6 shows in a flow chart a second method part corresponding to the second subsystem shown in FIG. 5 of an embodiment of the method according to the invention; Figure 7 is a schematic representation of a third subsystem of in
Figur 1 gezeigten Systems;  Figure 1 system shown;
Figur 8 in einem Ablaufdiagramm einen zu dem in Figur 7 gezeigten dritten FIG. 8 is a flowchart showing a third to that shown in FIG
Teilsystem korrespond ierenden dritten Verfahrensteil einer Subsystem correspond ent third process part of a
Ausführungsform des erfindungsgemäßen Verfahrens. Embodiment of the method according to the invention.
Figur 1 zeigt in einer schematischen Darstellung eine Ausführungsform des erfindungsgemäßen Systems zum Aktualisieren einer Software. Das System umfasst mehrere Fahrzeuge 10 mit einem Steuergerät (nicht dargestellt), in dem die Software gespeichert ist. Ferner umfasst das System mehrere von dem Fahrzeug 10 verschiedene weitere Fahrzeuge 11. Figure 1 shows a schematic representation of an embodiment of the inventive system for updating a software. The system includes a plurality of vehicles 10 with a controller (not shown) in which the software is stored. Furthermore, the system comprises a plurality of other vehicles 11 different from the vehicle 10.
Das System umfasst weiterhin mehrere Replikationsserver 30, welche in einem Supermarkt 31 oder einem Parkhaus 32 angeordnet sind, mehrere Spiegelserver 40, 41 , welche jeweils einem Staat 42 zugeordnet und in einem Gebiet des Staats 42 angeordnet sind, und einen Backendserver 60, welcher von einem Fiersteller 61 bereitgestellt ist. Das System umfasst darüber hinaus mehrere nicht dargestellte Spiegelserver, welche jeweils einem Kontinent zugeordnet sind. The system further comprises a plurality of replication servers 30, which are arranged in a supermarket 31 or a parking garage 32, a plurality of mirror servers 40, 41, which are each assigned to a state 42 and arranged in a region of the state 42, and a back-end server 60, which of a Fiersteller 61 is provided. The system also includes multiple mirror servers, not shown, each associated with a continent.
Das System ist konfiguriert, ein Softwarepaket 20 in die Steuergeräte der Fahrzeuge 10 zu übertragen, um die in den Steuergeräten gespeicherte Software mittels des übertragenen Softwarepakets 20 mindestens teilweise zu aktualisieren. Konfigurationsgemäß können dazu Paketsegmente 25 des Softwarepakets 20 von den Steuergeräten der weiteren Fahrzeuge 11 in die Steuergeräte der Fahrzeuge 10 übertragen werden, wenn ein Fahrzeug 10 in einer Umgebung eines weiteren Fahrzeugs 11 angeordnet ist. Ferner ist das System konfiguriert, Paketsegmente 25 des Softwarepakets 20 von den Replikationsservern 30 in die Steuergeräte der Fahrzeuge 10, 11 zu übertragen, wenn ein Fahrzeug 10, 11 in einer Umgebung eines Replikationsservers 30 angeordnet ist, Paketsegmente 25 des Softwarepakets 20 von den Spiegelservern 40, 41 in die Steuergeräte der Fahrzeuge 11 zu übertragen, wenn ein Fahrzeug 11 in dem Gebiet des Kontinents oder des Staats 42 des Spiegelservers 40, 41 angeordnet ist, und Paketsegmente 25 des Softwarepakets 20 von dem Backendserver 60 auf die Spiegelserver 40, 41 zu übertragen. The system is configured to transmit a software package 20 to the controllers of the vehicles 10 to at least partially update the software stored in the controllers by means of the transmitted software package 20. According to configuration, packet segments 25 of the software package 20 can be transmitted from the control devices of the further vehicles 11 to the control devices of the vehicles 10 when a vehicle 10 is arranged in an environment of another vehicle 11. Further, the system is configured to transfer packet segments 25 of the software package 20 from the replication servers 30 to the controllers of the vehicles 10, 11 when a vehicle 10, 11 is located in an environment of a replication server 30, packet segments 25 of the software package 20 from the mirror servers 40 41 to transmit to the controllers of the vehicles 11 when a vehicle 11 is located in the area of the continent or state 42 of the mirror server 40, 41, and to transmit packet segments 25 of the software package 20 from the backend server 60 to the mirror servers 40, 41 ,
Bei dem erfindungsgemäßen Verfahren zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs 10 gespeicherten Software wird das Softwarepaket 20 zunächst von dem Backendserver 60 auf die Spiegelserver 40, 41 übertragen. Ebenso kann das Softwarepaket 20 von einem Spiegelserver 40 auf einen von dem Spiegelserver 40 verschiedenen weiteren Spiegelserver 41 , d. h. zwischen den Spiegelservern 40, 41 übertragen werden. In the method according to the invention for updating a software stored in a control unit of a vehicle 10, the software package 20 is first transmitted from the back-end server 60 to the mirror servers 40, 41. Likewise, the software package 20 may be moved from a mirror server 40 to another mirror server 41, which is different from the mirror server 40. H. between the mirror servers 40, 41 are transmitted.
Wenn das Softwarepaket 20 eine hohe Priorität und/oder eine allgemeine Anwendbarkeit in einer Vielzahl von Fahrzeugen 10, 11 aufweist, wird es von den Spiegelservern 40, 41 auf die Replikationsserver 30 übertragen. Daneben wird das Softwarepaket 20 oder ein Paketsegment 25 des Softwarepakets 20 von den Spiegelservern 40, 41 unmittelbar in die Steuergeräte der Fahrzeuge 11 übertragen (direct distribution). When the software package 20 has high priority and / or general applicability in a plurality of vehicles 10, 11, it is transmitted from the mirror servers 40, 41 to the replication servers 30. In addition, the software package 20 or a package segment 25 of the software package 20 is transmitted directly from the mirror servers 40, 41 into the control units of the vehicles 11 (direct distribution).
In einem weiteren Schritt wird ein Paketsegment 25 des Softwarepakets 20 von den Replikationsservern 30 in die Steuergeräte der Fahrzeuge 10 übertragen, wenn ein Fahrzeug 10 in einer Umgebung eines Replikationsservers 30 angeordnet ist, oder von Steuergeräten von von den Fahrzeugen 10 verschiedenen weiteren Fahrzeugen 11 in die Steuergeräte der Fahrzeuge 10 übertragen, wenn ein Fahrzeug 10 in einer Umgebung eines weiteren Fahrzeugs 1 1 angeordnet ist (indirect distribution). Jede Übertragung eines Softwarepakets 20 oder eines Paketsegments 25 eines Softwarepakets erfolgt mittels eines bestimmten in dem gesamten Verfahren einheitlichen Übertragungsprotokolls, welches für eine Lastverteilung bzgl. der jeweils möglichen Quellen ausgebildet ist. In a further step, a packet segment 25 of the software package 20 is transmitted from the replication servers 30 into the control units of the vehicles 10, when a vehicle 10 is arranged in an environment of a replication server 30, or from controllers of other vehicles 11 different from the vehicles 10 Control devices of the vehicles 10 transmitted when a vehicle 10 is disposed in an environment of another vehicle 1 1 (indirect distribution). Each transmission of a software package 20 or a packet segment 25 of a software package takes place by means of a specific transmission protocol which is uniform throughout the entire process and which is designed for a load distribution with respect to the respective possible sources.
Auf diese Weise wird das Softwarepaket 20 in die Steuergeräte der Fahrzeuge 10 übertragen und wird die in den Steuergeräten gespeicherte Software mittels des übertragenen Softwarepakets 20 aktualisiert. In this way, the software package 20 is transferred to the control units of the vehicles 10 and the software stored in the control units is updated by means of the transmitted software package 20.
Figur 2 zeigt in einer schematischen Darstellung eine Detailansicht eines in Figur 1 gezeigten Softwarepakets 20. Das Softwarepaket 20 weist mehrere Metadaten 21 , eine Prüfsumme 22 und eine Authentisierungsinformation 23 auf. Zudem weist das Softwarepaket 20 mehrere Paketsegmente 25, welche jeweils Daten und/oder mindestens ein Anwendungsprogramm umfassen, und eine Flashliste 24 auf, welche die mehreren Paketsegmente 25 referenziert. FIG. 2 shows a schematic representation of a detailed view of a software package 20 shown in FIG. 1. The software package 20 has a plurality of metadata 21, a checksum 22 and an authentication information 23. In addition, the software package 20 has a plurality of packet segments 25, each comprising data and / or at least one application program, and a flash list 24, which references the multiple packet segments 25.
Figur 3 zeigt in einer schematischen Darstellung ein erstes Teilsystem des in Figur 1 gezeigten Systems. Das erste Teilsystem umfasst den Backendserver 60 und drei Spiegelserver 40, 41 , welche jeweils unterschiedlichen Staaten 42 zugeordnet und in den Gebieten der jeweiligen Staaten 42 angeordnet sind. FIG. 3 shows a schematic representation of a first subsystem of the system shown in FIG. The first subsystem comprises the backend server 60 and three mirror servers 40, 41, which are each assigned to different states 42 and arranged in the areas of the respective states 42.
Figur 4 zeigt in einem Ablaufdiagramm einen zu dem in Figur 3 gezeigten ersten Teilsystem korrespondierenden ersten Verfahrensteil einer Ausführungsform des erfindungsgemäßen Verfahrens. Bei dem ersten Verfahrensteil wird zum Übertragen des Softwarepakets 20 von einem Spiegelserver 40, 41 zunächst eine Paketliste 26, welche sämtliche von dem Backendserver 60 bereitgestellten Softwarepakete 20 enthält, angefordert und auf den Spiegelserver 40, 41 übertragen. Dann wird jedes in der Paketliste 26 fehlende, aber auf dem Spiegelserver 40, 41 gespeicherte Softwarepaket 20 gelöscht. In einem nächsten Schritt werden nacheinander aktualisierungsbedürftige in der Paketliste 26 enthaltene Softwarepakete 20 von dem Backendserver 60 angefordert. Auf jede Anforderung wird eine Hashliste 24 und eine Quellenliste 27 für jedes in der Hashliste 24 referenzierte Paketsegment 25 des jeweiligen Softwarepakets 20 übertragen. Die Quellenliste 27 kann jeden Spiegelserver 40, 41 und/oder den Backendserver 60 enthalten. Dann wird für jedes Paketsegment 25 eine Quelle aus der Quellenliste 27 ausgewählt und das Paketsegment 25 von der ausgewählten Quelle übertragen. Anschließend wird die Quellenliste 27 von dem Backendserver 60 entsprechend ergänzt und regelmäßig an die Spiegelserver 40, 41 übertragen. FIG. 4 shows in a flowchart a first method part corresponding to the first subsystem shown in FIG. 3 of an embodiment of the method according to the invention. In the first method part, to transfer the software package 20 from a mirror server 40, 41, a package list 26, which contains all the software packages 20 provided by the back-end server 60, is first requested and transmitted to the mirror server 40, 41. Then, any software package 20 missing in the package list 26 but stored on the mirror server 40, 41 is deleted. In a next step, software packages 20 contained in the package list 26 that need updating are requested from the back-end server 60 in succession. For each request, a hash list 24 and a source list 27 are transmitted for each packet segment 25 of the respective software package 20 referenced in the hash list 24. The source list 27 may include any mirror server 40, 41 and / or the backend server 60. Then, for each packet segment 25, one source from the source list 27 is selected and the packet segment 25 is transmitted from the selected source. Subsequently, the source list 27 is supplemented accordingly by the back-end server 60 and regularly transmitted to the mirror servers 40, 41.
Figur 5 zeigt in einer schematischen Darstellung ein zweites Teilsystem des in Figur 1 gezeigten Systems. Das zweite Teilsystem umfasst die drei Spiegelserver 40, 41 , welche jeweils unterschiedlichen Staaten 42 zugeordnet und in den Gebieten der jeweiligen Staaten 42 angeordnet sind, und ein Fahrzeug 11. FIG. 5 shows a schematic representation of a second subsystem of the system shown in FIG. The second subsystem comprises the three mirror servers 40, 41, which are each assigned to different states 42 and arranged in the areas of the respective states 42, and a vehicle 11.
Figur 6 zeigt in einem Ablaufdiagramm einen zu dem in Figur 5 gezeigten zweiten Teilsystem korrespondierenden zweiten Verfahrensteil einer Ausführungsform des erfindungsgemäßen Verfahrens. Der zweite Verfahrensteil (direct distribution) stimmt überwiegend mit dem zu Figur 4 beschriebenen Verfahrensteil überein, wobei jeweils der Backendserver 60 durch die Spiegelserver 40, 41 und die Spiegelserver 40, 41 durch das weitere Fahrzeug 11 zu ersetzen sind. Darüber hinaus bestehen die folgenden weiteren Unterschiede. FIG. 6 shows in a flow chart a second method part corresponding to the second subsystem shown in FIG. 5 of an embodiment of the method according to the invention. The second part of the process (direct distribution) predominantly coincides with the part of the process described with reference to FIG. 4, wherein in each case the backend server 60 is to be replaced by the mirroring servers 40, 41 and the mirroring servers 40, 41 by the further vehicle 11. In addition, the following further differences exist.
Die Paketliste 26 wird gefiltert, um nicht auf das Fahrzeug 10 anwendbare Softwarepakete 20 aus der Paketliste 26 zu entfernen. Die Filterung kann vor dem Übertragen auf dem Spiegelserver 40, 41 oder nach dem Übertragen in dem Steuergerät des Fahrzeugs 10 erfolgen. Ferner enthält die Quellenliste 27 nicht den Backendserver 60. Nach dem Übertragen sämtlicher aktualisierungsbedürftiger Softwarepakete 20 werden die korrespondierenden in dem Steuergerät gespeicherten Softwarepakete 20 gelöscht und die übertragenen Softwarepakete 20 installiert. Wenn in den Metadaten eines übertragenen Softwarepakets 20 eine Vorhaltedauer für das Softwarepaket 20 bestimmt ist, wird das übertragene Softwarepaket 20 für die jeweils bestimmte Vorhaltedauer in einem Cache-Speicher des Steuergeräts vorgehalten, um zu weiteren Fahrzeugen 10 übertragen zu werden. The package list 26 is filtered to remove software packages 20 that are not applicable to the vehicle 10 from the package list 26. The filtering can be done before being transmitted on the mirror server 40, 41 or after being transmitted in the control unit of the vehicle 10. Further, the source list 27 does not include the backend server 60. After transferring all the software packages 20 to be updated, the corresponding software packages 20 stored in the controller are deleted and the transmitted software packages 20 are installed. If a predefined duration for the software package 20 is determined in the metadata of a transmitted software package 20, the transmitted software package 20 is kept in a cache memory of the controller for the particular predetermined retention period in order to be transmitted to further vehicles 10.
Figur 7 zeigt in einer schematischen Darstellung ein drittes Teilsystem des in Figur 1 gezeigten Systems. Das dritte Teilsystem umfasst die drei Spiegelserver 40, 41 , welche jeweils unterschiedlichen Staaten 42 zugeordnet und in den Gebieten der jeweiligen Staaten 42 angeordnet sind, drei Replikationsserver 30, welche jeweils in einem Supermarkt 31 , einer Vertragswerkstatt 34 und an einer Ladestation 33 angeordnet sind, ein als ein Replikationsserver wirkendes weiteres Fahrzeug 1 1 und ein Fahrzeug 10. FIG. 7 shows a schematic representation of a third subsystem of the system shown in FIG. The third subsystem comprises the three mirror servers 40, 41, which are each assigned to different states 42 and arranged in the regions of the respective states 42, three replication servers 30, which are respectively arranged in a supermarket 31, an authorized workshop 34 and a charging station 33, an additional vehicle 1 1 acting as a replication server and a vehicle 10.
Figur 8 zeigt in einem Ablaufdiagramm einen zu dem in Figur 7 gezeigten dritten Teilsystem korrespondierenden dritten Verfahrensteil einer Ausführungsform des erfindungsgemäßen Verfahrens. Der dritte Verfahrensteil (indirect distribution) stimmt überwiegend mit dem zu Figur 6 beschriebenen Verfahrensteil überein, wobei die Spiegelserver 40, 41 durch die Replikationsserver 30 zu ersetzen sind. Außerdem abweichend enthält die Quellenliste 27 ausschließlich den jeweiligen Replikationsserver 30 und findet kein regelmäßiges Übertragen der Quellenliste 27 statt. FIG. 8 shows in a flow chart a third method part corresponding to the third subsystem shown in FIG. 7 of an embodiment of the method according to the invention. The third part of the process (indirect distribution) predominantly coincides with the part of the process described with reference to FIG. 6, the mirror servers 40, 41 having to be replaced by the replication servers 30. In addition, the source list 27 contains exclusively the respective replication server 30 and no regular transmission of the source list 27 takes place.
Das erfindungsgemäße Verfahren bietet den Vorteil, ein Aktualisieren des Softwarepakets 20 in den Steuergeräten vieler Fahrzeuge 10, 11 deutlich zu beschleunigen und auch solche Fahrzeuge 10, 11 zu erreichen, welche überwiegend keinen Zugang zum mobilen Internet haben. Zudem wird die Last auf ein Mobilfunknetz und über das mobile Internet zugängliche Serversysteme verringert. Mit einem über das gesamte Verfahren einheitlichen Protokoll kann ein Aktualisieren des Softwarepakets 20 jederzeit unterbrochen und später fortgesetzt werden. Dabei können die Paketsegmente 25 des Softwarepakets 20 von unterschiedlichen Quellen übertragen werden. The method according to the invention offers the advantage of significantly speeding up the updating of the software package 20 in the control units of many vehicles 10, 11 and also of achieving those vehicles 10, 11 which predominantly have no access to the mobile Internet. In addition, the load on a mobile network and accessible via the mobile Internet server systems is reduced. With a protocol that is uniform throughout the entire process, updating of the software package 20 can be interrupted at any time and continued later. The can Packet segments 25 of the software package 20 are transmitted from different sources.
BEZUGSZEICHENLISTE: LIST OF REFERENCE NUMBERS:
10 Fahrzeug 10 vehicle
11 weiteres Fahrzeug  11 more vehicle
20 Softwarepaket  20 software package
21 Metadaten  21 metadata
22 Prüfsumme  22 checksum
23 Authentisierungsinformation 23 authentication information
24 Hashliste  24 Hashlist
25 Paketsegment  25 parcel segment
26 Paketliste  26 package list
27 Quellenliste  27 Source list
30 Replikationsserver 30 replication servers
31 Supermarkt  31 supermarket
32 Parkhaus  32 parking garage
33 Ladestation  33 charging station
34 Vertragswerkstatt  34 workshop
40 Spiegelserver 40 mirror servers
41 weiterer Spiegelserver  41 additional mirror servers
42 Staat  42 state
60 Backendserver  60 backend servers
61 Hersteller  61 manufacturers

Claims

PATENTANSPRÜCHE: CLAIMS:
1. Verfahren zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs (10) gespeicherten Software, bei dem ein Softwarepaket (20) in das Steuergerät übertragen wird, die in dem Steuergerät gespeicherte Software mittels des übertragenen Softwarepakets (20) mindestens teilweise aktualisiert wird, und bei dem mindestens ein Paketsegment (25) des Softwarepakets (20) von einem Steuergerät eines von dem Fahrzeug (10) verschiedenen weiteren Fahrzeugs (11 ) übertragen wird, wenn das Fahrzeug (10) in einer Umgebung des weiteren Fahrzeugs (11 ) angeordnet ist. A method for updating software stored in a control device of a vehicle (10), wherein a software package (20) is transmitted to the controller, the software stored in the controller is at least partially updated by the transmitted software package (20), and at the at least one packet segment (25) of the software package (20) is transmitted by a control device of a further vehicle (11) different from the vehicle (10) when the vehicle (10) is arranged in an environment of the further vehicle (11).
2. Verfahren nach Anspruch 1 , bei dem ein Paketsegment (25) des Softwarepakets (20) von einem Replikationsserver (30) übertragen wird, wenn das Fahrzeug (10) in einer Umgebung desThe method of claim 1, wherein a packet segment (25) of the software package (20) is transmitted from a replication server (30) when the vehicle (10) is in an environment of
Replikationsservers (30) angeordnet ist. Replication server (30) is arranged.
3. Verfahren nach einem der Ansprüche 1 oder 2, bei dem ein3. The method according to any one of claims 1 or 2, wherein a
Softwarepaket (20) mit einer hohen Priorität und/oder einer allgemeinen Anwendbarkeit in einer Vielzahl von Fahrzeugen (10, 11 ) übertragen wird. Software package (20) with a high priority and / or a general applicability in a plurality of vehicles (10, 11) is transmitted.
4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem das4. The method according to any one of claims 1 to 3, wherein the
Softwarepaket (20) oder ein Paketsegment (25) des Softwarepakets (20) von einem Spiegelserver (40, 41 ) übertragen wird. Software package (20) or a packet segment (25) of the software package (20) from a mirror server (40, 41) is transmitted.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem das5. The method according to any one of claims 1 to 4, wherein the
Softwarepaket (20) von einem Backendserver (60) auf einen Spiegelserver (40, 41 ) übertragen wird und/oder von einem Spiegelserver (40) auf einen von dem Spiegelserver (40) verschiedenen weiteren Spiegelserver (41 ) übertragen wird und/oder von einem Spiegelserver (40, 41 ) auf einen Replikationsserver (30) übertragen wird. Verfahren nach einem der Ansprüche 1 bis 5, bei dem das Softwarepaket (20) mittels eines bestimmten in dem Verfahren einheitlichen Übertragungsprotokolls, welches insbesondere für eine Lastverteilung ausgebildet ist, übertragen wird. Software package (20) from a backend server (60) on a mirror server (40, 41) is transmitted and / or from a mirror server (40) on one of the mirror server (40) different further mirror server (41) is transmitted and / or from a Mirror server (40, 41) is transmitted to a replication server (30). Method according to one of Claims 1 to 5, in which the software package (20) is transmitted by means of a specific transmission protocol which is uniform in the method and which is designed in particular for load distribution.
Verfahren nach einem der Ansprüche 1 bis 6, bei dem zum Übertragen des Softwarepakets (20) Method according to one of Claims 1 to 6, in which for transmitting the software package (20)
eine Paketliste (26) mit mindestens einem bereitgestellten Softwarepaket (20) angefordert und übertragen wird, a package list (26) is requested and transmitted with at least one provided software package (20),
die Paketliste (26) insbesondere gefiltert wird, falls sie von dem Fahrzeug (10) angefordert wird, the package list (26) is in particular filtered, if requested by the vehicle (10),
jedes in der Paketliste (26) fehlende gespeicherte Softwarepaket (20) gelöscht wird, falls die Paketliste (26) von einem Backendserver (60) oder einem Spiegelserver (40, 41 ) übertragen wird, each stored software package (20) in the package list (26) is deleted if the package list (26) is transmitted by a back-end server (60) or a mirror server (40, 41),
ein in der Paketliste (26) enthaltenes Softwarepaket (20) angefordert und eine Hashliste (24) und eine Quellenliste (27) für jedes in der Hashliste (24) referenzierte Paketsegment (25) des Softwarepakets (20) übertragen wird, requesting a software package (20) contained in the package list (26) and transmitting a hash list (24) and a source list (27) for each package segment (25) of the software package (20) referenced in the hash list (24),
eine Quelle aus der Quellenliste (27) für jedes Paketsegment (25) ausgewählt und das Paketsegment (25) von der ausgewählten Quelle übertragen wird, selecting a source from the source list (27) for each packet segment (25) and transmitting the packet segment (25) from the selected source,
die Quellenliste (27) von dem Backendserver (60) jeweils entsprechend ergänzt wird, falls das Paketsegment (25) von dem Backendserver (60) oder von einem Spiegelserver (40, 41 ) übertragen wird. the source list (27) is supplemented respectively by the backend server (60) if the packet segment (25) is transmitted by the backend server (60) or by a mirror server (40, 41).
System zum Aktualisieren einer in einem Steuergerät eines Fahrzeugs (10) gespeicherten Software, welches ein Fahrzeug (10) mit einem Steuergerät, in dem die Software gespeichert ist, umfasst und konfiguriert ist, ein Softwarepaket (20) in das Steuergerät zu übertragen, um die in dem Steuergerät gespeicherte Software mittels des übertragenen Softwarepakets (20) mindestens teilweise zu aktualisieren, und welches ein von dem Fahrzeug (10) verschiedenes weiteres Fahrzeug (11 ) umfasst und konfiguriert ist, mindestens ein Paketsegment (25) des Softwarepakets (20) von einem Steuergerät des weiteren Fahrzeugs (11 ) zu übertragen, wenn das Fahrzeug (10) in einer Umgebung des weiteren Fahrzeugs (11 ) angeordnet ist. A system for updating software stored in a control unit of a vehicle (10), which comprises a vehicle (10) with a control unit in which the software is stored, and is configured to transmit a software package (20) to the control unit to at least partially update software stored in the controller by means of the transmitted software package (20), and which comprises a further vehicle (11) other than the vehicle (10) and configured to package at least one package segment (25) of the software package (20) control unit of the further vehicle (11) when the vehicle (10) is arranged in an environment of the further vehicle (11).
9. System nach Anspruch 8, welches einen Replikationsserver (30), welcher insbesondere an einer Tankstelle oder einer Ladestation (33) für das Fahrzeug (10), in einem Parkhaus (32), in einem Supermarkt (31 ) oder in einem Einkaufszentrum angeordnet ist, umfasst und konfiguriert ist, ein Paketsegment (25) des Softwarepakets (20) von dem Replikationsserver (30) zu übertragen, wenn das Fahrzeug (10) in einer Umgebung des Replikationsservers (30) angeordnet ist und/oder welches einen Spiegelserver (40, 41 ), welcher einem Kontinent zugeordnet und in einem Gebiet des Kontinents angeordnet ist, umfasst und konfiguriert ist, ein Paketsegment (25) des Softwarepakets (20) von dem Spiegelserver (40, 41 ) zu übertragen, wenn das Fahrzeug (10) in dem Gebiet des Kontinents angeordnet ist, und/oder welches einen Backendserver (60) umfasst und konfiguriert ist, ein Paketsegment (25) des Softwarepakets (20) von dem Backendserver (60) auf einen Spiegelserver (40, 41 ) zu übertragen. 10. System nach einem der Ansprüche 8 oder 9, bei dem das9. System according to claim 8, which a replication server (30), in particular at a gas station or a charging station (33) for the vehicle (10), in a car park (32), in a supermarket (31) or arranged in a shopping center is, includes and is configured to transmit a packet segment (25) of the software package (20) from the replication server (30) when the vehicle (10) is located in an environment of the replication server (30) and / or which has a mirror server (40 , 41) associated with a continent and located in an area of the continent, comprising and configured to transmit a packet segment (25) of the software package (20) from the mirror server (40, 41) when the vehicle (10) in is arranged on the territory of the continent, and / or which comprises a backend server (60) and is configured to transmit a packet segment (25) of the software package (20) from the backend server (60) to a mirror server (40, 41). 10. System according to any one of claims 8 or 9, wherein the
Softwarepaket (20) mehrere Metadaten (21 ), eine Prüfsumme (22), eine Authentisierungsinformation (23), mehrere Paketsegmente (25), welche jeweils Daten und/oder mindestens ein Anwendungsprogramm umfassen, und eine die mehreren Paketsegmente (25) referenzierende Hashliste (24) aufweist. Software package (20) a plurality of metadata (21), a checksum (22), an authentication information (23), a plurality of packet segments (25), each comprising data and / or at least one application program, and a multiple packet segments (25) referencing hash list ( 24).
PCT/EP2018/081215 2017-11-16 2018-11-14 Method and system for updating vehicle software WO2019096840A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102017220508.3A DE102017220508A1 (en) 2017-11-16 2017-11-16 Method and system for updating vehicle software
DE102017220508.3 2017-11-16

Publications (1)

Publication Number Publication Date
WO2019096840A1 true WO2019096840A1 (en) 2019-05-23

Family

ID=64332057

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2018/081215 WO2019096840A1 (en) 2017-11-16 2018-11-14 Method and system for updating vehicle software

Country Status (2)

Country Link
DE (1) DE102017220508A1 (en)
WO (1) WO2019096840A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11917500B2 (en) 2021-03-19 2024-02-27 Ford Global Technologies, Llc Systems and methods for providing vehicle software updates

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3742285A1 (en) * 2019-05-20 2020-11-25 XRSpace CO., LTD. Software update method and head mounted display system using the same
DE102019129516A1 (en) * 2019-10-31 2021-05-06 Bayerische Motoren Werke Aktiengesellschaft System and method for the decentralized provision of software updates in vehicles
CN111142911B (en) * 2019-12-27 2022-04-19 易思维(杭州)科技有限公司 Embedded system with abnormal recovery function and upgrading method thereof

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012001048A1 (en) 2012-01-20 2012-08-16 Daimler Ag Method for distributing data packet i.e. navigation maps, for remote update of e.g. navigation system of motor car, involves decoding sub-packets, and reconstructing data packet from sub-packets by receiving device
DE102012001047A1 (en) 2012-01-20 2013-07-25 Daimler Ag Method for actualization of data, functions or configuration settings of control device of motor vehicle, involves dividing software update package into basic package and add-on package by server
US20140282470A1 (en) * 2013-03-13 2014-09-18 Arynga Inc. Remote transfer of electronic images to a vehicle
KR20150072809A (en) * 2013-12-20 2015-06-30 전자부품연구원 Apparatus and Method for update of software program of vehicle based on collaborative communication of V2V and V2I
US20160041820A1 (en) * 2012-03-14 2016-02-11 Autoconnect Holdings Llc Vehicle and device software updates propagated via a viral communication contact
US20160196132A1 (en) * 2014-07-07 2016-07-07 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
DE102016210511A1 (en) 2015-06-15 2016-12-15 Lear Corporation Centralized system for the software update of vehicle components
US20170195459A1 (en) * 2015-12-30 2017-07-06 Veniam, Inc. Systems and methods for remote software update and distribution in a network of moving things

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7693612B2 (en) * 2005-06-23 2010-04-06 International Business Machines Corporation Method and system for updating code embedded in a vehicle
US8542636B2 (en) * 2010-01-04 2013-09-24 Lili Qiu Vehicular content distribution
US20130045677A1 (en) * 2011-08-17 2013-02-21 Ho-Sung Chien Telematics System and Related Mobile Device and Method
US9141685B2 (en) * 2012-06-22 2015-09-22 Microsoft Technology Licensing, Llc Front end and backend replicated storage
KR101575447B1 (en) * 2014-02-06 2015-12-07 현대자동차주식회사 Method for updating software in vehicle
DE102016207836A1 (en) * 2016-05-06 2017-11-09 Robert Bosch Gmbh Method and system for updating the software of a motor vehicle sensor

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012001048A1 (en) 2012-01-20 2012-08-16 Daimler Ag Method for distributing data packet i.e. navigation maps, for remote update of e.g. navigation system of motor car, involves decoding sub-packets, and reconstructing data packet from sub-packets by receiving device
DE102012001047A1 (en) 2012-01-20 2013-07-25 Daimler Ag Method for actualization of data, functions or configuration settings of control device of motor vehicle, involves dividing software update package into basic package and add-on package by server
US20160041820A1 (en) * 2012-03-14 2016-02-11 Autoconnect Holdings Llc Vehicle and device software updates propagated via a viral communication contact
US20140282470A1 (en) * 2013-03-13 2014-09-18 Arynga Inc. Remote transfer of electronic images to a vehicle
KR20150072809A (en) * 2013-12-20 2015-06-30 전자부품연구원 Apparatus and Method for update of software program of vehicle based on collaborative communication of V2V and V2I
US20160196132A1 (en) * 2014-07-07 2016-07-07 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
DE102016210511A1 (en) 2015-06-15 2016-12-15 Lear Corporation Centralized system for the software update of vehicle components
US20170195459A1 (en) * 2015-12-30 2017-07-06 Veniam, Inc. Systems and methods for remote software update and distribution in a network of moving things

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11917500B2 (en) 2021-03-19 2024-02-27 Ford Global Technologies, Llc Systems and methods for providing vehicle software updates

Also Published As

Publication number Publication date
DE102017220508A1 (en) 2019-05-16

Similar Documents

Publication Publication Date Title
WO2019096840A1 (en) Method and system for updating vehicle software
DE112017006978T5 (en) Control devices, program update procedures and computer program
DE112018001894T5 (en) Control device, transmission method and computer program
DE102016209682A1 (en) A method of updating software of a motor vehicle, updating device and transmission system
WO2017190868A1 (en) Method and system for updating the software of a motor vehicle sensor
DE102017120844A1 (en) Install vehicle updates
DE112017002788T5 (en) Control device, control method and computer program
EP2109041A1 (en) Method for automatically updating software
DE102010029931A1 (en) Method for requesting data of vehicle, involves providing data of vehicle by server connected with network by using programming interface, and executing transparent access to data of vehicle over server based on request of data
DE102017202255A1 (en) A method of updating a digital map of an off-board server device
DE102017220526A1 (en) Method and device for updating software
DE102016201769A1 (en) Method for updating software of a control unit, preferably for a motor vehicle
WO2019137773A1 (en) Backing up a software update of a control device of a means of transport
EP2962162B1 (en) Method for setting up and/or implementing a programming process of a control device of a transport means
WO2019197356A1 (en) Method for updating a vehicle software
DE102016214671B3 (en) A method for transferring a file between a control device of a motor vehicle and an off-board server device, control device and motor vehicle
DE102018209248A1 (en) A data update system, method for updating a record stored on a controller, and computer readable storage
EP3384411A1 (en) Method for transmitting a function command between a motor vehicle and a device outside the vehicle, and interface apparatus and system
DE102019000493A1 (en) Method for updating a respective software of several control units of a vehicle
DE102015015628B4 (en) Method for transferring data between a storage medium and a motor vehicle by means of a temporary storage medium as well as a temporary storage medium and an application program product
DE102016116168A1 (en) Vehicle, system and method for updating the firmware of a vehicle component
WO2019110231A1 (en) System and method for updating software modules of at least one rail vehicle
DE102016209684A1 (en) Method for updating software of a land vehicle, updating device and transmission system
DE102022002462B4 (en) Method for operating a vehicle-integrated computing system and vehicle
DE112021001453T5 (en) VEHICLE DATA COMMUNICATION DEVICE, CENTRAL DEVICE, DATA COMMUNICATION METHOD AND COMPUTER PROGRAM

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

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 18803945

Country of ref document: EP

Kind code of ref document: A1