Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR UPDATING SOFTWARE
Document Type and Number:
WIPO Patent Application WO/2022/063773
Kind Code:
A1
Abstract:
The invention relates to a method for updating software (124) stored in a memory, which memory is divided into sectors (112), wherein: - the software (124) is updated by the writing of data into the memory; - the data for updating the software (124) are written from an assembly (114) into an additional memory (140), in which additional memory the data are temporarily stored, until the amount of data written into the additional memory (140) reaches a specific value; and - after the value has been reached, the data written into the additional memory (140) are transferred into the memory which is divided into sectors (112).

Inventors:
PEPKE JAN (DE)
Application Number:
PCT/EP2021/075935
Publication Date:
March 31, 2022
Filing Date:
September 21, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G06F8/65
Foreign References:
US20030182414A12003-09-25
Download PDF:
Claims:
- 9 -

Ansprüche

1. Verfahren zum Aktualisieren einer Software (124), die in einem Speicher abgelegt ist, der in Sektoren (112) unterteilt ist, wobei das Aktualisieren der Software (124) durch ein Schreiben von Daten in den Speicher erfolgt, wobei die Daten zum Aktualisieren der Software (124) von einer Anordnung (114) in einen weiteren Speicher (140) geschrieben werden, in dem die Daten zwischengespeichert werden, bis die Menge an Daten, die in dem weiteren Speicher (140) geschrieben sind, einen bestimmten Wert erreicht, und nach Erreichen des Werts die in dem weiteren Speicher (140) geschriebenen Daten in den Speicher, der in Sektoren (112) unterteilt ist, übertragen werden.

2. Verfahren nach Anspruch 1, bei als Speicher, der in Sektoren (112) unterteilt ist, ein Flash-Speicher (100) verwendet wird.

3. Verfahren nach Anspruch 1 oder 2, bei dem der Wert für die Menge von der Größe der Sektoren (112) des Speichers abhängt.

4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem der Wert der Menge so bestimmt wird, dass die Menge an Daten ausreichend ist, dass zumindest einer der Sektoren (112) voll beschrieben werden kann.

5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem die Daten zunächst über einen Bus (120) von einer zentralen Einheit (130) zu der Anordnung (114) gesendet werden, die die Daten empfängt.

6. Verfahren nach Anspruch 5, bei dem die zentrale Einheit (130) die Daten, die zu der Anordnung (114) zu senden sind, über eine drahtlose Verbindung empfängt.

7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem als weiterer Speicher (140) ein RAM-Baustein verwendet wird. 8. Verfahren nach einem der Ansprüche 1 bis 7, bei dem die Daten in dem weiteren Speicher (140) nach dem Übertragen in den Speicher, der in Sektoren (112) unterteilt ist, aus dem weiteren Speicher (140) gelöscht werden.

9. Anordnung zum Aktualisieren einer Software (124), die zum Durchführen eines Verfahrens nach einem der Ansprüche 1 bis 8 eingerichtet ist.

10. Anordnung nach Anspruch 9, die als Steuergerät eines Kraftfahrzeugs ausgebildet ist.

Description:
Beschreibung

Titel

Verfahren zum Aktualisieren von Software

Die Erfindung betrifft ein Verfahren zum Aktualisieren von Software und eine Anordnung zum Durchführen des Verfahrens.

Stand der Technik

Die Aktualisierung von Software, die auch als Update von Software bezeichnet wird, ermöglicht das Anpassen von Software, um bspw. neue Funktionen zu implementieren, Programmerfehler zu beheben und/oder geänderte Anforderungen hinsichtlich der Betriebs- und Datensicherheit zu erfüllen.

Durch den vermehrten Einsatz von Software in immer mehr Bereichen ist mit einem erhöhten Bedarf an Softwareaktualisierungen zu rechnen. Daher scheint ein neues Vorgehen bzw. ein Reorganisieren der Durchführung von Softwareaktualisierungen erforderlich zu sein.

Beim Einsatz von Software in mobilen Einheiten, wie bspw. in Kraftfahrzeugen, bedeutet eine Softwareaktualisierung typischerweise, dass das Kraftfahrzeug in die Werkstatt gebracht werden muss und folglich das Kraftfahrzeug dem Fahrer für eine gewisse Zeit nicht zur Verfügung steht. Solche lästigen und häufig ungelegenen Werkstattaufenthalte sollen nach Möglichkeit vermieden werden. Daher wird angestrebt, die Daten, die zur Softwareaktualisierung dienen, drahtlos direkt an den Endkunden zu senden.

Daneben ist auch zu beachten, dass in Abhängigkeit von der betroffenen Komponente in dem Fahrzeug, deren Software aktualisiert werden soll, das Fahrzeug nicht bewegt werden darf, solange die Softwareaktualisierung durchgeführt wird. Es werden daher Vorgehensweisen gesucht, mit denen Nicht- Betriebsphasen eines Fahrzeugs, die sogenannten Fahrzeugausfallzeiten, aufgrund eines durchgeführten Softwareupdates verringert werden können. Dies soll zu einer erhöhten Nutzerakzeptanz und zu einer beschleunigten Einführung von aktualisierter Software führen, insbesondere wenn die Nachvollziehbarkeit von kritischen Updates erforderlich ist.

Einer der Ansätze, um die Fahrzeugausfallzeit zu verringern, stellt die Verwendung eines zusätzlichen Flash-Speichers im Zielsteuergerät (ECU: electronic control unit) dar. Zielsteuergeräte können bspw. der Bremse, dem Airbag, dem Radar usw. zugeordnet sein. Die neue Software kann dann installiert werden, während sich das Fahrzeug in einem normalen Betriebsmodus, bspw. beim Fahren, befindet. Am Ende der Installation, wenn das Fahrzeug im Stillstand ist, wird die neue Software, die sich bereits auf dem Zielsteuergerät befindet, lediglich aktiviert. Eine Aktivierung nimmt signifikant weniger Zeit im Vergleich zu einem Reprogrammieren des gesamten Steuergeräts in Anspruch.

Da eine Installation während des Fahrens bedeutet, dass eine Datenübertragung bzw. ein Datentransfer auf Fahrzeugbussen, wie bspw. CAN, CAN- FD usw., stattfindet, kann dies eine hohe Belastung des Busses bedeutet. Dies soll nach Möglichkeit vermieden werden, Daher ist es bekannt, einen Datentransfer über den Fahrzeugbus absichtlich langsam durchzuführen. So kann bspw. eine Installation so organisiert werden, dass diese 45 Minuten in Anspruch nimmt. Die Installationsphase kann allerdings einige Male unterbrochen werden, bspw. durch Aus-Ein-Zyklen der Zündung, da diese ein normales Fahrerverhalten widerspiegeln.

Offenbarung der Erfindung

Vor diesem Hintergrund werden ein Verfahren mit den Merkmalen des Anspruchs 1 und eine Anordnung nach Anspruch 9 vorgestellt.

Ausführungsformen ergeben sich aus den abhängigen Ansprüchen und aus der Beschreibung. Das vorgestellte Verfahren dient zum Aktualisieren einer Software, die in einem Speicher abgelegt ist, der in Sektoren unterteilt ist. Als Speicher kommt hierbei z. B. ein Flash-Speicher in Betracht. Das Aktualisieren der Software erfolgt durch ein Schreiben von Daten in den Speicher. Die Daten zum Aktualisieren der Software werden von einer Anordnung, die diese typischerweise vorab empfangen hat, in einen weiteren Speicher, bspw. einem RAM- Baustein, geschrieben. In dem weiteren Speicher werden die Daten zwischengespeichert, bis die Menge an Daten, die in den weiteren Speicher geschrieben sind, einen bestimmten Wert erreicht. Anschließend werden die in dem weiteren Speicher geschriebenen Daten in den Speicher, der in Sektoren unterteilt ist, übertragen. Dieser Vorgang wird typischerweise von der Anordnung, ausgelöst durch das Erreichen der Menge, bewirkt.

Der Wert für die Menge, bei dessen Erreichen das Beschreiben des Speichers mit Sektoren ausgelöst wird, kann von der Größe der Sektoren des Speichers abhängen. So kann der Wert der Menge so bestimmt sein, dass die Menge an Daten ausreichend ist, dass zumindest einer der Sektoren voll beschrieben werden kann. In einer Ausführung ist vorgesehen, dass solange Daten in den weiteren Speicher geschrieben werden, bis die Menge an Daten ausreichend ist, um genau einen Sektor vollzuschreiben. Dies erfolgt dann.

In einer Ausführungsform werden die Daten zunächst über einen Bus von einer zentralen Einheit zu der Anordnung gesendet. Die Anordnung empfängt dann diese Daten, die von der Anordnung dann in den weiteren Speicher geschrieben werden.

Die zentrale Einheit wiederum kann die Daten, die zu der Anordnung zu senden sind, über eine drahtlose Verbindung empfangen. Die zentrale Einheit ist dann bspw. ein zentrales Steuergerät in einem Kraftfahrzeug, das die Daten zum Aktualisieren von Software drahltlos bzw. over the air empfängt und dann an die entsprechenden Zielsteuergeräte im Kraftfahrzeug, typischerweise über den Bus des Kraftfahrzeugs, weitergibt. Die Daten, die von der Anordnung in den weiteren Speicher geschrieben wurden, werden typischerweise nach dem Übertragen in den Speicher, der in Sektoren unterteilt ist, aus dem weiteren Speicher gelöscht.

Das vorgestellte Verfahren ermöglicht es somit, einen gesamten Neustart einer Installation zu verhindern. Es kann nach einer Unterbrechung der Installation diese wieder aufgenommen werden, d. h. die Installation kann unterbrochen werden, bspw. durch Zündung-Aus, und fortgeführt werden, bspw. bei Zündung- Ein.

Ein Flash-Speicher ist ein digitaler Speicherbaustein, der zur nichtflüchtigen Speicherung von Daten dient. Im Gegensatz zu anderen Festwertspeichern ist es bei Flash-Speichern nicht möglich, einzelne Speicherzellen zu löschen oder zu überschreiben. Vielmehr ist der Flash-Speicher in Sektoren unterteilt, die alle die gleiche Größe, aber auch unterschiedliche Größen haben können. Diese Sektoren können nur in einem Vorgang beschrieben und auch wieder gelöscht werden. Dies hat zur Folge, dass, falls ein Sektor in einem Schreibvorgang nur zum Teil beschrieben wurde, in einem nächsten Schreibvorgang nicht weiter Daten in diesen Sektor geschrieben werden können. Vielmehr ist es erforderlich, diesen Sektor zunächst vollständig zu löschen, bevor in dem nächsten Schreibvorgang wieder Daten in diesen Sektor geschrieben werden können.

Die vorgestellte Anordnung dient zum Durchführen des Verfahrens und ist bspw. in einer Hardware und/oder Software implementiert. Weiterhin kann die Anordnung in einem Steuergerät, typischerweise einem Zielsteuergerät, integriert oder als solches ausgebildet sein.

Die Anordnung empfängt somit bspw. von einer zentralen Einheit, z. B. einer zentralen Einheit in einem Kraftfahrzeug, über einen Bus Daten, die zum Aktualisieren einer Software dienen, die wiederum in einem Flash-Speicher abgelegt ist. Die Anordnung schreibt dann die empfangenen Daten nicht direkt in den Flash-Speicher, sondern in einen weiteren Speicher, einen Puffer- bzw. Zwischenspeicher, bis die Menge der empfangenen und zwischengespeicherten Daten einen Wert erreicht, der vorab festgelegt ist und bspw. von der Größe der Sektoren des Flash-Speichers abhängt. Sobald dieser Wert bzw. diese Menge erreicht wird, wird ein Schreibvorgang ausgelöst und die zwischengespeicherten Daten werden aus dem weiteren Speicher in den Flash-Speicher geschrieben.

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und den beiliegenden Zeichnungen.

Es versteht sich, dass die voranstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.

Kurze Beschreibung der Zeichnungen

Figur 1 zeigt in einer schematischen Darstellung einen Flash-Speicher zur Verdeutlichung des Vorgehens nach dem Stand der Technik.

Figur 2 zeigt in schematischer Darstellung einen Flash-Speicher, der gemäß einer Ausführung des vorgestellten Verfahrens beschrieben wird.

Ausführungsformen der Erfindung

Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.

Figur 1 zeigt einen Flash-Speicher, der insgesamt mit der Bezugsziffer 10 bezeichnet ist. Auf der rechten Seite ist der Flash-Speicher 10 mit seinen Sektoren 12 dargestellt, die jeweils eine Kapazität von 32 kB haben. Dem Flash- Speicher 10 ist ein Empfangsmodul 14 zugeordnet, das einen Datenstrom 16, der wiederum eine Anzahl von Datenpaketen 18, die unterschiedlich groß sein können, über einen Bus 20 empfängt. Der Datenstrom 16 wird üblicherweise von einer zentralen Einheit auf den Bus 20 gestellt und an den Flash-Speicher 10, dem ein Zielsteuergerät zugeordnet ist, gesendet. Die zentrale Einheit kann den Datenstrom 16 bzw. die Daten, die durch die Datenpakete 18 gegeben sind, drahtlos, d. h. over the air (OTA), empfangen. In dem Flash-Speicher 10 ist eine Software 24 abgelegt, die durch das Beschreiben mit den Daten des Datenstroms 16 aktualisiert werden soll.

Werden nunmehr über das Empfangsmodul 14 erhaltene Daten in den Flash- Speicher 10 geschrieben, so kann es passieren, dass der Datenstrom zu einem Zeitpunkt unterbrochen wird, zu dem ein Sektor 12, in diesem Fall Sektor 12a, noch nicht vollständig beschrieben ist. Bei einer Wiederaufnahme des Beschreibens des Flash-Speichers 10 werden die zuletzt programmierten Adressen im Flash-Speicher 10 bestimmt. Für den Fall, dass diese Adresse innerhalb eines Flashsektors 12 ist und das Zielsteuergerät die Installation fortführen soll, wird dieser Sektor 12a gelöscht. Dies ist erforderlich durch die Spezifikation des Flash-Speichers 10 des Mikrocontrollers des Zielsteuergeräts. Dies bedeutet, dass der Sektor 12a vor dem Beschreiben zunächst gelöscht werden muss.

Die Anzahl an Löschzugriffen ist durch die Spezifikation des Flash-Speichers 10 des Mikrocontrollers begrenzt. Daher bewirkt jede Wiederaufnahme ein Inkrementieren des Löschzählers, der dann bis zu einem festgelegten oberen Wert läuft. Bei Erreichen dieses oberen Grenzwerts ist kein Löschen mehr möglich. Damit kann der Flash-Speicher 10 nicht weiter beschrieben werden. Dies begrenzt somit die Aktualisierungszyklen.

Es wird nunmehr folgendes unter Verweis auf Figur 2 vorgeschlagen:

Figur 2 zeigt einen Flash-Speicher, der insgesamt mit der Bezugsziffer 100 bezeichnet ist und einen Speicher darstellt, der in Sektoren unterteilt ist. Auf der rechten Seite ist der Flash-Speicher 100 mit den Sektoren 112 dargestellt, die jeweils eine Kapazität von 32 kB haben. Dem Flash-Speicher 100 ist eine Anordnung 114 zugeordnet, die einen Datenstrom 116, der wiederum eine Anzahl von Datenpaketen 118, die unterschiedlich groß sind, über einen Bus 120 empfängt. Der Datenstrom 116 wird in diesem Fall von einer zentralen Einheit 130 auf den Bus 120 gestellt und an den Flash-Speicher 100, dem ein Zielsteuergerät zugeordnet ist, gesendet. Die zentrale Einheit 130 kann den Datenstrom 116 bzw. die Daten, die durch die Datenpakete 118 gegeben sind, drahtlos, d. h. over the air (OTA), über ein entsprechendes OTA-Modul 132 empfangen. In dem Flash-Speicher 100 ist eine Software 124 abgelegt, die durch das Beschreiben mit den Daten des Datenstroms 116 aktualisiert wird.

Die nach dem Stand der Technik erforderlichen Löschungen von Sektoren 112 im Falle des Wiederaufnehmens sollen nunmehr vermieden werden. Die Anordnung 114 empfängt die einkommenden Datenpakete 118 unterschiedlicher Länge. Es ist bei dieser Vorgehensweise ein weiterer Speicher 140, in diesem Fall ein flüchtiger Speicher mit direktem Speicherzugriff (RAM: random access memory) vorgesehen, der zum Puffern der eingehenden Datenpakete 118 dient. Dieser weitere Speicher 140 kann somit auch als Puffer- oder Zwischenspeicher bezeichnet werden.

Sobald die Anordnung 114 ausreichend Daten zum Bechreiben eines Sektors 112 erhalten und in den weiteren Speicher 140 verschoben hat, werden, gesteuert durch die Anordnung 114, diese Daten in einen Sektor 112, in diesem Fall den Sektor 112a, geschrieben. Damit wird der Sektor 112a voll geschrieben. Von Bedeutung ist, dass die Menge an Daten, die von der Anordnung 114 empfangen wurde und die dann ein Beschreiben des Flash-Speichers 100 durch die Anordnung 114 auslöst, typischerweise von der Größe der Sektoren 112 des Flash-Speichers 100 abhängt.

Bei der gezeigten Ausführung werden immer soviele Daten zwischengespeichert, dass bei jedem Schreibvorgang ein Sektor 112 vollgeschrieben werden kann. Es kann aber durchaus auch eine Einstellung vorgenommen werden, dass Sektoren 112 nur bis zu einem gewissen Maß beschrieben werden oder dass bei einem Schreibvorgang immer mehrere Sektoren ganz oder teilweise nur zum Teil beschrieben werden. Dies kann ein Anwender vorgeben und hierzu die Anordnung 114 entsprechend einstellen. Hierbei kann auch berücksichtigt werden, dass Sektoren 112 des Flash-Speichers 100 unterschiedlich groß sein können. Die Anordnung 114 kann dann jeweils die Sektoren 112 auswählen, die der Menge an empfangenen und zwischengespeicherten Daten am besten angepasst sind. Dieses Vorgehen stellt sicher, dass bei jeder Wiederaufnahme der Flash- Speicher 100 bis zur Sektorgrenze programmiert werden kann und daher keine Löschung von teilweise programmierten Sektoren 112 erforderlich ist.