DE3033526C2 - - Google Patents
Info
- Publication number
- DE3033526C2 DE3033526C2 DE3033526A DE3033526A DE3033526C2 DE 3033526 C2 DE3033526 C2 DE 3033526C2 DE 3033526 A DE3033526 A DE 3033526A DE 3033526 A DE3033526 A DE 3033526A DE 3033526 C2 DE3033526 C2 DE 3033526C2
- Authority
- DE
- Germany
- Prior art keywords
- task
- processing
- program
- interrupt
- internal combustion
- 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
- 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
-
- 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
-
- 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)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
- Control By Computers (AREA)
Description
Die Erfindung betrifft ein Verfahren zur Steuerung des
Betriebs von Brennkraftmaschinen gemäß dem Oberbegriff
des Patentanspruchs, wie es aus DE 28 40 706 A1 bekannt
ist.
Seit einiger Zeit werden zur Steuerung von Brennkraftmaschinen
Mikrocomputer eingesetzt, die hauptsächlich dazu
verwendet werden, die der Brennkraftmaschine zugeführte
Kraftstoffmenge und den Zündzeitpunkt rechnerisch zu bestimmen.
Die Kraftstoffzufuhr und die Zündung des zugeführten
Gemischs erfolgen synchron mit der Drehung der
Kurbelwelle. Daher wird, wenn der Motor mit hoher Drehzahl
läuft, der zeitliche Abstand zwischen der Kraftstoffzufuhr
und dem Zündzeitpunkt kürzer, und es ist schwierig, sämtliche
Rechenvorgänge zur Bestimmung der zuzuführenden
Kraftstoffmenge und des Zündzeitpunkts durchzuführen. Bei
hohen Drehzahlen muß also die Anzahl der Rechenvorgänge
des Computers verringert werden. Zu diesem Zweck wird das
Programm zur rechnerischen Bestimmung der Kraftstoffmenge
und des Zündzeitpunkts in mehrere Verarbeitungen (Tasks)
unterteilt, die entsprechend ihrem Einfluß auf den Motorbetrieb
in mehrere Prioritätsgrade klassifiziert werden.
Wenn der Kraftstoffzufuhr-Zeitpunkt und der Zündzeitpunkt
bei höherer Drehzahl des Motors kürzer werden, werden vom
Computer nur die Verarbeitungen mit höherem Prioritätsgrad
durchgeführt, und die Resultate von Steuergrößen aus
Verarbeitungen niedriger Priorität, die bereits berechnet
wurden, werden wiederholt verwendet, um eine Durchführung
dieser Verarbeitungen mit niedrigerer Priorität
zu vermeiden, wobei die unterbrochenen Verarbeitungen
nach Abschluß der Verarbeitung mit höherer Priorität fortgesetzt
werden oder eine weitere Verarbeitung begonnen
wird (DE 28 40 706 A1).
In einem solchen Steuersystem umfaßt das Programm zur Bestimmung
der Kraftstoffmenge bzw. des Zündzeitpunkts entsprechend
viele Verarbeitungen unterschiedlicher Priorität,
so daß es schwierig ist, verschiedene Steuerfunktionen zu
korrigieren, zu ändern oder hinzuzufügen.
Aufgabe der Erfindung ist es, ein Verfahren zur Steuerung
des Betriebs von Brennkraftmaschinen anzugeben, das eine
Anpassung der elektronischen Steuervorgänge an wechselnde
Betriebsbedingungen der Brennkraftmaschine in einfacher
Weise ermöglicht und eine optimale Auslastung des Mikrocomputers
ohne Überhangszeiten ergibt.
Das erfindungsgemäße Verfahren zur Steuerung des Betriebs
von Brennkraftmaschinen umfaßt folgende Schritte:
- - Erfassung von Betriebsparametern der Brennkraftmaschine,
- - Berechnung von Steuergrößen auf der Basis der erfaßten Betriebsparameter unter Aufgliederung der Verarbeitungsvorgänge in einzelne Verarbeitungen,
- - funktionelle Klassifikation der Verarbeitungen zur Berechnung der Steuergrößen in vorgegebene Prioritätsgrade, die jeweils der zeitlichen Dringlichkeit der zu berechnenden Steuergröße beim Betrieb der Brennkraftmaschine entsprechen,
- - Erzeugen von mehreren von der Drehzahl der Brennkraftmaschine
unabhängigen Unterbrechungssignalfolgen, die
jeweils eine vorgegebene Periode besitzen, einem jeweiligen
Prioritätsgrad der Verarbeitungen zugeordnet
sind und jeweils die Verarbeitung starten oder unterbrechen,
wobei
- - eine Verarbeitung niedrigerer Priorität von einem Unterbrechungssignal unterbrochen wird, wenn eine Verarbeitung höherer Priorität durch dieses Unterbrechungssignal gestartet werden muß, und
- - die unterbrochene Verarbeitung nach der Ausführung der Verarbeitung mit höherer Priorität fortgesetzt oder eine weitere Verarbeitung begonnen wird, und,
- - Umsetzen der berechneten Steuergrößen in Stellgrößen für die Stellglieder der Brennkraftmaschine;
es ist dadurch gekennzeichnet, daß
innerhalb eines jeweiligen Prioritätsgrads die zeitliche
Rangfolge der Verarbeitung ebenfalls durch die Perioden
der zugeordneten Unterbrechungssignalfolgen in folgender
Weise festgelegt wird:
wobei die Periode der Unterbrechungssignalfolgen bei
höherem Prioritätsgrad (0, 1) kürzer ist als bei niedrigerem
Prioritätsgrad (2, 3).
Es ist erfindungsgemäß einfach, Verarbeitungen (Tasks)
zu korrigieren, zu ändern oder hinzuzufügen. Aufgrund
der Erfindungskonzeption wird entsprechend der Start
einer Verarbeitung nicht durch Änderung, Korrektur oder
Hinzufügen einer anderen Verarbeitung geändert. Ferner
ist es möglich, ohne Änderungen des Prioritätsgrades oder
der Startperiode einer anderen Verarbeitung eine neue
Verarbeitung hinzuzufügen oder eine Verarbeitung herauszunehmen.
Die Erfindung wird im folgenden anhand der Zeichnung näher
erläutert; es zeigen:
Fig. 1: Eine schematische Darstellung einer Brennkraftmaschine
mit einer Steuereinrichtung sowie verschiedenen
Fühlern und Stellgliedern;
Fig. 2: ein Schaltschema der Zündvorrichtung von Fig. 1;
Fig. 3: eine schematische Darstellung eines Abgasrückführsystems;
Fig. 4: eine schematische Gesamtdarstellung eines
Brennkraftmaschinen-Steuersystems;
Fig. 5: ein Diagramm zur Erläuterung des Prinzips eines
Programmsystems zur Durchführung des Steuerverfahrens
nach der Erfindung;
Fig. 6: eine Tabelle von Tasksteuerblöcken, die in einem
von einem Task-Zuteiler gesteuerten RAM enthalten
sind;
Fig. 7: eine Startadressen-Tabelle für eine Gruppe von
Tasks, die durch verschiedene Unterbrechungen
gestartet werden;
Fig. 8 und 9:
Flußdiagramme, die den Verarbeitungsablauf des
Task-Zuteilers zeigen;
Fig. 10: ein Flußdiagramm zur Erläuterung des Makroverarbeitungsprogramms
von Fig. 5;
Fig. 11: ein Diagramm, das ein Beispiel für eine Task-
Prioritätssteuerung zeigt;
Fig. 12: ein Diagramm, das die Zustandsübergänge von
Tasks bei der Task-Prioritätssteuerung zeigt;
Fig. 13: ein Programmsystem als konkretes Ausführungsbeispiel
des in Fig. 5 dargestellten Prinzips;
Fig. 14: eine im RAM enthaltene Softtimertabelle;
Fig. 15: den Verarbeitungsablauf eines Unterbrechungsverarbeitungsprogramms;
Fig. 16: ein Impulsdiagramm, das Starten und Stoppen verschiedener
Tasks in Abhängigkeit von Betriebszuständen
einer Brennkraftmaschine zeigt;
Fig. 17: eine schematische Darstellung einer Unterbrechungs-
Erzeugerschaltung;
Fig. 18 bis 21:
Flußdiagramme zur Erläuterung verschiedener
Programme.
Das in Fig. 1 dargestellte System umfaßt einen Zylinder 8,
ein Luftfilter 2, einen Drosselklappenraum 4 und eine Ansaugleitung
6. Im Zylinder 8 verbrannten Gas gelangt durch
ein Auspuffrohr 10 zur Atmosphäre.
Der Drosselklappenraum 4 weist eine Einspritzdüse 12 für
die Kraftstoffeinspritzung auf. Der aus der Einspritzdüse
12 austretende Kraftstoff wird im Luftkanal des Drosselklappenraums
4 zerstäubt und zur Bildung eines Luft-Kraftstoff-
Gemischs mit der Ansaugluft vermischt. Dieses Gemisch
gelangt durch die Ansaugleitung 6 und wird dem Brennraum
des Zylinders 8 beim Öffnen des Einlaßventils 20 zugeführt.
Drosselklappen 14 und 16 sind nahe dem Auslaß der Einspritzdüse
12 angeordnet. Die Drosselklappe 14 ist so ausgebildet,
daß sie mechanisch mit dem Gaspedal verbunden ist. Die
Drosselklappe 16 ist so angeordnet, daß sie von der Membran
eines Unterdruckverstellers 18 verstellt wird. Sie wird
vollständig geschlossen, wenn der Luftdurchsatz niedrig
ist. Mit zunehmendem Luftdurchsatz erhöht sich der auf
die Membran des Unterdruckverstellers 18 wirkende Unterdruck,
so daß sie die Drosselklappe 16 zu öffnen beginnt,
um eine Erhöhung des Ansaugwiderstands zu verhindern. Vor
den Drosselklappen 14 und 16 des Drosselklappenraums 4
ist ein Luftbypass 22 vorgesehen. Ein elektrisches Heizelement
24, das einen thermischen Luftmengenmesser darstellt,
ist im Luftbypass 22 angeordnet und ergibt ein
elektrisches Signal, das sich entsprechend der Luftströmungsgeschwindigkeit
ändert, die über die vom Heizelement übertragene
Wärmemenge bestimmt wird. Da das Heizelement 24 im
Luftbypass 22 angeordnet ist, ist es vor den heißen Gasen,
die bei einer Fehlzündung des Zylinders 8 und Rückschlagen
auftreten, und ferner vor Verschmutzung durch in der Ansaugluft
enthaltenen Staub u. dgl. geschützt. Der Auslaß des
Luftbypasses 22 öffnet sich nahe dem engsten Abschnitt
eines Venturi-Abschnitts, während der Einlaß stromauf des
Venturi-Abschnitts mündet.
Der der Einspritzdüse 12 zuzuführende Kraftstoff wird von
einem Kraftstofftank 30 zu einem Kraftstoffdruckregler 38
über eine Kraftstoffpumpe 32, ein Dämpfungsorgan 34 und
ein Filter 36 zugeführt. Der unter Druck stehende Kraftstoff
gelangt aus dem Kraftstoffdruckregler 38 durch eine
Leitung 40 zur Einspritzdüse 12. Der Kraftstoff wird aus
dem Kraftstoffdruckregler 38 zum Kraftstofftank 30 durch
eine Rücklaufleitung 42 rückgeführt, so daß die Differenz
zwischen dem Druck in der Ansaugleitung 6, in die der
Kraftstoff aus der Einspritzdüse 12 eingespritzt wird, und
dem Druck des Kraftstoffs vor der Einspritzdüse 12 immer
konstant ist.
Das vom Ansaugventil 20 angesaugte Gemisch wird von einem
Kolben 50 verdichtet und durch einen von einer Zündkerze
52 ausgehenden Zündfunken zur Verbrennung gebracht. Der
Zylinder 8 wird mit Kühlwasser 54 gekühlt, dessen Temperatur
von einem Kühlwassertemperaturfühler 56 erfaßt wird;
der Meßwert wird als Motortemperatur verwendet. Der Zündkerze
52 wird entsprechend dem Zündzeitpunkt Hochspannung
von einer Zündspule 58 zugeführt.
An der (nicht dargestellten) Kurbelwelle des Motors ist
ein Kurbelwinkelfühler vorgesehen, der ein Bezugswinkelsignal
und ein Lagesignal für jeden Bezugs-Kurbelwinkel
und einen vorgegebenen, festen Winkel (z. B. 0,5°) entsprechend
der Drehung der Brennkraftmaschine erzeugt.
Die Ausgangssignale des Kurbelwinkelfühlers, das Ausgangssignal
56 A des Temperaturfühlers 56 und das elektrische
Signal vom Heizelement 24 werden einer Steuerschaltung 64
mit einem Mikrocomputer zugeführt und darin verarbeitet.
Die Einspritzdüse 12 und die Zündspule 58 werden durch Ausgangssignale
der Steuerschaltung 64 betätigt.
Bei der auf der Grundlage dieses erläuterten System gesteuerten
Brennkraftmaschine weist der Drosselklappenraum 4
einen Bypasskanal 26 auf, der die Drosselklappe 16 überbrückt
und mit der Ansaugleitung 6 verbunden ist. Der Bypasskanal
26 umfaßt ein Bypassventil 62, das den Bypasskanal
26 öffnet oder verschließt. Die Betätigung zum Öffnen
oder Schließen erfolgt so, daß der Antriebsteil des Bypassventils
62 mit einem Steuersignal von der Steuerschaltung
64 beaufschlagt wird.
Das Bypassventil 62 wird von einem Impulsstrom so gesteuert,
daß es sich öffnet oder schließt. Es verändert den Querschnitt
des Bypasskanals 26 durch den Betrag seines Hubs.
Der Hub wird über das Antriebssystem von einem Ausgangssignal
der Steuerschaltung 64 gesteuert, die ein Öffnungs-
und Schließdauer-Signal erzeugt, mit dem das Antriebssystem
des Bypassventils 62 beaufschlagt wird.
Fig. 2 erläutert die Zündvorrichtung von Fig. 1. Ein
Impulsstrom wird einem Leistungstransistor 72 durch einen
Verstärker 68 zugeführt, der durch diesen Strom eingeschaltet
wird. Damit fließt durch die Zündspule 58 von
der Batterie 66 ein Primärstrom. Der Leistungstransistor
72 wird durch den Abfall dieses Impulsstroms in den Aus-
Zustand gebracht, so daß eine Hochspannung an der Sekundärwicklung
der Zündspule 58 erzeugt wird.
Die Hochspannung wird durch einen Zündverteiler 70 synchron
mit der Rotation der Brennkraftmaschine den in den jeweiligen
Zylindern der Brennkraftmaschine angeordneten Zündkerzen
52 zugeführt.
Fig. 3 erläutert ein Abgasrückführsystem. Ein konstanter
Unterdruck von einer Unterdruckversorgung 80 liegt über
ein Druckregelventil 84 an einem Stellventil 86 an. Das
Druckregelventil 84 regelt am Stellventil 86 anliegenden
Unterdruck durch Steuerung des mit der Atmosphäre 88
ausgeglichenen Anteils des Unterdrucks der Unterdruckversorgung
80 entsprechend dem EIN-Tastverhältnis von an
einen Transistor 90 angelegten wiederkehrenden Impulsen.
Infolgedessen wird der am Stellventil 86 anliegende Unterdruck
durch das EIN-Tastverhältnis des Transistors 90 bestimmt.
Die aus der Abgasleitung 10 zur Ansaugleitung 6
rückgeführte Gasmenge wird folglich über Unterdruck des
Druckregelventils 84 gesteuert.
Fig. 4 zeigt den allgemeinen Aufbau des Steuersystems. Das
Steuersystem umfaßt eine Zentraleinheit (ZE) 102, einen
Festspeicher (ROM) 104, einen Direktzugriffsspeicher (RAM)
106 und eine Eingangs-/Ausgangsschaltung (E/A-Schaltung)
108. Die ZE 102 verarbeitet Eingabedaten von der E/A-Schaltung
108 und liefert die verarbeiteten Resultate zurück zur
E/A-Schaltung 108 nach Maßgabe verschiedener Programme, die
im ROM 104 gespeichert sind. Für die Zwischenspeicherung,
die für diese Operationen erforderlich ist, wird der RAM
106 benutzt. Der Austausch verschiedener Daten zwischen
der ZE 102, dem ROM 104, dem RAM 106 und der E/A-Schaltung
108 erfolgt über eine Busleitung 110, die einen
Datenbus, einen Steuerbus und einen Adressenbus umfaßt.
Die E/A-Schaltung 108 umfaßt als Eingangseinheiten eine
erste Analog-Digital-Umsetzereinheit ADU1, eine zweite
Analog-Digital-Umsetzereinheit ADU2 mit einem Analog-
Digital-Umsetzer 128, der das Ausgangssignal vom Luftmengenmesser
AFS 24 umsetzt und einem Register REG 130 zuführt,
eine Winkelsignalverarbeitungsstufe 126 und eine
Einzel-E/A-Stufe DI O zum Empfang und zur Abgabe von 1-Bit-
Information.
In der ADU1 werden Ausgangssignale eines Batteriespannungsfühlers
(VBS) 132, des Kühlwassertemperaturfühlers (TWS)
56, eines Außenlufttemperaturfühlers (TAS) 112, eines
Stellspannungserzeugers (VRS) 114, eines Drosselklappenwinkelfühlers
(R THS) 116 und eines λ-Fühlers (λ S) 118
einem Multiplexer (MPX) 120 zugeführt, der jeweils eines
dieser Ausgangssignale auswählt und einem Analog-Digital-
Umsetzer (ADU) 122 zuführt. Der als Ausgangssignal des
ADU 122 erhaltene Digitalwert wird in einem Register (REG)
124 gehalten.
Ein Winkelfühler (ANGS) 146 erzeugt ein Signal (REF), das
einem Bezugs-Kurbelwinkel, z. B. von 180°, entspricht, und
ein Signal (POS), das einem kleinen Kurbelwinkel, z. B. 1°,
entspricht. Die Signale werden der Winkelsignalverarbeitungsstufe
126 zugeführt und dort geformt.
Die Stufe DI O empfängt ferner Ausgangssignale eines Leerlaufschalters
(IDLE-SW) 148, eines Schnellgangschalters
(TOP-SW) 150 und des Starterschalters (START-SW) 152.
Nachstehend werden Impulsausgangsstufen und gesteuerte
Systeme erläutert, die auf den Verarbeitungsergebnissen
der ZE basieren. Ein Einspritzdüsen-Steuerglied (INJC)
134 setzt den Digitalwert des Verarbeitungsergebnisses
in einen Impulsausgang um. Das Einspritzdüsen-Steuerglied
INJC 134 liefert entsprechend Impulse mit einer Dauer entsprechend
der Kraftstoffeinspritzmenge durch ein UND-Glied
136 an die Einspritzdüse 12.
Ein Zündimpuls-Erzeugerglied (IGNC) 138 umfaßt ein Register
ADV, in dem der Zündzeitpunkt gesetzt wird, und ein Register
DWL, in dem die Primärstromführungs-Startzeit der
Zündspule eingestellt wird. Diese Daten werden von der ZE
gesetzt. Die Impulse werden auf der Basis der gesetzten
Daten erzeugt und durch ein UND-Glied 140 dem Verstärker 68
(vgl. auch Fig. 2) zugeführt.
Der Ventilöffnungsgrad des Bypassventils 62 wird von Impulsen
bestimmt, die von einem Steuerglied (ISCC) 142 durch
ein UND-Glied 144 angelegt werden. Das Steuerglied ISCC 142
weist ein Register ISCD, in dem die Impulsdauer gesetzt
wird, und ein Register ISCP auf, in dem die Impulsperiodendauer
gesetzt wird.
Ein Steuerimpulserzeuger (EGRC) 154, der die Abgasrückführmenge
über den Transistor 90 für die Steuerung des Stellventils
86 (vgl. Fig. 3) steuert, umfaßt ein Register EGRD,
in dem ein dem Impulstastverhältnis entsprechender Wert gesetzt
wird, und ein Register EGRP, in dem ein der Impulsperiodendauer
entsprechender Wert gesetzt wird. Die Ausgangsimpulse
des Steuerimpulserzeugers EGRC werden über ein
UND-Glied 156 an den Transistor 90 angelegt.
1-Bit-Eingangs/Ausgangssignale werden von der Stufe DI O gesteuert.
Eingangssignale sind die Signale des Leerlaufschalters
(IDLE-SW) 148, des Schnellgangschalters (TOP-SW)
150 und des Starterschalters (START-SW). Als Augangssignal
wird ein Ausgangsimpuls erzeugt, der die Kraftstoffpumpe
ansteuert. Die Stufe DI O weist ein Register
DDR auf, das bestimmt, ob Anschlüsse als Ein- oder als
Ausgangsanschlüsse zu verwenden sind, sowie ein Register
DOUT zum Halten von Ausgangsdaten.
Ein Register (MOD) 160 hält Befehle für verschiedene Zustände
innerhalb der E/A-Schaltung 108. Z. B. werden durch
Setzen eines Befehls in diesem Register sämtliche UND-
Glieder 136, 140, 144 und 156 geöffnet oder gesperrt. Durch
Setzen von Befehlen in dieser Weise in dem Register MOD 160
können die Stopp- und Start-Zeiten der Ausgänge der Steuerglieder
INJC, IGNC bzw. ISCC gesteuert werden.
Fig. 5 erläutert das Prinzip des erfindungsgemäßen Verfahrens.
Das Programmsystem umfaßt ein Anfangsverarbeitungsprogramm
202, ein Unterbrechungsverarbeitungsprogramm 206,
ein Makroverarbeitungsprogramm 228 und einen Task-Zuteiler
208 als Organisationsprogramme für die Ablaufsteuerung
einer Gruppe von Verarbeitungen, die im folgenden als Tasks
bezeichnet sind. Das Anfangsverarbeitungsprogramm 202 ist
ein Programm zur Durchführung von Vorverarbeitungsschritten
zur Betätigung des Mikrocomputers. Es bewirkt z. B. ein
Löschen des Speicherinhalts des RAM 106 und setzt die
Startwerte der Register und der E/A-Schaltung 108. Ferner
bewirkt es den Ablauf von Verarbeitungsschritten zum Einlesen
von Eingabeinformation für die Durchführung von Vorverarbeitungsvorgängen,
die für die Motorsteuerung erforderlich
sind, z. B. der Daten der Kühlwassertemperatur, der
Batteriespannung etc. Das Unterbrechungsverarbeitungsprogramm
206 nimmt verschiedene Unterbrechungen (Interrupts)
an, analysiert die Unterbrechungsfaktoren und gibt an den
Task-Zuteiler 208 eine Startanforderung zum Starten eines
benötigten Tasks der Gruppe von Tasks 210-226. Wie noch
erläutert wird, umfassen die Unterbrechungsfaktoren eine
Analog-Digital-Umsetzungs-Unterbrechung (ADC-Unterbrechung),
die die Eingangsinformation der Speisespannung, der Kühlwassertemperatur
etc. nach Beendigung der Analog-Digital-
Umsetzungen erzeugt, eine Anfangsunterbrechung (INTL),
die synchron mit der Rotation der Brennkraftmaschine erzeugt
wird, eine Intervall-Unterbrechung (INTV), die jeweils zu
vorgegebenen konstanten Zeitpunkten erzeugt wird, z. B. alle
10 ms, eine Motorstillstands-Unterbrechung (ENST), die bei
Erfassen des Stillstands des Motors erzeugt wird, etc.
Den jeweiligen Tasks in der Gruppe von Tasks 210-226 sind
den Prioritätsebenen entsprechenden Task-Nummern zugeteilt;
sie gehören jeweils zu einer der Task-Ebenen 0 bis 2. Die
Tasks 0 bis 2 gehören entsprechend zur Task-Ebene 0, die
Tasks 3 bis 5 zur Task-Ebene 1 und die Tasks 6 bis 8 zur
Task-Ebene 2.
Der Task-Zuteiler 208 empfängt die Startanforderungen der
verschiedene Unterbrechungen und teilt die Belegungszeiten
der ZE auf der Basis der den verschiedenen Tasks gegebenen
Prioritätsebenen entsprechend diesen Startanforderungen zu.
Dabei entspricht die Prioritätssteuerung der Tasks durch
den Task-Zuteiler 208 dem folgenden Verfahren:
- 1) Die Übertragung der Ablaufberechtigung auf einen Task einer höheren Prioritätsebene durch Unterbrechen eines Tasks einer niedrigeren Prioritätsebene erfolgt nur auf den jeweiligen Task-Ebenen. Dabei hat die Task-Ebene 0 den höchsten Prioritätsgrad.
- 2) Wenn auf ein und derselben Task-Ebene gerade ein Task abläuft oder unterbrochen ist, hat dieser Task den höchsten Prioritätsgrad, und vor seiner Beendigung kann kein anderer Task ablaufen.
- 3) Wenn auf ein und derselben Task-Ebene Startanforderungen für mehrere Tasks vorliegen, hat eine niedrigere Task- Nummer einen höheren Prioritätsgrad.
Die Verarbeitungsinhalte des Task-Zuteilers 208 werden zwar
erst später erläutert; gemäß der Erfindung erfolgt jedoch
die angegebene Prioritätssteuerung so, daß im RAM 106 Softtimer
task-weise und Tasksteuerblöcke taskebenen-weise gesetzt
sind. Wenn ein Task abgearbeitet ist, wird das Ablaufende
des betreffenden Tasks durch das Makroverarbeitungsprogramm
228 dem Task-Zuteiler 208 mitgeteilt.
Unter Bezugnahme auf die Fig. 6-12 werden nunmehr die Verarbeitungsinhalte
des Task-Zuteilers 208 erläutert. Fig. 6
zeigt die Tasksteuerblöcke, die im RAM 106 vorgesehen sind
und vom Task-Zuteiler 208 verwaltet werden. Die Tasksteuerblöcke
sind in derselben Anzahl wie die Task-Ebenen vorgesehen,
in diesem Fall drei entsprechend den Task-Ebenen 0
bis 2 des vorliegenden Beispiels. Jedem Tasksteuerblock
sind acht Bits zugeordnet. Davon sind die Bits 0-2 (Q₀-Q₂)
Startbits, die einen Startanforderungstask bezeichnen, und
Bit 7 (R) ist ein Ablaufbit, das anzeigt, wenn ein Task
auf derselben Task-Ebene gerade abläuft oder unterbrochen
ist. Die Startbits Q₀-Q₂ sind in einer Reihenfolge angeordnet,
die einem höheren Prioritätsgrad in der entsprechenden
Task-Ebene entspricht. So ist z. B. das Startbit für Task 4
in Fig. 5 Q₀ und entspricht der Task-Ebene 1. Wenn die
Startanforderungen für die Tasks erfolgt sind, werden in
jedem der Startbits Kennzeichen (Flags) gesetzt. Andererseits
ruft der Task-Zuteiler 208 die ausgegebenen Startanforderungen
nacheinander von dem dem Task mit höherer Task-
Ebene entsprechenden Startbit ab, setzt die Kennzeichen
entsprechend den ausgegebenen Startanforderungen zurück,
setzt Kennzeichen "1" an den Ablaufbits und führt Verarbeitungen
zum Starten des betreffenden Tasks aus.
Fig. 7 zeigt eine Startadressen-Tabelle, die im RAM 106
enthalten ist, der vom Task-Zuteiler verwaltet wird.
Die Startadressen SA 0 bis SA 8 entsprechen den jeweiligen
Tasks 0 bis 8 der Gruppe von Tasks 210-226 von Fig. 5.
Jeder Startadreßinformation sind 16 Bits zugeordnet. Wie
noch erläutert wird, werden diese Startadreßinformationen
dazu genutzt, die Tasks zu starten, für die Startanforderungen
vom Task-Zuteiler 208 vorliegen.
Die Fig. 8 und 9 erläutern den Verarbeitungsablauf des
Task-Zuteilers 208. Wenn der Verarbeitungsablauf des Task-
Zuteilers 208 in Schritt 300 gestartet wurde, wird in
Schritt 302 bestimmt, ob die Ausführung eines Tasks, der
zu einer Task-Ebene l gehört, unterbrochen ist. Im einzelnen
bezeichnet eine gesetzte "1" im Ablaufbit den Zustand,
daß der Task-Ende-Bericht noch nicht vom Makroverarbeitungsprogramm
228 an den Task-Zuteiler 208 gegeben wurde
und der im Ablauf begriffene Task aufgrund des Auftretens
einer Unterbrechung einer höheren Prioritätsebene unterbrochen
ist. Wenn somit das Kennzeichen "1" im Ablaufbit
gesetzt ist, springt der Ablauf zu Schritt 314, um den
unterbrochenen Task erneut zu starten.
Wenn dagegen das Kennzeichen "1" im Ablaufbit nicht gesetzt
ist, d. h., wenn das Ablaufkennzeichen rückgesetzt ist, geht
die Verarbeitung zu Schritt 304 weiter, in dem entschieden
wird, ob auf der Task-Ebene l ein Start-Wartetask vorhanden
ist. Dies bedeutet, daß die Startbits der Ebene l in der
Reihenfolge höherer Ablaufpriorität der jeweiligen Tasks,
nämlich in der Folge Q₀, Q₁ und Q₂, abgerufen werden. Wenn
in den zur Task-Ebene l gehörenden Startbits das Kennzeichen
"1" nicht gesetzt ist, geht das Programm zu Schritt
306 weiter, um die Task-Ebene zu erneuern. Die Task-Ebene l
wird dabei um +1 auf l + 1 erhöht. Danach geht der Ablauf
zu Schritt 308 weiter, in dem entschieden wird, ob sämtliche
Task-Ebenen geprüft worden sind. Wenn nicht sämtliche
Task-Ebenen geprüft sind, d. h., wenn l = 2 nicht gilt,
kehrt das Programm zu Schritt 302 zurück, und die Verarbeitungsvorgänge
werden in gleicher Weise wie vorher ausgeführt.
Wenn in Schritt 308 entschieden wird, daß sämtliche
Task-Ebenen geprüft sind, geht das Programm zu
Schritt 310 weiter und gibt die Unterbrechung frei. Die
Unterbrechungs-Freigabe erfolgt diesem Schritt, weil
die Unterbrechung während der Verarbeitungsdauer der
Schritte 302-308 blockiert ist. Im folgenden Schritt 312
gelangt die nachfolgende Unterbrechung in die Warteschlange.
Wenn in Schritt 304 auf der Task-Ebene l ein Start-Wartetask
vorhanden ist, d. h., wenn das Kennzeichen "1" in dem
zur Task-Ebene l gehörenden Startbit gesetzt ist, geht das
Programm zu Schritt 400 über (Fig. 9). Durch eine Schleife
bei den Schritten 400 und 402 wird dasjenige Startbit der
Task-Ebene l, dessen Kennzeichen "1" gesetzt ist, in der
Reihenfolge höherer Priorität aufgerufen, also in der
Reihenfolge Q₀, Q₁, Q₂. Wenn das entsprechende Startbit
gefunden wurde, geht das Programm zu Schritt 404 weiter.
In Schritt 404 wird das Startbit, dessen Kennzeichen gesetzt
ist, rückgesetzt, und das Kennzeichen "1" wird im
Ablaufbit (nachstehend R-Bit) der betreffenden Task-Ebene l
gesetzt. In Schritt 406 wird die Start-Task-Nummer festgestellt,
und in Schritt 408 wird die Startadreßinformation
des entsprechenden Start-Tasks aus der Startadreßtabelle im
RAM abgerufen (vgl. Fig. 7).
Anschließend wird in Schritt 410 entschieden, ob der entsprechende
Start-Task ausgeführt wird. Wenn die abgerufene
Startadreßinformation ein bestimmter Wert, z. B. Null, ist,
wird entschieden, daß der entsprechende Task nicht ausgeführt
zu werden braucht. Dieser Entscheidungsschritt ist
erforderlich, um selektiv in Abhängigkeit vom Kraftfahrzeugtyp
nur bestimmte Tasks aus der Task-Gruppe auszuwählen,
die für die Steuerung der Brennkraftmaschine gebracht werden.
Wenn in Schritt 410 entschieden wird, daß der Ablauf
des entsprechenden Tasks zu stoppen ist, geht das Programm
zu Schritt 414 über, in dem das R-Bit der betreffenden
Task-Ebene l rückgesetzt wird. Außerdem geht das Programm
dann zu Schritt 302 zurück (Fig. 8), in dem entschieden
wird, ob ein Task in der Task-Ebene l im Unterbrechungszustand
ist. Da der Fall eintreten kann, daß Kennzeichen in
mehreren Startbits auf der gleichen Task-Ebene l gesetzt
sind, geht das Programm nach dem Rücksetzen des R-Bits in
Schritt 414 zu Schritt 302 über.
Wenn dagegen in Schritt 410 (Fig. 9) der Ablauf des betreffenden
Tasks nicht gestoppt, sondern durchgeführt werden
soll, geht das Programm zu Schritt 412 weiter und springt zu
dem betreffenden Task über, woraufhin dieser ausgeführt wird.
Fig. 10 zeigt den Verarbeitungsablauf des Makroverarbeitungsprogramms
228. Dieses Programm umfaßt Schritte 562 und 564
zum Auffinden des Task-Endes. In den Schritten 562 und 564
werden Task-Ebenen von "0" ausgehend wiederaufgefunden,
und die beendete Task-Ebene wird ermittelt. Anschließend
geht das Programm zu Schritt 568 weiter, in dem das Ablaufkennzeichen
(R-Kennzeichen) des siebten Bits des Tasksteuerblocks
des beendeten Tasks rückgesetzt wird. Damit ist der
Ablauf des Tasks vollständig beendet. Das Programm geht zum
Task-Zuteiler 208 zurück, und der nächste Task wird bestimmt.
Unter Bezugnahme auf Fig. 11 werden nun Ablauf und Unterbrechung
von Tasks erläutert, wobei die Task-Prioritätssteuerung
durch den Task-Zuteiler 208 erfolgt. Dabei bezeichnen
in der Startanforderung N mn der Index m die Task-Ebene
und der Index n den Prioritätsgrad in der Task-Ebene m. Es
sei angenommen, daß die ZE ein Organisationsprogramm OS ablaufen
läßt. Wenn dann während des Ablaufs des Organisationsprogramms
OS eine Startanforderung N₂₁ aufgetreten ist, wird
zum Zeitpunkt T₁ der Ablauf des der Startanforderung N₂₁ entsprechenden
Tasks 6 gestartet. Wenn dabei während des Ablaufs
des Tasks 6 eine Startanforderung N₀₁ für einen Task mit
höherer Ablaufpriorität zu einer Zeit T₂ auftritt, geht
der Ablauf zum Organisationsprogramm OS, und die vorbestimmten,
bereits angegebenen Verarbeitungsschritte werden
ausgeführt, woraufhin der Ablauf des der Startanforderung
N₀₁ entsprechenden Tasks 0 zur Zeit T₃ gestartet wird.
Wenn während des Ablaufs des Tasks 0 eine Startanforderung
N₁₁ zu einer Zeit T₄ auftritt, geht der Ablauf einmal zum
Organisationsprogramm OS, und die vorbestimmten Verarbeitungsschritte
werden durchgeführt, woraufhin der Ablauf des
unterbrochenen Tasks zur Zeit T₅ wieder gestartet wird.
Wenn der Ablauf des Tasks 0 zur Zeit T₆ beendet ist, geht
der Ablauf wieder zum Organisationsprogramm OS. Hier wird
das Ablaufende des Tasks 0 dem Task-Zuteiler 208 durch das
Makroverarbeitungsprogramm 228 mitgeteilt. Zur Zeit T₇
wird der Ablauf des Tasks 3, der in der Warteschlange war,
entsprechend einer Startanforderung N₁₁ wieder gestartet.
Wenn während des Ablaufs des Tasks 3 eine Startanforderung
N₁₂ mit niedrigerer Priorität in der gleichen Task-Ebene 1
zur Zeit T₈ auftritt, wird der Ablauf des Tasks 3 einmal
unterbrochen. Der Ablauf geht zum Organisationsprogramm OS,
und die vorbestimmten Schritte werden durchgeführt, woraufhin
der Ablauf des Tasks 3 zur Zeit T₉ wieder gestartet
wird. Wenn der Ablauf des Tasks 3 zur Zeit T₁₀ beendet ist,
geht der Ablauf zum Organisationsprogramm OS, und der Task-
Zuteiler 208 erhält durch das Makroverarbeitungsprogramm
228 die Mitteilung vom Ablaufende des Tasks 3. Anschließend
wird zu einer Zeit T₁₁ der Ablauf des Tasks 4 entsprechend
einer Startanforderung N₁₂ mit niedrigerer Priorität gestartet.
Wenn der Ablauf des Tasks 4 zur Zeit T₁₂ beendet
ist, geht der Ablauf zum Organisationsprogramm OS zur Durchführung
der vorbestimmten Schritte, und anschließend wird
zur Zeit T₁₃ der Ablauf des Tasks 6, der bis dahin unterbrochen
war und der der Startanforderung N₂₁ entspricht,
wieder gestartet.
In der vorstehend angegebenen Weise wird die Prioritätssteuerung
der Tasks durchgeführt.
Fig. 12 zeigt die Zustandsübergänge bei der Prioritätssteuerung
der Tasks. Eine Art Ruhezustand ist der Startwartezustand,
in dem noch keine Startanforderung für einen
Task ausgegeben wurde. Wenn anschließend eine Startanforderung
auftritt, wird im Startbit des Tasksteuerblocks ein
Kennzeichen gesetzt, um anzuzeigen, daß der Start erforderlich
ist. Die Zeitdauer, innerhalb der sich der Ruhezustand
in einen Warteschlangenzustand ändert, hängt von den Ebenen
der entsprechenden Tasks ab. Die Entscheidung über die
Reihenfolge wird ferner im Warteschlangenzustand getroffen
und hängt vom Prioritätsgrad ab. Der betreffende Task gelangt
in den Ablaufzustand, nachdem das Kennzeichen des
Startbits des Tasksteuerblocks durch den Task-Zuteiler 208
im Organisationssprogramm OS rückgesetzt und das Kennzeichen
im R-Bit (siebten Bit) gesetzt wurden. Damit wird der Ablauf
des betreffenden Tasks ausgelöst. Dieser Zustand ist
der Ablaufzustand. Wenn der Ablauf beendet ist, wird das
Kennzeichen des R-Bits des Tasksteuerblocks gelöscht, und
der Ende-Bericht wird abgegeben. Dann endet der Ablaufzustand,
und der Ruhezustand beginnt erneut, wobei das Auftreten
der nächsten Startanforderung abgewartet wird. Wenn
jedoch während des Ablaufs des Tasks eine Unterbrechung
(IRQ) aufgetreten ist, muß der Ablauf des betreffenden
Tasks unterbrochen werden. Daher wird der Ablauf des betreffenden
Tasks unterbrochen, so daß der Bereitschaftszustand
vorliegt. Wenn anschließend der Ablaufzustand nach
Unterbrechung wieder vorliegt, wird der Ablauf des betreffenden
unterbrochenen Tasks erneut gestartet. Der Bereitschaftszustand
geht dann also wieder in den Ablaufzustand
über. Auf diese Weise wiederholt das Programm jeder
Ebene die vier Zustände von Fig. 12. In dieser Fig. sind
typische Abläufe dargestellt. Es besteht aber auch die
Möglichkeit, daß ein Kennzeichen im Startbit des Tasksteuerblocks
im Bereitschaftszustand gesetzt wird. Dies entspricht
z. B. dem Fall, daß während der Startunterbrechung
ein Startanforderungszeitpunkt nächst dem betreffenden
Task erreicht wird. Zu dieser Zeit erhält das Kennzeichen
des R-Bits eine Priorität, und der unterbrochene Task
wird zuerst beendet. Somit verschwindet das Kennzeichen
des R-Bits, und der Warteschlangenzustand wird durch das
Kennzeichen des Startbits hergestellt, ohne daß der Ruhezustand
durchlaufen wird.
Auf diese Weise befinden sich die Tasks 0-8 in einem der
Zustände nach Fig. 12.
Fig. 13 zeigt ein konkretes Ausführungsbeispiel des Programmsystems
von Fig. 5. Dabei besteht das Organisationsprogramm
OS aus dem Anfangsverarbeitungsprogramm 202, dem
Unterbrechungsverarbeitungsprogramm 206, dem Makroverarbeitungsprogramm
228 und dem Task-Zuteiler.
Das Unterbrechungsverarbeitungsprogramm 206 umfaßt verschiedene
Unterbrechungsverarbeitungsstufen. Eine Anfangs-Unterbrechungsverarbeitungsstufe
(INTL) 602 ist so ausgelegt,
daß Anfangsunterbrechungen für die halbe Anzahl Zylinder
der Brennkraftmaschine (d. h. zweimal bei vier Zylindern)
je Umdrehung der Maschine erfolgen, und zwar mittels Anfangsunterbrechungssignalen,
die synchron mit der Rotation
der Brennkraftmaschine erzeugt werden. Durch die Anfangsunterbrechung
INTL wird die Einspritzdauer des Kraftstoffs,
die im Task EGI 612 berechnet wird, in ein entsprechendes
Register der E/A-Schaltung 108 gesetzt (vgl. Fig. 4). Die
Unterbrechungsverarbeitungsstufe ADU 604 umfaßt zwei Arten,
nämlich die ADU1-Unterbrechung und die ADU2-Unterbrechung.
Die Einheit ADU1 hat eine Genauigkeit von acht Bits und
wird für die Eingänge der Speisespannung, der Kühlwassertemperatur,
der Ansauglufttemperatur, der Betriebseinstellung
usw. verwendet. Sie beginnt mit der Umsetzung zur
gleichen Zeit, zu der der Eingabezeitpunkt zum MPX 120
festgelegt wird, und erzeugt die ADU1-Unterbrechung
nach Beendigung der Umsetzung. Diese Unterbrechung wird
nur vor dem Anlassen verwendet. Der Analog-Digital-Umsetzer
ADU 128 wird andererseits für die Eingabe des Luftdurchsatzes
verwendet und erzeugt die ADU2-Unterbrechung
nach Beendigung der Umsetzung. Diese Unterbrechung wird
ebenfalls nur vor dem Anlassen verwendet.
In einer Intervall-Unterbrechungsverarbeitungsstufe INTV
606 wird für jede im entsprechenden INTV-Register gesetzte
Zeit, z. B. alle 10 ms, ein INTV-Unterbrechungssignal erzeugt
und als Basissignal für die Zeitüberwachung eines
Tasks, der zu einem festgelegten Zeitpunkt zu starten ist,
verwendet. Mit diesem Unterbrechungssignal wird der Softtimer
erneuert, und ein Task, der die vorgeschriebene Zeit
erreicht hat, wird gestartet. Ferner wird in einer Motorstillstands-
Unterbrechungsverarbeitungsstufe ENST 608 der
Stillstand des Motors erfaßt. Bei Erfassen des INTL-Unterbrechungssignals
wird mit dem Zählen begonnen. Wenn das
INTL-Unterbrechungssignal anschließend nicht innerhalb
einer vorgegebenen Zeit, z. B. 1 s, erfaßt wird, erfolgt die
ENST-Unterbrechung. Wenn die ENST-Unterbrechung dreimal
aufgetreten ist, d. h., wenn auch nach Ablauf von z. B. 3 s
kein INTL-Unterbrechungssignal erfaßt wurde, wird entschieden,
daß der Motor stillsteht, und die Energieversorgung
der Zündspule und die Kraftstoffpumpe werden abgeschaltet.
Nach diesen Verarbeitungsschritten wird mit der Steuerung
gewartet, bis der Startschalter 152 eingeschaltet wird.
Die Verarbeitungsschritte für die vorstehend angegebenen
Unterbrechungsfaktoren sind in der Tabelle 1 angegeben.
faktorVerarbeitungs-Ablauf INTLKraftstoffeinspritzdauer wird in das Register EGI gesetzt. ADU1Task ADIN1 wird gestartet. ADU2Task ADIN2 wird gestartet. INTVDie Startperioden der Tasks ADIN2, EGI, MONIT, ADIN1, AFSIA und ISC, die zu festgelegten Zeiten zu starten sind, werden geprüft, und die Tasks, die die vorgeschriebenen Zeiten erreicht haben, werden gestartet. ENSTDie Motorstillstands-Verarbeitungsschritte werden durchgeführt, und die Steuerung wird in den An fangszustand zurückgebracht.
faktorVerarbeitungs-Ablauf INTLKraftstoffeinspritzdauer wird in das Register EGI gesetzt. ADU1Task ADIN1 wird gestartet. ADU2Task ADIN2 wird gestartet. INTVDie Startperioden der Tasks ADIN2, EGI, MONIT, ADIN1, AFSIA und ISC, die zu festgelegten Zeiten zu starten sind, werden geprüft, und die Tasks, die die vorgeschriebenen Zeiten erreicht haben, werden gestartet. ENSTDie Motorstillstands-Verarbeitungsschritte werden durchgeführt, und die Steuerung wird in den An fangszustand zurückgebracht.
Vom Anfangsverarbeitungsprogramm 202 und dem Makroverarbeitungsprogramm
228 werden die bereits erläuterten Verarbeitungsschritte
durchgeführt.
Die Gruppe von Tasks, die durch die verschiedenen Unterbrechungen
gestartet werden, setzt sich wie folgt zusammen:
Zur Task-Ebene 0 gehören ein Eingabetask ADU2 (ADIN2-Task), der Kraftstoffeinspritz-Steuertask (EGI-Task) 612 und ein Startüberwachungstask (MONIT-Task) 614. Zur Task-Ebene 1 gehören ein ADU1-Task (ADIN1-Task) 616 und ein Zeitkoeffizienten- Verarbeitungstask (AFSIA-Task) 618. Zur Task-Ebene 2 gehören schließlich ein Leerlauf-Steuertask (ISC-Task) 620, ein Task zur Berechnung des Änderungskoeffizienten (HOSEI-Task) 622 und ein Start-Vorverarbeitungstask (ISTRT- Task) 624.
Zur Task-Ebene 0 gehören ein Eingabetask ADU2 (ADIN2-Task), der Kraftstoffeinspritz-Steuertask (EGI-Task) 612 und ein Startüberwachungstask (MONIT-Task) 614. Zur Task-Ebene 1 gehören ein ADU1-Task (ADIN1-Task) 616 und ein Zeitkoeffizienten- Verarbeitungstask (AFSIA-Task) 618. Zur Task-Ebene 2 gehören schließlich ein Leerlauf-Steuertask (ISC-Task) 620, ein Task zur Berechnung des Änderungskoeffizienten (HOSEI-Task) 622 und ein Start-Vorverarbeitungstask (ISTRT- Task) 624.
Die Zuordnung der verschiedenen Task-Ebenen und die Verarbeitungen
der Tasks sind in Tabelle 2 angegeben.
Wie aus Tabelle 2 ersichtlich ist, sind die Startperioden
der von den verschiedenen Unterbrechungen auszulösenden
Tasks vorher festgelegt. Diese Informationen werden
im ROM 104 gespeichert gehalten.
Unter Bezugnahme auf die Fig. 14-16 wird nun die INTV-
Unterbrechungsverarbeitung erläutert. Fig. 14 zeigt eine
Softtimertabelle, die im RAM 106 enthalten ist. Sie umfaßt
Zeitgeberblöcke, deren Anzahl gleich den von den verschiedenen
Unterbrechungen zu startenden Startperioden ist. Dabei
sind mit Zeitgeberblöcken Speicherbereiche gemeint,
zu denen Zeitinformationen bezüglich der Startperioden der
im ROM 104 gespeicherten Tasks übertragen wird. TMB auf
der linken Seite der Fig. 14 bezeichnet die erste Adresse
der Softtimertabelle im RAM 106. Die zeitliche Information
über die Startperiode (wenn die INTV-Unterbrechung z. B.
alle 10 ms durchgeführt wird, ein um ganzzahlige Zeiten
größerer Wert) wird beim Start des Motors vom ROM 104 zu
jedem Taktgeberblock übertragen und dort gespeichert.
Fig. 15 zeigt den Verarbeitungsablauf der Unterbrechungsverarbeitungsstufe
INTV 606. Wenn das Programm in Schritt
626 gestartet ist, wird in Schritt 628 die Softtimertabelle
im RAM 106 initialisiert, d. h., der Inhalt i des Indexregisters
wird zu Null gemacht, und die Restzeit t i , die
im Taktgeberblock der Adresse TMB+0 der Softtimertabelle
gespeichert ist, wird geprüft. In diesem Fall gilt t i = t₀.
Anschließend wird in Schritt 630 entschieden, ob der in
Schritt 628 geprüfte Softtimer gestoppt ist. Wenn die gespeicherte
Restzeit t i = 0 ist, wird entschieden, daß der Softtimer
gestoppt ist, und es wird entschieden, daß der durch den
Softtimer zu startende betreffende Task gestoppt ist, und
der Ablauf geht zu Schritt 640, in dem die Softtimertabelle
erneuert wird.
Wenn dagegen die Restzeit der Softtimertabelle t i ≠ 0 ist,
geht der Ablauf zu einem Schritt 632, in dem die Restzeit
erneuert wird. Dabei wird die Restzeit t i um -1 vermindert.
Anschließend wird in Schritt 634 entschieden, ob
der Softtimer die Startperiode erreicht hat. Wenn die
Restzeit t i = 0 ist, wird entschieden, daß die Startperiode
erreicht ist, und der Ablauf geht in diesem Fall
zu Schritt 636. Wenn andererseits entschieden wird, daß
der Softtimer die Startperiode nicht erreicht hat, springt
das Programm zu Schritt 640, in dem die Softtimertabelle
erneuert wird. Wenn andererseits die Softtimertabelle die
Startperiode erreicht hat, wird in Schritt 636 die Restzeit
t i der Softtimertabelle ausgelöst, d. h., die Zeitinformation
der Startperiode des betreffenden Tasks wird
vom ROM 104 in den RAM 106 übertragen. Nachdem in Schritt
636 die Restzeit t i ausgelöst ist, erfolgt in Schritt 638
die Startanforderung für den der Softtimertabelle entsprechenden
Task. Anschließend wird in Schritt 640 die
Softtimertabelle erneuert, d. h., der Inhalt des Indexregisters
wird um +1 erhöht. Ferner wird in Schritt 642
entschieden, ob sämtliche Softtimertabellen geprüft sind.
Da bei dem Ausführungsbeispiel nach Fig. 14 n + 1 Softtimertabellen
vorgesehen sind, wird entschieden, daß sämtliche
Softtimertabellen geprüft sind, wenn der Inhalt i
des Indexregisters i = n + 1 ist. In diesem Fall endet das
Unterbrechungsverarbeitungsprogramm INTV 606 in Schritt
644. Wenn dagegen in Schritt 642 entschieden wird, daß
nicht alle Softtimertabellen geprüft sind, geht das Programm
zu Schritt 630 zurück, worauf die gleichen Schritte
wie oben angegeben durchgeführt werden.
In der oben angegebenen Weise wird die Startanforderung
für den betreffenden Task entsprechend den verschiedenen
Unterbrechungen ausgegeben, und der Ablauf des jeweiligen
Tasks erfolgt auf der Grundlage der Anforderung. Allerdings
werden nicht immer sämtliche in Tabelle 2 angegebenen
Tasks zum Ablauf gebracht. Auf der Basis der Betriebsinformationen
vom Motor wird die zeitliche Information betreffend
die Startperiode jeder der Gruppen von Tasks im ROM 104
ausgewählt und in der Softtimertabelle im RAM 106, zu
der sie übertragen wird, gespeichert. Wenn z. B. angenommen
wird, daß die Startperiode des betreffenden Tasks 20 ms
ist, wird der Task jeweils zu diesem Zeitpunkt gestartet.
Wenn der Start des Tasks kontinuierlich in Abhängigkeit
von den Betriebsbedingungen durchgeführt werden muß, wird
die dem betreffenden Task entsprechende Softtimertabelle
jeweils wieder erneuert und ausgelöst.
Unter Bezugnahme auf das Impulsdiagramm von Fig. 16 wird
erläutert, wie die Tasks durch die verschiedenen Unterbrechungen
entsprechend den Betriebsbedingungen des Motors
gestartet und gestoppt werden. Wenn durch Betätigen des
Startschalters 152 (Fig. 4) der Strom eingeschaltet wird,
arbeitet die ZE, und "1" wird in einem Software-Kennzeichen
IST und einem Software-Kennzeichen EM gesetzt. Das Software-
Kennzeichen IST bedeutet, daß sich der Motor im Zustand
vor dem Start befindet, während das Software-Kennzeichen
EM die ENST-Unterbrechung unterdrückt. Aufgrund
dieser beiden Kennzeichen wird unterschieden, ob sich der
Motor im Zustand vor dem Start, während des Anlassens oder
nach dem Anlassen befindet. Wenn die Stromversorgung durch
Betätigen des Startschalters 152 eingeschaltet ist, wird
zuerst der Task ADIN1 gestartet, und für das Anlassen des
Motors erforderliche Daten, z. B. Eingabeinformation wie
die Kühlwassertemperatur und die Batteriespannung, werden
dem ADU 122 durch den MPX 120 von den verschiedenen Fühlern
zugeführt. Der Task HOSEI wird in jedem Eingabezyklus dieser
Daten gestartet, und Änderungsberechnungen werden auf
der Grundlage der Eingabeinformation durchgeführt. In
jedem Eingabezyklus der Daten von den verschiedenen Fühlern
zum ADU 122 durch den Task ADIN1 wird der Task ISTRT gestartet,
um die während des Anlassens des Motors erforderliche
einzuspritzende Kraftstoffmenge zu berechnen. Die
vorgenannten drei Tasks ADIN1, HOSEI und ISTRT werden durch
das Anfangsverarbeitungsprogramm 202 gestartet.
Wenn der Startschalter 152 eingeschaltet ist, werden die
drei Tasks ADIN1, MONIT und ADIN2 durch das Unterbrechungssignal
des Tasks ISTRT gestartet. Diese Tasks brauchen nur
während der Zeit abzulaufen, in der der Startschalter 152
eingeschaltet ist, d. h. während des Anlassens des Motors.
Während dieser Zeit werden vom ROM 104 die zeitlichen Informationen
der vorbestimmten Startperioden zu den Softtimertabellen,
die im RAM 106 vorgesehen sind und den Tasks
entsprechen, übertragen und dort gespeichert. In dieser
Zeit wird die Restzeit t i der Startperiode der Softtimertabelle
ausgelöst, und die Startperiode wird wiederholt
gesetzt. Der Task MONIT dient zum Berechnen der beim Anlassen
des Motors einzuspritzenden Kraftstoffmenge und
kann nach dem Anlassen entfallen. Wenn daher der Task so
oft wie vorgegeben beendet wurde, wird der Start des Softtimers
gestoppt, und das beim Task-Ende ausgegebene Stoppsignal
wird dazu benutzt, die Gruppe weiterer Tasks zu
starten, die nach dem Anlassen des Motors benötigt werden.
Dabei wird der Stopp des Tasks durch den Softtimer so
durchgeführt, daß in die entsprechende Softtimertabelle
des Tasks "0" durch ein Signal eingeschrieben wird, das
das Task-Ende zum Zeitpunkt der Entscheidung des Endes
des Tasks anzeigt, d. h., das anzeigt, daß der Inhalt des
Softtimers gelöscht ist. Wie aus der obigen Erläuterung
hervorgeht, werden beim vorliegenden Ausführungsbeispiel
die Starts und Stopps der Tasks in einfacher Weise durch
die Softtimer durchgeführt; dadurch wird es möglich, einen
wirksamen und zuverlässigen Ablauf für mehrere Tasks mit
ungleichen Startperioden durchzuführen.
Fig. 17 zeigt eine Unterbrechungs-Erzeugungsschaltung für
die Unterbrechungsanforderung INTV-IRQ, die aus einem
Register 735, einem Zähler 736, einem Vergleicher 737 und
einem Flipflop (F-F) 738 besteht. Die Arbeitsperiode, z. B.
10 ms beim vorliegenden Ausführungsbeispiel, wird in das
Register 735 gesetzt. In dem Zähler 736 werden Taktimpulse
gesetzt. Wenn der Zählwert des Zählers 736 mit dem Inhalt
des Registers 735 übereinstimmt, wird das Flipflop
738 gesetzt. Der Zähler 736 wird durch den Setzzustand
gelöscht und beginnt erneut mit dem Zählen. Infolgedessen
wird die Unterbrechungsanforderung INTV-IRQ zu festen
Zeitpunkten (alle 10 ms) erzeugt.
In analoger Weise bilden ein Register 741, ein Zähler 742,
ein Vergleicher 743 und ein Flipflop 744 eine Unterbrechungs-
Erzeugungsschaltung für die Unterbrechungsanforderung
ENST-IRQ, bei der der Stillstand des Motors erfaßt
wird. Das Register 741, der Zähler 742 und der Vergleicher
743 sind, wie in der vorher beschriebenen Schaltung ausgebildet,
und die Unterbrechungsanforderung ENST-IRQ wird
erzeugt, wenn der Zählwert des Zählers 742 den Wert im
Register 741 erreicht. Während des Laufs des Motors wird
jedoch der Zähler 742 durch die REF-Impulse gelöscht, die
bei vorgegebenen Kurbelwinkeln vom Kurbelwinkelfühler erzeugt
werden, so daß der Zählwert des Zählers 742 nicht
den Wert des Registers 741 erreicht und keine Unterbrechungsanforderung
ENST-IRQ auftritt.
Die in den Flipflops 738 und 744 erzeugten Unterbrechungsanforderungen
INTV-IRQ bzw. ENST-IRQ und die im ADU1 oder
ADU2 erzeugten Unterbrechungsanforderungen IRQ werden in
Flipflops 740, 746, 764 bzw. 768 gesetzt. Signale zum Erzeugen
oder Inhibieren der IRQ's werden in Flipflops 739,
745, 762 und 766 gesetzt. Wenn in den Flipflops 739, 745,
762 und 766 "H" gesetzt ist, werden die UND-Glieder 748,
750, 770 und 772 geöffnet. Wenn die Unterbrechungsanforderung
IRQ erzeugt wird, tritt das entsprechende Signal sogleich
am ODER-Glied 751 auf.
Je nachdem, ob "H" oder "L" in die entsprechenden Flipflops
739, 745, 762 und 766 gesetzt wird, kann die Erzeugung
des IRQ-Signals entweder unterdrückt oder die Inhibierung
aufgehoben werden. Wenn die Unterbrechungsanforderung
IRQ erzeugt ist, ist der Grund für seine Erzeugung
durch Laden der Inhalte der Flipflops 740, 746, 764 und
768 in die ZE bekannt.
Wenn die ZE mit dem Ablauf des Programms aufgrund des IRQ-
Signals begonnen hat, muß gelöscht werden, und damit
wird eines der Flipflops 740, 746, 764 und 768, das der
betreffenden Unterbrechungsanforderung zugeordnet ist,
deren Ablauf begonnen hat, gelöscht.
Fig. 18 ist ein Flußdiagramm des INJ-Programms zur Ermittlung
der Kraftstoffmenge, das mit einer Zeitperiode von 20 ms
aktiviert wird. In Schritt 800 wird der Digitalwert QA,
der das Ausgangssignal des Luftmengenmessers 24 darstellt
und im RAM 106 durch Ausführung des Tasks ADU2IN nach A-D-
Umsetzung gespeichert wurde, ausgelesen. In Schritt 802
wird der ausgelesene Ist-Wert von QA mit QA-Werten verglichen,
die unter x n in einem AF-Kennfeld im ROM 104 gespeichert
sind, wodurch n von x n entsprechend dem Ist-Wert
von QA bestimmt wird. In Schritt 804 wird die Motordrehzahl
N, die im RAM durch Ausführung des Tasks RPMIN gespeichert
wurde, ausgelesen. In Schritt 806 wird der Ist-
Wert von N, der ausgelesen wurde, mit den Werten von N,
die unter y n im AF-Kennfeld gespeichert sind, verglichen,
um dadurch n von y n entsprechend dem Ist-Wert von N zu
bestimmen. In Schritt 808 wird eine Adresse des AF-Kennfelds
auf der Basis von x n und y n , die in Schritt 802 bzw.
806 bestimmt wurden, bestimmt. Die unter der ermittelten
Adresse gespeicherte Kraftstoffzufuhrmenge wird ausgelesen
und in Schritt 810 in das Register INJD 134 (vgl. Fig. 4)
eingegeben.
Fig. 19 zeigt ein Flußdiagramm für das Programm IGN-CAL
zur Zündzeitpunktermittlung. In Schritt 820 wird der digitale
Wert QA, der den Ausgang des Luftmengenmessers darstellt
und durch Ausführung des Programms ADU2IN im RAM
gespeichert wurde, ausgelesen. In Schritt 822 wird der
Ist-Wert von QA, wie ausgelesen, mit Werten von QA verglichen,
die unter x n eines ADV-Kennfelds im ROM 104 gespeichert,
sind, wodurch n von x n bestimmt wird, das dem
Ist-Wert von QA entspricht. In Schritt 824 wird die Motordrehzahl
N, die im RAM durch Ausführung von RPMIN gespeichert
wurde, ausgelesen. In Schritt 826 wird der ausgelesene
Ist-Wert von N mit Werten von N verglichen, die
unter y n des ADV-Kennfeldes gesetzt sind, um n von y n zu
bestimmen, das dem Ist-Wert von N entspricht. In Schritt
828 wird eine Adresse im ADV-Kennfeld auf der Grundlage
von x n und y n , die in den Schritten 822 bzw. 826 ermittelt
wurden, bestimmt und der an der ermittelten Adresse gespeicherte
Zündzeitpunkt ausgelesen. In Schritt 830 wird
der ermittelte Wert in das Register ADV (Fig. 4) eingegeben.
Das Programm HOSEI dient dem Festlegen von Korrekturkoeffizienten
z. B. für die Außenlufttemperatur bzw. die Kühlwassertemperatur.
Da sich diese Variablen nur langsam
ändern, genügt es, die Korrekturkoeffizienten in langen
Zeitintervallen zu bestimmen.
Das Programm ADU2IN ist z. B. in den US-Patentanmeldungen
42 80 189 und 42 97 881 angegeben. Das Programm RPMIN ist z. B.
Gegenstand der US-Patentanmeldung 42 80 189. Das Programm
ENST ist z. B. in der US-Patentanmeldung 43 12 038 beschrieben.
Fig. 20 zeigt Einzelheiten des Programms ISC zur Steuerung
des Öffnungsgrads des Bypassventils 62 im Leerlaufbetrieb.
Wenn durch Überwachung von DI O (Fig. 4) in Schritt 850
entschieden wird, daß der Leerlaufschalter 148 eingeschaltet
ist, wird das erste Bit des Registers DOUT auf Pegel
"L" gesetzt, wodurch das Bypassventil 62 bezeichnet wird.
Damit wird das Bypassventil in Abhängigkeit von dem im
Register EGRD von Fig. 4 gesetzten Wert gesteuert. Das
Bypassventil 62, das den Luftdurchsatz D air durch den
Bypasskanal 26 bestimmt, wird entsprechend den besonderen
Betriebsbedingungen gesteuert. Bei Betrieb bei
niedriger Umgebungstemperatur, etwa im Winter, bei Kaltstart,
bei Betrieb mit hoher Last z. B. bei laufender
Klimaanlage im Kraftfahrzeug od. dgl., wird der Luftdurchsatz
durch den Bypasskanal erhöht.
In Schritt 852 wird das Tastverhältnis des Bypassventils
bestimmt und im Register EGRD in Abhängigkeit von der
Kühlwassertemperatur (TW) des Motors gesetzt.
In Schritt 854 wird entschieden, ob der Leerlaufschalter
148 geschlossen ist. Wenn er geschlossen ist, wird in
Schritt 856 das Betätigungs-Anforderungskennzeichen für
das Programm ISC gesetzt, d. h., das Bit "1" wird bei Q10
des Tasksteuerworts TCW10 des RAM (vgl. Fig. 16) gesetzt.
Gleichzeitig wird das erste Bit des Registers DOUT von DIO 174
auf den Pegel "L" gesetzt.
Anschließend wird eine Endanzeige ausgegeben.
Wenn andererseits der Leerlaufschalter geöffnet ist, wird
sofort eine Endanzeige ausgegeben. Infolgedessen wird
dieses Programm nicht mehr ausgeführt. Wenn also der Leerlaufschalter
in Schritt 856 geschlossen ist, wird das Betätigungs-
Anforderungskennzeichen für das Programm ISC
gesetzt, und dann erfolgt die Endanzeige.
Fig. 21 zeigt den Ablauf des Programms EGRCAL. Wenn der
Leerlaufschalter geöffnet ist, wird das Teillast-Luftventil
62 nicht gesteuert, jedoch die Abgasrückführung ausgeführt.
Zu diesem Zweck wird das EGR-System zum Steuern der Abgasrückführmenge
in Betrieb gesetzt. Dazu wird das erste Bit
im Register DOUT von DI O in Schritt 860 auf den Pegel "H"
gesetzt, wodurch das EGR-System von Fig. 3 entsprechend dem
im Register EGRD von Fig. 4 gesetzten Wert betrieben
wird. Dann wird die Menge des rückzuführenden Abgases
berechnet. In Schritt 862 wird geprüft, ob die Kühlwassertemperatur
TW höher als ein vorbestimmter Wert TA
(°C) ist. Wenn dies der Fall ist, wird die Abgasrückführung
inhibiert oder abgeschaltet. Zu diesem Zweck wird
im EGRD-Register Null gesetzt, um in Schritt 866 die EGR-
Abschaltung durchzuführen. Wenn festgestellt wird, daß
die Kühlwassertemperatur TW niedriger als der vorbestimmte
Wert TA ist, geht das Programm zu Schritt 864 über, wo
entschieden wird, ob die Kühlwassertemperatur TW niedriger
als ein vorbestimmter Wert TB ist. Wenn dies der Fall ist,
wird die Abgasrückführung inhibiert. Die Temperatur TA in
Schritt 862 stellt entsprechend die Obergrenze dar,
während die Temperatur TB in Schritt 864 die Untergrenze
darstellt. Nur wenn die Kühlwassertemperatur TW des Motors
im Bereich zwischen TA und TB liegt, wird folglich die
Abgasrückführung ausgeführt, d. h., das Programm geht zu
Schritt 868 über, wo die Abgasrückführmenge rechnerisch
auf der Basis der Ansaugluftmenge QA und der Drehzahl N
des Motors durch Auslesen von Werten aus einem QA-N-Kennfeld
bestimmt wird. Dieses Kennfeld ist im ROM 104 gespeichert.
Die ausgelesenen Werte werden in das Register EGRD
gesetzt. Auf diese Weise wird das Abgasrückführventil in
Abhängigkeit von dem im Register EGRD befindlichen Wert
und dem vorher im Register EGRP gesetzten Tastverhältnis
geöffnet, so daß eine entsprechende Abgasrückführung erfolgt
(Schritt 870).
In Schritt 872 wird entschieden, ob der Leerlaufschalter
geschlossen ist, und zwar durch Überwachung von DIO. Wenn
der Leerlaufschalter geöffnet ist, wird das Betätigungs-
Anforderungskennzeichen für das Programm EGRCAL gesetzt
(Schritt 874), d. h., das Bit "1" wird bei Q11 des Tasksteuerworts
TCW11 des RAM gesetzt. Außerdem wird das erste
Bit des Registers DOUT von DI O auf den Pegel "H" gesetzt.
Anschließend erfolgt eine Endanzeige.
Die Erfindung wurde zwar in Verbindung mit der Steuerung
einer Brennkraftmaschine in einem Kraftfahrzeug erläutert,
ist jedoch selbstverständlich nicht darauf beschränkt
und auch für die Steuerung anderer Brennkraftmaschinen einsetzbar.
Bei der erläuterten Steuerung sind die Softtimer Task-weise
und die Steuerblöcke für die Verwaltung der Tasks Taskebenen-
weise in dem RAM gesetzt, so daß für jeden Ablauf
des Tasks der Ablaufende-Bericht für den jeweiligen Task
erfolgen kann. Daher ist es erfindungsgemäß möglich, eine
Verminderung des Lastfaktors des Mikroprozessors und eine
verbesserte Steuerbarkeit von Brennkraftmaschinen zu erzielen.
Claims (2)
- Verfahren zur Steuerung des Betriebs von Brennkraftmaschinen mit folgenden Schritten:
- - Erfassung von Betriebsparametern der Brennkraftmaschine,
- - Berechnung von Steuergrößen auf der Basis der erfaßten Betriebsparameter unter Aufgliederung der Verarbeitungsvorgänge in einzelne Verarbeitungen,
- - funktionelle Klassifikation der Verarbeitungen zur Berechnung der Steuergrößen in vorgegebene Prioritätsgrade, die jeweils der zeitlichen Dringlichkeit der zu berechnenden Steuergröße beim Betrieb der Brennkraftmaschine entsprechen,
- - Erzeugen von mehreren von der Drehzahl der Brennkraftmaschine
unabhängigen Unterbrechungssignalfolgen, die jeweils
eine vorgegebene Periode besitzen, einem jeweiligen
Prioritätsgrad der Verarbeitungen zugeordnet sind
und jeweils die Verarbeitung starten oder unterbrechen,
wobei
- - eine Verarbeitung niedrigerer Priorität von einem Unterbrechungssignal unterbrochen wird, wenn eine Verarbeitung höherer Priorität durch dieses Unterbrechungssignal gestartet werden muß, und
- - die unterbrochene Verarbeitung nach der Ausführung der Verarbeitung mit höherer Priorität fortgesetzt oder eine weitere Verarbeitung begonnen wird, und
- - Umsetzen der berechneten Steuergrößen in Stellgrößen für die Stellglieder der Brennkraftmaschine,
- dadurch gekennzeichnet, daß innerhalb eines jeweiligen Prioritätsgrads die zeitliche Rangfolge der Verarbeitungen ebenfalls durch die Perioden der zugeordneten Unterbrechungssignalfolgen in folgender Weise festgelegt wird: wobei die Periode der Unterbrechungssignalfolgen bei höherem Prioritätsgrad (0, 1) kürzer ist als bei niedrigerem Prioritätsgrad (2, 3).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11295379A JPS5638542A (en) | 1979-09-05 | 1979-09-05 | Controlling method for engine |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3033526A1 DE3033526A1 (de) | 1981-04-16 |
DE3033526C2 true DE3033526C2 (de) | 1988-11-10 |
Family
ID=14599655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19803033526 Granted DE3033526A1 (de) | 1979-09-05 | 1980-09-05 | Elektronisches steuerverfahren fuer brennkraftmaschinen |
Country Status (5)
Country | Link |
---|---|
US (1) | US4482962A (de) |
JP (1) | JPS5638542A (de) |
DE (1) | DE3033526A1 (de) |
FR (1) | FR2464373A1 (de) |
GB (1) | GB2058406B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4410775A1 (de) * | 1994-03-28 | 1995-10-05 | Siemens Ag | Steuergerät und Betriebssystem für dieses Steuergerät |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3420316C2 (de) * | 1983-05-31 | 1997-01-09 | Canon Kk | Verfahren zur Steuerung eines Kopiergeräts |
JPS60121127A (ja) * | 1983-12-06 | 1985-06-28 | Nissan Motor Co Ltd | パワ−トレ−ンの制御方法 |
JPS60128031A (ja) * | 1983-12-14 | 1985-07-08 | Nissan Motor Co Ltd | パワ−トレ−ンの制御方法 |
US4599695A (en) * | 1984-05-25 | 1986-07-08 | Motorola, Inc. | Microprocessor transient interrupt system adaptable for engine control |
US4791560A (en) * | 1985-07-31 | 1988-12-13 | Unisys Corporation | Macro level control of an activity switch in a scientific vector processor which processor requires an external executive control program |
DE3544079C2 (de) * | 1985-12-13 | 1998-07-30 | Bosch Gmbh Robert | Verfahren zur Verarbeitung von Interrupt-Signalen |
JPH06100155B2 (ja) * | 1985-12-20 | 1994-12-12 | 本田技研工業株式会社 | エンジン制御装置の演算処理方法 |
US4954948A (en) * | 1986-12-29 | 1990-09-04 | Motorola, Inc. | Microprocessor operating system for sequentially executing subtasks |
DE3890118C2 (de) * | 1987-02-13 | 1992-04-16 | Mitsubishi Denki K.K., Tokio/Tokyo, Jp | |
JPH0219633A (ja) * | 1988-07-05 | 1990-01-23 | Fuji Heavy Ind Ltd | エンジンの点火時期制御装置 |
DE3826526A1 (de) * | 1988-08-04 | 1990-02-08 | Bosch Gmbh Robert | Verfahren und vorrichtung zum einstellen von betriebsgroessen einer brennkraftmaschine |
FR2658628B1 (fr) * | 1990-02-20 | 1992-09-18 | Renault | Systeme informatique pour gerer l'execution en temps reel de taches selon des priorites et hierarchies predeterminees. |
WO1992017796A1 (en) * | 1991-03-28 | 1992-10-15 | The Commonwealth Of Australia | Radar control task scheduling |
JPH0622544U (ja) * | 1992-08-31 | 1994-03-25 | 日産ディーゼル工業株式会社 | アクセルコントロール装置 |
JPH06250869A (ja) * | 1993-03-01 | 1994-09-09 | Hitachi Ltd | 分散制御システム |
DE19527541A1 (de) * | 1995-07-27 | 1997-01-30 | Siemens Ag | Vorrichtung zur Erzeugung von Steuersignalen |
DE19757875C2 (de) * | 1997-12-24 | 2001-11-29 | Bosch Gmbh Robert | Verfahren zum Betreiben einer Brennkraftmaschine insbesondere eines Kraftfahrzeugs |
CN1193281C (zh) * | 1999-11-15 | 2005-03-16 | 西门子公司 | 自动化设备及更新方法 |
JP2003515697A (ja) * | 1999-11-30 | 2003-05-07 | シーメンス アクチエンゲゼルシヤフト | 内燃機関用の制御装置、内燃機関の調整素子用の制御ユニット及び内燃機関の制御方法 |
JP4277396B2 (ja) * | 1999-11-30 | 2009-06-10 | 株式会社デンソー | 電子制御装置 |
JP3578082B2 (ja) * | 2000-12-20 | 2004-10-20 | 株式会社デンソー | 処理実行装置及び記録媒体 |
JP5392337B2 (ja) * | 2011-10-18 | 2014-01-22 | 株式会社デンソー | センサ信号の処理装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3327294A (en) * | 1964-03-09 | 1967-06-20 | Gen Precision Inc | Flag storage system |
GB1397438A (en) * | 1971-10-27 | 1975-06-11 | Ibm | Data processing system |
FR2355437A6 (fr) * | 1972-05-10 | 1978-01-13 | Peugeot & Renault | Systeme de commande du type analogique-numerique-analogique a calculateur digital a fonctions multiples pour vehicule automobile |
FR2183580B1 (de) * | 1972-05-10 | 1977-01-14 | Peugeot & Renault | |
US3825902A (en) * | 1973-04-30 | 1974-07-23 | Ibm | Interlevel communication in multilevel priority interrupt system |
GB1468642A (en) * | 1975-01-07 | 1977-03-30 | Burroughs Corp | Data processing systems |
US4091447A (en) * | 1976-07-19 | 1978-05-23 | Union Carbide Corporation | Interrupt control system for a microcomputer |
US4152761A (en) * | 1976-07-28 | 1979-05-01 | Intel Corporation | Multi-task digital processor employing a priority |
JPS5340105A (en) * | 1976-09-24 | 1978-04-12 | Nippon Denso Co Ltd | Automobile control unit |
DE2840706C2 (de) * | 1977-09-21 | 1985-09-12 | Hitachi, Ltd., Tokio/Tokyo | Elektronische Steuereinrichtung zum Steuern des Betriebs einer Brennkraftmaschine |
JPS5458115A (en) * | 1977-10-19 | 1979-05-10 | Hitachi Ltd | Engine controller |
JPS6060025B2 (ja) * | 1977-10-19 | 1985-12-27 | 株式会社日立製作所 | 自動車制御方法 |
JPS6060024B2 (ja) * | 1977-10-19 | 1985-12-27 | 株式会社日立製作所 | エンジン制御方法 |
JPS5543447A (en) * | 1978-09-22 | 1980-03-27 | Hitachi Ltd | Hot-wire type flow rate measuring device |
JPS55109760A (en) * | 1979-02-19 | 1980-08-23 | Hitachi Ltd | Electronic ignition control |
EP0017219B1 (de) * | 1979-04-06 | 1987-10-14 | Hitachi, Ltd. | Verfahren und Vorrichtung zur elektronischen Steuerung eines Motors |
JPS55134721A (en) * | 1979-04-06 | 1980-10-20 | Hitachi Ltd | Electronic engine controlling method |
JPS55137358A (en) * | 1979-04-16 | 1980-10-27 | Nissan Motor Co Ltd | Controller for automobile |
-
1979
- 1979-09-05 JP JP11295379A patent/JPS5638542A/ja active Granted
-
1980
- 1980-09-02 GB GB8028324A patent/GB2058406B/en not_active Expired
- 1980-09-04 FR FR8019084A patent/FR2464373A1/fr active Granted
- 1980-09-05 DE DE19803033526 patent/DE3033526A1/de active Granted
-
1984
- 1984-02-06 US US06/577,613 patent/US4482962A/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4410775A1 (de) * | 1994-03-28 | 1995-10-05 | Siemens Ag | Steuergerät und Betriebssystem für dieses Steuergerät |
DE4410775C2 (de) * | 1994-03-28 | 2000-04-06 | Daimler Chrysler Ag | Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät |
Also Published As
Publication number | Publication date |
---|---|
FR2464373B1 (de) | 1983-06-10 |
JPS6239261B2 (de) | 1987-08-21 |
GB2058406A (en) | 1981-04-08 |
US4482962A (en) | 1984-11-13 |
FR2464373A1 (fr) | 1981-03-06 |
GB2058406B (en) | 1984-07-25 |
JPS5638542A (en) | 1981-04-13 |
DE3033526A1 (de) | 1981-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3033526C2 (de) | ||
DE2845354C2 (de) | ||
DE2845356C2 (de) | ||
DE3048674C2 (de) | ||
DE2845351C2 (de) | Eingangssignal-Prozessor für elektronische Brennkraftmaschinen-Regelanordnung | |
DE2801641A1 (de) | Zuendverstellverfahren und zuendversteller fuer brennkraftmaschinen | |
DE2742765A1 (de) | Elektrische steuervorrichtung und steuermethode fuer einen verbrennungsmotor | |
DE3138101C2 (de) | Verfahren zur Steuerung der Zündverstellung bei einer Brennkraftmaschine | |
DE2845352A1 (de) | Verfahren und anordnung zum regeln einer brennkraftmaschine | |
DE3024933C2 (de) | Verfahren zum Regeln des Kraftstoff-Luft-Verhältnisses bei Brennkraftmaschinen | |
DE2840706A1 (de) | Elektronische brennkraftmaschinen- regelanordnung | |
DE19828710A1 (de) | Verfahren und Vorrichtung zum Steuern der Kraftstoffzuführung während Übergangszuständen eines Verbrennungsmotors | |
DE2917888A1 (de) | Verfahren zum steuern der arbeitsweise einer brennkraftmaschine | |
DE2845350A1 (de) | Elektronische brennkraftmaschinen- regelanordnung | |
DE3135107A1 (de) | Lader-steuereinrichtung | |
DE2551681A1 (de) | Verfahren und vorrichtung zur bestimmung der dauer von einspritz-steuerbefehlen bei einer brennkraftmaschine | |
DE3108601C2 (de) | Verfahren zur Steuerung der Kraftstoffeinspritzung bei einer Brennkraftmaschine | |
DE2929797C2 (de) | Verfahren und Anordnung zum Steuern der Kraftstoffzufuhr, insbesondere der Kraftstoffeinspritzung, zu einer Brennkraftmaschine | |
DE2845355C2 (de) | ||
DE2935679C2 (de) | ||
DE2932050A1 (de) | Drehzahl-messumformer fuer brennkraftmaschinen | |
DE3922448C2 (de) | Regeleinrichtung für das Kraftstoff-Luftverhältnis einer Brennkraftmaschine | |
DE4327912C1 (de) | Motorleerlaufdrehzahlsteuergerät | |
DE2845357C2 (de) | ||
DE3403260C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |