-
Diese
Erfindung bezieht sich auf eine Fahrzeugsteuerungsvorrichtung, welche
fähig ist,
Steuerungsprogramme wiederzuverwenden und eine Verarbeitungszeitverzögerung bei
verteilter Verarbeitung zu verringern.
-
Fahrzeugsteuerungsvorrichtungen
steuern ein Fahrzeug durch Ausführen
einer programmierten Rechenverarbeitung basierend auf Fahrzeuginformationen
von Sensoren und Ausgeben von Antriebsinformationen an Aktoren gemäß Ergebnissen
der Rechenverarbeitung. Diese Fahrzeugsteuerung wird durch Ausführen von
Fahrzeugsteuerungsprogrammen verwirklicht. Diese Fahrzeugsteuerungsprogramme
wurden ausgeklügelt,
so dass Anwendungsprogramme wiederverwendet werden können.
-
Bei
einem Ansatz ist eine ECU mit einem Programm geladen, welches wie
gemäß 7 gezeigt
in eine Anwendungsschicht 610, eine Schnittstellenschicht 620 und
eine Hardwareschicht 700 aufgeteilt ist. Jede Schicht ist
eine Einheit von Programmen. Die Anwendungsschicht 610 besteht
aus Verarbeitungsprogrammen zum Ausführen der Rechenverarbeitung.
Die Hardwareschicht 700 umfasst einen Virtuellsensorteil 630,
der aus Verarbeitungsprogrammen zum Beschaffen von Informationen
besteht, die von Sensoren erfasst werden, einen Virtuellaktorteil 640,
der aus Verarbeitungsprogrammen zum Ausgeben von Antriebsinformationen
an Aktoren besteht, und einen Kommunikationstreiber 650, welcher
ein Verarbeitungsprogramm zum Ausführen einer Kommunikation mit
anderen ECUs darstellt. Durch Trennen der Hardwareschicht (von Hardware abhängige Verarbeitungsprogramme) 700,
welche sich mit Fahrzeugtyp oder -klasse oder Ähnlichem ändern könnte, von der Anwendungsschicht 610 kann
die Anwendungsschicht verwendet werden wie sie ist und die können Anwendungsprogramme
wiederverwendet werden, auch wenn die Hardware geändert wird.
-
In
der Praxis sind mehrere ECUs (zum Beispiel A-ECU und B-ECU) wie
gemäß 8 gezeigt über eine
Kommunikationsleitung 500 zur verteilten Verarbeitung verbunden.
Gemäß 8 wird
angenommen, dass ein Aktor, der von dem Virtuellaktorteil 640a von
der A-ECU angetrieben wird, mit Rechenergebnissen von der Anwendungsschicht 610b von der
B-ECU gesteuert wird.
-
Zu
dieser Zeit benötigt
die Anwendungsschicht 610b von der B-ECU nicht die Informationen darüber, wo
sich das Verarbeitungsprogramm befindet, zu welchem die Antriebsinformationen
ausgegeben werden sollen, weil die Schnittstellenschicht 620b von
der B-ECU den Ort von dem Verarbeitungsprogramm verwaltet, das heißt das Ausgabeziel
für die
Antriebsinformationen. Das heißt,
durch die Schnittstellenschicht 620b wird Positionsfreiheit
oder -transparenz verwirklicht.
-
Im
Speziellen bestimmt die Schnittstellenschicht 620b ein
Ausgabeziel, das von der Anwendungsschicht 620b von der
B-ECU spezifiziert ist, und sendet die Antriebsinformationen über den
Kommunikationstreiber 650b an die A-ECU. Das heißt, die
Antriebsinformationen werden übermittelt
in dem Ablauf B-ECU-Kommunikationstreiber 650b → Kommunikationsleitung 500 → A-ECU-Kommunikationstreiber 650a → A-ECU-Schnittstellenschicht 620a → A-ECU-Virtuellaktorteil 640a.
Auch wenn das Verarbeitungsprogramm zum Antreiben der Hardware,
das heißt
der Steuerungsgegenstand, als ein Verarbeitungsprogramm in einer
anderen ECU vorliegt, besteht somit in der Anwendungsschicht 610b von
der B-ECU keinerlei Bedarf, dieses in Betracht zu ziehen. Folglich
kann eine verteilte Verarbeitung zwischen mehreren ECUs leicht verwirklicht
werden. Hierbei ist zu beachten, dass „die Anwendung macht ..." bedeutet, dass eine
Funktion von der Anwendungsschicht durch eine CPU von der ECU gezeigt
wird, die ein Verarbeitungsprogramm ausführt, das als eine Anwendungsschicht
aufgebaut ist. Um der Kürze
willen werden jedoch geeigneter Weise Ausdrücke verwendet, die das Verarbeitungsprogramm
als das Subjekt haben.
-
Wenn
der vorstehende Programmaufbau bei einer Steuerung von einem Motor,
einem Antriebsstrang oder Ähnlichem
eingesetzt wird, ist relativ viel Echtzeitbetrieb erforderlich.
Es können
jedoch Fälle auftreten,
in welchen die verteilte Verarbeitung nicht verwirklicht werden
kann. Gemäß 8 zum
Beispiel besteht eine Möglichkeit,
dass Antriebsinformationen von der Anwendungsschicht 610b von
der B-ECU nicht in Echtzeit an den Virtuellaktorteil 640a von
der A-ECU übermittelt
werden. Es wird hier ein Einspritzsystem angenommen, bei dem ein
Einspritzventil von dem Virtuellaktorteil 640a von der
A-ECU angetrieben wird und das Einspritzventil von der Anwendungsschicht 610b von
der B-ECU gesteuert wird. In diesem Fall ist es notwendig, dass
ein Einspritzbefehl von der Anwendungsschicht 610b von
der B-ECU in Echtzeit
an den Virtuellaktorteil 640a von der A-ECU gesendet wird. Wenn die Kommunikationsleitung 500 jedoch
für eine
andere Kommunikation verwendet wird, wird die Übermittlung von Antriebsinformationen
verzögert.
-
Dies
wird auch beim Eingeben von Fahrzeuginformationen von den verschiedenen
Sensoren geschehen. Die Fahrzeuginformationen, die von dem gemäß 7 gezeigten
Virtuellsensorteil 630 beschafft werden, werden von der
Anwendungsschicht 610 in Intervallen von zum Beispiel 1
ms abgetastet und gemittelt. Wenn jedoch eine verteilte Verarbeitung
versucht wird, kann die Anwendungsschicht 610b von der
B-ECU Fahrzeuginformationen, die von dem Virtuellsensorteil 630a von
der A-ECU beschafft werden, nicht in Intervallen von 1 ms abtasten,
weil eine Kommunikationsverarbeitung über die Kommunikationsleitung 500 durchgeführt wird.
-
Die
Druckschrift
EP 0 513 701 offenbart
ein Netzwerk mit einer Vielzahl von Knoten, welche Daten über das
Netzwerk oder Sensoren empfangen, die empfangenen Daten in vorbestimmten
Routinen verarbeiten und Aktoren betreiben und/oder Daten über das
Netzwerk aussenden, wobei bei diesem Prozess eine Vielzahl von Schritten
und Steuerungsroutinen ausgeführt
wird, die in einem Netzwerkprotokoll definiert sind und den Kommunikationsablauf sichern,
die Daten in Form von Variablen verarbeitet werden, welche die Daten,
die einer Funktion entsprechen und die relevante Funktion charakterisieren,
und Daten, die den Kommunikationsablauf und Prozessabläufe initialisieren,
die entsprechende Steuerungsroutinen steuern, enthalten. Es ist
möglich,
ausschließlich
mit den Variablen auf der Anwendungsebene zu arbeiten und zu erlauben,
dass die Kommunikation in einer Art und Weise abläuft, die
für die
Variablenarten definiert ist.
-
Die
Druckschrift
EP 0 514 962 offenbart
eine Servolenkeinheit mit veränderlicher
Lenkkraft unter einer Steuerung von einem Mikrocomputer. Die Lenkeinheit
ist in der Lage, einen Lenkkraftaufwand als Antwort auf einen Steuerstrom
zu verändern.
Der Steuerstrom ist als eine Funktion von einer durchschnittlichen
Fahrzeuggeschwindigkeit entwickelt. Im Fall einer Fahrzeugverlangsamung
wird eine lange Mittelungszeit verwendet, um rasche Lenkkraftaufwandsänderungen
während
dem Bremsen zu verhindern. Im Fall einer Fahrzeugbeschleunigung
wird eine kurze Mittelungszeit für
eine rasche Antwort eines Lenkkraftaufwands auf Geschwindigkeitserhöhungen verwendet.
-
Eine
Aufgabe der Erfindung ist es, eine verteilte Verarbeitungen sogar
bei einer Steuerung zu ermöglichen,
welche relativ viel Echtzeitbetrieb verlangt, während eine Wiederverwendbarkeit
von Anwendungsprogrammen sichergestellt wird, die Fahrzeugsteuerungsprogramme
bilden.
-
Diese
Aufgabe wird durch eine Fahrzeugsteuerungsvorrichtung gemäß Anspruch
1 erreicht. Weitere vorteilhafte Entwicklungen sind in den abhängigen Ansprüchen dargelegt.
-
Gemäß einem
Aspekt der Erfindung hat eine Fahrzeugsteuerungsvorrichtung mehrere
Steuerungseinheiten, welche auf verteilte Weise mit Fahrzeugsteuerungsprogrammen
geladen sind. Das Fahrzeugsteuerungsprogramm in jeder Steuerungseinheit
umfasst eine Anwendungsschicht zum Ausführen der Rechenverarbeitung
und eine Sensor-/Aktorschicht zum Ausführen einer Verarbeitung von Fahrzeuginformationen
von Sensoren und Antriebsinformationen für Aktoren.
-
Das
Fahrzeugsteuerungsprogramm umfasst weiter eine Schnittstellenschicht
zum Beschaffen der Antriebsinformationen von der Anwendungsschicht und
Senden dieser an eine andere Steuerungseinheit und auch zum Beschaffen
der Antriebsinformationen, die von der anderen Steuerungseinheit
gesendet werden. Es umfasst auch eine Informationssteuerungsschicht
zum Ausgeben der Antriebsinformationen, die von der Schnittstellenschicht
beschafft werden, zu einem geeigneten Zeitpunkt an die Sensor-/Aktorschicht.
Vorzugsweise gibt die Anwendungsschicht die Antriebsinformationen
in einer festen Form aus und wandelt die Informationssteuerungsschicht
die Antriebsinformationen in Informationen um, die direkt von der
Sensor-/Aktorschicht verarbeitbar sind, und gibt sie aus.
-
Gemäß einem
weiteren Aspekt der Erfindung umfasst das Fahrzeugsteuerungsprogramm weiter
eine Informationssteuerungsschicht zum Beschaffen und Ausgeben der
Fahrzeuginformationen, die von der Sensor-/Aktorschicht beschafft
werden, zu einem geeigneten Zeitpunkt. Weiter umfasst es eine Schnittstellenschicht
zum Beschaffen und Ausgeben der Fahrzeuginformationen, die von der
Informationssteuerungsschicht ausgegeben werden, auf der Grundlage
einer Anforderung von der Anwendungsschicht an die Anwendungsschicht,
Stellen einer Anforderung für
die Fahrzeuginformationen an eine andere Steuerungseinheit, Beschaffen
und Ausgeben der Fahrzeuginformationen, die mit Bezug auf diese
Anforderung gesendet werden an die Anwendungsschicht, und Senden
der Fahrzeuginformationen von der Informationssteuerungsschicht,
wenn eine Anforderung für
die Fahrzeuginformationen von einer anderen Steuerungseinheit gestellt
wird. Vorzugsweise gibt die Sensor-/Aktorschicht die Fahrzeuginformationen
in einer Form aus, die den Sensoren entspricht, und wandelt die
Informationssteuerungsschicht die Fahrzeuginformationen in Informationen um,
die direkt von der Anwendungsschicht verarbeitbar sind, und gibt
sie aus.
-
Die
vorstehenden und weitere Aufgaben, Merkmale und Vorteile der Erfindung
werden eher aus der folgenden detaillierten Beschreibung ersichtlich,
die mit Bezug auf die zugehörigen
Zeichnungen vorgenommen wird. Bei den Zeichnungen zeigen:
-
1 ein
Blockdiagramm, das einen Aufbau von einer Fahrzeugsteuerungsvorrichtung
gemäß einem
Ausführungsbeispiel
der Erfindung zeigt;
-
2 ein
Blockdiagramm, das einen Hardwareaufbau einer in dem Ausführungsbeispiel
verwendeten ECU zeigt;
-
3 ein
Blockdiagramm, das einen Programmaufbau von der ECU in dem Ausführungsbeispiel
zeigt;
-
4 ein
Blockdiagramm, das eine Bedingung von einer Antriebsinformationsübermittlung zwischen
den ECUs in dem Ausführungsbeispiel zeigt;
-
5 ein
Blockdiagramm, das eine Fahrzeuginformationsübermittlung zwischen den ECUs
in dem Ausführungsbeispiel
zeigt;
-
6A und 6B schematische
Diagramme, die die Antriebsinformationsübermittlung zwischen den ECUs
im Falle eines Antreibens eines Einspritzventils bzw. die Fahrzeuginformationsübermittlung
zwischen den ECUs im Falle eines Erfassens eines durchschnittlichen
Zuführungsrohrdrucks
zeigen;
-
7 ein
Blockdiagramm, das einen Programmaufbau von jeder ECU in einer Fahrzeugsteuerungsvorrichtung
gemäß einem
Stand der Technik zeigt;
-
8 ein
Blockdiagramm, das eine Antriebsinformationsübermittlung zwischen ECUs gemäß dem Stand
der Technik zeigt.
-
Bezugnehmend
auf 1 hat eine Fahrzeugsteuerungsvorrichtung 1 mehrere
elektronische Steuerungseinheiten (ECUs) 10, so dass durch
diese mehreren ECUs 10 unterschiedliche Teile von einem Fahrzeug
gesteuert werden. Mit allen ECUs 10 sind verschiedene Sensoren 30 verbunden,
welche Zustände
von dem Fahrzeug als Fahrzeuginformationen erfassen, und verschiedene
Aktoren 40 verbunden, welche unterschiedliche Teile von
dem Fahrzeug als Antwort auf Antriebsinformationen von den ECUs 10 antreiben.
Die ECUs 10 bilden ein fahrzeuginternes Netzwerk mit einem
Protokoll, wie etwa CAN, um miteinander zu kommunizieren.
-
Wenn
die ECU 10 zum Beispiel zum Durchführen einer Steuerung von einem
Motor dient, dienen die Sensoren 30 zum Erfassen des Lauf-
bzw. Betriebszustands von dem Motor. Die Sensoren 30 umfassen
einen Rotationssensor zum Erzeugen eines impulsförmigen Signals jedes Mal dann,
wenn sich eine Kurbelwelle von dem Motor um einen vorbestimmten
Winkel dreht, einen Bezugspositionssensor zum Erzeugen eines impulsförmigen Signals
jedes Mal dann, wenn der Kolben von einem vorgegebenen Zylinder
von dem Motor eine vorbestimmte Position erreicht (zum Beispiel
einen oberen Totpunkt, TDC: "top
dead center"), einen Kühlflüssigkeitstemperatursensor
zum Erfassen der Temperatur von Kühlwasser von dem Motor, einen
Zuführungsrohrdrucksensor
zum Erfassen des Drucks von einem Zuführungsrohr von dem Motor und
einen Sauerstoffkonzentrationssensor zum Messen einer Sauerstoffkonzentration
in Abgasemissionen. Die Aktoren 40 umfassen Einspritzventile
(Kraftstoffeinspritzeinrichtungen) und Zünder (Zündungseinrichtungen), die an
dem Motor angebracht sind.
-
Wie
gemäß 2 gezeigt
hat jede ECU 10 eine Eingabeschaltung 21 zum Eingeben
von Signalen von den Sensoren 30 und Durchführen von
Signalverlaufformung und A/D-Wandlung, einen Mikrocomputer 11 zum
Durchführen
verschiedener Verarbeitungen zum Steuern des Fahrzeugs basierend
auf Fahrzeuginformationen von der Eingabeschaltung 21,
eine Ausgabeschaltung 22 zum Antreiben der Aktoren 40 gemäß Antriebsinformationen
von dem Mikrocomputer 11 und eine Kommunikationsschnittstelle
(I/F) 23 zum Durchführen
von Kommunikationen mit anderen ECUs 10 über eine
Kommunikationsleitung 50. Diese Kommunikationsleitung 50 verbindet die
ECUs 10 miteinander, um das fahrzeuginterne Netzwerk zu
bilden.
-
Der
Mikrocomputer 11 hat eine zentrale Verarbeitungseinheit
(CPU) 11a zum Ausführen
von Programmen, einen ROM 11b, der Programme, die von der
CPU 11a auszuführen
sind, und Steuerungsdaten speichert, auf die während der Ausführung dieser Programme
Bezug zu nehmen ist, einen RAM 11c zum vorübergehenden
Speichern von Berechnungsergebnissen, die von der CPU 11a erhalten
werden, und eine Eingabe-/Ausgabeschaltung (E/A) 11d zum Austauschen
von Signalen mit der Eingabeschaltung 21, der Ausgabeschaltung 22 und
der Kommunikations-I/F 23. Der Mikrocomputer 11 umfasst
auch verschiedene (nicht gezeigte) Register, Freilaufzähler und
andere Schaltungen.
-
Fahrzeugsteuerungsprogramme,
die in die Fahrzeugsteuerungsvorrichtung 1 geladen werden, werden
unter den ROMs 11b von den Mikrocomputern 11 von
den ECUs 10 auf verteilte Weise beibehalten. Durch Ausführung des
Programms von dem ROM 11b durch die CPU 11a arbeitet
jede ECU 10 wie programmiert, um eine Fahrzeugsteuerung
einschließlich
der Motorsteuerung, der Zündungssteuerung
und Ähnlichem
zu verwirklichen.
-
In
diesem Ausführungsbeispiel
ist das Programm, das in dem ROM 11b von dem Mikrocomputer 11 von
jeder ECU 10 gespeichert ist, definiert, um in den mehreren
ECUs 10 sogar bei einer Steuerung von dem Motor und dem
Antriebstrang eine verteilte Verarbeitung zu verwirklichen. Die
verteilte Verarbeitung umfasst eine Rechenverarbeitung basierend
auf Fahrzeuginformationen von den Sensoren 30, die mit einer
bestimmten ECU 10 verbunden sind, die von einer anderen
ECU 10 ausgeführt
wird, und ein Ausgeben von Antriebsinformationen für den Aktor 40,
der mit einer bestimmten ECU 10 verbunden ist, das von einer
anderen ECU 10 durchgeführt
wird.
-
Dieses
Programm von jeder ECU 10 ist wie gemäß 3 gezeigt
definiert. Die Programme, die in die ECUs 10 geladen werden,
sind von objektorientierter Art und bestehen aus einer Anwendungsschicht 61,
einer Schnittstellenschicht 62, einem Virtuellsensorteil 63,
einem Virtuellaktorteil 64, einem Kommunikationstreiber 65,
einem Eingabeinformationsumwandlungsteil 66 und einem Ausgabesteuerungsteil 67.
Diese Programme bestehen aus Objekten, die aus Daten und Methoden
zusammengesetzt sind.
-
Die
Anwendungsschicht 61 besteht aus mehreren Objekten, die
in Funktionseinheiten bereitgestellt sind. Die Anwendungsschicht 61 führt eine Rechenverarbeitung
basierend auf Fahrzeuginformationen aus, die von den Sensoren 30 beschafft werden,
und gibt Antriebsinformationen an die Aktoren 40 gemäß Ergebnissen
von der Rechenverarbeitung aus. Diese Anwendungsschicht 61 ist
ein Anwendungsprogramm.
-
Der
Virtuellsensorteil 63, der Virtuellaktorteil 64 und
der Kommunikationstreiber 65 sind Programme, die einer
Hardware von der Fahrzeugsteuerungsvorrichtung 1 entsprechen,
und entsprechend den Sensoren 30, den Aktoren 40 und
dem Netzwerkaufbau entsprechen, die über die Kommunikationsleitung 50 verbunden
sind. Der Virtuellsensorteil 63 und der Virtuellaktorteil 64 sind
aus Objekten aufgebaut, die in Komponenteneinheiten gemäß den Sensoren 30 und
den Aktoren 40 bereitgestellt sind. Der Virtuellsensorteil 63 besteht
zum Beispiel aus einem Kühlflüssigkeitstemperatursensorobjekt,
das ein Signal von dem Kühlflüssigkeitstemperatursensor
beschafft, einem Zuführungsrohrdrucksensorobjekt, das
ein Signal von dem Zuführungsrohrdrucksensor beschafft,
und einem Sauerstoffkonzentrationssensorobjekt, das ein Signal von
dem Sauerstoffkonzentrationssensor beschafft. Der Virtuellaktorteil 64 besteht
aus einem Zünderobjekt
zum Ausgeben eines Signals an einen Zünder und einem Einspritzventilobjekt
zum Ausgeben eines Signals an ein Einspritzventil. Der Virtuellsensorteil 63 und
der Virtuellaktorteil 64 sind somit definiert, um als eine
Sensor-/Aktorschicht zu arbeiten.
-
Die
Anwendungsschicht 61 führt
eine Rechenverarbeitung basierend auf Fahrzeuginformationen von
den Objekten von dem Virtuellsensorteil 63 aus und gibt
Antriebsinformationen an die Objekte von dem Virtuellaktorteil 64 aus.
Zu dieser Zeit kann die Anwendungsschicht 61 Fahrzeuginformationen von
den Objekten von dem Virtuellsensorteil 63 in einer anderen
ECU 10 durch die Funktion von dem Kommunikationstreiber 65 beschaffen
und kann Antriebsinformationen an die Objekte von dem Virtuellaktorteil 64 in
einer anderen ECU 10 durch die Funktion von dem Kommunikationstreiber 65 ausgeben. Die
Schnittstellenschicht 62 ist für die Anwendungsschicht 61 bereitgestellt,
um Fahrzeuginformationen von einem Objekt von dem Virtuellsensorteil 63 in
einer gewünschten
ECU 10 zu beschaffen und Antriebsinformationen an ein Objekt
von dem Virtuellaktorteil 64 in einer gewünschten
ECU 10 auszugeben.
-
Die
Schnittstellenschicht 62 ist auch aus mehreren Objekten
aufgebaut, die in Funktionseinheiten bereitgestellt sind. Diese
Schnittstellenschicht 62 verwaltet die Orte von den Objekten
von den Virtuellsensorteilen 63 und den Virtuellaktorteilen 64. Der
Ort von einem Objekt meint Informationen darüber, in welcher ECU 10 es
sich befindet. Dementsprechend muss die Anwendungsschicht 61 die
Orte von Objekten überhaupt
nicht kennen. Das heißt,
durch Bereitstellen der Schnittstellenschicht 62 wird Positionstransparenz
verwirklicht. Deswegen spezifiziert die Anwendungsschicht 61 mit
Bezug auf die Schnittstellenschicht 62 einfach ein Eingabezielobjekt
und fordert die Eingabe von Fahrzeuginformationen und spezifiziert
einfach ein Ausgabezielobjekt und fordert die Ausgabe von Antriebsinformationen.
-
Genauer
gesagt spezifiziert ein Objekt von der Anwendungsschicht 61 ein
Objekt von einem Virtuellsensorteil 63 oder einem Virtuellaktorteil 64 und führt eine
Nachrichtenausgabe an das Objekt von der Schnittstellenschicht 62 aus,
aber um die Erläuterungen
nachstehend einfach zu machen, wird die Beschreibung vorgenommen
in der Art „die
Anwendungsschicht 61 spezifiziert einen Virtuellsensorteil 63 oder
einen Virtuellaktorteil 64 und gibt eine Nachricht an die
Schnittstellenschicht 62 aus", wobei der Ausdruck Objekt weggelassen
wird.
-
Der
Programmaufbau von diesem Ausführungsbeispiel
ist dadurch gekennzeichnet, dass ein Eingabeinformationsumwandlungsteil 66 zwischen die
Schnittstellenschicht 62 und den Virtuellsensorteil 63 eingeschoben
ist und ein Ausgabesteuerungsteil 67 zwischen die Schnittstellenschicht 62 und
den Virtuellaktorteil 64 eingeschoben ist. Der Eingabeinformationsumwandlungsteil 66 ist
aus Objekten in Komponenteneinheiten entsprechend den Objekten von dem
Virtuellsensorteil 63 aufgebaut. Auch der Ausgabesteuerungsteil 67 ist
auf ähnliche
Weise aus Objekten in Komponenteneinheiten entsprechend den Objekten
von dem Virtuellaktorteil 64 aufgebaut.
-
Der
Eingabeinformationsumwandlungsteil 66 wandelt Fahrzeuginformationen
von dem Virtuellsensorteil 63 in Informationen um, die
direkt in der Anwendungsschicht 61 verarbeitbar sind, und
gibt sie aus. Direkt verarbeitbar bedeutet, dass eine Umwandlung
von den Fahrzeuginformationen zum Anpassen an die Rechenverarbeitung
nicht notwendig ist.
-
Die
Anwendungsschicht 61 führt
zum Beispiel eine Rechenverarbeitung unter Verwendung von Drosselklappen-Öffnungs/Schließ-Informationen darüber durch,
ob der Drosselklappendurchlass völlig
geschlossen, dazwischenliegend oder völlig geöffnet ist. Derzeitig könnte ein
Zwei-Eingang-Sensor mit einem völlig-geschlossen-Kontaktschalter
und einem völlig-geöffnet-Kontaktschalter als
der Sensor 30 verwendet werden. Wahlweise könnte ein
Sensor verwendet werden, der den Drosselklappenöffnungswinkel linear oder auf
analoge Art und Weise erfasst. Abhängig von Unterschieden zwischen
Sensoren 30 dieser Art unterscheiden sich die von dem Virtuellsensorteil 63 ausgegebenen
Fahrzeuginformationen. Der Eingabeinformationsumwandlungsteil 66 fängt diese
Unterschiede jedoch auf und wandelt sie in Informationen um, welche
in der Anwendungsschicht 61 direkt verarbeitet werden können, das
heißt,
Drosselklappen-Öffnungs/Schließ-Informationen,
die zeigen, ob sie völlig
geschlossen, dazwischenliegend oder völlig geöffnet ist.
-
Weiter
führt die
Anwendungsschicht 61 von diesem Ausführungsbeispiel zum Beispiel
eine Rechenverarbeitung unter Verwendung von Kurbelinformationen
beim Anlassen von einem (nicht gezeigten) Anlassermotor durch. Derzeitig
könnte
ein Sensor, welcher ein Schaltsignal von einem Anlasserrelais direkt
erfasst, als der Sensor 30 verwendet werden. Wahlweise
könnte
ein Sensor verwendet werden, der einen Abfall der Batteriespannung
erfasst. Das ist deshalb so, weil sogar durch Erfassen eines Abfalls der
Batteriespannung indirekt erfasst werden kann, dass das Anlasserrelais
sich zum Motoranlassen eingeschaltet hat. Wenn dementsprechend ein
Abfall der Batteriespannung als Fahrzeuginformation erfasst wird,
erzeugt der Eingabeinformationsumwandlungsteil 66 Kurbelinformationen
als Fahrzeuginformationen.
-
Andererseits
wandelt der Ausgabesteuerungsteil 67 Antriebsinformationen,
die von der Schnittstellenschicht 62 beschafft werden,
in Informationen um, die direkt in dem Virtuellaktorteil 64 verarbeitbar
sind, und gibt sie aus.
-
Die
Anwendungsschicht 61 berechnet zum Beispiel die Kühlfähigkeit
von einem Kühlerlüfter linear
oder auf analoge Art und Weise als einen Wert aus einem vorbestimmten
Bereich. Derzeitig könnte
als der Kühlerlüfter ein
Lüfter
verwendet werden, der in den zwei Stufen EIN/AUS angetrieben wird.
Es könnte
ein Lüfter
verwendet werden, der in mehreren Stufen wie etwa stark, mittel
and schwach angetrieben wird. Um zu dem Kühlerlüfter zu passen, wandelt der Ausgabesteuerungsteil 67 dementsprechend
die Antriebsinformationen in direkt verarbeitbare Informationen
um, und gibt sie aus.
-
Der
Eingabeinformationsumwandlungsteil 66 und der Ausgabesteuerungsteil 67 führen nicht nur
die Umwandlungsverarbeitung von Fahrzeuginformationen und Antriebsinformationen
durch, sondern arbeiten auch wie folgt.
-
Das
heißt,
der Eingabeinformationsumwandlungsteil 66 beschafft zu
einem geeigneten Zeitpunkt Fahrzeuginformationen von den Sensoren 30,
die von dem Virtuellsensorteil 63 beschafft werden, und gibt
sie an die Schnittstellenschicht 62 aus. Der Ausgabesteuerungsteil 67 beschafft
Antriebsinformationen, die an die Schnittstellenschicht 62 übermittelt werden,
und gibt sie zu einem geeigneten Zeitpunkt an den Virtuellaktorteil 64 aus.
Somit arbeiten der Eingabeinformationsumwandlungsteil 66 und
der Ausgabesteuerungsteil 67 als eine Informationssteuerungsschicht.
-
Diese
Eingabezeitpunkt- oder Ausgabezeitpunkteinstellungsfunktion von
dem Eingabeinformationsumwandlungsteil 66 und dem Ausgabesteuerungsteil 67 wird
als Nächstes
mit Bezug auf den Fluss von den Antriebsinformationen und den Fahrzeuginformationen
beschrieben. Zuerst wird die Antriebsinformationsübermittlung
von der Anwendungsschicht 61 an den Virtuellaktorteil 64 erklärt und dann wird
die Fahrzeuginformationsübermittlung
von dem Virtuellsensorteil 63 an die Anwendungsschicht 61 erklärt.
-
X: Antriebsinformationsübermittlung
-
- X-(1): Zuerst gibt die Anwendungsschicht 61 eine Nachricht
an die Schnittstellenschicht 62 aus. Diese Nachricht umfasst
eine Antriebsinformationsausgabeanforderung und Informationen, die
den Virtuellaktorteil 64 spezifizieren, der das Ausgabeziel
ist.
- X-(2): Dann bestimmt die Schnittstellenschicht 62 in
welcher ECU 10 das Ausgabeziel, der Virtuellaktorteil 64,
vorkommt.
- X-(2)-[1]: Wenn hier das Ausgabeziel der Virtuellaktorteil 64 in
der gleichen ECU 10 ist, beschafft die Schnittstellenschicht 62 die
Antriebsinformationen wie sie sind.
- X-(2)-[2]: Wenn das Ausgabeziel der Virtuellaktorteil 64 in
einer anderen ECU 10 ist, werden die Antriebsinformationen über die
Kommunikationsleitung 50 an diese andere ECU 10 mittels
des Kommunikationstreibers 65 übermittelt. Dann beschafft
die Schnittstellenschicht 62 von dieser anderen ECU 10 die
Antriebsinformationen.
-
Dieser
Prozess ist in 4 gezeigt, welche Programme
zeigt, die in zwei ECUs (A-ECU und B-ECU) 10a und 10b geladen
sind. Es wird angenommen, dass die Anwendungsschicht 61b von
der B-ECU 10b den Virtuellaktorteil 64a von der
A-ECU 10a als das Übermittlungsziel
spezifiziert und Antriebsinformationen an die Schnittstellenschicht 62b ausgegeben
hat. Programme, die in diesem Beispiel nicht arbeiten, sind gestrichelt
gezeigt.
-
Die
Anwendungsschicht 62b von der B-ECU 10b übermittelt
die Antriebsinformationen an die A-ECU 10a über den
Kommunikationstreiber 65b. Dann beschafft die Schnittstellenschicht 62a von
der A-ECU 10a die Antriebsinformationen über den
Kommunikationstreiber 65a.
- X-(3):
Im Fall von X-(2)-[1], das heißt
wenn die Schnittstellenschicht 62 in der gleichen ECU 10 die
Antriebsinformationen beschafft, entnimmt der Ausgabesteuerungsteil 67 in
der gleichen ECU 10 die Antriebsinformationen aus der Schnittstellenschicht 62 und
gibt sie zu einem geeigneten Zeitpunkt an den Virtuellaktorteil 64 aus.
Dann gibt der Virtuellaktorteil 64 diese Antriebsinformationen
an einen Aktor 40 aus.
-
Im
Fall von X-(2)-[2], das heißt
wenn die Schnittstellenschicht 62 in einer anderen ECU 10 die Antriebsinformationen
beschafft, entnimmt der Ausgabesteuerungsteil 67 in dieser
anderen ECU 10 die Antriebsinformationen aus der Schnittstellenschicht 62 und
gibt sie zu einem geeigneten Zeitpunkt an den Virtuellaktorteil 64 aus.
Dann gibt der Virtuellaktorteil 64 diese Antriebsinformationen
an einen Aktor 40 aus. Gemäß 4 entnimmt
der Ausgabesteuerungsteil 67a von der A-ECU 10a die
Antriebsinformationen, die von der Schnittstellenschicht 62a von der
A-ECU 10a beschafft werden, und gibt sie zu einem geeigneten
Zeitpunkt an den Virtuellaktorteil 64a aus. Somit wird
in diesem Fall ein Aktor 40, der mit der A-ECU 10a verbunden
ist, durch Antriebsinformationen von der Anwendungsschicht 61b von
der B-ECU 10b angetrieben.
-
Y: Fahrzeuginformationsübermittlung
-
- Y-(1): Zuerst gibt die Anwendungsschicht 61 eine Nachricht
an die Schnittstellenschicht 62 aus. Diese Nachricht umfasst
eine Fahrzeuginformationseingabeanforderung und Informationen, die ein
Eingabeziel, den Virtuellsensorteil 63, spezifizieren.
- Y-(2): Dann bestimmt die Schnittstellenschicht 62 in
welcher ECU 10 das Eingabeziel, der Virtuellsensorteil 63,
vorkommt.
- Y-(2)-[1]: Der Eingabeinformationsumwandlungsteil 66 entnimmt
zu einem geeigneten Zeitpunkt die Fahrzeuginformationen, die von
dem Virtuellsensorteil 63 beschafft werden, und gibt sie
an die Schnittstellenschicht 62 aus. Wenn dementsprechend
das Eingabeziel der Virtuellsensorteil 63 in der gleichen
ECU 10 ist, werden die Fahrzeuginformationen, die von dem
Eingabeinformationsumwandlungsteil 66 ausgegeben werden,
beschafft wie sie sind und an die Anwendungsschicht 61 ausgegeben.
- Y-(2)-[2]: Wenn das Eingabeziel der Virtuellsensorteil 63 in
einer anderen ECU 10 ist, wird eine Anforderung für die Fahrzeuginformationen
an diese andere ECU 10 über
die Kommunikationsleitung 50 mittels des Kommunikationstreibers 65 gestellt.
Dieser Prozess ist in 5 gezeigt. In 5 werden
Programme gezeigt, die in eine A-ECU 10a und eine B-ECU 10b geladen
sind. Es wird angenommen, dass die Anwendungsschicht 61b von
der B-ECU 10b den Virtuellsensorteil 63a von der
A-ECU 10a als das Eingabeziel spezifiziert und eine Anforderung
für Fahrzeuginformationen
an die Schnittstellenschicht 62b gestellt hat. Auch hier
sind Programme, welche in diesem Fall nicht arbeiten, gestrichelt
gezeigt.
-
Die
Schnittstellenschicht 62b von der B-ECU 10b stellt
eine Anforderung für
Fahrzeuginformationen an die A-ECU 10a über den Kommunikationstreiber 65b.
In der A-ECU 10a beschafft der Eingabeinformationsumwandlungsteil 66a zu
einem geeigneten Zeitpunkt Fahrzeuginformationen, die von dem Virtuellsensorteil 63a beschafft
werden, von einem Sensor 30 und gibt sie an die Schnittstellenschicht 62a aus.
Mit Bezug auf die vorstehende Anforderung übermittelt die Schnittstellenschicht 62a die
Fahrzeuginformationen, die von dem Eingabeinformationsumwandlungsteil 66a ausgegeben
werden, über den
Kommunikationstreiber 65a an die B-ECU 10b. Somit
beschafft die Schnittstellenschicht 62b von der B-ECU 10b diese
Fahrzeuginformationen über
den Kommunikationstreiber 65b und gibt sie an die Anwendungsschicht 61b aus.
In diesem Fall führt
die Anwendungsschicht 61b von der B-ECU 10b basierend
auf Fahrzeuginformationen von einem Sensor 30, der mit
der A-ECU 10a verbunden
ist, eine Rechenverarbeitung durch.
-
Gemäß der Fahrzeugsteuerungsvorrichtung 1 von
diesem Ausführungsbeispiel
ist es möglich, eine
verteilte Verarbeitung sogar in einer Steuerung von dem Motor und
dem Antriebsstrang zu verwirklichen. Dies wird an einem spezifischen
Beispiel erklärt.
-
In 4 zum
Beispiel wird angenommen, dass eine Kraftstoffeinspritzmenge von
der B-ECU 10b berechnet wird und ein Einspritzventil, das
den Aktor 40 darstellt, das mit der A-ECU 10a verbunden ist,
gesteuert wird. In diesem Fall wird wie gemäß 6A gezeigt,
eine Kraftstoffeinspritzmengenberechnung von der Anwendungsschicht 61b von
der B-ECU 10b durchgeführt
und wird die berechnete Einspritzmenge, die eine Antriebsinformation
darstellt, über
die Kommunikationsleitung 50 an die Schnittstellenschicht 62a von
der A-ECU 10a übermittelt.
Dann entnimmt der Ausgabesteuerungsteil 67a von der A-ECU 10a die
Einspritzmenge, die an die Schnittstellenschicht 62a übermittelt
wird, und gibt einen Einspritzbefehl an den Virtuellaktorteil 64a zu
einer Ausgabezeit bzw. einem Ausgabezeitpunkt für jeden Zylinder aus. Auf diesem
basierend gibt der Virtuellaktorteil 64a einen Einspritzimpuls
an das Einspritzventil aus.
-
Wenn
dementsprechend die Einspritzmenge im Voraus zu einem angemessenen
Zeitpunkt von der Anwendungsschicht 61b von der B-ECU 10b an die
Schnittstellenschicht 62a von der A-ECU 10a übermittelt
ist, werden danach von dem Ausgabesteuerungsteil 67a Einspritzbefehle
an den Virtuellaktorteil 64a zu einem geeigneten Zeitpunkt
durchgeführt.
Das heißt,
der Ausgabezeitpunkt wird von dem Ausgabesteuerungsteil 67a von
der A-ECU 10a optimiert, sogar wenn eine Verzögerung in
der Übermittlung
von der berechneten Einspritzmenge von der B-ECU 10b an
die A-ECU 10a auftritt. In einem System zum Beispiel, in
welchem Einspritzimpulse zu Zeiten t1, t2, t3, ... ausgegeben werden
sollen, wenn es so gemacht wird, dass die Einspritzmenge von der Anwendungsschicht 61b von
der B-ECU 10b durch die Schnittstellenschicht 62a von
der A-ECU 10a vor der entsprechenden Zeit t1, t2, t3, ...
beschafft wird, gibt danach der Ausgabesteuerungsteil 67a den
Einspritzbefehl zu der Zeit t1, t2, t3, ... aus, zu welcher er ausgegeben
werden soll.
-
Es
kann jedoch unmöglich
sein, dass die Einspritzmenge zu einem angemessenen Zeitpunkt an die
Schnittstellenschicht 62a von der A-ECU 10a übermittelt
wird. Weil es Fälle
gibt, in denen die Anwendungsschicht 61b von der B-ECU 10b die
Informationen über
eine Einspritzmenge, die zu der Zeit t1, t2, t3, ... ausgegeben
werden sollen, nur kurz vor den entsprechenden Zeiten t1, t2, t3,
... ausgeben kann. In diesem Fall jedoch kann der Ausgabesteuerungsteil 67a von
der A-ECU 10a dazu gebracht werden, Einspritzbefehle basierend
auf der Einspritzmenge von einem Zyklus vorher durchzuführen, so dass
er zu der Zeit t2 den Einspritzbefehl durchführt, der zu der Zeit t1 ausgegeben
werden sollte, und zu der Zeit t3 den Einspritzbefehl durchführt, der
zu der Zeit t2 ausgegeben werden sollte. Denn das Wichtige bei einer
Einspritzsteuerung ist der Zeitpunkt von dem Einspritzbefehl. Es
kann auftreten, dass der Einspritzbefehl zu einer Zeit t1' (< t2) ausgegeben
wird, die von der Zeit t1 abweicht, zu welcher er ausgegeben werden
sollte. Das ist für
das System fatal, auch wenn der Einspritzbefehl durchgeführt wird,
der auf der Einspritzmenge basiert, die einen Zyklus früher ausgegeben
werden sollte. Wenn der Einspritzzeitpunkt geeignet ist, tritt kein
Problem auf.
-
Somit
kann mit dem Programmaufbau von diesem Ausführungsbeispiel, sogar bei einer
Motor- und Antriebsstrangsteuerung, welche relativ viel Echtzeitbetrieb
erfordert, der Ausgabezeitpunkt von Antriebsinformationen geeignet
gemacht werden und kann eine verteilte Verarbeitung unter mehreren ECUs 10 möglich gemacht
werden.
-
In 5 wird
angenommen, dass die Rechenverarbeitung von der B-ECU 10b basierend
auf den Fahrzeuginformationen von einem Zuführungsrohrdrucksensor, der
den Sensor 30 darstellt, der mit der A-ECU 10a verbunden
ist, ausgeführt
wird. In diesem Fall übermittelt
wie gemäß 6B gezeigt,
die Schnittstellenschicht 62a von der A-ECU 10a einen durchschnittlichen
Zuführungsrohrdruck über die Kommunikationsleitung 50 basierend
auf einer Anforderung von der Anwendungsschicht 61b von
der B-ECU 10b.
-
In
der A-ECU 10a wandelt der Virtuellsensorteil 63a einen
Spannungswert von dem Zuführungsrohrdrucksensor
in einen physikalischen Wert um und berechnet einen Zuführungsrohrdruck.
Der Eingabeinformationsumwandlungsteil 66a beschafft (tastet
ab) diesen Zuführungsrohrdruck
von dem Virtuellsensorteil 63a zu einem Zeitpunkt alle
1 ms und gibt einen gemittelten Zuführungsrohrdruck als Fahrzeuginformationen
jedes Mal dann aus, wenn die Kurbelwelle um 180° rotiert. Somit muss die Anwendungsschicht 61b von
der B-ECU 10b nur die Beschaffung von dem Zuführungsrohrdruck
in relativ langen Zeitabständen,
in dem eine Kurbelwelle von dem Motor um 180° rotiert, anfordern und einen
gemittelten Zuführungsrohrdruck
beschaffen, der an die Schnittstellenschicht 62a ausgegeben
wird.
-
In
der Vergangenheit war es wegen einer Kommunikationsverzögerung nicht
möglich,
dass die Anwendungsschicht 61b von der B-ECU 10b den
Zuführungsrohrdruck
von dem Virtuellsensorteil 63a von der A-ECU 10a mit
einer relativ kurzen Periode abtastet. In diesem Ausführungsbeispiel
tastet der Eingabeinformationsumwandlungsteil 66a den Zuführungsrohrdruck,
der von dem Virtuellsensorteil 63a berechnet wird, jedoch
in der relativ kurzen Periode von 1 ms ab.
-
Als
ein Ergebnis kann sogar in einer Motor- und Antriebsstrangsteuerung,
welche relativ viel Echtzeitbetrieb erfordert, ein Fahrzeuginformationseingabezeitpunkt
geeignet gemacht werden und kann eine verteilte Verarbeitung unter
mehreren ECUs 10 verwirklicht werden.
-
Weiter
werden gemäß der Fahrzeugsteuerungsvorrichtung 1 von
diesem Ausführungsbeispiel die
Objekte, die von den Sensoren 30 und den Aktoren 40 abhängig sind,
als der Virtuellsensorteil 63 und der Virtuellaktorteil 64 getrennt.
Deshalb wird die Wiederverwendbarkeit von der Anwendungsschicht 61,
das heißt
des Anwendungsprogramms, sichergestellt, auch wenn die Sensoren 30 oder
die Aktoren 40 geändert
werden.
-
Außerdem wandelt
der Eingabeinformationsumwandlungsteil 66 Fahrzeuginformationen
von dem Virtuellsensorteil 63 in Informationen um, die
direkt in der Anwendungsschicht 61 verarbeitbar sind und
gibt sie aus. Der Ausgabesteuerungsteil 67 wandelt Antriebsinformationen,
die von der Schnittstellenschicht 62 beschafft werden,
in Informationen um, die direkt in dem Virtuellaktorteil 64 verarbeitbar
sind und gibt sie aus. Das heißt,
der Eingabeinformationsumwandlungsteil 66 führt eine
Umwandlungsverarbeitung von Fahrzeuginformationen passend zu der
Rechenverarbeitung von der Anwendungsschicht 61 aus. Der
Ausgabesteuerungsteil 67 führt eine Umwandlungsverarbeitung
von Antriebsinformationen passend zu den Aktoren 40 aus.
Weil keine Änderung
der Anwendungsschicht 61 notwendig ist, wird eine weitere
Verbesserung von der Wiederverwendbarkeit von dem Anwendungsprogramm
erreicht, auch wenn sich die Sensoren 30 oder die Aktoren 40 ändern.
-
Außerdem sind
die Fahrzeugsteuerungsprogramme in der Fahrzeugsteuerungsvorrichtung 1 von diesem
Ausführungsbeispiel
objektorientiert entworfen und sind die Anwendungsschicht 61 und
die Schnittstellenschicht 62 aus Objekten in Funktionseinheiten
aufgebaut. Weiter sind der Virtuellsensorteil 63b, der
Eingabeinformationsumwandlungsteil 66b und der Virtuellaktorteil 64 und
der Ausgabesteuerungsteil 67 aus Objekten in Komponenteneinheiten aufgebaut.
Somit muss zum Beispiel in einem System, in dem die Spezifikationen
von einem Einspritzventil abweichen, das einen Aktor 40 darstellt,
nur das Objekt, das sich auf dieses Einspritzventil bezieht, geändert werden
und die anderen Einspritzventile können verwendet werden wie sie
sind. Dementsprechend ist nicht nur die Wiederverwendbarkeit von
Anwendungsprogrammen, sondern auch die von Fahrzeugsteuerungsprogrammen
sichergestellt.
-
Die
Erfindung sollte nicht auf das offenbarte Ausführungsbeispiel beschränkt werden,
sondern kann auf viele andere Arten eingesetzt werden, ohne sich
vom Umfang der Erfindung zu entfernen.
-
Eine
Fahrzeugsteuerungsvorrichtung 1 hat mehrere elektronische
Steuerungseinheiten (ECUs) 10a, 10b, die über eine
Kommunikationsleitung 50 verbunden sind. Steuerungsprogramme
von der Vorrichtung sind auf eine objektorientierte Art definiert und
auf verteilte Weise unter mehreren Steuerungseinheiten 10a, 10b geladen.
Die Steuerungsprogramme von jeder Steuerungseinheit 10a, 10b umfassen
eine Anwendungsschicht 61a, 61b, eine Schnittstellenschicht 62a, 62b,
einen Hardware-abhängigen
Virtuellsensorteil 63a, 63b, einen Virtuellaktorteil 64a, 64b,
einen Eingabeinformationsumwandlungsteil 66a, 66b und
einen Ausgabesteuerungsteil 67a, 67b. Die Anwendungsschicht 61a, 61b ist
von Hardware-abhängigen
Teilen getrennt. Wenn eine Anwendungsschicht 61b von einer
B-ECU 10b einen Virtuellaktorteil 64a spezifiziert
und Antriebsinformationen ausgibt, sendet eine Schnittstellenschicht 62b die
Antriebsinformationen über
die Kommunikationsleitung 50 an eine Schnittstellenschicht 62a von
einer A-ECU 10a. Der Ausgabesteuerungsteil 67a von
der A-ECU 10a gibt diese Antriebsinformationen zu einem
geeigneten Zeitpunkt an den Virtuellaktorteil 64a aus.