EP0608456A1 - Engine control - Google Patents
Engine control Download PDFInfo
- Publication number
- EP0608456A1 EP0608456A1 EP93101326A EP93101326A EP0608456A1 EP 0608456 A1 EP0608456 A1 EP 0608456A1 EP 93101326 A EP93101326 A EP 93101326A EP 93101326 A EP93101326 A EP 93101326A EP 0608456 A1 EP0608456 A1 EP 0608456A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- processed
- interrupts
- control according
- activation
- engine
- 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.)
- Granted
Links
Images
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
Definitions
- the invention relates to a motor control according to the preamble of claim 1.
- Priority-high are programs that trigger an engine control process at a given crank angle, e.g. Fuel is injected or ignited. So-called background programs run with low priority.
- the time-dependent programs are divided into different groups, at least one program group with the shortest distance and longer programs. At least one of the longer programs is added to the program group with the shortest distance, thereby forming a network group.
- This known operating system is complex.
- the invention has for its object to provide a motor control with faster change times for the tasks to be processed.
- Essential components of an engine control system 1 are a computing part 2 and a real-time part 3 (FIG. 1).
- the computing part and the real-time part are connected to one another by a so-called two-port or three-port RAM 4, by a plurality of so-called handshake lines 5 and by an interrupt line 6.
- a plurality of input lines 8 and output lines 9 are connected to the real-time part 3.
- Input variables arrive via the input lines 8 and are measured in the real-time part, e.g. Sensor signals that reflect the position of the crankshaft or camshaft.
- Control signals are output to actuators via the output lines 9, with which e.g. the ignition and the fuel injection are triggered.
- the real-time part 3 has two microprocessors of the 87C51GB type from Intel.
- Analogue temperature signals for example, reach the computing part via an input line 10 and are digitized in this in an internal AD converter.
- Other input lines 10 are connected to an HSI input and to port pins of the computing part 2.
- Pulse-width-modulated control signals LLFS are output via the output lines 11 from a so-called HSO output of the computing part to the idle filling actuator of the engine and signals TEV to the tank ventilation valve of the vehicle.
- the vehicle and engine components not belonging to the engine control 1 are not shown, nor is the internal structure of the processors used, since they refer to the manuals of Manufacturer can be removed. Only a few of the input and output lines are shown to represent the actual lines.
- a line 14 forms a serial interface of the computing part 2 and via a bus 15 it is connected to two memory components, a RAM 16 and an EPROM 17.
- the task of the computing part in FIG. 2 is to record and evaluate the measurement data received, either directly or via the real-time part 3, and to calculate control signals for the ignition, injection, etc. based on this and output them to the corresponding actuators via the real-time part 3.
- an operating system is used for the motor control, which is designed as described below.
- the external interrupt EXTINT arriving via line 6 to computing part 2 is emitted by real-time part 3.
- each crankshaft segment i.e. with a 6-cylinder engine every 120 ° KW (crankshaft angle)
- an external interrupt EXTINT is carried out.
- an EXTINT is generated for each tooth of the crankshaft pulley, i.e. every 6 ° crankshaft rotation, activated. This interrupt or interruption EXTINT triggers a calculation cycle of the data for one cylinder at a time.
- HSO interrupts are used to generate pulse-width-modulated control signals for the tank vent valve TEV, the idle charge controller LLFS and the throttle valve actual value DKI.
- a request for short time orders ZV_KURZ is issued in a time grid of 10 ms.
- the HSI interrupt is used to evaluate the speedometer signal of the motor vehicle.
- HSI / O high speed input / output
- HSI / O high speed input / output
- the interrupts for the serial interface are used to control the sending and receiving of data with external Development and adaptation, measuring and testing devices are exchanged.
- the time management for short time jobs is carried out as follows. As soon as a task or task has been processed, it is checked whether there is a request for a short time task ZV_KURZ. If this is the case, the request is activated. A task is a part of a program that is activated and is returned to the operating system after it has been processed.
- a list 20 is provided in RAM 16 - abbreviated to BERLST_SYNC - in which the start addresses of the tasks to be activated are entered.
- this list is constructed as a ring memory and can hold up to 32 entries.
- the entry pointer marks the position in the list in which the next task address is entered, the processing pointer points to the start address of the task that is currently being processed or is called up next.
- a status mark "synchronous request" is set and the start address is entered in the position of the synchronous list 20 to which the entry pointer is currently pointing.
- the entry pointer is then increased and limited to the permissible maximum value - here 32.
- a task is called up by computing part 2 looking at the content of the task list - i.e. the entry address of the task - loads to which the processing pointer points and jumps to the loaded address.
- the processing pointer is increased, limited and compared with the entry pointer. If the value of both pointers is the same, this means that the jobs in the synchronous list have been processed.
- the status mark "Synchronous request available" is reset.
- Synchronous tasks are those parts of the program that have to be processed in a rigid temporal relationship to the rotation of the crankshaft.
- a synchronous task can only be called from the synchronous part of the operating system, but an entry in the synchronous list can be made from any priority level.
- the pointers When the processing list 20, which is designed as a ring memory, is managed, the pointers must be limited in order to avoid that they extend beyond the end of the list due to a constant increase. After each addition, it is checked whether the respective pointer has exceeded the end of the list. If this is the case, the pointer is set back to the beginning of the task list.
- a synchronization task is entered with a macro command "Start address synchronization task" START_TASK_SYNC.
- the return address from a synchronous task to the operating system is always VON_SYNC.
- the time management for long time jobs is carried out as follows. After processing the time management for short time jobs and all currently entered synchronous tasks, the time management ZV_LANG is activated if a request is present. A request for a time management ZV_LANG is entered every 10 ms by the ZV_KURZ.
- the asynchronous tasks are processed with the lowest priority in the present motor control, i.e. they are only activated if there are no requests from ZV_KURZ, synchronous tasks and ZV_LANG.
- the way in which the asynchronous tasks are processed is the same as that for the synchronous tasks, but there is a separate list 23 (FIG. 3) for the start addresses of the asynchronous tasks - the so-called ready list for asynchronous tasks BERLST_ASY - with its own processing pointer ASYNC_B and entry pointer ASYNC_E.
- An asynchronous task can be entered from any priority level and is executed with the macro command "Start address asynchronous task" START_TASK.
- the tasks can each be in one of three states: "COMPUTING” when the program is being processed in computing part 2; "READY” or “WAITING” if the program is requested but not yet running, and "SLEEPING” or “NOT ACTIVE” if neither of the first two states is present.
- the various tasks and time management can only be interrupted at any time by interrupts.
- the interrupt job is then processed and then the processing of the started task or time management is continued.
- the maximum time for the processing of tasks must be less than 10 ms so that the time management ZV_LANG can work correctly.
- FIG. 4 The operating system of the computing part 2 of the engine control 1 described above is shown in FIG. 4 in the form of a structogram.
- the symbol “ ⁇ >” here means “not equal” or “not equal”
- a query 26 as to whether the processing pointer of the synchronous list is different from the entry pointer of the synchronous list corresponds to the query as to whether there is a request for a synchronizing task.
- a query 27 as to whether the processing pointer of the asynchronous list is not equal to the (associated) entry pointer corresponds to the query as to whether there is a request for a synchronization task.
- the content of the other boxes of the structogram 25 is self-explanatory, also in view of the above description.
- a controller 1 for a motor vehicle engine contains a computing part 2, by means of which measured values are recorded and evaluated, reflect the operating variables of the engine, and control signals are generated for actuators which act on engine operation (ignition, injection, etc.).
- An operating system controls the acquisition and evaluation of the measured values and the generation of control signals in such a way that short change times result for the programs to be processed.
- the operating system defines the following groups of workflows to be processed with a graded priority: requesting interruptions (interrupts), time management jobs and activation of workflows.
Abstract
Description
Die Erfindung betrifft eine Motorsteuerung nach dem Oberbegriff von Patentanspruch 1.The invention relates to a motor control according to the preamble of
Bei einer bekannten Motorsteuerung (DE 38 26 526 A1) laufen Programme unterschiedlicher zeitlicher Priorität ab. Prioritätshoch sind Programme, mit denen bei einem vorgegebenen Kurbelwinkel ein Motorsteuervorgang ausgelöst wird, z.B. Kraftstoff eingespritzt oder gezündet wird. Mit niedriger Priorität laufen sogenannte Hintergrundprogramme ab. Die zeitabhängigen Programme sind in verschiedene Gruppen eingeteilt, mindestens in eine abstandskürzeste Programmgruppe und abstandslängere Programme. An die abstandskürzeste Programmgruppe ist mindestens eines der abstandslängeren Programme angefügt, wodurch eine Verbundgruppe gebildet wird. Dieses bekannte Betriebssystem ist aufwendig.In a known motor controller (DE 38 26 526 A1), programs with different temporal priority run. Priority-high are programs that trigger an engine control process at a given crank angle, e.g. Fuel is injected or ignited. So-called background programs run with low priority. The time-dependent programs are divided into different groups, at least one program group with the shortest distance and longer programs. At least one of the longer programs is added to the program group with the shortest distance, thereby forming a network group. This known operating system is complex.
Der Erfindung liegt die Aufgabe zugrunde, eine Motorsteuerung mit schnelleren Wechselzeiten für die zu bearbeitenden Aufgaben zu schaffen.The invention has for its object to provide a motor control with faster change times for the tasks to be processed.
Diese Aufgabe wird durch die Motorsteuerung nach Anspruch 1 gelöst.This object is achieved by the engine control according to
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen niedergelegt.Advantageous further developments of the invention are laid down in the subclaims.
Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand der Zeichnung erläutert. Es zeigen:
Figur 1 die wesentlichen Bestandteile einer erfindungsgemäßen Motorsteuerung als Blockschaltbild,Figur 2 und 3 den Aufbau der Synchronliste und der Asynchronliste des Betriebssystems der Motorsteuerung nachFigur 1 und- Figur 4 ein Struktogramm des Betriebssystems der Motorsteuerung nach
Figur 1.
- FIG. 1 shows the essential components of an engine control according to the invention as a block diagram,
- Figures 2 and 3 the structure of the synchronous list and the asynchronous list of the operating system of the engine control according to Figure 1 and
- FIG. 4 shows a structure diagram of the operating system of the engine control according to FIG. 1.
Wesentliche Bestandteile einer Motorsteuerung 1 sind ein Rechenteil 2 und ein Echtzeitteil 3 (Figur 1). Der Rechenteil und der Echtzeitteil sind durch ein sog. Zwei- oder Drei-Port-RAM 4, durch mehrere sog. Handshake-Leitungen 5 und durch eine Interrupt-Leitung 6 miteinander verbunden.Essential components of an
An den Echtzeitteil 3 sind mehrere Eingangsleitungen 8 und Ausgangssleitungen 9 angeschlossen. Über die Eingangsleitungen 8 treffen Eingangsgrößen ein, die in dem Echtzeitteil gemessen werden, z.B. Sensorsignale, die die Lage der Kurbelwelle oder der Nockenwelle wiedergeben. Über die Ausgangsleitungen 9 werden Steuersignale an Aktoren ausgegeben, mit denen z.B. die Zündung und die Kraftstoffeinspritzung ausgelöst werden. Im vorliegenden Ausführungsbeispiel weist der Echtzeitteil 3 zwei Mikroprozessoren des Typs 87C51GB der Firma Intel auf.A plurality of input lines 8 and
An den Rechenteil 2 sind ebenfalls mehrere Eingangsleitungen 10 und Ausgangssleitungen 11 angeschlossen. Über eine Eingangsleitung 10 gelangen z.B. analoge Temperatursignale zu dem Rechenteil und werden in diesem in einem internen AD-Wandler digitalisiert. Andere Eingangsleitungen 10 sind an einen HSI-Eingang und an Port-Pins des Rechenteils 2 angeschlossen. Über die Ausgangsleitungen 11 werden von einem sogenannten HSO-Ausgang des Rechenteils pulsweitenmodulierte Steuersignale LLFS an den Leerlauffüllungssteller des Motors und Signale TEV an das Tankentlüftungsventil des Fahrzeugs ausgegeben. In der Zeichnung sind die nicht zu der Motorsteuerung 1 gehörenden Fahrzeugs- und Motorbestandteile nicht dargestellt, ebenso nicht der interne Aufbau der verwendeten Prozessoren, da sie den Handbüchern des Herstellers entnommen werden können. Von den Eingangs- und Ausgangsleitungen sind nur einige wenige stellvertretend für die tatsächlich vorhandenen Leitungen dargestellt.Several input lines 10 and output lines 11 are also connected to the
Eine Leitung 14 bildet eine serielle Schnittstelle des Rechenteils 2 und über einen Bus 15 ist dieser mit zwei Speicherbausteinen, einem RAM 16 und einem EPROM 17, verbunden.A
Die Aufgabe des Rechenteils in 2 ist es, die - entweder direkt oder über den Echtzeitteil 3 - empfangenen Meßdaten zu erfassen und auszuwerten und darauf basierend Steuersignale für die Zündung, die Einspritzung usw. zu berechnen und über den Echtzeitteil 3 an die entsprechenden Aktoren auszugeben. Um die Arbeiten mit der erforderlichen Genauigkeit und Schnelligkeit erledigen zu können, wird für die Motorsteuerung ein Betriebssystem eingesetzt, das wie nachfolgend beschrieben ausgebildet ist.The task of the computing part in FIG. 2 is to record and evaluate the measurement data received, either directly or via the real-time part 3, and to calculate control signals for the ignition, injection, etc. based on this and output them to the corresponding actuators via the real-time part 3. In order to be able to do the work with the required accuracy and speed, an operating system is used for the motor control, which is designed as described below.
Durch das Betriebssystem sind folgende, in abgestufter Priorität abzuarbeitende Gruppen von Arbeitsabläufen festgelegt:
- Anforderungen von Unterbrechungen (Interrupts),
- Zeitverwaltungsaufträge und
- Aktivierung von Arbeitsabläufen.
- Requests of interrupts,
- Time management orders and
- Activation of work processes.
Dabei ergeben sich fünf sog. Prioritätsebenen, d.h. eine Unterteilung der Arbeitsabläufe in folgende Prioritäts- oder Vorrangstufen für die zu erledigenden Arbeiten oder Tasks, und zwar in absteigender Reihenfolge:
- Interrupts (angeforderte Unterbrechungen)
- Überprüfung auf abgearbeitete (oder abgelaufene) kurze Zeitaufträge ZV_KURZ
- Synchrontasks (Aktivierung von synchronen Arbeitsabläufen)
- Überprüfung auf abgearbeitete (oder abgelaufene) lange Zeitaufträge ZV_LANG, und
- Asynchrontasks (Aktivierung von asynchronen Arbeitsabläufen)
- externer Interrupt EXTINT
- HSO-Interrupt
- HSI-Interrupt
- Interrupt für die serielle Schnittstelle.
- Interrupts
- Check for completed (or expired) short time orders ZV_KURZ
- Synchronous tasks (activation of synchronous workflows)
- Check for processed (or expired) long time orders ZV_LANG, and
- Asynchronous tasks (activation of asynchronous workflows)
- external interrupt EXTINT
- HSO interrupt
- HSI interrupt
- Interrupt for the serial interface.
Der über die Leitung 6 zu dem Rechenteil 2 gelangende externe Interrupt EXTINT wird von dem Echtzeitteil 3 ausgesendet. Sobald sich der Echtzeitteil 2 auf die Bewegung einer Zahnscheibe, die an der Kurbelwelle befestigt ist, synchronisiert hat, wird jedes Kurbelwellen-Segment, d.h. bei einem 6-Zylinder-Motor alle 120° KW(Kurbelwellenwinkel), ein externer Interrupt EXTINT durchgeführt. Solange der Echtzeitteil 2 noch nicht synchronisiert ist, wird ein EXTINT bei jedem Zahn der Kurbelwellen-Scheibe, d.h. alle 6° Kurbelwellendrehung, aktiviert. Dieser Interrupt oder Unterbrechung EXTINT gibt den Anstoß für einen Berechnungszyklus der Daten für jeweils einen Zylinder.The external interrupt EXTINT arriving via line 6 to computing
HSO-Interrupts werden benutzt, um pulsweitenmodulierte Steuersignale für das Tankentlüftungsventil TEV, den Leerlauffüllungssteller LLFS und den Drosselklappen-Istwert DKI zu erzeugen. Zusätzlich wird in einem Zeitraster von 10 ms eine Anforderung für kurze Zeitaufträge ZV_KURZ ausgegeben.HSO interrupts are used to generate pulse-width-modulated control signals for the tank vent valve TEV, the idle charge controller LLFS and the throttle valve actual value DKI. In addition, a request for short time orders ZV_KURZ is issued in a time grid of 10 ms.
Der HSI-Interrupt wird für die Auswertung des Tachosignals des Kraftfahrzeugs benutzt. Bei dem vorstehend genannten Mikroprozessor 80C196KB wird mit HSI/O (high speed input/output) ein Anschluß für die schnellen Datenein- und - ausgabe bezeichnet.The HSI interrupt is used to evaluate the speedometer signal of the motor vehicle. With the above-mentioned microprocessor 80C196KB, HSI / O (high speed input / output) is a connection for fast data input and output.
Die Interrupts für die serielle Schnittstelle dienen dazu, das Senden und Empfangen von Daten zu steuern, die mit externen Entwicklungs- und Anpassungs-, Meß- und Testgeräten ausgetauscht werden.The interrupts for the serial interface are used to control the sending and receiving of data with external Development and adaptation, measuring and testing devices are exchanged.
Die Zeitverwaltung für kurze Zeitaufträge wird wie folgt durchgeführt. Sobald eine Aufgabe oder Task abgearbeitet ist, wird überprüft, ob eine Anforderung für einen kurzen Zeitauftrag ZV_KURZ vorliegt. Ist dies der Fall, so wird die Anforderung aktiviert. Als Aufgabe oder Task wird hier ein Programmteil bezeichnet, der aktiviert wird und nach dessen Abarbeitung wieder in das Betriebssystem zurückgesprungen wird.The time management for short time jobs is carried out as follows. As soon as a task or task has been processed, it is checked whether there is a request for a short time task ZV_KURZ. If this is the case, the request is activated. A task is a part of a program that is activated and is returned to the operating system after it has been processed.
Die Zeitverwaltung für kurze Zeitaufträge führt folgende Aufgaben durch:
- Setzen einer Anforderung für eine Zeitverwaltung für lange Zeitaufträge ZV_LANG.
- Inkrementieren eines als interne Systemuhr dienenden Zählers AKZEIT.
- Verwaltung von Zeitaufträgen für kurze Zeiten (10 ms). Hierbei können vorgegebene Funktionen abgearbeitet, z.B. AD-Wandlungen gestartet, Eingangssignale überprüft, Synchrontasks oder Asynchrontasks usw. eingetragen werden.
- Aktivierung einer Diagnosekommunikation im Bedarfsfall.
- Set a request for a time management for long time orders ZV_LANG.
- Incrementing a counter AKZEIT serving as an internal system clock.
- Management of time jobs for short times (10 ms). Predefined functions can be processed, e.g. AD conversions started, input signals checked, synchronous tasks or asynchronous tasks etc. entered.
- Activation of diagnostic communication if necessary.
Die Synchrontasks werden folgendermaßen verwaltet oder abgearbeitet. Im RAM-Speicher 16 ist eine Liste 20 vorgesehen - abgekürzt BERLST_SYNC - , in der die Anfangsadressen der zu aktivierenden Tasks eingetragen werden. In dem vorliegenden Ausführungsbeispiel ist diese Liste als Ringspeicher aufgebaut und faßt bis zu 32 Einträgen. Für die Liste gibt es zwei Zeiger, einen sog. Eintragszeiger BERLST_E_ZEIG und einen Bearbeitungszeiger BERLST_B_ZEIG. Der Eintragszeiger markiert die Stelle in der Liste, in der die nächste Taskadresse eingetragen wird, der Bearbeitungszeiger zeigt auf die Anfangsadresse der Task, die gerade abgearbeitet oder als nächste aufgerufen wird.The synchronous tasks are managed or processed as follows. A
Wird eine Synchrontask eingetragen, so wird eine Statusmarke "Synchronanforderung" gesetzt und die Anfangsadresse in die Stelle der Synchronliste 20 eingetragen, auf die der Eintragszeiger gerade zeigt. Anschließend wird der Eintragszeiger erhöht, und dabei auf den zulässigen Maximalwert - hier 32 - begrenzt.If a synchronous task is entered, a status mark "synchronous request" is set and the start address is entered in the position of the
Der Aufruf einer Task erfolgt, indem sich der Rechenteil 2 den Inhalt der Task-Liste - d.h. die Einsprungadresse der Task - lädt, auf die der Bearbeitungszeiger verweist, und auf die geladene Adresse springt.A task is called up by computing
Ist eine Task abgearbeitet worden, so wird der Bearbeitungszeiger erhöht, begrenzt und mit dem Eintragszeiger verglichen. Ist der Wert beider Zeiger gleich, bedeutet dies, daß die Aufträge in der Synchronliste abgearbeitet sind. Die Statusmarke "Synchronanforderung vorhanden" wird zurückgesetzt.If a task has been processed, the processing pointer is increased, limited and compared with the entry pointer. If the value of both pointers is the same, this means that the jobs in the synchronous list have been processed. The status mark "Synchronous request available" is reset.
Synchrontasks sind hier diejenigen Programmteile, die in starrer zeitlicher Bindung an die Drehung der Kurbelwelle abgearbeitet werden müssen. Eine Synchrontask kann nur aus dem Synchronteil des Betriebssystems aus aufgerufen werden, ein Eintrag in die Synchronliste kann jedoch von jeder Prioritätsebene aus erfolgen.Synchronous tasks are those parts of the program that have to be processed in a rigid temporal relationship to the rotation of the crankshaft. A synchronous task can only be called from the synchronous part of the operating system, but an entry in the synchronous list can be made from any priority level.
Bei der Verwaltung der als Ringspeicher ausgeführten Bearbeitungsliste 20 müssen die Zeiger, um zu vermeiden, daß sie durch ein ständiges Erhöhen über das Listenende hinauslaufen, begrenzt werden. Hierbei wird nach jeder Addition überprüft, ob der jeweilige Zeiger über das Ende der Liste hinausgelaufen ist. Ist dies der Fall, so wird der Zeiger wieder auf den Anfang der Task-Liste gesetzt.When the
Eine Synchrontask wird mit einem Makrobefehl"Anfangsadresse Synchrontask" START_TASK_SYNC eingetragen.A synchronization task is entered with a macro command "Start address synchronization task" START_TASK_SYNC.
Die Rücksprungadresse aus einer Synchrontask in das Betriebssystem lautet immer VON_SYNC.The return address from a synchronous task to the operating system is always VON_SYNC.
Die Zeitverwaltung für lange Zeitaufträge wird folgendermaßen durchgeführt. Nach Abarbeitung der Zeitverwaltung für kurze Zeitaufträge und sämtlicher momentan eingetragener Synchrontasks wird die Zeitverwaltung ZV_LANG aktiviert, sofern eine Anforderung vorhanden ist. Alle 10 ms wird durch die ZV_KURZ eine Anforderung für eine Zeitverwaltung ZV_LANG eingetragen.The time management for long time jobs is carried out as follows. After processing the time management for short time jobs and all currently entered synchronous tasks, the time management ZV_LANG is activated if a request is present. A request for a time management ZV_LANG is entered every 10 ms by the ZV_KURZ.
Mit niedrigster Priorität werden bei der vorliegenden Motorsteuerung die Asynchrontasks abgearbeitet, d.h., sie werden erst aktiviert, wenn keine Anforderungen von ZV_KURZ, Synchrontasks und ZV_LANG vorhanden sind.The asynchronous tasks are processed with the lowest priority in the present motor control, i.e. they are only activated if there are no requests from ZV_KURZ, synchronous tasks and ZV_LANG.
Die Funktionsweise beim Abarbeiten der Asynchrontasks ist gleich der bei den Synchrontasks, es existiert jedoch eine eigene Liste 23 (Figur 3) für die Anfangsadressen der Asynchrontasks - die sog. Bereitliste für Asynchrontasks BERLST_ASY - mit eigenen Bearbeitungszeiger ASYNC_B und Eintragszeiger ASYNC_E.The way in which the asynchronous tasks are processed is the same as that for the synchronous tasks, but there is a separate list 23 (FIG. 3) for the start addresses of the asynchronous tasks - the so-called ready list for asynchronous tasks BERLST_ASY - with its own processing pointer ASYNC_B and entry pointer ASYNC_E.
Ein Eintrag einer Asynchrontask kann aus jeder Prioritätsebene erfolgen und wird mit dem Makrobefehl "Anfangsadresse Asynchrontask" START_TASK ausgeführt.An asynchronous task can be entered from any priority level and is executed with the macro command "Start address asynchronous task" START_TASK.
Ein Rücksprung aus der Asynchrontask in das Betriebssystem muß immer auf die Adresse VON_ASYNC erfolgen.A return from the asynchronous task to the operating system must always be made to the address VON_ASYNC.
Die Tasks können sich jeweils in einem von drei Zuständen befinden: "RECHNEND", wenn das Programm in dem Rechenteil 2 abgearbeitet wird; "BEREIT" oder "WARTEND", wenn das Programm angefordert ist, aber noch nicht ausgeführt wird, und "SCHLAFEND" oder "NICHT AKTIV", wenn keiner der ersten beiden Zustände vorliegt.The tasks can each be in one of three states: "COMPUTING" when the program is being processed in computing
Die verschiedenen Tasks und Zeitverwaltungen können jederzeit aber nur durch Interrupts unterbrochen werden. Es wird dann der Interrupt-Auftrag abgearbeitet und anschließend wieder die Abarbeitung der begonnenen Task oder Zeitverwaltung fortgesetzt. Für die Tasks und Zeitverwaltungen gilt: ein Auftrag mit höherer Priorität kann erst nach Abarbeitung des momentanen Auftrages - auch wenn dieser eine niedrigere Priorität hat - aktiviert werden.The various tasks and time management can only be interrupted at any time by interrupts. The interrupt job is then processed and then the processing of the started task or time management is continued. The following applies to tasks and time management: a job with a higher priority can only be activated after the current job has been processed - even if it has a lower priority.
Die maximale Zeit für die Abarbeitung von Tasks einschließlich der Zeit für die möglicherweise während der Abarbeitung auftretenden Interrupts muß kleiner als 10 ms sein, damit die Zeitverwaltung ZV_LANG fehlerfrei arbeiten kann.The maximum time for the processing of tasks, including the time for the interrupts that may occur during processing, must be less than 10 ms so that the time management ZV_LANG can work correctly.
Je kürzer die einzelnen Tasks sind, desto höhere Echtzeit-Anforderungen werden von dem Betriebssystem erfüllt, d.h., desto schneller kann es auf bestimmte kurbelwellensynchrone oder Zeitsynchrone Ereignisse reagieren.The shorter the individual tasks, the higher the real-time requirements are met by the operating system, i.e. the faster it can react to certain crankshaft-synchronous or time-synchronous events.
Das vorstehend beschriebene Betriebssystem des Rechenteils 2 der Motorsteuerung 1 ist in Figur 4 in Form eines Struktogramms dargestellt. Das Symbol "<>" bedeutet hierin "nicht gleich" oder "ungleich"The operating system of the
Eine Anfrage 26, ob der Bearbeitungszeiger der Synchronliste ungleich dem Eintragszeiger der Synchronliste ist, entspricht der Abfrage, ob eine Anforderung für eine Synchrontask vorliegt. Eine Anfrage 27, ob der Bearbeitungszeiger der Asynchronliste ungleich dem (zugehörigen) Eintragszeiger ist, entspricht der Abfrage, ob eine Anforderung für eine Synchrontask vorliegt. Der Inhalt der anderen Kästchen des Struktogramms 25 ist, auch im Hinblick auf die vorstehende Beschreibung, selbsterklärend.A
Zusammengefaßt sei die Erfindung wie folgt beschrieben:
Eine Steuerung 1 für einen Kraftfahrzeugmotor enthält einen Rechenteil 2, durch den Meßwerte erfaßt und ausgewertet werden, die Betriebsgrößen des Motors wiedergeben, und Steuersignale für Stellglieder erzeugt werden, die auf den Motorbetrieb einwirken (Zündung, Einspritzung usw.). Ein Betriebssystem steuert die Erfassung und Auswertung der Meßwerte und die Erzeugung von Steuersignalen derart, daß sich kurze Wechselzeiten für die abzuarbeitenden Programme ergeben. Durch das Betriebssystem werden folgende, in abgestufter Priorität abzuarbeitende Gruppen von Arbeitsabläufen festgelegt: Anforderung von Unterbrechungen (Interrupts), Zeitverwaltungsaufträge und Aktivierung von Arbeitsabläufen.In summary, the invention is described as follows:
A
Claims (10)
dadurch gekennzeichnet,
daß durch das Betriebssystem folgende, in abgestufter Priorität abzuarbeitende Gruppen von Arbeitsabläufen festgelegt sind:
characterized,
that the operating system defines the following groups of workflows to be processed with a graded priority:
unterteilt sind:
are divided into:
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE59302747T DE59302747D1 (en) | 1993-01-28 | 1993-01-28 | Engine control |
EP19930101326 EP0608456B1 (en) | 1993-01-28 | 1993-01-28 | Engine control |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19930101326 EP0608456B1 (en) | 1993-01-28 | 1993-01-28 | Engine control |
Publications (2)
Publication Number | Publication Date |
---|---|
EP0608456A1 true EP0608456A1 (en) | 1994-08-03 |
EP0608456B1 EP0608456B1 (en) | 1996-05-29 |
Family
ID=8212564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP19930101326 Expired - Lifetime EP0608456B1 (en) | 1993-01-28 | 1993-01-28 | Engine control |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0608456B1 (en) |
DE (1) | DE59302747D1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19527541A1 (en) * | 1995-07-27 | 1997-01-30 | Siemens Ag | Device for generating control signals |
WO1999034104A1 (en) * | 1997-12-24 | 1999-07-08 | Robert Bosch Gmbh | Method for operating an internal combustion engine, especially of an automobile |
EP1568873A1 (en) * | 2004-02-18 | 2005-08-31 | Toyota Jidosha Kabushiki Kaisha | Control apparatus for internal combustion engine |
WO2008022926A1 (en) * | 2006-08-22 | 2008-02-28 | Robert Bosch Gmbh | Device for capturing measured data |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4347570A (en) * | 1978-12-18 | 1982-08-31 | Nippondenso Co., Ltd. | Method and apparatus for controlling ignition coil energization |
US4355360A (en) * | 1979-04-16 | 1982-10-19 | Nissan Motor Company, Limited | Method for program control of components of an automotive vehicle |
DE3826526A1 (en) * | 1988-08-04 | 1990-02-08 | Bosch Gmbh Robert | METHOD AND DEVICE FOR ADJUSTING THE OPERATING SIZE OF AN INTERNAL COMBUSTION ENGINE |
US4956781A (en) * | 1989-02-15 | 1990-09-11 | Delco Electronics Corporation | Counter driven RAM engine control |
-
1993
- 1993-01-28 DE DE59302747T patent/DE59302747D1/en not_active Expired - Fee Related
- 1993-01-28 EP EP19930101326 patent/EP0608456B1/en not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4347570A (en) * | 1978-12-18 | 1982-08-31 | Nippondenso Co., Ltd. | Method and apparatus for controlling ignition coil energization |
US4355360A (en) * | 1979-04-16 | 1982-10-19 | Nissan Motor Company, Limited | Method for program control of components of an automotive vehicle |
DE3826526A1 (en) * | 1988-08-04 | 1990-02-08 | Bosch Gmbh Robert | METHOD AND DEVICE FOR ADJUSTING THE OPERATING SIZE OF AN INTERNAL COMBUSTION ENGINE |
US4956781A (en) * | 1989-02-15 | 1990-09-11 | Delco Electronics Corporation | Counter driven RAM engine control |
Non-Patent Citations (1)
Title |
---|
PATENT ABSTRACTS OF JAPAN vol. 15, no. 310 (M-1144)8. August 1991 & JP-A-31 14 941 ( MAZDA MOTOR CORP. ) 16. Mai 1991 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19527541A1 (en) * | 1995-07-27 | 1997-01-30 | Siemens Ag | Device for generating control signals |
WO1997005373A1 (en) * | 1995-07-27 | 1997-02-13 | Siemens Aktiengesellschaft | Process and device for controlling a regulating member |
US5951619A (en) * | 1995-07-27 | 1999-09-14 | Siemens Aktiengesellschaft | Method and device for controlling an actuator |
WO1999034104A1 (en) * | 1997-12-24 | 1999-07-08 | Robert Bosch Gmbh | Method for operating an internal combustion engine, especially of an automobile |
US6438485B1 (en) | 1997-12-24 | 2002-08-20 | Robert Bosch Gmbh | Method for operating an internal combustion engine, especially of an automobile |
EP1568873A1 (en) * | 2004-02-18 | 2005-08-31 | Toyota Jidosha Kabushiki Kaisha | Control apparatus for internal combustion engine |
WO2008022926A1 (en) * | 2006-08-22 | 2008-02-28 | Robert Bosch Gmbh | Device for capturing measured data |
Also Published As
Publication number | Publication date |
---|---|
DE59302747D1 (en) | 1996-07-04 |
EP0608456B1 (en) | 1996-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2845354C2 (en) | ||
DE2907390C2 (en) | ||
DE2845350C2 (en) | ||
DE2845356C2 (en) | ||
DE3336028C2 (en) | ||
DE2732781A1 (en) | DEVICE FOR CONTROLLING OPERATING PARAMETER-DEPENDENT AND REPEATING ACTIVITIES | |
DE3609069A1 (en) | ELECTRONIC CONTROL SYSTEM FOR INTERNAL COMBUSTION ENGINES | |
DE2742057A1 (en) | DEVICE AND METHOD FOR MEASURING RELATIVE AND PARTIAL WORKING CLEAR SPEED IN THE DIAGNOSIS OF COMBUSTION ENGINES | |
DE3100825A1 (en) | DEVICE FOR CONTROLLING THE IGNITION AND / OR FUEL INJECTION AND / OR GEAR SHIFTING PROCESSES IN INTERNAL COMBUSTION ENGINES | |
DE3144638C2 (en) | Control device for fuel injection into the cylinders of an internal combustion engine | |
DE3623839A1 (en) | SIGNAL TRANSFER PROCEDURE | |
DE3226353A1 (en) | DEVICE FOR CONTROLLING THE ENERGY CONVERSION PROCESS OF AN ENGINE WITH INTERNAL COMBUSTION | |
DE2551681A1 (en) | METHOD AND DEVICE FOR DETERMINING THE DURATION OF INJECTION CONTROL COMMANDS IN AN COMBUSTION ENGINE | |
DE3033526A1 (en) | ELECTRONIC CONTROL METHOD FOR INTERNAL COMBUSTION ENGINES | |
DE2929797C2 (en) | Method and arrangement for controlling the fuel supply, in particular the fuel injection, to an internal combustion engine | |
DE2809023A1 (en) | DIGITAL COMPUTER FOR ELECTRONIC INJECTION | |
DE3143191C2 (en) | Data sampling system for an electronic controller for an internal combustion engine | |
DE2845355A1 (en) | ELECTRONIC COMBUSTION MACHINE CONTROL ARRANGEMENT | |
DE2845357C2 (en) | ||
EP0608456B1 (en) | Engine control | |
EP1313947B1 (en) | Method for operating an internal combustion engine and corresponding arrangement | |
DE2850534A1 (en) | Control microprocessor for ignition and fuel injection in IC engine - depends on count processes performed by input-output unit to reduce number of bits needed | |
DE3138057C2 (en) | Method for controlling the ignition advance in an internal combustion engine | |
DE19610609B4 (en) | Arrangement for controlling cyclically repeating processes in internal combustion engines | |
DE3321337A1 (en) | DEVICE FOR CONTROLLING THE IGNITION OF AN INTERNAL COMBUSTION ENGINE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 19931216 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): DE FR GB |
|
17Q | First examination report despatched |
Effective date: 19950123 |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): DE FR GB |
|
REF | Corresponds to: |
Ref document number: 59302747 Country of ref document: DE Date of ref document: 19960704 |
|
ET | Fr: translation filed | ||
GBT | Gb: translation of ep patent filed (gb section 77(6)(a)/1977) |
Effective date: 19960806 |
|
PLBI | Opposition filed |
Free format text: ORIGINAL CODE: 0009260 |
|
PLBF | Reply of patent proprietor to notice(s) of opposition |
Free format text: ORIGINAL CODE: EPIDOS OBSO |
|
26 | Opposition filed |
Opponent name: ROBERT BOSCH GMBH Effective date: 19970228 |
|
PLBF | Reply of patent proprietor to notice(s) of opposition |
Free format text: ORIGINAL CODE: EPIDOS OBSO |
|
PLBO | Opposition rejected |
Free format text: ORIGINAL CODE: EPIDOS REJO |
|
PLBN | Opposition rejected |
Free format text: ORIGINAL CODE: 0009273 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: OPPOSITION REJECTED |
|
27O | Opposition rejected |
Effective date: 19980205 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: IF02 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20040113 Year of fee payment: 12 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20050128 |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20050128 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20090122 Year of fee payment: 17 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20090115 Year of fee payment: 17 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST Effective date: 20100930 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20100201 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20100803 |