-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft eine Steuervorrichtung zum Ausführen eines Anwendungsprogramms und eines Plattformprogramms. Die vorliegende Erfindung betrifft genauer gesagt eine Steuervorrichtung, ein Steuerverfahren und ein Computerprogramm, die flexibel mit verschiedenen Kombinationen von Anwendungsprogrammen und Plattformprogrammen arbeiten und die Wiederverwendbarkeit der Anwendungsprogramme und Plattformprogramme verbessern können, um den Entwicklungsprozess zu verkürzen und die Entwicklungslast zu verringern.
-
STAND DER TECHNIK
-
In den vergangenen Jahren wurde auf verschiedenen Gebieten ein System verwendet, bei dem mehrere Steuervorrichtungen zum Implementieren bzw. Durchführen verschiedener Steuerungen mit Kommunikationsfunktionen, die, versehen sind, miteinander verbunden sind und jeweilige Funktionen zugewiesen sind, um gemeinsam Daten auszutauschen und eine Vielzahl von Prozessen in Kooperation miteinander durchzuführen. Auf dem Gebiet eines fahrzeugmontierten LAN (Lokales Netz), das in Fahrzeugen vorgesehen ist, weist eine ECU (elektronische Steuereinheit) eine Kommunikationsfunktion auf, und jeweilige ECUs werden gesteuert, um spezifische Prozesse durchzuführen und Daten untereinander auszutauschen, um eine Vielzahl von Funktionen als ein System zu implementieren bzw. durchzuführen (siehe Patentdokument 1).
-
In dem Fall, in dem mehrere Steuervorrichtungen eine Vielzahl von Prozessen in Kooperation miteinander durchführen, können die jeweiligen Steuervorrichtungen ausgelegt sein, ähnliche Funktionen zu implementieren und einander zu ersetzen, um Funktionen entsprechend Einstellungen durchzuführen, anstelle dass jede Steuervorrichtung mit einer spezifischen Funktion versehen wird. Genauer gesagt werden gemeinsame Funktionen von Anwendungsprogrammen, die es den jeweiligen Steuervorrichtungen ermöglichen, spezielle Funktionen durchzuführen, getrennt, sodass die gemeinsamen Funktionen durch ein Plattformprogramm implementiert werden. Beispiele der gemeinsamen Funktionen beinhalten ein Speichern und Erneuern von Daten zur Verwendung bei der Ausführung der Anwendungsprogramme und einen Kommunikationsprozess mit einer anderen Vorrichtung.
-
Wenn daher die Definitionen der Kommunikationsspezifikationen geändert wurden, wird das Plattformprogramm modifiziert, und sämtliche Steuervorrichtungen sind angeordnet, um das modifizierte Plattformprogramm auszuführen. In diesem Fall besteht keine Notwendigkeit, dass die Anwendungsprogramme kompatibel mit den modifizierten Kommunikationsspezifikationen sind, und Kommunikationen mit anderen Steuervorrichtungen werden durch denselben Prozess, wie er bis dahin durchgeführt wurde, durchgeführt bzw. implementiert. Somit ist es nicht notwendig, eine komplizierte Verwaltung durchzuführen, wie beispielsweise ein Vorbereiten verschiedener Versionen von Anwendungsprogrammen, die kompatibel mit unterschiedlicher Hardware sind. Da es nur notwendig ist, Anwendungsprogramme zum reinen Implementieren spezieller Funktionen auszulegen, wird die Wiederverwendbarkeit der Programme verbessert.
Patentdokument 1:
Japanische Patentoffenlegungsschrift Nr. 2007-329578
-
BESCHREIBUNG DER ERFINDUNG
-
Von der Erfindung zu lösende Probleme
-
Die Strukturen der Plattformprogramme variieren jedoch stark in Abhängigkeit von unterschiedlichen Hardware-Ressourcen oder unterschiedlichen Herstellern. Die Definitionen der Funktionen, die in den Plattformprogrammen enthalten sind, variieren. In einem Beispiel wird beispielsweise eine Problemerfassungsfunktion einer Kommunikationsleitung unter Kommunikationsfunktionen durch ein Plattformprogramm implementiert, während in einem anderen Fall die Problemerfassungsfunktion durch ein Anwendungsprogramm implementiert wird.
-
Es gibt einen Fall, bei dem, um eine Steuerung unter Verwendung einer speziellen Hardware-Ressource zu implementieren, ein Plattformprogramm, das für die Hardware-Ressource spezialisiert ist, verwendet werden muss. Da eine Kommunikationsfunktion durch ein Plattformprogramm implementiert wird, gibt es keine Notwendigkeit, Anwendungsprogramme entsprechend einem Unterschied in den Hardware-Ressourcen zu entwickeln. Für unterschiedliche Plattformprogramme ist es jedoch letztendlich notwendig, Anwendungsprogramme kompatibel zu jedem Plattformprogramm auszubilden. In diesem Fall wird die Komplexität der Entwicklung der Anwendungsprogramme und Plattformprogramme nicht verringert, und somit ist es schwierig, den Entwicklungsprozess zu verkürzen und die Entwicklungslast zu verringern.
-
Die vorliegende Erfindung entstand, um das obige Problem zu lösen, und es ist ihre Hauptaufgabe, eine Steuervorrichtung, ein Steuerverfahren und ein Computerprogramm zu schaffen, die flexibel mit verschiedenen Kombinationen von Anwendungsprogrammen und Plattformprogrammen arbeiten und die Wiederverwendbarkeit der Anwendungsprogramme und Plattformprogramme verbessern können, um einzigartige Funktionen von Vorrichtungen zu implementieren, um eine Verkürzung des Entwicklungsprozesses und eine Verringerung der Entwicklungslast zu erzielen.
-
Mittel zum Lösen des Problems
-
Eine Steuervorrichtung gemäß einem ersten Aspekt ist eine Steuervorrichtung, die eine erste Ausführungseinrichtung zum Ausführen eines oder mehrerer Anwendungsprogramme und eine zweite Ausführungseinrichtung zum Ausführen eines Plattformprogramms zum Steuern eines Betriebs einer Hardware-Ressource entsprechend einer Anforderung bzw. Anfrage von dem Anwendungsprogramm aufweist, und die dadurch gekennzeichnet ist, dass sie außerdem eine dritte Ausführungseinrichtung zum Ausführen eines Middleware-Programms zum Übertragen von Daten zwischen dem Anwendungsprogramm und dem Plattformprogramm entsprechend dem Anwendungsprogramm und dem Plattformprogramm aufweist, wobei die dritte Ausführungseinrichtung mehrere Funktionsausführungseinrichtungen enthält.
-
Eine Steuervorrichtung gemäß einem zweiten Aspekt ist dadurch gekennzeichnet, dass die dritte Ausführungseinrichtung die Funktionsausführungseinrichtungen entsprechend dem Anwendungsprogramm oder dem Plattformprogramm auswählt und ausführt.
-
Eine Steuervorrichtung gemäß einem dritten Aspekt ist dadurch gekennzeichnet, dass die dritte Ausführungseinrichtung enthält: für mehrere unterschiedliche Anwendungsprogramme Anwendungszuordnungseinrichtungen zum Übertragen von Daten zu/von dem Anwendungsprogramm; und für mehrere. unterschiedliche Plattformprogramme Plattformzuordnungseinrichtungen zum jeweiligen Übertragen von Daten zu/von dem Plattformprogramm, und die Anwendungszuordnungseinrichtungen und die Plattformzuordnungseinrichtungen entsprechend dem Anwendungsprogramm und dem auszuführenden Plattformprogramm auswählt.
-
Eine Steuervorrichtung gemäß einem vierten Aspekt ist dadurch gekennzeichnet, dass mit einem Prozess des Middleware-Programms die dritte Ausführungseinrichtung enthält: eine Einrichtung zum Auswählen von Daten, die unter Daten von dem Plattformprogramm an das Anwendungsprogramm zu senden sind; und eine Einrichtung zum Auswählen eines Ausgabeziels in dem Plattformprogramm für Daten, wenn die Daten von dem Anwendungsprogramm zu dem Plattformprogramm gesendet werden.
-
Eine Steuervorrichtung gemäß einem fünften Aspekt ist dadurch gekennzeichnet, dass bei einem Prozess des Middleware-Programms die dritte Ausführungseinrichtung eine Einrichtung zum Übertragen von Informationen, die das Anwendungsprogramm, das von der ersten Ausführungseinrichtung auszuführen ist, angeben, Informationen, die das Anwendungsprogramm, das von der ersten Ausführungseinrichtung ausgeführt wird, identifizieren, oder Statusinformationen hinsichtlich des Anwendungsprogramms, das von der ersten Ausführungseinrichtung ausgeführt wird, zu/von der ersten Ausführungseinrichtung oder der zweiten Ausführungseinrichtung enthält.
-
Eine Steuervorrichtung gemäß einem sechsten Aspekt ist dadurch gekennzeichnet, dass sie außerdem aufweist: eine Einrichtung zum Anweisen der ersten Ausführungseinrichtung, das Anwendungsprogramm auszuführen, der zweiten Ausführungseinrichtung, das Plattformprogramm auszuführen, und der dritten Ausführungseinrichtung, das Middleware-Programm auszuführen; und eine Einrichtung zum Erfassen eines Ausführungsstatus des Anwendungsprogramms, das von der ersten Ausführungseinrichtung ausgeführt wird, eines Ausführungsstatus des Plattformprogramms, das von der zweiten Ausführungseinrichtung ausgeführt wird, und eines Ausführungsstatus des Middleware-Programms, das von der dritten Ausführungseinrichtung ausgeführt wird.
-
Ein Steuerverfahren gemäß einem siebten Aspekt ist ein Steuerverfahren zum Steuern einer Hardware-Ressource durch Ausführen eines oder mehrerer Anwendungsprogramme und Ausführen eines Plattformprogramms zum Steuern eines Betriebs der Hardware-Ressource entsprechend einer Anforderung von dem Anwendungsprogramm, wobei das Verfahren dadurch gekennzeichnet ist, dass es aufweist: Ausführen eines Middleware-Programms zum Übertragen von Daten zwischen dem Anwendungsprogramm und dem Plattformprogramm entsprechend dem Anwendungsprogramm und dem Plattformprogramm; und Auswählen einer Funktion, die von dem Middleware-Programm auszuführen ist, entsprechend dem Anwendungsprogramm oder dem Plattformprogramm.
-
Ein Computerprogramm gemäß einem achten Aspekt ist ein Computerprogramm zum Bewirken, dass ein Computer Daten zwischen einem oder mehreren Anwendungsprogrammen und einem Plattformprogramm zum Steuern eines Betriebs einer Hardware-Ressource entsprechend einer Anforderung von dem Anwendungsprogramm entsprechend dem Anwendungsprogramm und dem Plattformprogramm überträgt, wobei das Computerprogramm mehrere Programmkomponenten enthält, die in vorbestimmte Funktionseinheiten getrennt sind, und bewirkt, dass ein Computer die Programmkomponenten entsprechend dem Anwendungsprogramm oder dem Plattformprogramm auswählt.
-
In dem ersten und siebten Aspekt wird ein Middleware-Programm, das Daten zwischen einem Anwendungsprogramm und einem Plattformprogramm entsprechend jedem der Programme überträgt, ausgeführt. Außerdem sind mit dem Middleware-Programm jeweils mehrere Funktionen ausführbar. Es ist somit möglich, nicht nur eine Datenübertragung entsprechend einer Kombination aus einem Anwendungsprogramm und einem Plattformprogramm, das auszuführen ist, durchzuführen, sondern auch verschiedene Funktionen, die durch das Middleware-Programm zu implementieren sind, auszuwählen.
-
In dem zweiten und achten Aspekt werden Funktionen entsprechend verschiedener Kombinationen von Anwendungsprogrammen und Plattformprogrammen durch ein einzelnes Middleware-Programm ausgewählt. Ein Anwendungsprogramm wird beispielsweise unter der Voraussetzung ausgebildet, dass ein Plattformprogramm eine vorbestimmte Funktion aufweist. Sogar wenn ein Plattformprogramm, das zu kombinieren ist, die vorbestimmte Funktion nicht aufweist, wird jedoch die Funktion durch das Middleware-Programm implementiert, und daher wird das Anwendungsprogramm ohne jegliche Probleme betrieben. Somit ist es nicht notwendig, Anwendungsprogramme individuell entsprechend unterschiedlicher Plattformprogramme zu modifizieren, und die Anwendungsprogramme können mit einer Vielzahl von Plattformprogrammen wiederverwendet werden.
-
In dem dritten Aspekt werden Schnittstellen (Zuordnungseinrichtungen) zum Implementieren bzw. Durchführen einer Datenübertragung entsprechend unterschiedlichen Programmen jeweils für eine Datenübertragung zu/von einem Anwendungsprogramm und eine Datenübertragung zu/von einem Plattformprogramm vorbereitet. Daher sind die Schnittstellen entsprechend verschiedenen Kombinationen von Anwendungsprogrammen und Plattformprogrammen auswählbar oder änderbar. Da die Steuervorrichtung flexibel mit verschiedenen Kombinationen von Programmen einschließlich einer Kombination mit einem Plattformprogramm, das nicht auf der Anwendungsprogrammseite vermutet wird, flexibel arbeitet, sind die Anwendungsprogramme mit einer Vielzahl von Plattformprogrammen wieder verwendbar.
-
Gemäß dem vierten Aspekt werden, wenn Daten von einem Plattformprogramm an ein Anwendungsprogramm ausgegeben werden, notwendige Daten ausgewählt und an das Anwendungsprogramm durch einen Prozess des Middleware-Programms gesendet. Für Daten von dem Anwendungsprogramm zu dem Plattformprogramm wird ein Ausgabeziel in dem Plattformprogramm ausgewählt und durch einen Prozess des Middleware-Programms gesendet. Sogar wenn es keine Kompatibilität der Datenübertragung zwischen dem Anwendungsprogramm und dem Plattformprogramm gibt, kann daher eine geeignete Auswahl und Einstellung erfolgen. Die Seite des Anwendungsprogramms erhält Daten entsprechend dem Anwendungsprogramm unabhängig von dem verwendeten Plattformprogramm, und somit ist das Anwendungsprogramm mit einer Vielzahl von Plattformprogrammen wieder verwendbar.
-
Außerdem ist es gemäß dem fünften Aspekt mit einem Prozess des Middleware-Programms möglich, ein Anwendungsprogramm, das auszuführen ist, zu spezifizieren oder der Plattformprogrammseite das Anwendungsprogramm, das ausgeführt wird, oder einen Ausführungsstatus des Anwendungsprogramms zu melden. Einige Plattformprogramme können Funktionen aufweisen, die auf der Anwendungsprogrammseite zu implementieren sind. Außerdem gibt es einen Fall, bei dem das Anwendungsprogramm Funktionen aufweist, die auf der Plattformprogrammseite unabhängig von dem Zustand des Anwendungsprogramms zu implementieren sind. Die Prozesse des Middleware-Programms ermöglichen es, dass sowohl das Anwendungsprogramm als auch das Plattformprogramm Informationen voneinander erhalten, und die Steuervorrichtung ist in der Lage, mit verschiedenen Kombinationen von Anwendungsprogrammen und Plattformprogrammen zu arbeiten.
-
Gemäß dem sechsten Aspekt ist es außerdem möglich, die Ausführung eines Anwendungsprogramms und eines Plattformprogramms und die Ausführung eines Middleware-Programms zum Implementieren verschiedener Kombinationen von Anwendungsprogrammen und Plattformprogrammen entsprechend verschiedener Bedingungen der gesamten Steuervorrichtung zu ändern. Da der Status jedes der Programme in Bezug auf die jeweilige Ausführungseinrichtung erfasst werden kann, ist es möglich, den Prozess zum Auswählen von Funktionen in dem Middleware-Programm entsprechend dem Anwendungsprogramm durchzuführen. Dieses ermöglicht eine Implementierung verschiedener Kombinationen von Anwendungsprogrammen und Plattformprogrammen auf geeignete Weise.
-
Wirkungen der Erfindung
-
Da das Middleware-Programm eine Datenübertragung zwischen einem Anwendungsprogramm und einem Plattformprogramm entsprechend verschiedener Kombinationen von Anwendungsprogrammen und Plattformprogrammen implementiert, besteht gemäß dieser Erfindung keine Notwendigkeit, Anwendungsprogramme entsprechend unterschiedlichen Plattformprogrammen anzupassen. Da Funktionen, die durch das Middleware-Programm zu implementieren sind, entsprechend einer Kombination aus einem Anwendungsprogramm und einem Plattformprogramm ausgewählt werden können, werden fehlende oder einander überdeckende Funktionen gemeinsam durch das Middleware-Programm angepasst. Sogar wenn ein unterschiedliches Plattformprogramm verwendet wird, besteht keine Notwendigkeit, Anwendungsprogramme individuell anzupassen, wodurch eine Verkürzung des Entwicklungsprozesses sowohl für die Anwendungsprogramme als auch die Plattformprogramme erzielt wird.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockdiagramm, das die Konfiguration einer ECU gemäß dieser Ausführungsform darstellt.
-
2 ist eine erläuternde Ansicht, die konzeptionell Funktionen darstellt, die von einer CPU der ECU gemäß dieser Ausführungsform implementiert werden.
-
3 ist ein Flussdiagramm, das ein Beispiel eines Prozesses darstellt, bei dem Schnittstellen und Funktionen entsprechend einer Anwendungsebene und einer Plattformebene auf der Grundlage eines Middleware-Programms ausgeführt werden.
-
4 ist ein Flussdiagramm, das ein Beispiel eines Prozesses darstellt, der in der Anwendungsebene, der Plattformebene und der Middleware-Ebene entsprechend Funktionen eines Systemverwalters ausgeführt wird.
-
5 ist eine erläuternde Ansicht, die konzeptionell ein Beispiel einer Struktur eines Steuerprogramms gemäß einer Kombination von Anwendungsprogrammen und einem Plattformprogramm darstellt.
-
6 ist eine erläuternde Ansicht, die konzeptionell ein anderes Beispiel einer Struktur eines Steuerprogramms gemäß einer Kombination aus Anwendungsprogrammen und einem Plattformprogramm darstellt.
-
7 ist eine erläuternde Ansicht, die konzeptionell ein anderes Beispiel einer Struktur eines Steuerprogramms gemäß einer Kombination aus Anwendungsprogrammen und einem Plattformprogramm darstellt.
-
Bezugszeichenliste
-
- 1
- ECU
- 10
- Mikrocomputer
- 11
- CPU
- 12
- ROM
- 17, 17
- Anwendungsprogramme
- 18
- Plattformprogramm
- 19
- Middleware-Programm
- 20
- Systemverwaltungsprogramm
- 107
- Anwendungsebene
- 108
- Plattformebene
- 109
- Middleware-Ebene
- 110
- Systemverwalter
-
BESTER MODUS ZUM AUSFÜHREN DER ERFINDUNG
-
Die folgende Beschreibung erläutert die vorliegende Erfindung insbesondere mit Bezug auf die Zeichnungen, die eine Ausführungsform darstellen.
-
Die folgende Ausführungsform wird anhand eines Beispiels erläutert, bei dem eine Steuervorrichtung gemäß der vorliegenden Erfindung für eine ECU (elektronische Steuereinheit), die in einem Fahrzeug montiert ist, verwendet wird, um verschiedene Steuerungen zu implementieren bzw. durchzuführen.
-
1 ist ein Blockdiagramm, das die Konfiguration einer ECU gemäß dieser Ausführungsform darstellt. Die ECU 1 ist mit einer anderen ECU durch eine Kommunikationsleitung 2 verbunden, um miteinander zu kommunizieren. Außerdem sind ein Sensor 3 und ein Aktuator 4 mit der ECU 1 verbunden. Die ECU 1 weist einzigartige Funktionen wie beispielsweise zum Durchführen eines eigenen Prozesses auf der Grundlage von Informationen, die von dem Sensor 3 erhalten werden, oder zum Aktivieren des Aktuators 4 auf der Grundlage von Informationen, die von einem Prozess, der von der anderen ECU durchgeführt wird, auf. Auch wenn sowohl der Sensor 3 als auch der Aktuator 4 mit der ECU 1 verbunden sind, kann es möglich sein, nur einen von diesen oder keinen von diesen mit der ECU 1 zu verbinden.
-
Die ECU 1 weist auf: einen Mikrocomputer 10, der eine CPU (zentrale Verarbeitungseinheit) 11 zum Steuern der Betriebe jeweiliger Komponententeile, einen ROM 12, der einen nichtflüchtigen Speicher verwendet, und einen RAM 13, der einen Speicher verwendet, auf den mit hohen Geschwindigkeiten zugegriffen werden kann, enthält (im Folgenden als der Mikrocomputer 10 bezeichnet); einen Speicherabschnitt 14, der einen nichtflüchtigen Speicher verwendet; einen Kommunikationsabschnitt 15, der eine Netzwerksteuerung verwendet; und einen Eingabe-/Ausgabeabschnitt 16 als eine Schnittstelle zu dem Sensor 3 und dem Aktuator 4.
-
Der Speicherabschnitt 14 ist mit einer relativ großen Speicherkapazität durch Verwendung eines Speichers wie beispielsweise eines Flash-Speichers oder eines EEPROM (elektrisch löschbarer und programmierbarer ROM) ausgelegt. Der Speicherabschnitt 14 speichert Informationen, die von Prozessen erhalten werden, die durchgeführt werden, wenn der Mikrocomputer 10 später beschriebene Anwendungsprogramme 17, 17, ... ausführt, beispielsweise Systeminformationen wie Statusinformationen hinsichtlich der ECU 1 und Statusinformationen hinsichtlich eines Fahrzeugs, in dem die ECU 1 montiert ist. Außerdem speichert der Speicherabschnitt 14 Daten, die der Mikrocomputer 10 von dem Sensor 3 erhält, Daten, die von einer anderen ECU empfangen werden, etc.
-
Der Kommunikationsabschnitt 15 implementiert eine Kommunikation mit dem Mikrocomputer 10 und der anderen ECU durch die Kommunikationsleitung 2. Genauer gesagt implementiert der Kommunikationsabschnitt 15 eine Kommunikation entsprechend Protokollen wie beispielsweise einem CAN (Steuernetz), LIN (lokales Verbindungsnetz) oder FlexRay (Registered Trademark). Der Kommunikationsabschnitt 15 kann als ein Teil des Mikrocomputers 10 ausgebildet sein.
-
Der Eingabe-/Ausgabeabschnitt 16 ist eine Schnittstelle zu dem Sensor 3 und dem Aktuator 4, wie es oben beschrieben wurde. Wenn der Sensor 3 mit dem Eingabe-/Ausgabeabschnitt 16 verbunden ist, extrahiert der Eingabe-/Ausgabeabschnitt 15 ein Signal, das einen Messwert, etc. angibt, der von dem Sensor 3 ausgegeben wird, und gibt das Signal an den Mikrocomputer 10 aus. Wenn der Aktuator 4 mit dem Eingabe-/Ausgabeabschnitt 16 verbunden ist, gibt der Eingabe-/Ausgabeabschnitt 16 ein Steuersignal für den Aktuator 4, das von dem Mikrocomputer 10 ausgegeben wird, an den Aktuator 4 aus. Der Eingabe-/Ausgabeabschnitt 16 kann eine D/A-Wandlungsfunktion und eine A/D-Wandlungsfunktion aufweisen.
-
Die CPU (zentrale Verarbeitungseinheit) 11 des Mikrocomputers 10 steuert die jeweiligen Komponententeile und implementiert einzigartige Funktionen durch Holen eines Steuerprogramms 1P, das in dem ROM 12 gespeichert ist, in den RAM 13 und Ausführen dieses Programms.
-
Der ROM 12 verwendet einen Speicher wie beispielsweise einen Masken-ROM, einen Flash-Speicher, einen PROM (programmierbarer ROM), einen EPROM (löschbarer und programmierbarer ROM) oder einen EEPROM (elektrischer EPROM). Der ROM 12 kann nicht nur das Steuerprogramm 1P, wie es oben beschrieben ist, speichern, sondern ebenfalls Steuerdaten für Steuerungen.
-
Der RAM 13 verwendet einen Speicher wie beispielsweise einen DRAM (dynamischer Speicher mit wahlfreiem Zugriff) oder einen SRAM (statischer Speicher mit wahlfreiem Zugriff). Der RAM 13 speichert zeitweilig verschiedene Arten von Informationen, die in den Prozessen, die von der CPU 11 durchgeführt werden, erzeugt werden.
-
Das Steuerprogramm 1P, das in dem ROM 12 gespeichert ist, enthält Anwendungsprogramme 17, 17, ... zum Ermöglichen, dass der Mikrocomputer 10 Prozesse, die für die ECU 1 einzigartig sind, ausführt; ein Plattformprogramm 18, das verschiedene Typen von Programmen zum Implementieren gemeinsamer Funktionen mit einer anderen ECU enthält, beispielsweise ein Steuern von Hardware-Ressourcen und eine Kommunikationsfunktion; ein Middleware-Programm 19 zum Vermitteln einer Kommunikation zwischen den Anwendungsprogrammen 17, 17, ... und dem Plattformprogramm 18; und ein Systemverwaltungsprogramm 20 zum Steuern von Prozessen auf der Grundlage der jeweiligen Programme als die gesamte ECU 1.
-
Die Anwendungsprogramme 17, 17, ... enthalten verschiedene Programme zum Ermöglichen, dass die ECU 1 einzigartige Funktionen implementiert, beispielsweise ein Programm zum Implementieren eines Prozesses zum Steuern eines Fahrzeugmotors und ein Programm zum Implementieren eines Prozesses zum Schalten einer Türverriegelung zwischen Ein und Aus und Scheinwerfern zwischen Ein und Aus.
-
Das Plattformprogramm 18 enthält Programme zum Implementieren von Prozessen jeweiliger Hardware-Ressourcen als Antwort auf Verarbeitungsanforderungen bzw. -anfragen für die Hardware-Ressourcen von dem Mikrocomputer 10 auf der Grundlage der Anwendungsprogramme 17, 17, ..., beispielsweise ein Schreiben von Daten in den Speicherabschnitt 14, ein Holen von Daten aus dem Speicherabschnitt 14 und ein Senden von Daten durch den Kommunikationsabschnitt 15. Genauer gesagt enthält das Plattformprogramm 18 einen Vorrichtungstreiber zum Implementieren eines logischen Datenzugriffs entsprechend einer Verarbeitungsanforderung von der CPU 11, die die Anwendungsprogramme 17, 17, ... ausführt, und ein BIOS (Basis-Eingabe-/Ausgabe-System) zum Implementieren eines physikalischen Datenzugriffs auf der Grundlage der jeweiligen montierten Hardware-Ressourcen.
-
Das Middleware-Programm 19 enthält ein Programm zum Implementieren einer Interpreterfunktion zum Umwandeln von Bearbeitungsanforderungen bzw. -anfragen von den Anwendungsprogrammen 17, 17, ... in Entsprechung zu dem Plattformprogramm 18 und zum Senden dieser an das Plattformprogramm 18. Genauer gesagt enthält das Middleware-Programm 19 eine Ausgangssystemverarbeitungsfunktion zum Empfangen einer Ausgabeanforderung von der CPU 11 auf der Grundlage der Anwendungsprogramme 17, 17, ..., einer Anforderung zum Schreiben von Daten in den Speicherabschnitt 14 und einer Sendeanforderung von dem Kommunikationsabschnitt 15 und zum Senden der Daten entsprechend dem Plattformprogramm 18. Das Middleware-Programm 19 enthält außerdem eine Eingangssystemverarbeitungsfunktion zum Empfangen von Daten, die von dem Plattformprogramm 18 eingegeben werden, Umwandeln der Daten in eine Form, die von den Anwendungsprogrammen 17, 17, ... interpretierbar sind, und zum Senden der Daten an die Anwendungsprogramme 17, 17, Außerdem implementiert das Middleware-Programm 19 eine Verwaltungssystemverarbeitungsfunktion zum Implementieren der Funktion zum Weiterreichen von Verwaltungsinformationen, die von der CPU 11 gesendet werden, auf der Grundlage eines später beschriebenen Systemverwaltungsprogramms 20 an die Anwendungsprogramme 17, 17, ....
-
Die Ausgangssystemverarbeitungsfunktion, die Eingangssystemverarbeitungsfunktion und die Verwaltungssystemverarbeitungsfunktion, die in dem Middleware-Programm 19 enthalten sind, sind individuell als unabhängiges funktionelles Modul auswählbar. Mit anderen Worten ist das Middleware-Programm 19 derart ausgelegt, dass, wenn die CPU 11 eine Verarbeitung auf der Grundlage des Middleware-Programms 19 durchführt, sogar wenn sie das Middleware-Programm 19 ausführt, während ein funktionelles Modul, das eine nicht benötigte Funktion implementiert, gelöscht wird, die CPU 11 eine Verarbeitung ohne jegliche Probleme durchführt. Da jedes der funktionellen Module in dem Anwendungsprogramm 17 oder dem Plattformprogramm 18 enthalten sein kann, ist es außerdem möglich, fehlende Funktionen in dem Anwendungsprogramm 17 zu kompensieren. Genauer gesagt besteht das Middleware-Programm 19 aus einem objektorientierten Software-Programm, und die funktionellen Module sind als getrennte Objekteinheiten ausgelegt, und daher sind verschiedene Funktionen durch Auswählen von Objekten und Erzeugen einer Ausführungsdatei auswählbar.
-
Das Systemverwaltungsprogramm 20 ist ein Programm zum Steuern von Prozessen auf der Grundlage von Anwendungsprogrammen 17, 17, ..., die von der CPU 11 auszuführen sind, eines Prozesses auf der Grundlage des Plattformprogramms 18, eines Prozesses auf der Grundlage des Middleware-Programms 19 und eines Prozesses auf der Grundlage des Systemverwaltungsprogramms 20 als Gesamtheit entsprechend dem Status der Funktionen, die von der ECU 1 durchzuführen sind. Das Systemverwaltungsprogramm 20 implementiert beispielsweise die Funktion zum Schalten von Prozessen auf der Grundlage der jeweiligen Programme entsprechend dem Unterschied des Status wie beispielsweise, ob die ECU 1 einen Betrieb für eine Teststufe vor der Versendung, einen Betrieb, der während der Fahrt durchzuführen ist, oder einen Betrieb, der während der Wartung durchzuführen ist, durchführen sollte. Alternativ implementiert das Systemverwaltungsprogramm 20 die Funktion zum Schalten von Prozessen auf der Grundlage der jeweiligen Programme entsprechend dessen, ob die ECU 1 einem Fahrzeug mit Spezifikationen für Japan oder einem Fahrzeug mit Spezifikationen für Nordamerika entsprechen sollte. Das Systemverwaltungsprogramm 20 implementiert beispielsweise die Funktion zum Ändern des physikalischen Steuerverfahrens für Hardware-Ressourcen entsprechend den Anwendungsprogrammen 17, 17, ..., die ausgeführt werden.
-
2 ist eine erläuternde Ansicht, die konzeptionell Funktionen, die von der CPU 11 der ECU 1 gemäß dieser Ausführungsform durchzuführen sind, zeigt. Die CPU 11 holt das Steuerprogramm 1P, das in dem ROM 12 gespeichert ist, in den RAM 13 und führt das Steuerprogramm 1P aus. Wie es oben beschrieben wurde, enthält das Steuerprogramm 1P die Anwendungsprogramme 17, 17, ..., das Plattformprogramm 18, das Middleware-Programm 19 und das Systemverwaltungsprogramm 20. Die CPU 11 wird in der Softwarestruktur, die aus getrennten drei Ebenen, d. h. einer Anwendungsebene 107, einer Middleware-Ebene 109 und einer Plattformebene 108 besteht, auf der Grundlage eines jeweiligen Programms, das in dem Steuerprogramm 1P enthalten ist, betrieben.
-
In der obersten Anwendungsebene 107 dient die CPU 11 als verschiedene Anwendungen (Anwendung A, Anwendung B, Anwendung C, ...), auf der Grundlage der Anwendungsprogramme 17, 17, ....
-
In der Middleware-Ebene 109 als einer Zwischenebene führt die CPU 11 mehrere funktionelle Module 112, 112, ... zum Empfangen von Verarbeitungsanforderungen von den jeweiligen Anwendungen in der Anwendungsebene 107 oder zum Übertragen von Daten von der Plattformebene 108 zu der Anwendungsebene 107 auf der Grundlage des Middleware-Programms 19 aus. Es ist möglich, funktionelle Module 112, 112, ..., die entsprechend den Anwendungsprogrammen 17, 17, ..., die in der Anwendungsebene 107 ausgeführt werden, oder dem Plattformprogramm 18, das in der Plattformebene 108 ausgeführt wird, auszuführen sind, auszuwählen. In den funktionellen Modulen 112, 112, ... ist es möglich, Dateneingabe- und -ausgabeverfahren entsprechend einer Plattformschnittstelle 108a des Plattformprogramms 18, das in der Plattformebene 108 ausgeführt wird, zu wechseln. In der Middleware-Ebene 109 sind mehrere Schnittstellen 111, 111, ..., die verschiedenen Anwendungsprogrammen 17, 17, ... entsprechen, auf der Grundlage des Middleware-Programms 19 implementiert. Es ist möglich, das Rufverfahren, das Datenübertragungsverfahren, etc. entsprechend den Anwendungsprogrammen 17, 17, ..., die in der Anwendungsebene 107 ausgeführt werden, zu wechseln.
-
In der untersten Plattformebene 108 führt die CPU 11 den Prozess zum tatsächlichen Steuern mehrerer Hardware-Ressourcen 14, 15, 16, ... auf der Grundlage des Plattformprogramms 18 durch. Die CPU 11 implementiert beispielsweise Funktionen wie ein Schreiben und Lesen von Daten in/aus dem Speicherabschnitt 14 und ein Senden und Empfangen von Daten zu/von dem Kommunikationsabschnitt 15. In dieser Ausführungsform sind die Funktionen in der Plattformebene 108 außerdem intern hierarchisch in eine logische Ebene zum Ausführen eines logischen Zugriffs wie beispielsweise, welche Daten von dem Speicherabschnitt 14 zu holen sind, und eine physikalische Ebene zum Ausführen eines physikalischen Zugriffs wie beispielsweise ein tatsächliches Schreiben von Daten, die an einen I/O-Speicher in dem Kommunikationsabschnitt 15 zu senden sind, unterteilt.
-
Wenn die CPU 11 das Systemverwaltungsprogramm 20 holt und ausführt, wird außerdem die Funktion des Systemverwalters 110 durch Teilen einer Schnittstelle mit der Plattformebene 108 implementiert. Der Systemverwalter 110 implementiert eine Systemüberwachungsfunktion zum Erfassen in drei Ebenen des Ausführungsstatus verschiedener Anwendungsfunktionen in der Anwendungsebene 107, des Ausführungsstatus der funktionellen Module in der Middleware-Ebene 109, die den Anwendungen, die ausgeführt werden, entsprechen, und des Vorhandenseins von Hardware-Ressourcen in der Plattformebene 108 und zum Halten der Informationen, und implementiert einen Funktionsverwalter zum Angeben eines Typs, eines Orts und einer Klasse eines Fahrzeugs, in dem die ECU 1 montiert ist, und von Anwendungen, funktionellen Modulen 112, 112, ..., die zu implementieren sind, und Hardware-Ressourcen 14, 15, 16, ..., die in den jeweiligen Ebenen entsprechend dem Schalten von Funktionen der ECU 1 zu aktivieren sind. Man beachte, dass der Systemverwalter 110 nicht nur ausgelegt sein kann, eine Schnittstelle mit der Plattformebene 108 zu teilen, wie es in 2 gezeigt ist, sondern auch zum direkten Senden und Empfangen von Informationen zu/von den Funktionen der jeweiligen Ebenen.
-
Beispiele für Anwendungen, die in der Anwendungsebene 107 ausgeführt werden, beinhalten eine Signalsteuerung, eine Bedingungsbestimmung und eine Laststeuerung zum Steuern einer Last (beispielsweise eines Aktuators 4). Die Anwendungsprogramme 17, 17, ..., die in der Anwendungsebene 107 auszuführen sind, werden auf der Grundlage von Verwaltungsinformationen, die von dem Systemverwalter 110 durch das funktionelle Modul 112 eines Verwaltungssystems der Middleware-Ebene 109 gesendet werden, bestimmt. Die CPU 11 holt beispielsweise die Verwaltungsinformationen von der Middleware-Ebene 109 auf der Grundlage eines speziellen Anwendungsprogramms 17, das in der Anwendungsebene 107 ausgeführt wird, wählt andere Anwendungsprogramme 17, 17, ... aus, die auf der Grundlage der Verwaltungsinformationen auszuführen sind, und führt diese aus. Die Verwaltungsinformationen enthalten beispielsweise Informationen, die den Zustand oder Status der ECU 1 angeben, und Informationen, die die Anwendungsprogramme 17, 17, ..., die entsprechend dem Zustand oder Status der ECU 1 auszuführen sind, identifizieren. Die Verwaltungsinformationen enthalten beispielsweise Informationen, die angeben, dass sich die ECU 1 in der Teststufe vor der Versendung befindet, und Informationen, die die Anwendungsprogramme 17, 17, ..., die in diesem Fall auszuführen sind, identifizieren. Es ist somit möglich, einen Prozess entsprechend dem Status auszuführen, beispielsweise ein geeignetes Anwendungsprogramm 17 auf der Grundlage der Verwaltungsinformationen in der Anwendungsebene 107 auszuwählen und auszuführen.
-
Ein Beispiel des funktionellen Moduls 112, das in der Middleware-Ebene 109 ausgeführt wird, ist eine Weiterleitungsfunktion des Eingabesystems zum Empfangen und Senden von Informationen, die von der Plattformebene 108 erhalten werden, an eine Anwendung, die in der Anwendungsebene 107 ausgeführt wird. Mit der Weiterleitungsfunktion des Eingabesystems sendet die CPU 11 Informationen aus Informationen, die von der Plattformebene 108 erhalten werden, die von einer Anwendung benötigt werden, die in der Anwendungsebene 107 ausgeführt wird. Ein anderes Beispiel ist eine Weiterleitungsfunktion des Ausgangssystems zum Senden von Daten, die von der Anwendung, die in der Anwendungsebene 107 ausgeführt wird, ausgegeben werden, an die Plattformebene 108. Mit dieser Weiterleitungsfunktion des Ausgangssystems wählt die CPU 11 ein Ausgabeziel in der Plattformebene 108 entsprechend der Verwendung der Informationen, die von der Anwendung, die in der Anwendungsebene 107 ausgeführt wird, ausgegeben werden, aus und ruft eine geeignete Schnittstelle von der Plattformschnittstelle 108a und sendet diese.
-
In dem Fall beispielsweise, in dem die Informationen, die von der Anwendung ausgegeben werden, Daten sind, die an eine externe Vorrichtung zu senden sind, wird ein Ausgabeziel durch Rufen einer geeigneten Schnittstelle von der Plattformschnittstelle 108a ausgewählt, sodass die Daten von einer Kommunikationshardware entsprechend einem geeigneten Kommunikationsprotokoll durch die Funktion des funktionellen Moduls 112 des Ausgangssystems entsprechend der Plattformebene 108 gesendet werden. In dem Fall, in dem die Informationen, die von der Anwendung ausgegeben werden, ein Steuersignal für den Aktuator bilden, wird eine Schnittstelle zum Zugreifen auf eine Hardware entsprechend dem Aktuator 4 auf geeignete Weise durch die Funktion des funktionellen Moduls 112 des Ausgangssystems ausgewählt.
-
3 ist ein Flussdiagramm, das ein Beispiel eines Prozesses darstellt, bei dem Schnittstellen und Funktionen entsprechend der Anwendungsebene 107 und der Plattformebene 108 auf der Grundlage des Middleware-Programms 19 ausgeführt werden. Dieser Prozess wird von einem Compiler etc. ausgeführt, wenn die Anwendungsprogramme 17, 17, ..., das Middleware-Programm 19 und das Plattformprogramm 18 verbunden (verlinkt) werden.
-
Wie es oben beschrieben wurde, bereitet das Middleware-Programm 19 mehrere Schnittstellen 111, 111, ... zum Implementieren des Rufverfahrens und zum Übertragen von Daten entsprechend den Spezifikationsanforderungen verschiedener Anwendungsprogramme 17, 17, ... vor. Somit wird eine Schnittstelle 111 entsprechend den Anwendungsprogrammen 17, 17, ..., die auszuführen sind, ausgewählt (Schritt S1).
-
Mit dem Middleware-Programm 19 werden Dateneingabe- und -ausgabeverfahren entsprechend den Spezifikationen des Plattformprogramms 18, das in der Plattformebene 108 auszuführen ist, durch Auswählen einer Schnittstelle gewechselt. Somit wird eine Schnittstelle entsprechend den Spezifikationen des Plattformprogramms 18 ausgewählt (Schritt S2).
-
Dann werden die funktionellen Module 112, 112, ... entsprechend den Anwendungsprogrammen 17, 17, und dem Plattformprogramm, das auszuführen ist, ausgewählt (Schritt S3). Es gibt Funktionen, die in der Anwendungsebene 107 auszuführen sind, oder Funktionen, die in der Plattformebene 108 auszuführen sind. Die ausgewählten funktionellen Module 112, 112, ... werden derart angeordnet, dass sie in der Anwendungsebene 107 oder der Plattformebene 108 ausgeführt werden (Schritt S4), und der Prozess wird beendet.
-
Im Folgenden wird ein Prozess, der durch eine Funktion als Systemverwalter 110 der CPU 11 zu implementieren ist, erläutert. 4 ist ein Flussdiagramm, das ein Beispiel eines Prozesses darstellt, der in der Anwendungsebene 107, der Plattformebene 108 und der Middleware-Ebene 109 entsprechend der Funktion des Systemverwalters 110 auszuführen ist. Der Prozess, der im Folgenden erläutert wird, wird beispielsweise durchgeführt, wenn die ECU 1 zurückgesetzt wird.
-
Wenn die ECU 1 zurückgesetzt wird und die CPU 11 zurückgesetzt wird, wird die Plattformebene 108 aktiviert (Schritt S101), und es werden Verwaltungsinformationen erzeugt und an die Middleware-Ebene 109 durch die Plattformschnittstelle 108a durch den Systemverwalter 110, der zusammen mit der Plattformebene 108 aktiviert wird, gesendet (Schritt S102).
-
In der Middleware-Ebene 109 werden die Verwaltungsinformationen mit einer Meldung, die von der Plattformschnittstelle 108a ausgegeben wird, empfangen (Schritt S103), und die Verwaltungsinformationen werden von einer Verwaltungssystemschnittstelle an die Anwendungsebene 107 auf der Grundlage der Funktion des Verwaltungssystems gesendet (Schritt S104).
-
In der Anwendungsebene 107 werden die Verwaltungsinformationen empfangen (Schritt S105), und es werden Anwendungsprogramme 17, 17, ..., die auszuführen sind, auf der Grundlage der Informationen, die in den Verwaltungsinformationen enthalten sind, ausgewählt und ausgeführt (Schritt S106). In der Anwendungsebene 107 wird der Ausführungsstatus der Anwendungsprogramme 17, 17, ... erfasst (Schritt S107), es werden Statusinformationen, die den erfassten Status angeben, erzeugt (Schritt S108), und dann werden die erzeugten Statusinformationen an die Middleware-Ebene 109 ausgegeben (Schritt S109).
-
In der Middleware-Ebene 109 werden die Statusinformationen, die von der Anwendungsebene 107 ausgegeben werden, durch die Verwaltungssystemschnittstelle, die dem Anwendungsprogramm 17 entspricht, empfangen (Schritt S110). In der Middleware-Ebene 109 wird eine Schnittstelle von der Plattformschnittstelle 108a ausgewählt, sodass die Statusinformationen an den Systemverwalter 110 ausgegeben und die Statusinformationen gesendet werden (Schritt S111).
-
Die Statusinformationen werden von dem Systemverwalter 110 empfangen (Schritt S112), und der Prozess ist beendet.
-
Wenn die Statusinformation von dem Systemverwalter 110 in Schritt S112 empfangen werden, bestimmt der Systemverwalter 110 einen optimalen Status für die gesamte ECU 1 auf der Grundlage der Statusinformationen, erzeugt erneut Verwaltungsinformationen, sodass ein optimaler Prozess in der Anwendungsebene 107, der Middleware-Ebene 109 und der Plattformebene 108 durchgeführt wird. Danach wird der Prozess vom Schritt S107 bis zum Schritt S112 wiederholt, und der Ausführungsstatus in der Anwendungsebene 107 wird durch den Systemverwalter 110 überwacht. Wenn sich beispielsweise der Verarbeitungsstatus in der Anwendungsebene geändert hat, werden somit optimale Prozesse in der gesamten Vorrichtung entsprechend der Änderung des Status durchgeführt.
-
Im Folgenden wird anhand eines speziellen Beispiels ein Prozess beschrieben, der in der Middleware-Ebene 109 dieser Ausführungsform durchgeführt wird, um Funktionen entsprechend der Anwendungsebene 107 und der Plattformebene 108 auszuwählen.
-
5 ist eine erläuternde Ansicht, die konzeptionell ein Beispiel einer Struktur eines Steuerprogramms 1P entsprechend einer Kombination der Anwendungsprogramme 17 und des Plattformprogramms 18 darstellt. In der erläuternden Ansicht der 5 basiert das Plattformprogramm 18 auf der Spezifikation X, und die Plattformschnittstelle 108a ist außerdem entsprechend der Spezifikation X ausgelegt. In der erläuternden Ansicht der 5 wird die Anwendungsebene 107 der Anwendungsprogramme 17, 17, ... entsprechend der Spezifikation Y ausgelegt und erzeugt. Die Plattformschnittstelle 108a entsprechend der Spezifikation X und ein Rufverfahren für die Anwendungsprogramme 17, 17, ... mit der Spezifikation Y entsprechen einander nicht, und daher sind sie nicht direkt kombinierbar.
-
Mit der Softwarestruktur des Steuerprogramms 1P dieser Ausführungsform werden jedoch beim Verbinden (Verlinken) eine Schnittstelle 111 auf der Seite der Anwendungsebene 107 entsprechend der Spezifikation Y der Anwendungsprogramme 17, 17, ... und eine Schnittstelle auf der Seite der Plattformebene 108 entsprechend der Spezifikation X ausgewählt und kombiniert, da das Middleware-Programm 19 mit diesen beiden verbunden ist. Funktionelle Module 112, 112, ... des Eingangssystems, Ausgangssystems, und Verwaltungssystems entsprechend der Plattformebene 108 mit der Spezifikation X und der Anwendungsebene 107 mit der Spezifikation Y werden auf geeignete Weise in der Middleware-Ebene 109 ausgewählt. Dieses ermöglicht ein Kombinieren des Anwendungsprogramms 17 und des Plattformprogramms 18 sogar dann, wenn die Spezifikation X und die Spezifikation Y nicht direkt kombiniert werden können. Somit ist es nicht notwendig, den Prozess eines erneuten Erzeugens der Anwendungsprogramme 17, 17, ... für jede Spezifikation der Plattformebene 108 durchzuführen.
-
6 ist eine erläuternde Ansicht, die konzeptionell ein anderes Beispiel einer Struktur eines Steuerprogramms 1P gemäß einer Kombination aus Anwendungsprogrammen 17 und eines Plattformprogramms 18 darstellt. In der erläuternden Ansicht der 6 basiert das Plattformprogramm 18 auf einer Spezifikation Z, und die Plattformschnittstelle 108a ist ebenfalls entsprechend der Spezifikation Z ausgelegt. Andererseits wird die Anwendungsebene 107 der Anwendungsprogramme 17, 17, ... entsprechend der Spezifikation W ausgelegt und erzeugt. In diesem Fall sind die Plattformschnittstelle 108a gemäß der Spezifikation Z und die Anwendungsprogramme 17, 17, ... mit der Spezifikation W nicht direkt kombinierbar.
-
In dem Beispiel der 6 werden eine Schnittstelle 111 auf der Seite der Anwendungsebene 107 entsprechend der Spezifikation W der Anwendungsprogramme 17, 17, ... und eine Schnittstelle auf der Seite der Plattformebene 108 entsprechend der Spezifikation Z ausgewählt und kombiniert. In den Anwendungsprogrammen 17, 17, ... mit der Spezifikation W werden eine Anwendung zum Kodieren von Daten (Signal), die von der Plattformebene 108 eingegeben werden, und eine Anwendung zum Erzeugen von Daten (Signal), die auszugeben sind, implementiert bzw. durchgeführt, und daher ist es nicht notwendig, diese Funktionen in der Middleware-Ebene 109 durchzuführen. In diesem Fall werden, wie es in dem Flussdiagramm der 3 dargestellt ist, nur eine Interpreter-Funktion zwischen den Schnittstellen und eine Verwaltungssystemfunktion ausgewählt, da die funktionellen Module 112, 112, ... geeignet von dem Middleware-Programm 19 ausgewählt werden. Da die Funktionen entsprechend einer Kombination aus Anwendungsprogrammen 17, 17, ... und eines Plattformprogramms 18 ausgewählt werden können, sind somit verschiedene Kombinationen verfügbar, und es besteht keine Notwendigkeit, den Prozess zum erneuten Erzeugen der Anwendungsprogramme 17, 17, ... für jede Spezifikation der Plattformebene 108 durchzuführen.
-
7 ist eine erläuternde Ansicht, die konzeptionell ein anderes Beispiel einer Struktur eines Steuerprogramms 1P entsprechend einer Kombination von Anwendungsprogrammen 17, 17, ... und eines Plattformprogramms 18 darstellt. In der erläuternden Ansicht der 7 basiert das Plattformprogramm 18 auf einer Spezifikation V, und die Plattformschnittstelle 108a ist ebenfalls entsprechend der Spezifikation V ausgelegt. Andererseits wird die Anwendungsebene 107 der Anwendungsprogramme 17, 17, ... entsprechend der Spezifikation S ausgelegt und erzeugt. In diesem Fall sind die Plattformschnittstelle 108a gemäß der Spezifikation V und die Anwendungsprogramme 17, 17, ... mit der Spezifikation S nicht direkt kombinierbar.
-
In dem Beispiel der 7 werden eine Schnittstelle 111 auf der Seite der Anwendungsebene 107 entsprechend der Spezifikation S der Anwendungsprogramme 17, 17, ... und eine Schnittstelle auf der Seite der Plattformebene 108 entsprechend der Spezifikation V ausgewählt und kombiniert. In der Kombination aus der Plattformschnittstelle 108a entsprechend der Spezifikation V und den Anwendungsprogrammen 17, 17, ... mit der Spezifikation S sind eine Funktion zum Dekodieren von Daten (Signal) als eine Eingangssystemfunktion und eine Funktion zum Analysieren von Daten, die von einer anderen ECU empfangen werden, nicht vorhanden, und daher werden die funktionellen Module 112, 112, ... durch den Prozess, der in dem Flussdiagramm der 3 dargestellt ist, ausgewählt. Außerdem werden als eine Ausgangssystemfunktion, da eine Funktion zum Erneuern von Ausgangsdaten (Signal) und eine Funktion zum Erzeugen von Daten, die an eine andere ECU zu senden sind, nicht vorhanden sind, funktionelle Module für diese ausgewählt. Da eine Funktion zum Überwachen des Kommunikationsstatus des Kommunikationsabschnitts 15 und eine Funktion zum Erfassen einer Unterbrechung nicht vorhanden sind, werden außerdem funktionelle Module 112, 112, ..., die diesen entsprechen, von dem Middleware-Programm 19 ausgewählt.
-
Außerdem wird in dem Beispiel, das in 7 dargestellt ist, mit dem Prozess in dem Flussdiagramm der 3 bestimmt, dass im Hinblick auf die Beziehung zu einer anderen Anwendung, die in der Anwendungsebene 107 ausgeführt wird, die Eingangsdatendekodierungsfunktion als ein Anwendungsprogramm 17 ausgeführt wird, und es werden funktionelle Module 112, 112, ..., die diesen entsprechen, von dem Middleware-Programm 19 ausgewählt und in die Anwendungsebene 107 gesetzt. Außerdem werden in dem Beispiel der 7 funktionelle Module 112, 112, ... für die Ausgangsdatenerneuerungsfunktion und die Unterbrechungserfassungsfunktion in die Anwendungsebene 107 gesetzt, und es werden funktionelle Module 112, 112, ... für fehlende Funktionen, d. h. eine Empfangsdatenanalysefunktion, eine Sendedatenerzeugungsfunktion und eine Kommunikationsstatusüberwachungsfunktion ausgewählt und in die Plattformebene 108 gesetzt.
-
Somit sind Funktionen entsprechend den Anwendungsprogrammen 17, 17, ... und dem Plattformprogramm 18, die zu kombinieren sind, auswählbar, und werden entsprechend ihrer Strukturen gesetzt. Somit ist es möglich, gewünschte Funktionen entsprechend verschiedenen Kombinationen zu implementieren, und es ist nicht notwendig, den Prozess zum erneuten Erzeugen der Anwendungsprogramme 17, 17, ... für jede Spezifikation der Plattformebene 108 durchzuführen.
-
Daher ist es für jede Plattformebene 108, basierend auf einem Plattformprogramm 108, das auf der Grundlage einer beliebigen Spezifikation erzeugt wird, möglich, Funktionen in der Anwendungsebene 107 auf der Grundlage verschiedener Anwendungsprogramme 17, 17, ... zu kombinieren. Ein beliebiges Plattformprogramm 108 behandelt eine Ebene oberhalb der Plattformschnittstelle 108a als eine Anwendungsebene ohne Unterscheidung entsprechend seiner Spezifikation, und ein beliebiges Anwendungsprogramm 17, 17, ... behandelt eine Ebene unterhalb der Middleware-Ebene 109 als eine Plattformebene 108 ohne Unterscheidung entsprechend seiner Spezifikation. Es ist daher möglich, die Anwendungsprogramme 17, 17, ... mit verschiedenen Plattformprogrammen 18 zu kombinieren, ohne die Anwendungsprogramme 17, 17, ... zu modifizieren, und diese zu verwenden. Somit wird die Wiederverwendbarkeit der Anwendungsprogramme 17, 17, ... und des Plattformprogramms 18 verbessert.
-
Durch Erzeugen einer Softwarestruktur, die unter Verwendung des Middleware-Programms 19 kompatibel zu verschiedenen Strukturen einer Anwendungsebene 107 und einer Plattformebene 108 ist, ist die ECU 1 in verschiedenen Kombinationen von Anwendungsebenen 107 und Plattformebenen 108 steuerbar. Außerdem ist es mit einer Struktur, die nicht nur ein Aufheben entweder des Unterschiedes der Schnittstelle der Plattformebene 108 oder des Unterschiedes in den Rufverfahren auf der Seite der Anwendungsebene 107 ermöglicht, sondern ebenfalls ein Auswählen einer Schnittstelle entsprechend der jeweiligen Schnittstellen unabhängig für beide Ebenen ermöglicht, möglich verschiedenen Kombinationen gerecht zu werden. In dem Fall, in dem die Plattformebene 108 mit der Spezifikation X verwendet wurde, war es notwendig, unabhängig Anwendungsprogramme 17, 17, ... für die Spezifikation X zu erzeugen, aber es wird nun möglich, die Anwendungsprogramme 17, 17, ... mit derselben Spezifikation sowohl für die Plattformebene 108 mit der Spezifikation X als auch die Plattformebene 108 mit der Spezifikation Z zu verwenden, wodurch die Wiederverwendbarkeit sowohl der Anwendungsprogramme 17, 17, ... als auch des Plattformprogramms 18 verbessert wird.
-
In dem Fall, in dem eine Vielzahl von Prozessen in Kooperation mit mehreren ECUs durchgeführt wird, ist die Verwendung einer speziellen Hardware-Ressource für einige ECUs manchmal notwendig. Um eine spezielle Hardware-Ressource zu verwenden, ist es notwendig, ein Plattformprogramm 18 zu verwenden, das für die Hardware-Ressource spezialisiert ist. In der Struktur, in der jedes der Anwendungsprogramme 17, 17, ... individuell entsprechend einem derartigen Plattformprogramm 18 modifiziert wird, wird die Entwicklungsdauer nicht verkürzt. Andererseits ist es mit der Softwarestruktur dieser Ausführungsform möglich, wenn die Inhalte des Middleware-Programms 19 in Entsprechung zu jeweiligen Spezifikationen der Anwendungsebene 107 und der Plattformebene 108 unabhängig aufgebaut werden, eine Software für allgemeine Zwecke zu realisieren, die in der Lage ist, Prozesse entsprechend verschiedenen Kombinationen von ECUs durch ein einzelnes Middleware-Programm 19 durchzuführen, wodurch nicht nur eine Verkürzung der Entwicklungsdauer, sondern ebenfalls vorteilhafte Wirkungen wie beispielsweise ein Auflösen der Komplexität der Programmverwaltung für eine Entwicklung großen Ausmaßes zu erzielen.
-
Derzeitig erzeugt beispielsweise jeder Verkäufer individuell ECUs und ECU-Komponenten, und es existiert eine Vielzahl von Plattformprogrammen 18. Die Standardisierung neuer und vorhandener Plattformebenen 108 kann jedoch fortschreiten, und es besteht die weitere Möglichkeit, dass Plattformschnittstellen 108a modifiziert oder hinzugefügt werden. Wenn die Standardisierung fortschreitet, ist es notwendig, dass die Anwendungsprogramme 17, 17, ... der Plattformebene 108 entsprechen, und es ist ebenfalls notwendig, die Anwendungsprogramme 17, 17, ... jedes Mal, wenn eine Schnittstelle modifiziert oder hinzugefügt wird, zu modifizieren. Mit der Softwarestruktur des Steuerprogramms 1P dieser Ausführungsform besteht jedoch keine Notwendigkeit, die Anwendungsprogramme 17, 17, ... zu modifizieren, sondern es ist nur notwendig, das Middleware-Programm 19 erneut entsprechend der standardisierten Plattform zu verbinden bzw. verlinken, und somit ist das Middleware-Programm 19 auch mit der anderen Plattform verwendbar.
-
Da das Middleware-Programm 19 aus mehreren getrennten funktionellen Modulen besteht, wie es in 7 dargestellt ist, werden Funktionen derart platziert, dass die funktionellen Module auf der Seite der Anwendungsebene 107 oder auf der Seite der Plattformebene 108 nach Bedarf ausgeführt werden. Somit ist es bei verschiedenen Kombinationen von Anwendungsebenen 107 und Plattformebenen 108 möglich, fehlende Funktionen gemeinsam zu kompensieren. Mit anderen Worten ist das Middleware-Programm 19 in der Lage, mit verschiedenen Kombinationen zu arbeiten, wodurch die Wiederverwendbarkeit der Anwendungsprogramme 17, 17, ... und des Plattformprogramms 18 verbessert wird.
-
Die oben beschriebene Ausführungsform stellt ein Beispiel dar, bei dem die vorliegende Erfindung für eine ECU, die an einem Fahrzeug montiert ist, verwendet wird. Die vorliegende Erfindung ist jedoch nicht darauf beschränkt und ist für eine Computervorrichtung zum Steuern von Hardware-Ressourcen auf der Grundlage von Anwendungsprogrammen verwendbar.
-
Die oben beschriebene Ausführungsform ist nur beispielhaft und hinsichtlich ihrer Aspekte nicht einschränkend. Der Bereich der Erfindung wird durch die zugehörigen Ansprüche anstatt durch die obige Beschreibung definiert, und sämtliche Änderungen, die innerhalb der Grenzen der Ansprüche oder der Äquivalenz derartiger Grenzen liegen, sind daher von den Ansprüchen umfasst.
-
ZUSAMMENFASSUNG
-
Die vorliegende Erfindung stellt eine Steuervorrichtung, ein Steuerverfahren und ein Computerprogramm bereit, die flexibel mit verschiedenen Kombinationen von Anwendungsprogrammen und Plattformprogrammen arbeiten und in der Lage sind, den Entwicklungsprozess zu verkürzen und die Entwicklungslast durch Verbessern der Wiederverwendbarkeit der Anwendungsprogramme und Plattformprogramme, die einzigartige Funktionen einer Vorrichtung implementieren, zu verbessern.
-
Eine Middleware-Ebene 109 basierend auf einem Middleware-Programm ist zwischen einer Plattformebene 108 und einer Anwendungsebene 107 vorgesehen. In der Middleware-Ebene 109 ist eine Schnittstelle auf der Seite der Anwendungsebene 107 auswählbar, und außerdem wird eine Schnittstelle auf der Seite der Plattformebene 108 ausgewählt. Außerdem sind Funktionen in der Middleware-Ebene 109 als funktionelle Module ausgebildet, sodass sie entsprechend einer Funktion auf der Seite der Anwendungsebene 107 und einer Funktion auf der Seite der Plattformebene 108 ausgewählt werden können.
-
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
-