-
Die
Erfindung betrifft ein Verfahren zur Flashprogrammierung eines Steuergeräts,
insbesondere eines Kraftfahrzeugs.
-
In
der ISO 14229-1, First Edition 01.12.2006, Corrected
Version 15.04.2007, wird das Diagnose Protokoll „Unified
Diagnostic Services (UDS)” für die Automobilelektronik
beschrieben. Das Diagnoseprotokol UDS beschreibt standardisierte
Diagnosedienste zur Kommunikation zwischen einem Diagnose-Tester
(Onborad/Offboard) und den in einem Fahrzeug verbauten Steuergeräten
zur Zwecke der Fehlerdiagnose und Wartung. Dazu sind alle Fahrzeuge
mit einer Diagnoseschnittstelle ausgestattet, die es ermöglicht,
einen externen Diagnosetester (Computer) an das interne Bussystem
des Fahrzeugs anzuschließen. Über diese Diagnoseschnittstelle
können die in der Norm ISO 14229-1 – Unified Diagnostic
Services definierten Botschaften an die Steuergeräte gesendet
werden, um zum Beispiel den Fehlerspeicher der einzelnen Steuergeräte
abzufragen.. Um gemäß UDS definierte Informationen
an die Steuergeräte zu senden, müssen die Steuergeräte die
jeweils vorgegebenen Diagnosedienste gemäß UDS
implementiert haben.
-
UDS
stellt dabei auch Dienste zur Verfügung, mittels deren
die aktuelle Software/Firmware eines Steuergerätes aktualisiert
bzw. ausgetauscht werden kann.
-
Die
maximale Länge eines Diagnosedienstes wird durch das gemäß ISO/OSI – Referenzmodel darunter
liegende, jeweilig verwendete Transportprotokoll begrenzt. So ist
zum Beispiel bei einer Kommunikation via CAN-Protokoll nach ISO
11989 in Verbindung mit dem Transportprotokoll nach ISO
15765-2 das maximale Datenpaket auf 4 kByte begrenzt. Somit
kann ein Diagnosedienst nach UDS maximal 4 kByte lang sein. Bei
anderen Bussystemen wie zum Beispiel bei FlexRay in Verbindung mit
dem entsprechenden FlexRay Transportprotokoll nach ISO 10681-2 ergibt
sich eine maximale Länge eines Diagnosedienstes nach UDS
von 64 kByte). Somit erfordert eine Übertragung von sehr
großen Datenmengen auf Diagnoseprotokollebene zwischen
einer Datenquelle und dem Steuergerät, wie zum Beispiel beim
Reprogrammieren (Flashen) notwendig, eine Aufteilung (Segmentierung)
des Gesamtdatenpakets in mehrere Teildatenpakete. Diese Teilpakete
werden dann mittels eines entsprechenden Diagnosedienstes nach UDS
mit einer entsprechenden maximalen Länge gemäß dem
jeweiligen Transportprotokoll übertragen.
-
Des
Weiteren verlangt das Diagnoseprotokoll gemäß ISO
14229-1 ein strenges Request-Response Verhalten. Dies bedeutet,
dass auf eine Anfrage (Request) immer zunächst eine Antwort
(Response) vom Steuergerät erfolgen muss, bevor eine neue
Anfrage (Request) erfolgen darf. Innerhalb der ISO 14229-1 wird
implizit festgelegt, dass die mit dem Diagnoseservice „Transfer
Data” (Service-Identifier $36) übertragenen Daten
unmittelbar nach der vollständigen Übertragung
auch programmiert werden müssen. Somit wird im Falle von
mehreren Teildatenpaketen jeweils ein Datenpaket an das Steuergerät übertragen,
danach wird dieses Teildatenpaket in den Speicher des Steuergeräts
einprogrammiert und mit erfolgreichem Abschluss der Programmierung
und Rückmeldung durch das Steuergerät das nächstfolgende
Teildatenpaket zum Steuergerät übertragen. Gemäß der ISO
14229-1 ist es nicht erlaubt während der Einprogrammierung
eines Teildatenpaketes in den Speicher des Steuergerätes
eine weitere Datenübertragung durchzuführen, da
die Antwort (Response) des vorhergegangenen Diagnosedienstes vom
Steuergerät noch nicht gesendet wurde, da die Programmierung
noch nicht abgeschlossen ist.
-
Nachteilig
an einem solchen Diagnosedienst gemäß der ISO
14229-1 ist die lange Laufzeit der Programmierung des Speichers
des Steuergerätes.
-
Die
vorliegende Erfindung beschäftigt sich mit dem Problem,
für ein Verfahren zur Flashprogrammierung eines Steuergerätes,
insbesondere eines Kraftfahrzeugs, eine verbesserte oder zumindest eine
andere Ausführungsform anzugeben, die sich dadurch auszeichnet,
dass die Programmierung eines Speichers des Steuergerätes
schneller durchgeführt werden kann.
-
Erfindungsgemäß wird
dieses Problem durch den Gegenstand des unabhängigen Anspruchs
gelöst. Vorteilhafte Ausführungsformen sind Gegenstand
der abhängigen Ansprüche.
-
Die
Erfindung beruht auf dem allgemeinen Gedanken, ein gemäß des
verwendeten Transportprotokolls zu großes Datenpaket in
mehrere kleine Teildatenpakete aufzuteilen und diese Teildatenpakete
nacheinander in zumindest einen Datenpuffer des Steuergerätes
zu übertragen und nach der Übertragung das Teildatenpaket
von dem Datenpuffer in den Speicher des Steuergerätes einzuprogrammieren, wobei
das Einprogrammieren eines Teildatenpaketes aus einem Datenpufferspeicher
in den Speicher des Steuergerätes parallel zur Übertragung
des nächstfolgenden Teildatenpaketes in einen anderen Datenpufferspeicher
stattfindet.
-
In
einer bevorzugten Ausführungsform findet die Einprogrammierung
der vollständig übertragenen Teildatenpakete in
den Speicher des Steuergerätes seriell statt.
-
Des
Weiteren wird in zumindest zwei Datenpufferspeicher jeweils abwechselnd
ein Teildatenpaket übertragen. Ebenfalls abwechselnd durch
zwei Verarbeitungsdienste wird aus dem jeweiligen Datenpufferspeicher,
in den ein Teildatenpaket vollständig übertragen
worden ist, das in dem jeweiligen Datenpufferspeicher befindliche
Teildatenpaket in den Speicher des Steuergerätes einprogrammiert,
während in den anderen Datenpufferspeicher das nächstfolgende
Teildatenpaket überfragen wird.
-
Weitere
wichtige Merkmale und Vorteile der Erfindung ergeben sich aus den
Unteransprüchen, aus den Zeichnungen und aus der zugehörigen
Figurenbeschreibung anhand der Zeichnungen.
-
Es
versteht sich, dass die vorstehend 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.
-
Bevorzugte
Ausführungsbeispiele der Erfindung sind in den Zeichnungen
dargestellt und werden in der nachfolgenden Beschreibung näher
erläutert, wobei sich gleiche Bezugszeichen auf gleiche oder ähnliche
oder funktional gleiche Bauteile beziehen.
-
Es
zeigen, jeweils schematisch
-
1 die
Steuergeräteprogrammierung auf Diagnoseprotokollebene,
-
2 eine
Abfolge einzelner Prozessschritte zumindest teilweiser Parallelisierung
von einer Datenübertragung und einer Programmierung.
-
Wie
in 1 gezeigt, wird eine Kommunikation 1 zwischen
einem nicht dargestellten Diagnosegerät und einem ebenfalls
nicht dargestellten Steuergerät durch zwei analog aufgebaute
Protokollstapel bestehend aus unterschiedlichen Protokollschichten realisiert.
Der Protokollstapel umfasst dabei ein Diagnoseprotokoll DP, ein
TransportProtokoll TP und ein Busprotokoll BP.
-
Eine
Diagnosekommunikation zwischen einem nicht dargestellten Diagnosegerät
und einem ebenfalls nicht dargestellten Steuergerät erfolgt
diagnosegerätseitig über Diagnosedienste aus dem
Diagnoseprotokollschicht 2 und steuergerätseitigen
Diagnosediensten aus dem Diagnoseprotokollschicht 3. Dabei
ist die über das Diagnoseprotokoll 2, 3 übertragbare
Datenmenge durch das verwendete Transportprotokoll TP begrenzt. Überschreitet
das Datenpaket die durch das Transportprotokoll TP festgelegte maximale
Größe, so muss das Datenpaket in mehrere kleinere
Teildatenpakete mit gemäß dem Transportprotokoll
korrekten Größen aufgeteilt werden. Die übertragung
erfolgt dann durch mehrere sequentielle Diagnosedienste gemäß der
Vorgabe des Diagnoseprotokolls.
-
Gemäß 2 wird
von dem Diagnosegerät 5 ein Teildatenpaket durch
einen Request-Datentransfer A in einen ersten Datenpufferspeicher 6 des
Steuergerätes 7 übertragen. Nach erfolgreicher
und vollständiger Datenübertragung wird dieser
Datentransfer A von dem Steuergerät durch eine Response
B positiv quittiert. Nach positiver Quittierung durch die Response
B wird die Einprogrammierung 8 des zuvor in den ersten
Datenpufferspeicher übertragenen Teildatenpaketes in den
Speicher 9 des Steuergerätes durch die Anfrage
C angestoßen. Der korrekte Start der Programmierung 8 wird
durch eine positive Antwort D vom Steuergerät signalisiert.
Dabei wird die Programmierung 8 als eine nebenläufige
Routine durchgeführt und der Status dieser nebenläufigen Routine
kann jederzeit durch eine weitere Anfrage abgefragt werden. Parallel
zur nebenläufigen Programmierung 8 wird ein neuer
Datentransfer E durchgeführt. Das dementsprechende Teildatenpaket
wird dabei im zweiten Datenspeicherpuffer 10 gespeichert.
Nach erfolgreicher und vollständiger Datenübertragung
wird der Datentransfer E ebenfalls durch eine positive Antwort F
vom Steuergerät quittiert. Bevor nun die Programmierung 11 des
in den zweiten Datenspeicherpuffer 10 übertragenen
Teildatenpaketes erfolgen kann, muss zunächst das Ende
der Programmierung 8 des Teildatenpaketes aus dem ersten Datenpufferspeicher 6 durch
das Steuergerät 7 festgestellt werden. Dies erfolgt über
eine Anfrage G an das Steuergerät 7. Ist die Programmierung 8 korrekt ausgeführt
worden, wird der Anfrage G eine positive Antwort H von dem Steuergerät
signalisiert. Dabei kann der Status der nebenläufigen Routine,
der Programmierung 8, als Parameter übertragen
werden. Dabei kann das Ergebnis der Statusabfrage sein, dass die
Programmierung 8 noch läuft, dass die Programmierung 8 erfolgreich
abgeschlossen ist, oder dass die Programmierung 8 mit Fehler
beendet worden ist. Wird durch die Antwort H übermittelt,
dass die Programmierung 8 erfolgreich abgeschlossen ist, kann
mit der Anfrage I an das Steuergerät 7 die Programmierung 11 des
in dem zweiten Datenspeicherpuffer 10 übertragenen
Teildatenpaketes angestoßen werden. Dabei wird von dem
Steuergerät 7 an das Diagnosegerät 5 eine
Antwort K gesendet, wenn die Programmierung 11 erfolgreich
gestartet werden konnte. Dabei ist auch die Programmierung 11 als nebenläufige
Programmierroutine ausgebildet und sie kann ebenfalls wie die Programmierung 8 jederzeit
durch eine Anfrage statusüberprüft werden. Parallel
zur Programmierung 11 wird nun wieder ein neuer Datentransfer
A in den ersten Datenpufferspeicher 6 durchgeführt.
Somit wiederholt sich der Ablauf solange, bis alle zu übertragenden
und programmierenden Teildatenpakete an das Steuergerät 7 übertragen
worden sind.
-
Durch
die parallele Verarbeitung ist nicht nur das erstmalige Übertragen
der Steuerungssoftware auf das Steuergerät deutlich verkürzt,
sondern auch die Zeit für eine Reprogrammierung (Flashen)
bei der Wartung der Steuergeräte erheblich reduziert. Durch diese
Verkürzung der Programmierzeit der Steuergeräte
entsteht überhaupt erst die Möglichkeit, ein Programmieren
von Steuergeräten in den Bandablauf einer Produktion zu
integrieren.
-
- 1
- Kommunikation
- 2
- Diagnosegerätseitiger
Diagnosedienst aus einem Diagnoseprotokoll
- 3
- Steuergerätseitiger
Diagnosedienst aus einem Diagnoseprotokoll
- 4
- Bussystem
- 5
- Diagnosegerät
- 6
- Erster
Datenpufferspeicher
- 7
- Steuergerät
- 8
- Programmierung
- 9
- Speicher
- 10
- Zweiter
Datenspeicherpuffer
- 11
- Programmierung
-
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
-
- - ISO 14229-1 [0002]
- - Norm ISO 14229-1 [0002]
- - ISO 11989 [0004]
- - ISO 15765-2 [0004]
- - ISO 10681-2 [0004]
- - ISO 14229-1 [0005]
- - ISO 14229-1 [0005]
- - ISO 14229-1 [0005]
- - ISO 14229-1 [0006]