-
Die vorliegende Erfindung betrifft ein Verfahren zur Programmierung von Steuergeräten eines Kraftfahrzeugs sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
-
Stand der Technik
-
Im Zuge einer sogenannten Firmware-Over-the-Air-Programmierung (FOTA) oder Over-the-Air-Programmierung (OTA) kann ein Steuergerät eines Kraftfahrzeugs programmiert werden, wenn sich das Kraftfahrzeug bereits im Feld befindet. Beispielsweise kann im Zuge derartiger Programmierungen eine Aktualisierung von Steuergeräte-Software bzw. ein Firmware-Update durchgeführt werden, wobei ein neuer, überarbeiteter Programmcode in das entsprechende Steuergerät geschrieben wird. Dieser neue Programmcode kann beispielsweise drahtlos über eine Funkverbindung, wie beispielsweise WLAN oder Mobilfunknetze an das Kraftfahrzeug übertragen werden, beispielsweise von einem Server des Fahrzeugherstellers.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zur Programmierung von Steuergeräten eines Kraftfahrzeugs sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Das Kraftfahrzeug umfasst insbesondere eine Vielzahl von Steuergeräten (z.B. Motor-, Bremsen-, Getriebe-, Entertainment-, Batteriesteuergerät, etc.), die zweckmäßigerweise miteinander in Kommunikationsverbindung stehen, insbesondere über ein Feldbussystem wie CAN, Sercos, etc. Im Rahmen des Verfahrens wird eine Programmierung von wenigstens zwei Steuergeräten durchgeführt, welche zur Ausführung einer Funktionalität zusammenwirken bzw. gemeinsam benötigt werden. Wenn die Programmierung von wenigstens einem dieser wenigstens zwei Steuergeräte nicht erfolgreich beendet wird, wird eine Benachrichtigung an einen Fahrer des Kraftfahrzeugs ausgegeben.
-
Um diese Funktionalität (z.B. Abstandsregeltempomat) ausführen zu können, ist insbesondere eine Kommunikation bzw. Interaktion der wenigstens zwei Steuergeräte (z.B. Motorsteuergerät, Bremssteuergerät, Abstandsmess-steuergerät) miteinander erforderlich. Beispielsweise müssen die Steuergeräte Daten oder berechnete Werte miteinander austauschen. Insbesondere werden auf den Steuergeräten zur Ausführung der Funktionalität jeweils steuergerätspezifische Programmcodes ausgeführt, mittels welchen jeweils beispielsweise unterschiedliche Teile der Funktionalität ausgeführt werden können.
-
Im Zuge der Programmierung soll beispielsweise eine neue, aktualisierte Version dieser Funktionalität in das Kraftfahrzeug implementiert werden. Beispielswiese kann auch ein Firmware-Update der entsprechenden Steuergeräte durchgeführt werden. Für die Ausführung der Funktionalität ist es insbesondere von Bedeutung, dass auf sämtlichen benötigten Steuergeräten übereinstimmende Softwareversionen implementiert sind. Passen die einzelnen Softwareversionen nicht zusammen, kann die Funktionalität gegebenenfalls nicht mehr korrekt und fehlerfrei ausgeführt werden.
-
Die Programmierung der Steuergeräte wird zweckmäßigerweise durchgeführt, während sich das Kraftfahrzeug im Feld bzw. im regulären Betrieb befindet. Bevor die Programmierungen durchgeführt werden, wird insbesondere zunächst überprüft, ob sich das Kraftfahrzeug in einem sicheren Zustand (z.B. im Stillstand) befindet, in welchem die Programmierungen gefahrlos durchgeführt werden können. Beispielsweise können zu diesem Zweck (Sensor-)Daten eingelesen und überprüft werden, anhand welcher evaluiert werden kann, ob sich das Kraftfahrzeug in einem sicheren Zustand befindet. Beispielsweise können Geschwindigkeit, Motordrehzahl sowie Schaltstellungen des Zündschlosses eingelesen und überprüft werden. Die Programmierungen werden insbesondere durchgeführt, sobald festgestellt wurde, dass sich das Kraftfahrzeug in einem sicheren Zustand befindet.
-
Zweckmäßigerweise wird die Programmierung der wenigstens zwei Steuergeräte zeitgleich oder im Wesentlichen zeitgleich durchgeführt. Insbesondere wird die Programmierung der einzelnen Steuergeräte parallel bzw. zusammenhängend durchgeführt, während sich das Kraftfahrzeug in dem sicheren Zustand befindet.
-
Die Programmierung des wenigstens einen der Steuergeräte kann beispielsweise nicht erfolgreich beendet werden, wenn ein interner Fehler des entsprechenden Steuergeräts auftritt, wenn das Kraftfahrzeug den sicheren Zustand zu früh verlässt und die Programmierung insbesondere aus Sicherheitsgründen abgebrochen werden muss oder wenn die Programmierung des entsprechenden Steuergeräts zu lange dauert und abgebrochen werden muss. Softwareversionen des bzw. der erfolgreich programmierten Steuergeräte passen somit nicht mehr mit Softwareversionen des bzw. der nicht erfolgreich programmierten Steuergeräte zusammen und die Funktionalität kann gegebenenfalls nicht mehr oder nur noch eingeschränkt ausgeführt werden.
-
Im Rahmen des Verfahrens wird der Fahrer durch die Benachrichtigung darüber informiert, dass die entsprechenden Kraftfahrzeugfunktionen aufgrund nicht erfolgreich durchgeführter Programmierungen nur eingeschränkt oder überhaupt nicht verfügbar sind. Die Benachrichtigung kann dabei visuell und/oder akustisch und/oder haptisch erfolgen. Insbesondere wird die Benachrichtigung auf einer Anzeigevorrichtung dargestellt, beispielsweise im Armaturenbereich, einem Display des Bordcomputers oder einem Head-up-Display. Der entsprechende Fehlerfall der eingeschränkten Fahrzeugfunktion ist somit abgesichert bzw. kontrolliert, insbesondere im Sinne der Norm ISO 26262.
-
Auf herkömmliche Weise wird ein derartiger Fehlerfall zumeist behandelt, indem die erfolgreich durchgeführten Programmierungen zurückgenommen werden und sämtliche Steuergeräte auf die frühere Softwareversion zurückgesetzt werden (sog. Rollback). Somit müssen sämtliche Programmierungen zu einem späteren Zeitpunkt erneut durchgeführt werden, was mit großem Aufwand verbunden ist. Des Weiteren besteht auch hier die Gefahr, dass ein derartiges Rollback von einem oder mehreren Steuergeräten nicht erfolgreich durchgeführt werden kann, so dass auch in diesem Fall Softwareversionen einzelner Steuergeräte nicht mehr übereinstimmen. Durch die Erfindung ist es nicht notwendig, ein derartiges Rollback durchzuführen und bereits erfolgte Programmierungen zurückzunehmen.
-
Durch das Verfahren wird insbesondere eine Möglichkeit bereitgestellt, um derartige Fehlerfälle sicher beherrschen und durch den Fahrer kontrollieren zu können, bis die nicht erfolgreiche Programmierung erfolgreich durchgeführt werden kann und entsprechende Fahrzeugfunktionen wieder fehlerfrei funktionieren. Insbesondere ist es nicht notwendig, eine sofortige Wiederholung der nicht erfolgreich durchgeführten Programmierungen zu erzwingen. Zu diesem Zweck müsste das Fahrzeug in einen sicheren Zustand versetzt werden, was eine Komfort-Einschränkung des Fahrer sowie gegebenenfalls eine Gefährdung der Insassen des Fahrzeugs oder weiter Verkehrsteilnehmer zur Folge haben kann, da das Fahrzeug unter Umständen gestoppt wird.
-
Gemäß einer vorteilhafteren Ausführungsform wird die Programmierung des wenigstens einen der wenigstens zwei Steuergeräte, welche nicht erfolgreich beendet wird, zu einem späteren Zeitpunkt wiederholt. Die erneute Programmierung wird dabei insbesondere nicht sofort durchgeführt, sondern zweckmäßigerweise erst, wenn sich das Kraftfahrzeug zu dem späteren Zeitpunkt erneut in dem sicheren Zustand befindet.
-
Vorzugsweise werden durch die Benachrichtigung Anweisungen an den Fahrer ausgegeben, wie das Fahrzeug gesteuert werden soll, bis die Programmierung des wenigstens einen der wenigstens zwei Steuergeräte zu dem späteren Zeitpunkt wiederholt wird. Beispielsweise kann die Benachrichtigung Informationen enthalten, welche Fahrzeugfunktion konkret in welchem Rahmen eingeschränkt ist und bis zu welchen Fahrbedingungen die Fahrzeugfunktion noch fehlerfrei funktioniert. Die Benachrichtigung kann beispielsweise auch die Anweisung enthalten, dass der Fahrer das Fahrzeug nicht schneller als mit einer bestimmten Maximalgeschwindigkeit und/oder nicht jenseits einer bestimmten Maximaldrehzahl bewegen soll.
-
Vorteilhafterweise wird die Programmierung der wenigstens zwei Steuergeräte von einem koordinierenden Steuergerät koordiniert, welches beispielsweise als ein zentrales Steuergerät (Central Connectivity Unit, CCU) ausgebildet sein kann. Das koordinierende Steuergerät überwacht die einzelnen Programmierungen insbesondere und sorgt dafür, dass die Benachrichtigung bei einer fehlerhaften Programmierung ausgegeben wird. Zu diesem Zweck überprüft das koordinierende Steuergerät vorzugsweise, ob die Programmierung von wenigstens einem der wenigstens zwei Steuergeräte fehlgeschlagen ist.
-
Vorzugsweise überprüft das koordinierende Steuergerät zunächst, ob Bedingungen für die Programmierung erfüllt sind. Beispielsweise beschreiben diese Bedingungen, ob sich das Kraftfahrzeug in dem sicheren Zustand befindet, ob ausreichend Energie vorhanden ist, um die Programmierungen komplett durchzuführen, ob entsprechende neue bzw. aktualisierte Programmcodes für die Programmierungen vorliegen, ob die Softwareversionen dieser Programmcodes zusammenpassen, etc. Bevorzugt können für jedes der wenigstens zwei Steuergeräte individuelle Bedingungen gelten. Wenn all diese Bedingungen gleichzeitig erfüllt sind, können die einzelnen Steuergeräte sicher programmiert werden. Das koordinierende Steuergerät startet die Programmierung der wenigstens zwei Steuergeräte startet somit bevorzugt, wenn die Bedingungen erfüllt sind.
-
Bevorzugt überprüft das koordinierende Steuergerät, während die Programmierung der wenigstens zwei Steuergeräte durchgeführt wird, ob die Bedingungen nicht mehr erfüllt sind. Beispielsweise können die Bedingungen nicht mehr erfüllt sein, wenn das Kraftfahrzeug den sicheren Zustand verlässt. Das koordinierende Steuergerät bricht die Programmierung der Steuergeräte zweckmäßigerweise ab, wenn wenigstens eine der Bedingungen nicht mehr erfüllt ist. Insbesondere stellt das koordinierende Steuergerät somit sicher, dass die Sicherheit bzw. ein sicherer Betrieb des Kraftfahrzeugs gewährleistet ist.
-
Vorteilhafterweise wird ein Benachrichtigungs-Steuergerät informiert, wenn die Programmierung von wenigstens einem der wenigstens zwei Steuergeräte nicht erfolgreich beendet wird. Bevorzugt wird das Benachrichtigungs-Steuergerät von dem koordinierenden Steuergerät informiert. Die Benachrichtigung an den Fahrer wird in diesem Fall von dem Benachrichtigungs-Steuergerät ausgegeben. Beispielsweise kann das Benachrichtigungs-Steuergerät für die Steuerung einer Mensch-Maschinen-Schnittstelle vorgesehen sein und beispielsweise Anzeigevorrichtungen steuern, z.B. etwa im Armaturenbereich, ein Display des Bordcomputers oder ein Head-up-Display.
-
Vorzugsweise wird die Programmierung im Zuge einer Firmware-Over-the-Air-Programmierung (FOTA) oder Over-the-Air-Programmierung (OTA) durchgeführt. Für die Programmierung benötigte neue bzw. aktualisierte Programmcodes können dabei drahtlos über eine Funkverbindung, wie beispielsweise WLAN oder Mobilfunknetze (z.B. GSM, 3G, 4G usw.), an das Kraftfahrzeug übertragen werden, insbesondere von einem Server des Fahrzeug- oder Steuergeräteherstellers, zweckmäßigerweise an das koordinierende Steuergerät.
-
Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
-
Auch die Implementierung des Verfahrens in Form eines Computerprogramms ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt schematisch ein Kraftfahrzeug mit einem Steuergerät, das dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
-
2 zeigt schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.
-
Ausführungsform(en) der Erfindung
-
In 1 ist ein Kraftfahrzeug schematisch dargestellt und mit 100 bezeichnet. Das Kraftfahrzeug 100 weist eine Vielzahl von Steuergeräten 110 auf.
-
Die Steuergeräte 112, 113 und 114 können beispielsweise Motor-, Bremsen-, bzw. Abstandssensorsteuergerät ausgebildet sein. Das Steuergerät 115 ist beispielsweise als ein Benachrichtigungs-Steuergerät ausgebildet und steuert eine Anzeigevorrichtung 120, z.B. ein Display eines Bordcomputers. Es versteht sich, dass das Kraftfahrzeug 100 noch weitere Steuergeräte aufweisen kann, z.B. ABS-, ESP-, Entertainment-, Batterie-, Getriebesteuergerät, usw.
-
Durch Interaktion von Motorsteuergerät 112, Bremsensteuergerät 113 und Abstandssensorsteuergerät 114 kann beispielsweise die Kraftfahrzeugfunktion eines Abstandsregeltempomats ausgeführt werden. Diese Kraftfahrzeugfunktion stellt eine Funktionalität dar, zu deren Ausführung die Steuergeräte 112, 113 und 114 gemeinsam benötigt werden bzw. zusammenwirken.
-
Im Zuge einer Firmware-Over-the-Air-Programmierung (FOTA) soll eine parallele Programmierung dieser Steuergeräte 112, 113 und 114 durchgeführt werden. Beispielsweise soll ein Firmware-Update bzw. eine Aktualisierung der entsprechenden Steuergeräte-Software durchgeführt werden, um eine aktualisierte Version des Abstandsregeltempomats zu implementieren.
-
Steuergerät 111 ist als ein zentrales Steuergerät (Central Connectivity Unit, CCU) ausgebildet und dient als koordinierendes Steuergerät dazu, diese Programmierungen durchzuführen und zu überwachen. Zu diesem Zweck kann das koordinierende Steuergerät 111 über eine drahtlose Verbindung 130, beispielsweise über ein Mobilfunknetz, mit einem Server 140 des Kraftfahrzeugherstellers verbunden werden. Neue, aktualisierte Programmcodes für die Steuergeräte 112, 113 und 114 werden über die drahtlose Verbindung 130 an das koordinierende Steuergerät 111 übertragen.
-
Um die Programmierung der Steuergeräte 112, 113, 114 durchzuführen, ist das koordinierende Steuergerät 111, insbesondere programmtechnisch, dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen, welche in 2 als ein Blockdiagramm dargestellt ist und im Folgenden in Bezug auf 2 erläutert wird.
-
In einem Schritt 201 werden, wie oben erläutert, die neuen, aktualisierten Programmcodes für die Steuergeräte 112, 113, 114 über die drahtlose Verbindung 130 von dem Server 140 an das koordinierende Steuergerät 111 übertragen.
-
In Schritt 202 überprüft das koordinierende Steuergerät 111, ob Bedingungen für die Durchführung der Programmierungen erfüllt sind. Beispielsweise überprüft das koordinierende Steuergerät 111 dabei einerseits, ob sämtliche für die Programmierung benötigten Programmcodes von dem Server 140 übermittelt wurden und ob Softwareversionen der Programmcodes für die einzelnen Steuergeräte 112, 113 und 114 übereinstimmen.
-
Weiterhin überprüft das koordinierende Steuergerät 111 in Schritt 203, ob sich das Kraftfahrzeug 100 in einem sicheren Zustand befindet, z.B. im Stillstand befindet, in welchem die Programmierungen gefahrlos durchgeführt werden können. Ebenso wird von dem koordinierenden Steuergerät 111 in Schritt 203 überprüft, ob ausreichend Energie vorhanden ist, um die Programmierungen vollständig durchzuführen. Beispielsweise kann zu diesem Zweck ein Ladezustand einer Kraftfahrzeugbatterie überprüft werden.
-
Wenn all diese Bedingungen erfüllt sind, startet das koordinierende Steuergerät 111 in Schritt 203 die parallelen Programmierungen. Beispielsweise kann das koordinierende Steuergerät 111 die Programmierungen der einzelnen Steuergeräte 112, 113, 114 selbst durchführen, z.B. durch Übermittlung von Anweisungen gemäß dem sog. UDS-Protokoll (Unified Diagnostic Services). Das koordinierende Steuergerät 111 kann die einzelnen Steuergeräte 112, 113, 114 auch autorisieren, dass diese ihre jeweilige Programmierung eigenständig durchführen.
-
Während die Programmierungen durchgeführt werden, überprüft das koordinierende Steuergerät 111 in Schritt 204 einerseits, ob die Bedingungen aus Schritt 202 nach wie vor erfüllt sind, und andererseits, ob die Programmierungen erfolgreich durchgeführt werden.
-
Wenn die Bedingungen weiterhin erfüllt sind und alle Programmierungen fehlerfrei durchgeführt wurden, stehen die Steuergeräte 112, 113, 114 mit den aktualisierten Programmcodes in Schritt 205 wieder für den regulären Betrieb des Kraftfahrzeugs zur Verfügung.
-
Wenn jedoch die in Schritt 204 überprüften Bedingungen nicht mehr erfüllt sind, beispielsweise weil das Kraftfahrzeug den sicheren Zustand verlässt, etwa weil der Fahrer mit dem Kraftfahrzeug aus dem Stillstand losfahren möchte, müssen die Programmierungen abgebrochen werden. Es kann beispielsweis auch der Fall eintreten, dass zwar die Bedingen weiterhin erfüllt sind, aber die Programmierung der Steuergeräte 112, 113, 114 aufgrund eines Fehlers dennoch nicht erfolgreich durchgeführt werden kann.
-
Wenn die Programmierung von wenigstens einem der Steuergeräte 112, 113, 114 nicht erfolgreich durchgeführt wurde, stellt dies einen Fehlerfall dar, der dazu führen kann, dass Fahrzeugfunktionen nicht mehr korrekt durchgeführt werden kann. Beispielsweise kann in diesem Fall der Abstandsregeltempomat, für welchen eine Interaktion der Steuergeräte 112, 113 und 114 erforderlich ist, nicht mehr fehlerfrei ausgeführt werden.
-
Wenn das koordinierende Steuergerät 111 in Schritt 204 daher feststellt, dass die Programmierung von wenigstens einem der Steuergeräte 112, 113, 114 nicht erfolgreich durchgeführt wurde, führt das koordinierende Steuergerät 111 eine Maßnahme durch, um diesen Fehlerfall sicher kontrollieren zu können.
-
Zu diesem Zweck informiert das das koordinierende Steuergerät 111 in Schritt 206 das Benachrichtigung-Steuergerät 115 über diesen Fehlerfall. Alternativ kann das Benachrichtigung-Steuergerät 115 in Schritt 206 auch durch dasjenige Steuergerät bzw. diejenigen Steuergeräte, dessen bzw. deren Programmierung nicht erfolgreich durchgeführt werden konnte, selbst informiert werden.
-
In Schritt 207 gibt das Benachrichtigung-Steuergerät 115 eine entsprechende Nachricht über das Display 120 an den Fahrer aus, mittels welcher der Fahrer über den Fehlerzahl informiert wird und dass der Abstandsregeltempomat derzeit nicht mehr fehlerfrei funktioniert. Insbesondere wird der Fahrer durch die Benachrichtigung angewiesen, dass er den Abstandsregeltempomat derzeit nicht mehr verwenden soll.
-
Das koordinierende Steuergerät 111 wiederholt die nicht erfolgreich durchgeführte Programmierung der entsprechenden Steuergeräte zu einem späteren Zeitpunkt gemäß Schritt 208. Insbesondere überprüft das Steuergerät zu diesem Zweck analog zu Schritt 202, ob erneut die entsprechenden Bedingungen erfüllt sind, insbesondere ob sich das Kraftfahrzeug in dem sicheren Zustand befindet, und führt die fehlerhafte Programmierung erneut durch, sobald dies der Fall ist.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
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.
-
Zitierte Nicht-Patentliteratur
-