-
Die Erfindung betrifft ein Verfahren zur Programmierung eines in einem Kraftfahrzeug angeordneten Steuergeräts.
-
Moderne Kraftfahrzeuge verfügen in der Regel über eine Vielzahl von Steuergeräten.
-
Veränderte Anforderungen und/oder Verbesserungen machen gelegentlich eine Programmierung eines bereits in einem Kraftfahrzeug verbauten Steuergeräts erforderlich. Die Bereitstellung von extern zugänglichen Datenschnittstellen zur Neuprogrammierung für jedes einzelne Steuergerät wäre höchst unwirtschaftlich. Die Bereitstellung so genannter Programmier-Gateways und/oder von Programmier-Applikationen bei Diagnose-Gateways bindet Ressourcen.
-
DE 102 37 715 A1 offenbart eine Vorrichtung zum Zugriff auf ein Fahrzeugsteuersystem über eine drahtlose Verbindung. Die Vorrichtung weist eine Gateway-Einheit, die in dem Fahrzeug angebracht ist, sowie eine Steuereinheit auf, die im Fahrzeug angeordnet und mit der Gateway-Einheit verbunden ist. Die Gateway-Einheit kann über eine Funkverbindung frei konfiguriert werden und kann beispielsweise zum Software-Download in andere Steuergeräte dienen.
-
WO 2007 / 078 943 A2 offenbart ein System zum Programmieren eines eingebetteten Systems, das in einem Fahrzeug angeordnet ist. Das System weist einen externen Programmierer und eine Steuereinheit auf, die ebenfalls in dem Fahrzeug angeordnet ist. Die Steuereinheit ist dazu ausgebildet, sowohl mit dem eingebetteten System als auch dem externen Programmierer zu kommunizieren. Von dem externen Programmierer kann Softwarecode an die Steuereinheit gesendet werden, wobei der Softwarecode durch die Steuereinheit ausführbar ist, um das eingebettete System zu programmieren.
-
Es ist eine Aufgabe der Erfindung, ein einfaches und wirtschaftliches Verfahren zur Programmierung eines in einem Kraftfahrzeug angeordneten Steuergeräts zu schaffen.
-
Gelöst wird diese Aufgabe durch ein Verfahren gemäß Anspruch 1. Vorteilhafte Ausführungsformen und Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen.
-
Demgemäß wird zunächst ein ebenfalls in dem Kraftfahrzeug angeordnetes Gateway bereitgestellt, welches über eine erste Busverbindung mit einer Datenschnittstelle des Kraftfahrzeugs verbunden ist und welches über eine zweite Busverbindung mit dem Steuergerät verbunden ist. Das Gateway wird also in an sich bekannter Weise zwischen Datenschnittstelle und Steuergerät geschaltet.
-
Außerhalb des Fahrzeugs wird ein über die Datenschnittstelle, die insbesondere als (vorzugsweise genormte) Diagnoseschnittstelle des Kraftfahrzeug ausgebildet sein kann, und die erste Busverbindung mit dem Gateway verbindbares Programmiergerät bereitgestellt. Bei dem Programmiergerät handelt es sich vorzugsweise um einen so genannten Diagnosetester.
-
Bei dem Programmiergerät wird eine Update-Applikation bereitgestellt. Unter einer Update-Applikation ist dabei ein Computerprogramm zu verstehen, mittels welchen eine Recheneinheit in der Lage ist, ein mit ihr verbundenes Steuergerät neu zu programmieren. Vorzugsweise beinhaltet die Update-Applikation eine auf das zu programmierende Steuergerät zu übertragende steuergerätespezifische Software sowie Programmierabläufe zur Umsetzung der Übertragung. Die Update-Applikation ist vorzugsweise spezifisch für eine Ausführung durch das Gateway ausgelegt, z.B. entsprechend kompiliert.
-
Das Programmiergerät wird mit der Datenschnittstelle verbunden und die Update-Applikation wird von dem Programmiergerät über die Datenschnittstelle und die erste Busverbindung zu dem Gateway übertragen.
-
Anschließend wird die Update-Applikation durch das Gateway ausgeführt. Durch die Ausführung wird das Steuergerät von dem Gateway über die zweite Busverbindung programmiert. Das Gateway fungiert gewissermaßen als Programmiereinheit des Steuergeräts.
-
Nach der Ausführung der Update-Applikation oder als letzter Schritt der Ausführung der Update-Applikation wird die Update-Applikation aus dem Gateway gelöscht.
-
Vorzugsweise werden die Verfahrensschritte gemäß Anspruch 1 in der Reihenfolge ihrer Nennung im Anspruch ausgeführt.
-
Durch die Erfindung wird eine dauerhafte Ressourcenbindung im Gateway vermieden. Das erfindungsgemäße Verfahren ist somit auch für Gateways mit wenig Speicherplatz anwendbar. Das Gateway wird nur temporär und/oder bei Bedarf als Programmiereinheit genutzt. Dadurch erübrigt sich das kostspielige und aufwändige dauerhafte Vorhalten der Ressourcen für eine mögliche Programmierung. Dauerhafte Modifikationen am Gateway, etwa zur Bereitstellung geänderter Programmierfunktionalitäten, werden durch die Erfindung vermieden, wodurch der Absicherungsaufwand verringert wird. Die Erfindung sogar zur kostengünstigen Durchführung einer so genannten technischen Aktion im Feld genutzt werden, ohne dass das Gateway im Vorfeld hierfür vorbereitet sein muss. Schließlich kann das Gateway durch die Erfindung nachträglich zu Programmierzwecken nutzbar gemacht werden.
-
Auf die Implementierung des so genannten Bootloaders des Steuergeräts nimmt die Erfindung keinen Einfluss. Ein Steuergerät kann somit auf unterschiedliche Arten und Weisen ohne Änderung programmiert werden. Ein Steuergerät lässt sich somit beispielsweise mittels derselben Schnittstellen und desselben Protokolls wahlweise „direkt“ (d.h. unmittelbar verbunden) mittels eines Diagnosetesters programmieren, „indirekt“ mittels eines über ein Diagnosegateway verbundenen Diagnosetesters programmieren oder auch erfindungsgemäß aktiv durch das temporär als Programmiereinheit fungierende Gateway programmieren.
-
Die Erfindung überrascht den Fachmann angesichts des Stands der Technik insoweit, als der Programmieraufwand und die Anzahl erforderlicher Schritte gegenüber dem Stand der Technik gesteigert wird. Schließlich ist bei der Erfindung zusätzlich zur eigentlichen Programmierung des Steuergeräts zumindest eine Programmierung (gegebenenfalls sogar zwei Programmierungen, s.u.) des Gateways erforderlich. Im Hinblick auf die Ressourcenrestriktionen im Gateway bietet die Erfindung jedoch eine kostenoptimale Möglichkeit, das Gateway nur temporär zur Programmierung zu nutzen.
-
Gemäß einer bevorzugten Ausführungsform der Erfindung wird vor dem Übertragen der Update-Applikation von dem Programmiergerät zu dem Gateway zumindest eine zuvor in einem Datenspeicher des Gateways abgelegte Applikation aus dem Datenspeicher gelöscht, um Speicherplatz in dem Datenspeicher freizugeben. Der Datenspeicher, in dem die Update-Applikation bei dem Gateway abgelegt wird, kann somit besonders sparsam konzipiert bzw. dimensioniert werden. Das Löschen der zuvor in dem Datenspeicher des Gateways abgelegten Applikation kann beispielsweise durch das Programmiergerät über die Datenschnittstelle und die erste Busverbindung vorgenommen bzw. ausgelöst werden.
-
Eine Sicherung der Applikation ist in der Regel nicht erforderlich. Vorzugsweise hat nämlich das Programmiergerät, z.B. ein als Industrie-PC mit Zugriff auf einen großen Datenspeicher (z.B. auf Festplatte, DVD oder per Internet) ausgeführter Diagnosetester, Zugriff auf eine Datenbank mit vorzugsweise den aktuellsten Applikationen für das jeweilige Kraftfahrzeug, z.B. unmittelbar bereitgsestellt von einer Entwicklungsabteilung.
-
Soll dennoch eine Sicherung vorgenommen werden, so kann dies folgendermaßen geschehen: Die zuvor in dem Datenspeicher des Gateways abgelegte Applikation kann vor ihrem Löschen gesichert und nach dem Löschen der Update-Applikation wiederhergestellt werden. Dies kann auf vielfältige Art und Weise erfolgen. Ein stringenter und sicherer Verfahrensablauf ergibt sich bei einer Sicherung der Applikation im Programmiergerät. Geringerer Datenverkehr ergibt sich bei einer Verlagerung der Applikation zu Sicherungszwecken innerhalb des Gateways, etwa in einen weiteren Datenspeicher des Gateways oder, gegebenenfalls in komprimierter Form, an einen anderen Speicherort desselben Datenspeichers. Vorteilhaft kann auch eine Auslagerung zu Sicherungszwecken auf ein anderes Gateway oder ein anderes Steuergerät des Kraftfahrzeugs sein.
-
Das Löschen der Update-Applikation aus dem Gateway kann, insbesondere nach dessen Ausführung, durch das Programmiergerät über die Datenschnittstelle und die erste Busverbindung vorgenommen bzw. ausgelöst werden. Alternativ kann das Löschen selbsttätig, gewissermaßen eine Selbstlöschung als letzter Schritt der Ausführung, vorgesehen sein.
-
Erfolgt das Löschen der Update-Applikation im Gateway ohne Zutun des Programmiergeräts und werden auch andere Interaktionen des Gateways mit dem Programmiergerät während der Ausführung der Update-Applikation vermieden, kann das Programmiergerät während der Ausführung der Update-Applikation von der Datenschnittstelle getrennt werden, ohne die Programmierung des Steuergeräts zu beeinträchtigen. Das Programmiergerät wird somit nur für einen verhältnismäßig geringen Zeitraum benötigt.
-
Wurde eine zuvor in dem Datenspeicher des Gateways abgelegte Applikation im Programmiergerät gesichert oder auch gelöscht, so ist die gesicherte Applikation - oder eine gegebenenfalls aktualisierte Ersatzapplikation - vorzugsweise (auch nach einer Trennung des Programmiergeräts von der Datenschnittstelle während der Ausführung der Update-Applikation) zu einem späteren Zeitpunkt und nach einer erneuten Anbindung des Programmiergeräts an die Datenschnittstelle ins Gateway zurückspielbar.
-
Vorzugsweise sind mehrere Steuergeräte des Kraftfahrzeugs durch eine einzige Update-Applikation und ein einziges Gateway programmierbar. Dazu ist vorzugsweise das Gateway über die zweite Busverbindung und/oder eine weitere Busverbindung mit zumindest einem weiteren Steuergerät verbunden und es wird vorzugsweise durch Ausführen der Update-Applikation auch das zumindest eine weitere Steuergerät programmiert.
-
Ein der Erfindung zugrunde liegendes Prinzip, nämlich die temporäre Programmierung des Gateways, kann alternativ auch genutzt werden, um temporär eine Diagnosegateway-Applikation (statt einer Update-Applikation für das Steuergerät) in das Gateway einzuspielen. Dies resultiert in dem folgenden Verfahren:
- Verfahren zur Programmierung eines in einem Kraftfahrzeug angeordneten Steuergeräts mit den Schritten:
- • Bereitstellen eines ebenfalls in dem Kraftfahrzeug angeordneten Gateways, welches über eine erste Busverbindung mit einer Datenschnittstelle des Kraftfahrzeugs verbunden ist und welches über eine zweite Busverbindung mit dem Steuergerät verbunden ist,
- • Bereitstellen eines über die Datenschnittstelle und die erste Busverbindung mit dem Gateway verbindbaren Programmiergeräts,
- • Bereitstellen einer Update-Applikation und einer Diagnosegateway-Applikation bei dem Programmiergerät,
- • Verbinden des Programmiergeräts mit der Datenschnittstelle,
- • Übertragen der Diagnosegateway-Applikation von dem Programmiergerät über die Datenschnittstelle und die erste Busverbindung zu dem Gateway,
- • Ausführen der Diagnosegateway-Applikation durch das Gateway,
- • Ausführen der Update-Applikation durch das Programmiergerät, um das Steuergerät unter Vermittlung durch die auf dem Gateway ausgeführte Diagnosegateway-Applikation über die Datenschnittstelle, die erste Busverbindung, das Gateway und die zweite Busverbindung zu programmieren,
- • Löschen der Diagnosegateway-Applikation im Gateway.
-
Im Folgenden wird anhand der einzigen beigefügten Zeichnung ein bevorzugtes Ausführungsbeispiel der Erfindung beschrieben. Daraus ergeben sich weitere Details, bevorzugte Ausführungsformen und Weiterbildungen der Erfindung. Im Einzelnen zeigen schematisch
- 1 den Signalfluss bei der Programmierung eines Steuergeräts nach einem Verfahren gemäß dem Stand der Technik,
- 2 einen beispielhaften Signalfluss bei der erfindungsgemäßen Programmierung eines Steuergeräts.
-
Ausgangssituation für die nachfolgenden Ausführungen ist die Aufgabenstellung, ein in einem Kraftfahrzeug verbautes Steuergerät 3 neu zu programmieren. Die Programmierung soll unter Zuhilfenahme eines fahrzeugexternen Diagnosegeräts 1 (im folgenden Tester genannt) vorgenommen werden.
-
Auf Grund der Komplexität heutiger Bordnetze ist der Tester 1 zur Programmierung in der Regel nicht direkt mit dem zu programmierenden Steuergerät verbunden, sondern nur über die Zwischenschaltung eines oder mehrerer Gateway-Steuergeräte 2 (im Folgenden kurz Gateway genannt). 1 veranschaulicht die Konfiguration.
-
Hierdurch entsteht die Problematik, dass der Tester 1 nur unter Vermittlung eines Gateways 2 auf das zu programmierende Steuergerät 3 zugreifen kann. Das Gateway 2 fungiert dabei lediglich als Vermittler, der Nachrichten von einem ersten Bus B1 auf einen zweiten Bus B2 (und umgekehrt) „kopiert“ (vgl. 1). Dieser Vorgang der Nachrichtenvermittlung durch das Gateway 2 ist generisch (d.h. unabhängig vom Programmierablauf).
-
Zur Steuerung der Programmierung wird ein Diagnoseprogramm (im folgenden Update-Applikation genannt) auf dem Tester 1 genutzt, welches die aktualisierte Software nach Weiterleitung durch das Gateway 2 in das Steuergerät 3 programmiert. Diese Update-Applikation verwendet im vorliegenden Beispiel die Standards [HIS 1], [ISO14229-1], [ISO15765-3].
-
Die in 1 dargestellten Geräte umfassen (unter anderem) die folgenden Software-Komponenten: der Tester 1 umfasst die genannte Update-Applikation 11; das Gateway 2 umfasst eine Diagnosegateway-Applikation 21, einen Bootloader 22 und zumindest eine weitere Applikation 23 mit zugehörigen Daten (ebenfalls durch Block 23 repräsentiert); das Steuergerät 3 umfasst einen Bootloader 31, eine Applikation 32 und Daten/Parameter 33.
-
Die Pfeile B1 und B2 in 1 veranschaulichen die physikalische Busverbindung zwischen Tester 1 und Gateway 2 bzw. zwischen Gateway 2 und Steuergerät 3. Der Pfeil 12 veranschaulicht den Zugriff der Update-Applikation 11 auf die Diagnosegateway-Applikation 21. Der Pfeil 24 veranschaulicht den Zugriff der Diagnosegateway-Applikation 21 auf den Bootloader 31 des Steuergeräts 3.
-
Die an der Programmierung beteiligten Software-Komponenten sind in 1 schraffiert dargestellt (alle außer Komponenten 22 und 23).
-
Damit das Gateway 2 die notwendige Vermittlungsrolle gemäß der oben beschriebenen und in 1 dargestellten aufwandsintensiven Lösung wahrnehmen kann, muss dauerhaft eine Vermittlungssoftware im Gateway 2 gespeichert bleiben (Diagnosegateway-Applikation 21), welche dauerhaft Ressourcen im Gateway 2 in Form von Speicherplatz und CPU-Leistung bindet. Diese dauerhafte Ressourcenbindung im Gateway 2 verursacht hohe Kosten, obwohl die Programmierung nur selten genutzt wird (z.B. in der Entwicklung oder beim Service des Fahrzeugs).
-
Eine bekannte Alternative zu diesem Stand der Technik besteht darin, die Vorhaltung einer Option zum Software-Update von Steuergeräten aus Kostengründen komplett entfallen zu lassen. Dies birgt mittel- und langfristig aber das Risiko, dass im Fehlerfall hohe Gewährleistungskosten entstehen oder ein Steuergeräteaustausch erforderlich wird.
-
Durch die Erfindung wird die kostenrelevante Ressourcenbindung im Gateway in Form von Speicherplatz und CPU-Kapazität ungleich eleganter vermieden. Ziel der Erfindung ist die ressourcenoptimierte Programmierung von Steuergeräten im Fahrzeug für Steuergeräte mit programmierbarem Speicher.
-
2 zeigt einen beispielhaften Signalfluss bei der erfindungsgemäßen Programmierung eines oder mehrerer assoziierter Steuergeräte.
-
Die in 2 dargestellten Geräte umfassen dabei (unter anderem) die folgenden Software-Komponenten: der Tester 1 umfasst eine (auf das Gateway 2 bezogene) Gateway-Update-Applikation 111; das Gateway 2 umfasst eine (auf das Steuergerät 3 bezogene) Update-Applikation 121, einen Bootloader 122 und zumindest eine weitere Applikation 123 mit zugehörigen Daten (ebenfalls durch Block 123 repräsentiert); das Steuergerät 3 umfasst einen Bootloader 131, eine Applikation 132 und Daten/Parameter 133.
-
Bei dieser Lösung wird - nur temporär - eine (auf das Steuergerät 3 bezogene) Update-Applikation 121 in das Gateway 2 eingebracht. Die Update-Applikation 121 beinhaltet die Software und die Programmierfunktionalität für das/die assoziierte(n) Steuergerät(e).
-
Die (auf das Steuergerät 3 bezogene) Update-Applikation 121 läuft (d.h. wird ausgeführt) im Gegensatz zum Stand der Technik nicht auf dem Tester 1, sondern auf dem Gateway 2. Das Gateway 2 übernimmt gewissermaßen die Rolle eines Testers bzw. fungiert als Programmiereinheit für das Steuergerät.
-
Die dauerhafte Speicherung der Update-Applikation 121 im Gateway 2 kann dadurch vermieden werden, dass die Update-Applikation 121 nur temporär, vorzugsweise erst kurz vor der Programmierung des Steuergerätes 3, vom tatsächlichen Tester 1 mittels konventioneller Programmiertechniken (vgl. Gateway-Update-Applikation 111) in das Gateway 2 eingebracht wird. Nach der Programmierung des Steuergerätes 3 wird die Update-Applikation 121 wieder vom Gateway 2 gelöscht, vorzugsweise erneut durch den Tester 1.
-
Es wird also eine Folge von mehreren Programmierschritten genutzt, um die dauerhafte Ressourcenbindung im Gateway zu vermeiden. In der Regel werden dies drei Programmierschritte sein, nämlich: zweimaliges Programmieren des Gateways 2, um (zwischen diesen beiden Programmierungen des Gateways) ein einziges Mal das Steuergerät 3 zu programmieren.
-
Auch in 2 veranschaulichen die Pfeile B1 und B2 die physikalische Busverbindung zwischen Tester 1 und Gateway 2 bzw. zwischen Gateway 2 und Steuergerät 3. Der Pfeil 112 veranschaulicht den Zugriff der Gateway-Update-Applikation 111 auf den Bootloader 122 des Gateways 2. Der Pfeil 124 veranschaulicht das Update des Gateways, bei welchem die Update-Applikation 121 ins Gateway 2 eingespielt wird. Der Pfeil 125 veranschaulicht den Zugriff der dann im Gateway 2 lauffähigen Update-Applikation 121 auf den Bootloader 131 des Steuergeräts 3.
-
Beim Einspielen der Update-Applikation 121 ins Gateway 2 wird im vorliegenden Beispiel eine zuvor im entsprechenden Speicherbereich des Gateways 2 enthaltene Applikationssoftware überschrieben. Alternativ könnte die zuvor im entsprechenden Speicherbereich des Gateways 2 enthaltene Applikationssoftware auch bereits vorab gelöscht werden. Eine andere im Gateway 2 gespeicherte Applikation 123 (samt Daten) bleibt im vorliegenden Beispiel hingegen unberührt.
-
Der oben bereits umrissene Verfahrensablauf umfasst die folgenden Schritte:
- (a) (Optional) Löschen der Applikationssoftware im Gateway, um freien Speicher auf dem Gateway zu erhalten.
- (b) Einspielen der Update-Applikation 121 in das Gateway (vgl. Pfeile 112 und 124 in 2). Die Update-Applikation 121 beinhaltet die auf das Steuergerät 3 zu übertragende steuergerätespezifische Software sowie die „eigentliche“ Update-Applikation (d.h. die Programmierabläufe zur Umsetzung der Übertragung).
- (c) Starten der Update-Applikation 121 im Gateway 2.
- (d) Die Update-Applikation 121 programmiert das Steuergerät 3 sowie gegebenenfalls weitere assoziierte Steuergeräte (Pfeil 125 in 2)
- (e) Nach der Programmierung des Steuergerätes 3 (bzw. aller assoziierten Steuergeräte) durch das Gateway 2 wird die Update-Applikation 121 im Gateway 2 durch den Tester 1 gelöscht.
- (f) (Optional) Wiederherstellen der ursprünglichen Applikationssoftware im Gateway 2, sofern bzw. soweit diese in Schritt (a) gelöscht worden ist.
-
Ein wesentlicher Unterschied des Verfahrens gemäß 2 zum Stand der Technik gemäß 1 liegt darin, dass beim Stand der Technik gemäß 1 die (auf das Steuergerät 3 bezogene) Update-Applikation 11 im Tester 1 läuft, während beim Verfahren gemäß 2 die (auf das Steuergerät 3 bezogene) Update-Applikation 121 auf dem Gateway 2 läuft. Das Gateway 2 übernimmt somit gewissermaßen temporär die Rolle eines direkt angebundenen Programmiersystems für das Steuergerät. Wenn beispielsweise die Update-Applikation 121 auf das Gateway 2 programmiert worden ist, d.h. ins Gateway 2 eingespielt worden ist, dann ist der Tester 1 am eigentlichen Programmierablauf des Steuergerätes (vgl. Pfeil 125 in 2) nicht direkt beteiligt.