-
Die Erfindung betrifft ein System und ein Verfahren zum Betreiben eines Steuergeräts, bei welchen, abhängig von einem auszuführenden Programm, benötigte Programmteile automatisch einem nichtflüchtigen Speicher oder einem flüchtigen Speicher zugeordnet werden.
-
Zur Steuerung von Betriebsabläufen, beispielsweise in einem Kraftfahrzeug, ist eine Vielzahl von Steuergeräten vorgesehen. Diese Steuergeräte, von denen jedes im Betrieb eine Funktionseinheit des Kraftfahrzeuges steuert, sind über ein Kommunikationssystem zum Austausch von Daten miteinander verbunden. Dabei gibt es Steuergeräte, welche neu programmierbar ausgebildet sind und somit beispielsweise auf eine neuere Version der jeweiligen Steuergerätesoftware aktualisiert werden können. Dabei wird ein Programmiergerät mit einem Kommunikationssystem des Kraftfahrzeuges oder direkt mit dem zu programmierenden Steuergerät verbunden. Mittels des Programmiergeräts wird dem jeweiligen Steuergerät die neue Version der Steuergerätesoftware zugeführt.
-
Die Steuergeräte verfügen dabei üblicherweise über einen nichtflüchtigen Programmspeicher und einen flüchtigen Speicher. Die Programmierung erfolgt in der Regel einmalig und bleibt während der Lebensdauer unverändert. Bei einer Neuprogrammierung, beispielsweise während einer Rückholphase oder eines Werkstattprozesses, müssen die nichtflüchtigen Speicher sämtlicher Steuergeräte umprogrammiert werden. Eine nachträgliche Modifikation der Funktionseinheiten eines Kraftfahrzeuges erweist sich deshalb als äußerst aufwendig.
-
Da insbesondere während der Neuprogrammierung der nichtflüchtige Programmspeicher nicht ausgelesen werden kann, müssen die benötigten Programmteile zuvor in den flüchtigen Speicher abgelegt werden, wobei Sicherheitskriterien sowie Hardware- und Software-Ressourcen zu berücksichtigen sind. Ein Ansatz hierzu besteht in einer Umadressierung der Speicherverteilung durch die Verwendung von Pragmas. Unter Pragma-Anweisung werden compilerspezifische Erweiterungen der Programmiersprache C verstanden, welche meist eine Codegenerierung steuern. Als nachteilig erweist sich hierbei, dass derartige Pragmas für jedes auszuführende Programm einzeln implementiert und ausgeführt werden müssen.
-
Aus der Druckschrift
DE 100 27 006 A1 ist ein Verfahren zum Betreiben eines Steuergeräts sowie ein Steuergerät bekannt, bei welchen ein Zentralspeicher vorgesehen ist, in welchem alle Programme, die zur Steuerung beziehungsweise Regelung der Betriebsabläufe notwendig sind, abgelegt sind. Über indirekte Speicherzugriffe laden die Steuergeräte beim Start des Systems die benötigten Programme in ihren Arbeitsspeicher.
-
Aufgabe der vorliegenden Erfindung ist es, ein Verfahren sowie ein System zum Betreiben eines Steuergeräts anzugeben, mit welchen eine effiziente Speichernutzung, insbesondere Speicherzuordnung ermöglicht wird.
-
Gelöst wird diese Aufgabe durch den Gegenstand der unabhängigen Ansprüche. Weitere vorteilhafte Weiterbildungen sind Gegenstand der abhängigen Ansprüche.
-
Gemäß einer Ausführungsform wird diese Aufgabe gelöst durch ein Verfahren zum Betreiben eines Steuergeräts mit wenigstens einem nichtflüchtigen Speicher und wenigstens einem flüchtigen Speicher. Das Verfahren weist dabei folgende Schritte auf:
Zunächst wird ein Quellcode für ein auszuführendes Programm erzeugt, der erzeugte Quellcode dann entweder zu dem wenigstens einen nichtflüchtigen Speicher oder dem wenigstens einen flüchtigen Speicher zugeordnet und, falls der Quellcode dem wenigstens einen flüchtigen Speicher zugeordnet wird, benötigte Programmteile und zugehörige Daten in den wenigstens einen flüchtigen Speicher gespeichert.
-
Ein derartiges Verfahren hat den Vorteil, dass eine effiziente Speicherzuordnung ermöglicht wird. So erfolgt die Übernahme von im nichtflüchtigen Speicher enthaltenen benötigten Programmteilen in den flüchtigen Speicher durch einen automatischen, schnellen Datentransfer, ohne dass hierbei zusätzliche Bauteile oder softwarespezifische Setups vonnöten wären. Der erwähnte Datentransfer von dem wenigstens einen nichtflüchtigen Speicher in den wenigstens einen flüchtigen Speicher erfolgt hierbei, ausgehend von einem Quellcode des auszuführenden Programms, automatisch, so dass eine Mensch-Maschinen-Interaktion auf ein Minimum reduziert werden kann. Dies erleichtert dann erheblich die nachträgliche Modifikation, zum Beispiel bei der Neuprogrammierung des wenigstens einen nichtflüchtigen Speichers, insbesondere bei Rückrufaktionen oder Werkstattprozessen, ohne das hierbei weitere externe Tools vonnöten wären, da die Effizienz der Speicherzuordnung erheblich erhöht werden kann und die Programme im wenigstens einen flüchtigen Speicher der Steuergeräte ablaufen können, wodurch aufgrund von kürzeren Zugriffszeiten weiter ein schnellerer Programmablauf erzielt wird.
-
Die Zuordnung des erzeugten Quellcodes entweder zu dem wenigstens einen nichtflüchtigen Speicher oder dem wenigstens einen flüchtigen Speicher kann dabei auf Basis einer Look-up-Tabelle durchgeführt werden. Hierdurch können komplexe Zuordnungsverfahren des Quellcodes zu dem wenigstens einen nichtflüchtigen Speicher oder dem wenigstens einen flüchtigen Speicher durch eine schnellere und einfache Wertsuche ersetzt sowie Speicherplatz eingespart werden, da in den eigentlichen Datenbeständen nur der Quellcode beziehungsweise ein Kurzcode für den Quellcode geführt und die zugehörigen Bezeichnungen aus der Tabelle verwendet werden. Auch lassen sich der Erfassungsaufwand sowie die Fehlerwahrscheinlichkeit durch Eingabe des Codes beziehungsweise durch Verwendung von Auswahlboxen mit Vorbelegung möglicher Zuordnungen minimieren. So kann durch den Tabelleninhalt ein Quellcode beispielsweise während eines normalen Laufs, das heißt während ein Motorsteuergerät ein Fahrprogramm ausführt, dem wenigstens einen nichtflüchtigen Speicher zugeordnet werden, oder während einer Neuprogrammierung des wenigstens einen nichtflüchtigen Speichers, insbesondere im Laufe einer Rückholaktion oder eines Werkstattprozesses, dem wenigstens einen flüchtigen Speicher.
-
Gemäß einer Ausführungsform weist der Schritt des Speicherns von benötigten Programmenteilen in dem wenigstens einen flüchtigen Speicher dabei weiter folgende Schritte auf: Zunächst wird erfasst, ob ein benötigtes Programmteil direkt adressiert oder indirekt adressiert ist. Falls das benötigte Programmteil direkt adressiert ist, wird das benötigte Programmteil dann direkt in dem wenigstens einen flüchtigen Speicher gespeichert. Falls das benötigte Programmteil wiederum indirekt adressiert ist, werden alle möglichen Programmteile zu dem benötigten Programmteil erfasst und zumindest eines der möglichen Programmteile in dem wenigstens einen flüchtigen Speicher gespeichert. Die direkt adressierten benötigten Programmteile können somit ohne Umweg schnell und direkt in den wenigstens einen flüchtigen Speicher geschrieben werden, wodurch weiter die Ausführungsgeschwindigkeit laufender Programme im Wesentlichen unbeeinflusst bleibt. Weiter kann der erwähnte Transfer der indirekt adressierten benötigten Programmteile von dem wenigsten einen nichtflüchtigen Speicher in den wenigstens einen flüchtigen Speicher in einem einzigen Schritt erfolgen. Dabei wird über den zugehörigen Adressblock ein Adressverteiler, dessen Speicherinhalt mindestens eine Adresse von einem dem benötigten Programmteil zugeordneten möglichen Programmteil ist, adressiert und dessen Speicherinhalte in dem wenigstens einen flüchtigen Speicher unter den Adressen abgespeichert, die in den Programmen bei den einzelnen Datenaufrufen vorgesehen sind. Insgesamt resultiert dies somit in einer schnellen und automatischen Zuordnung von benötigten Programmteilen zu dem wenigstens einen nichtflüchtigen Speicher oder dem wenigstens einen flüchtigen Speicher, ohne dass hierbei weitere Bauteile, weitere externe Tools oder softwarespezifische Setups von Nöten wären.
-
Vorzugsweise werden die dem benötigten Programmteil zugeordneten möglichen Programmteilen zugeordneten Adressen wiederum in Form einer Look-up-Tabelle gespeichert. Hierdurch können wiederum komplexe Berechnungen durch eine in der Regel schnellere Wertsuche ersetzt und Speicherplatz eingespart werden, da in den eigentlichen Datenbeständen nur ein Kurzcode geführt wird und die zugehörigen Datensätze aus der Tabelle verwendet werden. Ferner kann der Tabelleninhalt bei Bedarf geändert werden, ohne dass hierbei Änderungen in den eigentlichen Daten selbst vorgenommen werden müssten. Die Look-up-Tabelle ordnet mindestens einem (benötigten) Programmteil mindestens einen zugeordneten (möglichen) Programmteil zu, beispielsweise indem diese in der die Tabelle gegenübergestellt sind. Die Look-up-Tabelle ordnet insbesondere mindestens einem (benötigten) Programmteil die Adresse oder Adressen mindestens eines zugeordneten (möglichen) Programmteils zu, beispielsweise indem die Adresse oder Adressen in der Tabelle gelistet sind.
-
Gemäß einer weiteren Ausführungsform können die benötigten Programmteile dann aus dem wenigstens einen flüchtigen Speicher ausgeführt werden. Von Vorteil ist dies insbesondere bei Neuprogrammierungen des wenigstens einen nichtflüchtigen Speichers, beispielsweise im Laufe von Rückholaktionen oder Werkstattprozessen, während dessen der wenigstens eine nichtflüchtige Speicher nicht ausgelesen werden kann. Da die Programme im wenigstens einen flüchtigen Speicher der Steuergeräte ablaufen, kann weiter, aufgrund der kürzeren Zugriffszeiten, ein schnellerer Programmablauf erzielt werden.
-
Mit der Erfindung wird auch ein System zum Betreiben eines Steuergeräts angegeben, welches einen Prozessor, der ausgebildet ist, einen Quellcode für ein auszuführendes Programm zu erzeugen, wenigstens einen nichtflüchtigen Speicher sowie wenigstens einen flüchtigen Speicher umfasst. Der Prozessor, der wenigstens eine nichtflüchtige Speicher und der wenigstens eine flüchtige Speicher sind dabei über ein Kommunikationssystem zum Austausch von Daten miteinander gekoppelt. Das System weist dabei weiter eine Zuordneeinheit zum Zuordnen des Quellcodes zu dem wenigstens einen nichtflüchtigen Speicher oder dem wenigstens einen flüchtigen Speicher sowie eine Speicherverwaltungseinheit zum Speichern von benötigten Programmteilen und zugehörigen Daten in dem wenigstens einen flüchtigen Speicher, falls der Quellcode dem wenigstens einen flüchtigen Speicher zugeordnet wird, auf.
-
Ein derartiges System hat den Vorteil, dass dieses eine effiziente Speicherzuordnung ermöglicht. So ist das System derart ausgebildet, die Übernahme von in nichtflüchtigen Speichern enthaltenen benötigten Programmteile in flüchtige Speicher durch einen automatischen, schnellen Datentransfer zu ermöglichen, ohne dass hierbei zusätzliche Bauteile oder softwarespezifische Setups vonnöten wären. Weiter kann auch eine Mensch Maschinen-Interaktion auf ein Minimum reduziert werden, da der erwähnte Datentransfer von dem wenigstens einen nichtflüchtigen Speicher in den wenigstens einen flüchtigen Speicher ausgehend von einem Quellcode des auszuführenden Programms automatisch durchgeführt wird. Dies erleichtert ganz erheblich nachträglich vorgenommene Modifikationen, zum Beispiel bei der Neuprogrammierung des wenigstens einen nichtflüchtigen Speichers, insbesondere im Laufe von Rückrufaktionen oder Werkstattprozessen, ohne das hierbei weitere externe Tools vonnöten wären, da die Effizienz der Speicherzuordnung erheblich erhöht werden kann und die Programme in dem wenigstens einen flüchtigen Speicher ablaufen können, wodurch aufgrund von kürzeren Zugriffszeiten weiter ein schnellerer Programmablauf erzielt werden kann.
-
Gemäß einer Ausführungsform sind dabei der Prozessor, die Zuordneeinheit sowie die Speicherverwaltungseinheit in einem ersten Steuergerät ausgebildet und der wenigstens eine nichtflüchtige Speicher sowie der wenigstens eine flüchtige Speicher in einem zweiten Steuergerät ausgebildet. Als vorteilhaft erweist sich dies bei nachträglich vorgenommene Modifikationen, zum Beispiel bei der Neuprogrammierung des wenigstens einen nichtflüchtigen Speichers, insbesondere im Laufe von Rückrufaktionen oder Werkstattprozessen, bei welchen für gewöhnlich ein Programmiergerät mit dem Kommunikationssystem oder direkt mit dem zu programmierendem Steuergerät verbunden wird, da hierbei keine weitere externe Tools vonnöten sind.
-
Dabei kann die Zuordneeinheit einen weiteren Speicher umfassen, in welchem eine Look-up-Tabelle, in welcher Zuordnungen für alle Quellcodes von auf dem Steuergerät auszuführenden Programmen abgelegt sind, gespeichert ist. Look-up-Tabellen sind in der Informatik und in der Digitaltechnik gebräuchlich, um Informationen statisch zu definieren und diese zur Laufzeit des Programms, insbesondere zur Vermeidung aufwendiger Berechnungen oder hohen Speicherverbrauchs zu benutzen, so dass diese hier einfach und ohne großen Aufwand implementiert und in dem weiteren Speicher abgelegt werden können, ohne dass kostspielige und aufwendige Umbauten vonnöten wären. Durch die Look-up-Tabelle können komplexe Zuordnungsverfahren der Quellcodes zu dem wenigstens einen nichtflüchtigen Speicher oder dem wenigstens einen flüchtigen Speicher durch eine schnellere und einfache Wertsuche ersetzt sowie Speicherplatz eingespart werden, da in den eigentlichen Datenbeständen nur der Quellcode beziehungsweise ein Kurzcode für den Quellcode geführt und die zugehörigen Bezeichnungen aus der Tabelle verwendet werden. Dies hat weiterhin den Vorteil, dass nur noch ein relativ kleiner weiterer Speicher vonnöten ist, wodurch weitere Kosten eingespart werden können. Auch lassen sich der Erfassungsaufwand sowie die Fehlerwahrscheinlichkeit durch Eingabe des Codes beziehungsweise durch Verwendung von Auswahlboxen mit Vorbelegung möglicher Zuordnungen minimieren. So kann durch den Tabelleninhalt ein Quellcode beispielsweise während eines normalen Laufs, das heißt während ein Motorsteuergerät ein Fahrzeugprogramm ausführt, dem wenigstens einen nichtflüchtigen Speicher des Steuergeräts zugeordnet werden oder, während einer Neuprogrammierung des wenigstens einen nichtflüchtigen Speichers, insbesondere im Laufe einer Rückholaktion oder eines Werkstattprozesses, dem wenigstens einen flüchtigen Speicher des Steuergeräts.
-
Gemäß einer Ausführungsform kann die Speicherverwaltungseinheit eine Adressverwaltung zum Erfassen, ob ein benötigtes Programmteil direkt adressiert oder indirekt adressiert ist, eine erste Auswerteeinheit zum Speichern des benötigten Programmteils in dem wenigstens einen flüchtigen Speicher, falls das benötigte Programmteil direkt adressiert ist, sowie eine zweite Auswerteeinheit, zum Erfassen aller möglichen Programmteile zu einem benötigten Programmteil und Speichern von zumindest einer Adresse von jedem der möglichen Programmteile in den wenigstens einen flüchtigen Speicher, falls das benötigte Programmteil indirekt adressiert ist, aufweisen. Schnelle Adressverwaltungen sind in der Informatik oder Digitaltechnik gebräuchlich und bezeichnen eine Datenbank, welche für die Eingabe von Adressen gedacht ist, sowie eine Datenbank mit einfachen Suchfunktionen. Diese ist schnell und einfach zu implementieren, so dass diese hier einfach und ohne großen Aufwand realisiert werden kann. Die direkt adressierten benötigten Programmteile können hierbei somit ohne Umweg schnell und direkt in den wenigstens einen flüchtigen Speicher geschrieben werden, wodurch weiter die Ausführungsgeschwindigkeit laufender Programme im Wesentlichen unbeeinflusst bleibt. Weiter ist eine derartige Speicherverwaltungseinheit derart ausgebildet, den erwähnten Transfer der indirekt adressierten Programmteile von dem wenigstens einen nichtflüchtigen Speicher in den wenigstens einen flüchtigen Speicher in einem einzigen Schritt durchzuführen. Dabei wird über den zugehörigen Adressblock ein Adressverteiler, dessen Speicherinhalt mindestens eine Adresse von dem benötigten Programmteil zugeordneten möglichen Programmteilen ist, adressiert und dessen Speicherinhalte in dem wenigstens einen flüchtigen Speicher unter den Adressen abgespeichert, die in dem auszuführenden Programm bei den einzelnen Datenaufrufen vorgesehen sind. Da die Zuordnung zu diesen Daten in dem Adressverteiler festgelegt ist und dieser Adressverteiler sich nun in dem wenigstens einen flüchtigen Speicher befindet, kann dieser beliebig oft ohne großen Aufwand geändert werden. Insgesamt ermöglicht eine derartige Speicherverwaltung somit eine schnelle und automatische Zuordnung von benötigten Programmteilen zu dem wenigstens einen nichtflüchtigen Speicher oder dem wenigstens einen flüchtigen Speicher, ohne dass hierbei weitere Bauteile, externe Tools oder softwarespezifische Setups vonnöten wären.
-
Die zweite Auswerteeinheit kann dabei weiter derart ausgebildet sein, die Adressen der möglichen Programmteile in Form einer Look-up-Tabelle zu speichern. Derartige Look-up-Tabellen sind in der Informatik und der Digitaltechnik gebräuchlich, so dass diese hier einfach und ohne großen Aufwand implementiert und realisiert werden können. Durch diese können wiederum komplexe Berechnungen durch eine in der Regel schnellere Wertsuche ersetzt und Speicherplatz eingespart werden, da in den eigentlichen Datenbeständen nur ein Kurzcode geführt wird und die zugehörigen Datensätze aus der Tabelle verwendet werden. Ferner kann der Tabelleninhalt bei Bedarf geändert werden, ohne dass hierbei Änderungen in den einzelnen Daten selbst vorgenommen werden müssen.
-
Weiter kann der wenigstens eine nichtflüchtige Speicher ein ROM (Read Only Memory) sein. Ein ROM oder Festwertspeicher ist ein Datenspeicher, auf den im normalen Betrieb nur lesend zugegriffen werden kann, welcher nicht-schreibbar und nichtflüchtig ist. Dieser speichert somit Daten und/oder Programme resistent und dauerhaft auch ohne permanente Stromversorgung. Weiter ist dieser neuprogrammierbar ausgebildet. Ein zuvor in dem ROM abgespeicherter Datensatz oder ein Programm kann dabei zunächst gelöscht werden und nachfolgend durch einen anderen Datensatz und/oder durch eine aktuellere Version des Programms und/oder durch ein anderes Programm ersetzt werden. Dabei ist der Speicher typischerweise sektorweise löschbar oder programmierbar ausgebildet, wobei einem Sektor mehrere Speicherzellen zugeordnet sind. Auch kann in diesem ein als Flashloader ausgebildetes Programm enthalten sein, welches typischerweise mehrere Programmfunktionen umfasst, die zum Verwalten des Speichers verwendet werden können, beispielsweise zum Löschen, zum Programmieren oder zum Verifizieren. Die Programmfunktionen des Programms, welche abgearbeitet werden sollen, können dabei beispielsweise mittels eines Programmiergeräts vorgegeben werden, das mit dem Kommunikationssystem gekoppelt ist.
-
Der wenigstens ein flüchtiger Speicher ist bevorzugt als RAM (Random Access Memory) ausgebildet. Ein RAM oder Direktzugriffspeicher ist ein Informationsspeicher, der besonders als Arbeitsspeicher Verwendung findet, meist in Form von Speichermodulen. Somit kann typischerweise jede Speicherzelle des RAM über ihre zugeordnete Adresse entweder lesend oder schreibend angesprochen werden. Der RAM muss dabei typischerweise nicht sequenziell oder in Sektoren ausgelesen werden, sondern erlaubt einen wahlfreien Zugriff. Dabei ist der Speicher typischerweise ausgebildet, Daten und/oder Softwareprogramme nur solange abzuspeichern, solange eine ausreichende Spannungsversorgung des Speichers gewährleistet ist. Der Speicher ist somit nicht dazu geeignet, Daten und/oder Softwareprogramme dauerhaft abzuspeichern.
-
Das Kommunikationssystem kann dabei durch serielle Kommunikationsbusse gebildet werden. Beispiele hierfür sind ein CAN-Bussystem, ein TTP/C oder RS-232. So ist es üblich, jeweils verschiedene Steuergeräte oder Komponenten einzelner Steuergeräte zu einem Netzwerk zusammenzufassen, welche über ein Bussystem miteinander kommunizieren. Verschiedene Netzwerke können dann wiederum über Gateways miteinander verbunden werden, so dass auch Daten von den einzelnen Netzwerken ausgetauscht werden können.
-
Mit der Erfindung wird auch ein Kraftfahrzeug angegeben, welches ein oben beschriebenes System aufweist. Als System wird eine Vorrichtung bezeichnet, das hierin genannte Merkmale aufweist. Das System kann verteilt sein oder innerhalb einer Motorsteuerung oder anderer Steuerungseinrichtungen eines Fahrzeugs vorgesehen sein. Ein derartiges System innerhalb eines Kraftfahrzeugs hat den Vorteil, dass mit diesem eine effizientere Speicherzuordnung eines entsprechenden Steuergeräts ermöglicht wird. So erfolgt die Übernahme von in nichtflüchtigen Speichern enthaltenen benötigten Programmteilen in den flüchtigen Speicher durch einen automatischen, schnellen Datentransfer, ohne dass hierbei zusätzliche Bauteile oder softwarespezifische Setups vonnöten wären. Dies erleichtert ganz erheblich nachträgliche Modifikationen, zum Beispiel bei der Neuprogrammierung des wenigstens einen nichtflüchtigen Speichers, insbesondere im Laufe von Rückrufaktionen oder Werkstattprozessen, da die Effizienz der Speicherzuordnung erheblich erhöht werden kann und die Programme in wenigstens einem flüchtigen Speicher des Steuergeräts ablaufen können. Hierdurch kann aufgrund von kürzeren Zugriffszeiten weiterhin ein schnellerer Programmablauf erzielt werden. Beispiele für derartige Steuergeräte eines Kraftfahrzeuges sind ein Motorsteuergerät, ein Getriebesteuergerät, ein ESP-, ABS- oder ASR-Steuergerät oder ein Steuergerät zur Steuerung der Anzeigen eines Armaturenbretts des Kraftfahrzeuges.
-
Zusammenfassend ist festzustellen, dass mit der vorliegenden Erfindung ein Verfahren sowie ein System zum Betreiben eines Steuergeräts angegeben werden, mit welchen eine effiziente Speicherzuordnung von Programmen zwischen nichtflüchtigen Speichern und flüchtigen Speichern ermöglicht wird.
-
Da diese auf einen automatischen, schnellen Datentransfer basieren, sind hierbei keine zusätzlichen Bauteile oder softwarespezifische Setups vonnöten. Auch kann eine Mensch-Maschinen-Interaktion auf ein Minimum reduziert werden.
-
Hierdurch wiederum können nachträgliche Modifikationen des Steuergeräts, zum Beispiel eine Neuprogrammierung des wenigstens einen nichtflüchtigen Speichers, insbesondere bei Rückrufaktionen oder Werkstattprozessen, erheblich erleichtert werden, da die Effizienz der Speicherzuordnung erheblich erhöht werden kann und die Programme in wenigstens einem flüchtigen Speicher des Steuergeräts ablaufen können, ohne das hierbei weitere externe Tools vonnöten wären.
-
Die Erfindung wird nun anhand der beigefügten Figuren näher erläutert.
-
1 zeigt ein schematisches Blockschaltbild eines Systems zum Betreiben eines Steuergeräts gemäß Ausführungsformen der Erfindung;
-
2 zeigt ein Flussdiagramm eines Verfahrens zum Betreiben eines Steuergeräts gemäß Ausführungsformen der Erfindung.
-
1 zeigt ein schematisches Blockschaltbild eines Systems 1 zum Betreiben eines Steuergeräts 19 gemäß Ausführungsformen der Erfindung.
-
Das dargestellte System 1 umfasst ein Steuergerät 19, welches einen Prozessor 2, einen nichtflüchtigen Speicher 3 und einen flüchtigen Speicher 4 aufweist. Die beiden Speicher 3, 4 sind dabei in einem Mikrocontroller 5 integriert, welcher Bestandteil des Steuergeräts 19 ist. Der nichtflüchtige Speicher 3 und/oder der flüchtige Speicher 4 können grundsätzlich aber auch als externe Speicherbauelemente außerhalb des Mikrocontrollers 5 im Steuergerät 19 ausgebildet sein. Die genannten Funktionselemente sind dabei untereinander über ein Kommunikationssystem 6 zum Austausch von Daten verbunden.
-
Weiter umfasst das Steuergerät 19 der 1 eine Zuordneeinheit 7, welche derart ausgebildet ist, einen durch den Prozessor 2 für ein auszuführendes Programm erzeugten Quellcode entweder dem nichtflüchtigen Speicher 3 oder dem flüchtigen Speicher 4 zuzuordnen, sowie eine Speicherverwaltungseinheit 8 zum Speichern von benötigten Programmteilen und zugehörigen Daten in dem flüchtigen Speicher 4, falls der Quellcode dem flüchtigen Speicher 4 zugeordnet wird.
-
Bei den Ausführungsformen der 1 umfasst das System 1 nur ein Steuergerät 19. Ferner können der Prozessor 2, die Zuordneeinheit 7 sowie die Speicherverwaltungseinheit 8 in einem ersten Steuergerät und der nichtflüchtige Speicher 3 sowie der flüchtige Speicher 4 in einem zweiten Steuergerät ausgebildet sein. Als vorteilhaft erweist sich dies bei nachträglich vorgenommene Modifikationen, zum Beispiel bei der Neuprogrammierung des wenigstens einen nichtflüchtigen Speichers, insbesondere im Laufe von Rückrufaktionen oder Werkstattprozessen, bei welchen für gewöhnlich ein Programmiergerät mit einem Kommunikationssystem oder direkt mit dem zu programmierendem Steuergerät verbunden wird, da hierbei keine weitere externe Tools vonnöten sind.
-
Wie 1 zeigt, umfasst die Zuordneeinheit 7 dabei einen weiteren Speicher 9, in welchem eine Tabelle abgelegt ist, welche als Look-up-Tabelle ausgebildet ist und in welcher Zuordnungen für alle Quellcodes von auf dem Steuergerät 19 auszuführenden Programmen abgelegt sind.
-
Die dargestellte Speicherverwaltungseinheit 8 weist dabei eine Adressverwaltung 10 zum Erfassen, ob ein benötigtes Programmteil direkt adressiert oder indirekt adressiert ist, auf. Auch ist eine erste Auswerteeinheit 11 zu erkennen, welche ausgebildet ist, das benötigte Programmteil im flüchtigen Speicher 4 zu speichern, falls das benötigte Programmteil direkt adressiert ist.
-
Auch ist eine zweite Auswerteeinheit 12 zu erkennen zum Erfassen aller möglichen Programmteile zu einem benötigten Programmteil und Speichern von zumindest einer Adresse von jedem der möglichen Programmteile in den flüchtigen Speicher 4, falls das benötigte Programmteil indirekt adressiert ist. 1 zeigt dabei einen in dem nichtflüchtigen Speicher 3 in einem ersten Speicherbereich 13 abgelegten Adressblock und in weiteren Speicherbereichen 14 jeweils einen Datenblock mit jeweils einem vorangestellten Adressverteiler. Die einzelnen Blöcke sind dabei folgendermaßen verknüpft: Die Speicherinhalte des Adressblocks sind die Adressen der Adressverteiler. Die Adressverteiler enthalten dann entweder nur eine Adresse oder eine ganze Reihe von Adressen in Form eines Vektors, unter den spezifische Daten in den einzelnen Datenblöcken abgelegt sind.
-
Die dargestellte zweite Auswerteeinheit 12 ist wiederum derart ausgebildet, die zugeordneten Datenblöcke in Form einer Look-up-Tabelle zu speichern.
-
In 1 ist der nichtflüchtige Speicher 3 als ROM (Read Only Memory) 15 ausgebildet. Dieser ist ein Festwertspeicher, auf welchen im normalen Betrieb nur lesend zugegriffen werden kann, welcher nicht-schreibend und nichtflüchtig ist. Ferner kann der nichtflüchtige Speicher 3 beispielsweise auch als Festwertspeicher ausgebildet sein. Dieser speichert Daten und/oder Programme somit resistent und dauerhaft, auch ohne permanente Spannungsversorgung. Auch ist dieser neuprogrammierbar ausgebildet. Ein zuvor in dem nichtflüchtigen Speicher 3 abgespeicherter Datensatz oder ein Programm kann dabei zunächst gelöscht werden und nachfolgend durch einen anderen Datensatz und/oder durch eine aktuellere Version des Programms und/oder durch ein anderes Programm ersetzt werden.
-
Gemäß den Ausführungsformen der 1 handelt es sich bei dem flüchtigen Speicher 4 weiter um ein RAM (Random Access Memory) 16. Dieser ist ein Informationsspeicher, welcher besonders als Arbeitsspeicher Verwendung findet. Somit kann typischerweise jede Speicherzelle des flüchtigen Speichers 4 über ihre zugeordnete Adresse entweder lesend oder schreibend angesprochen werden. Dabei ist der flüchtige Speicher 4 typischerweise ausgebildet, Daten und/oder Softwareprogramme nur solange abzuspeichern, solange eine ausreichende Spannungsversorgung des flüchtigen Speichers 4 gewährleistet ist. Der flüchtige Speicher 4 ist somit nicht dazu geeignet, Daten und/oder Softwareprogramme dauerhaft abzuspeichern.
-
Weiter wird das dargestellte Kommunikationssystem 6 des Steuergeräts 19 durch serielle Kommunikationsbusse 17 gebildet. Bei einem dargestellten seriellen Kommunikationsbus handelt es sich dabei um einen CAN-Bus 18. Ferner können diese aber auch ein TTP/C oder RS-232 sein.
-
2 zeigt ein Flussdiagramm eines Verfahrens 20 zum Betreiben eines derartigen Steuergeräts gemäß Ausführungsformen der Erfindung. Komponenten und Bauteile mit gleicher Funktion oder Konstruktion wie in 1 tragen dieselben Bezugszeichen und werden nicht extra erläutert.
-
Wie 2 zeigt, weist das Verfahren 20 dabei folgende Schritte auf: Zunächst wird in einem ersten Schritt 21 ein Quellcode für ein auszuführendes Programm erzeugt, dieser Quellcode in einem weiteren Schritt 22 entweder dem nichtflüchtigen Speicher 3 oder dem flüchtigen Speicher 4 zugeordnet und in einem folgenden Schritt 23 benötigte Programmteile und zugehörige Daten in dem flüchtigen Speicher 4 gespeichert, falls der Quellcode dem flüchtigen Speicher 4 zugeordnet wird.
-
Somit wird eine effiziente Speicherzuordnung ermöglicht durch einen automatischen schnellen Datentransfer, ohne dass hierbei zusätzliche Bauteile oder softwarespezifische Setups vonnöten wären. Dies erleichtert ganz erheblich nachträgliche Modifikationen, beispielsweise bei der Neuprogrammierung des nichtflüchtigen Speichers, insbesondere im Laufe von Rückrufaktionen oder Werkstattprozessen, während dessen der Inhalt des nichtflüchtigen Speichers nicht ausgelesen werden kann, ohne das hierbei weitere externe Tools vonnöten wären, da die Effizienz der Speicherzuordnung erheblich erhöht werden kann und die Programme im flüchtigen Speicher 4 des Steuergeräts 1 ablaufen können.
-
Gemäß den Ausführungsformen der 2 erfolgt der Schritt 22 des Zuordnens eines erzeugten Quellcodes, welcher durch den Prozessor 2 für ein auszuführendes Programm erzeugt wurde, entweder zu dem nichtflüchtigen Speicher 3 oder dem flüchtigen Speicher 4 durch ein Look-up auf Basis der in dem weiteren Speicher 9 hinterlegten Look-up-Tabelle.
-
Falls in dem Schritt 22 der erzeugte Quellcode dem flüchtigen Speicher 4 zugeordnet wird, werden in dem folgenden Schritt die benötigten Programmteile in dem flüchtigen Speicher 4 gespeichert.
-
Gemäß den Ausführungsformen der 2 weist dieser Schritt 23 dabei weiter folgende Schritte auf: Zunächst wird in einem Schritt 24 erfasst, ob ein benötigtes Programmteil direkt adressiert oder indirekt adressiert ist. Falls das benötigte Programmteil direkt adressiert ist, wird dieses in einem Schritt 25 direkt in dem flüchtigen Speicher 4 gespeichert. Falls das benötigte Programmteil wiederum indirekt adressiert ist, werden in einem Schritt 26 alle möglichen Programmteile zu dem benötigten Programmteil erfasst und mindestens ein mögliches Programmteil in dem flüchtigen Speicher 4 gespeichert. Gemäß dem Flussdiagramm der 2 bricht das Verfahren ab und wird eine Fehlermeldung ausgegeben, falls ein direktes Speichern der direkt adressierten, benötigten Programmteile oder ein Speichern von einem benötigten Programmteil zugeordneten Adressblock zugeordneten Datenblöcken in den flüchtigen Speicher 4 nicht möglich ist.
-
Wird in dem Schritt 22 wiederum ermittelt, dass der erzeugte Quellcode dem nichtflüchtigen Speicher zugeordnet wird, führt das Verfahren direkt mit Schritt 24 fort.
-
Gemäß den Ausführungsformen der 2 werden die Adressen von den möglichen Programmteilen, dabei wiederum in Form einer Look-up-Tabelle gespeichert.
-
Weiter zeigt 2 einen abschließenden Schritt 27, in welchem die zur Ausführung des Programms nötigen Programmteile aus dem flüchtigen Speicher 4 ausgeführt werden, falls der Quellcode dem flüchtigen Speicher 4 zugeordnet wird.
-
Bezugszeichenliste
-
- 1
- System
- 2
- Prozessor
- 3
- Nichtflüchtiger Speicher
- 4
- Flüchtiger Speicher
- 5
- Mikrocontroller
- 6
- Kommunikationssystem
- 7
- Zuordneeinheit
- 8
- Speicherverwaltungseinheit
- 9
- Weiterer Speicher
- 10
- Adressverwaltung
- 11
- erste Auswerteeinheit
- 12
- zweite Auswerteeinheit
- 13
- erster Speicherbereich
- 14
- weitere Speicherbereiche
- 15
- ROM
- 16
- RAM
- 17
- serielle Datenbuse
- 18
- CAN-Bus
- 19
- Steuergerät
- 20
- Verfahren
- 21
- Verfahrensschritt
- 22
- Verfahrensschritt
- 23
- Verfahrensschritt
- 24
- Verfahrensschritt
- 25
- Verfahrensschritt
- 26
- Verfahrensschritt
- 27
- Verfahrensschritt
-
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 Patentliteratur
-