DE10064787A1 - Elektronische Steuerung mit einer Funktion zur Überprüfung von Gleitpunktdaten - Google Patents
Elektronische Steuerung mit einer Funktion zur Überprüfung von GleitpunktdatenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3877—Concurrent 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Ü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.
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.
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)
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)
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 | 株式会社デンソー | 電子制御装置及び制御プログラム |
-
2000
- 2000-12-19 US US09/739,335 patent/US6904543B2/en not_active Expired - Fee Related
- 2000-12-22 DE DE10064787A patent/DE10064787A1/de not_active Withdrawn
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 |