DE10064787A1 - Elektronische Steuerung mit einer Funktion zur Überprüfung von Gleitpunktdaten - Google Patents

Elektronische Steuerung mit einer Funktion zur Überprüfung von Gleitpunktdaten

Info

Publication number
DE10064787A1
DE10064787A1 DE10064787A DE10064787A DE10064787A1 DE 10064787 A1 DE10064787 A1 DE 10064787A1 DE 10064787 A DE10064787 A DE 10064787A DE 10064787 A DE10064787 A DE 10064787A DE 10064787 A1 DE10064787 A1 DE 10064787A1
Authority
DE
Germany
Prior art keywords
floating point
value
point data
electronic control
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10064787A
Other languages
English (en)
Inventor
Mitsuhiro Kawai
Masato Yano
Takatoshi Sugimura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP36674199A external-priority patent/JP4058870B2/ja
Priority claimed from JP2000101028A external-priority patent/JP3644350B2/ja
Application filed by Denso Corp filed Critical Denso Corp
Publication of DE10064787A1 publication Critical patent/DE10064787A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

Eine Motorsteuerungs-ECU (10) umfaßt einen Mikrocomputer (11), der eine CPU (12), ein RAM (13), ein ROM (14), eine FPU (15) und eine I/O (16) aufweist. Die FPU (15) führt Gleitpunktberechnungen aus, und die CPU (12) führt andere Operationen als die Gleitpunktberechnungen aus. Die CPU (12) überprüft, ob ein nichtnumerischer Wert vorhanden ist, und führt eine Sicherungsverarbeitung aus, wenn ein nichtnumerischer Wert gefunden wird. Bei der Sicherungsverarbeitung werden die RAM-Daten initialisiert, indem für die Steuerung ungefährliche Vorgabewerte als die RAM-Daten geschrieben werden. Zusätzlich zu oder alternativ zu der Initialisierung sperrt die CPU (12) eine Gleitpunktberechnung der FPU (15). Ohne Verwendung der FPU (15) führt die CPU (12) Motorsteuerungsoperationen unter Verwendung von Ganzzahldaten anstelle von Gleitpunktdaten aus.

Description

Die vorliegende Erfindung bezieht sich auf eine elektronische Steuerung mit einer Funktion zur Überprüfung von Gleitpunktdaten.
Für eine Fahrzeugmotorsteuerung oder dergleichen verwendete elektronische Steuerungseinheiten (ECU) führen verschiedene Operationen wie beispielsweise Berechnungen unter Verwendung von Festpunktdaten aus. In jüngster Zeit wird eine Gleitkommaverarbeitungseinrichtung (FPU) zur Ermöglichung von Berechnungen unter Verwendung von Gleitpunktdaten verwendet. Gleitpunktdaten liefern Berechnungsergebnisse mit einer höheren Genauigkeit als Festpunktdaten.
Gleitpunktdaten sind gemäß dem Standard IEEE 754 konfiguriert. Die Gleitpunktdaten weisen einen Ein-Bit- Vorzeichenteil, einen Acht-Bit-Exponententeil und einen 23- Bit-Mantissenteil auf, wie es in Fig. 17A gezeigt ist. Vier-Byte-Gleitpunktdaten (Speicherformat einfacher Genauigkeit) mit einem Mantissenteil von 23 Bit weisen eine Auflösung von sieben Stellen auf (0,0000001).
Fig. 17B zeigt ein Bitmuster in dem Speicherformat einfacher Genauigkeit. Gleitpunktdaten werden durch Kombinationen des Exponententeils und des Mantissenteils in normalisierte Zahlen (Werte), denormalisierte Zahlen bzw. Zahlen mit widerrufener Normalisierung, unendliche Zahlen, Nullen und keine Zahl (NaN, d. h. ein nichtnumerischer Wert) bzw. Werte, bei denen es sich nicht um eine Zahl handelt, unterschieden oder aufgeteilt. Andere Zahlen als nichtnumerische Werte bezeichnen numerische Werte, und nichtnumerische Werte zeigen an, daß die Zahlen nicht numerisch sind. Nichtnumerische Werte werden z. B. zur Angabe von Berechnungsergebnissen verwendet, die nicht als numerische Werte dargestellt werden können, wie beispielsweise 0/0, +∞, -∞.
Die Gleitpunktdaten weisen ein Datenformat eines nichtnumerischen Werts auf. Wenn einmal ein nichtnumerischer Wert in der elektronischen Steuerungseinheit erzeugt ist, kann er sich in der Einheit ausbreiten. Weiterhin handelt es sich bei allen Ergebnissen von z. B. arithmetischen Berechnungen, die einen nichtnumerischen Wert umfassen, nicht um eine Zahl, und sie werden ungültig. Beispielsweise erzeugen Vergleiche dahingehend, ob ein nichtnumerischer Wert gleich oder großer als 1 oder kleiner als 1 ist, in jedem Fall ein falsches Ergebnis. Daher kann die Genauigkeit des Berechnungsergebnisses (Ausgabewert) nicht völlig garantiert werden, wenn ein nichtnumerischer Wert in der elektronischen Steuerungseinheit auftritt.
Ein nichtnumerischer Wert kann bei der Motorsteuerung hauptsächlich unter zwei Bedingungen erzeugt werden. Erstens kann sich wahrend einer Berechnung der elektronischen Steuerungseinheit oder einer Batteriesicherung ein RAM-Wert des Gleitpunkttyps verursacht durch Rauschen andern, und der RAM-Wert selbst kann sich zu einem nichtnumerischen Wert andern.
Beispielsweise kann sich ein Gleitpunkt-RAM-Wert verursacht durch Rauschen zu FFFFFFFFh (alle Bit auf Eins) andern. Zweitens können sich bei Gleitpunktberechnungen verwendete Argumente verursacht durch Rauschen oder aus anderen Gründen andern, und es kann sekundär ein nichtnumerischer Wert wie beispielsweise 0/0 als Ergebnis einer Berechnung erzeugt werden.
Im einzelnen wird im Falle der Kraftstoffeinspritzsteuerung eine Kraftstoffeinspritzmenge f als f = Fbase × fHL berechnet, wobei es sich bei Fbase um eine als Ganzzahldaten berechnete Grundkraftstoffeinspritzmenge handelt und bei fHL um einen als Gleitpunktdaten berechneten Lastkompensationswert handelt. Falls es sich bei dem Lastkompensationswert fHL um einen nichtnumerischen Wert handelt, wird bei dieser Berechnung der sich aus der Berechnung ergebende Wert einer Kraftstoffeinspritzmenge f ebenfalls ein nichtnumerischer Wert, wodurch eine normale Kraftstoffeinspritzung unmöglich gemacht wird.
Der Erfindung liegt daher die Aufgabe zugrunde, eine elektronische Steuerungseinheit bereitzustellen, die zur Verhinderung von durch einen nichtnumerischen Wert verursachten Steuerungsstörungen in der Lage ist.
Gemäß der vorliegenden Erfindung wird überprüft, ob es sich bei Gleitpunktdaten um nichtnumerische Daten handelt. Wenn es bestimmt wird, daß es sich um einen nichtnumerischen Wert handelt, wird eine Sicherungsverarbeitung ausgeführt, anstatt einen Steuerungswert wie beispielsweise eine Kraftstoffeinspritzmenge oder eine Zündzeitpunkteinstellung unter Verwendung von Gleitpunktdaten zu berechnen. Die Sicherungsverarbeitung umfaßt z. B. eine Initialisierung von in einem Speicher gespeicherten Daten. Durch die Initialisierung der Speicherdaten, bei denen der nichtnumerische Wert vorhanden ist, wird der nichtnumerische Wert beseitigt, so daß bei einer Reihe von Steuerungsberechnungen durch einen Mikrocomputer verschiedene dem Vorhandensein von einen nichtnumerischen Wert umfassenden Daten zuzuschreibende Schwierigkeiten vermieden werden können.
Die vorstehenden und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung sind aus der nachstehenden ausführlichen Beschreibung unter Bezugnahme auf die beigefügte Zeichnung offensichtlicher. Bei der Zeichnung zeigen:
Fig. 1 ein Blockschaltbild, das ein Motorsteuerungssystem unter Verwendung einer elektronischen Steuerungseinheit gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung zeigt;
Fig. 2 einen Signalverlauf, der ein WDC-Signal und ein Rücksetzsignal zeigt, die bei dem ersten Ausführungsbeispiel erzeugt werden;
Fig. 3 eine grafische Darstellung, die eine Konfiguration des RAM bei dem ersten Ausführungsbeispiel zeigt;
Fig. 4 ein Flußdiagramm, das eine bei dem ersten Ausführungsbeispiel ausgeführte Anfangsroutine zeigt;
Fig. 5 ein Flußdiagramm, das eine bei dem ersten Ausführungsbeispiel ausgeführte Routine zur Überprüfung hinsichtlich nichtnumerischer Werte zeigt;
Fig. 6 ein Flußdiagramm, das eine bei dem ersten Ausführungsbeispiel ausgeführte Leerlaufroutine zeigt;
Fig. 7 ein Flußdiagramm, das eine bei dem ersten Ausführungsbeispiel ausgeführte 4 ms-Verarbeitung zeigt;
Fig. 8 ein Blockschaltbild, das ein Motorsteuerungssystem unter Verwendung einer elektronischen Steuerungseinheit gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung zeigt;
Fig. 9 ein Flußdiagramm, das eine bei dem zweiten Ausführungsbeispiel ausgeführte Lastkompensationswertberechnungsroutine zeigt;
Fig. 10 ein Flußdiagramm, das eine bei dem zweiten Ausführungsbeispiel ausgeführte Kraftstoffeinspritzmengenberechnungsroutine zeigt;
Fig. 11 ein Flußdiagramm, das eine bei dem zweiten Ausführungsbeispiel ausgeführte Zündzeitpunkteinstellungsberechnungsroutine zeigt;
Fig. 12 ein Flußdiagramm, das eine bei einem dritten Ausführungsbeispiel der vorliegenden Erfindung ausgeführte Lastkompensationswertberechnungsroutine zeigt;
Fig. 13 ein Flußdiagramm, das eine bei dem dritten Ausführungsbeispiel ausgeführte Kraftstoffeinspritzmengenberechnungsroutine zeigt;
Fig. 14 ein Flußdiagramm, das eine bei einem vierten Ausführungsbeispiel der vorliegenden Erfindung ausgeführte Kraftstoffeinspritzmengenberechnungsroutine zeigt;
Fig. 15 ein Flußdiagramm, das eine bei dem vierten Ausführungsbeispiel ausgeführte Zündzeitpunkteinstellungsberechnungsroutine zeigt;
Fig. 16 ein Flußdiagramm, das eine bei einem fünften Ausführungsbeispiel der vorliegenden Erfindung ausgeführte Lastkompensationswertberechnungsroutine zeigt; und
Fig. 17A und 17B grafische Darstellungen, die Konfigurationen von Gleitpunktdaten zeigen.
Die vorliegende Erfindung ist nachstehend unter Bezugnahme auf verschiedene Ausführungsbeispiele, die auf ein Motorsteuerungssystem gerichtet sind, näher beschrieben.
Erstes Ausführungsbeispiel
Zuerst auf Fig. 1 Bezug nehmend, ist ein fahrzeugseitiger Motor 1 z. B. als Mehrzylinderverbrennungsmotor des Benzineinspritztyps gestaltet. Eine elektronische Steuerungseinheit (ECU) 10 umfaßt einen Mikrocomputer 11, der eine CPU 12, ein RAM 13, ein ROM 14, eine FPU (Gleitpunktberechnungseinheit) 15 und eine I/O (Ein- Ausgabe-Einheit) 16 aufweist. Die FPU 15 führt Gleitpunktberechnungen aus und die CPU 12 führt andere Operationen als die Gleitpunktberechnungen aus. Die I/O 16 umfaßt einen bekannten A/D-Wandler. Bei dem RAM 13 handelt es sich um eine Speichervorrichtung, die Speicherinhalte mit von einer (nicht gezeigten) eingebauten Batterie zugeführter elektrischer Energie selbst dann hält, wenn ein Zündschalter ausgeschaltet ist. Bei diesem Ausführungsbeispiel ist das RAM 13 somit durch die Batterie gesichert, damit es als nichtflüchtiger Speicher (gesichertes RAM) verwendet werden kann. Ein EEPROM, ein Flash-Speicher und dergleichen können ebenfalls als nichtflüchtige Speicher verwendet werden.
Die ECU 10 umfaßt eine WDC-(Überwachung gelöscht bzw. watchdog clear)-Überwachungsschaltung 18 als Überwachungsschaltung. Die WDC-Überwachungsschaltung 18 überwacht ein von dem Mikrocomputer periodisch erzeugtes WDC-Signal und gibt jedesmal, wenn die Periodizität des WDC-Signals verursacht durch z. B. eine Unterbrechung des Signals verloren geht, ein Rücksetzsignal zu dem Mikrocomputer 11 aus. Die Überwachungsschaltung kann auch in dem Mikrocomputer 11 enthalten sein.
Das WDC-Signal wird z. B. als ein Signal erzeugt, das in einem Zyklus von 4 ms von dem hohen Pegel zu dem niedrigen Pegel oder von dem niedrigen Pegel zu dem hohen Pegel invertiert wird. Falls die Inversionskante für eine vorbestimmte Zeitdauer (z. B. 32 ms) nicht erfaßt wird, treibt die WDC-Überwachungsschaltung 18 das Rücksetzsignal in den niedrigen Pegel. Falls das Rücksetzsignal abgeschaltet oder gelöscht wird, wird das in einem Zyklus von 4 ms invertierte WDC-Signal danach wieder in die WDC- Überwachungsschaltung 18 eingegeben.
Verschiedene Motorbetriebszustände angebende Informationen werden von an dem Motor 1 angebrachten Sensoren 2 bis 5 in die ECU 10 eingegeben. Die Sensoren 2 bis 5 umfassen z. B. einen Luftmengenmesser oder einen Ansaugdrucksensor zur Erfassung der Ansaugluftmenge Q oder des Ansaugdrucks MAF, einen Motordrehzahlsensor zur Erfassung einer Motordrehzahl Ne, einen Wassertemperatursensor zur Erfassung einer Kühlflüssigkeitstemperatur Thw, einen Drosselklappensensor zur Erfassung eines Drosselklappenöffnungswinkels, einen A/F-Sensor zur Erfassung eines Luft-Kraftstoff- Verhältnisses aus der Sauerstoffkonzentration in Abgas und dergleichen. Gemäß den eingegebenen Sensorsignalen führt die ECU 10 die Steuerung der Kraftstoffeinspritzung und der Funkenzündung durch einen (nicht gezeigten) Injektor und eine (nicht gezeigte) Zündeinrichtung aus.
Von der FPU 15 manipulierte Gleitpunktdaten sind gemäß z. B. dem Standard IEEE 754 konfiguriert. Die Gleitpunktdaten weisen ein in Fig. 17A im Falle des Speicherformats einfacher Genauigkeit gezeigtes Datenformat auf. Wie es in Fig. 17B gezeigt ist, werden die Gleitpunktdaten durch Kombinationen des Exponententeils und des Mantissenteils in normalisierte Zahlen, denormalisierte Zahlen, unendliche Zahlen, Nullen und nichtnumerische Werte unterschieden.
Fig. 3 zeigt ein Beispiel der Konfiguration des RAM 13. Das RAM 13 ist in einen Gleitpunkt-RAM-Bereich, einen Festpunkt-RAM-Bereich und einen Stapelbereich aufgeteilt. Der in Einheiten von vier Byte aufgeteilte Gleitpunkt-RAM- Bereich ist bei seiner Startadresse mit START und bei seiner Endadresse mit ENDE versehen. In diesem Fall ist der Gleitpunkt-RAM-Bereich vorzugsweise getrennt von dem Festpunkt-RAM-Bereich und dem Stapelbereich in einem Block zugeordnet.
Wenn sich bei diesem Ausführungsbeispiel in dem RAM 13 gespeicherte Gleitpunktdaten infolge von Rauschen oder aus anderen Gründen in einen nichtnumerischen Wert wandeln, bevor die ECU 10 zum Betrieb eingeschaltet wird, oder die Gleitpunktdaten sich in einen nichtnumerischen Wert wandeln, wenn die ECU 10 beschäftigt ist, erfaßt die CPU 12 dies und initialisiert zur Beseitigung des nichtnumerischen Werts Daten als eine Betriebsart der Sicherungsverarbeitung. Verschiedene Konstanten und RAM- Daten, die in Softwareroutinen definiert werden, werden einem Prozeß zur Überprüfung hinsichtlich nichtnumerischer Werte der CPU 12 unterworfen, wie es in Fig. 4 bis Fig. 7 gezeigt ist.
Zuerst ist die Prozedur zur Überprüfung auf nichtnumerische Werte hin unmittelbar nach dem Einschalten der ECU 10 gemäß dem Flußdiagramm gemäß Fig. 4 beschrieben.
In einem Schritt 101 wird ein die Erzeugung oder das Vorhandensein eines nichtnumerischen Werts angebender Zustandsmerker des Auftretens eines nichtnumerischen Werts auf 0 eingestellt. Als nächstes wird in einem Schritt 102 eine Routine zur Überprüfung hinsichtlich nichtnumerischer Werte aufgerufen. Die Routine zur Überprüfung hinsichtlich nichtnumerischer Werte überprüft, ob ein nichtnumerischer Wert in dem Gleitpunkt-RAM-Bereich vorhanden ist, wie es bei Fig. 5 im einzelnen beschrieben ist.
In einem nächsten Schritt 103 wird überprüft, ob der Zustandsmerker (UNOF) des Auftretens eines nichtnumerischen Werts 0 ist. Falls er 0 ist, da kein nichtnumerischer Wert vorhanden ist, geht die Prozedur zu einem Schritt 106 über. In dem Schritt 106 endet nach einer Ausführung einer weiteren Initialisierungsverarbeitung diese Verarbeitung.
Falls irgendwo in dem Gleitpunkt-RAM-Bereich ein nichtnumerischer Wert vorhanden ist, geht die Prozedur zu einem Schritt 104 über, in dem der Gleitpunkt-RAM-Bereich initialisiert wird, da der Zustandsmerker UNOF des Auftretens eines nichtnumerischen Werts auf 1 eingestellt ist. D. h., zum Löschen des nichtnumerischen Werts werden Vorgabewerte in den Gleitpunkt-RAM-Bereich geschrieben, die für die Steuerung unwirksam sind. Da diese Initialisierungsverarbeitung nichtnumerische Werte beseitigt oder löscht, wird der Zustandsmerker UNOF des Auftretens eines nichtnumerischen Werts in einem Schritt 105 auf 0 eingestellt. In dem nächsten Schritt 106 wird eine weitere Initialisierungsverarbeitung ausgeführt, und daraufhin endet diese Routine.
Als nächstes ist unter Bezugnahme auf das Flußdiagramm gemäß Fig. 5 die Routine zur Überprüfung hinsichtlich nichtnumerischer Werte im einzelnen beschrieben. Diese Routine überprüft, ob ein nichtnumerischer Wert vorhanden ist, indem sie überprüft, ob Kombinationen des Exponententeils (Bit 30 bis 23) mit lauter Einsen (15) und des Mantissentelis (Bit 22 bis 0) mit nicht lauter Nullen (0s) in den einzelnen Bereichen von der Startadresse START bis zu der Endadresse ENDE des Gleitpunkt-RAM vorhanden sind.
Genauer wird während einer Modifikation einer Variablen R1 in Einheiten von vier Byte von dem Startwert START bis zu dem Endwert ENDE zur Einstellung von Adressen eine nachstehende Schleifenverarbeitung ausgeführt. Zu dieser Zeit wird in einem Schritt 201 der Inhalt einer durch die Variable R1 angegebenen Adresse als ein Wert R0 erfaßt. In einem Schritt 202 wird überprüft, ob Bit 30 bis 23 des Werts R0 "11111111" sind. In einem Schritt 203 wird überprüft, ob Bit 22 bis 0 des Werts R0 alle Null sind.
Falls der Schritt 202 NEIN ergibt oder beide Schritte 202 und 203 JA ergeben, handelt es sich bei Gleitpunktdaten bei der speziellen Adresse nicht um einen nichtnumerischen Wert und die Routine geht zu der Adresse der nächsten Gleitpunktdaten über. Falls der Schritt 202 JA ergibt und der Schritt 203 NEIN ergibt, bestimmt die Routine, daß ein nichtnumerischer Wert in dem Gleitpunkt-RAM-Bereich vorhanden ist, stellt in einem Schritt 204 den Zustandsmerker des Auftretens eines nichtnumerischen Werts auf 1 ein und beendet die Routine.
Demgegenüber wird während einer normalen Berechnung der ECU 10 das Vorhandensein eines nichtnumerischen Werts in einer in Fig. 6 gezeigten Leerlaufroutine überprüft. Die Leerlaufroutine wird bei Leerlaufzeit bei verschiedenen mit einem Zeitzyklus oder mit einer Drehsignalsynchronisation ausgeführten Steuerungsberechnungen ausgeführt. Diese Routine wird in einer Task mit der niedrigsten Priorität von verschiedenen üblicherweise von der ECU 10 ausgeführten Verarbeitungstasks ausgeführt.
In einem Schritt 301 gemäß Fig. 6 wird die Routine zur Überprüfung hinsichtlich nichtnumerischer Werte gemäß Fig. 5 aufgerufen, um abhängig von dem Vorhandensein eines nichtnumerischen Werts auf den Zustandsmerker UNOF des Auftretens eines nichtnumerischen Werts einzuwirken. In einem nächsten Schritt 302 werden verschiedene Steuerungsberechnungen wie beispielsweise eine Prüfsummenermittlung bei dem ROM 14 und eine Verifikation von Registern in dem Mikrocomputer 11 ausgeführt.
In der in Fig. 7 gezeigten 4 ms-Routine wird das Ergebnis einer in der Leerlaufroutine gemäß Fig. 6 ausgeführten Überprüfung hinsichtlich nichtnumerischer Werte überwacht. D. h., in einem Schritt 401 gemäß Fig. 7 wird überprüft, ob der Zustandsmerker UNOF des Auftretens eines nichtnumerischen Werts 1 ist. Falls der Zustandsmerker UNOF des Auftretens eines nichtnumerischen Werts 0 ist und damit angibt, daß kein nichtnumerischer Wert vorhanden ist, geht die Steuerung zu einem Schritt 402 über, in dem ein WDC- Signal invertiert wird. In einem solchen Fall kann die WDC- Überwachungsschaltung 18 davon in Kenntnis gesetzt werden, daß die CPU 12 normal arbeitet, da das WDC-Signal mit einem Zyklus von 4 ms invertiert wird. In einem nächsten Schritt 403 werden verschiedene mit einem Zyklus von 4 ms ausgeführte Steuerungsoperationen wie beispielsweise eine A/D-Wandlung verschiedener Sensorerfassungswerte ausgeführt, und daraufhin endet diese Routine vorübergehend.
Falls der Zustandsmerker UNOF des Auftretens eines nichtnumerischen Werts 1 ist und damit angibt, daß ein nichtnumerischer Wert vorhanden ist, geht die Steuerung zu einem Schritt 404 über. In dem Schritt 404 werden alle Interrupts bzw. Unterbrechungen gesperrt, und daraufhin tritt die Steuerung in eine Endlosschleife ein. D. h., da der Eintritt in die Endlosschleife eine nachfolgende Inversion des WDC-Signals sperrt, geht die Periodizität des WDC-Signals verloren, und es wird nach einer vorbestimmten Zeitdauer (32 ms) ein Rücksetzsignal für den Mikrocomputer 11 von der WDC-Überwachungsschaltung 18 erzeugt. Daher wird in der bei Eingabe des Rücksetzsignals ausgeführten Anfangsroutine (Verarbeitung gemäß Fig. 4) des Mikrocomputers 11 der Zustandsmerker UNOF des Auftretens eines nichtnumerischen Werts erneut überprüft, und der nichtnumerische Wert wird gelöscht.
In der Routine gemäß Fig. 7 werden alle Interrupts gesperrt, und die Steuerung tritt in eine Endlosschleife ein, wenn ein nichtnumerischer Wert vorhanden ist. Folglich kann es vermieden werden, daß der nichtnumerische Wert in der Periode nach dem Vorhandensein des nichtnumerischen Werts eine nachteilige Wirkung auf verschiedene Steuerungsberechnungen und -operationen verursacht, und es wird überprüft, bevor ein Rücksetzsignal ausgegeben wird. D. h., obwohl nach der Bestimmung des Vorhandenseins eines nichtnumerischen Werts der nichtnumerische Wert bei der Verarbeitung für einen erzeugten Interrupt verwendet werden kann, falls Interrupts freigegeben sind, so daß die Steuerung anormal werden kann, verhindert die in Fig. 7 gezeigte Verarbeitung eine derartige Schwierigkeit.
Gemäß dem beschriebenen ersten Ausführungsbeispiel werden die nachstehenden Wirkungen erhalten.
  • 1. Das Vorhandensein eines nichtnumerischen Werts in dem Gleitpunkt-RAM-Bereich wird überprüft, und wenn das Vorhandensein eines nichtnumerischen Werts bestimmt wird, wird der nichtnumerische Wert durch eine Initialisierung der RAM-Daten beseitigt. Daher können verschiedene dem Vorhandensein von einen nichtnumerischen Wert umfassenden Daten zugeschriebene Schwierigkeiten bei Steuerungsoperationen durch den Mikrocomputer vermieden werden. Folglich können durch das Auftreten eines nichtnumerischen Werts verursachte Steuerungsstörungen verhindert werden.
  • 2. Da der Gleitpunkt-RAM-Bereich durch ein Schreiben von für die Steuerung unwirksamen Vorgabewerten als RAM-Daten initialisiert wird, können verschiedene Steuerungsoperationen unter Verwendung der Vorgabewerte ausgeführt werden.
  • 3. Bei der Systeminitialisierungsverarbeitung (Anfangsroutine), die bei einem Einschalten des Mikrocomputers 11 zum Betrieb ausgeführt wird, wird überprüft, ob ein nichtnumerischer Wert in dem Gleitpunkt- RAM-Bereich des RAM 13 vorhanden ist. In diesem Fall wird selbst dann, wenn Gleitpunktdaten in dem RAM 13 durch Rauschen verursacht oder aus anderen Gründen zerstört werden, wenn der Mikrocomputer 11 außer Betrieb ist, und ein nichtnumerischer Wert vorhanden ist, eine nachteilige Wirkung auf die Steuerung unmittelbar nach dem Einschalten verhindert, d. h. bevor die Steuerung gestartet wird.
  • 4. Da eine Überprüfung hinsichtlich nichtnumerischer Werte bei Leerlaufzeit bei verschiedenen Steuerungsoperationen während eines normalen Betriebs des Mikrocomputers 11 ausgeführt wird, wird selbst dann kein nachteiliger Einfluß auf die Steuerungsoperationen verursacht, wenn große Mengen von Gleitpunktdaten vorhanden sind und die Ausführung der Überprüfung hinsichtlich nichtnumerischer Werte viel Zeit erfordert. D. h., die Steuerungsoperationen können basierend auf programmierten Routinen ausgeführt werden. Diese Konfiguration ist auch hinsichtlich der Berechnungslast auf dem Mikrocomputer 11 effektiv.
  • 5. Wenn das Vorhandensein eines nichtnumerischen Werts bestimmt wird, wird der Mikrocomputer 11 rückgesetzt, da die Inversionsoperationen eines WDC-Signals aufhören, und der nichtnumerische Wert kann durch eine mit der Rücksetzoperation verbundene Initialisierungsverarbeitung beseitigt werden.
  • 6. Wenn das Vorhandensein eines nichtnumerischen Werts bestimmt wird, wird die Steuerbarkeit in der Periode von der Zeit der Bestimmung des Vorhandenseins des nichtnumerischen Werts bis zu der Beseitigung des nichtnumerischen Werts nicht verursacht durch den nichtnumerischen Wert verringert, da alle Interrupts gesperrt sind und die Steuerung in eine Endlosschleife eintritt.
Zweites Ausführungsbeispiel
Bei einem in Fig. 8 gezeigten zweiten Ausführungsbeispiel ist die ECU 10 ähnlich wie bei dem ersten Ausführungsbeispiel aufgebaut. Sie ist jedoch so programmiert, daß keine Gleitpunktberechnung ausgeführt wird, falls das Ergebnis einer Gleitpunktberechnung durch die FPU 15 ein nichtnumerischer Wert wird. Genauer werden Gleitpunktberechnungen unter Verwendung der FPU 15 zur Berechnung einer Kraftstoffeinspritzmenge und einer Zündzeitpunkteinstellung ausgeführt, und eine Kraftstoffeinspritzmenge f wird z. B. durch den nachstehenden Ausdruck berechnet.
f = Fbase × fHL
Dabei handelt es sich bei Fbase um eine als Ganzzahldaten berechnete Grundkraftstoffeinspritzmenge und bei fHL um einen als Gleitpunktdaten berechneten Lastkompensationswert. Entsprechend wird während der Berechnung einer Kraftstoffeinspritzmenge f unter Verwendung der FPU 15 das Berechnungsergebnis (der Wert der Kraftstoffeinspritzmenge f) ebenfalls ein nichtnumerischer Wert, falls es sich bei dem Lastkompensationswert fHL um einen nichtnumerischen Weit handelt. Aus diesem Grund wird bei diesem Ausführungsbeispiel die Berechnung der Kraftstoffeinspritzmenge f unter Verwendung der FPU 15 verhindert, falls es sich bei dem Lastkompensationswert fHL um einen nichtnumerischen Wert handelt, und alternativ wird bei der Berechnung der Kraftstoffeinspritzmenge f eine Sicherungsverarbeitung durch die CPU 12 ausgeführt.
Von der durch die CPU 12 ausgeführten Verarbeitung ist die Verarbeitung zur Berechnung eines Lastkompensationswerts fHL unter Bezugnahme auf Fig. 9 beschrieben und die Kraftstoffeinspritzmengenberechnungsverarbeitung unter Bezugnahme auf Fig. 10 beschrieben. Bei der Berechnung gemäß Fig. 9 handelt es sich um eine zu jeder bestimmten Zeit ausgeführte zeitsynchronisierte Routine, und bei der Verarbeitung gemäß Fig. 10 handelt es sich um eine bei jedem bestimmten Kurbelwellenwinkel, d. h. bei jedem Impulssignal von dem Motordrehzahlsensor, ausgeführte kurbelwellendrehwinkelsynchronisierte Routine.
Wie es in Fig. 9 gezeigt ist, bestimmt die CPU 12 in einem Schritt 2100, ob die Motordrehzahl Ne 3000 U/min. oder mehr beträgt. Falls sie 3000 U/min. oder mehr beträgt, rückt der Prozeß zu einem Schritt 2110 vor. In dem Schritt 2110 überprüft die CPU 12, ob die Motorkühlflüssigkeitstemperatur Thw 60°C oder höher ist. Falls sie 60°C oder höher ist, rückt der Prozeß zu einem Schritt 2120 vor. In dem Schritt 2120 wird der Lastkompensationswert fHL unter Verwendung der FPU 15 basierend auf dem nachstehenden Ausdruck berechnet.
fHL = fNe × MAF × fGain
Dabei handelt es sich bei fNe um eine basierend auf dem Impulssignal des Motordrehzahlsensors als Gleitpunktdaten berechnete Motordrehzahl und bei MAF um einen von einem Ansaugdrucksensor erfaßten Wert und um einen auf dem Ansaugrohrdruck (Ansaugdruck) basierenden Spannungswert von Ganzzahldaten. Bei fGain handelt es sich um eine Konstante von Gleitpunktdaten.
Falls die Bedingung, daß die Motordrehzahl Ne 3000 U/min. oder mehr beträgt und die Kühlflüssigkeitstemperatur Thw 60°C oder höher ist, als Vorbedingung für die Lastkompensationswertberechnung erfüllt ist, wird auf diese Weise die Gleitpunktberechnung durch die FPU 15 ausgeführt, und der Lastkompensationswert fHL von Gleitpunktdaten wird berechnet.
Falls die Motordrehzahl Ne geringer als 3000 U/min. ist oder die Kühlflüssigkeitstemperatur Thw geringer als 60°C ist, wird demgegenüber in dem Schritt 2100 oder 2110 eine negative Bestimmung ausgebildet. In einem Schritt 2130 stellt die CPU 12 den Lastkompensationswert fHL auf einen festen Wert 1,0 von Gleitpunktdaten ein.
Als nächstes ist die Kraftstoffeinspritzmengenberechnungsroutine unter Bezugnahme auf Fig. 10 beschrieben. Zuerst berechnet die CPU 12 in einem Schritt 2200 basierend auf der Motordrehzahl Ne und dem Ansaugdruck MAF die Grundkraftstoffeinspritzmenge Fbase von Ganzzahldaten. In einem nächsten Schritt 2210 überprüft sie, ob es sich bei dem Lastkompensationswert fHL um einen nichtnumerischen Wert handelt. D. h., da der Lastkompensationswert fHL bereits als Gleitpunktdaten erhalten wird, überprüft die CPU 12, ob Bit 30 bis 23 des Lastkompensationswerts fHL 11111111 sind und eines der Bit 22 bis 0 des Lastkompensationswerts fHL 1 ist. Falls in dem Schritt 2210 eine negative Bestimmung ausgebildet wird, rückt die CPU 12 ihre Verarbeitung zu einem Schritt 2220 vor und berechnet die Kraftstoffeinspritzmenge f unter Verwendung der FPU 15 durch die nachstehende Gleitpunktberechnung.
f = Fbase × fHL
D. h., die Kraftstoffeinspritzmenge f wird durch Multiplikation der Grundkraftstoffeinspritzmenge Fbase mit dem Lastkompensationswert fHL berechnet. Der Wert der Kraftstoffeinspritzmenge f wird als Gleitpunktdaten berechnet. Danach überprüft die CPU 12 in einem Schritt 2230, ob es sich bei dem berechneten Wert um einen nichtnumerischen Wert handelt. Bei einer Bestimmung, daß es sich bei dem berechneten Wert nicht um einen nichtnumerischen Wert handelt, bestimmt die CPU 12, daß der durch die Gleitpunktberechnung erhaltene Wert der Kraftstoffeinspritzmenge f richtig ist, und beendet die Routine.
Falls in dem Schritt 2210 oder 2230 eine positive Bestimmung ausgebildet wird, rückt die CPU 12 demgegenüber ihren Prozeß zu einem Schritt 2240 zur Einstellung der Kraftstoffeinspritzmenge f auf die Grundkraftstoffeinspritzmenge Fbase von Ganzzahldaten ohne Verwendung der FPU 15 vor und beendet daraufhin die Routine.
Als nächstes ist eine Verarbeitung zur Berechnung einer Zündzeitpunkteinstellung e unter Bezugnahme auf Fig. 11 beschrieben. Bei einem bei der Verarbeitung verwendeten Lastkompensationswert eHL handelt es sich wie bei dem Lastkompensationswert fHL ebenfalls um durch eine Gleitpunktberechnung erhaltene Gleitpunktdaten.
Zuerst berechnet die CPU 12 in einem Schritt 2300 basierend auf der Motordrehzahl Ne und dem Ansaugdruck MAF eine Grundzündzeitpunkteinstellung Ebase von Ganzzahldaten. In einem nächsten Schritt 2310 überprüft sie, ob es sich bei dem Lastkompensationswert eHL um einen nichtnumerischen Wert handelt. Falls in dem Schritt 2310 eine negative Bestimmung ausgebildet wird, rückt die CPU 12 ihren Prozeß zu einem Schritt 2320 zur Berechnung der Zündzeitpunkteinstellung e unter Verwendung der FPU 15 durch die nachstehende Gleitpunktberechnung vor.
e = Ebase × eHL
D. h., die Zündzeitpunkteinstellung e wird durch Multiplikation der Grundzündzeitpunkteinstellung Ebase mit dem Lastkompensationswert eHL berechnet. Der Wert der Zündzeitpunkteinstellung e wird als Gleitpunktdaten berechnet. Danach überprüft die CPU 12 in einem Schritt 2330, ob es sich bei dem berechneten Wert um einen nichtnumerischen Wert handelt. Bei einer Bestimmung, daß es sich bei dem berechneten Wert nicht um einen nichtnumerischen Wert handelt, bestimmt die CPU 12, daß der durch die Gleitpunktberechnung erhaltene Wert der Zündzeitpunkteinstellung e richtig ist, und beendet die Routine.
Falls in dem Schritt 2310 oder 2330 eine positive Bestimmung ausgebildet wird, rückt die CPU 12 demgegenüber ihren Prozeß zu einem Schritt 2340 zur Einstellung der Zündzeitpunkteinstellung e auf die Grundzündzeitpunkteinstellung Ebase von Ganzzahldaten ohne Verwendung der FPU 15 vor und beendet daraufhin die Routine.
Gemäß dem vorstehend beschriebenen zweiten Ausführungsbeispiel werden die nachstehenden Wirkungen erhalten.
  • 1. Wenn es sich bei bei einer Gleitpunktberechnung verwendeten Gleitpunktdaten (Lastkompensationswerte fHL und eHL) um einen nichtnumerischen Wert handelt, wird eine Sicherungsverarbeitung ausgeführt, so daß Motorsteuerungswerte wie beispielsweise Kraftstoffeinspritzmenge und Zündzeitpunkteinstellung ohne Gleitpunktberechnung berechnet werden. In diesem Fall ist das Ergebnis einer arithmetischen Berechnung, die einen nichtnumerischen Wert bei einer Gleitpunktberechnung umfaßt, ein nichtnumerischer Wert und ungültig. Wenn es sich bei den bei der Gleitpunktberechnung verwendeten Gleitpunktdaten um einen nichtnumerischen Wert handelt, wird daher die Gleitpunktberechnung verhindert, die einen ungültigen Wert erzeugen würde. Auf diese Weise kann verhindert werden, daß die Kraftstoffeinspritzmenge f und die Zündzeitpunkteinstellung e als die Motorsteuerungsdaten nichtnumerische Werte werden, so daß durch das Auftreten von nichtnumerischen Werten verursachte Steuerungsstörungen verhindert werden können.
  • 2. Als die Sicherungsverarbeitung bei dem Auftreten eines nichtnumerischen Werts wird die Grundkraftstoffeinspritzmenge Fbase von Ganzzahldaten als die Endkraftstoffeinspritzmenge f verwendet und die Grundzündzeitpunkteinstellung Ebase von Ganzzahldaten als die Endzündzeitpunkteinstellung e verwendet. D. h., es werden lediglich für die Steuerung ungefährliche berechnete Werte als Sicherungswerte von Steuerungsdaten verwendet.
Dies hilft, eine Steigerung einer ROM-Kapazität infolge der Sicherungsverarbeitung zu verhindern.
Drittes Ausführungsbeispiel
Bei einem in Fig. 12 und 13 gezeigten dritten Ausführungsbeispiel wird für eine Berechnung beeinflussende Gleitpunktdaten anstelle für bei der Berechnung verwendete Gleitpunktdaten überprüft, ob es sich um einen nichtnumerischen Wert handelt. Bei dem dritten Ausführungsbeispiel wird der Lastkompensationswert fHL durch unterschiedliche Berechnungsausdrücke für Beschleunigung und Verlangsamung berechnet, und die Bestimmung von Beschleunigung oder Verlangsamung wird mittels einem einem Laständerungsausmaß entsprechenden Parameter fDL ausgebildet. Der Parameter fDL, bei dem es sich um basierend auf der Motordrehzahl Ne und dem Ansaugdruck MAF berechnete Gleitpunktdaten handelt, bezeichnet eine Beschleunigung, falls er einen positiven Wert aufweist, und eine Verlangsamung, falls er einen negativen Wert aufweist.
Die Verarbeitung zur Berechnung des Lastkompensationswerts fHL bei diesem Ausführungsbeispiel ist unter Bezugnahme auf Fig. 12 beschrieben. Die Routine gemäß Fig. 12 unterscheidet sich leicht von der Routine gemäß Fig. 9. D. h., Schritte 2100, 2110 und 2130 gemäß Fig. 12 führen die gleiche Verarbeitung wie die Schritte gemäß Fig. 9 aus. D. h., falls die Motordrehzahl Ne geringer als 3000 U/min. ist oder die Kühlflüssigkeitstemperatur Thw geringer als 60°C ist (wenn in Schritt 2100 oder 2110 eine negative Bestimmung ausgebildet wird), ordnet die CPU 12 in dem Schritt 2130 einem Lastkompensationswert fHL 1,0 von Gleitpunktdaten als einen festen Wert zu und beendet daraufhin die Routine.
Falls die Motordrehzahl Ne 3000 U/min. oder mehr beträgt und die Kühlflüssigkeitstemperatur Thw 60°C oder höher ist, überprüft die CPU 12 demgegenüber in einem Schritt 3400, ob es sich bei dem Parameter fDL um einen nichtnumerischen Wert handelt. Falls es bestimmt wird, daß es sich bei dem Parameter fDL nicht um einen nichtnumerischen Wert handelt, rückt die CPU 12 ihren Prozeß zu einem Schritt 3410 zur Bestimmung von Beschleunigung oder Verlangsamung unter Verwendung des Parameters fDL vor. Falls der Parameter fDL größer als 0 ist, rückt die CPU 12 zu einem Schritt 3420 zur Berechnung eines Lastkompensationswerts fHL von Gleitpunktdaten durch Ausführung einer Beschleunigungszeitgleitpunktberechnung (fNe × MAF × fGain1) unter Verwendung der FPU 15 vor und beendet daraufhin die Routine. Falls der Parameter fDL gleich oder kleiner als 0 ist, rückt die CPU 12 ihren Prozeß zu einem Schritt 3430 zur Berechnung eines Lastkompensationswerts fHL von Gleitpunktdaten durch Ausführung einer Verlangsamungszeitgleitpunktberechnung (fNe × MAF × fGain2) unter Verwendung der FPU 15 vor und beendet daraufhin die Routine. Bei fGain1 handelt es sich um eine durch Gleitpunktdaten eingestellte Beschleunigungskompensationskonstante, und bei fGain2 handelt es sich um eine durch Gleitpunktdaten eingestellte Verlangsamungskompensationskonstante.
Falls es in dem Schritt 3400 bestimmt wird, daß es sich bei dem Parameter fDL um einen nichtnumerischen Wert handelt, rückt die CPU 12 ihren Prozeß demgegenüber zu einem Schritt 3440 zur Zuordnung eines festen Werts 1 von Ganzzahldaten zu dem Lastkompensationswert FHL vor und beendet daraufhin die Routine. Der Lastkompensationswert FHL von Ganzzahldaten wird in einem Speicherbereich gespeichert, der getrennt von dem Speicherbereich des Lastkompensationswerts fHL von Gleitpunktdaten in dem RAM 13 zugeordnet ist.
Als nächstes ist die Kraftstoffeinspritzmengenberechnungsverarbeitung bei dem dritten Ausführungsbeispiel unter Bezugnahme auf Fig. 13 beschrieben. Die Routine gemäß Fig. 13 unterscheidet sich leicht von der Routine gemäß Fig. 10. Schritte 2200, 2220, 2230 und 2240 gemäß Fig. 13 führen die gleiche Verarbeitung wie die Schritte gemäß Fig. 10 aus.
Nachdem die Grundkraftstoffeinspritzmenge Fbase in dem Schritt 2200 berechnet ist, wird in einem Schritt 3500 bestimmt, ob es sich bei dem dem Laständerungsausmaß entsprechenden Parameter fDL um einen nichtnumerischen Wert handelt. Falls es bestimmt wird, daß es sich bei dem Parameter fDL um einen nichtnumerischen Wert handelt, berechnet die CPU 12 in einem Schritt 3510 ohne Verwendung der FPU 15 die Kraftstoffeinspritzmenge f (= Fbase × FHL) durch Multiplikation der Grundkraftstoffeinspritzmenge Fbase mit dem Lastkompensationswert FHL, dem der feste Wert 1 von Ganzzahldaten zugeordnet ist.
Falls es in dem Schritt 3500 bestimmt wird, daß es sich bei dem Parameter fDL nicht um einen nichtnumerischen Wert handelt, berechnet die CPU 12 demgegenüber in einem Schritt 2220 eine Kraftstoffeinspritzmenge f (= Fbase × fHL) durch eine Gleitpunktberechnung unter Verwendung der FPU 15. Die CPU 12 überprüft in dem Schritt 2230, ob es sich bei dem berechneten Wert um einen nichtnumerischen Wert handelt, und beendet die Routine, falls es sich nicht um einen nichtnumerischen Wert handelt. Falls es sich um einen nichtnumerischen Wert handelt, ordnet die CPU 12 in dem Schritt 2240 die Grundkraftstoffeinspritzmenge Fbase als die Kraftstoffeinspritzmenge f zu und beendet daraufhin die Routine.
D. h., falls es sich bei den eine Gleitpunktberechnung beeinflussenden Gleitpunktdaten, d. h. als eine Vorbedingung für die Gleitpunktberechnung verwendeten Gleitpunktdaten, um einen nichtnumerischen Wert handelt, besteht die Möglichkeit, daß die Vorbedingung nicht richtig bestimmt wird und die Gleitpunktberechnung fälschlich ausgeführt wird. Wenn es bestimmt wird, daß es sich bei als eine Vorbedingung verwendeten Gleitpunktdaten um einen nichtnumerischen Wert handelt, wird im Gegensatz dazu bei diesem Ausführungsbeispiel eine Verarbeitung als Ersatz für eine Gleitpunktberechnung ausgeführt. Dies hilft, die Schwierigkeit zu verhindern, daß die Steuerbarkeit des Motors 1 infolge von durch eine fälschliche Ausführung der Gleitpunktberechnung erhaltenen unrichtigen Steuerungsdaten verringert wird.
Viertes Ausführungsbeispiel
Bei einem vierten Ausführungsbeispiel werden alle Gleitpunktberechnungen verhindert und durch die Sicherungsverarbeitung ersetzt, wenn es sich bei einer von allen Gleitpunktdateneinheiten um einen nichtnumerischen Wert handelt. Beispielsweise wird eine Routine zur Berechnung der Kraftstoffeinspritzmenge f ausgeführt, wie sie in Fig. 14 gezeigt ist. Die Routine gemäß Fig. 14 unterscheidet sich leicht von der Routine gemäß Fig. 10. D. h., Schritte 2200, 2220, 2230 und 2240 gemäß Fig. 14 führen die gleiche Verarbeitung wie die Schritte gemäß Fig. 10 aus.
Gemäß Fig. 14 wird ein Zustandsmerker XALL der Bestimmung eines nichtnumerischen Werts verwendet und auf 1 eingestellt, wenn es sich bei einer von allen Gleitpunktdateneinheiten um einen nichtnumerischen Wert handelt. Beispielsweise wird bei (nicht gezeigten) Gleitpunktberechnungen zur Berechnung der Lastkompensationswerte fHL, eHL und dergleichen der Zustandsmerker XALL der Bestimmung eines nichtnumerischen Werts auf 1 eingestellt, falls es sich bei einem durch die Gleitpunktberechnungen berechneten Wert um einen nichtnumerischen Wert handelt.
Genauer rückt nach der Berechnung der Grundkraftstoffeinspritzmenge Fbase in dem Schritt 2200 die CPU 12 ihren Prozeß zu einem Schritt 4600 zur Überprüfung, ob der Zustandsmerker XALL der Bestimmung eines nichtnumerischen Werts 1 ist, vor. Wenn es in dem Schritt 2230 bestimmt wird, daß es sich bei dem berechneten Wert nicht um einen nichtnumerischen Wert handelt, beendet die CPUI 12 die Routine. Wenn es bestimmt wird, daß es sich um einen nichtnumerischen Wert handelt, rückt die CPU 12 ihren Prozeß zu einem Schritt 4610 zur Einstellung des Zustandsmerkers XALL der Bestimmung eines nichtnumerischen Werts auf 1 vor. Daraufhin rückt die CPU 12 zu dem Schritt 2240 zur Zuordnung der Grundkraftstoffeinspritzmenge Fbase als eine Kraftstoffeinspritzmenge f vor und beendet daraufhin die Routine.
Wenn der Zustandsmerker XALL der Bestimmung eines nichtnumerischen Werts auf 1 eingestellt ist, wird in dem Schritt 4600 eine positive Bestimmung ausgebildet, und die Grundkraftstoffeinspritzmenge Fbase wird als eine Kraftstoffeinspritzmenge f zugeordnet, und daraufhin wird die Routine beendet. D. h., falls der Zustandsmerker XALL der Bestimmung eines nichtnumerischen Werts auf 1 eingestellt ist, wird die Gleitpunktberechnung in dem Schritt 2220 umgangen, und die Verarbeitung gemäß dem Schritt 2240 wird als die Sicherungsverarbeitung anstelle der Gleitpunktberechnung ausgeführt.
Als nächstes ist die Verarbeitung zur Berechnung einer Zündzeitpunkteinstellung e unter Bezugnahme auf Fig. 15 beschrieben. Diese Routine unterscheidet sich leicht von der Routine gemäß Fig. 11, und Schritte 2300, 2320, 2330 und 2340 gemäß Fig. 15 führen die gleiche Verarbeitung wie die Schritte gemäß Fig. 11 aus.
Bei der Routine gemäß Fig. 15 wird vor der Ausführung einer Gleitpunktberechnung gemäß dem Schritt 2320 in einem Schritt 4700 bestimmt, ob der Zustandsmerker XALL der Bestimmung eines nichtnumerischen Werts 1 ist. Wenn es bestimmt wird, daß der Zustandsmerker XALL der Bestimmung eines nichtnumerischen Werts 1 ist, wird die Gleitpunktberechnung gemäß dem Schritt 2320 umgangen. Als die Sicherungsverarbeitung anstelle der Gleitpunktberechnung gemäß dem Schritt 2320 wird in dem Schritt 2340 der Zündzeitpunkteinstellung e die Grundzündzeitpunkteinstellung Ebase zugeordnet. Wenn es bestimmt wird, daß es sich bei einem durch die Gleitpunktberechnung gemäß dem Schritt 2320 berechneten Wert um einen nichtnumerischen Wert handelt, rückt die CPU 12 ihren Prozeß zu einem Schritt 4710 zur Einstellung des Zustandsmerkers XALL der Bestimmung eines nichtnumerischen Werts auf 1 vor und führt daraufhin die Verarbeitung gemäß dem Schritt 2340 aus.
D. h., bei diesem Ausführungsbeispiel wird bei allen zur Motorsteuerung verwendeten Gleitpunktberechnungen der gemeinsame Zustandsmerker XALL der Bestimmung eines nichtnumerischen Werts eingestellt, wenn es bestimmt wird, daß es sich bei den Ergebnissen der Berechnungen um einen nichtnumerischen Wert handelt. Vor der Ausführung der Gleitpunktberechnungen wird überprüft, ob der Zustandsmerker XALL der Bestimmung eines nichtnumerischen Werts eingestellt ist. Falls der Zustandsmerker XALL somit eingestellt ist, werden alle Gleitpunktberechnungen verhindert, und es wird statt dessen die Sicherungsverarbeitung ausgeführt.
Tatsächlich kann es bestimmt werden, daß der Mikrocomputer 11 in einer Umgebung arbeitet, in der die Ursache des Auftretens (insbesondere Rauschen) vorhanden ist, falls es sich bei einer von allen Gleitpunktdateneinheiten um einen nichtnumerischen Wert handelt. Da jederzeit ein nichtnumerischer Wert auftreten kann, werden entsprechend alle Gleitpunktberechnungen verhindert, und es wird eine Sicherungsverarbeitung anstelle der Gleitpunktberechnungen ausgeführt.
Bei dem vierten Ausführungsbeispiel wird der Zustandsmerker XALL der Bestimmung eines nichtnumerischen Werts zur Überprüfung, ob es sich bei Gleitpunktdaten um einen nichtnumerischen Wert handelt, verwendet, wodurch die Verarbeitung vereinfacht wird und im Vergleich mit dem Fall der Bestimmung, ob es sich bei den Werten aller Gleitpunktdateneinheiten um einen nichtnumerischen Wert handelt, praktisch erwünschte Ergebnisse geliefert werden.
Wenn wie vorstehend beschrieben ein nichtnumerischer Wert bei einer der Gleitpunktdateneinheiten auftritt und folglich der Zustandsmerker XALL eingestellt wird, kann dann, wenn das Auftreten eines nichtnumerischen Werts verursachende Faktoren wie beispielsweise Rauschen beseitigt sind und die Gleitpunktdaten zu einem normalen Wert wiederhergestellt sind, der Zustandsmerker XALL zur Wiederaufnahme der vorherigen Gleitpunktberechnungen rückgesetzt werden. Dies verhindert eine fortlaufende Sicherungsverarbeitung, wenn durch Rauschen verursacht oder aus anderen Gründen vorübergehend ein nichtnumerischer Wert auftritt, wodurch eine Wiederherstellung zu sehr genauen Gleitpunktberechnungen ermöglicht wird.
Fünftes Ausführungsbeispiel
Bei einem fünften Ausführungsbeispiel unterscheidet sich die Lastkompensationswertberechnungsroutine wie in Fig. 16 gezeigt von der Lastkompensationswertberechnungsroutine gemäß Fig. 9. Schritte 2100 bis 2130 gemäß Fig. 16 führen die gleiche Verarbeitung wie die Schritte gemäß Fig. 9 aus. Genauer ordnet die CPU 12 in dem Schritt 2130 einem Lastkompensationswert fHL 1,0 von Gleitpunktdaten als einen festen Wert zu, falls die Motordrehzahl Ne geringer als 3000 U/min. ist oder die Kühlflüssigkeitstemperatur Thw geringer als 60°C ist (wenn in Schritt 2100 oder 2110 eine negative Bestimmung ausgebildet wird).
Falls die Motordrehzahl 3000 U/min. oder mehr beträgt und die Kühlflüssigkeitstemperatur Thw 60°C oder höher ist (wenn in beiden Schritten 2100 und 2110 eine positive Bestimmung ausgebildet wird), geht die CPU 12 zu einem Schritt 5800 zur Überprüfung, ob es sich bei der als Gleitpunktdaten berechneten Motordrehzahl fNe um einen nichtnumerischen Wert handelt, über. Wenn es bestimmt wird, daß es sich bei der Motordrehzahl fNe nicht um einen nichtnumerischen Wert handelt, rückt die CPU 12 ihren Prozeß zu dem Schritt 2120 zur Berechnung des Lastkompensationswerts fHL = fNe × MAF × fGain von Gleitpunktdaten durch Ausführung einer Gleitpunktberechnung unter Verwendung der FPU 15 vor und beendet daraufhin die Verarbeitung.
Wenn es bestimmt wird, daß es sich bei der Motordrehzahl fNe um einen nichtnumerischen Wert handelt, rückt die CPU 12 demgegenüber ihren Prozeß zu einem Schritt S810 zur Interpolation von Kartendaten (map data) mit der als Ganzzahldaten berechneten Motordrehzahl Ne und dem Ansaugdruck MAF von Ganzzahldaten als Parameter ohne Verwendung der FPU 15 vor. Die CPU 12 wandelt den als Ganzzahldaten erhaltenen interpolierten Wert in Gleitpunktdaten, ordnet sie dem Lastkompensationswert fHL zu und beendet die Verarbeitung.
Wenn es bestimmt wird, daß es sich bei Gleitpunktdaten um einen nichtnumerischen Wert handelt, wird auf diese Weise bei diesem Ausführungsbeispiel eine Operation unter Verwendung von Ganzzahldaten anstelle einer Gleitpunktberechnung ausgeführt. Obwohl die Genauigkeit der Berechnungsergebnisse schlechter als mit einer Gleitpunktberechnung ist, können in diesem Fall Ganzzahldaten entsprechende Steuerungsdaten als ein Sicherungswert berechnet werden, wodurch praktisch erwünschte Ergebnisse geliefert werden.
Modifikation
Die vorstehenden Ausführungsbeispiele können auf viele weitere Arten modifiziert werden.
Beispielsweise kann bei dem ersten Ausführungsbeispiel die Überprüfung hinsichtlich nichtnumerischer Werte durch einen Hardwareaufbau des Mikrocomputers 11 anstelle der Software gemäß Fig. 5 ausgeführt werden. Die Rücksetzoperation kann auch unter Verwendung einer Softwareroutine durch den Mikrocomputer 11 ausgeführt werden, anstelle die WDC- Überwachungsschaltung 18 während des normalen Betriebs zu verwenden. Es können lediglich Daten in den Speichern initialisiert werden, anstelle den Mikrocomputer 11 rückzusetzen, wenn es bestimmt wird, daß ein nichtnumerischer Wert vorhanden ist.
Bei dem zweiten Ausführungsbeispiel kann auch ein Zustandsmerker zur Überprüfung hinsichtlich nichtnumerischer Werte verwendet werden, anstelle den Wert des Lastkompensationswerts fHL von Gleitpunktdaten zu überprüfen. D. h., wenn es sich bei einem durch die Gleitpunktberechnung in dem Schritt 2120 gemäß Fig. 9 berechneten Wert um einen nichtnumerischen Wert handelt, wird der Zustandsmerker der Bestimmung eines nichtnumerischen Werts eingestellt, der angibt, daß es sich bei dem Lastkompensationswert fHL um einen nichtnumerischen Wert handelt, und es wird in dem Schritt 2210 gemäß Fig. 10 überprüft, ob es sich bei dem Lastkompensationswert fHL um einen nichtnumerischen Wert handelt, indem der Zustandsmerker überprüft wird. Auf die gleiche Weise kann auch bei der Verarbeitung in dem Schritt 2310 gemäß Fig. 11 und in dem Schritt 3400 gemäß Fig. 12 unter Verwendung des Zustandsmerkers der Bestimmung eines nichtnumerischen Werts überprüft werden, ob es sich bei Gleitpunktdaten um einen nichtnumerischen Wert handelt. In diesem Fall kann durch Überprüfung des Zustandsmerkers der Bestimmung eines nichtnumerischen Werts überprüft werden, ob es sich bei den Gleitpunktdaten um einen nichtnumerischen Wert handelt. Falls der Zustandsmerker der Bestimmung eines nichtnumerischen Werts in dem Fall verwendet wird, in dem die gleichen Gleitpunktdaten bei mehreren Gleitpunktberechnungen verwendet werden, kann daher die Verarbeitung Vereinfacht werden, wodurch praktisch erwünschte Ergebnisse geliefert werden.
Bei dem dritten Ausführungsbeispiel, bei dem Gleitpunktdaten wie beispielsweise ein Luft-Kraftstoff- Verhältnis-Kompensationsausmaß als eine Vorbedingung für die Ausführung der Gleitpunktberechnung verwendet werden, kann überprüft werden, ob es sich bei dem Luft-Kraftstoff- Verhältnis um einen nichtnumerischen Wert handelt. Falls es sich um einen nichtnumerischen Wert handelt, wird die Gleitpunktberechnung verhindert und an ihrer Stelle eine Sicherungsverarbeitung ausgeführt.
Beispielsweise wird es für jede Gleitpunktberechnung bestimmt, ob es sich bei die Gleitpunktberechnung beeinflussenden Gleitpunktdaten um einen nichtnumerischen Wert handelt. Wenn ein nichtnumerischer Wert auftritt, wird eine Bestimmung hinsichtlich eines nichtnumerischen Werts für jede der Steuerungsberechnungen wie beispielsweise Zündsteuerung, Einspritzsteuerung und dergleichen getrennt bestimmt. Insbesondere wird ein gemeinsamer Zustandsmerker der Bestimmung eines nichtnumerischen Werts für jede der Steuerungsberechnungen wie beispielsweise Zündsteuerung, Einspritzsteuerung und dergleichen bereitgestellt. Wenn ein nichtnumerischer Wert bei einer Gleitpunktberechnung der z. B. Zündsteuerung auftritt, wird ein Zustandsmerker der Bestimmung eines nichtnumerischen Werts für die Zündsteuerung eingestellt. Der Zustandsmerker der Bestimmung eines nichtnumerischen Werts wird zur Verhinderung aller bei der Zündsteuerung ausgeführten Gleitpunktberechnungen verwendet. Auf diese Weise beeinflußt das Auftreten eines nichtnumerischen Werts die Gleitpunktberechnungen nicht.
Darüber hinaus kann die Steuerungswertberechnung ausgeführt werden, indem lediglich Ganzzahldaten verwendet werden, wenn ein nichtnumerischer Wert als vorhanden befunden wird, und die den nichtnumerischen Wert umfassenden Gleitpunktdaten können zu Vorgabewerten initialisiert werden, nachdem die vorbestimmte Berechnung unter Verwendung der Ganzzahldaten abgeschlossen ist oder eine vorbestimmte Zeit verstrichen ist.
Ferner können die vorstehende Ausführungsbeispiele auch zur Realisierung bei elektronischen Steuerungseinheiten modifiziert werden, die Gleitpunktdaten eines Speicherformats doppelter Genauigkeit anstelle des Speicherformats einfacher Genauigkeit handhaben. Die Ausführungsbeispiele können auch für andere Steuerungen wie beispielsweise eine Fahrzeugbewegungssteuerung (vehicle travel control) modifiziert werden. Ferner sind bei der Erfindung verschiedene Modifikationen im Rahmen des Inhalts und Schutzbereichs der beigefügten Patentansprüche möglich.
Eine Motorsteuerungs-ECU (10) umfaßt einen Mikrocomputer (11), der eine CPU (12), ein RAM (13), ein ROM (14), eine FPU (15) und eine I/O (16) aufweist. Die FPU (15) führt Gleitpunktberechnungen aus, und die CPU (12) führt andere Operationen als die Gleitpunktberechnungen aus. Die CPU (12) überprüft, ob ein nichtnumerischer Wert vorhanden ist, und führt eine Sicherungsverarbeitung aus, wenn ein nichtnumerischer Wert gefunden wird. Bei der Sicherungsverarbeitung werden die RAM-Daten initialisiert, indem für die Steuerung ungefährliche Vorgabewerte als die RAM-Daten geschrieben werden. Zusätzlich zu oder alternativ zu der Initialisierung sperrt die CPU (12) eine Gleitpunktberechnung der FPU (15). Ohne Verwendung der FPU (15) führt die CPU (12) Motorsteuerungsoperationen unter Verwendung von Ganzzahldaten anstelle von Gleitpunktdaten aus.

Claims (20)

1. Elektronische Steuerungseinheit (10) mit:
einer Speichereinrichtung (13) zur Speicherung von Daten;
einer Operationseinrichtung (12, 15) zur Ausführung verschiedener Steuerungsoperationen basierend auf einem vorbestimmten Steuerungsprogramm unter Verwendung der in der Speichereinrichtung (13) gespeicherten Daten, wobei die Steuerungsoperationen eine Gleitpunktberechnung umfassen, bei der Gleitpunktdaten verwendet werden;
einer Einrichtung (12) zur Überprüfung hinsichtlich nichtnumerischer Werte zur Überprüfung, ob die Gleitpunktdaten einen nichtnumerischen Wert umfassen; und
einer Sicherungseinrichtung (12) zur Ausführung einer Sicherungsverarbeitung anstelle der Gleitpunktberechnung unter Verwendung der den nichtnumerischen Wert umfassenden Gleitpunktdaten, wenn der nichtnumerische Wert durch die Überprüfung hinsichtlich nichtnumerischer Werte bestimmt wird.
2. Elektronische Steuerungseinheit nach Anspruch 1, wobei: die Sicherungseinrichtung (12) eine Dateninitialisierungseinrichtung (104) zur Initialisierung der Daten in der Speichereinrichtung (13), wenn das Vorhandensein des nichtnumerischen Werts von der Einrichtung (12) zur Überprüfung hinsichtlich nichtnumerischer Werte bestimmt wird, umfaßt.
3. Elektronische Steuerungseinheit (10) nach Anspruch 2, wobei: die Dateninitialisierungseinrichtung (104) die Daten in der Speichereinrichtung (13) initialisiert, indem sie für Steuerungsoperationen unwirksame Vorgabewerte in die Speichereinrichtung (13) schreibt.
4. Elektronische Steuerungseinheit (10) nach einem der Ansprüche 1 bis 3, wobei:
die Speichereinrichtung (13) ein nichtflüchtiger Speicher ist, der die Speicherung der Daten selbst dann aufrechterhält, wenn die Operationseinrichtung (12, 15) sich in einem inaktiven Zustand befindet, und einen Speicherbereich zur Speicherung der Gleitpunktdaten umfaßt; und
die Einrichtung (12) zur Überprüfung hinsichtlich nichtnumerischer Werte bei der zur Zeit des Startens der Operationen der Operationseinrichtung (12, 15) ausgeführten Systeminitialisierungsverarbeitung eine Überprüfung hinsichtlich nichtnumerischer Werte für den die Gleitpunktdaten speichernden Speicherbereich ausführt.
5. Elektronische Steuerungseinheit (10) nach einem der Ansprüche 1 bis 4, wobei: die Einrichtung (12) zur Überprüfung hinsichtlich nichtnumerischer Werte eine Überprüfung hinsichtlich nichtnumerischer Werte bei Leerlaufzeit bei den verschiedenen Steuerungsoperationen während eines normalen Betriebs der Operationseinrichtung (12, 15) ausführt.
6. Elektronische Steuerungseinheit (10) nach einem der Ansprüche 1 bis 3 mit: einer Rücksetzeinrichtung (18) zur Rücksetzung der Operationseinrichtung (12, 15), wenn das Vorhandensein des nichtnumerischen Werts von der Einrichtung (12) zur Überprüfung hinsichtlich nichtnumerischer Werte während eines normalen Betriebs der Operationseinrichtung (12, 15) bestimmt wird.
7. Elektronische Steuerungseinheit (10) nach einem der Ansprüche 1 bis 3 mit:
einer Überwachungsschaltung (18) zur Überwachung eines von der Operationseinrichtung (12, 15) periodisch erzeugten Überwachung-Gelöscht-Signals und zur Ausgabe eines Rücksetzsignals zu der Operationseinrichtung (12, 15) jedesmal wenn die Periodizität der Inversion des Überwachung-Gelöscht-Signals verloren geht,
wobei die Operationseinrichtung (12, 15) die Inversion des Überwachung-Gelöscht-Signals unterbricht, wenn das Vorhandensein des nichtnumerischen Werts von der Einrichtung (12) zur Überprüfung hinsichtlich nichtnumerischer Werte bestimmt wird.
8. Elektronische Steuerungseinheit (10) nach einem der Ansprüche 1 bis 7, wobei: die Sicherungseinrichtung (12) eine Interrupt- Sperreinrichtung (404) zur Sperrung aller Interrupts, wenn das Vorhandensein des nichtnumerischen Werts von der Einrichtung (12) zur Überprüfung hinsichtlich nichtnumerischer Werte bestimmt wird, umfaßt.
9. Elektronische Steuerungseinheit (10) nach einem der Ansprüche 1 bis 3, wobei: die Sicherungseinrichtung (12) lediglich die Daten in der Speichereinrichtung (13) initialisiert, ohne die Operationseinrichtung (12, 15) rückzusetzen.
10. Elektronische Steuerungseinheit (10) nach einem der Ansprüche 1 bis 9, wobei: die Operationseinrichtung (12, 15) zur Steuerung eines Verbrennungsmotors programmiert ist.
11. Elektronische Steuerungseinheit (10) nach Anspruch 1, wobei: die Einrichtung (12) zur Überprüfung hinsichtlich nichtnumerischer Werte für jede Gleitpunktberechnung überprüft, ob es sich bei den bei der Gleitpunktberechnung verwendeten Gleitpunktdaten um einen nichtnumerischen Wert handelt.
12. Elektronische Steuerungseinheit (10) nach Anspruch 1, wobei: die Einrichtung (12) zur Überprüfung hinsichtlich nichtnumerischer Werte für jede Gleitpunktberechnung überprüft, ob es sich bei den die Berechnung beeinflussenden Gleitpunktdaten um einen nichtnumerischen Wert handelt.
13. Elektronische Steuerungseinheit (10) nach Anspruch 1, wobei: die Einrichtung (12) zur Überprüfung hinsichtlich nichtnumerischer Werte überprüft, ob es sich bei einer von allen Einheiten der Gleitpunktdaten um einen nichtnumerischen Wert handelt.
14. Elektronische Steuerungseinheit (10) nach einem der Ansprüche 1 und 11 bis 13, wobei:
die Operationseinrichtung (12, 15) jedesmal, wenn es bestimmt wird, daß es sich bei den Gleitpunktdaten um einen nichtnumerischen Wert handelt, einen Zustandsmerker der Bestimmung eines nichtnumerischen Werts einstellt;
die Einrichtung (12) zur Überprüfung hinsichtlich nichtnumerischer Werte den Zustandsmerker der Bestimmung eines nichtnumerischen Werts hinsichtlich eines nichtnumerischen Werts überprüft; und
die Sicherungseinrichtung (12) die Sicherungsverarbeitung basierend auf einem Ergebnis der Überprüfung des Zustandsmerkers der Bestimmung eines nichtnumerischen Werts ausführt.
15. Elektronische Steuerungseinheit (10) nach einem der Ansprüche 1 und 11 bis 14, wobei: die Sicherungseinrichtung (12) Ganzzahldaten als einen Sicherungswert anstelle der Gleitpunktdaten verwendet.
16. Elektronische Steuerungseinheit (10) nach einem der Ansprüche 1 und 11 bis 14, wobei: die Sicherungseinrichtung (12) Berechnungen unter Verwendung von Ganzzahldaten anstelle der Gleitpunktberechnungen ausführt.
17. Elektronische Steuerungseinheit (10) nach einem der Ansprüche 1 und 11 bis 13, wobei: die Sicherungseinrichtung (12) Berechnungen unter Verwendung von Ganzzahldaten ausführt, wenn der nichtnumerische Wert als vorhanden befunden wird, und die den nichtnumerischen Wert umfassenden Gleitpunktdaten zu einem Vorgabewert initialisiert werden, nachdem die Berechnung unter Verwendung der Ganzzahldaten abgeschlossen ist oder eine vorbestimmte Zeit verstrichen ist.
18. Elektronisches Steuerungsverfahren für ein Fahrzeug mit den Schritten:
Überprüfen von Gleitpunktdaten hinsichtlich eines nichtnumerischen Werts (102, 301, 2210, 2230, 2310, 2330, 2400, 2500, 5800), wobei die Gleitpunktdaten zur Verwendung bei einer Berechnung eines Steuerungswerts für das Fahrzeug dienen; und
Sperren einer Verwendung der den nichtnumerischen Wert umfassenden Gleitpunktdaten bei der Berechnung des Steuerungswerts (104, 404, 2130, 2240, 2340, 3440, 3510, 2240, 5810), wenn ein Überprüfungsergebnis des Überprüfungsschritts angibt, daß die Gleitpunktdaten den nichtnumerischen Wert umfassen.
19. Elektronisches Steuerungsverfahren nach Anspruch 18, wobei: der Sperrschritt einen Schritt (104) der Initialisierung der in einem Speicher (13) gespeicherten Gleitpunktdaten zu einem für die Berechnung des Steuerungswerts unwirksamen Wert umfaßt.
20. Elektronisches Steuerungsverfahren nach Anspruch 18, wobei:
der Überprüfungsschritt alle während der Berechnung des Steuerungswerts verwendeten und berechneten Gleitpunktdaten überprüft; und
der Sperrschritt den Steuerungswert durch Ersetzen der den nichtnumerischen Wert umfassenden Gleitpunktdaten durch einen Ganzzahlwert berechnet.
DE10064787A 1999-12-24 2000-12-22 Elektronische Steuerung mit einer Funktion zur Überprüfung von Gleitpunktdaten Withdrawn DE10064787A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP36674199A JP4058870B2 (ja) 1999-12-24 1999-12-24 浮動小数点演算機能を有した電子制御装置
JP2000101028A JP3644350B2 (ja) 2000-04-03 2000-04-03 浮動小数点演算機能を有した自動車用電子制御装置

Publications (1)

Publication Number Publication Date
DE10064787A1 true DE10064787A1 (de) 2001-06-28

Family

ID=26581832

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10064787A Withdrawn DE10064787A1 (de) 1999-12-24 2000-12-22 Elektronische Steuerung mit einer Funktion zur Überprüfung von Gleitpunktdaten

Country Status (2)

Country Link
US (1) US6904543B2 (de)
DE (1) DE10064787A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4329332B2 (ja) 2002-01-15 2009-09-09 株式会社デンソー 電子制御装置及び制御プログラム
JP4382602B2 (ja) * 2004-04-23 2009-12-16 株式会社日立製作所 リモートコピーシステム
JP4645519B2 (ja) * 2006-04-27 2011-03-09 株式会社デンソー 演算処理装置,制御装置およびプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6027973A (ja) 1983-07-26 1985-02-13 Fujitsu Ltd ボ−リング方法
US5272659A (en) * 1990-06-26 1993-12-21 Allied-Signal Inc. Engine control with fixed point digital overflow prevention
US5583989A (en) * 1992-05-28 1996-12-10 Honda Giken Kogyo Kabushiki Kaisha Vehicle control system having program generator and convertor
US5631831A (en) * 1993-02-26 1997-05-20 Spx Corporation Diagnosis method for vehicle systems
US5341320A (en) * 1993-03-01 1994-08-23 Motorola, Inc. Method for rapidly processing floating-point operations which involve exceptions
US5339266A (en) * 1993-11-29 1994-08-16 Motorola, Inc. Parallel method and apparatus for detecting and completing floating point operations involving special operands
DE4434895C2 (de) 1993-12-23 1998-12-24 Hewlett Packard Co Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen
JP2868075B2 (ja) 1996-03-25 1999-03-10 日本電気株式会社 浮動小数点演算処理装置
US6199007B1 (en) * 1996-07-09 2001-03-06 Caterpillar Inc. Method and system for determining an absolute power loss condition in an internal combustion engine
US5931943A (en) * 1997-10-21 1999-08-03 Advanced Micro Devices, Inc. Floating point NaN comparison
DE19750662C2 (de) * 1997-11-15 2002-06-27 Daimler Chrysler Ag Prozessoreinheit für ein datenverarbeitungsgestütztes elektronisches Steuerungssystem in einem Kraftfahrzeug
US6253311B1 (en) * 1997-11-29 2001-06-26 Jp First Llc Instruction set for bi-directional conversion and transfer of integer and floating point data
US6519694B2 (en) * 1999-02-04 2003-02-11 Sun Microsystems, Inc. System for handling load errors having symbolic entity generator to generate symbolic entity and ALU to propagate the symbolic entity
US6675292B2 (en) * 1999-08-13 2004-01-06 Sun Microsystems, Inc. Exception handling for SIMD floating point-instructions using a floating point status register to report exceptions
JP4329332B2 (ja) * 2002-01-15 2009-09-09 株式会社デンソー 電子制御装置及び制御プログラム

Also Published As

Publication number Publication date
US20010005808A1 (en) 2001-06-28
US6904543B2 (en) 2005-06-07

Similar Documents

Publication Publication Date Title
DE4107542C2 (de) Sicherheitssystem für eine Drosselklappensteuerung
DE4219135B4 (de) System zur Erfassung von Fehlzündungen in einer Brennkraftmaschine
DE19929796B4 (de) Vorrichtung und Verfahren zum erneuten Schreiben von Daten aus einem flüchtigen Speicher in einen nichtflüchtigen Speicher
DE102007047150A1 (de) Elektroniksteuerung
DE112016005096B4 (de) Elektronische Steuervorrichtung und elektronisches Steuerverfahren
EP0898745B1 (de) Verfahren zur überprüfung der funktionsfähigkeit einer recheneinheit
EP1955164A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
DE102015109171A1 (de) Steuergerät für eine brennkraftmaschine
DE10064787A1 (de) Elektronische Steuerung mit einer Funktion zur Überprüfung von Gleitpunktdaten
DE102013221098B4 (de) Fahrzeugsteuereinheit
WO2000065442A1 (de) Sicherung eines rechnerkerns gegen äussere manipulationen
DE102016200130B4 (de) Elektronische Steuervorrichtung
DE19757875C2 (de) Verfahren zum Betreiben einer Brennkraftmaschine insbesondere eines Kraftfahrzeugs
DE10101253A1 (de) Fahrzeugsteuerungscomputergerät mit Selbstdiagnosefunktion
DE10131577A1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
WO2022042950A1 (de) VORRICHTUNG ZUR ERFASSUNG UND VERARBEITUNG EINER MESSGRÖßE EINES SENSORS IN EINEM KRAFTFAHRZEUG
DE102013202961A1 (de) Verfahren zum Überwachen eines Stackspeichers in einem Betriebssystem eines Steuergeräts eines Kraftfahrzeuges
DE102018219700B4 (de) Steuervorrichtung
EP1293858B1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
DE102009042604A1 (de) Elektrische Steuervorrichtung zur Erkennung von Datenfehlern und Mikrocomputer hierfür
DE102022128183B3 (de) Verfahren zum Starten einer Datenverarbeitungseinrichtung, Datenverarbeitungseinrichtung und Kraftfahrzeug
DE102018210733A1 (de) Verfahren zum Überwachen wenigstens einer Recheneinheit
DE102019208129B4 (de) Elektronische Steuereinheit
JPH0325813B2 (de)
EP3876123B1 (de) Anordnung und betriebsverfahren für einen sicheren hochfahrablauf einer elektronischen einrichtung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130702