DE3048674C2 - - Google Patents
Info
- Publication number
- DE3048674C2 DE3048674C2 DE3048674A DE3048674A DE3048674C2 DE 3048674 C2 DE3048674 C2 DE 3048674C2 DE 3048674 A DE3048674 A DE 3048674A DE 3048674 A DE3048674 A DE 3048674A DE 3048674 C2 DE3048674 C2 DE 3048674C2
- Authority
- DE
- Germany
- Prior art keywords
- task
- air flow
- flow meter
- signals
- interrupt
- 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.)
- Expired
Links
Classifications
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02P—IGNITION, OTHER THAN COMPRESSION IGNITION, FOR INTERNAL-COMBUSTION ENGINES; TESTING OF IGNITION TIMING IN COMPRESSION-IGNITION ENGINES
- F02P5/00—Advancing or retarding ignition; Control therefor
- F02P5/04—Advancing or retarding ignition; Control therefor automatically, as a function of the working conditions of the engine or vehicle or of the atmospheric conditions
- F02P5/145—Advancing or retarding ignition; Control therefor automatically, as a function of the working conditions of the engine or vehicle or of the atmospheric conditions using electrical means
- F02P5/15—Digital data processing
- F02P5/1502—Digital data processing using one central computing unit
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D41/00—Electrical control of supply of combustible mixture or its constituents
- F02D41/02—Circuit arrangements for generating control signals
- F02D41/18—Circuit arrangements for generating control signals by measuring intake air flow
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D41/00—Electrical control of supply of combustible mixture or its constituents
- F02D41/02—Circuit arrangements for generating control signals
- F02D41/18—Circuit arrangements for generating control signals by measuring intake air flow
- F02D41/187—Circuit arrangements for generating control signals by measuring intake air flow using a hot wire flow sensor
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D41/00—Electrical control of supply of combustible mixture or its constituents
- F02D41/24—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
- F02D41/26—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
- F02D41/263—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor the program execution being modifiable by physical parameters
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Mechanical Engineering (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
- Measuring Volume Flow (AREA)
Description
Die Erfindung betrifft ein Verfahren zur Steuerung von
Brennkraftmaschinen, insbesondere für Kraftfahrzeuge, gemäß
dem Oberbegriff des Patentanspruchs 1, wie es aus DE
27 55 015 A1 bekannt ist.
Bisher wird der Durchsatz der Ansaugluft, die der Brennkraftmaschine
zugeführt wird, in den meisten Fällen mit
einem Hitzdraht-Luftmengenmesser erfaßt, weil dieser vergleichsweise
kostengünstig ist. Das Ausgangssignal eines
derartigen Luftmengenmessers ist allerdings nicht konstant,
sondern unterliegt periodischen Änderungen, da der
Ansaugluftstrom nicht konstant bleibt, sondern aufgrund
der Kolbenbewegung pulsiert. Das Ausgangssignal des Hitzdraht-
Luftmengenmessers steht ferner in nichtlinearer Beziehung
zum tatsächlichen Durchsatz an Ansaugluft. Das
Ausgangssignal eines Hitzdraht-Luftmengenmessers gibt daher
nicht notwendigerweise die tatsächlich angesaugte
Luftmenge mit annehmbarer Genauigkeit wieder. Darüber
hinaus ist die erforderliche Software für das entsprechende
Mikroprozessorsystem insgesamt sehr kompliziert, wobei
die Anpassung der Software an den jeweiligen Typ des
Kraftfahrzeugs und/oder dem betreffenden Anwendungsfall
erhebliche Schwierigkeiten bereitet.
Es ist daher Aufgabe der Erfindung, das gattungsgemäße
Verfahren zur Steuerung des Betriebes von Brennkraftmaschinen
so weiterzubilden, daß abhängig von der Ausgangsluftmenge
in allen Drehzahlbereichen eine Steuerung mit
hoher Genauigkeit erzielt werden kann.
Die Aufgabe wird gemäß Patentanspruch 1 gelöst. Vorteilhafte
Ausführungsformen sind Gegenstand der Unteransprüche.
Das erfindungsgemäße Verfahren zur Steuerung von Brenn
kraftmaschinen, bei dem mittels eines Luftmengenmessers
für den Durchsatz der Ansaugluft repräsentative elektrische
Signale abgetastet und in Abhängigkeit von den
Signalen des Luftmengenmessers in einem Rechner Steuersignale
für den Betrieb der Kraftstoffversorgung berechnet
werden, ist dadurch gekennzeichnet, daß
- - die Signale des Luftmengenmessers bei vorgegebenen Kurbelwinkeln
abgetastet werden, die von der Drehzahl der
Brennkraftmaschine abhängig sind,
wobei die Abtastung für niedrigere Drehzahlen bei kleineren Kurbelwinkeln und für höhere Drehzahlen bei größeren Kurbelwinkeln vorgenommen wird, und - - sämtliche Abtastungen eines Abtastzyklus bei jeweils gleichen Kurbelwinkeln vorgenommen werden.
Dabei ist es bevorzugt, die Abtastung der Signale des
Luftmengenmessers innerhalb vorgegebener Drehzahlbereiche
bei für jeden Drehzahlbereich vorgegebenen und jeweils
gleichen Kurbelwinkeln vorzunehmen.
Entsprechend einer bevorzugten Weiterbildung wird die Abtastung
der Signale des Luftmengenmessers bei vorgegebenen,
gleichen Kurbelwinkeln vorgenommen, die in einem vorgegebenen
Bereich höherer Drehzahlen jeweils doppelt so
groß sind wie im vorgegebenen Bereich der niedrigeren
Drehzahlen.
Auf der Grundlage mehrerer momentaner Ansaugluftmengenwerte,
die auf diese Weise erhalten werden, wird die Menge
der Ansaugluft, die tatsächlich der Brennkraftmaschine
gerade zugeführt wird, rechnerisch bestimmt, um so ein
entsprechendes Steuersignal zu erzeugen. Mit dieser
Konzeption kann die Brennkraftmaschine mit hoher Genauigkeit
gesteuert werden.
Bei einer bevorzugten Ausführungsform der Erfindung wird
das Steuerprogramm in ein Unterprogramm zur Bestimmung der
Ansaugluftmenge, ein Unterprogramm zur rechnerischen Bestimmung
der Kraftstoffzuführmenge, des Zündzeitpunkts
usw. unterteilt, wobei die Unterprogramme zur Erleichterung
von Modifizierungen und Änderungen unabhängig voneinander
aktiviert werden können.
Die Erfindung wird im folgenden anhand der in den Zeichnungen
dargestellten Ausführungsbeispiele näher erläutert; es zeigt
Fig. 1 eine schematische Ansicht eines Steuersystems für
Brennkraftmaschinen;
Fig. 2 ein Schaltbild der Zündeinrichtung zu Fig. 1;
Fig. 3 ein Blockschaltbild des Abgasrückführsystems;
Fig. 4 ein schematisches Blockschaltbild eines Steuersystems;
Fig. 5 ein schematisches Blockschaltbild eines Programmsystems
gemäß einem bevorzugten Ausführungsbeispiel
des Verfahrens gemäß der Erfindung;
Fig. 6 eine Darstellung einer Tabelle von Task-Steuerblöcken,
die in einem RAM vorgesehen sind, der
durch einen Task-Zuteiler gesteuert wird;
Fig. 7 eine Darstellung einer Startadressentafel für eine
Gruppe von Tasks, deren Beginn bei verschiedenen
Unterbrechungen ausgelöst wird;
Fig. 8, 9 Flußdiagramme des Verarbeitungsflusses des Task-
Zuteilers;
Fig. 10 ein Flußdiagramm des Verarbeitungsflusses eines
Makro-Verarbeitungsprogramms;
Fig. 11 eine Darstellung eines Beispiels einer Task-
Prioritätssteuerung;
Fig. 12 ein Diagramm zur Darstellung von Zustandsübergängen
von Tasks bei der Task-Prioritätssteuerung;
Fig. 13 ein Blockschaltbild eines Ausführungsbeispiels für
die Schaltung von Fig. 5;
Fig. 14 eine Darstellung einer Softtimertafel, die in
einem RAM vorgesehen ist;
Fig. 15 ein Flußdiagramm des Verarbeitungsflusses eines
Unterbrechungsverarbeitungsprogramms INTV;
Fig. 16 Signalverläufe zur Erläuterung des Falls, daß der
Beginn und das Anhalten verschiedener Tasks unabhängig
vom Betriebszustand der Brennkraftmaschine
durchgeführt wird;
Fig. 17 ein Blockschaltbild einer Unterbrechungsgeneratorschaltung;
Fig. 18 ein Flußdiagramm des Programms INJ zur Berechnung
der Einspritzmenge;
Fig. 19 ein Flußdiagramm des Programms IGNCAL zur Berechnung
des Zündzeitpunkts;
Fig. 20 ein Flußdiagramm von Einzelheiten des Programms
ISC zur Leerlaufsteuerung;
Fig. 21 ein Flußdiagramm von Einzelheiten eines Programms
EGRCAL zur Berechnung der Abgasrückführung;
Fig. 22 Signalverläufe zur Zeitsteuerung der Abtastung des
Ausgangssignals des Luftmengenmessers;
Fig. 23 ein Flußdiagramm des Verarbeitungsflusses eines
Unterbrechungsverarbeitungsprogramms;
Fig. 24 eine Darstellung von Datenbereichen eines RAM;
Fig. 25 eine Darstellung von Datenbereichen eines ROM zum
Flußdiagramm von Fig. 23;
Fig. 26 ein Flußdiagramm zur Darstellung eines Programms
ADIN2 zur A/D-Wandlung, Kalibrierung, Filterung
und Beschleunigungssteuerung, sowie
Fig. 27 ein Blockschaltbild einer beispielhaften
Ausführungsform eines Luftmengenmessers.
Gemäß Fig. 1 wird die Ansaugluft einem Zylinder 8 über ein
Luftfilter 2, eine Drosselkammer 4 und ein Ansaugrohr 6
zugeführt. Im Zylinder 8 verbranntes Gemisch wird als Abgas
über ein Abgasrohr 10 in die Atmosphäre abgegeben.
Die Drosselkammer 4 ist mit einer Einspritzvorrichtung 12
zur Kraftstoffeinspritzung versehen. Der Strahl des von
der Einspritzvorrichtung 12 abgegebenen Kraftstoffs wird
in eine von der Drosselkammer 4 kommende Luftleitung
hinein zerstäubt und mit der Ansaugluft zur Bildung eines
Gemisches vermischt. Dieses Gemisch gelangt bei Öffnung
eines Einlaßventils 20 durch das Ansaugrohr 6 in die
Brennkammer des Zylinders 8.
Drosselventile 14 und 16 sind nahe dem Strahl der
Einspritzvorrichtung 12 vorgesehen. Das Drosselventil 14 ist
so ausgebildet, daß es mit dem vom Fahrer betätigten Gas
pedal mechanisch gekuppelt ist. Andererseits wird das
Drosselventil 16 durch ein Membranstellglied 18 betätigt.
Es ist bei niederem Luftdurchsatz vollständig geschlossen.
Wenn der Luftdurchsatz zunimmt, nimmt der auf die Membran
des Membranstellglieds 18 wirkende Unterdruck zu, wodurch
sich das Drosselventil 16 zu öffnen beginnt, um so eine
Zunahme des Saugwiderstands zu verhindern.
Stromauf der Drosselventile 14 und 16 der Drosselkammer 4
ist ein Luftbypass 22 vorgesehen, in dem ein elektrisches
Heizelement eines Hitzdraht-Luftmengenmessers 24 angeordnet
ist. Das Ausgangssignal des Luftmengenmessers 24
ändert sich abhängig von der pulsationsförmigen Schwankung
des Luftdurchsatzes entsprechend der Beziehung zwischen
der Geschwindigkeit des Luftstroms und der Größe der Wärmeübertragung
des Heizelements. Da das Heizelement des
Luftmengenmessers 24 im Luftbypass 22 angeordnet ist, ist
es vor heißen Gasen geschützt, die beim Rückschlagen des
Zylinders 8 auftreten und wird ferner auch nicht durch
Staub in der Ansaugluft nachteilig beeinflußt. Der Auslaß
des Luftbypasses 22 öffnet sich nahe dem engsten Teil
eines Venturirohres, während sein Einlaß stromauf des Venturi
rohrs angeordnet ist.
Der der Einspritzvorrichtung 12 zuzuführende Kraftstoff
wird von einem Kraftstofftank 30 über eine Kraftstoffpumpe
32, einen Kraftstoffdämpfer 34 und ein Filter 36 einem
Kraftstoffdruckregler 38 zugeführt. Der unter Druck
stehende Kraftstoff wird von dem Kraftstoffdruckregler 38
der Einspritzvorrichtung 12 über eine Leitung 40 zugeführt.
Der Kraftstoff wird vom Kraftstoffdruckregler 38
über eine Rückleitung 42 zum Kraftstofftank 30 rückgeführt,
so daß die Differenz zwischen dem Druck im Ansaugrohr
6, in das der Kraftstoff eingespritzt wird, und dem
Druck zwischen dem Einlaß und dem Auslaß der Einspritzvorrichtung
12 stets konstant ist.
Das über das Ansaugventil 20 angesaugte Gemisch wird durch
einen Kolben 50 komprimiert und durch einen Funken gezündet,
der über den Elektroden einer Zündkerze 52 erzeugt
wird. Der Zylinder 8 wird mit Kühlwasser 54 gekühlt,
dessen Temperatur mit einem Wassertemperaturfühler 56 gemessen
wird, dessen Meßwert als Temperatur der Brennkraftmaschine
verwendet wird. Die Zündkerze 52 wird von einer
Zündspule 58 mit Hochspannung versorgt.
Die Kurbelwelle 51 ist mit einem Kurbelwinkelfühler 53
versehen, der ein Bezugswinkelsignal und ein Positionssignal
für jeden Bezugskurbelwellenwinkel (z. B. 180°) bzw.
jeden festen Winkel (z. B. 0,5°) erzeugt, wenn sich die
Brennkraftmaschine dreht.
Die Ausgangssignale des Kurbelwinkelfühlers 53, das Ausgangs
signal des Wassertemperaturfühler 56 und das elektrische
Signal vom Heizelement 54 werden einer Steuerschaltung
64 zugeführt, die einen Mikrorechner enthält,
und werden durch die Steuerschaltung 64 verarbeitet. Die
Einspritzvorrichtung 12 und die Zündspule 58 werden durch
Ausgangssignale von der Steuerschaltung 64 betrieben.
Bei dem in Fig. 1 dargestellten System ist die Drosselkammer
4 mit einem Bypass 26 versehen, der das Drosselventil
16 der Drosselkammer 4 überbrückt und mit dem Saugrohr
6 in Verbindung steht. Der Bypass 26 ist mit einem
Bypassventil 62 versehen, dessen Öffnungsgrad steuerbar
ist. Die Steuerung des Bypassventils 62 wird abhängig von
einem Steuereingangssignal durchgeführt, das dem zugehörigen
Ansteuerglied von der Steuerschaltung 64 zugeführt
wird.
Das Bypassventil 62 liegt dem Bypass 26 gegenüber und wird
durch einen Impulsstrom zum Öffnen oder Schließen gesteuert.
Dieses Bypassventil 62 bewirkt eine Änderung der
Querschnittsfläche des Bypasses 26 über die Größe des Ventilhubs,
die so gesteuert wird, daß ein Ansteuersystem
mittels eines Ausgangssignals von der Steuerschaltung 64
angesteuert wird. Die Steuerschaltung 64 erzeugt ein Öffnungs-
und Schließungsperiodensignal zur Steuerung des Ansteuersystems,
auf dessen Grundlage das Ansteuersignal dem
Ansteuerteil des Bypassventils 62 zum Einstellen der Größe
des Ventilhubs des Bypassventils 62 zugeführt wird.
Gemäß Fig. 2 wird ein Impulsstrom über einen Verstärker 68
einem Leistungstransistor 72 zugeführt, der durch diesen
Strom durchgeschaltet wird. Dann fließt ein Strom von
einer Batterie 66 durch die Primärwicklung der Zündspule
58. Der Leistungstransistor 72 wird bei Verschwinden des
Impulsstroms gesperrt, wodurch eine Hochspannung in der
Sekundärwicklung der Zündspule 58 induziert wird.
Die Hochspannung wird über einen Verteiler 70 synchron zur
Drehung der Brennkraftmaschine auf die Zündkerzen 52 verteilt,
die in entsprechenden Zylindern 8 der Brennkraftmaschine
angeordnet sind.
Fig. 3 zeigt ein Abgasrückführsystem (EGR-System). Ein
fester, unter dem Atmosphärendruck liegender Druck einer
konstanten Unterdruckquelle 80 wird einem Steuerventil 86
über ein Druckregelventil 84 zugeführt. Das Druckregelventil
84 steuert die Zuführung des Unterdrucks zum Steuerventil
86 durch Steuern des Anteils des Druckausgleichs
mit der Atmosphäre 88 abhängig vom Tastverhältnis von der
Basis eines Transistors 90 zugeführte, sich wiederholenden
Impulsen. Folglich wird der dem Steuerventil 86 zugeführte
Unterdruck durch das Tastverhältnis des Transistors 90 bestimmt.
Die vom Abgasrohr 10 zum Ansaugrohr 6 rückgeführte
Abgasmenge wird durch den gesteuerten Unterdruck des
Druckregelventils 84 gesteuert.
Gemäß Fig. 4 besteht das Steuersystem aus einer Zentraleinheit
(CPU) 104, einem Festwertspeicher (ROM) 102, einem
Speicher mit wahlfreiem Zugriff (RAM) 106 und einer Eingabe/
Ausgabe-Schaltung 108. Die CPU 104 verarbeitet Eingangsdaten
von der Eingabe/Ausgabe-Schaltung 108 und führt
die bearbeiteten Ergebnisse wieder zurück zur Eingabe/Ausgabe-
Schaltung 108 in Übereinstimmung mit verschiedenen
Programmen, die im ROM 102 gespeichert sind. Für diese
Betriebsschritte notwendige Zwischenspeicherungen werden im
RAM 106 vorgenommen. Der Austausch der verschiedenen Daten
zwischen der CPU 104, dem ROM 102, dem RAM 106 und der
Eingabe/Ausgabe-Schaltung 108 erfolgt mittels einer Busleitung
110, die aus einem Datenbus, einem Steuerbus und
einem Adreßbus besteht.
Die Eingabe/Ausgabe-Schaltung 108 weist als Eingangseinrichtung
einen ersten Analog/Digital-Umsetzer ADC 1, einen
zweiten Analog/Digital-Umsetzer ADC 2, eine Winkelsignal
verarbeitungsschaltung 126 und eine diskrete Eingabe/Ausgabe-
Schaltung DIO zum Empfang und zum Abgeben von 1-Bit-
Information auf.
In dem ADC 1 werden Ausgangssignale von einem Batteriespannungs
detektor 132 (VBS), dem Kühlwassertemperaturfühler 56
(TWS), einem Umgebungsluftemperaturfühler 112 (TAS),
einem Spannungsgenerator geregelter Spannung 114 (VRS),
einem Drosselklappenwinkelfühler 116 (OTHS) und einem g-
Fühler 118 (S) einem Multiplexer 120 (MPX) zugeführt,
wobei eines davon durch den Multiplexer 120 gewählt und
einem Analog/Digital-Wandler (ADC) 122 zugeführt wird. Der
Digitalwert, der ein Ausgangssignal des ADC 122 ist, wird
in einem Register (REG) 124 gespeichert.
Das Ausgangssignal vom Luftmengenmesser 24 (AFS) wird dem
ADC 2 zugeführt und über einen Analog/Digital-Wandler 128
(ADC) in einen Digitalwert umgesetzt, der in ein Register
(REG) 130 gesetzt wird.
Ein Kurbelwinkelfühler (ANGL) 53 gibt ein Signal, das
einen Bezugskurbelwinkel (REF) wiedergibt, beispielsweise
einen Kurbelwinkel von 180°, und ein Signal (POS) ab, das
einem kleinen Winkel, beispielsweise einem Kurbelwinkel
von 1°, entspricht. Die Signale werden einer Winkelsignal
verarbeitungsschaltung 126 zur geeigneten Formung zugeführt.
Die DIO empfängt Ausgangssignale von einem Leerlaufschalter
(IDLE-SW) 148, einem Schalter für höchsten Gang (TOP-SW)
150 und einem Startschalter (START-SW) 152.
Im folgenden werden Impulsausgangsschaltungen und gesteuerte
Systeme erläutert, die auf den Ergebnissen der
CPU 104 beruhen. Eine Einspritzsteuerschaltung 134 (INJC)
ist eine Schaltung, die den Digitalwert des erhaltenen Ergebnisses
in ein Impulsausgangssignal umsetzt. Sie erzeugt
Impulse mit einer Impulsbreite, die der Menge des einzuspritzenden
Kraftstoffs entspricht, die über ein UND-Glied
136 der Einspritzvorrichtung zugeführt werden.
Eine Zündimpulsgeneratorschaltung (IGNC) 138 besitzt ein
Register (REG) ADV, in dem der Zündzeitpunkt gesetzt wird,
und ein Register DWL, in dem der Zeitpunkt der Erregung
der Zündspule gesetzt wird. Diese Daten werden von der CPU
104 zugeführt. Impulse werden auf der Grundlage der gesetzten
Daten erzeugt und über ein UND-Glied 140 dem Verstärker
68 zugeführt (vgl. Fig. 2).
Der Ventilöffnungsgrad des Bypassventils 62 wird durch Impulse
gesteuert, die der Ventilansteuereinrichtung von
einer Steuerschaltung (ISCC) 142 über ein UND-Glied 144
zugeführt werden. Die ISCC 142 besitzt ein Register (REG)
ISCD, in das die Impulsbreite gesetzt wird, und ein Register
ISCP, in das die wiederkehrende Impulsperiode gesetzt
wird.
Eine Steuerimpulsgeneratorschaltung (EGRC) 154 zum Steuern
der Abgasrückführmenge über den Transistor 90, der seinerseits
das Steuerventil 86 gemäß Fig. 3 steuert, besitzt
ein Register EGRD, in dem ein Wert, der das Tastverhältnis
der Impulse wiedergibt, gesetzt wird, und ein Register
EGRP, in dem ein Wert, der die wiederkehrende Periode der
Impulse wiedergibt, gesetzt wird. Die Ausgangsimpulse von
der Steuerimpulsgeneratorschaltung 154 werden der Basis
des Transistors 90 über ein UND-Glied 156 zugeführt.
Eingabe/Ausgabe-Signale mit jeweils einem Bit werden durch
die Schaltung DIO gesteuert. Aus Eingangssignale liegen
das IDLE-SW-Signal, das TOP-SW-Signal und das START-SW-Signal
vor. Als Ausgangssignal resultiert ein Impulsausgangssignal
zum Ansteuern der Kraftstoffpumpe 32. Die DIO
ist mit einem Register DDR zum Bestimmen, welche Anschlüsse
als Eingangsanschlüsse oder als Ausgangsanschlüsse zu
verwenden sind, und einem Register DOUT zum Verriegeln der
Ausgangsdaten versehen.
Der Register (MOD) 160 ist ein Register, das Anweisungen
für verschiedene Zustände innerhalb der Eingabe/Ausgabe-
Schaltung 108 hält. Beispielsweise werden durch Setzen
einer entsprechenden Anweisung in dieses Register alle
UND-Glieder 136, 140, 144 und 146 durchgeschaltet oder
gesperrt. Durch Setzen von Anweisungen in das MOD-Register
160 in dieser Weise können das Anhalten und das Starten
der Ausgangssignale von INJC 134 und IGNC 138 oder ISCC
142 gesteuert werden.
Gemäß Fig. 5 sind ein Anfangsverarbeitungsprogramm 202,
ein Unterbrechungsverarbeitungsprogramm 206, ein Makro
verarbeitungsprogramm 228 und ein Task-Zuteiler 208
Ausführungsprogramme zum Verwalten einer Gruppe von Tasks.
Das Anfangsverarbeitungsprogramm 202 ist ein Programm zum
Durchführen von Vorverarbeitungen zum Betreiben eines
Mikrocomputers. Beispielsweise löscht es den gespeicherten
Inhalt des RAM 106 und setzt die Anfangswerte der Register
der Eingabe/Ausgabeschaltung 108. Weiter führt es Verarbeitungen
zum Laden von Eingangsinformation zur Durchführung
von Vorverarbeitungen durch, die für die Brennkraft
maschinensteuerung notwendig sind, beispielsweise die
Daten der Kühlwassertemperatur T w oder die Batteriespannung.
Das Unterbrechungsverarbeitungsprogramm 206 nimmt
verschiedene Unterbrechungen an, analysiert die Unterbrechungs
faktoren und gibt dem Task-Zuteiler 208 eine
Startanforderung zum Auslösen eines erforderlichen Tasks
aus der Gruppe von Tasks 210, 212, 214, 216, 218, 220,
22, 224, 226. Wie weiter unten erläutert ist, enthalten
die Unterbrechungsfaktoren eine A/D-Umsetzungsunterbrechung
(ADC), die die Eingangsinformation der Versorgungsspannung
oder die Kühlwassertemperatur nach Vollenden der
A/D-Umsetzungen erzeugt, eine Anfangsunterbrechung (INTL),
die synchron zur Drehung der Brennkraftmaschine erzeugt
wird, eine Intervallunterbrechung (INTV), die jede vorgegebene
konstante Zeit erzeugt wird, beispielsweise alle 10 ms,
eine Stillstandsunterbrechung (ENST), die bei der Erfassung
des Stillstands der Brennkraftmaschine erzeugt
wird, usw.
Den jeweiligen Tasks der Gruppen von Tasks 210, 212, 214,
216, 218, 220, 222, 224, 226 sind Tasknummern zugeordnet,
die Prioritätsniveaus entsprechen, wobei sie einem der
Taskniveaus 0-2 zugehören. Im einzelnen gehören die Tasks
0, 1 und 2 dem Taskniveau 0 an, die Tasks 3, 4 und 5 dem
Taskniveau 1 und die Tasks 6, 7 und 8 dem Taskniveau 2.
Das Taskniveau 0 entspricht dabei dem höchsten Prioritätsgrad.
Der Task-Zuteiler 208 empfängt die Startanforderung der
verschiedenen Unterbrechungen und teilt die Besetzungszeiten
der CPU entsprechend diesen Startanforderungen auf
der Basis der Prioritätsniveaus der verschiedenen Tasks
zu.
Die Prioritätssteuerung der Tasks mittels des Task-Zuteilers
208 geschieht nach folgenden Kriterien:
- (a) Die Übertragung der Laufberechtigung zu einem Task mit höherem Prioritätsgrad durch Unterbrechen eines Tasks mit niedrigerem Prioritätsgrad wird lediglich zwischen den Taskniveaus durchgeführt.
- (b) Wenn innerhalb ein und derselben Taskniveaus ein Task läuft oder unterbrochen worden ist, hat dieser bestimmte Task den höchsten Prioritätsgrad, und kein anderer Task kann abgearbeitet werden, bis dieser bestimmte Task beendet ist.
- (c) Wenn innerhalb ein und derselben Taskniveaus Start forderungen für mehrere Tasks vorliegen, besitzt die niedrigere Tasknummer den höheren Prioritätsgrad.
Das System ist so ausgelegt, daß es die obige Prioritäts
steuerung so durchführt, daß Softtimer im RAM taskweise
vorgesehen sein können, während Steuerblöcke zum Verwalten
der Tasks im RAM taskniveauweise gesetzt werden. Wenn der
Lauf eines Tasks beendet ist, wird das Laufende des betreffenden
Tasks durch das Makroverarbeitungsprogramm an
den Task-Zuteiler 208 weitergegeben.
Die Verarbeitungsinhalte des Task-Zuteilers 208 werden nun
mit Bezug auf die Fig. 6-12 näher erläutert. Fig. 6 zeigt
die Tasksteuerblöcke, die im RAM enthalten sind, den der
Task-Zuteiler 208 verwaltet. Die Tasksteuerblöcke sind in
der Anzahl der Taskniveaus vorgesehen, und zwar hier drei
entsprechend den Taskniveaus 0, 1 und 2. Acht Bit sind
jedem Steuerblock zugeordnet. Davon sind die Bits 0 bis 2
(Q₀ bis Q₂) Startbits, die einen Startanforderungstask anzeigen,
und das Bit 7 (R) ein Laufbit, das anzeigt, wenn
irgendein Task innerhalb des gleichen Taskniveaus läuft
oder unterbrochen worden ist. Die Startbits Q₀ bis Q₂ sind
in einer Sequenz angeordnet, in der der Laufprioritätsgrad
in dem entsprechenden Taskniveau höher ist. Beispielsweise
ist das Startbit für Task 4 in Fig. 5 Q₀ mit dem Taskniveau
1. Wenn die Startanforderungen der Tasks durchgeführt
worden sind, werden in jedem der Startbits Markierungen
gesetzt. Andererseits gewinnt der Task-Zuteiler 208
die abgegebenen Startinformationen aufeinanderfolgend wieder
von dem Startbit, das dem Task höheren Taskniveaus
entspricht, setzt die den abgegebenen Startanforderungen
entsprechenden Markierungen rück und setzt auch Markierungen
"1" am Laufbit und führt Verarbeitungen zum Starten
der betreffenden Tasks durch.
Gemäß Fig. 7, die eine Startadreßtafel im RAM 106 zeigt,
die durch den Task-Zuteiler 208 verwaltet wird, entsprechen
die Startadressen SA 0 bis SA 8 den entsprechenden
Tasks 0 bis 8 in der Gruppe der Tasks 210, 212, 214, 216,
218, 220, 222, 224, 226 gemäß Fig. 5. 16 Bit sind jeder
Startadreßinformation zugeordnet. Diese Startadreßinformation
wird zum Starten der Tasks verwendet, für die die
Startanforderungen durch den Task-Zuteiler 208 durchgeführt
worden sind.
Gemäß den Fig. 8 und 9 wird, wenn die Verarbeitung des
Task-Zuteilers 208 in einem Schritt 300 gestartet worden
ist, in einem Schritt 302 entschieden, ob die Durchführung
eines Tasks, der dem Taskniveau l zugeordnet ist, unterbrochen
ist. Im einzelnen bedeutet das Setzen einer "1" im
Laufbit einen Zustand, bei dem der Taskende-Bericht noch
nicht durch das Makroverarbeitungsprogramm 228 zum Task-
Zuteiler 208 abgegeben worden ist und bei dem der gerade
durchgeführte Task wegen des Auftretens einer Unterbrechung
höherer Priorität unterbrochen worden ist. Folglich
springt, wenn die Markierung "1" im Laufbit auftritt, der
Signalfluß zum Schritt 314 zum Wiederbeginn des unterbrochenen
Tasks.
Wenn im Gegensatz dazu die Markierung "1" im Laufbit nicht
gesetzt ist, d. h., wenn die den Lauf anzeigende Markierung
rückgesetzt ist, geht der Verarbeitungsfluß weiter zu
Schritt 304 zur Entscheidung, ob ein Startwarteschlangentask
auf dem Niveau l vorliegt. Das heißt, die Startbits
des Niveaus l werden in der Reihenfolge höheren Lauf
prioritätsgrades der entsprechenden Tasks wiedergewonnen,
nämlich in der Folge Q₀, Q₁, Q₂. Wenn die Markierung "1"
in den Startbits nicht gesetzt ist, die dem Taskniveau 1
zugeordnet sind, geht der Verarbeitungsfluß weiter zu
Schritt 306 zur Wiedererneuerung des Taskniveaus. Das
heißt, das Taskniveau l wird um +1 zu l+1 inkrementiert.
Wenn die Wiedererneuerung des Taskniveaus im Schritt 306
durchgeführt worden ist, geht der Verarbeitungsfluß weiter
zu Schritt 308 zur Entscheidung, ob alle Taskniveaus geprüft
worden sind oder nicht. Für den Fall, daß noch nicht
alle Taskpegel geprüft worden sind, d. h., l=2 noch nicht
gespeichert wird, geht der Verarbeitungsfluß zum Schritt
302 zurück, und die Verarbeitungen werden mittels der
obigen Prozedur in ähnlicher Weise durchgeführt. Wenn alle
Taskpegel in Schritt 308 geprüft worden sind, geht der
Verarbeitungsfluß zu Schritt 310 weiter zur Aufhebung der
Unterbrechung. Die Aufhebung der Unterbrechung wird in
diesem Schritt durchgeführt, weil die Unterbrechung während
der Verarbeitungsperiode der Schritte 302, 304, 306,
308 gesperrt ist. Im nächsten Schritt 312 wird die nächst
folgende Unterbrechung in der Warteschlange angeordnet.
Wenn ein Startwarteschlangentask im Taskniveau l in
Schritt 304 vorliegt, d. h., wenn die Markierung "1" im
Startbit, das dem Taskniveau l zugeordnet ist, vorliegt,
geht der Verarbeitungsfluß zu einem Schritt 400 (Fig. 9)
weiter. Mittels einer Schleife von Schritten 400 und 402
wird wiedergewonnen, an welchen Startbits des Taskniveaus
l die Markierung "1" vorliegt, und zwar in der Reihenfolge
höherer Priorität, d. h. in der Abfolge Q₀, Q₁ und Q₂. Wenn
das betreffende Startbit gefunden worden ist, geht der
Verarbeitungsfluß zu Schritt 404 weiter, in dem das
Startbit, bei dem die Markierung gesetzt ist, rückgesetzt
und die Markierung "1" im Laufbit (R-Bit) des betreffenden
Taskniveaus l gesetzt wird. Weiter wird in einem Schritt
406 die Starttasknummer abgeleitet und in einem Schritt
408 die Startadreßinformation des entsprechenden
Starttasks mittels einer Startadreßtafel, die im RAM wie
gemäß Fig. 7 vorgesehen ist, abgerufen.
Anschließend wird in einem Schritt 410 entschieden, ob der
entsprechende Starttask durchgeführt wird oder nicht. Wenn
die abgerufene Startadreßinformation ein bestimmter Wert
ist, beispielsweise Null, wird entschieden, daß der entsprechende
Task nicht durchgeführt werden muß. Dieser Entscheidungsschritt
ist notwendig, um lediglich bestimmte,
von der Fahrzeugart abhängige Tasks selektiv zur Brenn
kraftmaschinensteuerung heranzuziehen. Wenn in Schritt 410
entschieden worden ist, daß der Lauf des entsprechenden
Tasks anzuhalten ist, geht der Verarbeitungsfluß zu einem
Schritt 414 weiter zum Rücksetzen des R-Bits des betreffenden
Taskniveaus l. Danach geht der Verarbeitungsfluß zu
Schritt 302 zurück, wo entschieden wird, ob das Taskniveau
l unterbrochen ist oder nicht. Da der Fall auftreten kann,
daß Markierungen an mehreren Startbits innerhalb des gleichen
Taskniveaus gesetzt worden sind, geht der Verarbeitungsfluß
nach dem Rücksetzen des R-Bits in Schritt
414 zu Schritt 302 zurück.
Im Gegensatz dazu geht, wenn in Schritt 410 der Lauf des
jeweiligen Tasks nicht anzuhalten, sondern der Task durchzuführen
ist, der Verarbeitungsfluß zu einem Schritt 412
weiter und springt zum bestimmten Task, der daraufhin
durchgeführt wird.
Gemäß Fig. 10 besteht das Makroverarbeitungsprogramm 228
aus Schritten 562 und 564 zum Auffinden des Endtasks. In
den Schritten 562 und 564 werden die Taskniveaus von "0"
wiedergewonnen, und das beendete Taskniveau wird ermittelt.
Danach geht der Verarbeitungsfluß zu einem Schritt
568 weiter, in dem die durchgeführte Markierung (RUN) des
siebten Bits des Taststeuerblocks des beendeten Tasks
rückgesetzt wird. Damit ist der Lauf des Tasks vollständig
beendet. Der Verarbeitungsfluß kehrt wieder zum Task-Zuteiler
208 zurück, und es wird entschieden, welcher Task
als nächster durchzuführen ist.
Das Auftreten des Laufes und der Unterbrechung der Tasks,
wenn die Taskprioritätssteuerung durch den Task-Zuteiler
208 durchgeführt wird, wird nun mit Bezug auf Fig. 11 erläutert.
Hier bedeutet in der Startanforderung N mn m das
Taskniveau und n den Prioritätsgrad im Taskniveau m. Es
sei angenommen, daß die CPU ein Ausführungsprogramm OS
durchgeführt hat. Dann wird, wenn eine Startanforderung
N₂₁ während des Laufs des Ausführungsprogramms OS
aufgetreten ist, der Lauf eines Tasks, der der
Startanforderung N₂₁ entspricht, oder der Task 6 zu einem
Zeitpunkt T₁ gestartet. Wenn während des Laufs des Tasks 6
eine Startanforderung N₀₁ für einen Task höherer Priorität
zu einem Zeitpunkt T₂ aufgetreten ist, geht der Lauf zum
Ausführungsprogramm OS über, und die bereits vorgegebenen
Verarbeitungen werden durchgeführt, woraufhin der Lauf
eines der Startanforderung N₀₁ entsprechenden Tasks oder
der Task 0 zu einem Zeitpunkt T₃ gestartet wird. Wenn
ferner während des Laufs des Tasks 0 eine Startanforderung
N₁₁ zu einem Zeitpunkt T₄ eintritt, geht der Lauf einmal
zum Ausführungsprogramm OS über, und die vorgegebenen
Verarbeitungen werden durchgeführt, woraufhin der Lauf des
Tasks 0, der unterbrochen wurde, zu einem Zeitpunkt T₅
wieder gestartet wird. Wenn der Lauf des Tasks 0 zu einem
Zeitpunkt T₆ beendet ist, geht der Lauf wieder zum
Ausführungsprogramm OS über. Hier wird das Laufende des
Tasks 0 durch das Makroverarbeitungsprogramm 228 dem
Task-Zuteiler 208 gemeldet. Zu einem Zeitpunkt T₇ wird der
Lauf des Tasks 3, der einer Startanforderung N₁₁
entspricht, die in die Warteschlange gegeben worden ist,
von neuem gestartet. Wenn während des Laufs des Tasks 3
eine Startanforderung N₁₂ niedrigerer Priorität im
gleichen Taskniveau 1 zu einem Zeitpunkt T₈ eingegeben
ist, wird der Lauf des Tasks 3 einmal unterbrochen. Der
Lauf geht zum Ausführungsprogramm OS über, und die
vorgegebenen Verarbeitungen werden durchgeführt, woraufhin
der Lauf des Tasks 3 zu einem Zeitpunkt T₉ wieder
gestartet wird. Wenn die Abarbeitung des Tasks 3 zu einem
Zeitpunkt T₁₀ beendet ist, geht die CPU zum Ausführungs
programm OS über, und der Laufbericht des Tasks 3 wird
durch das Makroverarbeitungsprogramm 228 zu dem Task-Zuteiler
208 gegeben. Anschließend wird der Lauf des Tasks
4, der einer Startanforderung N₁₂ niedrigerer Priorität
entspricht, zu einem Zeitpunkt T₁₁ gestartet. Wenn die Abarbeitung
des Tasks 4 zu einem Zeitpunkt T₁₂ beendet ist,
geht der Lauf zum Ausführungsprogramm OS über zur Durchführung
der vorgegebenen Verarbeitungen, woraufhin der
Lauf des Tasks 6, der bis dahin unterbrochen war und der
Startanforderung N₂₁ entspricht, zu einem Zeitpunkt T₁₃
wieder gestartet wird.
Auf die obige Weise wird die Prioritätssteuerung der Tasks
durchgeführt.
Die Übergangszustände der Prioritätssteuerung der Tasks
sind in Fig. 12 wiedergegeben. Eine Art "Leerlauf"-Zustand
ist der Startwarteschlangenzustand, in dem noch keine
Startanforderung für eine Task abgegeben worden ist. Wenn
danach eine Startanforderung abgegeben wird, wird eine
Markierung im Startbit des Tasksteuerblocks gesetzt zur
Anzeige, daß der Start notwendig ist. Die Zeitperioden, in
denen der "Leerlauf"-Zustand in einen "Warteschlangen"-Zustand
übergeht, werden nach dem Taskniveau der jeweiligen
Tasks bestimmt. Ferner wird die Reihenfolgeentscheidung im
"Warteschlangen"-Zustand durchgeführt, die vom Prioritätsgrad
abhängt. Der jeweilige Task kommt in den "Lauf"-Zustand,
nachdem die Markierung des Startbits des
Tasksteuerblocks durch den Task-Zuteiler 208 im Ausführungs
programm OS rückgesetzt und die Markierung im R-Bit
(dem siebten Bit) gesetzt worden ist. Auf diese Weise wird
die Durchführung des Tasks ausgelöst. Wenn der Lauf beendet
ist, wird die Markierung des R-Bits des Task-Steuerblocks
gelöscht und die Endmeldung beendet. Dann endet der
"Lauf"-Zustand, und der "Leerlauf"-Zustand beginnt von
neuem, wobei auf die Abgabe der nächsten Startanforderung
gewartet wird. Wenn jedoch eine Unterbrechung IRQ während
des Laufs der Tasks aufgetreten ist, muß der jeweilige
Task unterbrochen werden. Daher wird der Lauf unterbrochen.
Dieser Zustand ist ein "Bereit"-Zustand. Wenn ein
Zustand, in dem der Task von neuem durchgeführt wird, anschließend
begonnen wird, wird der Inhalt, der überbrückt
worden ist, vom Überbrückungsbereich zur CPU rückgeführt,
und der Lauf wird wieder gestartet. Das heißt, das System
kehrt vom "Bereit"-Zustand wieder in den "Lauf"-Zustand
zurück. Auf diese Weise wiederholt jedes Niveauprogramm
die vier Zustände in Fig. 12. Fig. 12 zeigt typische
Verarbeitungsflüsse, jedoch besteht die Möglichkeit, daß
eine Markierung im Startbit des Tasksteuerblocks im
"Bereit"-Zustand gesetzt wird. Dies entspricht
beispielsweise dem Fall, daß eine zeitliche Plazierung der
Startanforderung in Nachbarschaft zum betreffenden Task im
Lauf der Startunterbrechung erreicht worden ist. Zu diesem
Zeitpunkt wird der Markierung des R-Bits Priorität
gegeben, und der Task, der unterbrochen worden war, wird
zuerst beendet. Somit verschwindet die Markierung des
R-Bits, und der "Warteschlangen"-Zustand wird durch die
Markierung des Startbits ohne Übergang zum "Leerlauf"-
Zustand erreicht.
Gemäß Fig. 13 besteht das Ausführungsprogramm 600 (OS) aus
dem Anfangsverarbeitungsprogramm 202, dem Unterbrechungs
verarbeitungsprogramm 206 und dem Makroverarbeitungsprogramm
228 in Verbindung mit dem Task-Zuteiler 208.
Das Unterbrechungsverarbeitungsprogramm 206 besteht aus
verschiedenen Unterbrechungsverarbeitungsprogrammen. Das
Anfangsunterbrechungsprogramm (INTL) 602 ist derart, daß
der halben Zahl der Zylinder der Brennkraftmaschine entsprechende
Anfangsunterbrechungen, d. h., zwei bei vier
Zylindern, pro Umdrehung der Brennkraftmaschine stattfinden
und zwar mittels Anfangsunterbrechungssignalen, die
synchron zur Drehung erzeugt werden. Durch die Anfangsunterbrechung
wird die Kraftstoffeinspritzung, die im EGI-Task
612 berechnet wird, in das EGI-Register der Eingabe/
Ausgabeschaltung 108 gesetzt. Das A/D-Umsetzungsunterbrechungs
programm 604 umnfaßt zwei Arten, nämlich Unterbrechung
des A/D-Umsetzers 1 (ADC 1) und die Unterbrechung des
A/D-Umsetzers 2 (ADC 2). Der A/D-Umsetzer 1 besitzt eine
Genauigkeit von 8 Bit und wird für die Eingangssignale bezüglich
der Versorgungsspannung, der Kühlwassertemperatur,
der Ansauglufttemperatur und der Serviceeinstellung verwendet.
Er beginnt die Umsetzung zur gleichen Zeit, zu der
der Eingangspunkt der Multiplexers 120 bestimmt wird, und
erzeugt die ADC 1-Unterbrechung nach Beendigung der Umsetzung.
Diese Unterbrechung wird nur vor dem Starten der
Brennkraftmaschine verwendet. Andererseits wird der A/D-Wandler
128 für die Eingabe des Luftdurchsatzes verwendet
und erzeugt die ADC 2-Unterbrechung nach Beenden der Umsetzung.
Diese Unterbrechung wird ebenfalls nur vor dem
Starten verwendet.
In einem Intervallunterbrechungsverarbeitungsprogramm
(INTV-Unterbrechungsprogramm 606) wird ein INTV-Unterbrechungssignal
bei jedem Impuls erzeugt, der im INTV-Register
gespeichert ist, beispielsweise alle 10 ms, und als
Grundsignal zur Zeitüberwachung eines Tasks verwendet, der
zu einem festen Zeitpunkt zu starten ist. Mit diesem Unterbrechungssignal
wird der Softtimer erneuert und ein
Task, der den vorgegebenen Zeitpunkt erreicht hat, gestartet.
Weiter wird bei einem Stillstands-Unterbrechungsverarbeitungsprogramm
(ENST-Unterbrechungsprogramm) der Stillstand
der Brennkraftmaschine erfaßt. Bei Erfassen des
INTL-Unterbrechungssignals wird das Zählen gestartet. Wenn
anschließend das INTL-Unterbrechungssignal nicht innerhalb
einer vorgegebenen Zeit, beispielsweise einer Sekunde, erfaßt
wird, wird entsprechend der Stillstand der Brennkraftmaschine
mittels der zugeordneten Software erfaßt.
Wenn Stillstand entschieden wird, werden die Versorgung
der Zündspule und der Betrieb der Kraftstoffpumpe abgeschaltet.
Nach diesen Verarbeitungen ist die Steuerung im
Wartezustand, bis der Starterschalter 152 eingeschaltet
wird. Ferner wird in Schritt 608 ein QA-Unterbrechungsprogramm
durchgeführt, das der Erfassung des Ausgangssignals
des Luftmengenmessers dient.
Der Plan der Verarbeitungen für die obigen Unterbrechungsfaktoren
ist in der Tabelle 1 dargestellt.
Unterbrechungs-Plan der Verarbeitung faktor
Unterbrechungs-Plan der Verarbeitung faktor
INTL1. Die Kraftstoffeinspritzzeit wird
in das EGI-Register gesetzt
2. Das Auftreten wird als Zeitsteuerung zum Start der Erfassung des Ausgangssignals vom Luftmengenmesser verwendet. ADC 1Task ADIN1 wird gestartet. ADC 2Task ADIN2 wird gestartet. INTVDie Startperioden der Tasks ADIN2, EGI, MONIT, ADIN1, AFSIA und ISC, die in festen Zeitperioden zu starten sind, werden geprüft, und die Tasks, die die vorgeschriebenen Zeitperioden erreicht haben, werden gestartet. QADiese Unterbrechung bezeichnet die Zeitsteuerung zur Erfassung des Aus gangssignals des Luftmengenmessers. Das Ausgangssignal von AD2 wird abgerufen.
2. Das Auftreten wird als Zeitsteuerung zum Start der Erfassung des Ausgangssignals vom Luftmengenmesser verwendet. ADC 1Task ADIN1 wird gestartet. ADC 2Task ADIN2 wird gestartet. INTVDie Startperioden der Tasks ADIN2, EGI, MONIT, ADIN1, AFSIA und ISC, die in festen Zeitperioden zu starten sind, werden geprüft, und die Tasks, die die vorgeschriebenen Zeitperioden erreicht haben, werden gestartet. QADiese Unterbrechung bezeichnet die Zeitsteuerung zur Erfassung des Aus gangssignals des Luftmengenmessers. Das Ausgangssignal von AD2 wird abgerufen.
Beim Anfangsverarbeitungsprogramm 202 und beim Makroverarbeitungs
programm 228 werden die bereits erläuterten Verarbeitungen
durchgeführt.
Die Tasks, die durch die verschiedenen Unterbrechungen gestartet
werden, sind folgende. Die dem Taskniveau 0 entsprechenden
Tasks sind ein AD2-Eingabetask 610 (ADIN2-
Task), ein Kraftstoffeinspritzsteuer-Task 612 (EGI-Task)
und ein Starterschalter-Überwachungs-Task 614 (MONIT-Task).
Die dem Taskniveau 1 zugeordneten Tasks sind ein
AD1-Task 616 (ADIN1-Task) und ein Zeitkoeffizientenverarbeitungs-
Task 618 (AFSIA-Task). Weiter sind die dem
Taskniveau 2 zugehörigen Tasks ein Leerlaufdrehzahlsteuer-
Task 620 (ISC-Task), ein Änderungsberechnungs-Task
622 (HOSEI-Task) und ein Startvorverarbeitungs-Task 624
(ISTRT-Task).
Die Zuordnung der verschiedenen Taskniveaus und die Funktionen
der Tasks sind in Tabelle 2 aufgelistet.
Die Startperiode der durch die verschiedenen Unterbrechungen
zu startenden Tasks werden vorher bestimmt. Diese
Information wird im ROM 102 gespeichert gehalten.
Die INTV-Unterbrechungsverarbeitung wird nun mit Bezug auf
die Fig. 14-16 erläutert. Fig. 14 zeigt eine Softtimertabelle,
die im RAM 106 vorgesehen ist. Sie ist mit Zeitgeberblöcken
in einer Anzahl versehen, die gleich den verschiedenen
Zeitperioden ist, die durch die verschiedenen
Unterbrechungen zu starten sind. Die Zeitgeberblöcke bezeichnen
Speicherbereiche, zu denen Zeitinformationen bezüglich
der Startperioden der im ROM 104 gespeicherten
Tasks übertragen werden. TMB bezeichnet die erste Adresse
im RAM 106. Die Zeitinformation bezüglich der Startperiode
(in dem Fall, in dem die INTV-Unterbrechung bei jeder
Periode von beispielsweise 10 ms durchgeführt wird) wird
bei dem Start der Brennkraftmaschine vom ROM 104 zu jedem
Zeitgeberblock übertragen und dort gespeichert.
Fig. 15 zeigt ein Flußdiagramm des INTV-Unterbrechungsprogramms
606. Wenn das Programm in Schritt 626 gestartet
wird, wird der Softtimer, der im RAM 106 vorgesehen ist,
in Schritt 628 initialisiert. Das heißt, der Inhalt i des
Indexregisters wird zu Null gemacht, und die im Zeitgeberblock
der Adresse TMB+0 des Softtimers gespeicherte verbleibende
Zeit T i wird geprüft. In diesem Fall gilt T i =T₀.
Anschließend wird in einem Schritt 630 entschieden, ob
der in Schritt 628 geprüfte Softtimer angehalten ist oder
nicht. Im einzelnen wird, wenn die gespeicherte verbleibende
Zeit Ti=0 ist, entschieden, daß der Softtimer angehalten
ist und daß der bestimmte, vom Softtimer zu startende
Task angehalten worden ist, und der Verarbeitungsfluß
springt zu Schritt 640 zum Erneuern des Softtimers.
Im Gegensatz dazu geht, wenn die verbleibende Zeit T i
(Restzeit) des Softtimers T i ≠0 ist, der Verarbeitungsfluß
zu einem Schritt 632 weiter, in dem die verbleibende
Zeit des Zeitgeberblocks erneuert wird. Die verbleibende
Zeit wird von T i um -1 dekrementiert, also zurückgezählt.
Anschließend wird in einem Schritt 634 entschieden, ob der
Softtimer der Zeitgebertabelle die Startperiode erreicht
hat. Insbesondere wird dann, wenn die verbleibende Zeit T i =0
ist, entschieden, daß die Startperiode erreicht ist,
und der Verarbeitungsfluß geht in diesem Fall zu einem
Schritt 636 weiter. Andererseits springt dann, wenn entschieden
worden ist, daß der Softtimer die Startperiode
nicht erreicht hat, der Verarbeitungsfluß weiter zu
Schritt 640 zum Erneuern der Softtimertabelle. Wenn die
Softtimertabelle die Startperiode erreicht hat, wird die
verbleibende Zeit T i in Schritt 636 initialisiert. Das
heißt, die Zeitinformation der Startperiode des betreffenden
Tasks wird vom ROM 102 zum RAM 106 übertragen. Nachdem
die verbleibende Zeit T i der Softtimertabelle in Schritt
636 initialisiert worden ist, wird die Startanforderung
für den Task, der der Softtimertabelle entspricht, in
Schritt 636 gebildet. Anschließend wird in Schritt 640 die
Softtimertabelle erneuert. Das heißt, der Inhalt des
Indexregisters wird um +1 inkrementiert, also vorwärtsgezählt.
Weiter wird in einem Schritt 642 entschieden, ob
alle Softtimertabellen geprüft worden sind oder nicht. Da
N+1 Softtimertabellen bei dem vorliegenden Ausführungsbeispiel
gemäß Fig. 14 vorgesehen sind, wird die Prüfung
aller Softtimertabellen als beendet entschieden, wenn der
Inhalt i des Indexregisters i=N+1 ist. In diesem Fall
endet das INTV-Unterbrechungsprogramm 606 in Schritt 644.
Im Gegensatz dazu kehrt dann, wenn in Schritt 642 entschieden
worden ist, daß sämtliche Softtimertabellen noch
nicht geprüft worden sind, der Verarbeitungsfluß zu
Schritt 630 zurück, und die vorstehend erläuterten gleichen
Verarbeitungen werden durchgeführt.
In dieser Weise wird die Startanforderung für den betreffenden
Task abhängig von den verschiedenen Unterbrechungen
abgegeben und erfolgt die Abarbeitung des Tasks auf der
Grundlage der Anforderung. Jedoch werden nicht alle in
Tabelle 2 aufgelisteten Tasks stets durchgeführt. Auf der
Grundlage der Betriebsinformation der Brennkraftmaschine
wird die Zeitinformation bezüglich der Startperiode eines
der Tasks, die im ROM 102 vorgesehen sind, gewählt, zu der
Softtimertabelle des RAM 106 übertragen und dort gespeichert.
Wenn beispielsweise angenommen wird, daß die Startperiode
des gegebenen Tasks 20 ms beträgt, wird der Task
jedesmal gestartet. Wenn der Start des Tasks kontinuierlich
abhängig von den Betriebsbedingungen durchgeführt
werden muß, wird die dem bestimmten Task entsprechende
Softtimertabelle erneuert und zu allen Zeiten bzw. Zeitpunkten
initialisiert.
Im folgenden wird der Fall, daß die Gruppe der Tasks gestartet
und durch die verschiedenen Unterbrechungen abhängig
von den Betriebsbedingungen der Brennkraftmaschine
angehalten worden ist, unter Bezug auf das Signaldiagramm
gemäß Fig. 16 näher erläutert. Wenn durch Betätigen des
Starterschalters 152 die Stromversorgung eingeschaltet
wird, arbeitet die CPU 104, und "1" wird bei einer Software-
Markierung IST und einer Software-Markierung EM gesetzt.
Die Software-Markierung IST ist eine Markierung,
die anzeigt, daß die Brennkraftmaschine in einem Zustand
vor dem Start ist, während die Software-Markierung EM zum
Sperren der ENST-Unterbrechung dient. Aus der Stellung
dieser beiden Markierungen ist es möglich zu bestimmen, ob
die Maschine zum Start bereit ist, gestartet wird oder gestartet
ist. Wenn der Einschaltzustand der Stromversorgung
durch Betätigen des Starterschalters 152 erreicht ist,
wird zunächst der Task ADIN1 als erster von allen gestartet,
und zum Starten der Brennkraftmaschine notwendige
Daten, beispielsweise Eingangsinformationen, wie die Kühl
wassertemperatur oder die Batteriespannung, werden dem
A/D-Wandler 122 über den Multiplexer 120 mittels der verschiedenen
Fühler zugeführt. Der Task HOSEI wird bei jedem
Zyklus der Eingangssignale dieser Daten gestartet, wobei
eine Änderungs- bzw. Verbesserungsberechnung auf der
Grundlage der Eingangsinformation durchgeführt wird. Bei
jedem Zyklus von Eingangssignalen von Daten von den verschiedenen
Fühlern zum A/D-Wandler 122 durch den Task
ADIN1 wird der Task ISTRT zur Berechnung der Kraftstoff
einspritzmenge gestartet, die während des Startens der
Brennkraftmaschine notwendig ist. Die obigen drei Tasks,
d. h., die Tasks ADIN1, HOSEI und ISTRT, werden durch das
Anfangsverarbeitungsprogramm 202 gestartet.
Wenn der Starterschalter 152 eingeschaltet ist, erfolgen
Starts für drei Tasks, nämlich die Tasks ADIN1, MONIT und
ADIN2 durch Setzen der Q-Markierungen, die durch den Task
ISTRT erzeugt werden. Die Tasks ADIN1 und MONIT müssen nur
während der Zeitperiode laufen, während der der Starterschalter
152 im Einschaltzustand ist, d. h. während des Anlassens
der Brennkraftmaschine. In dieser Zeitperiode wird
vom ROM 102 die Zeitinformation der vorgegebenen Startperioden
zu den Softtimertabellen im RAM 106 übertragen
und dort gespeichert. Ferner wird die verbleibende Zeit Ti
der Startperiode der Softtimertabelle initialisiert und
wird die Startperiode wiederholt gesetzt. Der Task MONIT
ist ein Task zur Berechnung der Kraftstoffeinspritzmenge
beim Start und ist daher nicht mehr erforderlich, nachdem
die Brennkraftmaschine gestartet ist. Daher wird, wenn der
Lauf des Task in einer vorgegebenen Anzahl beendet worden
ist, der Start des Softtimers angehalten, und das am
Task-Ende erzeugte Anhaltesignal wird zum Starten der
Gruppe der anderen Tasks verwendet, die nach dem Starten
der Brennkraftmaschine erforderlich sind. Das Anhalten des
Tasks wird durch den Softtimer derart erreicht, daß eine
"0" in die entsprechende Softtimertabelle des Tasks durch
ein Signal eingeschrieben wird, das das Ende des Tasks anzeigt,
d. h., daß der Inhalt des weichen Zeitgebers gelöscht
wird.
Das oben erläuterte Ausführungsbeispiel ist so ausgelegt,
daß das Starten und Anhalten der Tasks durch Softtimer
durchgeführt wird, wodurch eine wirksame und zuverlässige
Verwaltung von mehreren Tasks, die unterschiedliche Startperioden
besitzen, ermöglicht wird.
Die in Fig. 17 dargestellte Unterbrechungsgeneratorschaltung
(IRQ-Generatorschaltung) umfaßt ein Register 735,
einen Zähler 736, einen Vergleicher 737 und ein Flipflop
738, die zusammen eine Generatorschaltung für die Unter
brechungsanforderung (IRQ) das Programm (INTV-IRQ) bilden.
Die Erzeugungsperiode der INTV-IRQ, beispielsweise 10 ms
beim vorliegenden Ausführungsbeispiel, wird in das Register
735 gesetzt. Taktimpulse werden in den Zähler 736 gesetzt.
Wenn der Zählerstand des Zählers 736 mit dem Inhalt
des Registers 735 in Übereinstimmung gekommen ist, wird
das Flipflop 738 gesetzt. Der Zähler 736 wird durch den
Setzzustand gelöscht und beginnt von neuem zu zählen. Auf
diese Weise wird die INTV-IRQ nach jeder festen Zeit (10 ms)
erzeugt.
Die IRQ-Generatorschaltung enthält weiter ein Register
741, einen Zähler 742, einen Vergleicher 743 und ein Flipflop
744, die zusammen eine Generatorschaltung für die
Unterbrechungsanforderung QA-IRQ bilden, die das Zeitsteuersignal
erfaßt, das durch die Daten, die durch AD2
erzeugt sind, eingegeben wird. Das Register 741, der
Zähler 742 und der Vergleicher 743 sind den vorstehend erwähnten
gleich, und die Unterbrechungsanforderung QA-IRQ
wird erzeugt, wenn der Zähler des Zählers 742 den
Wert des Registers 741 erreicht hat. Die im Flipflop 738
erzeugte Unterbrechungsanforderung INTV-IRQ und die im
Flipflop 744 erzeugte Unterbrechungsanforderung QA-IRQ und
die im ADC 1 oder ADC 2 erzeugte Unterbrechungsanforderung
(IRQ) werden in Flipflops 740, 746, 764 bzw. 768 gesetzt.
Signale zum Erzeugen oder Sperren von IRQs werden in den
Flipflops 739, 745, 762 und 766 gesetzt. Wenn in den
Flipflops 739, 745, 762 und 766 "H" gesetzt ist, sind die
UND-Glieder 748, 750, 770 und 772 freigegeben. Wenn eine
Unterbrechungsanforderung IRQ erzeugt wird, wird sie von
einem ODER-Glied 751 abgegeben.
Folglich ist es, abhängig davon, ob "H" oder "L" in den
jeweiligen Flipflops 739, 745, 762 und 766 gesetzt ist,
möglich, die Erzeugung von IRQ zu sperren oder die Sperrung
zu lösen. Wenn IRQ erzeugt worden ist, ist der Grund
der Erzeugung von IRQ bekannt, daß der Inhalt der
Flipflops 740, 746, 764 und 768 in die CPU 104 eingegeben
wird.
Wenn die CPU 104 zur Durchführung des Programms abhängig
von IRQ gestartet ist, muß das IRQ-Signal gelöscht werden,
weshalb eines der Flipflops 740, 746, 764 und 768, je
nachdem welches IRQ den Lauf begonnen bzw. ausgelöst hat,
gelöscht wird.
Fig. 18 ist ein Flußdiagramm des INJ-Programms, das mit
einer Periode von 20 ms ausgelöst wird. In Schritt 800
wird der Digitalwert QA, der dem Ausgangssignal vom Luftmengenmesser
24 entspricht und während der Durchführung
des Tasks ADC2IN nach A/D-Umsetzung im RAM 106 gespeichert
ist, ausgelesen. In Schritt 802 wird der in Schritt 800
ausgelesene Istwert von QA mit QA-Werten verglichen, die
bei x n in einem Kraftstoff-Luft-Kennfeld (AF-Kennfeld) im
ROM 102 gespeichert sind, um so das n von x n entsprechend
dem Istwert von QA zu bestimmen. In Schritt 804 werden die
Drehzahldaten N, die im RAM 106 durch Durchführung des
Tasks ADC2IN gespeichert sind, ausgelesen. In Schritt 806
wird der ausgelesene Istwert von N mit den Werten von N
verglichen, die bei y n im AF-Kennfeld gespeichert sind, um
so n von y n entsprechend dem Istwert von N zu bestimmen.
In Schritt 808 wird eine Adresse des AF-Kennfelds bestimmt
auf der Grundlage von x n und y n , die in den Schritten 802
bzw. 806 bestimmt wurden. Die Kraftstoffzufuhrmenge, die
unter der vorgegebenen Adresse gespeichert ist, wird ausgelesen
und im Register INJD 134 gemäß Fig. 4 in einem
Schritt 810 eingespeichert.
Fig. 19 zeigt ein Flußdiagramm des Programms IGNCAL. In
Schritt 820 wird ein Digitalwert QA, der das Ausgangssignal
vom Luftmengenmesser wiedergibt und im RAM 106 durch
Durchführung des Programms ADC2IN gespeichert ist, ausgelesen.
In Schritt 822 wird der ausgelesene Istwert von QA
mit Werten von QA, die bei x n eines Zündzeitpunkt-Drehzahl-
Kennfeldes (ADV-Kennfelds), das im ROM 102 gespeichert
ist, verglichen zur Bestimmung des n von x n , das dem Istwert
von QA entspricht. In Schritt 824 werden die Drehzahldaten
N, die im RAM 106 durch die Durchführung des
Programms ADC2IN gespeichert sind, ausgelesen. In Schritt
826 wird der ausgelesene Istwert von N mit Werten von N,
die bei y n im ADV-Kennfeld gesetzt sind, verglichen zur
Bestimmung des n von y n , das dem Istwert von N entspricht.
In Schritt 828 wird eine Adresse im ADV-Kennfeld auf der
Grundlage von x n und y n bestimmt, die in den Schritten 822
bzw. 826 bestimmt worden sind. In Schritt 830 wird schließlich
der unter der bestimmten Adresse gespeicherte Zündzeitpunkt
ausgelesen und im Register ADV gemäß Fig. 4 gespeichert.
Das Programm HOSEI ist zur Ermittlung von Korrekturkoeffizienten,
beispielsweise für die Umgebungstemperatur und
Kühlwassertemperatur vorgesehen. Da diese Parameter lediglich
geringen Änderungen unterliegen, genügt es, die
Korrekturkoeffizienten mit einem langen Intervall zu bestimmen.
Fig. 20 zeigt das Programm ISC zum Steuern des Öffnungsgrades
des Luftbypassventils 62 im Leerlaufbetrieb der
Brennkraftmaschine.
Wenn durch Überwachen von DIO gemäß Fig. 4 in Schritt 850
entschieden wird, daß der Leerlaufschalter 148 eingeschaltet
ist, ist das erste Bit des Registers DOUT auf dem Pegel
"L", wodurch das Luftbypassventil 62 bezeichnet ist.
Daher wird das Luftbypassventil 62 abhängig von dem Wert
angesteuert, der im Register EGRD gemäß Fig. 4 vorliegt.
Das Luftbypassventil 62 wird unter besonderen Betriebsbedingungen
gesteuert. Insbesondere wird im Fall des Betriebs
bei niedriger Umgebungstemperatur, wie im Winter,
bei Kaltstart oder bei Betrieb unter großer Last aufgrund
der Verwendung eines Fahrzeugklimagerätes der Luftdurchsatz
durch den Bypass erhöht.
In Schritt 852 wird das Tastverhältnis des Luftbypassventils
62 abhängig von der Kühlwassertemperatur bestimmt und
in das Register EGRD gesetzt.
In Schritt 854 wird entschieden, ob der Leerlaufschalter
148 geschlossen ist oder nicht. Wenn der Schalter
geschlossen ist, wird die Auslöseanforderungsmarkierung
für das Programm ISC in einem Schritt 856 gesetzt. Das
heißt, das Bit "1" wird bei Q10 des Task-Steuerworts PCW10
des RAM gemäß Fig. 16 gesetzt. Simultan wird das erste Bit
des Registers DOUT von DIO 174 auf den Pegel "L" gesetzt.
Anschließend wird eine Endanzeige abgegeben.
Wenn andererseits der Leerlaufschalter 148 geöffnet ist,
wird die Endanzeige unmittelbar durchgeführt. Folglich
wird dieses Programm nicht mehr durchgeführt. Auf diese
Weise wird, wenn der Leerlaufschalter 148 bei Schritt 856
geschlossen ist, die Betätigungsanforderungsmarkierung für
das Programm ISC gesetzt, worauf dann die Endanzeige
durchgeführt wird.
Fig. 21 zeigt ein Flußdiagramm des Programms EGRCAL zur
Steuerung der Abgasrückführung. Wenn der Leerlaufschalter
148 in geöffnetem Zustand ist, wird das Luftbypassventil
62 nicht gesteuert, jedoch wird die Rückführung von Abgas
durchgeführt. Zu diesem Zweck wird das EGR-System zum
Steuern der Abgasrückführmenge angesteuert. Hierfür wird
das erste Bit im Register DOUT von DIO in Schritt 860 auf
den Pegel "H" gesetzt, wodurch das EGR-System gemäß Fig. 3
abhängig von dem im Register EGRD gemäß Fig. 4 gesetzten
Wert angesteuert wird. Anschließend wird die Abgasrückführmenge
berechnet. In Schritt 862 wird geprüft, ob die
Kühlwassertemperatur TW höher ist als ein vorgegebener
Wert TA (in °C). Wenn dies der Fall ist, wird die Abgas
rückführung unterdrückt oder unterbrochen. Zu diesem Zweck
wird in Schritt 866 Null im EGRD-Register gesetzt. Wenn
die Kühlwassertemperatur TW niedriger als der vorgegebene
Wert TA ist, geht das Programm zu Schritt 864 weiter, in
dem entschieden wird, ob die Temperatur TW des Kühlwassers
niedriger als ein vorgegebener Wert TB in °C ist. Gegebenenfalls
wird die Abgasrückführung gesperrt. Zu diesem
Zweck wird in Schritt 866 Null in das EGRD-Register gesetzt.
Die Temperatur TA in Schritt 862 gibt die obere
Grenze an, während die Temperatur TB in Schritt 864 die
untere Grenze angibt. Lediglich dann, wenn die Kühlwassertemperatur
TW im Bereich zwischen TA und TB liegt, kann
die Abgasrückführung durchgeführt werden. Das Programm
geht zu einem Schritt 868 weiter, in dem die Abgasrückführmenge
rechnerisch auf der Grundlage des Ansaugluftdurchsatzes
QA und der Drehzahl N aus einem Kennfeld bestimmt
wird, das im ROM 102 vorgesehen ist. Die ausgelesenen
Werte werden in das Register EGRD gesetzt. Auf
diese Weise wird das Abgasrückführventil abhängig von dem
im Register EGRD gesetzten Wert sowie dem Tastverhältnis,
das zuvor im Register EGRP gesetzt wurde, geöffnet und
entsprechend Abgas rückgeführt.
In Schritt 872 wird durch Überwachen von DIO entschieden,
ob der Leerlaufschalter 148 im geschlossenen Zustand ist.
Wenn der Leerlaufschalter geöffnet ist, wird die Betätigungs
anforderungsmarkierung für das Programm EGRCAL gesetzt.
Das heißt, das Bit "1" wird bei Q11 des
Task-Steuerworts TCW11 des RAM gesetzt. Weiter wird das
erste Bit des Registers DOUT von DIO auf den Pegel "H" gesetzt.
Im folgenden wird die erfindungsgemäße Verarbeitung des
Ausgangssignals von einem Hitzdraht-Luftmengenmesser unter
Bezug auf Fig. 22 beispielhaft näher erläutert.
Das vom Luftmengenmesser verfügbare Signal wird zunächst
abhängig von der INTL-Unterbrechung abgenommen. Die Zeitsteuerung
hierfür ist für jede von drei Betriebsarten 0, 1
und 2, die von der Drehzahl abhängig sind, verschieden. In
Fig. 22 sind diese drei Betriebsarten angegeben, wobei die
Betriebsart 0 einer Drehzahl N<1600 min-1, die Betriebsart
1 einer Drehzahl im Bereich 1600N3200 min-1 und
die Betriebsart 2 einer Drehzahl N<3200 min-1 ist, entsprechen,
wobei angenommen ist, daß die Brennkraftmaschine
eine Vierzylindermaschine ist und daher ein Kurbelwinkel
von 180° einem einzigen Saughub entspricht. Im Fall von
Fig. 22 entsprechen die Betriebsart 0 einer Drehzahl N=1600 min-1,
die Betriebsart 1 einer Drehzahl N=3200 min-1
und die Betriebsart 2 einer Drehzahl N=6400 min-1.
Folglich ist im Fall der dargestellten Betriebsart 1 der
Kurbelwinkel doppelt so groß wie der der Betriebsart 0 für
die gleiche Zeitdauer, während in der Betriebsart 2 der
Kurbelwinkel das Vierfache desjenigen der Betriebsart 0
und damit das Doppelte desjenigen der Betriebsart 1
beträgt.
Bei dem dargestellten Ausführungsbeispiel der Erfindung
werden fünf Abtastungen des Luftmengenmessersignals in der
Betriebsart 0 durchgeführt. Das heißt, die Abtastung wird
zu jedem Zeitintervall durchgeführt, das einem Kurbelwinkel
von 36° in dieser Betriebsart 0 entspricht.
In ähnlicher Weise wird im Fall der Betriebsart 1 die Abtastung
des Luftmengenmessersignals zu jedem Zeitpunkt
durchgeführt, der einem Kurbelwinkel von 72° entspricht,
da die Drehzahl N in dieser Betriebsart 1 doppelt so hoch
ist wie in der Betriebsart 0. Schließlich wird in der Betriebsart
2 die Abtastung zu jedem Zeitpunkt durchgeführt,
der einem Kurbelwinkel von 144° entspricht, da die Drehzahl
N in der Betriebsart 2 das Vierfache derjenigen in
der Betriebsart 0 ist. Unter diesen Bedingungen werden Daten
für den Luftdurchsatz in allen Betriebsarten 0, 1 und
2 bei identischer effektiver Winkelstellung der Kurbelwelle
erfaßt, da der Kurbelwinkel, der einem einzigen
Saughub der Maschine entspricht, für alle Betriebsarten
der gleiche bleibt.
Auf diese Weise ist durch Ändern der Zeitpunkte, an denen
die Luftdurchsatzdaten erfaßt werden, in Abhängigkeit von
der Drehzahl die zum Verarbeiten der Daten erforderliche
Zeit nicht drehzahlabhängig.
Fig. 23 zeigt ein Flußdiagramm zur Erläuterung der Verarbeitung
beim Abtasten des Ausgangssignals von einem Hitzdraht
Luftmengenmesser.
Gemäß Fig. 23 wird, wenn eine entsprechende Unterbrechungs
anforderung abgegeben wird, die Ausführung zum Eingangsschritt
204 gemäß den Fig. 5 und 13 übertragen, wobei
in Schritt 902 gemäß Fig. 23 entschieden wird, ob die
Unterbrechungsanforderung die INTL-Unterbrechung betrifft
oder nicht. Wenn dies zutrifft, wird in Schritt 904
geprüft, ob ein Analogzähler, der zum Verwalten der Abtastungen
des Signals vorgesehen ist, das den momentanen
Luftdurchsatz wiedergibt, auf 0 gesetzt ist oder nicht.
Der Analogzähler ist als Software ausgebildet und in der
Adresse AAB 3 im RAM 106 wie gemäß Fig. 24 vorgesehen. Der
im Analogzähler enthaltene Wert gibt einen der Abtastpunkte
1-5 gemäß Fig. 22 wieder, bei dem die Abtastung
durchgeführt worden ist. Wenn der Inhalt des Analogzählers
0 ist, wird der A/D-Wandler 128 (Fig. 4) in Schritt 906
ausgelöst, wodurch die Abtastung des Luftdurchsatzes v₁
ausgelöst wird, die in Schritt 906 stattfindet. In Schritt
908 wird die Drehzahl N aus dem RAM 106 bei der Adresse
AAA 1 ausgelesen. Die Anordnung des RAM 106 ist ausführlich
in Fig. 24 wiedergegeben. In Schritt 910 wird die dreh
zahlabhängige Betriebsart bestimmt. Zu diesem Zweck wird
in die Adresse AAB 4 des RAM 106 (Fig. 24) 0 gesetzt, woran
sich ein Vergleich der Drehzahl N mit einem Wert 1600, der
im ROM 102 unter einer Adresse AAC 1 (Fig. 25) gespeichert
ist, anschließt. Wenn die Drehzahl N größer als 1600 ist,
wird die Betriebsart, die unter der Adresse AAC 2 im RAM
106 gespeichert ist, um +1 inkrementiert, d. h., um eine
Einheit erhöht. Der inkrementierte Wert wird dann mit dem
Wert 3200 verglichen, der im ROM 102 unter der Adresse
AAC 2 gemäß Fig. 25 gespeichert ist. Wenn festgestellt
wird, daß die Drehzahl N größer als 3200 min-1 ist, wird
die Betriebsart, die im RAM 106 unter der Adresse AAB 4
enthalten ist, zusätzlich um +1 inkrementiert. Auf diese
Weise wird eine der Betriebsarten 0 bis 2 erreicht. Auf
der Grundlage der so erreichten Betriebsart in der Adresse
AAB 4 des RAM 106 (Fig. 24) werden Daten vom ROM 102 unter
der der Summe der erreichten Betriebsartzahl entsprechenden
Adresse sowie die Inhalte unter der Adresse AAC 3 in
Schritt 912 ausgelesen. Daher entsprechen bei der
Betriebsart 0 die bei Schritt 912 ausgelesenen Daten den
Inhalten, die unter der Adresse AAC 3 gespeichert sind, die
einem Kurbelwinkel von 36° entsprechen. In der Betriebsart
1 entsprechen die ausgelesenen Daten den Inhalten
unter der Adresse AAC 4, die einem Kurbelwinkel von 72°
entsprechen, während in der Betriebsart 2 die Daten ausgelesen
werden, die denjenigen entsprechen, die unter der
Adresse AAC 5 gespeichert sind und einem Kurbelwinkel von
144° entsprechen. Diese Kurbelwinkel spielen eine Rolle
beim Bestimmen der Zeitpunkte, an denen die Daten des
Luftdurchsatzes in den jeweiligen Betriebsarten abgetastet
werden, wie dies zuvor in Zusammenhang mit Fig. 22 erläutert
worden ist. Auf der Grundlage des Abtast-Kurbelwinkels
und der Drehzahl N (Inhalte, die in der Adresse AAA 1
des RAM 106 gemäß Fig. 24 gespeichert sind) werden die Abtast
zeitpunkte rechnerisch bestimmt und in das Register
741 gemäß Fig. 17 geladen. Gleichzeitig wird das Flipflop
(F. F.) 774 rückgesetzt, um so das UND-Glied 776 zu
blockieren. Wenn der Abtastzeitpunkt in dieser Weise im
Schritt 914 gesetzt ist, werden die Register INJD, ADV und
DWL mit den zugehörigen Daten geladen. Anschließend wird
das Statur-Register für die INTL-Unterbrechung (INTL IRQ)
rückgesetzt, woraufhin die Durchführung des Programms zur
Verarbeitung der INTL-Unterbrechung vollendet ist. Wenn in
Schritt 904 festgestellt worden ist, daß der Zählerstand
des Analogzählers nicht auf 0 ist, erfolgt ein Sprung zum
Schritt 916.
Wenn andererseits keine INTL-Unterbrechungsanforderung im
Schritt 902 vorliegt, wird in einem Schritt 920 entschieden,
ob die Anforderung für die QA-Unterbrechung vorliegt,
die die Zeitgeberunterbrechung für QA ist. Falls dies zutrifft,
wird dann in einem Schritt 922 bestimmt, ob eine
Markierung zur Unterdrückung der Abtastung des Ausgangssignals
vom Luftmengenmesser gesetzt ist oder nicht. Wenn
diese Markierung gesetzt ist, wird das bis dahin durchgeführte
betreffende Programm beendet. Wenn keine derartige
Markierung gesetzt ist, werden in einem Schritt 924 die
Luftdurchsatzsignale v vom Luftmengenmesser abgerufen. In
einem folgenden Schritt 926 wird der Zählerstand des Analogzählers,
d. h., werden die Inhalte in der Adresse AAB 3
des RAM 106 gemäß Fig. 24 um +1 inkrementiert. In einem
Schritt 928 wird dann entschieden, ob die Abtastung von v
vollendet ist, d. h., ob die durch den Analogzähler angegebene
Anzahl der Abtastungen einen vorgegebenen Wert erreicht
hat. Bei vollendeter Abtastung der Luftdurchsatzdaten
v wird das Flipflop 774 gesetzt, um das UND-Glied
776 zum Rücksetzen des Zählers gemäß Fig. 17 in einem
Schritt 936 zu aktivieren. Zu diesem Zweck wird das Flipflop
774 durch das Signal REF in Schritt 936 rückgesetzt,
wodurch der Analogzähler rückgesetzt wird. Wenn festgestellt
wird, daß der Datenabruf im Schritt 928 noch nicht
vollendet ist, wird der ADC 2 zur Abtastung des Ausgangssignals
vom Luftmengenmesser aktiviert. Der Digitalwert,
der sich beim ADC 2 ergibt, wird im Register 130 gemäß
Fig. 4 gehalten und kann daher in Schritt 924 abgerufen
werden.
In einem Schritt 932 wird unter Verwendung des Wertes v,
der in Schritt 924 abgerufen wurde, eine Größe (v-c)²
berechnet, wobei c eine Konstante darstellt. Die sich ergebenden
Werte (v-c)² werden sequentiell in den RAM in
Adressen AAA 4-AAA 8 gemäß Fig. 24 gesetzt. Im einzelnen
wird der Wert v, der dem Abtastpunkt 1 gemäß Fig. 22 entspricht,
unter der Adresse AAA 4 gespeichert, und der Wert
v, der dem Abtastpunkt 2 in Fig. 22 entspricht, unter der
Adresse AAA 5 gespeichert, usw. Diese Adressen können gemäß
dem Ausdruck (AAA 4) + (Inhalt des Analogzählers) -1 bestimmt
werden.
Wenn in Schritt 920 entschieden wird, daß keine QA-Unterbrechung
vorliegt, wird in Schritt 938 entschieden, ob die
ADC END-Unterbrechung zu verarbeiten ist. Wenn das Ergebnis
dieser Entscheidung bejahend ist, erfolgt in Schritt
940 die Entscheidung, ob die Markierung IST (Fig. 16) gesetzt
oder "1" ist. Gegebenenfalls wird das Ausgangssignal
v vom Luftmengenmesser in Schritt 942 abgerufen. Dieses
Ausgangssignal v wird zum Starten der Maschine ohne Hilfe
des Starters verwendet. Wenn keine ADC END-Unterbrechung
in Schritt 938 erfaßt wird, oder wenn in Schritt 940 die
Markierung IST nicht gesetzt ist (d. h., nicht "1" ist),
wird die Verarbeitung für die INTV-Unterbrechung durchgeführt,
beginnend mit Schritt 628 gemäß Fig. 15.
Im folgenden wird der Task erläutert, der die Verarbeitung
des Signals des Luftmengenmessers gemäß Schritt 610 von
Fig. 13 betrifft. Der Task zur Verarbeitung des Signals
des Luftmengenmessers wird in einem Schritt 950 (Fig. 26)
ausgelöst. Dabei wird die Markierung zum Sperren des Abrufens
des Signals v, das vom Luftmengenmesser abgegeben
wird, gesetzt. In einem folgenden Schritt 953 wird
((v-c)²)² berechnet. die Rechenergebnisse werden sequentiell
in die Adressen AAA 9-AAAD im RAM 106 gemäß Fig. 24
gespeichert. In Schritt 954 wird die Markierung zum Sperren
des Abrufens rückgesetzt. Als nächstes werden in
Schritt 955 die Werte, die durch die Berechnung von
((v-c)²)² erhalten und im RAM 106 gespeichert wurden,
addiert und gemittelt. Der Mittelwert gibt den der Brennkraftmaschine
zugeführten Luftdurchsatz QA wieder. Es wird
dann in einem Schritt 956 entschieden, ob die Brennkraftmaschine
beschleunigt wird oder nicht. Wenn dies der Fall
ist, wird eine entsprechende beschleunigte Kraftstoff
einspritzung in Schritt 957 vorgenommen. Wenn in Schritt
956 ermittelt wird, daß die Brennkraftmaschine nicht in
einem Beschleunigungszustand ist, wird die Drehzahl in
Schritt 958 abgetastet. Die Messung der Drehzahl erfolgt
durch die Winkelsignalverarbeitungsschaltung 126 gemäß
Fig. 4. Sie enthält einen Zähler zum Zählen des POS-Ausgangsimpulse,
die von dem ANGL-Fühler 53 während einer
vorgegebenen Zeit abgeleitet werden. Dieser Zählerstand
entspricht der Drehzahl. Die Daten der Drehzahl N werden
unter der Adresse AAA 1 des RAM 106 gemäß Fig. 24
gespeichert. Alternativ kann anstelle der Durchführung der
Schritte 932 (Fig. 23) und 753 (Fig. 26) das Ergebnis der
Berechnung im ROM gespeichert und in einem Schritt 944
ausgelesen werden.
Fig. 27 zeigt ein ausführliches Schaltbild des Luftmengenmessers
gemäß Fig. 4.
Die temperaturabhängigen Widerstände 1003 und 1006 bestehen
aus dem gleichen Werkstoff, wie beispielsweise Platin,
mit einem Temperaturkoeffizienten α. Der Widerstand
1006 ist in dem Bypass 22 zur Erfassung der Lufttemperatur
angeordnet.
Die Startschaltung 1023 arbeitet wie folgt. Wenn die
Stromversorgung eingeschaltet wird, erzeugt ein Verstärker
1008 zwangsweise von Zeit zu Zeit ein Ausgangssignal zum
Durchschalten eines Transistors 1002, um so die Schaltung
gemäß Fig. 27 zu aktivieren. Wenn die Stromversorgung
nicht eingeschaltet ist, ist der Transistor 1002 gesperrt
und die Ausgangssignale von den Operationsverstärkern 1008
und 1012 Null. Wenn die Stromversorgung eingeschaltet
wird, wird die Versorgungsspannung Vcc dem Kollektor des
Transistors 1002 und der Startschaltung 1023 zugeführt. Da
die Dioden 1018 und 1020 jeweils einen Vorwärtsspannungsabfall
V d besitzen, wird das Anodenpotential der Diode
1018 zu 2V d , so daß das Potential am nichtinvertierenden
Eingang des Operationsverstärkers 1008 zu 1V d wird, da der
Vorwärtsspannungsabfall der Diode 1028 V d beträgt. Zu diesem
Zeitpunkt ist das Potential am invertierenden Eingangsanschluß
des Verstärkers 1008 auf Null, so daß das
Ausgangssignal vom Operationsverstärker 1008 auf hohem Pegel
ist und der Transistor 1002 leitend wird und durchschaltet.
Wenn die Schaltung mit den temperaturabhängigen
Widerständen 1002 und 1006 einen abgeglichenen Zustand erreicht,
sind sowohl die Spannung am invertierenden als
auch die Spannung am nichtinvertierenden Eingangsanschluß
des Operationsverstärkers 1008 höher als der Vorwärts
spannungsabfall V d über die Diode, so daß die Diode 1018
rückwärts bzw. in Sperrichtung vorgespannt und die Startschaltung
1023 elektrisch von dem Operationsverstärker
1008 getrennt wird.
Wenn ein PNP-Transistor anstelle des NPN-Transistors 1002
gemäß Fig. 27 verwendet wird, muß die Kathode der Diode
1018 mit dem invertierenden Eingang des Operationsverstärkers
1008 anstelle des nichtinvertierenden Eingangs
verbunden werden.
Wenn der Transistor 1002, der durch die Startschaltung getriggert
wird, leitend wird, fließt sein Emitterstrom in
die Reihenschaltung mit den Widerständen 1003 und 1004 und
in den Spannungsteiler mit den Widerständen 1009 und 1010.
Mit Widerstandswerten R3, R4, R6, R9, R10 und R11 für die
Widerstände 1003, 1004, 1006, 1009, 101 bzw. 1011 ergeben
sich der Spannungsabfall über den Widerstand 1004 zu V4
und der Spannungsabfall über den Widerstand 1003 zu V3.
Der Operationsverstärker 1012 vergleicht die Eingangspotentiale
am invertierenden und am nichtinvertierenden Eingang,
d. h., das Potential am Verbindungspunkt zwischen den
Widerständen 1003 und 1004 und das Potential am
Verbindungspunkt zwischen den Widerständen 1006 und 1011, und
steuert sein Ausgangspotential so, daß seine Eingangspotentiale
gleich sind. Das Ausgangspotential des Operations
verstärkers 1012 wird dann zu V 4+(R 6/R 11) × V 4.
Der Operationsverstärker 1008 steuert die Basisspannung
des Transistors 1002 so, daß das Potential am Verbindungspunkt
zwischen den Widerständen 1009 und 1010 oder die
Teilspannung am Widerstand 1003 (V 4 + R 10 × V 3/(R 9 + R 10))
und das Potential am Ausgang des Operationsverstärkers
1012 einander gleich sind. Es sei hier erwähnt, daß der
Verstärker 1008 die Steuerung nicht so durchführt, daß die
Spannung am Widerstand 1003 gleich derjenigen am Widerstand
1006 wird, sondern die Teilspannung am temperaturabhängigen
Widerstand 1003 mit der Spannung am temperaturabhängigen
Widerstand 1006 vergleicht und die Steuerung so
durchführt, daß diese Spannungen einander gleich werden.
Folglich kann die Spannung am Widerstand 1006 sehr viel
kleiner gewählt werden als die am Widerstand 1003. Das
Ausgangssignal der Schaltung gemäß Fig. 27 in abgeglichenem
Zustand wird wie folgt erreicht. Es sei angenommen,
daß die Summe der Widerstandswerte der Widerstände 1009
und 1010 so gewählt ist, daß sie viel größer ist als der
Widerstandswert des temperaturabhängigen Widerstands 1003.
Für die Widerstandswerte der Widerstände 1003 und 1006
gilt:
R 3 = R 30 (1 + α T 3) (1)
und
R 6 = R 60 (1 + α T 6) (2),
wobei bedeuten:
R 30den Widerstandswert des Widerstands 1003 bei der Bezugstemperatur,
R 60den Widerstandswert des Widerstands 1006 bei der Bezugstemperatur,
T 3die Oberflächentemperatur des Widerstands 1003 und
T 6die Oberflächentemperatur des Widerstands 1006.
Die Bedingung für den abgeglichenen Zustand der Schaltung
gemäß Fig. 27 ergibt sich zu
R 4 × R 6 = k × R 11 × R 3 (3)
mit
k = R 10/(R 9 + R 10).
Durch Einsetzen der Gleichungen (1) und (2) in Gleichung
(3) ergibt sich:
T 3-T 6 = Δ T = (1/α)×(1 + k × R 11 · R 30/R 4 · R 60)(1 + α T 3) (4).
Die Beziehung zwischen der Wärmemenge, die durch den Heizwiderstand
erzeugt wird, der in einem Fluid angeordnet
ist, und die vom Fluid abgeführt wird, ergibt sich zu:
Q = I² · R 3 = (C 1 + C 2 ) · Δ T (5),
worin bedeuten:
Iden durch den Widerstand 1003 fließenden Strom,C 1, C 2Konstante,
q am den Luftdurchsatz und
Qdie durch den Widerstand 1003 erzeugte Wärmemenge.
Aus den Gleichungen (1) und (5) ergibt sich:
Q = I²R 30 (1 + α Te) = (C 1 + C 2 )Δ T (6).
Aus den Gleichungen (4) und (6) ergibt sich:
Q = I²R 30 (1 + α T 3)
= (1/α) × (C 1 + C 2 )(1-k × R 11 · R 30/R 4 · R 60) × (1 + α T 3) (7).
= (1/α) × (C 1 + C 2 )(1-k × R 11 · R 30/R 4 · R 60) × (1 + α T 3) (7).
Folglich ergibt sich:
I² = (1/R 30) × (C 1 + C 2 )(1-k × R 11 · R 30/R 60)
= k (C 1 + C 2) (8),
mit
k = (1/R 30) × (1-k × R 11 · R 30/R 4 · R 60) =
konstant.
Wie sich aus Gleichung (4) ergibt, ist die Temperaturdifferenz
Δ T lediglich eine Funktion von T 3, weshalb es
nicht notwendig ist, die Werte der Schaltungskomponenten
einzustellen. Eine solche Temperaturdifferenz Δ T erfüllt
Gleichung (8), so daß der durch den temperaturabhängigen
Widerstand 1003 fließende Strom eine Funktion ist, die
lediglich vom Luftdurchsatz q am abhängt. Folglich sind im
abgeglichenen Zustand der Schaltung die durch den temperatur
abhängigen Widerstand 1003 und den Widerstand 1004
fließenden Strom einander gleich. Deshalb ist der Luftdurchsatz
durch Messen der Spannung am Widerstand R 4
erhältlich. Die Spannung am Widerstand 1004 wird bei dem
vorliegenden Ausführungsbeispiel durch den Operationsverstärker
1013 erzeugt. Da die Widerstände 1014 und 1015 so
gewählt sind, daß der Verstärkungsfaktor des Operations
verstärkers 1013 gleich 1 ist, ergibt sich die
Spannung V am Ausgangsanschluß 1024 des Operationsverstärkers
1013 zu
Die Gleichung (9) zeigt, daß die Spannung V eine Funktion
des Luftdurchsatzes ist. Folglich ist q am eine Funktion
der Spannung V. Das Verhältnis der Spannungen V 3 zu V 6 an
den temperaturabhängigen Widerständen 1003 und 1006 ist:
V 3/V 6 = R 3 · R 11/R 6 · R 4 (10).
Wenn die Widerstandswerte der temperaturabhängigen Widerstände
1003 und 1006 einander gleich sind, ergibt sich das
Verhältnis zu:
V 3/V 6 = R 11/R 4 (11).
Die Gleichung (11) gibt an, daß, wenn der Widerstandswert
des Widerstands 1011 so gewählt ist, daß er erheblich
größer ist als derjenige des Widerstands 1004, die an den
temperaturabhängigen Widerstand 1006 angelegte Spannung
weit geringer gewählt werden kann als diejenige, die an
den temperaturabhängigen Widerstand 1003 angelegt ist.
Folglich wird der Widerstand 1006 nicht aufgeheizt, so daß
die Lufttemperatur mit hoher Genauigkeit gemessen werden
kann und daher eine genaue Temperaturkompensation für eine
Lufttemperaturschwankung sichergestellt ist. Da weiter der
durch den temperaturabhängigen Meßwiderstand 1003 fließende
Strom sehr groß eingestellt werden kann, ist die
Empfindlichkeit für den Luftdurchsatz sehr gut, so daß,
wenn die Schaltung gemäß Fig. 27 für ein Kraftfahrzeug
vorgesehen ist, eine gute Empfindlichkeit sichergestellt
ist, obwohl die Batteriespannung sehr niedrig, beispielsweise
12 V ist. Die bei der Schaltung gemäß der Erfindung
mögliche Verwendung gleicher temperaturabhängiger Widerständer
führt zu verbesserter Meßgenauigkeit und erhöht
zugleich die wirtschaftliche Effizienz und die Produktivität
bei der Herstellung der Vorrichtung.
Im folgenden wird die Funktion der Z-Diode 1016 näher erläutert.
Wenn die Schaltung gemäß Fig. 27 im Normalbetrieb
arbeitet, ändern sich die Spannung an der Reihenschaltung
aus dem temperaturabhängigen Widerstand 1003 und dem
Widerstand 1004, d. h., das Potential am Anschluß 1025, und
die Spannung am Widerstand 1004, d. h., das Potential am
nichtinvertierenden Eingang des Operationsverstärkers
1012, proportional zueinander. Wenn der Widerstand 1003
abgetrennt wird oder der Transistor 1002 in leitendem Zustand
ist, entfällt jedoch die Proportionalität der Spannungs
änderung, und es fließt ein großer Strom durch die
Widerstände 1009, 1010 und 1004, wobei zugleich auch die
Spannung am Widerstand 1004 erhöht wird. Dann steigt das
Potential am Anschluß 1025 auf die Durchbruchspannung der
Z-Diode 1016 an, die leitend wird, wobei das Potential am
invertierenden Eingang des Operationsverstärkers 1012 ansteigt.
Als Ergebnis nimmt die Ausgangsspannung des Operations
verstärkers 1013 ab, was zeigt, daß der Luftdurchsatz
Null oder annähernd gleich Null ist. Damit wird verhindert,
daß die Kraftstoffeinspritzung fehlerhaft betrieben
wird, d. h., daß die Kraftstoffeinspritzvorrichtung 12 eine
zu große Kraftstoffmenge einspritzt, und ferner, daß ein
zu großer Strom durch den temperaturabhängigen Widerstand
1003 fließt, der zu unzulässig großer Erwärmung und damit
beispielsweise Brandgefahr führen könnte.
Claims (5)
1. Verfahren zur Steuerung von Brennkraftmaschinen,
bei dem mittels eines Luftmengenmessers für den Durchsatz
der Ansaugluft repräsentative elektrische Signale abgetastet
und in Abhängigkeit von den Signalen des Luftmengenmessers
in einem Rechner Steuersignale für den Betrieb der Kraftstoff
versorgung berechnet werden,
dadurch gekennzeichnet, daß
- - die Signale des Luftmengenmessers bei vorgegebenen Kurbelwinkeln
abgetastet werden, die von der Drehzahl der
Brennkraftmaschine abhängig sind,
wobei die Abtastung für niedrigere Drehzahlen bei kleineren Kurbelwinkeln und für höhere Drehzahlen bei größeren Kurbelwinkeln vorgenommen wird, und - - sämtliche Abtastungen eines Abtastzyklus bei jeweils gleichen Kurbelwinkeln vorgenommen werden (Fig. 22).
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß
die Abtastung der Signale des Luftmengenmessers innerhalb
vorgegebener Drehzahlbereiche bei für jeden Drehzahlbereich
vorgegebenen und jeweils gleichen Kurbelwinkeln vorgenommen
wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß
die Abtastung der Signale des Luftmengenmessers bei vorgegebenen,
gleichen Kurbelwinkeln vorgenommen wird, die in
einem vorgegebenen Bereich höherer Drehzahlen jeweils doppelt
so groß sind wie im vorgegebenen Bereich der niedrigeren
Drehzahlen.
4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet,
daß die Abtastung der Signale des Luftmengenmessers
bei einem Vierzylindermotor innerhalb der vorgegebenen
Drehzahlbereiche mit einem Abtastzyklus mit fünf jeweils
gleichen Kurbelwinkeln vorgenommen wird.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß
die Abtastung der Signale des Luftmengenmessers in einem
ersten Drehzahlbereich von Drehzahlen N<1600 min-1 bei
Kurbelwinkeln von 36°, in einem zweiten Drehzahlbereich von
Drehzahlen N zwischen 1600 und 3200 min-1 bei Kurbelwinkeln
von 72° und in einem dritten Drehzahlbereich von
Drehzahlen N<3200 min-1 bei Kurbelwinkeln von 144°
vorgenommen wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16991979A JPS5692330A (en) | 1979-12-25 | 1979-12-25 | Signal processing method for hot wire flow sensor |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3048674A1 DE3048674A1 (de) | 1981-09-17 |
DE3048674C2 true DE3048674C2 (de) | 1988-08-11 |
Family
ID=15895378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19803048674 Granted DE3048674A1 (de) | 1979-12-25 | 1980-12-23 | Verfahren zum regeln einer brennkraftmaschine |
Country Status (4)
Country | Link |
---|---|
US (1) | US4523284A (de) |
JP (1) | JPS5692330A (de) |
DE (1) | DE3048674A1 (de) |
GB (1) | GB2066516B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009027718A1 (de) | 2009-07-15 | 2011-01-20 | Zf Friedrichshafen Ag | Verfahren zur Auswertung eines schwingungsbehafteten Signals |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5776245A (en) * | 1980-10-30 | 1982-05-13 | Nissan Motor Co Ltd | Collecting device of engine controlling signal |
JPS57137628A (en) * | 1981-02-20 | 1982-08-25 | Nissan Motor Co Ltd | Electronically controlled fuel injection device |
JPS58122350A (ja) * | 1982-01-13 | 1983-07-21 | Honda Motor Co Ltd | 内燃エンジンのアイドル回転数フィ−ドバック制御装置 |
DE3202818A1 (de) * | 1982-01-29 | 1983-08-11 | Pierburg Gmbh & Co Kg, 4040 Neuss | Verfahren und einrichtung zum aufbereiten eines luftdurchsatzsignals |
DE3204842A1 (de) * | 1982-02-11 | 1983-08-18 | Volkswagenwerk Ag, 3180 Wolfsburg | Einrichtung zur regelung einer otto-brennkraftmaschine |
JPS58185948A (ja) * | 1982-04-26 | 1983-10-29 | Hitachi Ltd | 燃料噴射制御装置 |
JPS58192947A (ja) * | 1982-05-04 | 1983-11-10 | Nippon Denso Co Ltd | 内燃機関制御方法 |
DE3216983A1 (de) * | 1982-05-06 | 1983-11-10 | Robert Bosch Gmbh, 7000 Stuttgart | Steuereinrichtung fuer ein kraftstoffzumesssystem einer brennkraftmaschine |
DE3223328C2 (de) * | 1982-06-23 | 1987-04-09 | Robert Bosch Gmbh, 7000 Stuttgart | Einrichtung zum Erfassen einer periodisch schwankenden Größe einer Brennkraftmaschine |
DE3232298A1 (de) * | 1982-08-31 | 1984-03-01 | Robert Bosch Gmbh, 7000 Stuttgart | Einrichtung zum erfassen einer periodisch schwankenden groesse |
JPS59103930A (ja) * | 1982-12-07 | 1984-06-15 | Nippon Denso Co Ltd | 内燃機関の制御方法 |
JPS59138734A (ja) * | 1983-01-28 | 1984-08-09 | Hitachi Ltd | エンジン制御装置 |
JPS59221435A (ja) * | 1983-05-31 | 1984-12-13 | Hitachi Ltd | 燃料噴射制御方法 |
JPS60166729A (ja) * | 1984-02-10 | 1985-08-30 | Japan Electronic Control Syst Co Ltd | 内燃機関の電子制御燃料噴射装置における吸入空気流量算出装置 |
US4713765A (en) * | 1984-02-24 | 1987-12-15 | Nippondenso Co., Ltd. | Control system for an engine having an air intake passage |
JPS60252139A (ja) * | 1984-05-28 | 1985-12-12 | Nippon Denso Co Ltd | エンジンの制御装置 |
JPS611847A (ja) * | 1984-06-13 | 1986-01-07 | Nippon Denso Co Ltd | 内燃機関の制御装置 |
JPS6293470A (ja) * | 1985-10-21 | 1987-04-28 | Honda Motor Co Ltd | 内燃エンジンの吸気管内圧検出装置 |
JPS6296751A (ja) * | 1985-10-22 | 1987-05-06 | Mitsubishi Electric Corp | 内燃機関の燃料噴射制御装置 |
JPS62170752A (ja) * | 1986-01-22 | 1987-07-27 | Mitsubishi Electric Corp | 内燃機関の燃料噴射制御装置 |
US6490509B1 (en) * | 1999-09-17 | 2002-12-03 | Keihin Corporation | Car controlling unit using a multitasking system |
DE10243808A1 (de) * | 2002-09-20 | 2004-04-01 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Starten oder Stoppen eines motorgetriebenen Kraftfahrzeugs |
DE102010062238A1 (de) * | 2010-03-30 | 2011-10-06 | Robert Bosch Gmbh | Startvorrichtung, Schnittstelleneinrichtung und Verfahren zum Betreiben eines Systems einer Startvorrichtung |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4948893B1 (de) * | 1970-08-29 | 1974-12-24 | ||
US3835819A (en) * | 1972-12-29 | 1974-09-17 | Essex International Inc | Digital engine control apparatus and method |
US3975951A (en) * | 1974-03-21 | 1976-08-24 | Nippon Soken, Inc. | Intake-air amount detecting system for an internal combustion engine |
DE2507917C2 (de) * | 1975-02-24 | 1986-01-02 | Robert Bosch Gmbh, 7000 Stuttgart | Einrichtung zur Regelung des optimalen Betriebsverhaltens einer Brennkraftmaschine |
US4199812A (en) * | 1975-11-18 | 1980-04-22 | Robert Bosch Gmbh | Apparatus for determining the duration of fuel injection control pulses |
JPS5340105A (en) * | 1976-09-24 | 1978-04-12 | Nippon Denso Co Ltd | Automobile control unit |
JPS5372931A (en) * | 1976-12-10 | 1978-06-28 | Nippon Soken Inc | Internal combustion engine electronic controller |
JPS5430063A (en) * | 1977-08-11 | 1979-03-06 | Toshiba Corp | Flow meter |
DE2840706C2 (de) * | 1977-09-21 | 1985-09-12 | Hitachi, Ltd., Tokio/Tokyo | Elektronische Steuereinrichtung zum Steuern des Betriebs einer Brennkraftmaschine |
JPS6060025B2 (ja) * | 1977-10-19 | 1985-12-27 | 株式会社日立製作所 | 自動車制御方法 |
US4276600A (en) * | 1978-02-27 | 1981-06-30 | The Bendix Corporation | Oxygen sensor feedback loop digital electronic signal integrator for internal combustion engine control |
JPS5543447A (en) * | 1978-09-22 | 1980-03-27 | Hitachi Ltd | Hot-wire type flow rate measuring device |
US4257377A (en) * | 1978-10-05 | 1981-03-24 | Nippondenso Co., Ltd. | Engine control system |
JPS5584858A (en) * | 1978-12-18 | 1980-06-26 | Nippon Denso Co Ltd | Engine control |
JPS5597425U (de) * | 1978-12-22 | 1980-07-07 |
-
1979
- 1979-12-25 JP JP16991979A patent/JPS5692330A/ja active Granted
-
1980
- 1980-12-18 GB GB8040582A patent/GB2066516B/en not_active Expired
- 1980-12-22 US US06/218,671 patent/US4523284A/en not_active Expired - Lifetime
- 1980-12-23 DE DE19803048674 patent/DE3048674A1/de active Granted
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009027718A1 (de) | 2009-07-15 | 2011-01-20 | Zf Friedrichshafen Ag | Verfahren zur Auswertung eines schwingungsbehafteten Signals |
Also Published As
Publication number | Publication date |
---|---|
JPS5692330A (en) | 1981-07-27 |
GB2066516B (en) | 1983-07-27 |
US4523284A (en) | 1985-06-11 |
GB2066516A (en) | 1981-07-08 |
JPS6212384B2 (de) | 1987-03-18 |
DE3048674A1 (de) | 1981-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3048674C2 (de) | ||
DE2845354C2 (de) | ||
DE2845043C2 (de) | Regelsystem für Brennkraftmaschinen | |
DE3238153C2 (de) | ||
DE3033526C2 (de) | ||
DE3609069C2 (de) | ||
DE69429855T2 (de) | Steuerungssystem mit geschlossenem Regelkreis einer Dieselbrennkraftmaschine | |
DE2755015A1 (de) | Elektronisches steuergeraet und verfahren zum steuern eines verbrennungsmotors | |
DE3024933A1 (de) | Verfahren zum regeln des luft/kraftstoff-verhaeltnisses fuer brennkraftmaschinen | |
DE2840706A1 (de) | Elektronische brennkraftmaschinen- regelanordnung | |
DE3923757A1 (de) | Kraftstoffregler fuer brennkraftmaschinen | |
DE2845350A1 (de) | Elektronische brennkraftmaschinen- regelanordnung | |
DE2845351A1 (de) | Eingangssignal-prozessor fuer elektronische brennkraftmaschinen-regelanordnung | |
DE3218777C2 (de) | Verfahren und Vorrichtung zur elektronischen Steuerung der Brennstoffeinspritzmenge einer Brennkraftmaschine | |
DE19721070A1 (de) | Verfahren und Vorrichtung zur Ermittlung des Verbrennungszustandes in den einzelnen Zylindern einer Brennkraftmaschine | |
DE4232261A1 (de) | Fehlzuendungs-messvorrichtung fuer eine brennkraftmaschine | |
DE3221641C2 (de) | ||
DE2845355C2 (de) | ||
DE2935679C2 (de) | ||
DE2932050A1 (de) | Drehzahl-messumformer fuer brennkraftmaschinen | |
DE3741412C2 (de) | ||
DE2929797C2 (de) | Verfahren und Anordnung zum Steuern der Kraftstoffzufuhr, insbesondere der Kraftstoffeinspritzung, zu einer Brennkraftmaschine | |
DE3226026C3 (de) | Verfahren und Vorrichtung zur Regelung einer Brennkraftmaschine und Verfahren zur Regelung der Brennstoffeinspritzung | |
DE3924224C2 (de) | Zündzeitpunktregeleinrichtung für eine Brennkraftmaschine | |
DE3923187A1 (de) | Verfahren und vorrichtung zum regeln des zuendzeitpunktes einer brenkraftmaschine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |