-
Die vorliegende Erfindung betrifft eine elektronische Steuerungseinheit.
-
Es ist eine elektronische Steuerungseinheit bekannt, die eine Datenkommunikation mit einer externen Vorrichtung über einen Kommunikationsbus durchführt. Ein Mikrocomputer, der in dieser Art von elektronischer Steuerungseinheit angeordnet ist, kann mehrere Sendeanfragen, die unterschiedliche Prioritäten aufweisen, verarbeiten. Die
JP H6 - 334 705 A offenbart beispielsweise ein Merkmal, gemäß dem derselbe First-In-First-Out-Speicher (im Folgenden als FIFO-Speicher bezeichnet) für mehrere Sendeanfragen verwendet wird, die unterschiedliche Prioritäten aufweisen, und die Sendedaten werden entsprechend der Priorität gesendet werden. Wenn eine andere Sendeanfrage zum Senden von Daten mit höherer Priorität als die Sendeanfrage zum Senden von Daten mit einer niedrigen Priorität, die einer anderen Sendeanfrage vorangeht, durchgeführt bzw. ausgegeben wird, werden die Sendedaten mit der niedrigeren Priorität, die auf einen Sendeprozess warten, nicht beachtet oder verworfen, und der Sendeprozess für die Sendedaten mit der höheren Priorität wird priorisiert. Nach Beendigung des Sendeprozesses für die Sendedaten mit der höheren Priorität wird somit der Sendeprozess für die Sendedaten mit der niedrigen Priorität durchgeführt. Außerdem werden gemäß der
JP 2006 - 273 261 A mehrere FIFO-Speicher mit unterschiedlichen Prioritäten vorbereitet, Sendedaten werden in einem der FIFO-Speicher entsprechend der Priorität der Sendeanfrage gespeichert, und die Sendedaten, die in dem FIFO-Speicher mit höherer Priorität gespeichert sind, werden in absteigender Reihenfolge gesendet.
-
Bei der Konfiguration der
JP H6 - 334 705 A ist es jedoch notwendig, die nicht berücksichtigten Sendedaten niedrigerer Priorität erneut von dem RAM in den FIFO-Speicher zu übertragen, so dass ein Software-Overhead auftreten kann, da die Sendedaten mit niedrigerer Priorität, die auf den Sendeprozess warten, nicht berücksichtigt oder verworfen werden. Außerdem benötigt die Konfiguration gemäß der
JP 2006 - 273 261 A mehrere FIFO-Speicher mit unterschiedlichen Prioritäten, so dass die Konfiguration kompliziert ist und die Herstellungskosten größer sind.
-
Die vorliegende Erfindung entstand im Hinblick auf die obigen Probleme, und es ist eine Aufgabe der vorliegenden Erfindung, eine elektronische Steuerungseinheit zum geeigneten Senden der Sendedaten zu schaffen, um eine Erzeugung eines Software-Overheads zu vermeiden, ohne die Konfiguration zu verkomplizieren und die Kosten zu erhöhen.
-
Gemäß einem ersten Aspekt der vorliegenden Erfindung führt eine Datenverarbeitungseinheit (6, 7) einen Sendeprozess von Sendedaten durch, die in einem FIFO-Speicher (10) gespeichert sind, um die Sendedaten zu senden. Ein Puffer (12) speichert die Sendedaten, die in dem FIFO-Speicher gespeichert sind. Die Datenverarbeitungseinheit sichert die Sendedaten niedrigerer Priorität, die in dem FIFO-Speicher gespeichert sind, in dem Puffer, wenn eine Sendeanfrage nach den Sendedaten mit höherer Priorität in einem Zustand erzeugt wird, in dem die Sendedaten niedrigerer Priorität in dem FIFO-Speicher gespeichert sind. Nach Beendigung des Sendeprozesses der Sendedaten höherer Priorität werden die Sendedaten niedrigerer Priorität, die in dem Puffer gesichert sind, in dem FIFO-Speicher wiederhergestellt.
-
Wenn eine Sendeanfrage nach den Sendedaten höherer Priorität auftritt, während die Sendedaten niedrigerer Priorität in dem FIFO-Speicher gespeichert sind, werden die Sendedaten niedrigerer Priorität, die in dem FIFO-Speicher gespeichert sind, in dem Puffer gesichert, so dass der Sendeprozess der Sendedaten höherer Priorität priorisiert wird, ohne die Sendedaten niedrigerer Priorität nicht zu beachten bzw. zu verwerfen. Nach Beendigung des Sendeprozesses der Sendedaten höherer Priorität wird dann der Sendeprozess der Sendedaten niedrigerer Priorität durch Wiederherstellen der Sendedaten niedrigerer Priorität, die in dem Puffer gesichert sind, in dem FIFO-Speicher durchgeführt.
-
Dieses Merkmal vermeidet eine Verkomplizierung der Konfiguration und eine Erhöhung der Kosten, ohne mehrere FIFO-Speicher mit unterschiedlichen Prioritäten anzuordnen bzw. bereitzustellen. Außerdem wird eine Erzeugung eines Software-Overheads vermieden, ohne die Sendedaten niedrigerer Priorität nicht zu beachten bzw. zu verwerfen und die Sendedaten niedrigerer Priorität von dem RAM erneut an den FIFO-Speicher zu übertragen. Als Ergebnis werden Sendedaten hinsichtlich mehrerer Sendeanfragen unterschiedlicher Prioritäten geeignet gesendet, während eine Erzeugung eines Software-Overheads vermieden wird, ohne die Konfiguration zu verkomplizieren und die Kosten zu erhöhen.
-
Die obigen und weiteren Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden anhand der folgenden detaillierten Beschreibung mit Bezug auf die zugehörigen Zeichnungen deutlich. Es zeigen:
- 1 ein Funktionsblockdiagramm, das eine Ausführungsform zeigt;
- 2 ein Flussdiagramm;
- 3 ein Diagramm, das einen Aspekt zum Übertragen von Sendedaten zeigt (Teil 1);
- 4 ein Diagramm, das einen Aspekt zum Übertragen der Sendedaten zeigt (Teil 2);
- 5 ein Diagramm, das einen Aspekt zum Übertragen der Sendedaten zeigt (Teil 3); und
- 6 ein Diagramm, das einen Aspekt zum Übertragen der Sendedaten zeigt (Teil 4).
-
Erste Ausführungsform
-
Im Folgenden wird die vorliegende Erfindung gemäß einer Ausführungsform, die für eine elektronische Steuerungseinheit zum Steuern eines Verbrennungsmotors eines Fahrzeugs verwendet wird, mit Bezug auf die Zeichnungen beschrieben. Die elektronische Steuerungseinheit empfängt beispielsweise ein Sensorsignal, das die Temperatur eines Verbrennungsmotorkühlmittels angibt, von einem Wassertemperatursensor, ein Sensorsignal, das die Temperatur der Ansaugluft angibt, von einem Ansauglufttemperatursensor ein Sensorsignal, das einen Öffnungsgrad eines Beschleunigers bzw. Gaspedals angibt, von einem Beschleunigeröffnungsgradsensor bzw. Gaspedalöffnungsgradsensor, ein Sensorsignal, das den Öffnungsgrad einer Drosselklappe angibt, von einem Drosselöffnungsgradsensor, und ein Sensorsignal, das die Anzahl der Umdrehungen und einen Drehwinkel des Verbrennungsmotors angibt, von dem Verbrennungsmotordrehwinkelsensor, anhand derer die elektronische Steuerungseinheit die Betriebsbedingung des Verbrennungsmotors steuert.
-
Wie es in 1 gezeigt ist, weist die elektronische Steuerungseinheit 1 einen Mikrocomputer 2 und eine Daten-Sende/Empfangs-Einheit 3 auf und führt eine Datenkommunikation mit externen Vorrichtungen 5a und 5b über einen Kommunikationsbus 4 durch, so dass die elektronische Steuerungseinheit 1 mit den externen Vorrichtungen 5a, 5b zusammenarbeitet. Die externen Vorrichtungen 5a und 5b können andere elektronische Steuerungsvorrichtungen, anwendungsspezifische integrierte Schaltkreise (ASICs) oder Ähnliches sein, und die Anzahl der externen Vorrichtungen kann beliebig sein, beispielsweise eins oder mehr als zwei. Der Mikrocomputer 2 enthält eine zentrale Verarbeitungseinheit (CPU) 6 (als eine Datenverarbeitungseinheit), einen Speicher mit direktem Zugriff (DMA) 7 (als eine Datenverarbeitungseinheit), einen Speicher mit wahlfreiem Zugriff (RAM) 8 und eine Kommunikationssteuerungseinheit 9. Die Kommunikationssteuerungseinheit 9 weist einen FIFO-Speicher 10, eine Sendeschlange 11 und einen Puffer 12 auf.
-
Die CPU 6 und der DMA 7 können auf den RAM 8, den FIFO-Speicher 10, die Sendeschlange 11 und den Puffer 12 zugreifen. Mehrere Sendedaten mit unterschiedlichen Prioritäten werden in dem RAM 8 gespeichert, und es werden Sendedaten niedriger bzw. niedrigerer Priorität, die relativ niedrige bzw. niedrigere Prioritäten aufweisen, und Sendedaten hoher bzw. höherer Priorität, die relativ hohe bzw. höhere Prioritäten aufweisen, gespeichert. Die Sendedaten niedrigerer Priorität weisen einen relativ niedrigen Notfallgrad auf und sind Daten mit einer Charakteristik, die ausreichend ist, um diese in einem vorbestimmten Zyklus periodisch zu senden, und sind Daten zum Melden beispielsweise eines Sensorwertes, der durch einen Sensor erlangt wird. Die Sendedaten höherer Priorität sind Daten mit einer Charakteristik, die einen relativ hohen Notfallgrad aufweist, müssen sofort nach dem Auftreten einer Sendeanfrage gesendet werden und sind beispielsweise Daten zum Melden einer Betriebsabnormität oder einer Betriebsstoppanweisung .
-
Wenn eine Sendeanfrage für Sendedaten erzeugt wird, übertragen die CPU 6 und der DMA 7 die Sendedaten, die in dem RAM 8 gespeichert sind, an den FIFO-Speicher 10. Wenn eine Sendeanfrage für Sendedaten niedrigerer Priorität erzeugt wird, folgen die CPU 6 und der DMA 7 dem Übertragungszeitpunkt, der von der CPU 6 und dem DMA 7 gehalten wird, unabhängig von dem Zeitpunkt, zu dem die Sendeanfrage erzeugt wird, und übertragen die Sendedaten niedrigerer Priorität von dem RAM 8 an den FIFO-Speicher 10. Das heißt, die CPU 6 und der DMA 7 übertragen die Sendedaten niedrigerer Priorität von dem RAM 8 an den FIFO-Speicher 10 durch eine asynchrone Kommunikation. Wenn andererseits eine Anfrage zum Senden der Sendedaten höherer Priorität erzeugt wird, folgen die CPU 6 und der DMA 7 dem Zeitpunkt, zu dem die Sendeanfrage erzeugt wird, unabhängig von dem Übertragungszeitpunkt, der von der CPU 6 und dem DMA 7 gehalten wird, und übertragen die Sendedaten höherer Priorität von dem RAM 8 an den FIFO-Speicher 10. Das heißt, die CPU 6 und der DMA 7 übertragen die Sendedaten höherer Priorität von dem RAM 8 an den FIFO-Speicher 10 durch eine synchrone Kommunikation.
-
Die CPU 6 und der DMA 7 überwachen, ob die Sendeschlange 11 leer ist, und wenn bestimmt wird, dass die Sendeschlange 11 leer ist, werden die Sendedaten, die in dem FIFO-Speicher 10 gespeichert sind, an die Sendeschlange 11 übertragen, und es wird der Sendeprozess der Sendedaten, die in dem FIFO-Speicher 10 gespeichert sind, durchgeführt. Das heißt, jedes Mal, wenn bestimmt wird, dass die Sendeschlange 11 leer ist, übertragen die CPU 6 und der DMA 7 die Sendedaten, die in dem FIFO-Speicher 10 gespeichert sind, an die Sendeschlange 11 und führen anschließend den Datensendeprozess der Sendedaten, die in dem FIFO-Speicher 10 gespeichert sind, durch.
-
Die Daten, die in der Sendeschlange 11 gespeichert sind, werden an die Daten-Sende/Empfangs-Einheit 3 übertragen, und die Daten-Sende/Empfangs-Einheit 3 sendet die Daten an die externen Vorrichtungen 5a und 5b über den Kommunikationsbus 4.
-
Der Puffer 12 kann die Sendedaten, die in dem FIFO-Speicher 10 gespeichert sind, zeitweilig speichern. Die CPU 6 und der DMA 7 übertragen die Sendedaten, die in dem FIFO-Speicher 10 gespeichert sind, an den Puffer 12, um die Sendedaten, die in dem FIFO-Speicher 10 gespeichert sind, in dem Puffer 12 zu sichern. Die CPU 6 und der DMA 7 übertragen die Sendedaten, die in dem Puffer 12 gespeichert sind, erneut an den FIFO-Speicher 10, wodurch die Sendedaten, die in dem Puffer 12 gesichert sind, an den FIFO-Speicher 10 übertragen und dort wiederhergestellt werden.
-
Die Funktion der Konfiguration wird mit Bezug auf die 2 bis 6 beschrieben. In der vorliegenden Ausführungsform wird ein Fall beschrieben, in dem die CPU 6 den Überwachungsprozess der Sendeanfrage durchführt. Alternativ führt der DMA 7 ähnlich wie in dem obigen Fall den Überwachungsprozess der Sendeanfrage durch.
-
Wenn die CPU 6 bestimmt, dass ein Startereignis des Sendeanfrageüberwachungsprozesses auftritt und den Sendeanfrageüberwachungsprozess startet, bestimmt die CPU 6, ob eine Sendeanfrage erzeugt wird bzw. wurde (in S1). Wenn die CPU 6 bestimmt, dass keine Sendeanfrage vorhanden ist (Nein in S1), endet der Sendeanfrageüberwachungsprozess und die CPU 6 wartet auf das Auftreten eines Startereignisses des nächsten Sendeanfrageüberwachungsprozesses.
-
Wenn die CPU 6 bestimmt, dass eine Sendeanfrage erzeugt wird bzw. wurde (Ja in S1), bestimmt sie, ob die erzeugte Sendeanfrage eine Sendeanfrage hinsichtlich der Sendedaten hoher bzw. höherer Priorität ist (in S2). Wenn die CPU 6 bestimmt, dass die erzeugte Sendeanfrage keine Sendeanfrage für Sendedaten hoher Priorität, sondern eine Sendeanfrage für Sendedaten niedriger bzw. niedrigerer Priorität ist (Nein in S2), werden die Sendedaten niedrigerer Priorität, die in dem RAM 8 gespeichert sind, an den FIFO-Speicher 10 übertragen (in S3), der Sendeanfrageüberwachungsprozess endet und die CPU 6 wartet auf das Auftreten des Startereignisses des nächsten Sendeanfrageüberwachungsprozesses. Wenn die CPU 6 danach bestimmt, dass die Sendeschlange 11 leer ist, überträgt die CPU 6 die Sendedaten niedriger bzw. niedrigerer Priorität, die in dem FIFO-Speicher 10 gespeichert sind, an die Sendeschlage 11 und führt den Sendeprozess für die Sendedaten niedrigerer Priorität durch. Die Sendedaten niedrigerer Priorität, die in der Sendeschlange 11 gespeichert sind, werden an die Daten-Sende/Empfangs-Einheit 3 übertragen und von der Daten-Sende/Empfangs-Einheit 3 an die externen Vorrichtungen 5a und 5b über den Kommunikationsbus 4 übertragen.
-
Wenn die CPU 6 bestimmt, dass die erzeugte Sendeanfrage eine Sendeanfrage hinsichtlich Sendedaten hoher bzw. höherer Priorität ist (Ja in S2), bestimmt sie, ob die Sendedaten niedriger bzw. niedrigerer Priorität in dem FIFO-Speicher 10 gespeichert sind (in S4). Wenn die CPU 6 bestimmt, dass die Sendedaten niedriger Priorität nicht in dem FIFO-Speicher 10 gespeichert sind (Nein in S4), überträgt die CPU 6 die Sendedaten hoher Priorität, die in dem RAM 8 gespeichert sind, an den FIFO-Speicher 10 (in S5), und dann endet der Überwachungsprozess der Sendeanfrage. Dann wartet die CPU 6 auf das Auftreten des Startereignisses des Überwachungsprozesses der nächsten Sendeanfrage. Wenn die CPU 6 danach bestimmt, dass die Sendeschlange 11 leer ist, überträgt die CPU 6 die Sendedaten hoher bzw. höherer Priorität, die in dem FIFO-Speicher 10 gespeichert sind, an die Sendeschlange 11 und führt den Sendeprozess für die Sendedaten hoher bzw. höherer Priorität durch. Die Sendedaten hoher bzw. höherer Priorität, die in der Sendeschlange 11 gespeichert sind, werden an die Daten-Sende/Empfangs-Einheit 3 übertragen und von der Daten-Sende/Empfangs-Einheit 3 an die externen Vorrichtungen 5a und 5b über den Kommunikationsbus 4 gesendet.
-
Wenn die CPU 6 bestimmt, dass die Sendedaten niedriger bzw. niedrigerer Priorität in dem FIFO-Speicher 10 gespeichert sind (Ja in S4), werden die Sendedaten niedriger Priorität, die in dem FIFO-Speicher 10 gespeichert sind, an den Puffer 12 übertragen, um die Daten zu sichern (in S6). Die CPU 6 überträgt die Sendedaten hoher Priorität, die in dem RAM 8 gespeichert sind, an den FIFO-Speicher 10, nachdem die Sendedaten niedriger Priorität vollständig in dem Puffer 12 gesichert wurden (in S7). Wenn die CPU 6 danach bestimmt, dass die Sendeschlange 11 leer ist, überträgt die CPU 6 die Sendedaten hoher Priorität, die in dem FIFO-Speicher 10 gespeichert sind, an die Sendeschlange 11 und führt den Sendeprozess für die Sendedaten hoher Priorität durch. Die Sendedaten hoher Priorität, die in der Sendeschlange 11 gespeichert sind, werden an die Daten-Sende/Empfangs-Einheit 3 übertragen und von der Daten-Sende/Empfangs-Einheit 3 an die externen Vorrichtungen 5a und 5b über den Kommunikationsbus 4 gesendet.
-
Die CPU 6 wartet auf die Beendigung des Sendes der Sendedaten hoher Priorität (in S8), bestimmt, dass die Sendeschlange 11 leer ist und bestimmt die Beendigung des Sendens der Sendedaten hoher Priorität (Ja in S8), und dann bestimmt die CPU 6, ob eine Sendeanfrage auftritt (in S9). Wenn die CPU 6 bestimmt, dass keine Sendeanfrage auftritt (Nein in S9), überträgt sie die Sendedaten niedriger Priorität, die in dem Puffer 12 gesichert sind, an den FIFO-Speicher 10 und stellt die Daten wieder her (in S10), und dann endet der Sendeanfrageüberwachungsprozess und die CPU 6 wartet auf das Auftreten des Startereignisses des nächsten Sendeanfrageüberwachungsprozesses.
-
Wenn die CPU 6 bestimmt, dass eine Sendeanfrage erzeugt wird bzw. wurde (Ja in S9), bestimmt sie, ob die erzeugte Sendeanfrage eine Sendeanfrage für Sendedaten hoher bzw. höherer Priorität ist (in S11). Wenn die CPU 6 bestimmt, dass die erzeugte Sendeanfrage keine Sendeanfrage für Sendedaten hoher Priorität ist, sondern eine Sendeanfrage für Sendedaten niedriger bzw. niedrigerer Priorität ist (Nein in S11), überträgt die CPU 6 die Sendedaten niedriger Priorität, die in dem Puffer 12 gesichert sind, an den FIFO-Speicher 10, um die Daten wiederherzustellen (in S10), und dann endet der Sendeanfrageüberwachungsprozess. Dann wartet die CPU 6 auf das Auftreten des Startereignisses des nächsten Sendeanfrageüberwachungsprozesses.
-
Wenn die CPU 6 bestimmt, dass die erzeugte Sendeanfrage eine Sendeanfrage für Sendedaten hoher Priorität ist (Ja in S11), kehrt sie zum oben beschriebenen Schritt S7 zurück und wiederholt Schritt S7 und die anschließenden Schritte.
-
Die CPU 6 verarbeitet die Sendedaten in der Kommunikationssteuerungseinheit 9 wie folgt mittels des oben beschriebenen Prozesses. In den 3 bis 6, die später beschrieben werden, ist A [n] (wobei n gleich 0, 1, 2, ... ist) Sendedaten niedriger bzw. niedrigerer Priorität, deren Sendeziel die externe Vorrichtung 5a ist, und B [m] (wobei m gleich 0, 1, 2, ... ist) repräsentiert Sendedaten hoher bzw. höherer Priorität, deren Sendeziel die externe Vorrichtung 5b ist.
-
3 zeigt einen Fall, in dem die Sendedaten niedriger Priorität in dem FIFO-Speicher 10 gespeichert werden, d. h., in dem eine Anfrage zum Senden von Sendedaten hoher Priorität auftritt, während auf den Sendeprozess der Sendedaten niedriger Priorität gewartet wird. Die CPU 6 speichert die Sendedaten niedriger Priorität A [0], A [1], A [2] in dem RAM, und wenn die Sendeanfrage für die Sendedaten niedriger Priorität A [0], A [1], A [2] auftritt (zu der Zeit 1), werden die Sendedaten niedriger Priorität A [0], A [1], A [2], die in dem RAM 8 gespeichert sind, an den FIFO-Speicher 10 übertragen (zu der Zeit 2). Die CPU 6 überträgt aufeinanderfolgend die Sendedaten niedriger Priorität A [0], A [1], A [2], die in dem FIFO-Speicher 10 gespeichert sind, an die Sendeschlange 11 jedes Mal, wenn die Sendeschlange 11 leer wird.
-
Wenn hier eine Anfrage zum Senden der Sendedaten hoher Priorität B [0] auftritt (zu der Zeit 3), nachdem die CPU 6 die Sendedaten niedriger Priorität A [0] an die Sendeschlange 11 übertragen hat, und bevor die nächsten Sendedaten niedriger Priorität A [1] an die Sendeschlange 11 übertragen werden, überträgt die CPU 6 die Sendedaten niedriger Priorität A [1], A [2], die in dem FIFO-Speicher 10 gespeichert sind, an den Puffer 12, um diese zu sichern, und dann überträgt die CPU 6 die Sendedaten hoher Priorität B [0] an den FIFO-Speicher 10 (zu der Zeit 4). Wenn die Sendeschlange 11 leer ist, überträgt die CPU 6 die Sendedaten hoher Priorität B [0], die an den FIFO-Speicher 10 übertragen wurden, an die Sendeschlange 11 (zu der Zeit 5).
-
Wenn die CPU 6 die Sendedaten hoher Priorität B [0] an die Sendeschlange 11 übertragen und den Sendeprozess der Sendedaten hoher Priorität B [0] beendet hat, überträgt die CPU 6 die Sendedaten niedriger Priorität A [1] und A [2], die in dem Puffer 12 gesichert sind, an den FIFO-Speicher 10 und stellt diese wieder her (zu der Zeit 6). Danach überträgt die CPU 6 aufeinanderfolgend die Sendedaten niedriger Priorität A [1] und A [2], die in dem FIFO-Speicher 10 wiederhergestellt wurden, an die Sendeschlange 11 jedes Mal, wenn die Sendeschlange 11 leer wird (zu der Zeit 7).
-
Wenn wie oben beschrieben die Sendeanfrage für die Sendedaten hoher Priorität B [0] auftritt, während die Sendedaten niedriger Priorität A [1] und A [2] in dem FIFO-Speicher 10 gespeichert sind, sichert die CPU 6 die Sendedaten niedriger Priorität A [1] und A [2], die in dem FIFO-Speicher 10 gespeichert sind, in dem Puffer 12, so dass die CPU 6 den Sendeprozess für die Sendedaten hoher Priorität B [0] mit Priorität vor den Daten A [1] und A [2] durchführt, ohne die Sendedaten niedriger Priorität A [1] und A [2] nicht zu beachten bzw. zu verwerfen. Dann stellt die CPU 6 die Sendedaten niedriger Priorität A [1] und A [2], die in dem Puffer 12 gesichert sind, in dem FIFO-Speicher 10 wieder her, nachdem der Sendeprozess für die Sendedaten hoher Priorität B [0] beendet wurde. Somit führt die CPU 6 den Sendeprozess der Sendedaten niedriger Priorität A [1] und A [2] durch.
-
Die 4 und 5 zeigen einen Fall, in dem eine neue Sendeanfrage für Sendedaten hoher Priorität auftritt, während die Sendedaten niedriger Priorität in dem Puffer 12 gesichert sind. Die CPU 6 führt einen ähnlichen Prozess wie in 3 von der Zeit 1 bis zu der Zeit 4 durch.
-
Die CPU 6 überträgt die neuen Sendedaten hoher Priorität B [1] an den FIFO-Speicher 10, während sie die Sicherung der Sendedaten niedriger Priorität A [1] und A [2] in dem Puffer 12 fortsetzt (zu der Zeit 6), wenn eine neue Sendeanfrage für die Sendedaten hoher Priorität B [1] auftritt (zu der Zeit 5), bevor die Sendedaten niedriger Priorität A [1] und A [2], die in dem Puffer 12 gesichert sind, durch Übertragen an den FIFO-Speicher 10 wiederhergestellt werden. Wenn die Sendeschlange 11 leer ist, überträgt die CPU 6 die Sendedaten hoher Priorität B [1], die bereits an den FIFO-Speicher 10 übertragen wurden, an die Sendeschlange 11 (zu der Zeit 7).
-
Wenn die CPU 6 die Sendedaten hoher Priorität B [1] an die Sendeschlange 11 übertragen und den Sendeprozess der Sendedaten hoher Priorität B [1] beendet hat, überträgt die CPU 6 die Sendedaten niedriger Priorität A [1] und A [2], die in dem Puffer 12 gesichert sind, an den FIFO-Speicher 10 und stellt diese wieder her (zu der Zeit 8). Danach überträgt die CPU 6 die Sendedaten niedriger Priorität A [1] und A [2], die in dem FIFO-Speicher 10 wiederhergestellt wurden, aufeinanderfolgend an die Sendeschlange 11 jedes Mal, wenn die Sendeschlange 11 leer wird (zu der Zeit 9).
-
Wenn wie oben beschrieben eine neue Anfrage zum Senden von neuen Sendedaten hoher Priorität B [1] auftritt, während die Sendedaten niedriger Priorität A [1] und A [2] wie oben beschrieben in dem Puffer 12 gesichert sind, priorisiert die CPU 6 eine Durchführung des Sendeprozesses für die Sendedaten hoher Priorität B [1], während das Sichern der Sendedaten niedriger Priorität A [1] und A [2] in dem Puffer 12 beibehalten wird. Dann stellt die CPU 6 die Sendedaten niedriger Priorität A [1] und A [2], die in dem Puffer 12 gesichert sind, in dem FIFO-Speicher 10 wieder her, nachdem der Sendeprozess der Sendedaten hoher Priorität B [0] beendet wurde. Somit führt die CPU 6 den Sendeprozess der Sendedaten niedriger Priorität A [1] und A [2] durch.
-
6 zeigt einen Fall, in dem eine neue Sendeanfrage für neue Sendedaten niedriger Priorität erzeugt wird, wenn die Sendedaten niedriger Priorität aktualisiert werden, während die Sendedaten niedriger Priorität in dem Puffer 12 gesichert sind. Die CPU 6 führt einen ähnlichen Prozess wie in 3 von der Zeit 1 bis zu der Zeit 4 durch.
-
Wenn die Sendedaten niedriger Priorität A [0], A [1], A [2] in die Sendedaten niedriger Priorität A [3], A [4] und A [5] aktualisiert werden und eine neue Sendeanfrage für die Sendedaten niedriger Priorität A [3], A [4] und A [5] erzeugt wird (zu der Zeit 5), bevor die CPU 6 die Sendedaten niedriger Priorität A [1], A [2], die in dem Puffer 12 gesichert sind, durch Übertragen an FIFO-Speicher 10 wiederhergestellt hat, stellt die CPU 6 die Sendedaten niedriger Priorität A [1] und A [2], die in dem Puffer 12 gesichert sind, durch Übertragen an den FIFO-Speicher 10 wieder her (zu der Zeit 6), bevor die CPU 6 anschließend die Sendedaten niedriger Priorität A [3], A [4] und A [5], die in dem RAM 8 gespeichert sind, an den FIFO-Speicher 10 überträgt.
-
Danach überträgt die CPU 6 aufeinanderfolgend die Sendedaten niedriger Priorität A [3], A [4], A [5], die in dem RAM 8 gespeichert sind, an den FIFO-Speicher 10. Danach überträgt die CPU 6 aufeinanderfolgend die Sendedaten niedriger Priorität A [1], A [2], A [3], A [4], A [5], die in dem FIFO-Speicher 10 wiederhergestellt wurden, an die Sendeschlange 11 (zu der Zeit 7) jedes Mal, wenn die Sendeschlange 11 leer wird.
-
Wenn in einem Zustand, in dem die Sendedaten niedriger Priorität A [1], A [2] in dem Puffer 12 gesichert sind, die Sendedaten niedriger Priorität A [0], A [1], A [2] wie oben beschrieben in die Sendedaten niedriger Priorität A [3], A [4], A [5] aktualisiert werden bzw. wurden und eine neue Sendeanfrage für die Sendedaten niedriger Priorität A [3], A [4], A [5] erzeugt wird, stellt die CPU 6 die Sendedaten niedriger Priorität A [1], A [2], die in dem Puffer 12 gesichert sind, in dem FIFO-Speicher 10 wieder her, bevor die CPU 6 die Sendedaten niedriger Priorität A [3], A [4], A [5] an den FIFO-Speicher 10 überträgt, so dass die CPU 6 den Sendeprozess für die Sendedaten niedriger Priorität A [1], A [2], A [3], A [4] und A [5] durchführt.
-
Die oben beschriebene Ausführungsform kann die folgenden Wirkungen erzielen.
-
Wenn in der elektronischen Steuerungseinheit 1 die Sendeanfrage für die Sendedaten hoher Priorität in einem Zustand erzeugt wird, in dem die Sendedaten niedriger Priorität in dem FIFO-Speicher 10 gespeichert sind, werden die Sendedaten niedriger Priorität, die in dem FIFO-Speicher 10 gespeichert sind, in dem Puffer 12 gesichert, so dass der Sendeprozess der Sendedaten hoher Priorität mit Priorität durchgeführt wird. Nachdem der Sendeprozess für die Sendedaten hoher Priorität beendet ist, wird der Sendeprozess für die Sendedaten niedriger Priorität durch Wiederherstellen der Sendedaten niedriger Priorität, die in dem Puffer 12 gesichert sind, in dem FIFO-Speicher 10 durchgeführt.
-
Dieses Merkmal vermeidet eine Verkomplizierung der Konfiguration und eine Erhöhung der Kosten, ohne mehrere FIFO-Speicher mit unterschiedlichen Prioritäten bereitzustellen. Außerdem wird die Erzeugung eines Software-Overheads vermieden, ohne die Sendedaten niedriger Priorität nicht zu berücksichtigen bzw. zu verwerfen und die Sendedaten niedriger Priorität von dem RAM 8 erneut an den FIFO-Speicher 10 zu übertragen. Als Ergebnis werden Sendedaten hinsichtlich mehrerer Sendeanfragen mit unterschiedlichen Prioritäten geeignet gesendet, während eine Erzeugung eines Software-Overheads vermieden wird, ohne die Konfiguration zu verkomplizieren und die Kosten zu erhöhen.
-
Wenn in der elektronischen Steuerungseinheit 1 eine neue Sendeanfrage für Sendedaten hoher Priorität in einem Zustand erzeugt wird, in dem die Sendedaten niedriger Priorität in dem Puffer 12 gesichert sind, werden die Sendedaten niedriger Priorität, die in dem Puffer 12 gesichert sind, in dem FIFO-Speicher 10 wiederhergestellt, nachdem der Sendeprozess für die neuen Sendedaten hoher Priorität beendet wurde. Sogar wenn die Sendeanfragen für die Sendedaten hoher Priorität kontinuierlich auftreten, können die Sendedaten geeignet gesendet werden, während das Auftreten eines Software-Overheads vermieden wird.
-
Wenn in der elektronischen Steuerungseinheit 1 eine neue Sendeanfrage für neue Sendedaten niedriger Priorität in einem Zustand erzeugt wird, in dem die Sendedaten niedriger Priorität in dem Puffer 12 gesichert sind, werden die Sendedaten niedriger Priorität, die in dem Puffer 12 gesichert sind, in dem FIFO-Speicher 10 wiederhergestellt, bevor die neuen Sendedaten niedriger Priorität in dem FIFO-Speicher 10 gespeichert werden. Sogar wenn die Sendedaten niedriger Priorität aktualisiert werden, können die Sendedaten richtig gesendet werden, ohne den Sendeprozess der Sendedaten niedriger Priorität vor der Aktualisierung zu überspringen.
-
In der elektronischen Steuerungseinheit 1 wird der Sendeprozess der Sendedaten niedriger Priorität asynchron durchgeführt, und der Sendeprozess der Sendedaten hoher Priorität wird synchron durchgeführt. Somit kann der Sendeprozess der Sendedaten hoher Priorität sofort durchgeführt werden, und danach kann der Sendeprozess der Sendedaten niedriger Priorität geeignet aus dem Unterbrechungszustand wieder aufgenommen werden.
-
Obwohl die vorliegende Erfindung anhand der obigen Ausführungsform beschrieben wurde, ist es selbstverständlich, dass die vorliegende Erfindung nicht auf die obige Ausführungsform und deren Strukturen beschränkt ist. Die vorliegende Erfindung kann verschiedene Modifikationsbeispiele und äquivalente Anordnungen abdecken. Außerdem sind verschiedene Kombinationen und Ausbildungen einschließlich einem, mehr als einem oder weniger als einem Element ebenfalls innerhalb des Bereiches der vorliegenden Erfindung enthalten.
-
Die vorliegende Erfindung kann nicht nur für eine elektronische Steuerungseinheit verwendet werden, die einen Verbrennungsmotor eines Fahrzeugs steuert, sondern auch für eine elektronische Steuerungseinheit, die eine andere Vorrichtung wie beispielsweise ein Getriebe steuert. Außerdem ist die vorliegende Erfindung nicht auf eine fahrzeugeigene elektronische Steuerungsvorrichtung beschränkt, sondern kann auch für eine elektronische Steuerungsvorrichtung verwendet werden, die nicht in einer fahrzeugeigenen Vorrichtung verwendet wird.
-
Die Kapazität des Puffers 12 kann entsprechend der Auftrittshäufigkeit der Sendeanfragen für die Sendedaten niedriger Priorität und der Auftrittshäufigkeit der Sendeanfragen für die Sendedaten hoher Priorität bestimmt werden. Das heißt, wenn die Auftrittshäufigkeit der Sendeanfragen für die Sendedaten niedriger Priorität und die Auftrittshäufigkeit der Sendeanfragen für die Sendedaten hoher Priorität beide relativ hoch sind, sind die Fälle eines Sicherns der Sendedaten niedriger Priorität in dem Puffer 12 relativ viel. Somit ist es ausreichend, die Kapazität des Puffers 12 ausreichend zu erhöhen. Wenn andererseits mindestens eine aus der Auftrittshäufigkeit der Sendeanfragen für die Sendedaten niedriger Priorität und der Auftrittshäufigkeit der Sendeanfragen für die Sendedaten hoher Priorität relativ niedrig ist, sind die Fälle eines Sicherns der Sendedaten niedriger Priorität in dem Puffer 12 relativ wenig. Somit kann die Kapazität des Puffers 12 relativ klein sein.
-
Man beachte, dass ein Flussdiagramm oder die Verarbeitung in dem Flussdiagramm der vorliegenden Anmeldung Abschnitte (auch als Schritte bezeichnet) enthält, die jeweils beispielsweise mit S1 bezeichnet werden. Außerdem kann jeder Abschnitt in mehrere Unterabschnitte unterteilt werden, und es können mehrere Abschnitte auch in einen einzelnen Abschnitt kombiniert werden. Weiterhin kann jeder somit ausgebildete Abschnitt auch als Vorrichtung, Modul oder Einrichtung bezeichnet werden.
-
Während die vorliegende Erfindung mit Bezug auf ihre Ausführungsformen beschrieben wurde, ist es selbstverständlich, dass die Erfindung nicht auf die Ausführungsformen und Konstruktionen beschränkt ist. Die vorliegende Erfindung deckt verschiedene Modifikationen und äquivalente Anordnungen ab. Zusätzlich zu den verschiedenen Kombinationen und Konfigurationen sind weitere Kombinationen und Konfigurationen einschließlich mehr, weniger oder einem einzelnen Element ebenfalls innerhalb des Bereiches der vorliegenden Erfindung möglich.
-
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
-
- JP H6334705 A [0002, 0003]
- JP 2006273261 A [0002, 0003]