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
Application number
DE3048674A
Other languages
English (en)
Other versions
DE3048674A1 (de
Inventor
Matsuo Amano
Shinichi Hitachi Jp Sakamoto
Masayuki Katsuta Jp Miki
Takao Hitachi Jp Sasayama
Seiji Mito Jp Suda
Yasunori Mouri
Toshio Katsuta Jp Ishii
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3048674A1 publication Critical patent/DE3048674A1/de
Application granted granted Critical
Publication of DE3048674C2 publication Critical patent/DE3048674C2/de
Granted legal-status Critical Current

Links

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02PIGNITION, OTHER THAN COMPRESSION IGNITION, FOR INTERNAL-COMBUSTION ENGINES; TESTING OF IGNITION TIMING IN COMPRESSION-IGNITION ENGINES
    • F02P5/00Advancing or retarding ignition; Control therefor
    • F02P5/04Advancing or retarding ignition; Control therefor automatically, as a function of the working conditions of the engine or vehicle or of the atmospheric conditions
    • F02P5/145Advancing 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/15Digital data processing
    • F02P5/1502Digital data processing using one central computing unit
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/02Circuit arrangements for generating control signals
    • F02D41/18Circuit arrangements for generating control signals by measuring intake air flow
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/02Circuit arrangements for generating control signals
    • F02D41/18Circuit arrangements for generating control signals by measuring intake air flow
    • F02D41/187Circuit arrangements for generating control signals by measuring intake air flow using a hot wire flow sensor
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
    • F02D41/263Electrical 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/10Internal combustion engine [ICE] based vehicles
    • Y02T10/40Engine 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
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.
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.
Tabelle 2
Zuordnung der Taskniveaus und Funktionen der Tasks
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).
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.
DE19803048674 1979-12-25 1980-12-23 Verfahren zum regeln einer brennkraftmaschine Granted DE3048674A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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