-
Die Erfindung betrifft ein Verfahren
zum variantenspezifischen Programmieren eines Programm- und Datenspeichers
eines Steuergeräts,
insbesondere eines Steuergeräts
eines Kraftfahrzeugs, sowie eine Vorrichtung zur Durchführung des
Verfahrens.
-
Die Steuerung der Vielzahl der verschiedenen
Komponenten in einem Kraftfahrzeug erfolgt über mehrere separat arbeitende
Steuergeräte,
in denen die Steuerungssoftware abgelegt ist. Diese Software ist
variantenspezifisch, das heißt
sie ist speziell für
die Variante des Kraftfahrzeugs, in das das Steuergerät eingebaut
ist, ausgelegt. In der Regel stellt ein Automobilhersteller eine
größere Produktpalette
unterschiedlicher Fahrzeugtypen her, wobei die einzelnen Typen wiederum
in einer Vielzahl unterschiedlicher Varianten hergestellt werden,
beispielsweise mit unterschiedlichen Antriebsaggregaten, unterschiedlichen
Ausstattungen etc.
-
Während
des Zusammenbaus eines Fahrzeugs werden die einzelnen Steuergeräte am Band eingebaut.
Die Steuergeräte
sind im Einbauzeitpunkt entweder bereits vollständig programmiert, das heißt die variantenspezifische
Steuerungssoftware ist bereits komplett vorhanden. Alternativ dazu
besteht die Möglichkeit,
eine Bandprogrammierung vorzunehmen, das heißt das Steuergerät ist insoweit
noch nicht belegt, die gesamte Software wird während sich das Fahrzeug am
Band bewegt einprogrammiert.
-
Mit diesen Vorgehensweisen sind jedoch eine
Reihe von Nachteilen verbunden. Werden fertig programmierte Steuergeräte eingebaut,
so stellt dies ei nen erhöhten
Aufwand hinsichtlich der Produktionssteuerung, der Disposition und
der Lagerhaltung sowohl im fahrzeugbauenden Werk wie auch beim Steuergerätelieferanten
dar. Zum einen muss stets gewährleistet
werden, dass das richtige vorprogrammierte Steuergerät in das
richtige Fahrzeug eingebaut wird, das heißt hinsichtlich der Produktionssteuerung
muss gewährleistet
sein, dass die richtigen Komponenten zusammengeführt werden. Ferner ist die
Disposition und Lagerhaltung sehr aufwendig, da stets hinreichende
Stückzahlen
an Steuergeräten, die
mit der jeweils variantenspezifischen Steuerungssoftware vorprogrammiert
sind, vorhanden sind beziehungsweise lieferantenseitig auch hergestellt
und verfügbar
sind. Insbesondere diese Nachteile fallen auch im Ersatzteilwesen
und im Kundendienst an. Ferner ist ein hoher Aufwand bei einer Softwareumstellung
gegeben. Der Steuerungsaufwand verdoppelt sich nahezu, wenn auf
eine weiterentwickelte Steuerungssoftware umgestellt wird. Denn
es müssen
jeweils die alte und die neue Variante in der Produktion in passender
Stückzahl
vorgehalten werden. Auch ist ein Falschverbau möglich, wenn ein Bandarbeiter
versehentlich ein falsches Steuergerät wählt und einbaut. Schließlich sind
aufgrund der Vorprogrammierung dahingehend Nachteile zu sehen, dass nach
einer Softwareumstellung übrig
gebliebene, mit der alten Software vorprogrammierte Steuergeräte entweder
erst aufwendig umprogrammiert und anders gekennzeichnet oder zum
Steuergerätelieferanten
zurückgesandt
werden müssen.
-
Auch die Programmierung am Band ist
mit Nachteilen verbunden. Die Programmierzeit ist sehr häufig länger als
eine Taktzeit im fahrzeugbauenden Werk, das heißt die Programmierung kann
häufig nicht
ohne Schwierigkeiten in den Taktzyklus integriert werden. Ferner
steigt durch die ständig
zunehmende Softwaremenge aufgrund immer neuer zu steuernder Komponenten
auch die Programmierzeit ständig
an. Die Programmierung ist daher häufig kostenaufwendig und im
Produktionsablauf hinderlich. Es müssen Puffer vorgesehen werden
oder mitfahrende Programmieranlagen bereitgestellt werden. Eine
einmal installierte Programmieranlage kann bei einer Hardwareänderung
oft nicht in der selben Form verwendet werden und muss kostenaufwendig
umgestaltet werden.
-
Eine letzte Möglichkeit ist schließlich, alle Datensätze sämtlicher
Varianten im Steuergerät
abzuspeichern und durch geeignete Softwarezeiger zu einem bestimmten
Zeitpunkt die variantenspezifische benötigte Software auszuwählen. Dies
benötigt
jedoch sehr viel Speicherplatz im Steuergerät, der zum Ausführen der
eigentlichen Steuerfunktionen überhaupt
nicht erforderlich wäre.
Ferner erhöht
sich hierdurch der Gerätepreis.
Auch hier gilt bei einer Softwareumstellung, dass bereits vorprogrammierte Steuergeräte häufig nicht
mehr verwendet werden können,
da die aktuelle Softwareversion einer Variante nicht vorgesehen
ist. Auch können
durch Auswahl einer falschen Variante werk- oder kundendienstseitig
Fehler entstehen.
-
Derartige Probleme bestehen jedoch
nicht nur auf dem Kraftfahrzeugsektor, sondern in der Regel überall dort,
wo Steuergeräte
verwendet werden, zu denen es unterschiedliche Varianten gibt, wie
es beispielsweise häufig
bei Maschinen- oder Anlagensteuerungen ebenfalls der Fall sein kann.
-
Aus
EP 0 532 643 B1 ist ein Verfahren zur Initialisierung
einer Software in einem Host-Datenverarbeitungssystem bekannt, wobei
der Host eine beliebige Hardware-Architektur innerhalb einer größeren Variantenvielfalt
besitzt. Zu Initialisierung wird ein Software-Modul in den Host-Speicher
geladen, einschließlich
eines Satzes von Codeblöcken,
wobei jeder Codeblock wenigstens einer bestimmten Architekturvariante
aus der Vielzahl möglicher
Architekturen angepasst ist. Anschließend wird die konkrete Architekturvariante
des Hosts identifiziert und in Abhängigkeit der identifizierten
Architektur ein Untersatz aus den Codeblöcken gewählt, die für die identifizierte Architekturvariante
angepasst sind, wonach dieser Untersatz in dem Host-Speicher in
benachbarten Speicherstellen gespeichert wird, wonach Speicherstellen
im Software-Modul im Host-Speicher außerhalb dieser benachbarten
Speicherstellen freigegeben werden. Dieses Verfahren setzt die vorherige Einspeicherung
sämtlicher
variantenspezifischer Datensätze
voraus.
-
Ferner ist aus
US 6,018,747 ein Verfahren zur Ermöglichung
eines Software-Updates
auf einem Client-Computer bekannt, bei dem über ein Rekonstrukti ons-Delta-File
auf einem Quellcomputer, das die Vielzahl von Änderungen zwischen der Vorversion und
der neuen Version sowie einer Vielzahl von Lese- und Schreib-Befehle
enthält,
in einem Speicherbereich am Zielcomputer die neue Version unter
Verwendung des vom Quellcomputer übertragenen Delta-Files rekonstruiert
wird, aus welchem Speicherbereich vorher die Vorversion entfernt
wurde, die in einem anderen Speicherbereich abgelegt wird.
-
Der Erfindung liegt damit das Problem
zugrunde, ein Verfahren anzugeben, das ein einfaches und schnelles
variantenspezifisches Programmieren eines Steuergeräts zulässt.
-
Zur Lösung dieses Problems ist ein
Verfahren zum variantenspezifischen Programmieren eines Programm-
und Datenspeichers eines Steuergeräts, insbesondere eines Steuergeräts eines
Kraftfahrzeugs vorgesehen, wobei im Speicher ein Basisprogramm und
mehrere variantenspezifische Programmänderungsinformationen sowie
ein Basisdatensatz und mehrere variantenspezifische Datenänderungsinformationen
abgelegt sind, welche Informationen über im Basisprogramm und dem
Basisdatensatz vorzunehmende variantenspezifische Änderungen enthalten,
wobei zur Programmierung eine bestimmte variantenspezifische Programmänderungsinformation
und Datenänderungsinformation über eine dem
Steuergerät
zu gebende Auswahlinformation gewählt und das Basisprogramm und
der Basisdatensatz automatisch gemäß der Programm- und Datenänderungsinformation
geändert
wird.
-
Das erfindungsgemäße Verfahren lässt ein automatisches
und sehr schnelles variantenspezifisches Programmieren des Speichers
zu. Im Speicher eines Steuergeräts
sind im allgemeinen das Steuerungsprogramm sowie der Datensatz vorhanden,
wobei das Steuerungsprogramm zum einen ein Boot-Programm und zum anderen den eigentlichen Programmablauf
umfasst. Das Boot-Programm hat die Aufgabe, die Anfangskommunikation
nach außen herzustellen,
beispielsweise mit einem Kundendiensttester oder einem Programmiergerät, und die Initialisierungsvorgänge einzuleiten.
Der Programmablauf bestimmt die enthaltene Funktionalität im Steuergerät. Der Datensatz schließlich enthält Daten,
beispielsweise Werteschwellen, Kennlinien und Kennfelder und quantifiziert
so das Verhalten des Steuergeräts.
-
Dem erfindungsgemäßen Verfahren liegt nun der
Gedanke zugrunde, dass viele Teile des Programms, also des Boot-Programms
und des Programmablaufs, für
alle Varianten gleich sind. Diese variantenübergreifenden Programmteile
werden als Basisprogramm in dem Speicher abgelegt. Gleiches gilt
für den
Datensatz, auch hier sind viele Teile für alle Varianten gleich, weshalb
auch ein Basisdatensatz, der für
alle Varianten gilt, im Speicher abgelegt wird. Zum Basisprogramm
sowie zum Datensatz werden nun mehrere variantenspezifische Programm- und
Datenänderungsinformationen
abgelegt, also Informationen darüber,
wie das Basisprogramm und der Basisdatensatz für eine spezielle Steuerungsgerätevariante
zu ändern,
also umzuprogrammieren beziehungsweise gegebenenfalls durch Einschreiben
neuer zusätzlicher
Informationen zu erweitern sind. Die Änderungsinformationen sind
variantenspezifisch, das heißt
für jede
Variante ist eine spezielle Änderungsinformation
(die natürlich
eine Mehrzahl an einzelnen vorzunehmenden Änderungsdaten umfassen) vorgesehen.
Da diese Änderungsinformationen
lediglich die häufig
relativ wenigen vorzunehmenden Änderungen
enthalten handelt es sich hierbei um jeweils relativ kleine Datenmengen
im Vergleich zur Gesamtheit der letztendlich fertiggestellten Software.
-
Ist nun bekannt, welche Variante
verlangt wird und zu Programmieren ist, wird von außen dem Steuergerät eine entsprechende
Auswahlinformation gegeben, die angibt, welche variantenspezifische Programm-
und Datenänderungsinformation
zu wählen
und das Basis- und der Basisdatensatz gemäß diesen Änderungsinformationen umzuprogrammieren
ist. Es werden dann lediglich die zu ändernden Teile im Basisprogramm
und im Basisdatensatz geändert,
was sehr schnell geht und ohne weiteres beispielsweise am Band erfolgen
kann.
-
Es erfolgt also eine echte Variantenbildung durch
aktives Umprogrammieren im Steuergerät selbst, um diese variantenspezifisch
zu konfigurieren.
-
Die variantenspezifischen Programmänderungs-
und Datenänderungsinformationen
können gemäß einer
ersten Erfindungsalternative bereits im Steuergerät vorhanden
sein. Das heißt
sie können entweder
herstellerseitig zusammen mit dem Basisprogramm und dem Basisdatensatz
abgelegt werden, dies kann aber auch im fahrzeugbauenden Werk völlig losgelöst vom eigentlichen
Fahrzeugbau erfolgen. Daneben können
gemäß einer
zweiten Alternativausführung
die Änderungsinformationen auch
zumindest teilweise vorhanden und weitere Änderungsinformationen im wesentlichen
unmittelbar vor der Programmierung in das Steuergerät übertragen
werden. Dies ist beispielsweise dann zweckmäßig, wenn sich die Änderungsinformationen
erweitern, beispielsweise durch Hinzufügen neuer Varianten oder durch
kleinere Änderungen
in bereits bestehenden variantenspezifischen Änderungsinformationen. Schließlich besteht
als dritte Alternative die Möglichkeit,
dass die Änderungsinformationen
vollständig
in das Steuergerät
im wesentlichen unmittelbar vor Beginn der variantenspezifischen
Programmierung übertragen
werden. Auch dies geht aufgrund der relativ geringen zu übertragenden
Datenmenge sehr schnell und kann sogar bandseitig integriert werden.
-
Dadurch, dass lediglich ein allgemein
gültiges
Basisprogramm und ein allgemein gültiger Basisdatensatz sowie
lediglich die variantenspezifischen Änderungsinformationen abgelegt
werden, kann der hierfür
benötigte
Speicherbereich von Haus aus relativ gering bemessen werden. Um
das erfindungsgemäße Verfahren
noch weitergehend speicherplatzoptimiert auszugestalten kann vorgesehen
sein, dass nach der Auswahl der variantenspezifischen Programm-
und Datenänderungsinformationen
die nicht benötigten
anderen variantenspezifischen Programm- und Datenänderungsinformationen
gelöscht werden.
Diese Änderungsinformationen
werden nach Festlegen der zu programmierenden Variante nicht mehr
benötigt,
so dass hierüber
Speicherplatz gewonnen werden kann. Dabei können die Programm- und Datenänderungsinformationen
vor oder nach dem Ändern
des Basisprogramms und der Basisdaten gelöscht werden.
-
Das Basisprogramm und der Basisdatensatz können erfindungsgemäß segmentweise
in dem vorzugsweise als Flash-Speicher ausgebildeten Speicher abgelegt
sein, wobei die einzelnen gemäß der Programm-
und Datenänderungsinformation
zu ändernden
Segmente über
einen Auswahlalgorithmus, also eine geeignete Schreibroutine ausgewählt und geändert werden.
-
Hinsichtlich einer Optimierung des
Speicherplatzes ist es ferner zweckmäßig, das Basisprogramm und/oder
den Basisdatensatz, vorzugsweise beide komprimiert abzulegen, wobei
ein zu ändernder
Programm- oder Datenabschnitt, insbesondere ein zu änderndes
Segment vor der Änderung
dekomprimiert und gegebenenfalls nach der Änderung erneut komprimiert
wird. Ferner können
auch die variantenspezifische Programm- und/oder Datenänderungsinformationen,
vornehmlich auch hier beide, komprimiert abgelegt sein oder übertragen
werden, wobei die ausgewählte
Programm- und/oder Datenänderungsinformation
zur Abarbeitung dekomprimiert wird. Die jeweilige Variante der Änderungsinformation
kann zweckmäßigerweise
auch im komprimierten Zustand erkannt werden, so dass zum Auswählen nicht
erst sämtliche Änderungsinformationen dekomprimiert
werden müssen
und anschließend erst
die Auswahl erfolgen kann.
-
Im Rahmen der Änderungsprogrammierung kann
ein zu ändernder
Basisprogramm- oder Basisdatenabschnitt, insbesondere ein zu änderndes
Segment in seiner geänderten
Form zunächst
in einen Kopier-Speicherplatz geschrieben und auf Vollständigkeit
beispielsweise durch Checksummenbildung überprüft werden, wonach er in das
Basisprogramm beziehungsweise den Basisdatensatz geschrieben wird.
Als Kopier-Speicherplatz kann dabei zweckmäßigerweise ein durch Löschen einer
nicht benötigten Programm- oder Datenänderungsinformation
frei gewordener Speicherplatz, insbesondere ein frei gewordenes
Segment verwendet werden. Man nutzt also hier den aktiv gewonnenen
Speicherraum zum Kopieren aus, so dass hierfür nicht von Haus aus ein separater
Speicherplatz vorgesehen werden muss.
-
Es kann mitunter vorkommen, dass
beispielsweise aus fertigungstechnischen Gründen der laufende Programmiervorgang
unterbrochen wird. Um nun die Programmierung nahtlos an der Unterbrechungsstelle
fortsetzen zu können
ist es zweckmäßig, wenn
der laufende Programmiervorgang durch Einschreiben von Protokollinformationen
in einen Protokollspeicherplatz aufgezeichnet wird, wobei auch hier
als Protokollspeicherplatz zweckmäßigerweise ein durch Löschen einer
nicht benötigten
Programm- oder Datenänderungsinformation
frei gewordener Speicherplatz, insbesondere ein frei gewordenes
Segment verwendet wird.
-
Weiterhin beseht die Möglichkeit,
einen infolge einer Löschung
nicht benötigter
variantenspezifischer Programm- oder Datenänderungsinformationen frei
gewordenen Speicherplatz als Speicherplatz für im Betrieb des Steuergeräts erfasste
und zu protokollierende Informationen einzurichten, vorzugsweise
als Fehlerspeicher für
im Fahrbetrieb erfasste Fehlerinformationen. Das heißt der frei
werdende Speicherplatz infolge der Informationslöschung wird auch im Rahmen
des späteren
Betriebs des Steuergeräts
vorteilhaft zum Einschreiben beliebiger Daten verwendet.
-
Zweckmäßigerweise kann nach Durchführung der Änderung,
wenn diese also endgültig
abgeschlossen sind, das die Änderungen
beziehungsweise Löschungen
und den Schreibbetrieb steuernde Programm, also die Dekomprimier-
und Schreibroutine, gelöscht
werden. Hierdurch wird vermieden, dass im Fahrbetrieb aufgrund eines
irgendwie gearteten Fehlers eine Aktivierung dieser Routine und
eine unbeabsichtigte Datenänderung
erfolgen kann.
-
Neben dem erfindungsgemäßen Verfahren betrifft
die Erfindung ferner eine Vorrichtung zur Durchführung des Verfahrens, umfassend
ein Steuergerät
mit einem zu programmierenden Speicher, in dem ein Basisprogramm
sowie ein Basisdatensatz abgelegt sind, sowie eine mit dem Steuergerät kommunizierende
Einrichtung zur Übertragung
einer Auswahlinformation zum Auswählen einer bestimmten variantenspezifischen,
Informationen über
im Basisprogramm und dem Basisdatensatz vorzunehmende variantenspezifische Änderungen
enthaltenden Programm- und Datenänderungsinformation
aus einer Mehrzahl speicherseitig vorhandener variantenspezifischer
Programm- und Datenänderungsinformationen,
wobei das Basisprogramm und der Basisdatensatz automatisch gemäß der gewählten Programm-
und der Datenänderungsinformation änderbar
sind. Die Einrichtung zur Übertragung
der Auswahlinformation kann beliebiger Natur sein. Es kann sich
beispielsweise um eine kleine Programmier- oder Recheneinrichtung
handeln, die beispielsweise gemäß Vorgabe
durch die Produktionssteuerung die entsprechende Auswahlinformation
generiert und überträgt. Es kann
sich aber auch beispielsweise um eine Einrichtung handeln, mit der
der Fahrzeugtyp eines am Band zusammengebauten Fahrzeugs beispielsweise über eine
Scannereinrichtung oder dergleichen erfasst wird, und die dann die
Auswahlinformation generiert und überträgt, wobei das Steuergerät dabei
noch fahrzeugextern oder bereits im Fahrzeug eingebaut sein kann.
-
Die variantenspezifischen Programmänderungs-
und die Datenänderungsinformationen
können
dabei bereits im Steuergerät
vorhanden sein, sie können
zumindest teilweise vorhanden und weitere Änderungsinformationen im Wesentlichen
unmittelbar vor der Programmierung in das Steuergerät zu übertragende
Programmänderungs-
und Datenänderungsinformationen
in der externen Einrichtung vorhanden sein, es können die Programmänderungs- und die Datenänderungsinformationen
vollständig
in der externen Einrichtung vorhanden und im Wesentlichen unmittelbar
vor Beginn der variantenspezifischen Programmierung in das Steuergerät übertragen
werden. Der Speicher selbst kann ein segmentweise beschreibbarer
Flash-Speicher sein, wobei es natürlich auch denkbar ist, mit
dem erfindungsgemäßen Verfahren
mehrere in einem Steuergerät
vorhandene Flash-Speicher programmieren zu können.
-
Weitere Vorteile, Merkmale und Einzelheiten der
Erfindung ergeben sich aus dem im Folgenden beschriebenen Ausführungsbeispiel
sowie anhand der Zeichnungen. Dabei zeigen:
-
1 eine
Prinzipskizze einer erfindungsgemäßen Vorrichtung,
-
2 eine
Prinzipdarstellung eines Programm- und Datenspeichers vor und nach
der Durchführung
des erfindungsgemäßen Programmierverfahrens,
und
-
3 ein
Flussdiagramm zur schematischen Darstellung des Ablaufs des erfindungsgemäßen Programmierverfahrens.
-
1 zeigt
in Form einer Prinzipskizze die relevanten Komponenten der erfindungsgemäßen Vorrichtung 1 zur
Durchführung
des erfindungsgemäßen Programmierverfahrens.
Gezeigt ist ein in ein Kraftfahrzeug 2 bereits eingebautes
Steuergerät 3 mit
einem zu programmierenden Speicher 4, beispielsweise einem
Flash-Speicher. Die erfindungsgemäße Vorrichtung umfasst ferner
eine externe Einrichtung 5, über die eine eine bestimmte
zu programmierende Variante auswählende
Auswahlinformation über
eine Kommunikationsverbindung an das Steuergerät 3 gegeben wird.
Die Kommunikationsverbindung kann beispielsweise eine Kommunikationsleitung 6 sein,
die die Einrichtung 5 und das Steuergerät 3, an dem eine geeignete
Schnittstelle vorgesehen ist, verbindet. Alternativ besteht die
Möglichkeit,
eine leitungslose Kommunikationsverbindung 7 vorzusehen,
mit einem entsprechenden Sender an der Einrichtung 5 und
einem geeigneten Empfänger
mit geeigneter Schnittstelle an dem Steuergerät 3. Wird die Auswahlinformation
gegeben so erfolgt automatisch die variantenspezifische Programmierung,
worauf nachfolgend noch eingegangen wird.
-
Die Programmierung des Speichers 4 erfolgt variantenspezifisch
bezogen auf die Variante des Kraftfahrzeugs 2, in das das
Steuergerät 3 eingebaut ist.
Um nun zu wissen, um welche Fahrzeugvariante es sich handelt, sind
mehrere Möglichkeiten
denkbar. Im gezeigten Beispiel ist zum einen die Erfassung einer
Fahrzeugvariantenkennung 8, hier in Form eines Bar-Codes, über ein
geeignetes Lesemittel 9, z.B. einen Scanner seitens der
Einrichtung 5 möglich.
Hieraus kann der genaue Fahrzeugtyp beziehungsweise die genaue Fahrzeugvariante
ermittelt und an das Steuergerät 3 übertragen
werden. Denkbar ist es auch, dass die Einrichtung 5 über eine
Kommunikationsverbindung 10 mit einer zentralen Steuerungseinrichtung 11,
die den Produktionsablauf steuert, kommuniziert, von welcher dann
die Information zur Fahrzeugvariante übertragen wird.
-
2 zeigt
in Form einer Prinzipskizze den Speicher 4 des Steuergeräts 3 vor
der variantenspezifischen Programmierung (links in 2) und danach (rechts in 2). Bei dem Speicher 4 kann
es sich beispielsweise um einen Flash-Speicher handeln, in dem die
relevanten Informationen segmentweise eingeschrieben sind. Die Art
und Weise der Programmierung beziehungsweise der Aufteilung der
Informationen kann jedoch auch beliebig anders sein. Im Folgenden
wird davon ausgegangen, dass die Informationen segmentweise abgelegt
sind, wobei die einzelnen Segmente in den Figuren nicht näher dargestellt
sind. Dem Fachmann ist diese Programmierart jedoch hinlänglich bekannt.
-
Im Speicher 4 ist zum einen
ein (gegebenenfalls komprimiertes) Basisprogramm 12 abgelegt, das
sämtliche
Programmteile enthält,
die allgemeingültig
für eine
Vielzahl verschiedener Fahrzeugvarianten ist, mithin also bei jeder
Fahrzeugvariante gleich ist. Dem Basisprogramm 12 zugeordnet
sind Programmänderungsinformationen 13,
wobei diese variantenspezifisch sind. Die Programmänderungsinformationen
geben an, wie das Basisprogramm 12 für eine bestimmte auswählbare Variante
zu ändern ist,
sei es durch Umschreiben oder durch Anfügen weiterer Programmdaten.
Im gezeigten Beispiel sind mehrere unterschiedliche Programmänderungsinformationsblöcke dargestellt,
die PÄIa,
PÄIb, PÄIc, ..., PÄIy und PÄIz gekennzeichnet
sind. Es sind hier also lediglich die relativ wenigen Änderungsinformationen enthalten,
die benötigt
werden, um das Basisprogramm in ein variantenspezifisches Programm
für eine
bestimmte Fahrzeugvariante umzuprogrammieren.
-
In entsprechender Weise ist ein (gegebenenfalls
komprimierter) Basisdatensatz 15 vorgesehen, der für verschiedene
Fahrzeugvarianten allgemein gültige
Basisdaten wie Kennlinien oder Kennfelder oder Parameter und dergleichen
umfasst. Diesem zugeordnet sind Datensatzänderungsinformationen 16,
die auch hier variantenspezifisch abgelegt sind. Auch diese Datensatzänderungsinformationen
geben lediglich die zur Programmierung einer bestimmten Datensatzvariante
erforderlichen Änderungen
an, sei es durch Umschreiben vorhandener Daten oder durch Anfügen weiterer
Daten. Im gezeigten Beispiel sind die Änderungsinformationsvarianten
DÄIa, DÄIb, DÄ- Ic, ..., DÄIy und DÄIz dargestellt.
Jede der Programm- und Datensatzänderungsinformationsvarianten
kann beispielsweise in einem eigenen Segment abgelegt sein.
-
Weiterhin ist ein Softwaretool 17 zur
Dekomprimierung (sofern erforderlich) sowie als Schreibroutine vorgesehen.
Sowohl das Basisprogramm und die Basisdaten als auch insbesondere
die Programm- und Datensatzänderungsinformationen
sind aus Gründen
der Speicheroptimierung komprimiert abgelegt, weshalb sie bei Bedarf
zu dekomprimieren sind. Die Schreibroutine gibt den Algorithmus
an, wie die Änderungen
vorzunehmen sind.
-
Im gezeigten Ausführungsbeispiel wird nun über die
Einrichtung 5 die „Auswahlinformation:
Variante b" gegeben.
Wie durch die gestrichelte Linie dargestellt ist, werden nun die
Programmänderungsinformation
PÄIb und
die Datenänderungsinformation DÄIb ausgewählt. Dies
führt nun
dazu, dass das Basisprogramm gemäß der Programmänderungsinformation
PÄIb geändert und
als fertiges spezifisches „Programm
Variante b" 12' abgespeichert
wird, entsprechend wird der Basisdatensatz gemäß der Datenänderungsinformation DÄIb geändert und
als fertiger spezifischer „Datensatz
Variante b" 15' abgespeichert
wird. Sämtliche
nicht benötigten
Programm- und Datenänderungsinformationen
(im gezeigten Ausführungsbeispiel
die Änderungsinformationen
PÄIa, PÄIc, ...,
PÄIy, PÄIz und DÄIa, DÄIc, ... DÄIy, DÄIz) werden
gelöscht,
auf diese Weise wird Speicherplatz gewonnen, da diese Informationen nicht
mehr benötigt
werden. Nach Beendigung der Programmierung wird auch das Softwaretool 17 beziehungsweise
das dieses beinhaltende Segment gelöscht und als Fehlerspeicher 17' eingerichtet,
in den im Betrieb des Steuergeräts 3 zu
protokollierende Fehler eingeschrieben werden.
-
3 zeigt
ein Ablaufschema zur näheren Erläuterung
des erfindungsgemäßen Verfahrens.
Im Schritt a wird das Programmierverfahren durch Gabe der Auswahlinformation über die
Einrichtung 5 gestartet. In diesem Schritt können auch
gegebenenfalls weitere Programm- und Dateninformationsvarianten,
die noch nicht im Steuergerät
vorhanden sind, oder Ergänzungen
zu bestehenden Änderungsvarianten übertragen
werden. Im Schritt b erfolgt, nachdem die ausgewählten Änderungsinformationsvarianten
bekannt sind, die Löschung
aller nicht ausgewählten
Programm- und Datenänderungsinformationen.
Wenigstens ein frei gewordenes Segment wird zu einem Protokollsegment
eingerichtet, in dem Protokollinformationen über den Stand des Programmierverfahrens
abgelegt werden, so dass zu jedem Zeitpunkt bekannt ist, wie weit
das Programmierverfahren fortgeschritten ist, um im Falle einer
etwaigen Unterbrechung an der Unterbrechungsstelle nahtlos fortsetzen
zu können.
Wenigstens ein weiteres frei gewordenes Segment wird zu einem Kopier-Segment
eingerichtet, in das vor der endgültigen Übertragung an den vorgesehenen
Speicherplatz ein geändertes
Programm- oder Datensegment eingeschrieben wird.
-
Anschließend erfolgt die Dekomprimierung der
gewählten Änderungsinformation
sowie im Schritt d die Wahl des als nächstes zu ändernden Segments sowie seine
Dekomprimierung. Hiernach wird gemäß Schritt e der Informationsgehalt
im gewählten
Segment mit der variantenspezifischen vorgegebenen Änderungsinformation
verglichen und ein geändertes
Segment berechnet, das anschließend im
Schritt f in das im Schritt b eingerichtete Kopier-Segment eingeschrieben
wird. Dieses Kopier-Segment dient quasi als temporärer „Bauplatz" für die Erstellung
des geänderten
Segments für
die endgültige
Variante.
-
Im Schritt g wird nun überprüft, ob das
geänderte
Segment vollständig
und richtig ist, es erfolgt das Einschreiben einer Protokollinformation
in das im Schritt b gebildete Protokollsegment. Die Prüfung kann
beispielsweise durch Checksummenbildung erfolgen, die Protokollierung
durch einfaches Setzen einer entsprechenden Markierung im Protokollsegment
und dergleichen. Derartige Prüf-
und Protokollsequenzen sind dem Fachmann hinlänglich bekannt, so dass hierauf
nicht näher
eingegangen werden muss.
-
Im Schritt h erfolgt die Abfrage,
ob das geänderte
Segment das letzte gemäß der Änderungsinformation
zu ändernde
Segment ist. Falls dem nicht so ist („nein"), wird das geänderte Segment im Schritt i an
die endgültige
richtige Stelle im Speicher übertragen.
Gemäß Schritt
j wird das Kopier-Segment gelöscht,
die Programmiersequenz kehrt zum Schritt d zurück und wählt das nächste gemäß der Änderungsinformation zu ändernde
Segment.
-
Handelt es sich jedoch um das letzte
zu ändernde
Segment („ja"), so verbleibt dieses
im Kopier-Segment, das ohnehin nicht mehr benötigt wird, da dann die Programmierung
beendet ist. Es wird ein Gültigkeitsmarker
an das Kopier-Segment gesetzt, der angibt, dass es sich um ein abzuarbeitendes Segment
handelt (Schritt k). Natürlich
könnte
alternativ dazu das Segment auch in diesem Fall aus dem Kopier-Segment
gelesen und an die richtige Stelle im Speicher übertragen werden. Das Kopier-Segment würde dann
auch wieder gelöscht
werden. Anschließend
erfolgt im Schritt 1 die Löschung
weiterer nicht mehr benötigter
Segmente, vornehmlich des Protokollsegments sowie des die Dekomprimier-
und Schreibroutine enthaltenden Segments. Hierdurch wird vermieden,
dass im Fahrbetrieb durch einen Einfachfehler Mechanismen zur Änderung
des Speichers versehentlich aktiviert werden. Im Schritt m erfolgt
schließlich
noch die Einrichtung eines Fehlerspeichers in einem oder mehreren
der gelöschten Segmente,
wonach im Schritt n die Neuinitialisierung des Steuergeräts erfolgt.
-
Anschließend liegt im Speicher lediglich
die fahrzeugspezifische Programmvariante und Datensatzvariante sowie
ein Fehlerspeicher vor, sämtliche ursprünglich vorhandenen
und nun für
den Fahrbetrieb nicht mehr benötigten
Informationen sind nicht mehr vorhanden. Dies ist hinsichtlich der
Betriebssicherheit vorteilhaft, da ansonsten durch fehlerhaftes Zugreifen
auf diese für
den Fahrbetrieb nicht benötigten
Informationen unkontrollierte Abläufe seitens des Steuergeräts abgearbeitet
werden können
oder aber es kommt zu einem Überschreiben
des Flash-Speichers etc. Dies wird durch Löschen der im Fahrbetrieb kritischen
Informationen vermieden. Der hierdurch freigewordene Speicherplatz
kann vielmehr für andere
Funktionen genutzt werden, so beispielsweise als Fehlerspeicher
für entsprechende
Fehlereinträge
oder zum Abspeichern der Steuergerätekodierung oder zum Abspeichern
bestimmter Zustände
vor dem Abschalten etc.
-
Das erfindungsgemäße Verfahren lässt auf einfache
Weise die variantenspezifische Programmierung des Steuergeräts zu. Aufgrund
der Aufteilung der speicherseitig vorhandenen Informationen in Basisprogramm,
Programmänderungsinformation, Basisdaten
und Datenänderungsinformation
wird relativ wenig Speicherplatz benötigt, was hinsichtlich der
Kosten vorteilhaft ist. Verbesserungen in der Disposition, Logistik
und Lagerhaltung stellen sich aufgrund der vor Ort ablaufenden Programmierung
ein. Ein besonderer Vorteil ist, dass etwaige Änderungen in der variantenspezifischen
Software auf äußerst einfache
Weise berücksichtigt
werden können,
indem lediglich die Änderungsinformationen
entsprechend präzisiert
oder erweitert werden. Dies kann sogar werkseitig erfolgen. Daneben
ist es auch möglich, das
Basisprogramm sowie den Basisdatensatz turnusmäßig dann, wenn sie sich variantenübergreifend ändern, anzupassen.
Ferner können
sämtliche
Programm- und Datensatzvarianten
mit demselben Mechanismus gebildet werden, wobei die Variantenbildung
sehr schnell vonstatten geht, so dass sich auch bei einer Programmierung
am Band nur sehr kurze Programmierzeiten ergeben, die sich nicht
störend auf
den Produktionsablauf auswirken.