DE102016206805A1 - Method and apparatus for parallel execution of a vehicle update - Google Patents

Method and apparatus for parallel execution of a vehicle update Download PDF

Info

Publication number
DE102016206805A1
DE102016206805A1 DE102016206805.9A DE102016206805A DE102016206805A1 DE 102016206805 A1 DE102016206805 A1 DE 102016206805A1 DE 102016206805 A DE102016206805 A DE 102016206805A DE 102016206805 A1 DE102016206805 A1 DE 102016206805A1
Authority
DE
Germany
Prior art keywords
vehicle
control unit
procedure
affected
vehicle update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102016206805.9A
Other languages
German (de)
Inventor
Oliver Kust
Alexander Leonhardi
Tai Vo Tan
Nguyen Nguyen Quoc Bao
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102016206805.9A priority Critical patent/DE102016206805A1/en
Publication of DE102016206805A1 publication Critical patent/DE102016206805A1/en
Pending legal-status Critical Current

Links

Images

Classifications

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

Abstract

Verfahren (10) zum Verteilen eines Fahrzeugupdatepaketes, gekennzeichnet durch folgende Merkmale: – ein Betriebszustand des Fahrzeuges wird ermittelt (15), – von dem Fahrzeugupdatepaket betroffene elektronische Teilbereiche des Fahrzeuges werden ermittelt (17), – abhängig von dem Betriebszustand und den betroffenen Teilbereichen wird eine Übertragungsmethode (32, 41, 44, 51) für das Fahrzeugupdatepaket ausgewählt und – das Fahrzeugupdatepaket wird nach der gewählten Übertragungsmethode (32, 41, 44, 51) auf die betroffenen Teilbereiche verteilt.Method (10) for distributing a vehicle update package, characterized by the following features: - an operating state of the vehicle is determined (15), - affected by the vehicle update package electronic portions of the vehicle are determined (17), - depending on the operating condition and the affected sections a transmission method (32, 41, 44, 51) is selected for the vehicle update packet, and - the vehicle update packet is distributed to the affected sections according to the selected transmission method (32, 41, 44, 51).

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Verteilen eines Fahrzeugupdatepaketes. Die vorliegende Erfindung betrifft darüber hinaus eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium.The present invention relates to a method for distributing a vehicle update package. The present invention also relates to a corresponding device, a corresponding computer program and a corresponding storage medium.

Stand der TechnikState of the art

In der Funktechnik wird die Übertragung von Daten mittels elektromagnetischer Wellen, also scheinbar durch das Medium Luft (over the air, OTA), mitunter als Luftschnittstelle bezeichnet. Eine solche Luftschnittstelle ist insbesondere dadurch gekennzeichnet, dass kein festkörperliches Übertragungsmedium wie Kupfer- oder Glasfaserkabel verwendet wird, was für die Zwecke der nachfolgenden Ausführungen die Übertragung im Vakuum nicht ausschließt. Telekommunikationstechnische Ansätze, die sich einer solchen Übertragung bedienen, sind etwa als Over-the-Air-Programmierung (OTA), Over-the-Air Service Provisioning (OTASP), Over-the-Air Provisioning (OTAP) oder Over-the-Air Parameter Administration (OTAPA) bekannt.In radio technology, the transmission of data by means of electromagnetic waves, so apparently by the medium air (over the air, OTA), sometimes referred to as air interface. Such an air interface is particularly characterized in that no solid-state transmission medium such as copper or fiber optic cable is used, which for the purposes of the following embodiments does not preclude transmission in a vacuum. Telecommunications approaches using such transmission include over-the-air programming (OTA), over-the-air service provisioning (OTASP), over-the-air provisioning (OTAP) or over-the-air Parameter Administration (OTAPA).

Von besonderer Bedeutung sind die genannten Technologien für die Aktualisierung sogenannter Firmware, also solcher Software, die in elektronische Geräte eingebettet ist. Auf Firmware angepasste Abwandlungen der oben genannten OTA-Technologien werden in der Telekommunikation unter dem Oberbegriff der Firmware-Over-the-Air-Programmierung (FOTA) zusammengefasst.Of particular importance are the technologies mentioned for updating so-called firmware, ie software embedded in electronic devices. Firmware-adapted modifications of the above-mentioned OTA technologies are summarized in telecommunications under the generic term of firmware over-the-air programming (FOTA).

US 2005/0090906 A1 offenbart ein paralleles Flash-Programmiersystem für den Einbau in Kraftfahrzeugen, welches einen Eingang zum Empfangen von Informationen bezüglich einer vorgegebenen Anzahl von Prozessoren für einen Systembus, Prozessor-Flash-Programmierattribute und Systembus-Attribute umfasst. Ein inkrementelles Flashprogrammierzeiten-Bestimmungsmodul ist dazu angepasst, basierend auf den Informationen inkrementelle Flash-Programmierzeiten eines Prozessors im Verhältnis zu mehreren Wartezeiten zwischen Datenrahmen (frames) bezüglich mehrerer paralleler Flash-Programmierschemata in Übereinstimmung mit der vorgegebenen Anzahl von Prozessoren zu bestimmen. Ein globales Flash-Programmierzeitauflösungsmodul ist dazu angepasst, basierend auf inkrementellen Flash-Programmierzeiten bezüglich mehrerer Prozessoren der vorgegebenen Anzahl eine Zuordnung der mehreren Prozessoren zu einer Anzahl von parallelen Programmierbahnen zu bestimmen, die eine globale Flash-Programmierzeit im Einklang mit vorgegebenen Kriterien ergibt. US 2005/0090906 A1 discloses a parallel in-vehicle flash programming system having an input for receiving information regarding a predetermined number of system bus processors, processor flash programming attributes, and system bus attributes. An incremental flash programming timing determination module is adapted to determine, based on the information, incremental flash programming times of a processor relative to multiple inter-frame latencies with respect to multiple parallel flash programming schemes in accordance with the predetermined number of processors. A global flash programming time resolution module is adapted to determine an association of the plurality of processors to a number of parallel programming paths based on incremental flash programming times with respect to a plurality of processors of the predetermined number, yielding a global flash programming time in accordance with predetermined criteria.

Offenbarung der ErfindungDisclosure of the invention

Die Erfindung stellt ein Verfahren zum Verteilen eines Fahrzeugupdatepaketes, eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium gemäß den unabhängigen Ansprüchen bereit.The invention provides a method for distributing a vehicle update package, a corresponding device, a corresponding computer program and a corresponding storage medium according to the independent claims.

Der erfindungsgemäße Ansatz fußt dabei auf der Erkenntnis, dass bei der Aktualisierung mehrerer oder aller Steuergeräte (electronic control units, ECUs) eines Fahrzeugs über eine Luftschnittstelle die Ausführungsdauer eine essentielle Rolle spielt. Dies wird für einzelne Steuergeräte bereits durch existierende Ansätze wie Delta-Updates oder Komprimierung adressiert. Allerdings können diese bekannten Ansätze nur bedingt die Ausführungsdauer für ein Gesamtupdate reduzieren.The approach according to the invention is based on the finding that the execution time plays an essential role in the updating of several or all control units (electronic control units, ECUs) of a vehicle via an air interface. This is already addressed by existing approaches such as delta updates or compression for individual ECUs. However, these known approaches can only partially reduce the execution time for an overall update.

Ein Vorzug dieser Lösung liegt entsprechend in der Schaffung eines Systems zur Koordination von Update-Mechanismen über eine Luftschnittstelle in Abhängigkeit von Fahrzeug-Betriebszuständen und der vom Update betroffenen Fahrzeug-Teilbereiche (domains) mit dem Ziel, die notwendige Zeit für Download und Update von Steuergeräten durch Parallelisierung zu minimieren. Je nachdem, ob Updates auf eine einzelne ECU, einen einzelnen fahrzeugelektronischen Teilbereich oder auf mehrere solcher Teilbereiche – z. B. Antriebsstrang (powertrain) oder Karosserie (chassis) – gleichzeitig verteilt werden sollen, wird für die Datenübertragung im Fahrzeug zwischen verschiedenen Methoden umgeschaltet, die die Bandbreite abhängig von der Übertragungsaufgabe optimal ausnutzen und durch Parallelisierung einen deutlichen Zeitgewinn gegenüber sequenziellen Übertragungsalgorithmen nach dem Stand der Technik ermöglichen. A preferred feature of this solution lies in the creation of a system for coordinating update mechanisms via an air interface as a function of vehicle operating states and the vehicle subregions (domains) affected by the update with the aim of providing the necessary time for downloading and updating ECUs through parallelization. Depending on whether updates to a single ECU, a single vehicle electronics sub-area or to several such sub-areas -. As powertrain or body (chassis) - to be distributed simultaneously, is switched for data transmission in the vehicle between different methods that optimally exploit the bandwidth depending on the transfer task and by paralleling a significant time compared to sequential transmission algorithms according to the state of Allow technology.

Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im unabhängigen Anspruch angegebenen Grundgedankens möglich. So kann vorgesehen sein, dass für die Koordination dieser Mechanismen im Gegensatz zu bekannten On-board-Testern eine Struktur sogenannter Modus-Manager in die Fahrzeug-Architektur eingeführt wird. Konkret verteilen sich die erfindungsgemäßen Aufgaben vorzugsweise auf einen Update-Verteilungsmanager (update distribution manager, UDM) und einen Updatemodus-Manager (update mode manager, UMM), die mit einem Fahrzeugmodus-Manager (vehicle mode manager, VMM) und Fahrzeugupdate-Client (vehicle update client, VUC) auf der Fahrzeugebene einerseits und dem Updateclient auf ECU-Ebene andererseits Informationen austauschen.The measures listed in the dependent claims advantageous refinements and improvements of the independent claim basic idea are possible. Thus, it can be provided that, in contrast to known on-board testers, a structure of so-called mode managers is introduced into the vehicle architecture for the coordination of these mechanisms. Specifically, the tasks of the present invention are preferably distributed to an update distribution manager (UDM) and an update mode manager (UMM) running with a vehicle mode manager (VMM) and vehicle update client (FIG. Vehicle update client, VUC) on the one hand and the update client on the ECU level on the other hand exchange information.

Kurze Beschreibung der Zeichnungen Brief description of the drawings

Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:Embodiments of the invention are illustrated in the drawings and explained in more detail in the following description. It shows:

1 ein Verhaltensmodell des Update-Verteilungsmanagers. 1 a behavioral model of the update distribution manager.

2 einen Rundlaufalgorithmus (round robin) mit nichtverschränkter (non-interleaved) Blockübertragung. 2 a round robin with non-interleaved block transfer.

3 einen prädiktiven Algorithmus mit nichtverschränkter Blockübertragung. 3 a predictive algorithm with non-entangled block transfer.

4 einen Rundlaufalgorithmus mit verschränkter (interleaved) Blockübertragung aus Sicht des Update-Verteilungsmanagers. 4 a round-robin algorithm with interleaved block transfer from the point of view of the update distribution manager.

5 einen entsprechenden Rundlaufalgorithmus aus Sicht des zuständigen Teilbereichskontrollers (domain control unit, DCU). 5 a corresponding round-trip algorithm from the point of view of the competent domain controller (DCU).

Ausführungsformen der ErfindungEmbodiments of the invention

1 illustriert die grundlegende Funktionalität eines erfindungsgemäßen Update-Verteilungsmanagers anhand eines endlichen Zustandsautomaten (10), dessen Zustände nunmehr im Einzelnen erläutert seien. Solange kein Fahrzeugupdate ausgelöst wurde, befindet sich der Update-Verteilungsmanager gleichsam im „Leerlauf“ (Zustand 11), bis ein Fahrzeugupdate ausgelöst wird (Übergang 12), dessen Installation nun ansteht (Zustand 13). Wurde der Installationsmodus noch nicht angefordert (Übergang 14), so wird der Updatemodus-Manager aufgefordert, das Fahrzeug in den Schnellinstallationsmodus zu versetzen (Zustand 15), in welchem der Update-Modus-Manager das Feldbussystem des Fahrzeuges ausschließlich zur Übertragung der Installationspakete reserviert. Es versteht sich, dass anstelle des Schnellinstallationsmodus auch ein regulärer Installationsmodus in Betracht kommt, sofern beispielsweise der Urlader (boot loader, BL) des jeweiligen Zielsteuergerätes die für eine Schnellinstallation erforderlichen Updateparameter nicht unterstützt. Schlägt der Versuch eines Wechsels in den Installationsmodus fehl (Übergang „NOK“) – etwa, weil das Fahrzeug derzeit genutzt wird –, so wird der Update-Verteilungsmanager zurück in den Ausgangszustand 11 versetzt. 1 illustrates the basic functionality of an update distribution manager according to the invention on the basis of a finite state machine ( 10 ), the states of which are now explained in detail. As long as no vehicle update has been triggered, the update distribution manager is in "idle" state 11 ) until a vehicle update is triggered (transition 12 ), whose installation is now pending (state 13 ). If the installation mode has not yet been requested (transition 14 ), the update mode manager is prompted to put the vehicle into quick install mode (state 15 ) in which the update mode manager reserves the fieldbus system of the vehicle exclusively for the transmission of the installation packages. It is understood that instead of the quick installation mode, a regular installation mode is also possible, for example, if the boot loader (BL) of the respective destination control device does not support the update parameters required for a quick installation. If the attempt to change to installation mode fails (transition "NOK") - perhaps because the vehicle is currently being used - the update distribution manager will return to its original state 11 added.

Gelingt indes ein Wechsel in den Installationsmodus (Übergang „OK“), so kehrt der Update-Verteilungsmanager in den Zustand 13 zurück und ersucht den Updatemodus-Manager (Übergang 16), die Liste der vom vorliegenden Fahrzeugupdate betroffenen Teilbereiche der Fahrzeugelektronik auf ihre Gültigkeit hin zu prüfen (Zustand 17). Bei abschlägiger Rückmeldung des Updatemodus-Managers (Übergang 18) erfolgt ein Abbruch des Updates (Zustand 19), im Zuge dessen die den einzelnen Steuergeräten zugeordneten Firmware-Update-Clients aufgefordert werden, die Aktualisierung aller Teilbereiche abzubrechen, und Fahrzeugupdate-Client sowie Updatemodus-Manager vom Abbruch in Kenntnis gesetzt werden, bevor letzterer als abgeschlossen gilt (Übergang 20).If, however, a change to the installation mode (transition "OK") succeeds, the update distribution manager returns to the state 13 back and requests the update mode manager (transition 16 ) to check the validity of the list of parts of the vehicle electronics affected by this vehicle update (state 17 ). In the case of negative feedback from the update mode manager (transition 18 ), the update is aborted (state 19 ), in which the firmware update clients assigned to the individual ECUs are requested to abort the updating of all subregions, and the vehicle update client and update mode manager are notified of the demolition before the latter is considered complete (Transition 20 ).

Bestätigt der Updatemodus-Manager hingegen die Gültigkeit (Übergang 21), so wird die Installation der vom Update betroffenen Steuergeräte eingeleitet (Zustand 22). Schlagen die hierzu erforderliche Datenübertragung, die Verarbeitung der empfangenen Daten durch das Steuergerät oder der Vergleich eines Prüfwerts z.B. entsprechend der zyklische Redundanzprüfung (cyclic redundancy check, CRC) der gesamten übertragenen Firmware fehl (Übergang 23), so wird die Aktualisierung des betreffenden Steuergerätes als gescheitert erachtet (Zustand 24) und ein erneuter Versuch unternommen (Übergang 25). Bei wiederholtem Fehlschlag (Übergang „NOK“) wird der Fahrzeugupdate-Client ersucht zu prüfen, ob das fehlgeschlagene Update des betreffenden Steuergerätes zum Abbruch des gesamten Fahrzeugupdates führen oder die Installation mit anderen Steuergeräten fortgesetzt werden soll (Zustand 26). Im letzteren Fall (Übergang 27) kehrt der Update-Verteilungsmanager in den Zustand 22 zurück; bestätigt der Fahrzeugupdate-Client hingegen den vollständigen Abbruch (Übergang 28) oder meldet der Updatemodus-Manager während des Updates einen Abfall des Ladestandes der Fahrzeugbatterie (Übergang 29), so geht der Update-Verteilungsmanager abermals in den Abbruchzustand 19 über.On the other hand, the Update Mode Manager acknowledges the validity (Transition 21 ), the installation of the control units affected by the update is initiated (state 22 ). Fail the required data transmission, the processing of the received data by the control unit or the comparison of a test value, for example according to the cyclic redundancy check (CRC) of the entire transmitted firmware (transition 23 ), then the update of the relevant control unit is considered failed (state 24 ) and a new attempt (transition 25 ). In the event of a repeated failure (transition "NOK"), the vehicle update client is requested to check whether the failed update of the relevant control unit leads to the cancellation of the entire vehicle update or the installation should continue with other control units (state 26 ). In the latter case (transition 27 ), the update distribution manager returns to the state 22 back; On the other hand, the vehicle update client confirms the complete cancellation (Transition 28 ) or the update mode manager reports a drop in the battery charge level during the update (transition 29 ), the update distribution manager again goes into abort state 19 above.

Die beschriebenen Zustände werden solange durchlaufen, bis die Aktualisierung der betroffenen Teilbereiche abgeschlossen ist (Übergang 30), sodass das Fahrzeugupdate auch insgesamt als abgeschlossen betrachtet werden kann (Übergang 31).The described states are run through until the update of the affected subregions is completed (transition 30 ), so that the vehicle update can also be considered complete (transition 31 ).

In den Grenzen dieses Verhaltensmodells (10) mögen verschiedene quasiparallele Übertragungsmethoden (32, 41, 44, 51) zur Anwendung kommen, ohne den Rahmen der Erfindung zu verlassen. 2 beleuchtet eine erste Methode (Flussdiagramm 32), bei welcher zunächst die Gesamtzahl der zu verteilenden Datenblöcke als Summe der allen Steuergeräten zugeordneten Anzahlen von Datenblöcken berechnet wird (Prozess 33). Sofern die Anzahl noch zu verteilender Datenblöcke für alle Steuergeräte größer als null ist (Entscheidung 34), wird – beginnend beim ersten vom Updatepaket betroffenen Steuergerät – geprüft, ob die Anzahl noch an das derzeit bediente Steuergerät zu übertragender Datenblöcke größer als null ist (Entscheidung 35). In diesem Fall ist zu klären, ob der zuletzt an besagtes Steuergerät übertragene Datenblock bereits verarbeitet wurde (Entscheidung 36). Ist dies nicht der Fall (Zweig „F“), so ist die diesbezügliche Bestätigung durch das Steuergerät abzuwarten (Prozess 37). Ist die Verarbeitung hingegen bereits abgeschlossen (Zweig „T“), so wird ein Datenblock an das derzeit bediente Steuergerät übertragen, die Anzahlen noch an das derzeit bediente Steuergerät zu übertragender sowie insgesamt noch zu verteilender Datenblöcke für alle Steuergeräte werden entsprechend reduziert (Prozess 38) und die Übertragung des Datenblockes wird abgewartet (Prozess 39), bevor das nach einer vorgegebenen Reihenfolge jeweils nächste Steuergerät aktualisiert wird (Prozess 40).Within the limits of this behavioral model ( 10 ), different quasiparallel transmission methods ( 32 . 41 . 44 . 51 ) are used without departing from the scope of the invention. 2 illuminates a first method (flowchart 32 ), in which first the total number of data blocks to be distributed is calculated as the sum of the numbers of data blocks assigned to all the control units (process 33 ). If the number of data blocks still to be distributed for all control units is greater than zero (decision 34 ), is - starting with the first affected by the update package control unit - checked whether the number of data blocks still to be transmitted to the currently operated control unit is greater than zero (decision 35 ). In this case, it must be clarified whether the last data block transferred to said control unit already was processed (decision 36 ). If this is not the case (branch "F"), the respective confirmation by the control unit must be awaited (process 37 ). If, on the other hand, the processing has already been completed (branch "T"), then a data block is transmitted to the currently operated control unit, the numbers still to be transferred to the currently operated control unit and also to be distributed in total for all control units are reduced accordingly (process 38 ) and the transmission of the data block is awaited (process 39 ) before updating the next control unit according to a given sequence (process 40 ).

3 stellt eine alternative, hinsichtlich ihrer Gesamtlaufzeit optimierte Methode dar (Flussdiagramm 41), die sich vor allem hinsichtlich des Verhaltens des Update-Verteilungsmanagers in jenem Fall unterscheidet, dass das derzeit bediente Steuergerät nicht bereit ist, den zu übertragenden Datenblock zu empfangen. Dann nämlich sucht die Komponente nach einem anderen Steuergerät, das seine zuvor empfangenen Datenblöcke bereits vollständig verarbeitet hat und bestimmten Kriterien entspricht, z.B. an welches der anstehende Datenblock innerhalb der geschätzten Wartezeit für das nicht empfangsbereite Steuergerät übertragen kann. Das empfangsbereite Steuergerät wird nun vorgezogen (Prozess 42) und im Weiteren solchermaßen bedient, wie andernfalls das noch nicht empfangsbereite Steuergerät bedient worden wäre (Prozesse 38, 39). Erst dann wendet sich der Update-Verteilungsmanager erneut dem in der Verarbeitungsreihenfolge zurückgestellten Steuergerät zu (Prozess 43). 3 represents an alternative, with regard to their overall runtime optimized method (flowchart 41 ), which differs above all in regard to the behavior of the update distribution manager in the event that the currently operated control device is not ready to receive the data block to be transmitted. In that case, the component then searches for another control unit which has already completely processed its previously received data blocks and corresponds to specific criteria, eg to which the pending data block can transmit within the estimated waiting time for the non-ready-to-receive control unit. The ready-to-receive controller is now brought forward (process 42 ) and subsequently served in such a way as otherwise the not yet ready to receive control unit would have been operated (processes 38 . 39 ). Only then does the update distribution manager again turn to the controller deferred in the processing order (process 43 ).

Die Ausführungsform gemäß 4 und 5 ist bestrebt, den im Zuge des Updates erzielten Datendurchsatz im Wege der Verschränkung (interleaving) innerhalb des verwendeten Transportprotokolls weiter zu erhöhen. Hierbei gibt 4 den Programmfluss auf dem Update-Verteilungsmanager wieder (Flussdiagramm 44). Nach der bereits beschriebenen Berechnung der Gesamtzahl zu verteilender Datenblöcke (Prozess 33) wird demnach für sämtliche Steuergeräte in der Liste vom Fahrzeugupdatepaket betroffener Steuergeräte der jeweils erste Datenblock an den Teilbereichskontroller desjenigen Teilbereiches übertragen, welcher das jeweilige Steuergerät umfasst, und die diesbezügliche Bestätigung durch das Steuergerät abgewartet (Prozess 45). Wurde durch das Zielsteuergerät noch kein Datenblock verarbeitet (Entscheidung 46, Zweig „F“), so wird auch die Bestätigung der erfolgten Verarbeitung abgewartet (Prozess 47). Andernfalls (Zweig „T“) wird dasjenige Steuergerät bestimmt und als nächstes behandelt, an welches der „älteste“ noch zu übertragende Datenblock adressiert ist; dieser Datenblock selbst wird entsprechend aus der Warteschlange noch zu übertragender Datenblöcke entfernt (Prozess 48) und an den Teilbereichskontroller desjenigen Teilbereiches übertragen, welcher das zu bedienende Steuergerät umfasst. Dieser Teilbereichskontroller übernimmt fortan in seiner Funktion als Update-Verteilungskontroller (update distribution controller, UDC) die weitere Übertragung des Datenblockes an das endgültige Steuergerät innerhalb seines Zuständigkeitsbereiches; die Anzahlen noch an das derzeit bediente Steuergerät zu übertragender sowie insgesamt noch zu verteilender Datenblöcke für alle Steuergeräte werden entsprechend reduziert (Prozess 49). Die vollständige Übertragung dieses Datenblockes an den Teilbereichskontroller bleibt gleichwohl abzuwarten (Prozess 50).The embodiment according to 4 and 5 strives to further increase the data throughput achieved during the update by means of interleaving within the transport protocol used. Here are 4 the program flow on the update distribution manager again (flowchart 44 ). After the already described calculation of the total number of data blocks to be distributed (process 33 ), the respective first data block is transmitted to the sub-area controller of that sub-area for all control units in the list of control units affected by the vehicle update package, and the corresponding acknowledgment by the control unit is awaited (process 45 ). If no data block has yet been processed by the destination control unit (decision 46 , Branch "F"), the confirmation of the processing is also awaited (process 47 ). Otherwise (branch "T") that control unit is determined and treated next, to which the "oldest" still to be transmitted data block is addressed; this data block itself is accordingly removed from the queue of data blocks still to be transferred (process 48 ) and to the sub-area controller of that subarea which comprises the control device to be operated. From now on, this sub-area controller, in its function as update distribution controller (UDC), will continue to transfer the data block to the final control device within its area of responsibility. the numbers still to be transferred to the currently operated control unit and a total of still distributed data blocks for all control units are reduced accordingly (process 49 ). However, the complete transmission of this data block to the subrange controller remains to be seen (process 50 ).

Den sich innerhalb des Teilbereichskontroller selbst anschließenden Ablauf (Flussdiagramm 51) verdeutlicht schließlich die 5. Hier wird zunächst die Gesamtzahl der zu verteilenden Datenrahmen im Sinne des zugrundeliegenden Transportprotokolls (transport protocol, TP) als Summe der allen Steuergeräten zugeordneten Anzahlen von Datenrahmen berechnet (Prozess 33). Sofern die Anzahl noch zu verteilender Datenrahmen für alle Steuergeräte größer als null ist (Entscheidung 53), wird – beginnend beim ersten vom Updatepaket betroffenen Steuergerät – geprüft, ob auch die Anzahl noch an das derzeit bediente Steuergerät zu übertragender Datenrahmen größer als null ist (Entscheidung 54). In diesem Fall (Zweig „T“) ist fraglich, ob der zuletzt verteilte Datenblock – sein letzter fortlaufender Datenrahmen wurde somit bereits übertragen – vom derzeit bedienten Steuergerät verarbeitet und seine Verarbeitung bestätigt wurde (Entscheidung 55). Ist dies zu bejahen (Zweig „T“), so hängt das weitere Vorgehen des Teilbereichskontrollers davon ab, ob es sich bei dem als nächsten erwarteten Datenrahmen um einen Datenrahmen zur Ablaufsteuerung handelt, was der Fall wäre, wenn der letzte übertragene Datenrahmen der erste Datenrahmen oder der letzte fortlaufende Datenrahmen des Fensters des letzten Empfängers wäre (Entscheidung 56). Falls ein derartiger Datenrahmen zwar erwartet wird, aber noch nicht empfangen wurde (Entscheidung 57, Zweig „F“), wird der Empfang dieses Datenrahmens zunächst abgewartet (Prozess 58). In jedem Fall ist sicherzustellen, dass der technisch bedingte zeitliche Mindestabstand vor der Übertragung des nächsten Datenrahmens eingehalten wird (Entscheidung 59); andernfalls (Zweig „F“) ist auch diesbezüglich abzuwarten (Prozess 60).The sequence that follows within the sub-area controller itself (flowchart 51 ) finally clarifies the 5 , Here, the total number of data frames to be distributed in terms of the underlying transport protocol (TP) is first calculated as the sum of the numbers of data frames assigned to all the controllers (process 33 ). If the number of data frames still to be distributed for all control units is greater than zero (decision 53 ), it is checked - starting with the first control unit affected by the update package - whether the number of data frames still to be transmitted to the currently operated control unit is greater than zero (decision 54 ). In this case (branch "T"), it is questionable whether the last distributed data block - its last consecutive data frame has thus already been transferred - is processed by the currently operated ECU and its processing has been confirmed (decision 55 ). If this is affirmative (branch "T"), the further action of the subunit controller depends on whether the next expected data frame is a data frame for flow control, which would be the case if the last transmitted data frame is the first data frame or the last consecutive data frame of the last recipient's window would be (decision 56 ). If such a data frame is expected, but has not yet been received (decision 57 Branch "F"), the reception of this data frame is first waited (process 58 ). In any case, it must be ensured that the technically-related minimum time interval before transmission of the next data frame is adhered to (decision 59 ); otherwise (branch "F") is to wait in this regard (process 60 ).

Sodann wird der Typ des nächsten zu übertragenden Datenrahmens bestimmt. Hierbei mag es sich im Falle einer nicht segmentierten Nachricht vorkonfigurierter Blockgröße um einen einzelnen Datenrahmen, im Falle einer segmentierten Nachricht indes um einen ersten Datenrahmen oder einen nachfolgenden Datenrahmen handeln. Der solchermaßen bestimmte Datenrahmen wird an das derzeit bediente Steuergerät übertragen; die Anzahlen noch an das derzeit bediente Steuergerät zu übertragender sowie insgesamt noch zu verteilender Datenrahmen für alle Steuergeräte werden entsprechend reduziert (Prozess 61). Schließlich wird die vollständige Übertragung des besagten Datenrahmens abgewartet (Prozess 62), bevor sich der Teilbereichskontroller nach einer vorgegebenen Reihenfolge der Aktualisierung des jeweils nächsten Steuergerätes zuwendet (Prozess 63).Then the type of next data frame to be transmitted is determined. In the case of an unsegmented message of preconfigured block size, this may be a single data frame, in the case of a segmented message, however, a first data frame or a subsequent data frame. The thus determined data frame is transmitted to the currently operated controller; the numbers still to be transferred to the currently operated control unit as well a total of data frames still to be distributed for all control units are reduced accordingly (process 61 ). Finally, the complete transmission of said data frame is awaited (process 62 ) before the partition controller turns to the next controller in a predetermined order of updating (Process 63 ).

Das Verbesserungspotenzial für die parallele Aktualisierung hängt dabei von verschiedenen Charakteristiken der einzelnen zu aktualisierenden Steuergeräte und der sie verbindenden Busse ab. Die Gesamtheit dieser Eigenschaften sei im Folgenden vereinfachend als „das Profil“ des jeweiligen Steuergerätes bezeichnet. Untersuchungen zeigen, dass die gemeinsame Aktualisierung von Steuergeräten mit geeigneten Profilen zu einem besseren Ergebnis führt. Es erweist sich hingegen als nachteilig, sämtliche Steuergeräte quasiparallel zu aktualisieren. Vielmehr empfiehlt es sich, eine Warteschlange zu aktualisierender Steuergeräte zu verwalten, wobei zu keinem Zeitpunkt eine vorgegebene Obergrenze gleichzeitig aktualisierter Steuergeräte überschritten wird.The improvement potential for the parallel update depends on different characteristics of the individual ECUs to be updated and the buses connecting them. The entirety of these properties is referred to in the following simplifying as "the profile" of the respective control unit. Research has shown that the joint updating of ECUs with suitable profiles leads to a better result. On the other hand, it proves disadvantageous to update all control units quasi-parallel. Rather, it is advisable to manage a queue to be updated ECUs, at no time a predetermined upper limit of the same time updated ECUs is exceeded.

In einer bevorzugten Ausführungsform werden die Steuergeräte dabei anhand des Zeitaufwandes für die Datenübertragung einerseits und für die interne Verarbeitung der übertragenen Daten andererseits klassifiziert. Steuergeräte, deren Verarbeitungszeit die Übertragungszeit überwiegt, werden demnach einer ersten Klasse, die übrigen Steuergeräte einer zweiten Klasse zugeordnet. Anhand dieser Kategorien wird die besagte Warteschlange derart sortiert, dass Steuergeräte der ersten Klasse vor solchen der zweiten Klasse aktualisiert werden.In a preferred embodiment, the control units are classified based on the time required for data transmission on the one hand and for the internal processing of the transmitted data on the other hand. Control units whose processing time outweighs the transmission time are therefore assigned to a first class, the remaining control units of a second class. Based on these categories, said queue is sorted to update first class controllers before those of second class.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 2005/0090906 A1 [0004] US 2005/0090906 A1 [0004]

Claims (11)

Verfahren (10) zum Verteilen eines Fahrzeugupdatepaketes innerhalb eines Fahrzeuges, gekennzeichnet durch folgende Merkmale: – ein Betriebszustand des Fahrzeuges wird ermittelt (15), – von dem Fahrzeugupdatepaket betroffene elektronische Teilbereiche des Fahrzeuges werden ermittelt (17), – abhängig von dem Betriebszustand und den betroffenen Teilbereichen wird eine Übertragungsmethode (32, 41, 44, 51) für das Fahrzeugupdatepaket ausgewählt und – das Fahrzeugupdatepaket wird nach der gewählten Übertragungsmethode (32, 41, 44, 51) auf die betroffenen Teilbereiche verteilt.Procedure ( 10 ) for distributing a vehicle update package within a vehicle, characterized by the following features: an operating state of the vehicle is determined ( 15 ), - electronic parts of the vehicle affected by the vehicle update package are determined ( 17 ), - depending on the operating status and the affected subareas, a transmission method ( 32 . 41 . 44 . 51 ) is selected for the vehicle update package and - the vehicle update package is selected according to the selected transmission method ( 32 . 41 . 44 . 51 ) distributed to the affected subareas. Verfahren (10) nach Anspruch 1, gekennzeichnet durch folgendes Merkmal: – innerhalb eines der Teilbereiche wird an mehrere von dem Fahrzeugupdatepaket betroffene Steuergeräte nach einer vorgegebenen Reihenfolge reihum ein für das jeweilige Steuergerät bestimmter Datenblock des Fahrzeugupdatepaketes übertragen (32, 41). Procedure ( 10 ) according to claim 1, characterized by the following feature: - within one of the subregions, a control unit of a certain data block of the vehicle update packet is transmitted to a plurality of control units affected by the vehicle update package in a predetermined order in turn ( 32 . 41 ). Verfahren (10) nach Anspruch 2, gekennzeichnet durch folgende Merkmale: – ist das jeweilige Steuergerät nicht bereit, den zu übertragenden Datenblock zu empfangen (36), so wird ein empfangsbereites Steuergerät unter den betroffenen Steuergeräten ermittelt (42) und – ein für das empfangsbereite Steuergerät bestimmter Datenblock des Fahrzeugupdatepaketes wird an das empfangsbereite Steuergerät übertragen (38).Procedure ( 10 ) according to claim 2, characterized by the following features: - the respective control device is not ready to receive the data block to be transmitted ( 36 ), a ready-to-receive control device is determined among the affected control devices ( 42 ) and - a data block of the vehicle update packet intended for the ready-to-receive control unit is transmitted to the receiving-ready control unit ( 38 ). Verfahren (10) nach Anspruch 3, gekennzeichnet durch folgende Merkmale: – ist das jeweilige Steuergerät nicht bereit, den zu übertragenden Datenblock zu empfangen, so wird eine Wartezeit für das jeweilige Steuergerät geschätzt und – das empfangsbereite Steuergerät wird derart ermittelt (42), dass der für das empfangsbereite Steuergerät bestimmte Datenblock innerhalb der Wartezeit übertragen (38) werden kann.Procedure ( 10 ) according to claim 3, characterized by the following features: - if the respective control unit is not ready to receive the data block to be transmitted, then a waiting time for the respective control unit is estimated and - the receiver-ready control unit is determined in such a way (FIG. 42 ) that the data block intended for the receiver-ready control unit transmits within the waiting time ( 38 ) can be. Verfahren (10) nach Anspruch 1, gekennzeichnet durch folgendes Merkmal: – für mehrere von dem Fahrzeugupdatepaket betroffene Steuergeräte wird nach einer festgelegten Reihenfolge reihum ein Datenrahmen eines für das jeweilige Steuergerät bestimmten Datenblockes des Fahrzeugupdatepaketes an einen Teilbereichskontroller desjenigen Teilbereiches übertragen, welcher das jeweilige Steuergerät umfasst (44). Procedure ( 10 ) according to claim 1, characterized by the following feature: for a plurality of control units affected by the vehicle update packet, a data frame of a data block of the vehicle update packet intended for the respective control unit is transmitted in turn to a subrange controller of that subarea comprising the respective control unit ( 44 ). Verfahren (10) nach Anspruch 5, gekennzeichnet durch folgendes Merkmal: – innerhalb des Teilbereiches wird an diejenigen von dem Fahrzeugupdatepaket betroffenen Steuergeräte, welche von dem Teilbereich umfasst sind, nach einer vorgegebenen Reihenfolge reihum ein Datenrahmen des für das jeweilige Steuergerät bestimmten Datenblockes übertragen (51).Procedure ( 10 ) according to claim 5, characterized by the following feature: within the subarea, a data frame of the data block intended for the respective control unit is transmitted in turn to those control units affected by the vehicle update package, which are encompassed by the subarea ( 51 ). Verfahren (10) nach Anspruch 5 oder 6, gekennzeichnet durch folgende Merkmale: – die von dem Fahrzeugupdatepaket betroffenen Steuergeräte werden einer Einteilung anhand eines Verhältnisses zwischen einer Übertragungszeit und einer Verarbeitungszeit unterzogen und – die Reihenfolge wird anhand der Einteilung festgelegt.Procedure ( 10 ) according to claim 5 or 6, characterized by the following features: - the control devices affected by the vehicle update packet are subjected to a classification on the basis of a ratio between a transmission time and a processing time and - the sequence is determined on the basis of the classification. Verfahren (10) nach einem der Ansprüche 1 bis 7, gekennzeichnet durch folgende Merkmale: – das Auswählen der Übertragungsmethode (32, 41, 44, 51) erfolgt durch einen Updatemodus-Manager des Fahrzeuges und – das Verteilen des Fahrzeugupdatepaketes erfolgt durch einen Update-Verteilungsmanager des Fahrzeuges.Procedure ( 10 ) according to one of claims 1 to 7, characterized by the following features: - selecting the transmission method ( 32 . 41 . 44 . 51 ) is performed by an update mode manager of the vehicle and - the vehicle update package is distributed by an update distribution manager of the vehicle. Computerprogramm, welches eingerichtet ist, das Verfahren (10) nach einem der Ansprüche 1 bis 8 auszuführen.Computer program, which is set up the procedure ( 10 ) according to one of claims 1 to 8. Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 9 gespeichert ist.A machine readable storage medium storing the computer program of claim 9. Vorrichtung, die eingerichtet ist, das Verfahren (10) nach einem der Ansprüche 1 bis 8 auszuführen.Device that is set up, the method ( 10 ) according to one of claims 1 to 8.
DE102016206805.9A 2016-04-21 2016-04-21 Method and apparatus for parallel execution of a vehicle update Pending DE102016206805A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102016206805.9A DE102016206805A1 (en) 2016-04-21 2016-04-21 Method and apparatus for parallel execution of a vehicle update

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016206805.9A DE102016206805A1 (en) 2016-04-21 2016-04-21 Method and apparatus for parallel execution of a vehicle update

Publications (1)

Publication Number Publication Date
DE102016206805A1 true DE102016206805A1 (en) 2017-10-26

Family

ID=60021092

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016206805.9A Pending DE102016206805A1 (en) 2016-04-21 2016-04-21 Method and apparatus for parallel execution of a vehicle update

Country Status (1)

Country Link
DE (1) DE102016206805A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023242110A1 (en) 2022-06-17 2023-12-21 Cariad Se Method for operating a motor vehicle in order to coordinate software updates in a plurality of runtime environments, and correspondingly operable motor vehicle

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050090906A1 (en) 2003-10-23 2005-04-28 Jianying Shi Method for optimizing ecu parallel flash programming arrangement on a can-based vehicle serial bus in general assembly

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050090906A1 (en) 2003-10-23 2005-04-28 Jianying Shi Method for optimizing ecu parallel flash programming arrangement on a can-based vehicle serial bus in general assembly

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023242110A1 (en) 2022-06-17 2023-12-21 Cariad Se Method for operating a motor vehicle in order to coordinate software updates in a plurality of runtime environments, and correspondingly operable motor vehicle

Similar Documents

Publication Publication Date Title
DE102012009482B4 (en) Functionally expandable vehicle control unit and method for supplementing the functionality of a vehicle control unit
DE102015203766A1 (en) Subsystem for a vehicle and corresponding vehicle
DE102015221330A1 (en) A method and apparatus for robustly updating firmware of a vehicle over an air interface
DE102017217668A1 (en) Method and central data processing device for updating software in a plurality of vehicles
DE102015216265A1 (en) Method and subsystem for installing a software update in a vehicle
EP3092562B1 (en) Method and system for programming a plurality of control units
EP1700211B1 (en) Method of loading software modules
DE112013003240B4 (en) Method for controlling a motor vehicle transmission
EP3662364A1 (en) System for transferring at least one update packet for at least one control unit of a motor vehicle, and method
DE102016206805A1 (en) Method and apparatus for parallel execution of a vehicle update
DE102017220526A1 (en) Method and device for updating software
DE102015211316A1 (en) Method for communication between software components in a motor vehicle
DE102014002593A1 (en) Dynamic programmable logic controller
EP2962162B1 (en) Method for setting up and/or implementing a programming process of a control device of a transport means
DE102012007321A1 (en) Method for operating a diagnostic system and diagnostic system
DE102008063276A1 (en) Method for installing software-update in e.g. controller integrated system in motor vehicle in automotive industry, involves analyzing behavior of entire system, and implementing update after positive evaluation of system behavior
DE102009047974A1 (en) Method for programming controller in motor vehicle, involves executing update application by gateway to program controller via bus, and deleting update application in gateway, where update-application is provided in programming device
EP4144003B1 (en) Method for producing a software component for an electronic computing device of a motor vehicle, computer program product, computer-readable storage medium and motor-vehicle-external update system
DE102018003777A1 (en) Method for updating a software of at least one control device of a vehicle
DE102016221985A1 (en) Method for data transmission in a vehicle communication network, vehicle communication network, subscribers and vehicle
DE102017204212A1 (en) Method and device for managing applications for vehicles
DE102021202658A1 (en) Computer-implemented method and device for automatically updating a communication unit of a control unit of a vehicle
DE102015211453A1 (en) Method for configuring a communication of a control unit and a control unit
DE102015015428A1 (en) Method and system for loading an update on a telematics component of a vehicle
DE102015211033A1 (en) Methods and apparatus relating to a gateway, in particular a self-learning gateway for vehicle (CAN) bus systems

Legal Events

Date Code Title Description
R012 Request for examination validly filed