DE102007004068B4 - Vorrichtung zur Steuerung eines Motors mit Hilfe eines Nockensignals - Google Patents

Vorrichtung zur Steuerung eines Motors mit Hilfe eines Nockensignals Download PDF

Info

Publication number
DE102007004068B4
DE102007004068B4 DE102007004068A DE102007004068A DE102007004068B4 DE 102007004068 B4 DE102007004068 B4 DE 102007004068B4 DE 102007004068 A DE102007004068 A DE 102007004068A DE 102007004068 A DE102007004068 A DE 102007004068A DE 102007004068 B4 DE102007004068 B4 DE 102007004068B4
Authority
DE
Germany
Prior art keywords
signal
cam
angle
edge
time
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 - Fee Related
Application number
DE102007004068A
Other languages
English (en)
Other versions
DE102007004068A9 (de
DE102007004068A1 (de
Inventor
Haruhiko Kariya Kondo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Publication of DE102007004068A1 publication Critical patent/DE102007004068A1/de
Publication of DE102007004068A9 publication Critical patent/DE102007004068A9/de
Application granted granted Critical
Publication of DE102007004068B4 publication Critical patent/DE102007004068B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01MTESTING STATIC OR DYNAMIC BALANCE OF MACHINES OR STRUCTURES; TESTING OF STRUCTURES OR APPARATUS, NOT OTHERWISE PROVIDED FOR
    • G01M15/00Testing of engines
    • G01M15/04Testing internal-combustion engines
    • G01M15/042Testing internal-combustion engines by monitoring a single specific parameter not covered by groups G01M15/06 - G01M15/12
    • G01M15/046Testing internal-combustion engines by monitoring a single specific parameter not covered by groups G01M15/06 - G01M15/12 by monitoring revolutions
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/009Electrical control of supply of combustible mixture or its constituents using means for generating position or synchronisation signals
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/22Safety or indicating devices for abnormal conditions
    • F02D41/222Safety or indicating devices for abnormal conditions relating to the failure of sensors or parameter detection devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/10Internal combustion engine [ICE] based vehicles
    • Y02T10/40Engine management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

Vorrichtung zur Steuerung eines Motors mit einer Kurbel- und einer Nockenwelle, wobei die Vorrichtung aufweist:
– eine Intervallmesseinheit, die dazu ausgelegt ist, ein an sie gegebenes Eingangssignal mit einem sich zeitlich wiederholend in einer vorbestimmten Richtung ändernden Pegel zu empfangen und ein Zeitintervall zwischen einem Zeitpunkt, an dem eine Pegeländerung vorbestimmter Richtung in dem Eingangssignal erscheint, und einem Zeitpunkt, an dem eine zeitlich nächste Pegeländerung vorbestimmter Richtung in dem Eingangssignal erscheint, zu messen;
– eine Eingangseinheit, die dazu ausgelegt ist, ein Kurbelsignal als das Eingangssignal an die Intervallmesseinheit zu geben, wobei das Kurbelsignal einen Pegel aufweist, der sich jedes Mal wiederholend in einer vorbestimmten Richtung ändert, wenn sich die Kurbelwelle um einen ersten Winkel dreht;
– eine Multiplikationstakterzeugungseinheit, die dazu ausgelegt ist, einen ersten Multiplikationstakt zu erzeugen, der eine Reihe von Takten umfasst, deren Taktzeit bestimmt wird, indem das von der Intervallmesseinheit gemessene Intervall durch eine erste...

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Vorrichtungen zur Steuerung eines Motors mit Hilfe eines Nockensignals.
  • Stand der Technik
  • Motorsteuergeräte für Fahrzeuge verwenden ein Kurbelsignal mit einem Signalpegel, der sich zu regelmäßigen Drehwinkeln (zu regelmäßigen Kurbelwinkeln) einer Motorkurbelwelle in einer vorbestimmten gleichen Richtung ändert. Das Kurbelsignal wird insbesondere von einem mit einem Motorsteuergerät verbundenen Kurbelwellensensor gemessen und anschließend an das in einem Hauptsteuermodus arbeitende Motorsteuergerät gegeben.
  • Das Motorsteuergerät arbeitet insbesondere derart, dass es in dem Hauptsteuermodus eine Drehposition (Kurbelposition) der Kurbelwelle auf der Grundlage des Kurbelsignals bestimmt.
  • Jedes Mal, wenn bestimmt wird, dass die bestimmte Drehposition der Kurbelwellen mit einer gewünschten Drehposition übereinstimmt, arbeitet das Motorsteuergerät derart, dass es, während es sich in dem Hauptsteuermodus befindet, mit der Motorsteuerung wie beispielsweise der Kraftstoffeinspritzung oder der Zündung verknüpfte Ereignisse bzw. Vorgänge erzeugt.
  • Ein solches Motorsteuergerät wird beispielsweise in der auf die Anmelderin zurückgehenden Druckschrift DE 101 04 273 A1 beschrieben.
  • Bei einem solchen das Kurbelsignal zur Motorsteuerung verwendenden Motorsteuergerät kann das Motorsteuergerät die Drehposition der Kurbelwelle nicht bestimmen, wenn das Kurbelsignal bedingt durch beispielsweise eine Trennung der den Kurbelwellensensor mit dem Motorsteuergerät verbindenden Leitungen nicht wie üblich an das Motorsteuergerät gegeben werden kann. Folglich kann das Motorsteuergerät die Steuerung des Motors gegebenenfalls nicht fortlaufend angemessen ausführen.
  • Bezüglich dieses Problems ist das Motorsteuergerät dann, wenn das Kurbelsignal nicht wie üblich an das Motorsteuergerät gegeben werden kann, dazu ausgelegt, in einem Untersteuermodus zu arbeiten, wobei es ein mit einem Nockensensor gemessenes Nockensignal verwendet. Das Nockensignal weist einen Pegel auf, der sich zu regelmäßigen Drehwinkeln einer Motornockenwelle in einer vorbestimmten gleichen Richtung ändert.
  • Folglich kann das Motorsteuergerät in dem Untersteuermodus fortlaufend mit der Motorsteuerung verknüpfte Ereignisse auf der Grundlage des Nockensignals erzeugen.
  • Das Motorsteuergerät ist insbesondere dann, wenn ein Fehler in dem Kurbelsignal erfasst wird, dazu ausgelegt, seinen Betriebmodus von dem das Kurbelsignal verwendenden Hauptsteuermodus in den das Nockensignal verwendenden Untersteuermodus zu wechseln, um die Motorsteuerung fortsetzen zu können. Über die Motorsteuerung des Motorsteuergeräts in dem Untersteuermodus kann das Fahrzeug in einem Notlaufmodus, wie beispielsweise langsam zu einem sicheren Ort gefahren werden.
  • Es sollte beachtet werden, dass sich der regelmäßige Drehwinkel der Kurbelwelle, der einem Zeitintervall zwischen zeitlich benachbarten Signalpegeln des Kurbelsignals entspricht, die sich in der vorbestimmten gleichen Richtung ändern, von dem der Nockenwelle unterscheidet, der einem Zeitintervall zwischen zeitlich benachbarten Signal pegeln des Nockensignals entspricht, die sich in der vorbestimmten gleichen Richtung ändern.
  • Zum Arbeiten in dem Hauptsteuermodus benötigt das Motorsteuergerät insbesondere die regelmäßigen Drehwinkel der Kurbelwelle, zum Arbeiten in dem Untersteuermodus jedoch insbesondere die regelmäßigen Drehwinkel der Nockenwelle.
  • Es ist folglich möglich, ein auf der Grundlage der regelmäßigen Drehwinkel der Kurbelwelle arbeitendes Hauptsteuersystem und ein auf der Grundlage der regelmäßigen Drehwinkel der Nockenwelle arbeitendes Untersteuersystem unabhängig voneinander durch Hardware- und/oder Software-Komponenten in dem Motorsteuergerät aufzubauen.
  • Dies würde jedoch den Anteil an Hardware- bzw. Software-Komponenten in dem Motorsteuergerät erhöhen.
  • Weitere Motorsteuergeräte sind beispielsweise aus der nachveröffentlichten DE 10 2006 002 923 A1 , die sich auf ein Verfahren und eine Vorrichtung zur Steuerung eines Motors unter Verwendung eines Nockensignals bezieht, der DE 10 2004 052 430 A1 , die ein Verfahren und eine Vorrichtung zur Erfassung eines Winkels einer sich drehenden Welle betrifft, der DE 196 10 121 A1 , die eine Steuereinrichtung für eine Brennkraftmaschine offenbart, der DE 43 10 460 A1 , die sich auf eine Geberanordnung zur schnellen Zylindererkennung bei einer mehrzylindrigen Brennkraftmaschine bezieht, und der EP 0 683 309 B1 , die ein Verfahren zur Notlaufsteuerung einer Brennkraftmaschine vorschlägt, bekannt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist folglich Aufgabe der vorliegenden Erfindung, eine Vorrichtung zur Steuerung eines Fahrzeugmotors bereitzustellen, mit der das Fahrzeug selbst dann, wenn das Kurbelsignal fehlerhaft ist, in einem Notlaufmodus gefahren werden kann, ohne dass der Anteil an Hardware- und/oder Software-Komponenten in der Vorrichtung erhöht werden muss.
  • Gemäß einer Ausgestaltung der vorliegenden Erfindung wird einen Vorrichtung zur Steuerung eines Motors mit einer Kurbelwelle und einer Nockenwelle bereitgestellt. Die Vorrichtung weist eine Intervallmesseinheit auf, die dazu ausgelegt ist, ein an sie gegebenes Eingangssignal zu empfangen. Das Eingangssignal weist einen sich zeitlich wiederholend in einer vorbestimmten Richtung ändernden Pegel auf. Die Intervallmesseinheit ist dazu ausgelegt, ein Zeitintervall zwischen einem Zeitpunkt, an dem eine Pegeländerung vorbestimmter Richtung in dem Eingangssignal erscheint, und einem Zeitpunkt, an dem eine zeitlich nächste Pegeländerung vorbestimmter Richtung in dem Eingangssignal erscheint, zu messen. Die Vorrichtung weist eine Eingangseinheit auf, die dazu ausgelegt ist, ein Kurbelsignal als das Eingangssignal an die Intervallmesseinheit zu geben. Das Kurbelsignal weist einen Pegel auf, der sich jedes Mal wiederholend in einer vorbestimmten Richtung ändert, wenn sich die Kurbelwelle um einen ersten Winkel dreht. Die Vorrichtung weist eine Multiplikationstakterzeugungseinheit auf, die dazu ausgelegt ist, einen ersten Multiplikationstakt zu erzeugen, der eine Reihe von Takten umfasst, deren Taktzeit bestimmt wird, indem das von der Intervallmesseinheit gemessene Intervall durch eine erste Multiplikationszahl geteilt wird. Die Vorrichtung weist eine Zähleinheit auf, die dazu ausgelegt ist, synchron zum von der Multiplikationstakterzeugungseinheit erzeugten ersten Multiplikationstakt zu zählen. Ein Zählwert der Zähleinheit entspricht einer Drehposition der Kurbelwelle in einem Zyklus des Motors, wenn die Drehposition der Kurbelwelle mit einer vorbestimmten Auflösung dargestellt wird. Die vorbestimmte Auflösung wird erhalten, indem der erste Winkel durch die erste Multiplikationszahl geteilt wird. Die Vorrichtung weist eine Ereigniserzeugungseinheit, die dazu ausgelegt ist, wenigstens ein mit der Steuerung des Motors verknüpftes Ereignis in Übereinstimmung mit einer durch einen Zählwert der Zähleinheit bestimmten Drehposition der Kurbelwelle zu erzeugen. Die Vorrichtung weist eine Fehlerbestimmungseinheit auf, die dazu ausgelegt ist, auf der Grundlage eines Zustands des Eingangssignals zu bestimmen, ob das Kurbelsignal fehlerhaft ist. Die Eingangseinheit dient dazu, das Eingangssignal für die Intervallmesseinheit von dem Kurbelsignal zu einem Nockensignal zu wechseln, wenn bestimmt wird, dass das Kurbelsignal fehler haft ist. Das Nockensignal weist einen Pegel auf, der sich jedes Mal zeitlich wiederholend ändert, wenn sich die Nockenwelle wenigstens um einen von dem ersten Winkel verschiedenen zweiten Winkel dreht. Die Multiplikationstakterzeugungseinheit dient dazu, einen zweiten Multiplikationstakt zu erzeugen, der anstelle des ersten Multiplikationstakts verwendet wird, wenn bestimmt wird, dass das Kurbelsignal fehlerhaft ist. Der zweite Multiplikationstakt umfasst eine Reihe von Takten, deren Taktzeit derart festgelegt wird, dass sie im Wesentlichen der Taktzeit des ersten Multiplikationstakts entspricht.
  • Gemäß der obigen Ausgestaltung der vorliegenden Erfindung wird dann, wenn bestimmt wird, dass das Kurbelsignal fehlerhaft ist, das Nockensignal, dessen Pegel sich jedes Mal zeitlich wiederholend in der vorbestimmten Richtung ändert, wenn sich die Nockenwellen um wenigstens den von dem ersten Winkel verschiedenen zweiten Winkel dreht, anstelle des Kurbelsignals an die Intervallmesseinheit gegeben.
  • Hierdurch kann die Taktzeit des ersten Multiplikationstakts vor und nach einer Änderung des Eingangssignals vom Kurbelsignal zum Nockensignal auf die des zweiten Multiplikationstakts abgestimmt werden. D. h., die Taktzeit des von der Multiplikationstakterzeugungseinheit zu erzeugenden Multiplikationstakts ist vor und nach einer Änderung des Eingangssignals vom Kurbelsignal zum Nockensignal im Wesentlichen konstant.
  • Folglich ist es für die Zähleinheit und die Ereigniserzeugungseinheit nicht erforderlich, bestimmte Funktionen zum Wechseln ihrer Arbeitsabläufe vor und nach einer Änderung des Eingangssignals auszuführen.
  • Gemäß der obigen Ausgestaltung der vorliegenden Erfindung ist die Vorrichtung, wie vorstehend beschrieben, dazu ausgelegt, bei einem fehlerhaften Kurbelsignal einzig das Eingangssignal vom Kurbelsignal zum Nockensignal zu wechseln, dessen Pegel sich jedes Mal zeitlich wiederholend in der vorbestimmten Richtung ändert, wenn sich die Nockenwelle wenigstens um den von dem ersten Winkel verschiedenen zweiten Winkel dreht. Hierdurch kann die Taktzeit des ersten Multiplikationstakts vor und nach einer Änderung des Eingangssignals vom Kurbelsignal zum Nockensignal an die des zweiten Multiplikationstakts angepasst werden. Auf diese Weise ist es möglich, die Motorsteuerung selbst dann, wenn ein Fehler in dem Kurbelsignal auftritt, auf der Grundlage des Nockensignals fortzusetzen, so dass es für die Multiplikationstakterzeugungseinheit, die Zähleinheit und die Ereigniserzeugungseinheit überflüssig ist, bestimmte Funktionen zum Wechseln ihrer Arbeitsabläufe vor und nach einer Änderung des Eingangssignals auszuführen.
  • Folglich kann ein Fahrzeug, in welchem der Motor und die Vorrichtung im Voraus installiert werden, selbst dann, wenn ein Fehler in dem Kurbelsignal auftritt, auf der Grundlage einer Steuerung des Motors durch die das Nockensignal verwendende Vorrichtung in einem Notlaufmodus gefahren werden, ohne die Anzahl an Hardware- und/oder Software-Komponenten in der Vorrichtung zu erhöhen.
  • KURZE BESCHREIBUNG DER ZEICHNUNG
  • Weitere Aufgaben und Ausgestaltungen der Erfindung werden aus der nachfolgenden Beschreibung der Ausführungsformen, die unter Bezugnahme auf die beigefügte Zeichnung gemacht wurde, näher ersichtlich sein. In der Zeichnung zeigt:
  • 1 ein schematisches Blockdiagramm mit einem beispielhaften Aufbau eines in einem Fahrzeug installierten elektronischen Steuergeräts gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 2 ein schematisches Signalwellenformdiagramm eines Kurbelsignals, eines ersten und eines zweiten Nockensignals und eines Nockenflankensignals gemäß der Ausführungsform der vorliegenden Erfindung;
  • 3 ein schematisches Blockdiagramm eines beispielhaften Aufbaus einer in der 1 gezeigten Winkeltakterzeugungseinheit;
  • 4 ein schematisches Zeitdiagramm mit Änderungen der Parameter der Win keltakterzeugungseinheit gegenüber einer Änderung eines Eingangssignals gemäß der Ausführungsform der Erfindung;
  • 5 ein schematisches Ablaufdiagramm einer von einer in der 1 gezeigten CPU auszuführenden Eingangssignaldiagnosefunktion;
  • 6 ein schematisches Ablaufdiagramm einer von der in der 1 gezeigten CPU auszuführenden Zeitsynchronisierungsfunktion;
  • 7 ein schematisches Ablaufdiagramm einer von der in der 1 gezeigten CPU auszuführenden Kurbelflankenunterbrechungsfunktion;
  • 8 ein schematisches Zeitdiagramm mit Änderungen von Parametern der Winkeltakterzeugungseinheit gegenüber einer Änderung des Eingangssignals gemäß der Ausführungsform der Erfindung;
  • 9 ein schematisches Zeitdiagramm mit Änderungen von Parametern der Winkeltakterzeugungseinheit gegenüber einer Änderung des Eingangssignals während der in der 7 gezeigten Kurbelflankenunterbrechungsfunktion;
  • 10 ein schematisches Zeitdiagramm mit Änderungen von Parametern der Winkeltakterzeugungseinheit gegenüber einer Änderung des Eingangssignals während der in der 7 gezeigten Kurbelflankenunterbrechungsfunktion;
  • 11 ein schematisches Ablaufdiagramm einer von der in der 1 gezeigten CPU auszuführenden Nockenflankenunterbrechungsfunktion;
  • 12 eine Tabelle mit Übereinstimmungen zwischen einzelnen Anfangswerten jeweiliger Zähler des in der 3 gezeigten Winkeltaktmoduls und einzelnen aktiven Flanken des Nockenflankensignals gemäß der Ausführungsform;
  • 13 ein schematisches Zeitdiagramm mit Änderungen von Parametern der Winkeltakterzeugungseinheit gegenüber einer Änderung des Eingangssignals während der in der 11 gezeigten Nockenflankenunterbrechungsfunktion;
  • 14 ein schematisches Ablaufdiagramm einer von der in der 1 gezeigten CPU auszuführenden Passierungswinkelunterbrechungsfunktion;
  • 15 ein schematisches Zeitdiagramm mit Änderungen von Parametern der Winkeltakterzeugungseinheit gegenüber einer Änderung des Eingangssignals während der in der 11 gezeigten Nockenflankenunterbrechungsfunktion; und
  • 16 ein schematisches Zeitdiagramm mit Änderungen von Parametern der Winkeldiagrammerzeugungseinheit gegenüber einer Änderung des Eingangsignals während der in der 11 gezeigten Nockenflankenunterbrechungsfunktion.
  • DETAILLIERTE BESCHREIBUNG EINER AUSFÜHRUNGSFORM DER ERFINDUNG
  • Nachstehend wird eine Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die beigefügte Zeichnung beschrieben. Bei der Ausführungsform wird die Erfindung auf eine elektronische Steuereinheit (ECU) 1 angewandt, die als Motorsteuergerät zur Ansteuerung eines in einem Fahrzeug installierten Viertaktverbrennungsmotors E mit beispielsweise sechs Zylindern (#1 bis #6) dient.
  • 1 zeigt ein Blockdiagramm mit einem beispielhaften Aufbau der im Voraus in dem Fahrzeug installierten ECU 1 gemäß der Ausführungsform der vorliegenden Erfindung.
  • Die ECU 1 gemäß der Ausführungsform weist, wie in 1 gezeigt, eine Eingangsschaltung 10, eine Ausgangsschaltung 20 und einen Mikrocomputer 30 auf. Die Eingangs- und die Ausgangsschaltung 10 und 20 sind elektrisch mit dem Mikrocomputer 30 verbunden.
  • Die Eingangsschaltung 10 ist elektrisch mit einem Kurbelwellensensor 11, einem ersten Nockenwellensensor 12, einem zweiten Nockenwellensensor 13 und weiteren Sensoren verbunden.
  • Der Kurbelwellensensor 11 weist beispielsweise, wie in 1 gezeigt, eine Reluktorscheibe 11a mit einer Mehrzahl von Zähnen 11b auf, die im Wesentlichen zu Winkelintervallen von beispielsweise 6 Grad um den Umfang der Scheibe 11a herum beabstandet angeordnet sind. Die Reluktorscheibe 11a ist gleichachsig an einer Kurbelwelle CS befestigt, die als Hauptantriebswelle des Fahrzeugs zum Liefern eines aus den sich hin- und herbewegenden Kolben und den Kolbenstangen der Zylinder gewonnenen Drehmoments dient.
  • Die Reluktorscheibe 11a weist beispielsweise einen zahnlosen Abschnitt 11c auf, bei dem beispielsweise k benachbarte Zähne fehlen.
  • Der Kurbelwellensensor 11 weist beispielsweise einen Aufnehmer 11d auf, der beispielsweise dazu dient, den Zahn 11b der Reluktorscheibe 11a auf der Kurbelwelle CS bei einer Drehung dieser magnetisch zu erfassen, um ein Kurbelsignal auf der Grundlage des Erfassungsergebnisses zu erzeugen. Das Kurbelsignal wird an die Eingangsschaltung 10 gegeben.
  • Bei der Ausführungsform wird der Drehbereich der Kurbelwelle CS dann, wenn die Drehposition der Kurbelwelle CS einen gegebenen Drehbereich derart erreicht, dass sich der zahnlose Abschnitt 11c vor dem Aufnehmer 11d befindet, um von diesem erfasst zu werden, nachstehend als ”bestimmter Bereich” bezeichnet.
  • Da der zahnlose Abschnitt 11c einmal pro Drehwinkel (Kurbelwinkel) der Kurbelwelle CS von 360 Grad (360° CA) erscheint, erreicht die Kurbelwelle CS den bestimmten Bereich jede volle Umdrehung (je Kurbelwinkel von 360°). D. h., die Kurbelwelle CS erreicht den bestimmten Bereich zweimal pro Motorzyklus (Kurbelwinkel von 720 Grad).
  • Der erste Nockenwellensensor 12 dient beispielsweise dazu, die Drehpositionen einer ersten Nockenwelle CM1 bei einer Drehung dieser bei beispielsweise halber Drehzahl der Kurbelwelle CS magnetisch zu erfassen, um ein ersten Nockensignal auf der Grundlage des Erfassungsergebnisses zu erzeugen. Das erste Nockensignal wird an die Eingangsschaltung 10 gegeben.
  • In gleicher Weise dient der zweite Nockenwellensensor 13 beispielsweise dazu, die Drehpositionen einer zweiten Nockenwelle CM2 bei einer Drehung dieser bei beispielsweise halber Drehzahl der Kurbelwelle CS magnetisch zu erfassen, um ein zweites Nockensignal auf der Grundlage des Erfassungsergebnisses zu erzeugen. Das zweite Nockensignal wird an die Eingangsschaltung 10 gegeben.
  • Die erste und die zweite Nockenwelle CM1 und CM2 sind insbesondere dazu ausgelegt, über die Kurbelwelle CS durch Zahnrädern, Riemen und/oder eine Kette angetrieben zu werden, und weisen eine Reihe von Nocken zum Öffnen und Schließen der Einlass- bzw. Auslassventile auf.
  • Das Kurbelsignal ist derart ausgelegt, dass es einen Pegel aufweist, der sich zeitlich wiederholend impulsförmig mit einer Drehung der Kurbelwelle CS ändert. In gleicher Weise ist das erste Nockensignal derart ausgelegt, dass es einen Pegel aufweist, der sich zeitlich wiederholend impulsförmig mit einer Drehung der ersten Nockenwelle CM1 ändert, und ist das zweite Nockensignal derart ausgelegt, dass es sich zeitlich wiederholend impulsförmig mit einer Drehung der zweiten Nockenwelle CM2 ändert.
  • Nachstehend werden die Strukturen des Kurbelsignals und des ersten und des zweiten Nockensignals unter Bezugnahme auf die 2 beschrieben.
  • Der Pegel des Kurbelsignals ändert sich, wie in 2 gezeigt, jedes Mal impulsförmig in einer vorbestimmten gleichen Richtung, wenn sich die Kurbelwelle CS (Reluktorscheibe 11a) um einen Einheitswinkel von Δθ Grad des Kurbelwinkels (CA) dreht, während sich die Drehposition der Kurbelwelle CS nicht innerhalb des bestimmten Bereichs befindet. Bei der Ausführungsform ist die vorbestimmte gleiche Richtung beispielsweise auf eine High-Low-Richtung (nachstehend als H-L-Richtung bezeichnet) und der Einheitswinkel von Δθ Grad des Kurbelwinkels auf einen Kurbelwinkel von 6 Grad festgelegt.
  • Wenn sich die Drehposition der Kurbelwelle CS demgegenüber innerhalb des bestimmten Bereichs befindet, ist ein Drehwinkel der Kurbelwelle CS, der es dem Pegel des Kurbelsignals ermöglicht, sich impulsweise in der gleichen Richtung (H-L-Richtung) zu ändern, um das k-fache größer als der Einheitswinkel Δθ. Bei dieser Ausführungsform weist k den Wert 3 auf.
  • D. h., wenn sich die Drehposition der Kurbelwelle CS innerhalb eines Bereichs, jedoch nicht innerhalb des bestimmten Bereichs befindet, erscheint jedes Mal eine aktive Flanke gleicher Richtung, wie beispielsweise eine abfallende Flanke, der vorübergehenden Pegeländerung des Kurbelsignals in einem Impuls, wenn sich die Kurbelwelle CS um den Einheitswinkel Δθ dreht.
  • Während sich die Drehposition der Kurbelwelle CS demgegenüber innerhalb des bestimmten Bereichs befindet, erscheinen selbst dann keine k-1 aktiven Flanken gleicher Richtung der vorübergehenden Pegeländerung des Kurbelsignals, wenn sich die Kurbelwelle CS kontinuierlich um jeweils den Einheitswinkel Δθ dreht.
  • Es sollte beachtet werden, dass die aktiven Flanken gleicher Richtung, wie beispielsweise abfallende oder ansteigende Flanke, die in einem Signal erscheinen, dessen Pegel sich, gleich einem Impulssignal, zeitlich wiederholend vorübergehend (periodisch) ändert, nachstehend lediglich als ”aktive Flanken” bezeichnet werden.
  • Hierdurch kann ein Zeitintervall zwischen zeitlich benachbarten aktiven Flanken des Kurbelsignals während eines Zeitraums, in dem sich die Drehposition der Kurbelwelle CS innerhalb des bestimmten Bereichs befindet, um das k-fache größer als ein normales Zeitintervall ausgelegt werden. Das normale Zeitintervall entspricht einem Intervall zwischen zeitlich benachbarten aktiven Flanken des Kurbelsignals, während sich die Drehposition der Kurbelwelle CS innerhalb eines Bereichs befindet, der sich von dem bestimmten Bereich unterscheidet.
  • Es sollte beachtet werden, dass ein Abschnitt des dem bestimmten Bereich entsprechenden Kurbelsignals, d. h. das k-fache Zeitintervall zwischen zeitlich benachbarten aktiven Flanken des Kurbelsignals, im Gegensatz zum normalen Zeitintervall nachstehend als impulsloser Abschnitt M bezeichnet wird.
  • Da der zahnlose Abschnitt 11c einmal pro Drehwinkel (Kurbelwinkel) der Kurbelwelle CS von 360 Grad (360° CA) erscheint, erscheint der impulslose Abschnitt M ebenso einmal pro Kurbelwinkel von 360 Grad in dem Kurbelsignal.
  • Bei dem Kurbelsignal gemäß der Ausführungsform entspricht eine aktive Flanke, die jedes Mal erscheint, wenn sich die Kurbelwelle CS um einen vorbestimmten Kurbelwinkel CA von beispielsweise 120 Grad dreht, dem TDC (oberer Totpunkt) von jedem der einzelnen Zylinder #1, #5, #3, #6, #2 und #4 gemäß dieser Reihenfolge in der 2. Der vorbestimmte Kurbelwinkel von 120 Grad kann bestimmt werden, indem der einem Motorzyklus entsprechende Kurbelwinkel von 720 Grad durch die Zylinderanzahl von beispielsweise sechs geteilt wird.
  • Eine Referenzposition des Kurbelsignals ist derart festgelegt, dass sie einer aktiven Flanke eines vorbestimmten Kurbelwinkels von beispielsweise 18 Grad vor der dem TDC des ersten Zylinders #1 entsprechenden aktiven Flanke entspricht. Die Referenzposition des Kurbelsignals ist in der 2 durch ”0” gekennzeichnet.
  • Der impulslose Abschnitt M erscheint, wie vorstehend beschrieben, einmal pro Kurbelwinkel von 360 Grad in dem Kurbelsignal. D. h., die impulslosen Abschnitte M werden in erste impulslose Abschnitte M1 und in zweite impulslose Abschnitte M2 geteilt.
  • Bei dem Kurbelsignal beginnt der erste impulslose Abschnitt M1 pro Motorzyklus an einer ersten aktiven Flanke des Kurbelwinkels von 108 Grad auf ein Erscheinen der aktiven Flanke an der Referenzposition folgend. Der zweite impulslose Abschnitt M2 beginnt, ebenso pro Motorzyklus, an einer zweiten aktiven Flanke des Kurbelwinkels von 360 Grad auf die erste aktive Flanke folgend.
  • Insbesondere entspricht das gegenüber dem normalen Zeitintervall k-fache Zeitintervall nach der ersten aktiven Flanke dem ersten impulslosen Abschnitt M1 und das gegenüber dem normalen Zeitintervall k-fache Zeitintervall nach der zweiten aktiven Flanke dem zweiten impulslosen Abschnitt M2.
  • Das erste Nockensignal ist derart ausgelegt, dass es:
    von einem niedrigen (L) zu einem hohen (H) Pegel wechselt, wenn sich die erste Nockenwelle CM1 an einer ersten Drehposition R1 des Kurbelwinkel von 105 Grad vor der Referenzposition befindet;
    den H-Pegel während einer ersten Periode hält, welche dem Kurbelwinkel von 240 Grad ab dem Wechselzeitpunkt zum H-Pegel entspricht;
    an einer zweiten Drehposition R2 unmittelbar nach Verstreichen der ersten Periode vom H- zum L-Pegel wechselt;
    den L-Pegel während einer zweiten Periode hält, welche dem Kurbelwinkel von 240 Grad ab dem Wechselzeitpunkt zum L-Pegel entspricht;
    an einer dritten Drehposition R3 unmittelbar nach Verstreichen der zweiten Periode vom L- zum H-Pegel wechselt;
    den H-Pegel während einer dritten Periode hält, welche dem Kurbelwinkel von 210 Grad ab dem Wechselzeitpunkt zum H-Pegel entspricht;
    an einer vierten Drehposition R4 unmittelbar nach Verstreichen der dritten Periode vom H- zum L-Pegel wechselt;
    den L-Pegel während einer vierten Periode hält, welche dem Kurbelwinkel von 30 Grad ab dem Wechselzeitpunkt zum L-Pegel entspricht, um zur ersten Drehposition R1 zurückzukehren, um so die Reihe an Änderungen pro Motorzyklus (Kurbelwinkel von 720 Grad) zu wiederholen.
  • Das zweite Nockensignal ist derart ausgelegt, dass es
    von einem L- zu einem H-Pegel wechselt, wenn sich die zweite Nockenwelle CM2 an einer ersten Drehposition R11 des Kurbelwinkels von 15 Grad auf die Referenzposition folgend befindet;
    den H-Pegel während einer ersten Periode hält, welche dem Kurbelwinkel von 210 Grad ab dem Wechselzeitpunkt zum H-Pegel entspricht;
    an einer zweiten Drehposition R12 unmittelbar nach Verstreichen der ersten Periode vom H- zum L-Pegel wechselt;
    den L-Pegel während einer zweiten Periode hält, welche dem Kurbelwinkel von 30 Grad ab dem Wechselzeitpunkt zum L-Pegel entspricht;
    an einer dritten Drehposition R13 unmittelbar nach Verstreichen der zweiten Periode vom L- zum H-Pegel wechselt;
    den hohen Pegel während einer dritten Periode hält, welche dem Kurbelwinkel von 240 Grad ab dem Wechselzeitpunkt zum H-Pegel entspricht;
    an einer vierten Drehposition R14 unmittelbar nach Verstreichen der dritten Periode vom H- zum L-Pegel wechselt;
    den L-Pegel während einer vierten Periode hält, welche dem Kurbelwinkel von 240 Grad ab dem Wechselzeitpunkt zum L-Pegel entspricht, um zur ersten Drehposition R11 zurückzukehren, um so die Reihe an Änderungen pro Motorzyklus (Kurbelwinkel von 720 Grad) zu wiederholen.
  • Die weiteren Sensoren werden im Voraus in dem Fahrzeug installiert und dienen zum Messen verschiedener physikalischer Größen. Diese physikalischen Größen werden von der ECU 1 benötigt, um die einzelnen Steuerungsziele anzusteuern. Messgrößen anzeigende Messsignale, die von den weiteren Sensoren ausgegeben werden, werden periodisch an die Eingangsschaltung 10 gegeben.
  • Die Eingangsschaltung 10 dient als Wellenformungsschaltung. Die Eingangsschaltung 10 dient insbesondere dazu, die Wellenformung des Kurbelsignals, des ersten und des zweiten Nockensignals und der jeweils von dem Kurbelwellensensor 11, dem ersten und dem zweiten Nockenwellensensor 12 und 13 und den weiteren Sensoren ausgegebenen Messsignale zu formen. Die Eingangsschaltung 10 dient ferner dazu, die wellengeformten Signale an den Mikrocomputer 30 auszugeben.
  • Die Ausgangsschaltung 20 dient dazu, Aktivierungssignale, die nachstehend noch beschrieben werden, auf der Grundlage von Zielsteuerbefehlen des Mikrocomputers 30 an mit der Motorsteuerung verknüpfte Steuerungsziele, wie beispielsweise Einspritzventile und/oder Zündvorrichtungen für die jeweiligen Zylinder, zu geben.
  • Der Mikrocomputer 30 ist im Wesentlichen aus einer CPU 31, einer Winkeltaktsignalerzeugungseinheit 33, einer Zeitgeberausgangseinheit 35, einem Flash-ROM 37 und einem RAM 39 aufgebaut; diese Einheiten 33, 35, 37 und 39 sind elektrisch mit der CPU 31 verbunden.
  • Die CPU 31 dient zur Steuerung des gesamten Mikrocomputers 30.
  • Die Winkeltakterzeugungseinheit 33 dient dazu, das Kurbelsignal und das erste und das zweite Nockensignal, die von der Eingangsschaltung 10 ausgegeben werden, zu empfangen.
  • Die Zeitgeberausgabeeinheit 35 weist beispielsweise einen ersten und einen zweiten Zeitgeber auf und dient dazu, die Zielsteuerbefehle auf der Grundlage von Zählwerten des ersten und des zweiten Zeitgebers für jedes der einzelnen Steuerziele an die Ausgangsschaltung 20 zu geben; diese Zielsteuerbefehle bestimmen eine Stand-by-Dauer und einer Aktivierungsdauer für jedes der einzelnen Steuerziele.
  • Das Flash-ROM 37 wird als Beispiel für verschiedene Arten nicht flüchtiger Speichern verwendet. Das Flash-ROM 37 weist insbesondere eine Mehrzahl von Programmen auf. Wenigstens eines der Programme bewirkt, dass die CPU 31 verschiedene Funktionen ausführt, einschließlich: (1) einer Eingangssignaldiagnosefunktion, (2) einer Zeitsynchronisierungsfunktion, (3) einer Kurbelflankenunterbrechungsfunktion, (4) einer Nockenflankenunterbrechungsfunktion und (5) einer Passierungswinkelunterbrechungsfunktion, die nachstehen noch beschrieben werden.
  • Das RAM 39 dient dazu, für einen schnellen Zugriff durch die CPU 31 ausgelegt zu sein, und dazu, die von der CPU 31 verarbeiteten Daten zu speichern.
  • Die Winkeltakterzeugungseinheit 33 weist, wie in 3 gezeigt, ein Eingangswahlmodul 41, ein Flankenintervallmessmodul 43, ein Multiplikationstakterzeugungsmodul 45, ein Passierungswinkelunterbrechungsmodul 47 und ein Winkeltaktmodul 49 auf. Jedes der Module 41, 43, 45, 47 und 49 ist operativ mit der CPU 31 verbunden.
  • Das Eingangswahlmodul 41 ist operativ mit dem Flankenintervallmessmodul 43, dem Multiplikationstakterzeugungsmodul 45, dem Passierungswinkelunterbrechungsmodul 47 und dem Winkeltaktmodul 49 verbunden.
  • Das Eingangswahlmodul 41 weist eine Einheit 41a, die dazu ausgelegt ist, das Kurbelsignal und das erste und das zweite Nockensignal von der Eingangsschaltung 10 zu empfangen und das empfangene Kurbelsignal oder ein Signal zu wählen; dieses Signal wird von der Einheit 41a auf der Grundlage des empfangenen ersten und des empfangenen zweiten Nockensignals erzeugt. Die Einheit 41a des Eingangswahlmoduls 41 ist dazu ausgelegt, das gewählte Kurbelsignal oder das gewählte erzeugte Signal an die CPU 31 zu geben.
  • Das mit Hilfe des ersten und zweiten Nockensignals von der Einheit 41a erzeugte Signal ist insbesondere dazu ausgelegt, einen Pegel aufzuweisen, der sich jedes Mal zeitlich vorübergehend in einer vorbestimmten gleichen Richtung, wie beispielsweise einer L-H-Richtung, ändert, wenn eine Pegeländerung in dem ersten und in dem zweiten Nockensignal erscheint. D. h., in dem von der Einheit 41a erzeugten Signal erscheint jedes Mal ein aktive Flanke gleicher Richtung, wie beispielsweise eine ansteigende Flanke, wenn eine Pegeländerung bzw. eine Pegelunkehrung in dem ersten und in dem zweiten Nockensignal erscheint. Das von der vorstehend beschriebenen Einheit 41a erzeugte Signal wird nachstehend als ”Nockenflankesignal” bezeichnet. Die aktiven Flanken gleicher Richtung des Nockenflankensignals werden nachstehend lediglich als ”aktive Flanken” bezeichnet.
  • Der Pegel des Nockenflankensignals ist, wie in 2 gezeigt, insbesondere derart ausgelegt, dass er sich an einzelnen Änderungspunkten P und Q, welche den einzelnen Pegeländerungszeitpunkten des ersten und des zweiten Nockensignals entsprechen, zeitlichen vorübergehend in der L-H-Richtung ändert.
  • Bei der Ausführungsform ändert das Nockenflankensignal seinen Pegel an den Änderungspunkten P, deren Winkelintervalle dem Kurbelwinkel von 120 Grad entsprechen, abgesehen von den Änderungspunkten Q, deren Winkelintervalle dem Kurbelwinkel von 360 Grad entsprechen.
  • Das Eingangswahlmodul 41 kann beispielsweise dafür vorgesehen sein, das erste und das zweite Nockensignal einer logischen ODER-Funktion zu unterziehen, um das Nockenflankensignal zu erzeugen.
  • Das Eingangswahlmodul 41 weist ferner ein Register 41b auf, das wenigstens ein Bit an von der CPU 31 überschreibbaren Daten speichern kann. Bei dieser Ausführungsform wird das wenigstens eine ”1” anzeigende Datenbit im Voraus als Standardwert in dem Register 41b gespeichert.
  • Über die ”1” anzeigenden in dem Register 41b gespeicherte Daten kann das Eingangswahlmodul 41 das Kurbelsignal oder das Nockenflankensignal auf der Grundlage von Befehlen der CPU 31 als Eingangssignal an wenigstens eines der Module 43, 45, 47 und 49 geben.
  • Wenn das wenigstens eine Datenbit demgegenüber von der CPU 31 mit ”0” überschrieben wird, verhindert der Datenwert ”0”, dass das Eingangswahlmodul 41 das Kurbelsignal und das Nockenflankensignal an die Module 43, 45, 47 und 49 gibt.
  • Das Flankenintervallmessmodul 43 ist operativ mit dem Multiplikationstakterzeugungsmodul 45 verbunden und weist einen Flankenintervallmesszähler 43a auf.
  • Jedes Mal, wenn eine aktive Flanke in dem von dem Eingangswahlmodul 41 an das Flankenintervallmessmodul 43 gegebenen Eingangssignal erscheint, arbeitet der Flankenintervallmesszähler 43a derart, dass er ein Zeitintervall zwischen der momentanen aktiven Flanke und der folgenden aktiven Flanke, die zeitlich benachbart zu dieser liegt, misst.
  • Jedes Mal, wenn eine aktive Flanke in dem Eingangssignal erscheint, arbeitet der Flankenintervallmesszähler 43a insbesondere derart, dass er:
    seinen Zählwert zurücksetzt; und
    unmittelbar auf das Zurücksetzen hin die Anzahl an aktiven Flanken (abfallende oder ansteigende Flanken) der Takte eines von dem Mikrocomputer 30 erzeugten Systemtakts zählt, bis die nächste zeitlich benachbarte aktive Flanke in dem Eingangssignal erscheint.
  • Es sollte beachtet werden, dass der Systemtakt eine Synchronisierung der Funktionen in dem Mikrocomputer 30 untereinander ermöglicht. Der Systemtakt ist, wie vorstehend beschrieben, aus einer sich wiederholenden Reihe von Takten konstanter Taktzeit und konstanter Taktfrequenz aufgebaut; diese Taktfrequenz liegt über einer Frequenz der aktiven Flanken des Eingangssignals. Die Änderung des Zählwerts des Flankenintervallmesszählers 43a ist schematisch in der 4 gezeigt.
  • Dies führt dazu, dass einzelne Intervalle zwischen zeitlich benachbarten momentanen und folgenden aktiven Flanken in dem von dem Eingangswahlmodul 41 an das Flankenintervallmessmodul 43 gegebenen Eingangssignal sequentiell als entsprechende einzelne Zählwerte des Flankenintervallmesszählers 43a des Flankenintervallmessmoduls 43 gemessen werden.
  • Das Flankenintervallmessmodul 43 dient ferner dazu, jedes Mal einen Zählwert (gemessenes Intervall) des Flankenintervallmesszählers 43a an das Multiplikationstakterzeugungsmodul 45 zu geben, wenn eine nächste aktive Flanke vor einem Zurücksetzen des Zählwerts in dem Eingangssignal erscheint.
  • Das Multiplikationstakterzeugungsmodul 45 ist operativ mit dem Passierungswinkelmessmodul 47 und dem Winkeltaktmodul 49 verbunden und weist ein erstes und ein zweites Register 45a und 45b. Das zweite Register 45b dient dazu, eine Multiplikationszahl f zu speichern. Bei der Ausführungsform ist ein Standardwert der Multiplikationszahl f für das Kurbelsignal auf 60 gesetzt und wird die Multiplikationszahl f für das Kurbelsignal mit dem Standardwert von ”60” nachstehend insbesondere mit ”f1” bezeichnet.
  • Jedes Mal, wenn ein Zählwert des Flankenintervallmesszählers 43a an das Multiplikationstakterzeugungsmodul 45 gegeben wird, arbeitet das Multiplikationstakterzeugungsmodul 45 derart, dass es:
    den Zählwert (gemessenes Intervall) empfängt;
    den empfangenen Zählwert als Multiplikationstaktreferenzzeit in dem ersten Register 45a speichert (siehe ”Multiplikationstaktreferenzzeit” in der 4);
    die in dem ersten Register 45a gespeicherte Multiplikationstaktreferenzzeit durch die in dem zweiten Register 45b gespeicherte Multiplikationszahl f teilt, um einen Multiplikationstakt zu erzeugen, der aus einer sich wiederholenden Reihe von Multiplikati onstakten besteht, deren Taktzeit einem Multiplikationszahlteiler (Submultiple) der Multiplikationstaktreferenzzeit entspricht (siehe ”Multiplikationstakt” in der 4); und
    den erzeugten Multiplikationstakt an das Passierungswinkelmessmodul 47 und das Winkeltaktmodul 49 gibt.
  • Da die Multiplikationstaktreferenzzeit von dem Zählwert des Flankenintervallmesszählers 43a abhängt, der von einem entsprechenden Intervall der zeitlich benachbarten aktiven Flanken in dem Eingangssignal abhängt, hängt die Taktzeit des Multiplikationstakts von einer Änderung der Multiplikationstaktreferenzzeit ab.
  • Wenn ein Zählwert T0 beispielsweise als Multiplikationstaktreferenzzeit in dem ersten Register 45a gespeichert wird, wird die Periode des Multiplikationstakts, wie in 4 gezeigt, auf T0/f gesetzt. Wenn der in dem ersten Register 45a gespeicherte Zählwert T0 auf einen Zählwert T1 aktualisiert wird, wird die Periode des Multiplikationstaktsignals von T0/f zu T1/f geändert.
  • Gleichermaßen wird die Periode des Multiplikationstaktsignals dann, wenn der in dem ersten Register 45a gespeicherte Zählwert T1 auf einen Zählwert T2 aktualisiert wird, von T1/f zu T2/f geändert. Selbiges gilt, wenn die in dem ersten Register 45a gespeicherten Zählwerte auf T3 bis T5 aktualisiert werden.
  • Das Passierungswinkelmessmodul 47 weist einen Passierungswinkelmesszähler 47a auf, um die Anzahl von Änderungen in dem Multiplikationstakt in einer vorbestimmten gleichen Richtung, wie beispielsweise einer L-H-Richtung der Ausführungsform, zu zählen.
  • Der Passierungswinkelmesszähler 47a arbeitet insbesondere derart, dass er:
    den von dem Multiplikationstakterzeugungsmodul 45 ausgegebenen Multiplikationstakt empfängt;
    seinen Zählwert jedes Mal zurücksetzt, wenn eine aktive Flanke des Eingangssignals über das Passierungswinkelmessmodul 47 an ihn gegeben wird; und
    die Anzahl von ansteigenden Flanken der Multiplikationstaktimpulse des empfangenen Multiplikationstakts zählt, bis die zeitlich nächste benachbarte aktive Flanke des Eingangsignals an den Passierungswinkelmesszähler 47a gegeben wird (siehe ”Passierungswinkelmesszähler” in der 4).
  • Das von dem Eingangswahlmodul 41 an das Passierungswinkelunterbrechungsmodul 47 zu gebende Eingangsignal kann, wie vorstehend beschrieben, das Kurbelsignal oder das Nockenflankensignal sein. Das Nockensignal ist derart ausgelegt, dass es einen Pegel aufweist, der sich vorübergehend zeitlich wiederholend mit einer Drehung der Kurbelwelle CS ändert, und das Nockenflankensignal ist derart ausgelegt, dass es sich vorübergehend zeitlich wiederholend in einer vorbestimmten gleichen Richtung, wie beispielsweise der L-H-Richtung, mit einer Drehung der ersten oder zweiten Nockenwelle CM1 und CM2 ändert.
  • Folglich weist der Multiplikationstakt eine Taktzeit auf, die ein ganzzahliger Teiler (Submultiple) eines entsprechenden Zeitintervalls zwischen zeitlich benachbarten aktiven Flanken in dem Eingangssignal ist (Kurbelsignal oder Nockenflankensignal).
  • Folglich dient der Passierungswinkelmesszähler 47a dazu, einen Drehwinkel der Kurbelwelle CS zwischen jeweils zeitlich benachbarten aktiven Flanken des Eingangssignals mit einer Auflösung zu messen, die verglichen mit der Auflösung bei einer Messung des Drehwinkels in Synchronisierung mit einer aktiven Flanke des Eingangssignals hoch ist.
  • D. h., der Passierungswinkelmesszähler 47a dient dazu, einen Drehwinkel der Kurbelwelle CS, der einen Kurbelwinkel von 0 Grad bis Δθ Grad überstreicht, zwischen jeweils zeitlich benachbarten aktiven Flanken des Eingangssignals zu messen, wobei die Auflösung um das f-fache größer als bei einer Messung des Drehwinkels in Synchronisierung mit einer aktiven Flanke des Eingangssignals ist.
  • Es sollte beachtet werden, dass ein Messwert (Zählwert) des Passierungswinkelmesszählers 47a von einem entsprechenden Zeitintervall zwischen zeitlich benachbarten aktiven Flanken des Eingangssignals abhängt.
  • Das Passierungswinkelmessmodul 47 weist ferner ein Schwellenwertregister 47b zum Speichern eines Schwellenwerts für den Zählwert des Passierungswinkelmesszählers 47a auf. Das Passierungswinkelmessmodul 47 dient dazu, eine Unterbrechung zu erzeugen, wenn der Zählwert des Passierungswinkelmesszählers 47a größer oder gleich dem in dem Schwellenwertregister 47b gespeicherten Schwellenwert ist, um dadurch die Unterbrechung an die CPU 31 zu geben.
  • Gemäß der Ausführungsform ist ein Standardwert des Schwellenwerts auf einen vorbestimmten Wert gesetzt, der über einem Referenzzählwert liegt, welchen der Passierungswinkelmesszähler 47a erreichen kann, während keine impulslosen Abschnitte M in dem Kurbelsignal erscheinen; dieser Referenzzählwert entspricht einem Kurbelwinkel von Δθ Grad der Kurbelwelle CS.
  • Der Standardwert des Schwellenwerts ist ferner derart festgelegt, dass er kleiner als ein bestimmter Zählwert ist, welchen der Passierungswinkelmesszähler 47a erreichen kann, während einer der impulslosen Abschnitte M in dem Kurbelsignal erscheint.
  • Als Standardwert des Schwellenwerts wird beispielsweise ein Wert, der zweieinhalb mal so groß wie der Referenzzählwert Δθ ist, in dem Schwellenwertregister 47b gespeichert; dieser Standardwert des Schwellenwert ist durch 2.5 × Δθ gegeben.
  • Das Passierungswinkelmessmodul 47 weist ferner ein Freigabe-/Sperrregister 47c zum Speichern von „Freigabe” oder ”Sperren” anzeigender Information unter der Steuerung der CPU 31 auf. Als Standardwert der Information wird die ein ”Sperren” anzeigende Information im Voraus in dem Freigabe-/Sperrregister 47c gespeichert.
  • Das Winkeltaktmodul 49 weist einen Referenzzähler 49a, einen Schutzzähler 49b und einen Winkelzähler 49c auf.
  • Der Referenzzähler 49a dient bei der Ausführungsform dazu, die Anzahl von Änderungen des Multiplikationstakts in der vorbestimmten gleichen Richtung, wie beispielsweise der L-R-Richtung, zu zählen.
  • Der Schutzzähler 49b dient dazu, jedes Mal um die Multiplikationszahl f aufwärts zu zählen, wenn sich der Pegel des von dem Eingangswahlmodul 41 an den Zähler 49b gegebenen Eingangssignals in der vorbestimmten Richtung, wie beispielsweise der L-R-Richtung, ändert.
  • Der Winkelzähler 49c dient dazu, seinen Zählwert automatisch in Synchronisation mit einer aktiven Flanke, wie beispielsweise einer ansteigenden Flanke jedes Takts des Systemtakts, dem Zählwert des Referenzzählers 49a folgen zu lassen.
  • Das Winkeltaktmodul 49 weist ferner ein erstes und ein zweites Register (REG) 49d und 49e auf. Das erste Register 49d dient dazu, einen oberen Grenzwert für den Referenzzähler 49a und den Winkelzähler 49c zu speichern. Das zweite Register 49e dient dazu, einen Moduswert zu speichern. Der Moduswert bestimmt den Betriebsmodus des Referenzzählers 49a.
  • Der Referenzzähler 49a ist derart ausgelegt, dass er:
    die Anzahl an ansteigenden Flanken des von dem Multiplikationstakterzeugungsmodul 45 an ihn gegebenen Multiplikationstakts zählt; und
    seinen Zählwert im Ansprechen auf die ansteigende Flanke, die in dem Multiplikationstakt erscheint, nachdem der Zählwert den in dem ersten Register 49d gespeicherten oberen Grenzwert erreicht hat, auf Null (0) zurücksetzt.
  • Der Referenzzähler 49a ist ferner derart konfiguriert, dass er den Zählbetrieb in einem der Betriebsmodi ausführt; dieser ein Betriebsmodus wird durch den in dem zwei ten Register 49e gespeicherten Moduswert bestimmt.
  • Bei der Ausführungsform umfassen die Betriebmodi:
    einen Sperrmodus, bei welchem der Referenzzähler 49a das Zählen sperrt, nachdem der Zählwert den Zählwert des Schutzzählers 49b erreicht hat; und
    einen Freigabemodus, bei welchem der Referenzzähler 49a das Zählen selbst dann freigibt, wenn der Zählwert den Zählwert des Schutzzählers 49b erreicht hat.
  • Bei der Ausführungsform ist der Winkelzähler 49c derart konfiguriert, dass seine Zählwerte den Drehpositionen der Kurbelwelle CS entsprechen, wenn dessen Drehposition mit der Auflösung dargestellt wird, die durch Teilen des Einheitswinkels von Δθ des Kurbelwinkel (Kurbelwinkel von 6 Grad) durch den Wert 60 der Multiplikationszahl f1 erhalten wird; diese Auflösung wird gemäß der Gleichung ”6°/60 = 0.1° Kurbelwinkel” bestimmt.
  • Der Mikrocomputer 30 weist einen Zähler 30a mit einem Anfangszählwert von Null zum Messen einer flankenlosen Periode in dem Kurbelsignal auf. Der Zähler 30a kann als Hardware- oder Software-Komponente in dem Mikrocomputer 30 realisiert werden.
  • Nachstehend werden verschiedene von der CPU 31 des Mikrocomputers 30 in Übereinstimmung mit wenigstens einem der beispielsweise in dem Flash-ROM 37 gespeicherten Programme auszuführende Funktionen unter Bezugnahme auf die 5 bis 16 beschrieben.
  • (1) EINGANGSSIGNALDIAGNOSEFUNKTION
  • Zunächst werden die Befehle eines Eingangssignaldiagnosefunktionsprogramms, über welches die CPU 31 die Eingangssignaldiagnosefunktion wiederholt zu regelmäßigen Intervallen von Tc ausführen kann, nachdem der Mikrocomputer 30 hochgefahren wurde, unter Bezugnahme auf die 5 beschrieben.
  • Beim Starten des Eingangssignaldiagnosefunktionsprogramms bestimmt die CPU 31, ob die Drehzahl des Fahrzeugs größer oder gleich einem vorbestimmten Wert Na ist. Wenn bestimmt wird, dass die Drehzahl kleiner als der vorbestimmte Wert Na ist (NEIN in Schritt S110), verlässt der Mikrocomputer 13 die Eingangssignaldiagnosefunktion.
  • In Schritt S110 kann die Motordrehzahl durch vorbestimmte Drehzahlberechnungsoperationen unter Verwendung des Kurbelsignals berechnet werden. Die CPU 31 misst beispielsweise das Zeitintervall des Kurbelwinkels von 360 Grad, was einem Erscheinungszyklus der impulslosen Abschnitte M entspricht, und berechnet die Drehzahl auf der Grundlage des gemessen Zeitintervalls.
  • Die impulslosen Abschnitte M können gemäß nachstehender Weise erfasst werden. Es werden insbesondere werden die Intervalle zwischen zeitlich benachbarten aktiven Flanken des Kurbelsignals gemessen, und wenn ein momentan gemessenes Messintervall größer oder gleich dem Produkt aus einem zuvor gemessenen Intervall und einem vorbestimmten Erfassungsverhältnis fehlender Impulse von beispielsweise 2 ist, wird bestimmt, dass das momentan gemessene Intervall einem der impulslosen Abschnitte M entspricht.
  • Wenn demgegenüber bestimmt wird, dass die Drehzahl größer oder gleich dem vorbestimmten Wert Na ist (JA in Schritt S110), schreitet die CPU 31 zu Schritt S120 voran. In Schritt S120 bestimmt die CPU 31, ob eine aktive Flanke, wie beispielsweise eine abfallende Flanke, während eines regulären Zeitintervalls Tc von der vorherigen Eingangssignaldiagnosefunktion bis zu dieser momentanen Eingangssignaldiagnosefunktion in dem Kurbelsignal erscheint.
  • Wenn bestimmt wird, dass eine aktive Flanke (abfallende Flanke) während des regulären Zeitintervalls Tc in dem Kurbelsignal erscheint (JA in Schritt S120), speichert die CPU 31 in Schritt S130 Information, die anzeigt, dass das Kurbelsignal normal ist, als Diagnoseergebnis in beispielsweise dem RAM 39.
  • Anschließend löscht die CPU 31 den Zählwert des Zählers 30a zur Messung flankenloser Periode (nachstehend lediglich als Zähler 30a bezeichnet) in Schritt S140 und verlässt die Eingangssignaldiagnosefunktion. Der Zähler 30a ist derart ausgelegt, dass er jedes Mal zurückgesetzt wird, wenn der Mikrocomputer 30 hochgefahren wird.
  • Der Zähler 30a dient insbesondere als Zähler, der dafür vorgesehen ist, die Anzahl von Malen zu zählen, an denen bei den folgenden Operationen der Eingangssignaldiagnosefunktion bestimmt wird, dass keine ansteigenden Flanken in dem Kurbelsignal erscheinen.
  • Wenn demgegenüber bestimmt wird, dass während des regulären Zeitintervalls Tc keine aktiven Flanken in dem Kurbelsignal erscheinen (NEIN in Schritt S120), überprüft die CPU 31 in Schritt S150, ob der Zählwert des Zählers 30a einen vorbestimmten Wert Nb von beispielsweise 10 überschreitet.
  • Wenn bestimmt wird, dass der Zählwert des Zählers 30a den vorbestimmten Wert Nb nicht überschreitet (NEIN in Schritt S150), inkrementiert die CPU 31 den Zählwert des Zählers 30a um 1 und verlässt die Eingangssignaldiagnosefunktion.
  • Wenn demgegenüber bestimmt wird, dass der Zählwert des Zählers 30a den vorbestimmten Wert Nb überschreitet (JA in Schritt S150), speichert die CPU 31 in Schritt S170 Information, die anzeigt, dass das Kurbelsignal fehlerhaft ist, als Diagnoseergebnis in beispielsweise dem RAM 39 und verlässt die Eingangssignaldiagnosefunktion.
  • Bei der in der 5 gezeigten Eingangssignaldiagnoseschaltung wird beispielsweise angenommen, dass die Drehzahl größer oder gleich dem vorbestimmten Wert Na ist (JA in Schritt S110).
  • In diesem Fall wird das Kurbelsignal dann, wenn keine aktiven abfallenden Flanken in dem Kurbelsignal erscheinen, nachdem eine vorbestimmte Zeitspanne verstrichen ist (NEIN in Schritt S120 und JA in Schritt S150), als fehlerhaft bestimmt (siehe Schritt S170). Es sollte beachtet werden, dass die vorbestimmte Zeitspanne als Produkt des regulären Zeitintervalls Tc und des vorbestimmten Werts Nb darstellt wird (Tc × Nb), und dass angenommen wird, dass während der vorbestimmten Zeitspanne eine aktive abfallende Flanke in dem Kurbelsignal erscheint.
  • Die CPU 31 führt die in der 5 gezeigte Eingangssignaldiagnosefunktion für das erste und das zweite Nockensignal auf die gleiche Weise wie für das Kurbelsignal aus (siehe 5), um so zu bestimmen, ob das erste und das zweite Nockensignal normal sind. Da die Befehle der Eingangssignaldiagnosefunktion für das erste und das zweite Nockensignal im Wesentlichen denen für das Kurbelsignal entsprechen, werden diese nachstehend nicht näher beschrieben.
  • (2) ZEITSYNCHRONISIERUNGSFUNKTION
  • Nachstehend werden die Befehle eines Zeitsynchronisierungsfunktionsprogramms, über welches die CPU 31 die Zeitsynchronisierungsfunktion wiederholt zu regelmäßigen Intervallen parallel zur Eingangssignaldiagnosefunktion ausführen kann, unter Bezugnahme auf die 6 beschrieben.
  • Beim Starten des Zeitsynchronisierungsfunktionsprogramms greift die CPU 31 auf die in dem RAM 39 gespeicherte und das Diagnoseergebnis für das Kurbelsignal beschreibende Information zu (siehe Schritte S130 und S170 in der 5), um dadurch in Schritt S210 auf der Grundlage des bezogenen Ergebnisses zu bestimmen, ob das Kurbelsignal fehlerhaft ist.
  • Wenn bestimmt wird, dass das Kurbelsignal normal ist (NEIN in Schritt S210), schreitet die CPU 31 zu Schritt S220 voran. In Schritt S220 sendet die CPU 31 ein Kurbelsignalwahlbefehl an das Eingangswahlmodul 41, um das Kurbelsignal als das Eingangssignal zu wählen. Die CPU 31 sendet den Kurbelsignalwahlbefehl in Schritt S220 ferner an jedes der Module 43, 45, 47 und 49. Anschließend verlässt die CPU 31 die Zeitsynchronisierungsfunktion.
  • Über den von dem Eingangswahlmodul 41 empfangenen Kurbelsignalwahlbefehl kann das Modul 41 das Kurbelsignal als Eingangssignal wählen, um so das gewählte Kurbelsignal als Eingangssignal an jedes der Module 43, 45, 47 und 49 zu geben.
  • Über den von dem Multiplikationstakterzeugungsmodul 45 empfangenen Kurbelsignalwahlbefehl kann das Modul 45 den Wert 60 als Multiplikationszahl f1 für das Kurbelsignal in dem zweiten Register 45b speichern.
  • Über den von dem Passierungswinkelmessmodul 47 empfangenen Kurbelsignalwahlbefehl kann das Modul 47 einen dem durch die Gleichung Δθ × 2.5 gegebenen Standartwert entsprechenden Wert als Schwellenwert in dem Schwellenwertregister 47b speichern.
  • Über den von dem Winkeltaktmodul 49 empfangenen Kurbelsignalwahlbefehl kann das Modul 49 einen oberen Grenzwert von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c in dem ersten Register 49d speichern; dieser obere Grenzwert wird für das Kurbelsignal bestimmt. Es sollte beachtet werden, dass der obere Grenzwert für das Kurbelsignal bei dieser Ausführungsform durch einen Wert gegeben ist, der bestimmt wird, indem ein einer Drehung der Kurbelwelle CS entsprechender Kurbelwinkel von 360 Grad durch eine Auflösung von 0.1° CA geteilt wird, und zwar auf der Grundlage des Winkelzählers 49c. D. h., der obere Grenzwert für das Kurbelsignal wird gemäß der Gleichung ”360/0.1 = 3600” erhalten.
  • Wenn demgegenüber bestimmt wird, dass das Kurbelsignal fehlerhaft ist (JA in Schritt S210), schreitet die CPU 31 zu Schritt S230 voran.
  • In Schritt S230 greift die CPU 31 auf die in dem RAM 39 gespeicherte und das Diagnoseergebnis für sowohl des erste als auch das zweite Nockensignal beschreibende Information zu, um auf der Grundlage des bezogenen Ergebnisses zu bestimmen, ob das erste und/oder das zweite Nockensignal fehlerhaft ist.
  • Wenn bestimmt wird, dass sowohl das erste als auch das zweite Nockensignal normal sind (NEIN in Schritt S230), schreitet die CPU 31 zu Schritt S240 voran. In Schritt S240 sendet die CPU 31 einen Nockenflankensignalwahlbefehl an das Eingangswahlmodul 41, um das Nockenflankesignal als Eingangssignal zu bestimmen. Die CPU 31 sendet den Nockenflankensignalwahlbefehl in Schritt S240 ferner an jedes der Module 43, 45, 47 und 49. Anschließend verlässt die CPU 31 die Zeitsynchronisierungsfunktion.
  • Über den von dem Eingangswahlmodul 41 empfangenen Nockenflankenwahlbefehl kann das Modul 41 das Nockenflankensignal als Eingangssignal bestimmen, um so das gewählte Nockenflankensignal als Eingangssignal an jedes der Module 43, 45, 47 und 49 zu geben.
  • Über den von dem Multiplikationstakterzeugungsmodul 45 empfangenen Nockenflankensignalwahlbefehl kann das Modul 45 einen Wert für das Nockenflankensignal als Multiplikationszahl f1 in dem zweiten Register 45b speichern. Die Multiplikationszahl f für das Nockenflankensignal wird bei der Ausführungsform nachstehend als ”f2” bezeichnet.
  • Der in dem zweiten Register 45b gespeicherte als Multiplikationszahl f2 für das Nockenflankensignal dienende Wert wird erhalten, indem:
    das Produkt aus einem Winkelintervall des Kurbelwinkel von 120 Grad zwischen beliebigen zwei zeitlich benachbarten Punkten P in dem Nockenflankensignal und der Multiplikationszahl 60 für das Kurbelsignal berechnet wird; und
    das erhaltene Produkt durch den Einheitswinkel von 6 Grad des Kurbelwinkels geteilt wird.
  • D. h., die Multiplikationszahl f2 für das Nockenflankensignal wird gemäß der Gleichung ”(120 × 60)/6 = 1200” erhalten.
  • Über den von dem Winkeltaktmodul 49 empfangenen Nockenflankensignalwahl befehl kann das Modul 49 einen oberen Grenzwert von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c in dem ersten Register 49d speichern. Es sollte beachtet werden, dass der obere Grenzwert für das Nockenflankensignal bei dieser Ausführungsform durch einen Wert gegeben ist, der bestimmt wird, indem ein Kurbelwinkel von 720 Grad, der einer Drehung von sowohl der ersten als auch der zweiten Nockenwelle CM1 und CM2 entspricht, durch eine CA-Auflösung von 0.1° geteilt wird, die auf dem Winkelzähler 49c basiert. D. h., der obere Grenzwert für das Nockensignal wird gemäß der Gleichung ”720/0.1 = 7200” erhalten.
  • Es sollte beachtet werden, dass ein Schwellenwert im Gegensatz zu Schritt S220 in Schritt S240 nicht in dem Schwellenwertregister 47b gespeichert wird.
  • Wenn demgegenüber bestimmt wird, dass wenigstens das erste oder zweite Nockensignal fehlerhaft ist (JA in Schritt S230), verlässt die CPU 31 die Zeitsynchronisierungsfunktion.
  • (3) Kurbelflankenunterbrechungsfunktion
  • Nachstehend werden die Befehle eines Kurbelflankenunterbrechungsfunktionsprogramms unter Bezugnahme auf die 7 beschrieben. Die Befehle ermöglichen es der CPU 31, die Kurbelflankenunterbrechungsfunktion jedes Mal ausführen, wenn eine aktive Flanke in dem von dem Eingangswahlmodul 41 als Eingangssignal ausgegebenen Kurbelsignal erscheint (siehe Schritt S220 in der 6), nachdem der Mikrocomputer 30 hochgefahren wurde.
  • Wenn ein Erscheinen einer aktiven Flanke in dem Kurbelsignal (Eingangssignal) das Starten des Kurbelflankenunterbrechungsfunktionsprogramms auslöst, bestimmt die CPU 31 in Schritt S310, ob die aktive Triggerflanke das Ende eines impulslosen Abschnitts M in dem Kurbelsignal beschreibt.
  • Es sollte beachtet werden, dass die zeitlich benachbarten aktiven Flanken E12 und E13 in dem Kurbelsignal, wie beispielsweise in der 8 gezeigt, einen impulslo sen Abschnitt Ma zwischen sich aufweisen.
  • Unter dieser Annahme entspricht das Zeitintervall des impulslosen Abschnitts Ma zwischen den aktiven Flanken E12 und E13 einem gemessenen Zählwert T12 des Flankenintervallmesszählers 43a. Intervalle zwischen zeitlich benachbarten aktiven Flanken anderer Abschnitt, jedoch nicht der impulslosen Abschnitt M in dem Kurbelsignal, entsprechen jeweils gemessenen Zählwerten T10, T11, T13, T14 usw.
  • Das Zeitintervall des impulslosen Abschnitts Ma in dem Kurbelsignal ist, wie deutlich in der 8 gezeigt, länger als die Intervalle der anderen Abschnitte, mit Ausnahme der impulslosen Abschnitte M des Signals. Aus diesem Grund ist der dem Zeitintervall des impulslosen Abschnitts Ma in dem Kurbelsignal entsprechende Zählwert T12 größer als die anderen Zählwerte, von denen jeder einem der anderen Abschnitte zugeordnet ist.
  • Ein Messwert (Zählwert) des Passierungswinkelmesszählers 47a hängt, wie vorstehend beschrieben, von einem entsprechenden Zeitintervall zwischen zeitlich benachbarten Flanken gleicher Richtung in dem Kurbelsignal ab. Aus diesem Grund ist ein dem Zeitintervall des impulslosen Abschnitts Ma in dem Kurbelsignal entsprechender Zählwert des Passierungswinkelmesszählers 47a größer als der einem anderen Zeitintervall von einem der anderen Abschnitte in dem Kurbelsignal entsprechende Zählwert des Zählers 47a.
  • Ferner ist der Standardwert (Δθ × 2.5) des in dem Schwellenwertregister 47b gespeicherten Schellenwerts größer als der Referenzzählwert, der von dem Passierungswinkelmesszähler 47a erreichen werden kann, während keine impulslosen Abschnitte M in dem Kurbelsignal erscheinen, und kleiner als der bestimmte Zählwert, der von dem Zähler 47a erreichen kann, während einer der impulslosen Abschnitte M in dem Kurbelsignal erscheint.
  • Aus diesem Grund überschreitet der dem Zeitintervall des impulslosen Abschnitts Ma in dem Kurbelsignal entsprechende Zählwert des Passierungswinkelmesszählers 47a den bestimmten Zählwert, der größer als der Standardwert (Δθ × 2.5) des in dem Schwellenwertregister 47b gespeicherten Schwellenwerts ist. Der dem Zeitintervall des impulslosen Abschnitts Ma in dem Kurbelsignal entsprechende Zählwert des Passierungswinkelmesszählers 47a ist in der 8 beispielsweise durch ”Δθ × 3” gekennzeichnet.
  • Dies führt dazu, dass das Passierungswinkelmessmodul 47 dann, wenn der dem Zeitintervall des impulslosen Abschnitts Ma in dem Kurbelsignal entsprechende Zählwert des Passierungswinkelmesszählers 47a den Standardwert des Schellenwerts erreicht, eine Unterbrechung erzeugt, um diese an die CPU 31 zu geben.
  • Folglich bestimmt die CPU 31 dann, wenn sie die von dem Passierungswinkelmessmodul 47 ausgegebene Unterbrechung empfängt, dass die aktive Triggerflanke das Ende des impulslosen Abschnitts M in dem Kurbelsignal beschreibt (JA in Schritt S310).
  • 9 zeigt beispielsweise eine aktive Flanke E22, welche der das Ende eines impulslosen Abschnitts M beschreibenden aktiven Triggerflanke entspricht.
  • Anschließend bestimmt die CPU 31 in Schritt S320, ob ein Kurbelpositionsbestimmungsflag F1 ”AUS” anzeigende Information hält. Es sollte beachtet werden, dass das Kurbelpositionsbestimmungsflag F1 bei jedem Hochfahren des Mikrocomputers 30 durch beispielsweise Software in dem Mikrocomputer 30 gesetzt wird. Die ”AUS” anzeigende Information ist während des Einschaltprozesses als Standardinformation des Kurbelpositionsbestimmungsflags F1 gesetzt.
  • Wenn bestimmt wird, dass das Kurbelpositionsbestimmungsflag F1 die die Standardeinstellung, d. h. ”AUS” anzeigende Information hält (JA in Schritt S320), bestimmt die CPU 31 einen Zeitpunkt unmittelbar auf das Hochfahren des Mikrocomputers folgend und schreitet zu Schritt S330 voran.
  • In Schritt S330 setzt die CPU 31 das Produkt aus ”59” und der bei der Kurbel flankenunterbrechungsfunktion auf 60 gesetzten Multiplikationszahl f1 auf den Zählwert des Referenzzählers 49a. Gleichermaßen setzt die CPU 31 das Produkt aus ”59” und der bei der Kurbelflankenunterbrechungsfunktion auf 60 gesetzten Multiplikationszahl f1 auf den Zählwert des Winkelzählers 49c.
  • Über das auf den Zählwert des Referenzzählers 49a zu setzende Produkt aus ”59” und der Multiplikationszahl f1 (60) kann der Zählwert von diesem gelöscht (auf Null gesetzt) werden, wenn die nächste aktive Flanke E23 in dem Kurbelsignal erscheint. Gleichermaßen kann über das auf den Zählwert des Winkelzählers 49c zu setzende Produkt aus ”59” und der Multiplikationszahl f1 (60) der Zählwert von diesem gelöscht (auf Null gesetzt) werden, wenn die nächste aktive Flanke E23 in dem Kurbelsignal erscheint.
  • Anschließend ändert die CPU 31 die von dem Kurbelpositionsbestimmungsflag F1 gehaltene Information in Schritt S350 von ”AUS” zu ”EIN”.
  • Auf die Ausführung des Befehls in Schritt S350 oder eine negative Bestimmung in Schritt S320, die anzeigt, dass das Kurbelpositionsbestimmungsflag F1 die ”AUS” anzeigende Information nicht hält, folgend setzt die CPU 31 den Zählwert des Schutzzählers 49b in Schritt S360 auf ”0”.
  • Der Zählwert von Null (0), auf welchen der Schutzzähler 49b gesetzt wird, beschreibt einen Zählwert, den sowohl der Referenzzähler 49a als auch der Winkelzähler 49c annehmen sollte, wenn die nächste aktive Flanke E23 in dem Kurbelsignal erscheint.
  • Es wird insbesondere angenommen, dass der Motor dann, wenn die aktive Flanke E22 in dem Kurbelsignal erscheint, plötzlich derart beschleunigt, dass sich die Drehzahl, d. h. die Motordrehzahl plötzlich erhöht. Unter dieser Annahme kann ein Zeitintervall zwischen der aktiven Flanke E22 und der nächsten aktiven Flanke E23 in dem Kurbelsignal einen verglichen mit den normalen Zeitintervallen der aktiven Flanken des Signals kurzen Zeitraum annehmen. Dies kann bewirken, dass der Zählwert von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c bei Erscheinen der nächsten aktiven Flanke E23 nicht auf Null (0) kommt; jeder der Zähler 49a und 49b sollte bei Erscheinen der nächsten aktiven Flanke E23 den Wert Null (0) annehmen.
  • Unter dieser Annahme ist es gemäß der Ausführungsform möglich, den Zählwert von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c derart gezielt zu erhöhen, dass er an dann, wenn die nächste aktive Flanke E23 in dem Kurbelsignal erscheint, mit dem Schutzwert des Schutzzählers 49b übereinstimmt. Hierdurch kann der Zählwert von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c selbst dann den Wert Null (0) annehmen, wenn ein Zeitintervall zwischen der aktiven Flanke E22 und der nächsten aktiven Flanke E23 in dem Kurbelsignal einen verglichen mit den normalen Zeitintervallen der aktiven Flanken in dem Signal kurzen Zeitraum annimmt.
  • Es wird ferner angenommen, dass sich der Motor bei Erscheinen der aktiven Flanke E22 in dem Kurbelsignal plötzlich derart verlangsamt, dass ein Zeitintervall zwischen der aktiven Flanke E22 und der nächsten aktiven Flanke E23 in dem Kurbelsignal einen verglichen mit den normalen Zeitintervallen der aktiven Flanken des Signals langen Zeitraum annimmt. Dies kann bewirken, dass der Zählwert von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c an der nächsten aktiven Flanke E23 den Wert Null (0), den beide Zähler 49a und 49b an der nächsten aktiven Flanke E23 annehmen sollten, überschreitet.
  • Unter dieser Annahme kann gemäß der Ausführungsform eine Erhöhung des Zählwerts von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c gezielt gestoppt werden, wenn der Zählwert den Schutzwert des Schutzzählers 49b erreicht. Hierdurch kann der Zählwert von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c selbst dann den Wert Null (0) annehmen, wenn ein Zeitintervall zwischen der aktiven Flanke E22 und der nächsten aktiven Flanke E23 in dem Kurbelsignal einen verglichen mit den normalen Zeitintervallen der aktiven Flanken des Signals langen Zeitraum annimmt.
  • Der Schutzzähler 49b ist gemäß obiger Beschreibung derart aufgebaut, dass sein Zählwert bei Erscheinen einer aktiven Flanke in dem Kurbelsignal einen Wert beschreibt, den sowohl der Referenzzähler 49a als auch der Winkelzähler 49c bei Erscheinen der nächsten aktiven Flanke in dem Kurbelsignal annehmen sollten. Hierdurch kann der Zählwert von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c selbst dann geschützt werden, wenn der Motor plötzlich beschleunigt oder sich verlangsamt.
  • Auf den Schritt S360 folgend sendet die CPU 31 in Schritt S370 einen den Freigabemodus anzeigenden Befehl an das Winkeltaktmodul 49.
  • Über den den Freigabemodus anzeigenden und von dem Winkeltaktmodul 49 empfangenen Befehl kann das Modul 49 einen den Freigabemodus anzeigenden Freigabemoduswert als Moduswert in dem zweiten Register 49e speichern. Über den in dem zweiten Register 49e gespeicherten Freigabemoduswert kann der Referenzzähler 49a selbst dann in dem vorstehend beschriebenen Freigabemodus zählen, wenn der Zählwert des Schutzzählers 49b auf ”0” gesetzt ist.
  • Anschließend sendet die CPU 31 in Schritt S380 einen Befehl zum Korrigieren einer in dem ersten Register 45a gespeicherten Multiplikationstaktreferenzzeit an das Multiplikationstakterzeugungsmodul 45.
  • Der Befehl dient insbesondere dazu, einen Wert, der berechnet wird, indem der Zählwert (Messintervall) des Flankenintervallmessmoduls 43 durch einen vorbestimmten Wert geteilt wird, als in dem ersten Register 45a zu speichernde Multiplikationstaktreferenzzeit festzulegen.
  • Wenn der Befehl empfangen wird, arbeitet das Multiplikationstakterzeugungsmodul 45 derart, dass es:
    den an einem Zeitpunkt von dem Flankenintervallmessmodul 43 erhaltenen Zählwert durch den vorbestimmten Wert teilt; dieser Zeitpunkt ist mit einem Erscheinen einer aktiven Flanke in dem Kurbelsignal unmittelbar auf den Empfang des Befehls hin synchronisiert; und
    einen durch die Division berechneten Wert als korrigierte Multiplikationstaktreferenzzeit in dem ersten Register 45a speichert.
  • Insbesondere beträgt der einem Zeitintervall, wie beispielsweise T22, eines impulslosen Abschnitts M in dem Kurbelsignal entsprechende Zählwert, wie in 9 gezeigt, das k-fache des einem Zeitintervall, wie beispielsweise T21, von einem der anderen Abschnitte, jedoch nicht dem impulslosen Abschnitt M des Signals, entsprechenden Zählwerts. Es sollte beachtet werden, dass die Breite des Zeitintervalls ”T1”, die länger als die des Zeitintervalls ”T2” ist, wie durch ”FLANKENINTERVALLZEIT” in der 9 gezeigt, nicht von der Länge des Zeitintervalls ”T1” abhängt. Die Länge des Zeitintervalls ”T2” ist in der 13 insbesondere länger als die des Zeitintervalls ”T1”.
  • Bei der Ausführungsform wird der vorbestimmte Wert folglich auf k gesetzt, der ein Verhältnis eines Zeitintervalls zwischen aktiven Flanken eines impulslosen Abschnitts M in dem Kurbelsignal zu dem zwischen aktiven Flanken eines weiteren Abschnitts des Signals beschreibt; k ist bei dieser Ausführungsform auf 3 gesetzt.
  • Hierdurch kann jede der Multiplikationstaktreferenzzeiten im Wesentlichen konstant sein, so dass der Multiplikationstakt eine im Wesentlichen konstante Taktzeit aufweist (siehe ”Multiplikationstakt” in der 9).
  • Anschließend setzt die CPU 31 einen Zählwert eines Teilzählers C1 in Schritt S390 auf ”2” und schreitet zu Schritt S430 voran. Die CPU 31 kann den Teilzähler C1 beispielsweise über Software steuern (wenigstens eines der Programme). Ein Anfangswert des Teilzählers C1 wird auf ”0” gesetzt.
  • Wenn demgegenüber bestimmt wird, dass sie aktive Triggerflanke nicht das Ende eines impulslosen Abschnitts M in dem Kurbelsignal beschreibt (NEIN in Schritt S310), bestimmt die CPU 31 in Schritt S400, ob die aktive Triggerflanke das Kopfende eines impulslosen Abschnitts M beschreibt.
  • Bei der ersten Ausführungsform führt die CPU 31 die Bestimmung in Schritt S400 aus, indem sie beispielsweise bestimmt, ob der Zählwert des Winkelzählers 49c eine dem Kopfende eines zahnlosen Abschnitts 11c entsprechende Drehposition der Kurbelwelle CS beschreibt. Wenn sie bestimmt, dass der Zählwert des Winkelzählers 49c die dem Kopfende eines zahnlosen Abschnitts 11c entsprechende Drehposition der Kurbelwelle CS beschreibt, bestimmt die CPU 31 in Schritt S400, dass die aktive Triggerflanke das Kopfende eines impulslosen Abschnitts M beschreibt.
  • Die CPU 31 setzt das Produkt aus ”59” und der in der Kurbelflankenunterbrechungsfunktion auf 60 gesetzten Multiplikationszahl f1 insbesondere dann, wenn bestimmt wird, dass die aktive Triggerflanke das Kopfende eines impulslosen Abschnitts M beschreibt (JA in Schritt S400), in Schritt S410 auf den Zählwert des Schutzzählers 49b.
  • Dies erfolgt, da der Zählwert des Referenzzählers 49a und des Winkelzählers 49c das Produkt aus ”59” und der Multiplikationszahl f1 (60) annehmen sollte, wenn die nächste aktive Flanke, welche dem Ende eines impulslosen Abschnitts M entspricht, in dem Kurbelsignal erscheint.
  • Auf eine Ausführung des Befehls in Schritt S410 oder eine negative Bestimmung in Schritt S400 folgend sendet die CPU 31 in Schritt S420 einen den Sperrmodus anzeigenden Befehl an das Winkeltaktmodul 49. Anschließend schreitet die CPU 31 zu Schritt S430 voran.
  • Über den den Sperrmodus anzeigenden und von dem Winkeltaktmodul 49 empfangenen Befehl kann das Modul 49 als Moduswert einen den Sperrmodus anzeigenden Sperrmoduswert als Moduswert in dem zweiten Register 49e speichern. Über den in dem zweiten Register 49e gespeicherten Sperrmoduswert kann der Referenzzähler 49a in dem vorstehend beschriebenen Sperrmodus zählen.
  • In Schritt S430 bestimmt die CPU 31, ob das Kurbelpositionsbestimmungsflag F1 die ”EIN” anzeigende Information hält.
  • Wenn bestimmt wird, dass das Kurbelpositionsbestimmungsflag F1 die ”EIN” anzeigende Information hält (JA in Schritt S430), verringert die CPU 31 den Zählwert des Teilzählers C1 in Schritt S440 um 1 und schreitet zu Schritt S450 voran.
  • In Schritt S450 überprüft die CPU 31, ob der Zählwert des Teilzählers C1 auf ”0” gesetzt ist.
  • Wenn bestimmt wird, dass der Zählwert des Teilzählers C1 auf ”0” gesetzt ist (JA in Schritt S450), schreitet die CPU 31 zu Schritt S460 voran. In Schritt S460 erzeugt die CPU 31 ein Ereignis, das einen Aktivierungszeitpunkt für eines der einzelnen Steuerziele bestimmt, die mit der Motorsteuerung verknüpft sind, wie beispielsweise eine Einspritzvorrichtung und/oder eine Zündvorrichtung für einen entsprechenden Zylinder.
  • Parallel zur Kurbelwinkelunterbrechungsfunktion ist die CPU 31 der Ausführungsform derart programmiert, dass sie:
    eine geeignete Stand-by-Periode und eine geeignete Aktivierungsperiode für jedes der einzelnen Steuerziele auf der Grundlage der Messsignale von der Eingangsschaltung 10 berechnet; und
    die berechnete Stand-by-Periode und die berechnete Aktivierungsperiode für ein entsprechendes der Steuerziele jedes Mal auf jeweilige Zählwerte des ersten und des zweiten Zeitgebers der Zeitgeberausgabeeinheit 35 setzt, wenn die Kurbelflankenunterbrechungsfunktion das Ereignis erzeugt.
  • Wenn der erste und der zweite Zeitgeber auf die Zählwerte für ein entsprechendes der Steuerziele gesetzt werden, arbeitet die Zeitgeberausgabeeinheit 35 derart, dass sie:
    auf der Grundlage des Zählwerts des ersten Zählers wartet, um die Aktivierungs zeit für ein entsprechendes der Steuerziele auszugeben, bis ihre Stand-by-Periode verstrichen ist; und
    auf der Grundlage des Zählwerts des zweiten Zeitgebers einen Befehl zum Aktivieren eines entsprechenden der Steuerziele für die Aktivierungsperiode an die Ausgangsschaltung 20 gibt.
  • Die Ausgangsschaltung 20 arbeitet derart, dass sie:
    den Befehl für ein entsprechendes der Steuerziele empfängt; und
    ein entsprechendes der Steuerziele für dessen Aktivierungsperiode auf der Grundlage des empfangenen Befehls aktiviert.
  • Auf die Ausführung des Befehls in Schritt S460 hin setzt die CPU 31 den Zählwert des Teilzählers C1 in Schritt S470 auf beispielsweise ”5”. Ein Setzen des Zählwerts des Teilzählers C1 auf ”5” ermöglicht es der CPU 31, ein Ereignis zu regelmäßigen Intervallen von 30 Grad des Kurbelwinkels auszugeben. Die regelmäßigen Intervalle von 30 Grad des Kurbelwinkels werden nachstehend als ”Ereignisintervalle” bezeichnet.
  • Nach der Ausführung des Befehls in Schritt S470, einer negative Bestimmung in Schritt S430, die anzeigt, dass das Kurbelpositionsbestimmungsflag F1 auf EIN gesetzt wird, oder einer negative Bestimmung in Schritt S450, die anzeigt, dass der Zählwert des Teilzählers C1 von ”0” verschieden ist, und verlässt die CPU 31 die Kurbelflankenunterbrechungsfunktion.
  • Nachstehend werden von der CPU 31 gesteuerte bestimmte Operationen der jeweiligen Module 41, 43, 45, 47 und 49 und Änderungen der Parameter, wie beispielsweise der Zählwerte der Zähler 43a, 49a, 49b und 49c unter Bezugnahme auf die 7, 9 und 10 beschrieben.
  • Unmittelbar auf ein Hochfahren des Mikrocomputers 30 hin (siehe Abschnitt e20 in der 9) arbeitet das Passierungswinkelmessmodul 47 für gewöhnlich nicht und führt der Winkelzähler 49c keinen Zählbetrieb aus. Aus diesem Grund sind die Bestimmungen der Schritte S310 und S400 jeweils negativ, so dass die Ausführung der CPU 31 über den Befehl in Schritt S420 zum Befehl in Schritt S430 verschoben wird.
  • Zu diesem Zeitpunkt ist die Bestimmung in Schritt S430 negativ (NEIN), da das Kurbelpositionsbestimmungsflag F1 die ”AUS” anzeigende Information als Standardinformation hält, so dass die Kurbelflankenunterbrechungsfunktion verlassen wird.
  • Anschließend werden die Befehle in den Schritten S310, S400, S420 und S430 jedes Mal wiederholt in dieser Reihenfolge von der CPU 31 ausgeführt, wenn eine aktive Flanke in dem Kurbelsignal erscheint (siehe Abschnitt e21 in der 9).
  • Während der wiederholten Ausführung der Befehle in den Schritten S310, S400, S420 und S430 überschreitet der Zählwert des Passierungswinkelmesszählers 47a den in dem Schwellenwertregister 47b gespeicherten Schwellenwert, bevor eine in dem Kurbelsignal erscheinende aktive Flanke E22 das Ende eines impulslosen Abschnitts M beschreibt (siehe 8). Während der wiederholten Ausführung der Befehle in den Schritten S310, S400, S420 und S430 sollte beachtet werden, dass die Bestimmung in Schritt S400 negativ (NEIN) ist, da der Zählwert des Winkelzählers 49c nicht das Kopfende eines impulslosen Abschnitts M beschreibt.
  • In der 8 kennzeichnet beispielsweise das Bezugszeichen E13 eine in dem Kurbelsignal erscheinende aktive Flanke, die das Ende eines impulslosen Abschnitts M beschreibt.
  • Hierdurch kann das Passierungswinkelmessmodul 47 eine Unterbrechung erzeugen und diese an die CPU 31 geben. Die Unterbrechung wird von der CPU 31 empfangen, so dass folglich dann, wenn die aktive Flanke E22 auf einen Empfang der Unterbrechung hin in dem Kurbelsignal erscheint, bestimmt wird, dass die aktive Flanke E22 das Ende eines impulslosen Abschnitts M in dem Kurbelsignal beschreibt (JA in Schritt S310). Folglich wird die Ausführung der CPU 31 zum Schritt S320 und den folgenden Schritten verschoben.
  • Zu diesem Zeitpunkt ist die Bestimmung in Schritt S320 positiv, da das Kurbelpositionsbestimmungsflag F1 auf die ”AUS” anzeigende Information gesetzt ist, so dass die Ausführung der CPU 31 zum Schritt S330 verschoben wird.
  • In Schritt S330 wird der Zählwert des Referenzzählers 49a auf das Produkt aus ”59” und der Multiplikationszahl f1 (60) gesetzt, und in Schritt S340 wird der Zählwert des Winkelzählers 49c auf das Produkt aus ”59” und der Multiplikationszahl f1 (60) gesetzt. Anschließend wird das Kurbelpositionsbestimmungsflag F1 in Schritt S350 auf die ”EIN” anzeigende Information gesetzt.
  • Anschließend wird der Zählwert des Schutzzählers 49b in Schritt S360 auf ”0” gesetzt und führt der Referenzzähler 49a in Schritt S370 den Zählbetrieb im Freigabemodus aus.
  • Selbst wenn der Zählwert des Schutzzählers 49b in Schritt S360 auf ”0” gesetzt wird, da der Betriebsmodus des Referenzzählers 49a in Schritt S370 auf den Freigabemodus gesetzt wird, zählt der Referenzzähler 49a fortlaufend hoch, bis der Zählwert den in dem ersten Register 49d gespeicherten oberen Grenzwert erreicht (siehe Abschnitt e23 in der 9).
  • Anschließend wird die Multiplikationstaktreferenzzeit in Schritt S380 von T22 auf T22/3 korrigiert (siehe ”T22/3” in der 9) und die Ausführung der CPU 31 hierauf folgend zu Schritt S430 verschoben. Da das Kurbelpositionsbestimmungsflag F1 an dem Verschiebungszeitpunkt auf die ”EIN” anzeigende Information gesetzt wird, ist die Bestimmung in Schritt S430 positiv (JA), so dass der Teilzähler C1 in Schritt S440 um 1 verringert wird.
  • Durch die Verringerung kann der Zählwert des Teilzählers C1 unmittelbar vor dem Schritt S430 von dem in Schritt S390 gesetzten Wert ”2” auf ”1” gesetzt werden. Zu diesem Zeitpunkt ist die Bestimmung in Schritt S450 negativ (NEIN), da der Zählwert des Teilzählers C1 nicht den Wert ”0” annimmt, so dass die Kurbelflankenunterbrechungsfunktion verlassen wird.
  • Wenn die nächste aktive Flanke E23 in Übereinstimmung mit der Drehung der Kurbelwelle CS um Δθ Grad des Kurbelwinkels in dem Kurbelsignal erscheint (siehe 9), wird der Zählwert von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c von dem Produkt aus ”59” und der Multiplikationszahl f1 (60) zu dem Produkt aus ”60” und der Multiplikationszahl f1 (60) inkrementiert. Das Produkt aus ”60” und der Multiplikationszahl f1 (60) ist an den in dem ersten Register 49d gespeicherten oberen Grenzwert von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c angepasst. Aus diesem Grund wird der Zählwert von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c in synchron zur in dem Kurbelsignal erscheinenden aktiven Flanke E23 gelöscht (siehe 9).
  • Ferner sind die Bestimmungen in den Schritten S310 und S400 jeweils negativ (NEIN), wenn die nächste aktive Flanke E23 in Übereinstimmung mit der Drehung der Kurbelwelle CS um Δθ Grad des Kurbelwinkels in dem Kurbelsignal erscheint, so dass der Betriebmodus des Referenzzählers 49a in Schritt S420 von dem Freigabemodus in den Sperrmodus zurückgesetzt wird.
  • Hierauf folgend ist die Bestimmung in Schritt S430 positiv (JA), da das Kurbelpositionsbestimmungsflag F1 auf die ”EIN” anzeigende Information gesetzt ist, so dass der Teilungszähler C1 in Schritt S440 um 1 verringert wird.
  • Durch die Verringerung kann der Zählwert des Teilzählers C1 von dem in Schritt S440 gesetzten Wert ”1” auf ”0” gesetzt werden. Da der Zählwert des Teilzählers C1 den Wert ”0” annimmt, ist die Bestimmung von Schritt S450 positiv (JA), so dass in Schritt S460 Ereignisse, die Aktivierungszeitpunkte für die einzelnen mit der Motorsteuerung verknüpften Steuerziele bestimmen, erzeugt werden. Anschließend wird der Zählwert des Teilzählers C1 in Schritt S470 auf ”5” gesetzt und die Kurbelflankenunterbrechungsfunktion verlassen.
  • Auf die positive Bestimmung in Schritt S310 folgend, bei der eine aktive Flanke einem Einschalten des Mikrocomputers das Ende nach eines impulslosen Abschnitts M in dem Kurbelsignal beschreibt, werden die Befehle in den Schritten S310, S400 und S420 bis S470 gemäß obiger Beschreibung jedes Mal wiederholt in dieser Reihenfolge von der CPU 31 ausgeführt, wenn eine aktive Flanke in dem Kurbelsignal erscheint. Die wiederholte Ausführung der Befehle in den Schritten S310, S400 und S420 bis S470 wird in Schritt S400 gestoppt, wenn eine in dem Kurbelsignal erscheinende aktive Flanke das Kopfende eines impulslosen Abschnitts M des Signals beschreibt (siehe Abschnitt E24 in der 10).
  • Wenn eine in dem Kurbelsignal erscheinende aktive Flanke (E25) (siehe 10) das Kopfende eines impulslosen Abschnitts M des Signals beschreibt (JA in Schritt S400), wird der Zählwert des Schutzzählers 49b in Schritt S410 auf das Produkt aus ”59” und der Multiplikationszahl f1 (60) gesetzt. Anschließend werden die Befehle S420 bis S470 von der CPU 31 ausgeführt (siehe Abschnitt E25 in der 10).
  • Anschließend wird dann, wenn die nächste aktive Flanke (E26) in dem Kurbelsignal erscheint, bestimmt, dass die aktive Flanke (E26) das Ende des impulslosen Abschnitts beschreibt (JA in Schritt S310). Zu diesem Zeitpunkt ist die Bestimmung in Schritt S320 negativ (NEIN), da das Kurbelpositionsbestimmungsflag F1 auf die ”EIN” anzeigende Information gesetzt ist, so dass die Ausführung der CPU 31 zu Schritt S360 verschoben wird.
  • Anschließend zählt der Referenzzähler 49a, wie vorstehend beschrieben, kontinuierlich hoch, wobei der Zählwert des Schutzzählers 49b unverändert bleibt, bis der Zählwert des Referenzzählers 49a gelöscht (auf Null gesetzt) wird (siehe Abschnitt E26 in der 10). Anschließend werden, wie vorstehend beschrieben, die Befehle in den Schritten S310, S400 und S420 bis S470 wiederholt von der CPU 31 ausgeführt, bis bestimmt wird, dass eine in dem Kurbelsignal erscheinende aktive Flanke das Kopfende eines impulslosen Abschnitts M beschreibt (siehe Abschnitt E27 in der 10).
  • (4) Nockenflankenunterbrechungsfunktion
  • Nachstehend werden die Befehle eines Nockenflankenunterbrechungsfunktionsprogramms unter Bezugnahme auf die 11 beschrieben. Die Befehle ermöglichen es der CPU 31, die Nockenflankenunterbrechungsfunktion jedes Mal auszuführen, wenn eine aktive Flanke nach einem Hochfahren des Mikrocomputers 30 in dem von dem Eingangswahlmodul 41 als Eingangssignal ausgegebenen Nockenflankensignal erscheint (siehe Schritt S240 in der 6).
  • Wenn ein Erscheinen einer aktiven Flanke in dem Nockenflankensignal (Eingangssignal) ein Starten des Nockenflankenunterbrechungsfunktionsprogramms auslöst, bestimmt die CPU 31 in Schritt S510, ob ein Nockenpositionsbestimmungsflag F2 ”AUS” anzeigende Information hält. Es sollte beachtet werden, dass das Nockenpositionsbestimmungsflag F2 beispielsweise bei jedem Hochfahren des Mikrocomputers 30 mit Hilfe eines Computerprogramms gesetzt wird. Die ”AUS” anzeigende Information wird während des Einschaltprozesses des Mikrocomputers als Standardinformation des Nockenpositionsbestimmungsflags F2 festgelegt.
  • Wenn bestimmt wird, dass das Nockenpositionsbestimmungsflag F2 die den Standardwert von ”AUS” anzeigende Information hält (JA in Schritt S510), bestimmt die CPU 31 einen Zeitpunkt unmittelbar auf das Einschalten des Mikrocomputers folgend und schreitet zu Schritt S520 voran.
  • In Schritt S520 bestimmt die CPU 31, ob der Zählwert des Schutzzählers 49b größer oder gleich der doppelten Multiplikationszahl f2 ist, die bei der Nockenflankenunterbrechungsfunktion, wie vorstehend beschrieben, in dem zweiten Register 45b auf 1200 gesetzt wird. D. h., die CPU 31 bestimmt, ob der Zählwert des Schutzzählers 49b größer oder gleich 2400 (2 × 1200) ist. Als Standardwert ist der Zählwert des Schutzzählers 49b auf ”0” gesetzt.
  • Wenn bestimmt wird, dass der Zählwert des Schutzzählers 49b größer oder gleich der doppelten Multiplikationszahl f2 ist (JA in Schritt S520), schreitet die CPU 31 zu Schritt S530 voran.
  • In Schritt S530 setzt die CPU 31 die jeweiligen Zählwerte des Referenzzählers 49a, des Schutzzählers 49b und des Winkelzählers 49c auf Anfangswerte.
  • Bei dieser Ausführungsform wird insbesondere im Voraus bestimmt, dass jede aktive Flanke in dem Nockenflankensignal:
    dem ersten oder dem zweiten Nockensignal entspricht; und
    einer ansteigenden oder einer abfallenden Flanke in dem ersten oder dem zweiten Nockensignal entspricht; und
    dem H- oder dem L-Pegel des anderen der beiden Nockensignale entspricht.
  • Ferner werden bei dieser Ausführungsform in dem Referenzzähler 49a zu speichernde Anfangswerte im Voraus für die jeweiligen aktiven Flanken in dem Nockenflankensignal bestimmt. In gleicher Weise werden in dem Schutzzähler 49b zu speichernden Anfangswerte im Voraus für die jeweiligen aktiven Flanken in dem Nockenflankensignal und in dem Winkelzähler 49c zu speichernde Anfangswerte im Voraus für die jeweiligen aktiven Flanken in dem Nockenflankensignal bestimmt.
  • 12 zeigt eine Tabelle, in welcher die Übereinstimmungen zwischen den einzelnen Anfangswerten der jeweiligen Zähler 49a bis 49c und den einzelnen aktiven Flanken in dem Nockenflankensignal schematisch dargestellt sind.
  • Die Anfangswerte der Zähler 49a, 49b und 49c werden insbesondere dann, wenn eine in dem Nockenflankensignal erscheinende aktive Flanke einer ansteigenden Flanke in dem ersten Nockensignal entspricht, während das zweite Nockensignal an einem der Änderungspunkte P den L-Pegel aufweist, auf ”6000”, ”0” bzw. ”6000” gesetzt.
  • Wenn eine in dem Nockenflankensignal erscheinende aktive Flanke einer ansteigenden Flanke in dem ersten Nockensignal entspricht, während das zweite Nocken signal an einem der Änderungspunkte P den H-Pegel aufweist, werden die Anfangswerte der Zähler 49a, 49b und 49c auf ”3600”, ”4800” bzw. ”3600” gesetzt.
  • Wenn eine in dem Nockenflankensignal erscheinende aktive Flanke einer abfallenden Flanke in dem ersten Nockensignal entspricht, während das zweite Nockensignal an einem der Änderungspunkte Q den L-Pegel aufweist, werden die Anfangswerte der Zähler 49a, 49b und 49c auf ”5700”, ”6900” bzw. ”5700” gesetzt.
  • Wenn eine in dem Nockenflankensignal erscheinende aktive Flanke einer abfallenden Flanke in dem ersten Nockensignal entspricht, während das zweite Nockensignal an einem der Änderungspunkte P den H-Pegel aufweist, werden die Anfangswerte der Zähler 49a, 49b und 49c auf ”1200”, ”2400” bzw. ”1200” gesetzt.
  • Wenn eine in dem Nockenflankensignal erscheinende aktive Flanke einer ansteigenden Flanke in dem zweiten Nockensignal entspricht, während das erste Nockensignal an einem der Änderungspunkte P den L-Pegel aufweist, werden die Anfangswerte der Zähler 49a, 49b und 49c ferner auf ”2400”, ”3600” bzw. ”2400” gesetzt.
  • Wenn eine in dem Nockenflankensignal erscheinende aktive Flanke einer ansteigenden Flanke in dem zweiten Nockensignal entspricht, während das erste Nockensignal an einem der Änderungspunkte P den H-Pegel aufweist, werden die Anfangswerte der Zähler 49a, 49b und 49c auf ”0”, ”1200” bzw. ”0” gesetzt.
  • Wenn eine in dem Nockenflankensignal erscheinende aktive Flanke einer abfallenden Flanke in dem zweiten Nockensignal entspricht, während das erste Nockensignal an einem der Änderungspunkte Q den L-Pegel aufweist, werden die Anfangswerte der Zähler 49a, 49b und 49c auf ”2100”, ”3300” bzw. ”2100” gesetzt.
  • Wenn eine in dem Nockenflankensignal erscheinende aktive Flanke einer abfallenden Flanke in dem zweiten Nockensignal entspricht, während das erste Nockensignal an einem der Änderungspunkte P den H-Pegel aufweist, werden die Anfangswerte der Zähler 49a, 49b und 49c auf ”4800”, ”6000” bzw. ”4800” gesetzt.
  • Es sollte beachtet werden, dass die Begriffe ”ansteigende Flanke” und ”abfallende Flanke” in der 12 durch ”↑” bzw. ”↓” und die Begriffe ”L-Pegel” und ”H-Pegel” durch ”L” bzw. ”H” gekennzeichnet sind.
  • Bei dieser Ausführungsform werden beispielsweise Daten, die Übereinstimmungen zwischen den einzelnen Anfangswerten der jeweiligen Zähler 49a bis 49c und den einzelnen aktiven Flanken in dem Nockenflankensignal anzeigen, im Voraus in einer Tabelle T gespeichert. Ferner wird die Tabelle T beispielsweise im Voraus in dem Flash-ROM 37 gespeichert.
  • Die CPU 31 greift insbesondere in Schritt S530 auf die in der Tabelle T gespeicherten Daten zu, um die Anfangswerte für die jeweiligen Zähler 49a bis 49c aus dieser Tabelle zu lesen; diese ausgelesenen Anfangswerte entsprechen einer momentanen aktiven Flanke, die in dem Nockenflankensignal erscheint. Anschließend speichert die CPU 31 die ausgelesenen Anfangswerte in Schritt S530 in den entsprechenden Zählern 49a, 49b bzw. 49c.
  • Anschließend ändert die CPU 31 die von dem Nockenpositionsbestimmungsflag F2 gehaltene Information in Schritt S540 von ”AUS” zu ”EIN” und schreitet zu Schritt S570 voran.
  • Wenn demgegenüber bestimmt wird, dass der Zählwert des Schutzzählers 49b kleiner der doppelten Multiplikationszahl f2 ist (NEIN in Schritt S520), schreitet die CPU 31 zu Schritt S570 voran, wobei sie die Befehle in den Schritten S550 und S560 überspringt.
  • Wenn demgegenüber bestimmt wird, dass das Nockenpositionsbestimmungsflag f2 die ”EIN” anzeigende Information hält (NEIN in Schritt S510), wechselt die CPU 31 zu Schritt S550.
  • In Schritt S550 bestimmt die CPU 31, ob der Zählwert des Schutzzählers 49b grö ßer oder gleich dem Produkt aus der Multiplikationszahl f2 (1200) und der Anzahl an Zylindern ist, die bei dieser Ausführungsform 6 beträgt. D. h., die CPU 31 bestimmt, ob der Zählwert des Schutzzählers 49b größer oder gleich 7200 (6 × 1200) ist.
  • Wenn bestimmt wird, dass der Zählwert des Schutzzählers 49b größer oder gleich dem Produkt aus der Multiplikationszahl f2 (1200) und der Anzahl an Zylindern (6) ist (JA in Schritt S550), schreitet die CPU 31 zu Schritt S560 voran. In Schritt S560 setzt die CPU 31 den Zählwert des Schutzzählers 49b auf ”0” und schreitet zu Schritt S570 voran.
  • Wenn demgegenüber bestimmt wird, dass der Zählwert des Schutzzählers 49b kleiner dem Produkt aus der Multiplikationszahl f2 (1200) und der Anzahl an Zylindern (6) ist (NEIN in Schritt S550), schreitet die CPU 31 zu Schritt S570 voran, wobei sie den Befehl in Schritt S560 überspringt.
  • In Schritt S570 überprüft die CPU 31, ob der Zählwert des Schutzzählers 49b den Wert ”0” aufweist.
  • Wenn bestimmt wird, dass der Zählwert des Schutzzählers 49b auf ”0” gesetzt ist (JA in Schritt S570), sendet die CPU 31 in Schritt S580, gleich Schritt S370, einen den Freigabemodus anzeigenden Befehl an das Winkeltaktmodul 49. Hierdurch kann der Referenzzähler 49a selbst dann in dem vorstehend beschriebenen Freigabemodus zählen, wenn der Zählwert des Schutzzählers 49b auf ”0” gesetzt ist.
  • Wenn demgegenüber bestimmt wird, dass der Zählwert des Schutzzählers 49b von ”0” verschieden ist (NEIN in Schritt S570), sendet die CPU 31 in Schritt S590, gleich Schritt S420, einen den Sperrmodus anzeigenden Befehl an das Winkeltaktmodul 49. Hierdurch kann der Referenzzähler 49a in dem vorstehend beschriebenen Sperrmodus zählen.
  • Wenn der Betriebsmodus des Referenzzählers 49a in Schritt S580 oder S590 hergestellt ist, bestimmt die CPU 31 in Schritt S600, ob die aktive Triggerflanke einen Änderungspunkt unmittelbar vor einem Änderungspunkt Q beschreibt. D. h., die CPU 31 bestimmt in Schritt S600, ob die aktive Triggerflanke eine aktive Flanke beschreibt, deren nächste aktive Flanke einem Änderungspunkt Q entspricht.
  • Bei dieser Ausführungsform umfassen die Änderungspunkte Q, wie in den 2, 12 und 13 gezeigt,
    einen Änderungspunkt Q1, an welchem der Pegel des ersten Nockensignals vorübergehend in der H-L-Richtung wechselt, während das zweite Nockensignal den L-Pegel aufweist; und
    einen Änderungspunkt Q2, an welchem der Pegel des zweiten Nockensignals vorübergehend in der H-L-Richtung wechselt, während das erste Nockensignal den L-Pegel aufweist.
  • Folglich entspricht ein Änderungspunkt P1, an welchem der Pegel des zweiten Nockensignals vorübergehend in der H-L-Richtung wechselt, während das erste Nockensignal den H-Pegel aufweist, einem Änderungspunkt unmittelbar vor dem Änderungspunkt Q1. Gleichermaßen entspricht ein Änderungspunkt P2, an welchem der Pegel des ersten Nockensignals vorübergehend in der H-L-Richtung wechselt, während das zweite Nockensignal den H-Pegel aufweist, einem Änderungspunkt unmittelbar vor dem Änderungspunkt Q2.
  • In Schritt S600 greift die CPU 31 beispielsweise auf die in der Tabelle T gespeicherten Daten zu, um auf der Grundlage des Referenzergebnisses zu bestimmen, ob die aktive Triggerflanke einen Änderungspunkt unmittelbar vor einem Änderungspunkt Q beschreibt.
  • Wenn bestimmt wird, dass die aktive Triggerflanke einen Änderungspunkt unmittelbar vor einem Änderungspunkt Q beschreibt (JA in Schritt S600), schreitet die CPU 31 zu Schritt S610 voran. In Schritt S610 sendet die CPU 31 einen Befehl zum Überschreiben des wenigstens einen in dem Register 41b gespeicherten Datenbits vom Standardwert ”1” auf ”0” an das Eingangswahlmodul 41.
  • Die den Wert ”0” beschreibenden Daten verhindern, dass das Eingangswahlmodul 41 das Kurbelsignal und das Nockenflankensignal an die Module 43, 45, 47 und 49 gibt.
  • Wenn demgegenüber bestimmt wird, dass die aktive Triggerflanke keinen Änderungspunkt unmittelbar vor einem Änderungspunkt Q beschreibt (NEIN in Schritt S600), schreitet die CPU 31 zu Schritt S620 voran. In Schritt S620 hält die CPU 31 unverändert den Standardwert ”1” des wenigstens einen Datenbits, so dass das Eingangswahlmodul 41 das (Kurbelsignal und das Nockenflankensignal fortlaufend an die Module 43, 45, 47 und 49 geben kann.
  • Wenn der Betriebszustand des Eingangswahlmoduls 41 in Schritt S610 oder S620 hergestellt ist, bestimmt die CPU 31 in Schritt S630, ob das Nockenpositionsbestimmungsflag F2 die ”EIN” anzeigende Information hält und die aktive Triggerflanke keinen Änderungspunkt Q beschreibt.
  • Wenn bestimmt wird, dass entweder das Nockenpositionsbestimmungsflag F2 die ”AUS” anzeigende Information hält oder die aktive Triggerflanke einen Änderungspunkt Q beschreibt (NEIN in Schritt S630), verlässt die CPU 31 die Nockenflankenunterbrechungsfunktion.
  • Wenn demgegenüber bestimmt wird, dass das Nockenpositionsbestimmungsflag F2 die ”EIN” anzeigende Information hält und die aktive Triggerflanke keinen Änderungspunkt Q beschreibt (JA in Schritt S630), schreitet die CPU 31 zu Schritt S640 voran.
  • In Schritt S640 überprüft die CPU 31, ob ein Zählwert eines Ereigniszählers C2 größer als ”0” ist. Die CPU 31 kann den Ereigniszähler C2 beispielsweise über ein Computerprogramm steuern (wenigstens eines der Programme). Bei dieser Ausführungsform setzt die CPU 31 den Zählwert des Ereigniszählers C2 als Standardwert auf ”0”.
  • Wenn bestimmt wird, dass der Zählwert des Ereigniszählers C2 größer ”0” ist (JA in Schritt S640), schreitet die CPU 31 zu Schritt S660 voran, wobei sie den Befehl in Schritt S650 überspringt.
  • In Schritt S660 speichert die CPU 31 einen Schwellenwert in dem Schwellenwertregister 47b. Bei der Ausführungsform wird der in dem Schellenwertregister 47b zu speichernde Schwellenwert für die Nockenflankenunterbrechungsfunktion auf der Grundlage:
    eines Drehwinkels von sowohl der ersten als auch der zweiten Nockenwelle CM1 und CM2 von einem Änderungspunkt P, der zum Erzeugen eines Ereignisses benötigt wird;
    Winkelintervallen, an denen die Drehposition von sowohl der ersten als auch der zweiten Nockenwelle CM1 und CM2 einen der TDCs der einzelnen Zylinder erreicht; und
    der Multiplikationszahl f2 (1200) erhalten.
  • Der Drehwinkel von sowohl der ersten als auch der zweiten Nockenwelle CM1 und CM2 von einem Änderungspunkt P, der zum Erzeugen eines Ereignisses benötigt wird, ist bei der Ausführungsform als ”Kurbelwinkel von 15 Grad” bestimmt; dieser Drehwinkel wird nachstehend als ”Ereigniserzeugungswinkel” bezeichnet.
  • Die Winkelintervalle, an denen die Drehposition von sowohl der ersten als auch der zweiten Nockenwelle CM1 und CM2 einen der TDCs der einzelnen Zylinder erreicht, sind bei der Ausführungsform als ”Kurbelwinkel von 120 Grad” bestimmt; diese Winkelintervalle werden nachstehend als ”TDC-Winkel” bezeichnet.
  • Der Schwellenwert für die Nockenflankenunterbrechungsfunktion ist insbesondere als ”15/(120/120C)) = 15 × (1200/120) = 150” bestimmt. Der Schwellenwert von ”150” wird in Schritt S660 in dem Schwellenwertregister 47b gespeichert.
  • Es sollte beachtet werden, dass der Zählwert des Passierungswinkelmesszählers 47a dann, wenn der Befehl in Schritt S660 vollständig ausgeführt ist, die Anzahl an aktiven Flanken, wie beispielsweise ansteigenden Flanken der Multiplikationstakte des Multiplikationstaktes zwischen zwei zeitlich benachbarten aktiven Flanken des Nockenflankensignals (Eingangssignal) an den jeweiligen Änderungspunkten P, beschreibt. Die Anzahl an aktiven Flanken (ansteigende Flanken) der Multiplikationstakte beschreibt einen Drehwinkel von sowohl der ersten als auch der zweiten Nockenwelle CM1 und CM2 zwischen zwei zeitlich benachbarten aktiven Flanken des Nockenflankensignals (Eingangssignal) an den jeweiligen Änderungspunkten P.
  • Anschließend überschreibt die CPU 31 in Schritt S670 die in dem Freigabe-/Sperrregister 47c gespeicherte ”Sperren” anzeigende Information mit ”Freigabe” anzeigender Information. Über die ”Freigabe” anzeigende Information kann die CPU 31 eine nachstehend beschriebene Passierungswinkelunterbrechungsfunktion (Passierungswinkelunterbrechungsprogramm) im Ansprechen auf den Empfang einer Unterbrechung von dem Passierungswinkelmessmodul 47 starten. Die ”Sperren” anzeigende Information verhindert demgegenüber, dass die CPU 31 die Passierungswinkelunterbrechungsfunktion startet.
  • Anschließend setzt die CPU 31 in Schritt S680 einen Ereigniswert in dem Ereigniszähler C2. Der Ereigniswert wird bei der Ausführungsform erhalten, indem der TDC-Winkel (120° CA) durch das Ereignisintervall (30° CA) geteilt wird, so dass er ”120/30” = 4 ergibt. Der Ereigniswert ”4” wird in Schritt S680 in dem Ereigniszähler C2 gespeichert. Auf die Ausführung des Befehls in Schritt S680 hin verlässt die CPU 31 die Nockenflankenunterbrechungsfunktion.
  • Nachstehend werden die bestimmten Operationen der jeweiligen Module 41, 43, 45, 47 und 49 unter der Steuerung der CPU 31 und Änderungen der Parameter, wie beispielsweise der Zählwerte der Zähler 43a, 49a, 49b und 49c unter Bezugnahme auf die 11 und 13 beschrieben.
  • Wenn das Nockenflankenunterbrechungsprogramm das erste Mal im Ansprechen auf eine aktive Triggerflanke in dem Nockenflankensignal gestartet wird (siehe E41 in der 13), hält das Nockenpositionsbestimmungsflag die den Standardwert von ”AUS” anzeigende Information und wird der Zählwert des Schutzzählers 49b von dem Standardwert von ”0” um 1 × f inkrementiert (siehe Abschnitte e40 und e41 in der 13). Aus diesem Grund ist die Bestimmung in Schritt S510 positiv (JA) und die Bestimmung in Schritt S520 negativ, so dass die Ausführung der CPU 31 zum Befehl in Schritt S570 verschoben wird.
  • Da der Zählwert des Schutzzählers 49b auf ”1 × f” gesetzt wird, was von ”0” verschieden ist, ist die Bestimmung in Schritt S570 negativ (NEIN), so dass die Ausführung der CPU 31 über den Befehl in Schritt S590 zum Befehl in Schritt S600 schreitet.
  • Zu diesem Zeitpunkt ist die Bestimmung in Schritt S600 negativ (NEIN), da der Befehl in Schritt S530 nicht ausgeführt wird, so dass die jeweiligen Zähler 49a, 49b und 49c nicht auf die Anfangswerte gesetzt sind. Anschließend schreitet die Ausführung der CPU 31 zu Schritt S620 voran. Hierdurch kann der Standardwert ”1” des wenigstens einen in dem Register 41b gespeicherten Datenbits gehalten werden, so dass das Eingangswahlmodul 41 das Nockenflankensignal fortlaufend an die Module 43, 45, 47 und 49 geben kann.
  • Da das Nockenpositionsbestimmungsflag die den Standardwert von ”AUS” anzeigende Information hält (NEIN in Schritt S630), wird die Nockenflankenunterbrechungsfunktion verlassen.
  • Anschließend hält das Nockenpositionsbestimmungsflag F2 dann, wenn die nächste aktive Flanke in der Nockenflankensignal erscheint (siehe E42 in der 13), die den Standardwert von ”AUS” anzeigende Information und wird der Zählwert des Schutzzählers 49b von dem Zählwert ”1 × f” um 1 × f inkrementiert, so dass er den Wert ”2 × f” annimmt (siehe Abschnitte e42 in der 13). Hierdurch wird eine positive Bestimmung (JA) in Schritt S520 möglich.
  • Auf die positive Bestätigung in Schritt S520 hin werden die Anfangswerte, die auf der Grundlage der momentanen aktiven Flanke (E42) in dem Nockenflankensignal und der Tabelle T bestimmt werden, in Schritt S530 in den entsprechenden Zählern 49a, 49b bzw. 49c gespeichert. Es werden insbesondere die Anfangswerte 3600 entsprechend ”3 × f”, 4800 entsprechend ”4 × f” und 3600 entsprechend ”3 × f” als Zählwerte in dem Referenzzähler 49a, dem Schutzzähler 49b bzw. dem Winkelzähler 49c gespeichert (siehe Tabelle T in der 12).
  • Auf die Ausführung des Befehls in Schritt S530 folgend wird das Nockenpositionsbestimmungsflag F2 in Schritt S540 auf die ”EIN” anzeigende Information gesetzt.
  • Da der Zählwert des Schutzzählers 49b nicht auf ”0” gesetzt ist und die nächste in dem Nockenflankensignal erscheinende aktive Flanke E43 nicht dem Änderungspunkt Q1 entspricht, werden die Befehle in den Schritten S570, S590, S600 und S620 anschließend der Reihe nach von der CPU 31 ausgeführt. Anschließend schreitet die Ausführung der CPU 31 zu Schritt S630 voran.
  • Da die momentane aktive Flanke E42 in dem Nockenflankensignal nicht dem Änderungspunkt Q1 entspricht und das Nockenpositionsbestimmungsflag F2 auf die ”EIN” anzeigende Information gesetzt ist, ist die Bestimmung in Schritt S630 positiv (JA). Folglich wird die Ausführung der CPU 31 zu Schritt S640 verschoben.
  • In Schritt S640 wird überprüft, ob der Ereigniswert des Ereigniszählers C2 größer ”0” ist.
  • Da der Zählwert des Ereigniszählers C2 bei dem Standardwert von ”0” verbleibt, werden die Befehle in den Schritten S660, S670 und S680 von der CPU 31 aufgeführt, wobei der Befehl in Schritt S650 übersprungen wird. Hierdurch können die Parameter, einschließlich des Schwellenwerts des Schwellenwertregisters 47b, der in dem Freigabe-/Sperrregister 47c gespeicherten Information und des Zählwerts des Ereigniszählers C2 bestimmt werden, woraufhin die Nockenflankenunterbrechungsfunktion verlassen wird.
  • Bei der Ausführungsform wird insbesondere in Schritt S660 ”150” als Schwellenwert in dem Schwellenwertregister 47b gespeichert und die ”Sperren” anzeigende und in dem Freigabe-/Sperrregister 47c gespeicherte Information in Schritt S670 in ”Freigabe” geändert. Ferner wird in Schritt S680 ”4” als Ereigniswert in dem Ereigniszähler C2 gespeichert.
  • Vor einem Erscheinen der nächsten aktiven Flanke E43 in dem Nockenflankensignal (siehe Abschnitt e42 in der 13) kann das Passierungswinkelmessmodul 47 über die ”Freigabe” anzeigende Information synchron zu einer ansteigenden Flanke jedes Multiplikationstakts in dem Multiplikationstaktsignal eine Unterbrechung auszugeben.
  • Anschließend erscheint die nächste aktive Flanke E43, deren nächste aktive Flanke dem Änderungspunkt Q1 entspricht, in dem Nockenflankensignal (siehe 13).
  • Das Erscheinen der aktiven Flanke E43 in dem Nockenflankensignal ermöglicht es,
    die Anfangswerte von 4800 entsprechend ”4 × f”, 6000 entsprechend ”6 × f” und 4800 entsprechend ”4 × f” als Zählwerte in dem Referenzzähler 49a, dem Schutzzähler 49b bzw. dem Winkelzähler 49c zu speichern (siehe Schritt S530 und Tabelle T in der 12); und
    dass die Bestimmung in Schritt S600 positiv (JA) ist.
  • Über die positive Bestimmung in Schritt S600 kann wenigstens ein in dem Register 41b gespeichertes Datenbit ”1” zu ”0” geändert werden. Hierdurch kann das Eingangswahlmodul 41 das Nockenflankensignal an die Module 43, 45, 47 und 49 geben (siehe Schritt S610). Anschließend schreitet die Ausführung der CPU 31 zu Schritt S630 voran.
  • Zu diesem Zeitpunkt entspricht die momentane aktive Flanke E43 in dem Nockenflankensignal nicht dem Änderungspunkt Q1 und ist das Nockenpositionsbestimmungsflag F2 auf die ”EIN” anzeigende Information gesetzt. Aus diesem Grund ist die Bestimmung in Schritt S630 positiv (JA). Folglich wird die Ausführung der CPU 31 zu Schritt S640 verschoben.
  • Da der Zählwert des Ereigniszählers C2 durch die nachstehend beschriebene Passierungswinkelunterbrechungsfunktion gelöscht (auf Null gesetzt) wird, ist die Bestimmung in Schritt S640 negativ (NEIN), so dass die folgenden Befehle S660 bis S680 von der CPU 31 ausgeführt werden und die Nockenflankenunterbrechungsfunktion anschließend verlassen wird.
  • Es wird, wie vorstehend beschrieben, kein Nockenflankensignal von dem Eingangswahlmodul 41 an die Module 43, 45, 47 und 49 gegeben, während die in dem Register 41b gespeicherten Daten den Wert ”0” beschreiben. Aus diesem Grund wird keine in dem Nockenflankensignal erscheinende aktive Flanke an die Module 43, 45, 47 und 49 gegeben. Dies führt dazu, dass die Zähler 43a und 47a kontinuierlich hochzählen, bis die nächste aktive Flanke E44 auf die aktive Flanke Q1 folgend in dem Nockenflankensignal erscheint (siehe Abschnitt e43 in der 13).
  • Wenn die nächste aktive Flanke E44 in dem Nockenflankensignal erscheint, ist der Zählwert des Schutzzählers 49b von dem in Schritt S530 bei dem Erscheinen der aktiven Flanke E43 in dem Nockenflankensignal gesetzten Wert ”6000” entsprechend (5 × f) an derart erhöht worden, dass er den Wert ”7200” erreicht (siehe 13). Da der Zählwert von ”7200” des Schutzzählers 49b gleich dem Produkt aus der Multiplikationszahl f2 (1200) und der Anzahl an Zylindern ist, die bei dieser Ausführungsform den Wert 6 entspricht, ist die (Bestimmung in Schritt S550 positiv (JA). Folglich wird der Zählwert des Schutzzählers 49b in Schritt S560 auf ”0” gesetzt.
  • Folglich ist die Bestimmung in Schritt S570 positiv (JA), so dass der Referenzzäh ler 49a in Schritt S580 den Hochzählbetrieb im Freigabemodus ausführt.
  • Selbst wenn der Zählwert des Schutzzählers 49b in Schritt S560 auf ”0” gesetzt wird, zählt der Referenzzähler 49a fortlaufend hoch, bis der Zählwert den in dem ersten Register 49d gespeicherten oberen Grenzwert erreicht (siehe Abschnitt e44 in der 13), da der Betriebsmodus des Referenzzählers 49a in Schritt S580 in den Freigabemodus gesetzt wird.
  • Vor einem Erscheinen der nächsten aktiven Flanke E45 in dem Nockenflankensignal (siehe Abschnitt e44 in der 13) kann das Passierungswinkelmessmodul 47 über die ”Freigabe” anzeigende Information synchron zu einer in dem Multiplikationstaktsignal erscheinenden ansteigenden Flanke jedes Multiplikationstakts eine Unterbrechung ausgeben. Die von dem Passierungswinkelmessmodul 47 ausgegebene Unterbrechung wird derart an die CPU 31 gegeben, dass die CPU 31 die nachstehend beschriebene Passierungswinkelunterbrechungsfunktion ausführt.
  • Da der Zählwert des Ereigniszählers C2, wie vorstehend beschrieben, durch die Passierungswinkelunterbrechungsfunktion gelöscht (auf Null gesetzt) wird, ist die Bestimmung in Schritt S640 folglich negativ (NEIN), so dass die folgenden Befehle der Schritte S660 bis S680 von der CPU 31 ausgeführt werden. Anschließend wird die Nockenflankenunterbrechungsfunktion verlassen.
  • Wenn die nächste aktive Flanke (E45) in dem Kurbelsignal erscheint (siehe 13) erreicht der Zählwert von sowohl dem Referenzzähler 49a als auch dem Winkelzähler 49c den in dem ersten Register 49d gespeicherten oberen Grenzwert von ”7200 (6 × f)”, wobei der Zählwert des Schutzzählers 49b bei ”0” verbleibt. Hierdurch können die Zählwerte des Referenzzählers 49a und des Schutzzählers 49b gelöscht (auf Null gesetzt) werden (siehe Abschnitt e44 in der 13).
  • Anschließend werden die Befehle in den Schritten S550, S570, S590, S600, S620 und S630 bis S680, wie vorstehend beschrieben, jedes Mal wiederholt von der CPU 31 ausgeführt, wenn eine aktive Flanke in dem Nockenflankensignal erscheint, bis be stimmt wird, dass eine aktive Flanke unmittelbar vor einem Änderungspunkt Q in dem Nockenflankensignal erscheint (siehe Abschnitte e45 und e46 in der 13). Während der wiederholten Ausführungen der Befehlen in den Schritten S550, S570, S590, S600, S620 und S630 bis S680 wird dann, wenn eine aktive Flanke unmittelbar vor einem Änderungspunkt Q in dem Nockenflankensignal erscheint (JA in Schritt S600), der Befehl in Schritt S610 anstelle des Befehls in Schritt S620 ausgeführt.
  • Ferner werden die Befehle in den Schritten S550, S570, S590, S600, S620 und S630 bis S680 wiederholt von der CPU 31 ausgeführt (siehe Abschnitte e47 und e48), während der Zählwert des Schutzzählers 49b jedes Mal gelöscht (auf Null gesetzt) wird, wenn er das Produkt aus der Multiplikationszahl f2 (1200) und der Anzahl an Zylindern (6) erreicht.
  • (5) Passierungswinkelunterbrechungsfunktion
  • Nachstehend werden die Befehle eines Passierungswinkelunterbrechungsfunktionsprogramms unter Bezugnahme auf die 14 beschrieben. Die Befehle ermöglichen es der CPU 31, die Passierungswinkelunterbrechungsfunktion auszuführen, wenn eine von dem Passierungswinkelmessmodul 47 erzeugte Unterbrechung an die CPU 31 gegeben wird, während die in dem Freigabe-/Sperrregister 47c gespeicherte Information in Schritt S670 auf die ”Freigabe” anzeigende Information gesetzt wird.
  • Wenn eine von dem Passierungswinkelmessmodul 47 an die CPU 31 gegebene Unterbrechung ein Starten des Passierungswinkelunterbrechungsfunktionsprogramms auslöst, erzeugt die CPU 31 in Schritt S710 der 14 die Anzahl an Ereignissen auf der Grundlage des Zählwerts des Ereigniszählers C2. Jedes dieser Ereignisse bestimmt einen Ereigniszeitpunkt für eines einzelnen Steuerziele, die mit der Motorsteuerung verknüpft sind, wie beispielsweise eine Einspritzvorrichtung und/oder eine Zündvorrichtung für einen entsprechenden der einzelnen Zylinder. Der Ereigniserzeugungsbefehl in Schritt S710 gleicht dem Befehl in Schritt S460 der 7.
  • Anschließend verringert die CPU 31 den Zählwert des Ereigniszählers C2 um 1 und überprüft in Schritt S730, ob der Zählwert des Ereigniszählers C2 ”0” überschreitet.
  • Wenn bestimmt wird, dass der Zählwert ”0” überschreitet (JA in Schritt S730), aktualisiert die CPU 31 den in dem Schwellenwertregister 47b gespeicherten Schwellenwert in Schritt S740. Bei der Ausführungsform überschreibt die CPU 31 den in dem Schwellenwertregister 47b gespeicherten Schwellenwert mit einem neuen Schwellenwert, der bestimmt wird, indem:
    der TDC-Winkel (120° CA) durch die Multiplikationszahl f2 (1200) geteilt wird, um ”120/1200” zu erhalten;
    das Ereignisintervall (30° CA) durch ”120/1200” geteilt wird, um ”30/(120/1200)” zu erhalten; und
    der erhaltene Wert ”30/(120/1200)” von 300 zu dem zuvor in dem Register 47b gespeicherten Schwellenwert addiert wird.
  • In Schritt S740 wird insbesondere die Summe des erhaltenen Werts ”300” und des in dem Register 47b gespeicherten Schwellenwerts als Schwellenwert in dem Register 47b gespeichert.
  • Wenn demgegenüber bestimmt wird, dass der Zählwert ”0” entspricht (NEIN in Schritt S730), überschreibt die CPU 31 die in dem Freigabe-/Sperrregister 47c gespeicherte ”Freigabe” anzeigende Information in Schritt S750 mit der ”Sperren” anzeigenden Information. Hierdurch wird selbst dann verhindert werden, dass das Passierungswinkelunterbrechungsprogramm gestartet wird, wenn eine Unterbrechung an die CPU 31 gegeben wird.
  • Anschließend verlässt die CPU 31 die Passierungswinkelunterbrechungsfunktion.
  • Bei der Nockenflankenunterbrechungsfunktion werden das Schwellenwertregister 47b, das Freigabe-/Sperrregister 47c und den Ereigniszähler C2, wie vorstehend be schrieben, auf den Schwellenwert von ”150”, die ”Freigabe” anzeigende Information bzw. den Ereigniswert von ”4” gesetzt (siehe Schritte S660, S670 und S680).
  • In diesem Zustand gibt das Passierungswinkelmessmodul 47 dann, wenn der Passierungswinkelmesszähler 47b synchron zum Erscheinen einer aktiven Flanke (E50) in dem Nockenflankensignal zurückgesetzt wird, synchron zu einer ansteigenden Flanke jedes in dem Multiplikationstaktsignal erscheinenden Multiplikationstakts eine Unterbrechung aus (siehe Abschnitt e51 in der 15).
  • Anschließend wird die Passierungswinkelunterbrechungsfunktion jedes Mal von der CPU 31 ausgeführt, wenn eine Unterbrechung an die CPU 31 gegeben wird, bis die Ausführung des Befehls in Schritt S750 abgeschlossen ist.
  • Nachstehend werden bestimmte Operationen der jeweiligen Module 41, 43, 45, 47 und 49 unter der Steuerung der CPU 31 und Änderungen der Parameter, wie beispielsweise der Zählwerte der Zähler 47a und C2 und des in dem Schwellenwertregister 47b gespeicherten Schwellenwerts, unter Bezugnahme auf die 14 bis 16 beschrieben.
  • Wenn der Zählwert des Passierungswinkelmesszählers 47b den in dem Schwellenwertregister 47c gespeicherten Schwellwert von ”150” erreicht, mit einer Drehung von sowohl der ersten als auch der zweiten Nockenwelle CM1 und CM2 um 15° CA (siehe Abschnitt e52 in der 15), wird von dem Passierungswinkelmessmodul 47 eine an die CPU 31 zu gebende Unterbrechung erzeugt, so dass die Passierungswinkelunterbrechungsfunktion aktiviert wird.
  • Auf eine Aktivierung der Passierungswinkelunterbrechungsfunktion hin wird der Zählwert des Ereigniszählers C2 in Schritt S720 auf eine Erzeugung der Ereignisse EV1 in Schritt S710 hin von ”4” auf ”3” verringert (siehe ”Teilungsereignis” in der 15). Da der Zählwert von ”3” des Ereigniszählers C2 an diesem Zeitpunkt größer ”0” ist, ist die Bestimmung in Schritt S720 positiv (JA), so dass der Schwellenwert von ”150” des Schwellenwertregisters 47c zu einem Wert von ”300” addiert und folglich auf einen Wert von ”450” aktualisiert wird.
  • Wenn der Zählwert des Passierungswinkelmesszählers 47b den in dem Schwellenwertregister 47c gespeicherten Schwellenwert von ”450” erreicht, mit einer Drehung von sowohl der ersten als auch der zweiten Nockenwelle CM1 und CM2 um 45° CA (siehe Abschnitt e53 in der 15), wird von dem Passierungswinkelmessmodul 47 eine an die CPU 31 zu gebende Unterbrechung erzeugt, so dass die Passierungswinkelunterbrechungsfunktion aktiviert wird.
  • Auf eine Aktivierung der Passierungswinkelunterbrechungsfunktion hin wird der Zählwert des Ereigniszählers C2 in Schritt S720 auf eine Erzeugung der Ereignisse EV2 in Schritt S710 hin von ”3” auf ”2” verringert. Da der Zählwert von ”2” des Ereigniszählers C2 an diesem Zeitpunkt größer ”0” ist, ist die Bestimmung in Schritt S720 positiv (JA), so dass der Schwellenwert von ”450” des Schwellenwertregisters 47c zu einem Wert von ”300” addiert und folglich auf einen Wert von ”750” aktualisiert wird.
  • Wenn der Zählwert des Passierungswinkelmesszählers 47b den in dem Schwellenwertregister 47c gespeicherten Schwellenwert von ”750” erreicht, mit einer Drehung von sowohl der ersten als auch der zweiten Nockenwelle CM1 und CM2 um 75° CA (siehe Abschnitt e54 in der 15), wird von dem Passierungswinkelmessmodul 47 eine an die CPU 31 zu gebende Unterbrechung erzeugt, so dass die Passierungswinkelunterbrechungsfunktion aktiviert wird.
  • Auf eine Aktivierung der Passierungswinkelunterbrechungsfunktion hin wird der Zählwert des Ereigniszählers C2 in Schritt S720 auf eine Erzeugung der Ereignisse EV3 in Schritt S710 hin von ”2” auf ”1” verringert. Da der Zählwert ”1” des Ereigniszählers C2 zu diesem Zeitpunkt größer ”0” ist, ist die Bestimmung in Schritt S720 positiv (JA), so dass der Schwellenwert von ”750” des Schwellenwertregisters 47c zu einem Wert von ”300” addiert und folglich auf einen Wert von ”1050” aktualisiert wird.
  • Wenn der Zählwert des Passierungswinkelmesszählers 47b den in dem Schwellenwertregister 47c gespeicherten Schwellenwert von ”1050” erreicht, mit einer Drehung von sowohl der ersten als auch der zweiten Nockenwelle CM1 und CM2 um 105° CA (siehe Abschnitt e55 in der 15), wird von dem Passierungswinkelmessmodul 47 eine an die CPU 31 zu gebende Unterbrechung erzeugt, so dass die Passierungswinkelunterbrechungsfunktion aktiviert wird.
  • Auf eine Aktivierung der Passierungswinkelunterbrechungsfunktion hin wird der Zählwert des Ereigniszählers C2 in Schritt S720 auf eine Erzeugung der Ereignisse EV4 in Schritt S710 hin von ”1” auf ”0” verringert.
  • Wenn der Zählwert ”2” des Ereigniszählers C2 auf ”0” verringert wird, ist die Bestimmung in Schritt S720 negativ (NEIN), so dass die ”Sperren” anzeigende Information in dem Freigabe-/Sperrregister 47c gespeichert wird.
  • Hierdurch kann verhindert werden, dass die Passierungswinkelunterbrechungsfunktion aktiviert wird, bis die ”Freigabe” anzeigende Information im Ansprechen auf ein Erscheinen der nächsten aktiven Flanke (E51) in dem Nockenflankensignal 120° CA auf die aktive Flanke E50 folgend (siehe Abschnitt e55 in der 15) in dem Freigabe-/Sperrregister 47c gespeichert wird.
  • Der Passierungswinkelmesszähler 47b zählt ferner fortlaufend hoch, bis der Zählwert den einer Drehung von sowohl der ersten als auch der zweiten Nockenwelle CM1 und CM2 um 120° CA entsprechenden Wert von ”1200” erreicht. Wenn der Zählwert des Passierungswinkelmesszählers 47b ”1200” erreicht, löscht das Erscheinen der aktiven Flanken E51 den Zählwert des Passierungswinkelmesszählers 47b (siehe 15).
  • Durch die Passierungswinkelmessunterbrechungsfunktion wird, wie vorstehend beschrieben und in der 15 gezeigt, wenigstens ein Ereignis in einem Notlaufmodus erzeugt, und zwar aus einer Drehposition der jeweiligen Nockenwellen von 15° CA vor einem Änderungspunkt P bei jeder Drehung der jeweiligen Nockenwelle um das Ereignisintervall von 30° CA (15° CA, 45° CA, 75° CA und 105° CA). Über diese durch die Passierungswinkelmessunterbrechungsfunktionen erzeugten Ereignisse kann das Fahrzeug in dem Notlaufmodus gefahren werden.
  • Es sollte beachtet werden, dass die CPU 31 bei der Nockenflankenunterbrechungsfunktion dann, wenn bestimmt wird, dass die Bestimmung in Schritt S640 positiv (JA) ist, die Anzahl an Ereignissen auf der Grundlage des momentanen Zählwerts des Ereigniszählers C2 in Schritt S650 der 11 erzeugt.
  • Bei der von der CPU 31 synchron zu einer aktiven Flanke in dem Nockenflankensignal auszuführenden Passierungswinkelunterbrechungsfunktion wird, wie vorstehend beschrieben und in den 11, 14 und 15 gezeigt, angenommen, dass sich jede der Nockenwellen CM1 und CM2 mit zeitlich benachbarten Änderungspunkten P bei konstanten 120° CA dreht. Unter dieser Annahme ist die Bestimmung in Schritt S640 folglich konstant negativ (NEIN), da der Zählwert des Ereigniszählers C2 vor einem Erscheinen der nächsten aktiven Flanke in dem Nockenflankensignal den Wert ”0” erreicht.
  • Es wird jedoch beispielsweise angenommen, dass der Motor an dem Zeitpunkt eines Erscheinens einer aktiven Flanke E52 in dem Nockensignal derart beschleunigt, dass ein Zeitintervall zwischen der aktiven Flanke E52 und der nächsten aktiven Flanke E53 in dem Nockenflankensignal einen verglichen mit normalen Zeitintervallen der aktiven Flanken in diesem kurz ausfällt.
  • Unter dieser Annahme kann die aktive Flanke E53, wie in 16 gezeigt, in dem Nockenflankensignal erscheinen, bevor die Anzahl an Wiederholungen der Passierungswinkelunterbrechungsfunktionen eine bei der Ausführungsform vorbestimmte Anzahl von ”4” erreicht, d. h. bevor der Zählwert des Ereigniszählers C2 den Wert ”0” erreicht. Hierdurch kann bewirkt werden, dass die Bestimmung in Schritt S640 der 11 negativ (NEIN) ist, wodurch die Parameter, einschließlich des Schwellenwerte des Schellenwertregisters 47b, der in dem Freigabe-/Sperrregister 47c gespeicherten Information und des Ereigniswerts des Ereigniszählers C2, gegebenenfalls in den Schritten S660 bis S680 zurückgesetzt werden.
  • Dies kann dazu führen, dass einige der Ereignisse, welche die CPU 31 gewöhnlich während eines Zeitintervalls der zeitlich benachbarten aktiven Flanken E52 und E53 erzeugt sollte, gegebenenfalls nicht erzeugt werden.
  • Bezüglich dieses Problems wird die Anzahl an Ereignissen von der CPU 31 bei der Ausführungsform in Schritt S650 dann, wenn in Schritt S640 bestimmt wird, dass der Zählwert des Ereigniszählers C2 ungleich ”0” ist, auf der Grundlage des momentanen Zählwerts des Ereigniszählers C2 erzeugt.
  • Wenn der Zählwert des Ereigniszählers C2 in der 16 beispielsweise auf ”2” gesetzt wird, erscheint bedingt durch die plötzliche Beschleunigung des Fahrzeugs die aktive Flanke E53 in dem Nockenflankensignal. In diesem Fall wird auf das Erscheinen der aktiven Flanke E53 in dem Nockenflankensignal folgend die dem Ereigniswert des Ereigniszählers C2 entsprechende Anzahl von ”2” Ereignissen von der CPU 31 erzeugt (siehe Abschnitte e57 bis e59 und EV4 in der 16). Hierdurch können selbst dann alle Ereignisse, welche die CPU 31 gewöhnlich während eines Zeitintervalls zeitlich benachbarter aktiver Flanken in dem Nockenflankensignal erzeugen sollte, erzeugt werden, wenn der Motor plötzlich beschleunigt.
  • Die ECU 1 ist gemäß obiger Beschreibung dann, wenn erfasst wird, dass das Kurbelsignalfehlerhaft ist, dazu ausgelegt,
    das von den Modulen in der Winkeltakterzeugungseinheit 33 zu verwendende Eingangssignal von dem Kurbelsignal zu dem Nockenflankensignal zu wechseln; und
    die Multiplikationszahl f von der Zahl f1 (60) für das Kurbelsignal zu der Zahl f2 (1200) für das Nockenflankensignal zu wechseln (siehe Schritt S240 in der 6).
  • Hierdurch kann ein von dem Flankenintervallmesszähler 43a gemessenes Zeitintervall von einem Wert, der einem Drehwinkel der Kurbelwelle CS entspricht, der benötigt wird, um zeitlich benachbarte aktive Flanken in dem Kurbelsignal zu erzeugen (Einheitswinkel Δθ von 6 Grad des Kurbelwinkel, der nachstehend als ”erster Winkel” be zeichnet wird), zu einem Wert geändert werden, der einem Drehwinkel jeder Nockenwelle entspricht, der benötigt wird, um zeitlich benachbarte aktive Flanken in dem Nockenflankensignal zu erzeugen (Kurbelwinkel von 120 Grad, der nachstehend als ”zweiter Winkel” bezeichnet wird).
  • Gleichermaßen wird eine Taktzeit eines von dem Multiplikationstakterzeugungsmodul 45 erzeugten Multiplikationstakts von einem Wert, der erhalten wird, indem die auf dem ersten Winkel basierende Multiplikationstaktzeit durch die Multiplikationszahl f1 (60) für das Kurbelsignal geteilt wird, zu einem Wert geändert, der erhalten wird, indem die dem zweiten Winkel entsprechende Multiplikationszeit durch die Multiplikationszahl f2 (1200) für das Nockenflankensignal geteilt wird.
  • Es sollte beachtete werden, dass die Multiplikationszahl f2 für das Nockenflankensignal erhalten wird, indem:
    das Produkt aus dem zweiten Winkel von 120 Grad des Kurbelwinkel und der Multiplikationszahl 60 für das Kurbelsignal berechnet wird; und
    das erhaltene Produkt durch den ersten Winkel geteilt wird.
  • D. h., die Multiplikationszahl f2 für das Nockenflankensignal wird derart bestimmt, dass sie ”(120 × 60)/6 = 1200” ergibt.
  • D. h., das Verhältnis zwischen der Multiplikationszahl f1 für das Kurbelsignal und der Multiplikationszahl f2 für das Nockenflankensignal ist durch die folgende Gleichung gegeben: α1f1 = α2f2 (1)wobei α1 den ersten und α2 den zweiten Winkel beschreibt.
  • Die Multiplikationszahl f2 für das Nockenflankensignal wird insbesondere derart erhalten, dass sie die Gleichung 1 erfüllt.
  • D. h., bei der Ausführungsform ist das Verhältnis der Multiplikationszahl f1 (60) für das Kurbelsignal zu dem ersten Winkel selbst dann auf das Verhältnis der Multiplikationszahl f2 (1200) für das Nockenflankensignal zu dem zweiten Winkel abgestimmt, wenn das Eingangssignal vom Kurbelsignal zum Nockenflankensignal und die Multiplikationszahl von der Multiplikationszahl f1 (60) für das Kurbelsignal zur Multiplikationszahl f2 (1200) für das Nockenflankensignal geändert wird.
  • Die Taktzeit des von dem Multiplikationstakterzeugungsmodul 45 erzeugten Multiplikationstakts ist insbesondere unabhängig von einer Änderung der Multiplikationszahl f von der Zahl f1 für das Kurbelsignal zur Zahl f2 für das Nockenflankensignal und einer Änderung des Zeitintervalls von einem dem ersten Winkel entsprechenden Wert zu einem dem zweiten Winkel entsprechenden Wert konstant. Dies liegt daran, dass das Verhältnis der Multiplikationszahl f1 (60) für das Kurbelsignal zum ersten Winkel auf das Verhältnis der Multiplikationszahl f2 (1200) für das Nockenflankensignal zum zweiten Winkel abgestimmt ist.
  • D. h., über eine Änderung der Multiplikationszahl f von der Zahl f1 für das Kurbelsignal zur Zahl f2 für das Nockenflankensignal kann die Taktzeit des von dem Multiplikationstakterzeugungsmodul 47 zu erzeugenden Multiplikationstakts konstant ausgelegt werden.
  • Die zum Betreiben des Referenzzählers 49a und des Winkelzählers 49c des Winkeltaktmoduls 49 zu verwendende Taktzeit des Multiplikationstakts wird insbesondere vor und nach einer Änderung des Eingangssignals und der Multiplikationszahl f konstant gehalten. Hierdurch wird es für das Winkeltaktmodul 49 unnötig, bestimmte Funktionen zum Wechseln seiner Operationen vor und nach einer Änderung des Eingangssignals und der Multiplikationszahl f auszuführen.
  • Dies ermöglicht es der ECU 1, einzig das Eingangssignal und die Multiplikations zahl zu ändern, um dadurch die Motorsteuerung selbst dann auf der Grundlage des Nockenflankensignals fortzuführen, wenn in dem Kurbelsignal ein Fehler auftritt. Hierdurch wird es für das Multiplikationstakterzeugungsmodul 45, das Winkeltaktmodul 49 und die Zeitgeberausgabeeinheit 35 unnötig, bestimmte Funktionen zum Wechseln ihrer Operationen auf eine Änderung des Eingangssignals und der Multiplikationszahl f hin auszuführen.
  • Folglich kann das Fahrzeug mit Hilfe der ECU 1 selbst dann auf der Grundlage der Motorsteuerung unter Verwendung des Nockenflankensignals in einem Notlaufmodus gefahren werden, ohne die Anzahl an Hardware- und/oder Software-Komponenten zu erhöhen, wenn in dem Kurbelsignal ein Fehler auftritt.
  • Die ECU 1 ist ferner dazu ausgelegt, die Taktzeit des Multiplikationstakts von einem Wert, der erhalten wird, indem die auf dem ersten Winkel basierende Multiplikationstaktzeit durch die Multiplikationszahl f1 (60) für das Kurbelsignal geteilt wird, zu einem Wert zu ändern, der erhalten wird, indem durch die Multiplikationszahl f2 (1200) für das Nockenflankensignal geteilt wird.
  • Die Multiplikationszahl f2 für das Nockenflankensignal wird, wie durch die Gleichung beschrieben, erhalten, indem der erste Winkel, die Multiplikationszahl f1 für das Kurbelsignal und der zweite Winkel verwendet werden. Aus diesem Grund kann als Multiplikationszahl f2 für das Nockenflankensignal ein mit den Parametern, wie beispielsweise dem ersten Winkel, der Multiplikationszahl f1 und dem zweiten Winkel, übereinstimmender Wert verwendet werden.
  • Die ECU 1 ist dazu ausgelegt, zu verhindern, dass das Eingangswahlmodul 41 das Nockenflankensignal an die Module 43, 45, 47 und 49 gibt, wenn eine aktive Flanke unmittelbar vor einem Änderungspunkt Q und irregulär bezüglich der Änderungspunkte P in dem Nockenflankensignal erscheint (JA in Schritt S600). Hierdurch kann selbst dann verhindert werden, dass der Zählbetrieb des Flankenintervallmessmoduls 43 unterbrochen wird, wenn eine einem irregulären Änderungspunkt Q entsprechende aktive Flanke in dem Nockenflankensignal erscheint.
  • Es wird beispielsweise angenommen, dass der Zählbetrieb des Flankenintervallmessmoduls 43 bei Erscheinen einer einem Änderungspunkt Q in dem Nockenflankensignal entsprechenden aktiven Flanke unterbrochen wird.
  • Unter dieser Annahme kann ein Multiplikationstakt, dessen Taktzeit während eines Zeitintervalls zwischen einem Änderungspunkt P und einem Änderungspunkt Q kürzer als eine normale Taktzeit von diesem während zeitlich benachbarten Änderungspunkten P ist, auf der Grundlage des Zeitintervalls (Zählwert) des unterbrochenen Moduls 43 erzeugt werden, bevor sich jede der Nockenwellen CM1 und CM2 um den zweiten Winkel dreht.
  • Dies kann dazu führen, dass der Zählwert des Winkelzählers 49c falsch an die Drehposition der Kurbelwelle CS angepasst ist, was die Erzeugung von Ereignissen an geeigneten Zeitpunkt erschwert; diese Ereignisse bestimmten die Aktivierungszeitpunkte für die einzelnen mit der Motorsteuerung verknüpften Steuerziele.
  • Folglich verhindert die ECU 1 bei der Ausführungsform selbst dann, wenn eine einem irregulären Änderungspunkt Q entsprechende aktive Flanke in dem Nockenflankensignal erscheint, dass der Zählbetrieb des Flankenintervallmessmoduls 43 unterbrochen wird. Hierdurch kann vermieden werden, dass ein Multiplikationstakt erzeugt wird, dessen Taktzeit während eines Zeitintervalls zwischen einem Änderungspunkt P und einem Änderungspunkt Q kürzer als dessen normale Taktzeit während zeitlich benachbarten Änderungspunkten P ausgelegt ist, so dass fortlaufend Ereignisse an geeigneten individuellen Zeitpunkten erzeugt werden können.
  • Wenn eine aktive Flanke an einem Änderungspunkt Q in dem Nockenflankensignal erscheint, verhindert die ECU 1, dass das Eingangswahlmodul 41 das Nockenflankensignal an die Module 43, 45, 47 und 49 gibt. D. h., das an die Module 43, 45, 47 und 49 zu gebende Nockenflankensignal wird von den Modulen 43, 45, 47 und 49 als Signal betrachtet, dass seinen Pegel an den Änderungspunkten P, deren Winkelintervall dem Kurbelwinkel von 120 Grad entspricht, regulär ändert.
  • Hierdurch kann das Passierungswinkelmessmodul 47 den Messbetrieb fortlaufend ausführen, ohne eine Ausführung bestimmter Operationen durch die Module 43, 45 und 49 zu verursachen.
  • Bei dieser Ausführungsform hängt ein Messwert (Zählwert) des Passierungswinkelmesszählers 47a von einem entsprechenden Zeitintervall zwischen zeitlich benachbarten Flanken gleicher Richtung in dem Kurbelsignal ab. Aus diesem Grund ist ein dem Zeitintervall des impulslosen Abschnitts Ma in dem Kurbelsignal entsprechender Zählwert des Passierungswinkelmessmoduls 47 größer als der einem anderen Zeitintervall von einem der anderen Abschnitte in dem Kurbelsignal entsprechende Zählwert. Hierdurch kann die CPU 31 bestimmen, ob eine in dem Kurbelsignal erscheinende aktive Flanke das Ende eines impulslosen Abschnitts M in dem Kurbelsignal beschreibt (siehe Schritt S310 in der 7).
  • Wenn in Schritt S310 bestimmt wird, dass eine in dem Kurbelsignal erscheinende aktive Flanke das Ende eines impulslosen Abschnitts M in dem Kurbelsignal beschreibt, wird eine in dem ersten Register 45a des Multiplikationstakterzeugungsmoduls 45 zu speichernde Multiplikationstaktreferenzzeit korrigiert (siehe Schritt S380 in der 7).
  • Gemäß obiger Beschreibung ist das Passierungswinkelmessmodul 47 in der ECU 1 installiert, um einen impulslosen Abschnitt M in dem Kurbelsignal zu erfassen, um dadurch problemlos den Multiplikationstakt zu erzeugen, und weist das Nockenflankensignal ferner keine impulslosen Abschnitte auf.
  • Aus diesem Grund kann der Zählwert des Passierungswinkelmessmoduls (Zähler) 47 gewöhnlich nicht für die Motorsteuerung verwendet werden, nachdem das Eingangssignal vom Kurbelsignal zum Nockenflankensignal gewechselt wurde.
  • Die ECU 1 der Ausführungsform kann die Operationen des Passierungswinkelmessmoduls 47 demgegenüber effektiv nutzen, während das Fahrzeug in Übereinstimmung mit dem Nockenflankensignal in dem Notlaufmodus gefahren wird.
  • Insbesondere wird der Schwellenwert der Nockenflankenunterbrechungsfunktion, wie beispielsweise ”150”, in dem Schwellenwertregister 47b des Passierungswinkelmessmoduls 47 gespeichert (siehe Schritt S660 in der 11) und die Passierungswinkelunterbrechungsfunktion jedes Mal aktiviert, wenn eine von dem Passierungswinkelmessmodul 47 erzeugte Unterbrechung an die CPU 31 gegeben wird (siehe 14). Durch die Aktivierung der Passierungswinkelunterbrechungsfunktion können Ereignissen erzeugt werden, die Aktivierungszeitpunkte für die einzelnen mit der Motorsteuerung verknüpften Steuerziele bestimmen.
  • Bei der Ausführungsform wird dann, wenn das Fahrzeug in Übereinstimmung mit dem Nockenflankensignal in dem Notlaufmodus gefahren wird, jedes Mal wenigstens ein Ereignis erzeugt, wenn in dem Nockenflankensignal eine aktive Flanke erscheint, d. h. jedes Mal, wenn sich jede Nockenwelle um einen Winkel vorbestimmter Gradzahl (CA) dreht. Von diesem Gesichtspunkt her würde es dann, wenn sich die Motordrehzahl plötzlich erhöht, erforderlich sein, einen Zeitpunkt zum Erzeugen einer aktiven Flanke in dem Nockenflankensignal unmittelbar auf den plötzlichen Anstieg der Motordrehzahl folgend vorzubringen.
  • Bei der Ausführungsform ist ein Winkelintervall zwischen zeitlich benachbarten aktiven Flanken in dem Nockenflankensignal, wie beispielsweise ein Kurbelwinkel von 120 Grad, größer als das Winkelintervall zwischen zeitlich benachbarten aktiven Flanken in dem Kurbelsignal, wie beispielsweise ein Kurbelwinkel von 6 Grad. Aus diesem Grund ist ein Zeitpunkt zum Erzeugen einer aktiven Flanke in dem Nockenflankensignal mit hoher Wahrscheinlichkeit deutlich nach vorn gesetzt.
  • Eine nächste aktive Flanke kann insbesondere dann, wenn sich die Motordrehzahl plötzlich erhöht, vor einem nächsten Zeitpunkt, an dem wenigstens ein Ereignis erzeugt werden sollte, in dem Nockenflankensignal erscheinen. Hierdurch kann die Erzeugung von wenigstens einem zu erzeugenden Ereignis verhindert werden.
  • In diesem Fall ist es bei dieser Ausführungsform dann, wenn der Zählwert des Er eigniszählers C2 derart größer ”0” ist, dass die Erzeugung von wenigstens einem zu erzeugenden Ereignis nicht abgeschlossen ist, möglich, das wenigstens eine Ereignis in Schritt S650 der 11 synchron zum Erscheinen der nächsten aktiven Flanke in dem Nockenflankensignal auszugeben.
  • Wenn die Erzeugung von wenigstens einem zu erzeugenden Ereignis nicht abgeschlossen ist, bis eine nächste aktive Flanke in dem Nockenflankensignal erscheint, ist es, wie vorstehend beschrieben, möglich, das verbleibende wenigstens eine Ereignis im Ansprechen auf das Erscheinen der nächsten aktiven Flanke in dem Nockenflankensignal zu erzeugen.
  • Bei dieser Ausführungsform ist das Multiplikationstakterzeugungsmodul 45 dazu ausgelegt, einen Multiplikationstakt zu erzeugen, dessen Taktzeit einem Zeitintervall entspricht, das erhalten wird, indem ein von dem Flankenintervallmessmodul 43 gemessener Zählwert (Multiplikationsreferenzzeit) durch die Multiplikationszahl f geteilt wird. Die vorliegende Erfindung ist jedoch nicht hierauf beschränkt.
  • Die Winkeltakterzeugungseinheit 33 kann insbesondere ein operativ mit dem Flankenintervallmessmodul 43 und dem Multiplikationstakterzeugungsmodul 45 verbundenes Rechenmodul 43 aufweisen. Das Rechenmodul ist dazu ausgelegt, einen von dem Flankenintervallmessmodul 43 gemessenen Zählwert (Multiplikationsreferenzzeit) durch die Multiplikationszahl f zu teilen, um dadurch einen Wert zu erhalten. Das Rechenmodul ist ferner dazu ausgelegt, den erhaltenen Wert an das Multiplikationstakterzeugungsmodul 45 zu geben.
  • Das Multiplikationstakterzeugungsmodul 45 kann derart arbeiten, dass es einen Multiplikationstakt erzeugt, der aus einer sich wiederholenden Reihe von Multiplikationstakten besteht, deren Taktzeit dem erhaltenen Wert des Rechenmoduls entspricht.
  • Bei der Ausführungsform ist ein Winkelintervall zwischen zwei beliebigen zeitlich benachbarten Punkten P in dem Nockenflankensignal auf einen Kurbelwinkel von 120 Grad gesetzt. Die vorliegende Erfindung ist jedoch nicht hierauf beschränkt.
  • Ein Winkelintervall zwischen zwei beliebigen zeitlich benachbarten Punkten P in dem Nockenflankensignal kann insbesondere auf ein regelmäßiges Intervall von beispielsweise 30° CA gesetzt werden, zu dem Ereignisse gewöhnlich während eines Motorzyklus ausgegeben werden. Hierdurch können Ereignisse selbst dann zu regelmäßigen Intervallen erzeugt werden, wenn das Fahrzeug in Übereinstimmung mit dem Nockenflankensignal in dem Notlaufmodus gefahren wird.
  • Bei der Ausführungsform wird das Nockenflankensignal dann, wenn in dem Kurbelsignal ein Fehler auftritt, anstelle des Kurbelsignals dazu verwendet, den Multiplikationstakt zu erzeugen. Die vorliegende Erfindung ist jedoch nicht hierauf beschränkt.
  • Anstelle des Kurbelsignals kann insbesondere entweder das erste oder das zweite Nockensignal dazu verwendet werden, den Multiplikationstakt zu erzeugen.
  • Wenn das erste Nockensignal anstelle des Kurbelsignals verwendet wird, kann das Flankenintervallmessmodul 43 beispielsweise ein Zeitintervall zwischen zeitlich benachbarten aktiven Flanken mit regelmäßigen Winkelintervallen (an regelmäßigen Änderungspunkten) in dem ersten Nockensignal messen, wobei unregelmäßige Änderungspunkte bezüglich der regelmäßigen Winkelintervalle von dieser Messung ausgeschlossen sind.
  • Gleichermaßen kann das Flankenintervallmessmodul 43 beispielsweise dann, wenn das zweite Nockensignal anstelle des Kurbelsignals verwendet wird, ein Zeitintervall zwischen zeitlich benachbarten aktiven Flanken in dem zweiten Nockensignal mit regelmäßigen Winkelintervallen (an regelmäßigen Änderungspunkten) messen, wobei unregelmäßige Änderungspunkten bezüglich der regelmäßigen Winkelintervalle von dieser Messung ausgeschlossen sind.
  • Wenn ein Nockensignal einen Pegel aufweist, der sich über die Zeit gesehen wiederholt jedes Mal ändert, wenn sich eine Nockenwelle um einen konstanten Winkel dreht, kann das Flankenintervallmessmodul 43 das Nockensignal mit hoher Wahr scheinlichkeit direkt verwenden, um ein Zeitintervall zwischen zeitlich benachbarten aktiven Flanken in dem Nockensignal zu messen.
  • Bei der Ausführungsform sind die Zähler dazu ausgelegt, hoch zu zählen. Sie können jedoch auch dazu ausgelegt sein, rückwärts zu zählen.
  • Die Zähler und Register der Winkeltakterzeugungseinheit 33 können als in dem Mirkocomputer 30 installierte festverdrahtete logische Schaltungen realisiert werden.
  • Wenigstens ein Teil von sowohl der Eingangsschaltung 10 als auch der Ausgangsschaltung 20 kann als logische Hardware-Schaltungen, Software-Module oder Hardware-/Software-gesteuertes System in dem Mikrocomputer 30 realisiert werden.
  • Die von der CPU 31 auszuführenden Funktionen (1) bis (5) können als logische Hardware-Schaltungen oder als Hardware-/Software-gesteuertes System implementiert werden.

Claims (7)

  1. Vorrichtung zur Steuerung eines Motors mit einer Kurbel- und einer Nockenwelle, wobei die Vorrichtung aufweist: – eine Intervallmesseinheit, die dazu ausgelegt ist, ein an sie gegebenes Eingangssignal mit einem sich zeitlich wiederholend in einer vorbestimmten Richtung ändernden Pegel zu empfangen und ein Zeitintervall zwischen einem Zeitpunkt, an dem eine Pegeländerung vorbestimmter Richtung in dem Eingangssignal erscheint, und einem Zeitpunkt, an dem eine zeitlich nächste Pegeländerung vorbestimmter Richtung in dem Eingangssignal erscheint, zu messen; – eine Eingangseinheit, die dazu ausgelegt ist, ein Kurbelsignal als das Eingangssignal an die Intervallmesseinheit zu geben, wobei das Kurbelsignal einen Pegel aufweist, der sich jedes Mal wiederholend in einer vorbestimmten Richtung ändert, wenn sich die Kurbelwelle um einen ersten Winkel dreht; – eine Multiplikationstakterzeugungseinheit, die dazu ausgelegt ist, einen ersten Multiplikationstakt zu erzeugen, der eine Reihe von Takten umfasst, deren Taktzeit bestimmt wird, indem das von der Intervallmesseinheit gemessene Intervall durch eine erste Multiplikationszahl geteilt wird; – eine Zähleinheit, die dazu ausgelegt ist, synchron zum von der Multiplikationstakterzeugungseinheit erzeugten ersten Multiplikationstakt zu zählen, wobei ein Zählwert der Zähleinheit einer Drehposition der Kurbelwelle in einem Zyklus des Motors entspricht, wenn die Drehposition der Kurbelwelle mit einer vorbestimmten Auflösung dargestellt wird, und wobei die vorbestimmte Auflösung erhalten wird, indem der erste Winkel durch die erste Multiplikationszahl geteilt wird; – eine Ereigniserzeugungseinheit, die dazu ausgelegt ist, wenigstens ein mit der Steuerung des Motors verknüpftes Ereignis in Übereinstimmung mit einer durch einen Zählwert der Zähleinheit bestimmten Drehposition der Kurbelwelle zu erzeugen; und – eine Fehlerbestimmungseinheit, die dazu ausgelegt ist, auf der Grundlage eines Zustands des Eingangssignals zu bestimmen, ob das Kurbelsignal fehlerhaft ist, wobei – die Eingangseinheit dazu dient, das Eingangssignal für die Intervallmesseinheit von dem Kurbelsignal zu einem Nockensignal zu wechseln, wenn bestimmt wird, dass das Kurbelsignal fehlerhaft ist, wobei das Nockensignal einen Pegel aufweist, der sich jedes Mal zeitlich wiederholend ändert, wenn sich die Nockenwelle wenigstens um einen von dem ersten Winkel verschiedenen zweiten Winkel dreht, und – die Multiplikationstakterzeugungseinheit dazu dient, einen zweiten Multiplikationstakt zu erzeugen, der anstelle des ersten Multiplikationstakts verwendet wird, wenn bestimmt wird, dass das Kurbelsignal fehlerhaft ist, wobei der zweite Multiplikationstakt eine Reihe von Takten umfasst, deren Taktzeit derart festgelegt wird, dass sie im Wesentlichen der Taktzeit des ersten Multiplikationstakts entspricht.
  2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Multiplikationstakterzeugungseinheit dazu dient, die Taktzeit des zweiten Multiplikationstakts zu bestimmen, indem sie das von der Intervallmesseinheit gemessene Intervall durch eine zweite Multiplikationszahl teilt, wobei die zweite Multiplikationszahl bestimmt wird, indem das Produkt aus dem zweiten Winkel und der ersten Multiplikationszahl durch den ersten Winkel geteilt wird.
  3. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Nockenwelle eine erste und eine zweite Nockenwelle umfasst, wobei die Vorrichtung ferner aufweist: – eine Nockensignalerzeugungseinheit, die dazu ausgelegt ist, ein Nockenübergangssignal auf der Grundlage eines ersten Nockensignals und eines zweiten Nockensignals als das Nockensignal zu erzeugen, wobei das erste Nockensignal einen sich zeitlich wiederholend mit einer Drehung der ersten Nockenwelle ändernden Pegel aufweist, das zweite Nockensignal einen sich zeitlich wiederholend mit einer Drehung der zweiten Nockenwelle ändernden Pegel aufweist, sich das Nockenübergangssignal zeitlich an einer Mehrzahl von Punkten, die jeweils einzelnen Pegeländerungspunkten des ersten und des zweiten Nockensignals entsprechen, in einer vorbestimmten Richtung ändert, die Mehrzahl von Punkten erste Punkte zu regelmäßigen Intervallen umfasst, von denen jedes dem zweiten Winkel entspricht, die Mehrzahl von Punkten zweite Punkte umfasst, von denen jeder unmittelbar nach einem der ersten Punkte erscheint, und ein Intervall zwischen jedem der zweiten Punkte und einem der ersten Punkte einem Winkel entspricht, der kleiner als der zweite Winkel ist, wobei – die Eingangseinheit dazu dient, das von der Nockensignalerzeugungseinheit erzeugte Nockenübergangssignal als das Eingangssignal an die Intervallmesseinheit zu geben, wenn bestimmt wird, dass das Kurbelsignal fehlerhaft ist; – eine Bestimmungseinheit, die dazu ausgelegt ist, während das Nockenübergangssignal als das Eingangssignal an die Intervallmesseinheit gegeben wird, auf der Grundlage eines Zustands von sowohl dem ersten als auch dem zweiten Nockensignal zu bestimmen, ob jedes Mal dann, wenn eine Pegeländerung vorbestimmter Richtung an einem der Mehrzahl von Punkten in dem Nockenübergangssignal erscheint, der eine der Mehrzahl von Punkten einem der ersten Punkte unmittelbar vor einem der zweiten Punkte entspricht; – eine Messfortsetzungseinheit, die operativ mit der Intervallmesseinheit verbunden und dazu ausgelegt ist, die Intervallmesseinheit dann, wenn bestimmt wird, dass der eine der Mehrzahl von Punkten einem der ersten Punkte unmittelbar vor einem der zweiten Punkte entspricht, zu berechtigen, die Messung des Zeitintervalls fortzusetzen, bis bestimmt wird, dass ein anderer der Mehrzahl von Punkten keinen der ersten Punkte unmittelbar vor einem der zweiten Punkte entspricht, obgleich eine Pegeländerung vorbestimmter Richtung an einem der zweiten Punkte in dem Nockenübergangssignal erscheint.
  4. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass die Messfortsetzungseinheit operativ mit der Eingangseinheit verbunden und dazu ausgelegt ist, zu verhindern, dass die Eingangseinheit das Nockenübergangssignal als Eingangssignal an die Intervallmesseinheit gibt, bis bestimmt wird, dass ein anderer der Mehrzahl von Punkten nicht mit einem der ersten Punkte unmittelbar vor einem der zweiten Punkte übereinstimmt, um dadurch die Intervallmesseinheit zu berechtigen, die Messung des Zeitintervalls fortzusetzen.
  5. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass die Bestimmungseinheit dazu ausgelegt ist, den Zustand von sowohl dem ersten als auch dem zweiten Nockensignal anzeigende Daten zu speichern, wobei die Daten Übereinstimmungen zwischen jedem der Pegeländerungspunkte des ersten Nockensignals und einem der Pegeländerungspunkte des zweiten Nockensignals im Pegel und in der Pegeländerungsrichtung umfassen.
  6. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass das Kurbelsignal derart aufgebaut ist, dass die Pegeländerung vorbestimmter Richtung sich wiederholend jedes Mal erscheint, wenn sich die Kurbelwelle um den ersten Winkel dreht, während eine Drehposition der Kurbelwelle innerhalb eines ersten Bereichs in dem einen Zyklus des Motors liegt, und die Pegeländerung vorbestimmter Richtung erscheint, wenn sich die Kurbelwelle um einen dritten Winkel dreht, wenn eine Drehposition der Kurbelwelle innerhalb eines zweiten Bereichs in dem einem Zyklus des Motors liegt, wobei der dritte Winkel eine vorbestimmte Anzahl von Malen größer als der erste Winkel ist, wobei die Vorrichtung ferner aufweist: – eine Flankenzähleinheit, die dazu ausgelegt ist, Flanken gleicher Richtung der Takte in dem von der Multiplikationstakterzeugungseinheit erzeugten ersten oder zweiten Multiplikationstakt zu zählen, wobei die Flanken gleicher Richtung in dem entsprechenden einen des ersten und des zweiten Multiplikationstakts während eines Zeitintervalls zwischen zeitlich benachbarten Pegeländerungen vorbestimmter Richtung in dem Eingangssignal erscheinen; und – eine Korrektureinheit, die dazu ausgelegt ist, den Zählwert der Flankenzähleinheit dann, wenn ein Zählwert der Flankenzähleinheit einen vorbestimmten Wert erreicht, der einem Zeitpunkt entspricht, an welchem die Drehposition der Kurbelwelle den zweiten Bereich erreicht, während das Kurbelsignal an die Intervallmesseinheit gegeben wird, unter Verwendung der vorbestimmten Zahl zu korrigieren, wobei – die Ereigniserzeugungseinheit dann, wenn bestimmt wird, dass das Kurbelsignal fehlerhaft ist, dazu ausgelegt ist, einen Drehwinkel der Nockenwelle auf der Grundlage des Zählwerts der Flankenzähleinheit zu erfassen und das wenigstens eine Ereignis an wenigstens einem Zeitpunkt in Übereinstimmung mit dem Drehwinkel der Nockenwelle zu erzeugen.
  7. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, dass sie ferner eine Ereigniserzeugungsassistenzeinheit aufweist, die dazu ausgelegt ist: – dann, wenn bestimmt wird, dass das Kurbelsignal fehlerhaft ist, auf ein Erscheinen einer Pegeländerung vorbestimmter Richtung in dem Eingangssignal folgend zu bestimmen, ob eine zeitlich nächste Pegeländerung vorbestimmter Richtung erscheint, bevor die Ereigniserzeugungseinheit das wenigstens eine zu erzeugende Ereignis erzeugt; und – das wenigstens eine Ereignis synchron zum Erscheinen der zeitlich nächsten Pegeländerung vorbestimmter Richtung zu erzeugen.
DE102007004068A 2006-02-01 2007-01-26 Vorrichtung zur Steuerung eines Motors mit Hilfe eines Nockensignals Expired - Fee Related DE102007004068B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006024668A JP4687481B2 (ja) 2006-02-01 2006-02-01 エンジン制御装置
JP2006-024668 2006-02-01

Publications (3)

Publication Number Publication Date
DE102007004068A1 DE102007004068A1 (de) 2007-12-27
DE102007004068A9 DE102007004068A9 (de) 2008-05-21
DE102007004068B4 true DE102007004068B4 (de) 2010-07-01

Family

ID=38320686

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007004068A Expired - Fee Related DE102007004068B4 (de) 2006-02-01 2007-01-26 Vorrichtung zur Steuerung eines Motors mit Hilfe eines Nockensignals

Country Status (3)

Country Link
US (1) US7428459B2 (de)
JP (1) JP4687481B2 (de)
DE (1) DE102007004068B4 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4274253B2 (ja) * 2007-02-01 2009-06-03 株式会社デンソー エンジン制御装置およびプログラム
JP4636111B2 (ja) * 2008-04-17 2011-02-23 株式会社デンソー エンジン制御装置
JP4586903B2 (ja) * 2008-07-22 2010-11-24 株式会社デンソー エンジン制御装置
JP5548110B2 (ja) * 2010-12-01 2014-07-16 日立オートモティブシステムズ株式会社 エンジンの制御装置
DE102012100682A1 (de) * 2011-05-24 2012-11-29 Rolf Strothmann Drehmomentsensor
DE102011088764A1 (de) * 2011-12-15 2013-06-20 Robert Bosch Gmbh Verfahren zum Betreiben eines Steuergeräts
US8978453B2 (en) 2012-04-12 2015-03-17 Delphi Technologies, Inc. Crank signal error detection using a cam signal interval
JP5984508B2 (ja) * 2012-05-25 2016-09-06 ルネサスエレクトロニクス株式会社 半導体データ処理装置及びエンジン制御装置
FR2991720B1 (fr) 2012-06-12 2014-07-11 Continental Automotive France Methode d'identification des fronts sur une cible d'arbre a came
JP2014047747A (ja) * 2012-09-03 2014-03-17 Suzuki Motor Corp エンジン制御装置
DE102012223424A1 (de) * 2012-12-17 2014-06-18 Robert Bosch Gmbh Verfahren zur Korrektur eines Messsignals einer sich drehenden Nockenwelle in einem Verbrennungsmotor in einem Teilmotorbetrieb
JP5854001B2 (ja) * 2013-06-21 2016-02-09 株式会社デンソー エンジン制御用回転角処理システム及びエンジン制御装置
US20150236927A1 (en) * 2014-02-17 2015-08-20 Unify Square, Inc. Unified communication service deployment system
US9494488B2 (en) * 2014-07-22 2016-11-15 GM Global Technology Operations LLC Method and apparatus to determine rotational position of a phaser in a variable phasing system
JP6717185B2 (ja) 2016-12-15 2020-07-01 株式会社デンソー エンジン制御装置
KR102383262B1 (ko) * 2017-11-03 2022-04-06 현대자동차주식회사 크랭크 센서의 노이즈 보상 방법
KR102075086B1 (ko) * 2018-11-13 2020-02-07 현대오트론 주식회사 Dma를 활용한 epm 마이크로틱 생성 긴급 중단 방법
KR102085896B1 (ko) * 2018-12-07 2020-03-06 현대오트론 주식회사 파워트레인 엔진 정밀 제어방법 및 이에 의해 운용되는 자동차
JP7250067B2 (ja) * 2021-06-09 2023-03-31 三菱電機株式会社 内燃機関の制御装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4310460A1 (de) * 1993-03-31 1994-10-06 Bosch Gmbh Robert Geberanordnung zur schnellen Zylindererkennung bei einer mehrzylindrigen Brennkraftmaschine
DE19610121A1 (de) * 1995-04-17 1996-10-24 Mitsubishi Electric Corp Steuereinrichtung für eine Brennkraftmaschine
EP0683309B1 (de) * 1994-05-17 1998-03-04 Siemens Aktiengesellschaft Verfahren zur Notlaufsteuerung einer Brennkraftmaschine
DE10104273A1 (de) * 2000-02-01 2001-09-06 Denso Corp Impulse verschiedener Frequenzen verwendende Kraftmaschinen-Steuereinheit
DE102004052430A1 (de) * 2003-10-29 2005-06-23 Denso Corp., Kariya Verfahren und Vorrichtung zur Erfassung eines Winkels einer sich drehenden Welle
DE102006002923A1 (de) * 2005-01-21 2006-09-07 Denso Corp., Kariya Verfahren und Vorrichtung zur Steuerung eines Motors unter Verwendung eines Nockensignals

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3543637B2 (ja) * 1998-09-25 2004-07-14 株式会社デンソー 内燃機関用制御装置
JP3539327B2 (ja) * 2000-01-18 2004-07-07 株式会社デンソー エンジン制御装置
JP3503593B2 (ja) * 2000-01-20 2004-03-08 株式会社デンソー エンジン制御装置
JP3506116B2 (ja) * 2000-01-27 2004-03-15 株式会社デンソー エンジン制御装置
JP3508720B2 (ja) * 2000-01-27 2004-03-22 株式会社デンソー エンジン制御装置
JP3775220B2 (ja) * 2000-12-27 2006-05-17 株式会社デンソー 内燃機関用制御装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4310460A1 (de) * 1993-03-31 1994-10-06 Bosch Gmbh Robert Geberanordnung zur schnellen Zylindererkennung bei einer mehrzylindrigen Brennkraftmaschine
EP0683309B1 (de) * 1994-05-17 1998-03-04 Siemens Aktiengesellschaft Verfahren zur Notlaufsteuerung einer Brennkraftmaschine
DE19610121A1 (de) * 1995-04-17 1996-10-24 Mitsubishi Electric Corp Steuereinrichtung für eine Brennkraftmaschine
DE10104273A1 (de) * 2000-02-01 2001-09-06 Denso Corp Impulse verschiedener Frequenzen verwendende Kraftmaschinen-Steuereinheit
DE102004052430A1 (de) * 2003-10-29 2005-06-23 Denso Corp., Kariya Verfahren und Vorrichtung zur Erfassung eines Winkels einer sich drehenden Welle
DE102006002923A1 (de) * 2005-01-21 2006-09-07 Denso Corp., Kariya Verfahren und Vorrichtung zur Steuerung eines Motors unter Verwendung eines Nockensignals

Also Published As

Publication number Publication date
DE102007004068A9 (de) 2008-05-21
US7428459B2 (en) 2008-09-23
JP2007205242A (ja) 2007-08-16
JP4687481B2 (ja) 2011-05-25
DE102007004068A1 (de) 2007-12-27
US20070175272A1 (en) 2007-08-02

Similar Documents

Publication Publication Date Title
DE102007004068B4 (de) Vorrichtung zur Steuerung eines Motors mit Hilfe eines Nockensignals
DE102006002923B4 (de) Verfahren und Vorrichtung zur Steuerung eines Motors unter Verwendung eines Nockensignals
DE102009017604B4 (de) Vorrichtung zur Steuerung eines Motors unter Verwendung eines Kurbelwellensignals und eines Nockenwellensignals
DE4141714C2 (de) Steuersystem für eine Brennkraftmaschine
DE2845350C2 (de)
DE68904840T2 (de) Geraet zur erfassung von verbrennungsausfaellen und steuerungssystem fuer einen verbrennungsmotor.
DE2812327C2 (de) Verfahren zur Steuerung eines Verbrennungsmotors und elektronische Steuervorrichtung zur Durchführung des Verfahrens
DE3618079C2 (de)
DE102006050100B4 (de) Straßenunebenheits-Detektionssystem
DE4139161C2 (de) Fehlzündungserfassungsvorrichtung für eine Brennkraftmaschine
DE102009033459A1 (de) Motorsteuervorrichtung
DE4139204C2 (de) Fehlzündungserfassungseinrichtung für Verbrennungsmotoren
DE10104273B4 (de) Impulse verschiedener Frequenzen verwendende Kraftmaschinen-Steuereinheit
DE19609872A1 (de) Vorrichtung zur Steuerung der Betriebsakte eines Verbrennungsmotors
DE3539732C2 (de) Elektronisch gesteuertes Brennstoffeinspritzsystem für eine Brennkraftmaschine
DE69916547T2 (de) Verfahren zur Synchronisation einer Brennkraftmaschine
DE4444751A1 (de) System zur Steuerung einer Brennkraftmaschine
DE10310365B4 (de) Steuervorrichtung für einen Verbrennungsmotor
DE3927050C2 (de)
DE102013217031B4 (de) Steuerungsvorrichtung für eine Verbrennungskraftmaschine
DE10127173B4 (de) Zylinderidentifizierungssystem für eine Brennkraftmaschine mit innerer Verbrennung
DE3342754C2 (de)
DE68922309T2 (de) Verfahren und Vorrichtung für die Detektierung eines Referenzdrehwinkels für jeden Zylinder in einer inneren Brennkraftmaschine.
DE4007395C2 (de) Zündzeitpunktsteuervorrichtung für einen Verbrennungsmotor
DE19620423C2 (de) Steuerung für eine Viertakt-Brennkraftmaschine

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8197 Reprint of an erroneous patent document
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R084 Declaration of willingness to licence
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee