-
Die vorliegende Erfindung betrifft ein Verfahren zur Berechnung eines Programmierablaufs bzw. Programmierverlaufs für mindestens ein Steuergerät in einem Fahrzeug sowie ein entsprechendes Programmierwerkzeug zur Programmierung von Steuergeräten eines jeweiligen Fahrzeugs.
-
Steuergeräte zum Betrieb von Fahrzeugen benötigen für ihren Betrieb geeignete Software, die ggf. verändert, d. h. aktualisiert werden muss, um eine Funktion eines jeweiligen Steuergeräts zu verbessern oder das Steuergerät an veränderte Bedingungen anzupassen. Es ist für eine solche Aktualisierung üblich, in dem jeweiligen Steuergerät mittels Flashprogrammierung neue Software zu hinterlegen.
-
Unter Flashprogrammierung versteht man dabei einen Vorgang zum Beschreiben eines Flashspeichers bzw. EEPROM in einem Steuergerät. In der Regel ist während eines solchen Schreibvorgangs bzw. "Flashens" das jeweilige Steuergerät nicht betriebsbereit.
-
Da die zunehmende Komplexität von Fahrzeugen eine immer weiter steigende Anzahl von Steuergeräten bedingt, kann eine Aktualisierung eines jeweiligen Steuergeräts ggf. zu Wechselwirkungen mit weiteren Steuergeräten führen und dadurch zu Beeinträchtigungen im Betrieb des gesamten Fahrzeugs beitragen. Bei einer sequenziellen, d. h. zeitlich aufeinander folgenden Aktualisierung von verschiedenen Steuergeräten kann, je nach Anzahl der verwendeten Steuergeräte, ein erheblicher Zeitraum erforderlich sein, um alle Steuergeräte zu aktualisieren. Durch einen geeigneten Programmierablauf können derartige Beeinträchtigungen reduziert bzw. vermieden werden.
-
Vor diesem Hintergrund wird ein Verfahren zum Berechnen eines parallelen Programmierablaufs von zumindest zwei Steuergeräten in einem Fahrzeug mit den Merkmalen des unabhängigen Patentanspruchs 1 vorgestellt. Weitere Ausgestaltungen sind den entsprechenden Unteransprüchen zu entnehmen. Ferner wird ein Programmierwerkzeug mit den Merkmalen des unabhängigen Patentanspruchs 11 bereitgestellt.
-
Unter einem Programmierablauf ist im Kontext der vorgestellten Erfindung eine zeitliche Reihenfolge von Flashprogrammierungen bzw. Programmierungen von Flashspeichern von Steuergeräten zu verstehen. Bei einer Flashprogrammierung wird entsprechend der Flashspeicher, d. h. ein EEPROM eines Steuergeräts überschrieben.
-
Das erfindungsgemäße Verfahren dient zum Berechnen eines Programmierablaufs von mindestens einem Steuergerät in einem Fahrzeug, wobei der Programmierablauf in Abhängigkeit einer Topologie des Fahrzeugs und den spezifischen Eigenschaften der Steuergeräte berechnet wird.
-
Um bei einem Aktualisierungsvorgang bzw. bei einem "Flashen" von Steuergeräten in einem Fahrzeug jeweilige Betriebsausfälle zu reduzieren und dadurch eine Effizienz des Aktualisierungsvorgangs zu steigern, ist vorgesehen, dass eine möglichst hohe Anzahl von Steuergeräten möglichst schnell aktualisiert wird. Dazu ist es vorteilhaft, mehrere Steuergeräte parallel, d. h. gleichzeitig zu aktualisieren.
-
Aufgrund von Restriktionen durch Komponenten eines Netzwerks eines Fahrzeugs, wie bspw. Gateways, Steuergeräte oder Bussysteme, müssen für ein paralleles Aktualisieren der Steuergeräte jedoch Randbedingungen bezüglich Reihenfolge und maximaler Belastbarkeit der Steuergeräte bzw. jeweiliger Komponenten der Gateways bzw. Bussysteme beachtet werden. So kann ein Gateway bspw. mehrere Busse mit jeweiligen von den Bussen mit Daten zu versorgenden Steuergeräten umfassen. Da die Busse ferner von unterschiedlicher Typologie sein können, wie bspw. ein Feldbussystem Flexray, das einen etablierten Feldbusstandard darstellt, oder ein Komfort-CAN Bussystem, durch das verschiedene Geschwindigkeiten in einer Datenübertragung ermöglicht werden, müssen für einen Aktualisierungsvorgang der an den jeweiligen Bussen angeschlossenen Steuergeräte, jeweilige Eigenschaften der jeweiligen Busse berücksichtigt werden. Ferner müssen auch Eigenschaften von jeweiligen anderen Bussen bzw. Bussystemen berücksichtigt werden, um eine Wechselwirkung verschiedener Bussysteme untereinander in eine Berechnung eines Programmierablaufs mit einzubeziehen.
-
Neben der jeweiligen Typologie der Datenversorgung durch jeweilige Busse bzw. Bussysteme sind für einen effizienten Aktualisierungsvorgang auch jeweilige Aktualisierungszeiten bzw. "Flashzeiten", die eine Dauer eines Aktualisierungsvorgangs für ein jeweiliges Steuergerät angeben, relevant.
-
Unter einem Bus bzw. Datenbus oder Bussystem ist im Kontext der vorgestellten Erfindung eine Leitung zum Übertragen von Daten zwischen Komponenten einer Topologie eines Fahrzeugs zu verstehen. Ein Bussystem bezeichnet entsprechend eine Mehrzahl von Bussen.
-
Unter einer Topologie ist im Kontext der vorgestellten Erfindung eine Struktur von Verbindungen zwischen verschiedenen Komponenten mindestens eines Netzes von Steuergeräten in einem Fahrzeug zu verstehen. Da ein Steuergerät immer mindestens ein Modul zur Ausführung von Rechenoperationen umfasst, können Netze von Steuergeräten auch als Rechnernetze bezeichnet werden.
-
Unter einem Gateway ist im Kontext der vorgestellten Erfindung eine Vorrichtung zur Verbindung von verschiedenen Rechnernetzen zu verstehen, wobei die verschiedenen Rechnernetze bzw. Netze von Steuergeräten auf unterschiedlichen Netzwerkprotokollen basieren können.
-
Es ist erfindungsgemäß vorgesehen, jeweilige Randbedingungen, d. h. Restriktionen und/oder Kennwerte von Gateways und/oder Kennwerte von Bussystemen und/oder Kennwerte von Sequenzabhängigkeiten, d. h. von spezifischen Eigenschaften einer Anordnung von Steuergeräten, und/oder Priorisierungen, d. h. von bevorzugt zu programmierenden Steuergeräten, und/oder jeweilige Aktualisierungszeiten bei einer Erstellung eines Ablaufplans zur Aktualisierung eines Steuergeräts bzw. Systems aus einer Anzahl von Steuergeräten zu berücksichtigen.
-
Durch Berücksichtigung von für eine Flashprogrammierung relevanten Eigenschaften einer Topologie eines jeweiligen Fahrzeugs wird ein Programmierablauf für eine Aktualisierung der gesamten Topologie bzw. von Teilen der Topologie erstellt, bei dem eine möglichst hohe Anzahl von Aktualisierungsvorgängen jeweiliger Steuergeräte parallel verläuft, ohne ggf. vernetzte und nicht zu aktualisierende Steuergeräte in ihrer Funktion zu beeinflussen. So kann es bspw. für einen schnellen und sicheren Aktualisierungsvorgang vorteilhaft sein, jeweils ein Steuergerät pro Bussegment parallel zu aktualisieren, um die Kapazität des Segmentes nicht zu überlasten.
-
In einer weiteren möglichen Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, dass der Programmierablauf in einer Steuerdatei zur Steuerung des Programmierablaufs abgelegt wird.
-
Durch ein Wissen um die Topologie eines jeweiligen Fahrzeugs kann ein idealer Programmierablauf für einen Aktualisierungsvorgang berechnet und in einer Steuerdatei zur Steuerung des Programmierablaufs gespeichert werden. Eine derartige Steuerdatei kann bspw. bereits während eines jeweiligen Herstellungsprozesses eines jeweiligen Fahrzeugs angefertigt und in einem Archiv oder dem Fahrzeug selbst hinterlegt werden.
-
In einer weiteren möglichen Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, dass die Topologie als maschinenlesbare Datei zur Verfügung gestellt wird.
-
Da die Topologie eines jeweiligen Fahrzeugs in der Regel mittels eines Designwerkzeugs von einem Fachmann angefertigt wird, ist es für eine Durchführung des erfindungsgemäßen Verfahrens vorteilhaft, wenn die durch den Fachmann angefertigte Topologie in eine maschinenlesbare Datei umgewandelt und dadurch für eine automatische Verarbeitung zugänglich gemacht wird. Dadurch kann eine erfindungsgemäße Berechnung des Programmierablaufs automatisiert ablaufen.
-
In einer weiteren möglichen Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, dass programmierrelevante Kennwerte zu allen Elementen der folgenden Liste an Elementen der Topologie angegeben werden: Gateways, Bussysteme, Sequenzabhängigkeiten, Priorisierungen und Steuergeräte.
-
Programmierrelevante Kennwerte können dabei bspw. zur Verfügung stehende Speichervolumina, Rechenkapazitäten, Datenüberübertragungsraten oder jede weitere technisch relevante Eigenschaft eines der voranstehenden Elemente sein. Unter Berücksichtigung eines Wissens über Kennwerte zu bspw. Rechenkapazität und/oder Datenübertragungsraten eines zu programmierenden Steuergeräts, ist es möglich, dass eine für eine Aktualisierung des Steuergeräts benötigte Zeit und die Busauslastung bei der Programmierung abgeschätzt werden kann. Aufgrund der Abschätzung von bspw. einer Dauer des Programmiervorgangs der beanspruchten Buskapazität sowie der dadurch bedingten Wechselwirkungen mit weiteren Komponenten des Fahrzeugs kann ein geeigneter Zeitpunkt für die Aktualisierung geschätzt bzw. berechnet werden, bei dem ggf. auftretende Funktionsausfälle minimiert sind und die Gesamtdauer des Programmiervorgangs minimiert wird.
-
In einer weiteren möglichen Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, dass für einen jeweiligen, bspw. durch einen Techniker bereitzustellenden Programmierauftrag ein jeweiliger Programmierablauf berechnet wird.
-
Anforderungen verschiedener Aktualisierungsvorgänge können sich voneinander unterscheiden, wodurch sich auch jeweilige abzuarbeitende Programmieraufträge unterscheiden. Entsprechend ist es sinnvoll, für einen jeweiligen Programmierauftrag einen jeweiligen Programmierablauf, der zu einer möglichst schnellen Aktualisierung führt, zu erstellen, d. h. zu berechnen.
-
In einer weiteren möglichen Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, dass das Berechnen bzw. Erstellen des jeweiligen Programmierablaufs in Abhängigkeit von Fahrzeug-Diagnosedaten aus einer Fahrzeugdiagnoseschnittstelle erfolgt.
-
Eine Topologie eines jeweiligen Fahrzeugs kann sich bspw. durch Defekte von einzelnen Bauteilen ändern, wodurch eine Anpassung des Programmierablaufs erforderlich wird. Es ist daher vorgesehen, dass mittels einer geeigneten Fahrzeugdiagnoseschnittstelle, wie bspw. einer On-Board-Diagnose(OBD)-Schnittstelle, mittels derer fahrzeugspezifische Daten ausgelesen werden können, ein aktueller Zustand des jeweiligen Fahrzeugs erfasst und zur Berechnung des Programmierablaufs zur Verfügung gestellt wird. Dabei können die Fahrzeug-Diagnosedaten automatisch mittels geeigneter Protokolle oder durch einen Fachmann zur Verfügung gestellt werden.
-
Weiterhin ist es denkbar, dass anhand der Fahrzeug-Diagnosedaten ein geeigneter Aktualisierungszeitraum berechnet wird, bei welchem ein durch den Aktualisierungsvorgang bedingter Funktionsausfall der jeweiligen Steuergeräte ein minimales Störpotential für einen jeweiligen Nutzer eines Fahrzeugs hat. Ferner ist denkbar, dass anhand der Fahrzeug-Diagnosedaten technische Eigenschaften von Komponenten des jeweiligen Fahrzeugs ermittelt werden, anhand derer ein Aktualisierungszeitpunkt bestimmt wird. Mittels von durch eine Fahrzeugdiagnoseschnittstelle ermittelten Daten kann eine aktuelle Topologie mit den spezifischen Steuergeräteeigenschaften eines jeweiligen Fahrzeugs bestimmt und entsprechende Modifikationen an dem jeweiligen Programmierablauf vorgenommen werden.
-
In einer weiteren möglichen Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, dass die Fahrzeug-Diagnosedaten über ein Datennetzwerk von dem jeweiligen zu programmierenden Fahrzeug ermittelt werden.
-
Durch Verwendung von Datennetzwerken, wie bspw. dem Internet, ist es möglich, eine aktuelle Topologie eines jeweiligen Fahrzeugs auf einem von dem jeweiligen Fahrzeug getrennten System, wie bspw. einem Computer zu erfassen, einen entsprechenden Programmierablauf bzw. Programmierablaufplan zu erstellen und den Programmierablauf bspw. einem Programmierwerkzeug zur Aktualisierung der Steuergeräte des jeweiligen Fahrzeugs zur Verfügung zu stellen.
-
In einer weiteren möglichen Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, dass die Fahrzeug-Diagnosedaten mittels einer drahtlosen Übertragungstechnik ermittelt werden.
-
Durch Verwendung einer drahtlosen Übertragungstechnik zur Ermittlung der Fahrzeug-Diagnosedaten, wie bspw. 3G oder LTE oder WLAN, ist es möglich, von einem zentralen System aus eine Anzahl von räumlich weit verteilten Fahrzeugen zu überwachen sowie an jeweiligen Topologien bzw. technischen Eigenschaften des jeweiligen Fahrzeugs entsprechende Programmierabläufe zu berechnen und ggf. auch durchzuführen.
-
In einer weiteren möglichen Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, dass der Programmierablauf auf ein Programmierwerkzeug zur Programmierung des mindestens einen Steuergeräts des Fahrzeugs übertragen wird.
-
Um bspw. einem Servicetechniker in einer Werkstatt eine Verwendung des erfindungsgemäßen Verfahrens zu ermöglichen und Aktualisierungsvorgänge dadurch zu verkürzen, ist vorgesehen, dass ein jeweiliger bspw. auf einem Computer erstellter oder in einem Archiv gelagerter Programmierablauf auf ein Programmierwerkzeug übertragen wird. Das Programmierwerkzeug ist mit einem zu aktualisierenden Fahrzeug verbindungsfähig, so dass ein entsprechend effizienter Aktualisierungsvorgang durch den Servicetechniker vollzogen werden kann.
-
In einer weiteren möglichen Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, dass die Programmierung eines jeweiligen Steuergeräts in einen von dem jeweiligen Steuergerät umfassten "Flashspeicher", in Abhängigkeit des berechneten Programmierablaufs, geschrieben wird.
-
Da Steuergeräte in der Regel mit einem "Flashspeicher" ausgerüstet sind und der "Flashspeicher" sich dadurch auszeichnet, dass er gegenüber traditionellen Speichermedien, wie bspw. Festplatten dauerhafter ist, erscheint es sinnvoll, jeweilige Aktualisierungsvorgänge bzw. Aktualisierungsdaten in einem ggf. vorhandenen "Flashspeicher" bzw. EEPROM eines jeweiligen Steuergeräts zu hinterlegen, d. h. zu speichern.
-
Ferner umfasst die vorliegende Erfindung ein Programmierwerkzeug zur Programmierung mindestens eines Steuergeräts in einem Fahrzeug, bei dem eine Abfolge der Programmierung durch eine in Abhängigkeit einer Topologie, in der auch steuergerätespezifische Eigenschaften hinterlegt sind, des Fahrzeugs zu ermittelnde Steuerdatei vorzugeben ist.
-
Das Programmierwerkzeug kann bspw. als Übertragungsmodul mit einem Computer oder in Form einer Konsole, die an das jeweilige Fahrzeug angeschlossen wird, ausgestaltet sein.
-
Vorteilhafterweise ist die Konsole mit einer Fahrzeugdiagnoseschnittstelle ausgestattet, so dass jeweilige Fahrzeug-Diagnosedaten für eine Berechnung eines Programmierablaufs erfasst werden können.
-
Es versteht sich, dass die voranstehend genannten 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.
-
Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
-
1 zeigt einen Auszug aus einer beispielhaften Topologie eines Fahrzeugs.
-
2 zeigt ein schematisches Beispiel für einen möglichen, nach einer Ausführungsform des erfindungsgemäßen Verfahrens berechneten Programmierablauf.
-
3 zeigt ein Beispiel für eine schematische Berechnung eines möglichen Programmierablaufs gemäß einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens.
-
4 zeigt ein Beispiel für einen Programmiervorgang eines Fahrzeugs mit einer Ausführungsform des erfindungsgemäßen Programmierwerkzeugs.
-
Der in 1 dargestellte Auszug einer Topologie eines Fahrzeugs zeigt ein Netzwerk 1 mit drei Bussystemen 3, 5, 7, wobei ein zentrales Gateway 9 über das Bussystem 3 mit einer Fahrzeugdiagnoseschnittstelle 11 und über Bussystem 5 mit einer Reihe von zur Steuerung von antriebsseitigen Komponenten vorgesehen Steuergeräten 13, 15, 17 verbunden ist, wobei Steuergerät 13 seinerseits mit einem Slave-Gerät 19 verbunden ist. Über das Bussystem 7 steht das Gateway 9 weiterhin in Verbindung mit einer Reihe an Steuergeräten 21, 23, die zur Steuerung von Computerfunktionalitäten dienen, wie bspw. dem Bordcomputer oder dem Kombiinstrument, die ihrerseits in Verbindung mit weiteren Slave-Geräten 25, 27, 29 stehen. Ein weiteres Slave-Gerät 31 ist direkt mit dem Gateway 9 verbunden.
-
Das in 2 gezeigte schematische Beispiel eines Programmierablaufs zeigt zeitlich aufeinanderfolgende sequenzielle und parallele Phasen 201, 202, 203 und 204. Während in der sequenziellen Phase 201 drei Steuergeräte ECU1, ECU2 und ECU3 nacheinander programmiert werden, da diese bspw. an verschiedenen Bussystemen betrieben werden, werden die den jeweiligen Steuergeräten ECU1, ECU2 und ECU3 zugeordneten Slave-Geräte ECU4, ECU5, ECU6 sowie ECU7 und ECU8 bzw. ECU9 in der parallelen Phase 202 gleichzeitig programmiert, d. h. aktualisiert. In der darauf folgenden Phase 203 werden die Slave-Geräte ECU10 und ECU11 sowie ECU12 jeweils gleichzeitig aktualisiert. Abschließend und zeitlich folgend wird das Gerät ECU13 in der sequenziellen Phase 204 aktualisiert. Die in einem selben Bereich auf einer Zeitachse 205 dargestellten Phasen 202a, 202b und 202c bzw. 203a und 203b laufen demnach jeweils gleichzeitig bzw. parallel ab, wodurch eine verkürzte Gesamtdauer einer Aktualisierungsphase erreicht wird.
-
Die in 3 dargestellte Berechnung eines beispielhaften Programmierablaufs beginnt mit einer Ermittlung von Ausgangsvariablen, d. h. einer Flashauftragsliste 301, einer Fahrzeugtopologie 302 und Fahrzeug-Diagnosedaten 303, die zur Ablaufberechnung 305 herangezogen werden. Nach der Ablaufberechnung 305 erfolgt eine Programmierung 307 jeweiliger Steuergeräte mittels einer auf der Ablaufberechnung 305 basierenden Steuerdatei.
-
Der in 4 dargestellte schematische Programmiervorgang beginnt bei einer Steuerdatei 401, die auf ein Programmierwerkzeug 403 übertragen wird, mittels dessen eine Kopplung 405 zu einem Fahrzeug 407 erfolgt und dessen Steuergeräte gemäß dem in der Steuerdatei 401 hinterlegten Programmierablauf aktualisiert werden.