-
Die
Erfindung betrifft ein Steuersystem zum Erzeugen von Steuersignalen
für Stellglieder,
insbesondere für
Stellglieder von Brennkraftmaschinen, gemäß der im Oberbegriff des Patentanspruches
1 näher
definierten Art sowie ein Verfahren zum Steuern von Stellgliedern
gemäß der im
Oberbegriff des Patentanspruches 13 näher definierten Art.
-
In
der Praxis werden zur Verbesserung klassischer Fahrzeugsysteme immer
mehr so genannte mechatronische Systeme eingesetzt, die von ihrer Steuerung
schnelle Reaktionen fordern. Die Reaktionen müssen aber nicht nur schnell,
sondern auch zeitgenau erfolgen. Diese Zeitbedingungen müssen in
der Regel zuverlässig
eingehalten werden. Sie besitzen keine Toleranz gegenüber Verzögerungen
und sind zur Aufrechterhaltung und Erfüllung ihrer Funktion auf höchste Präzision und
Zuverlässigkeit
bei ihrer Steuerung angewiesen.
-
Dabei
ist „Harter
Determinismus" gefordert, der
mit Hilfe von herkömmlichen
Prozessoren nur schwer zu erfüllen
ist. Dies gilt insbesondere für
Prozessoren der oberen Leistungsklasse. Caches wirken hier zwar
beschleunigend, aber nur statistisch. Im Einzelfall führen sie
zu Verzögerungen.
Erst wenn die vom Determinismus geforderten Reaktionszeiten hinreichend
lang sind, wirkt sich eine Beschleunigung der Verarbeitung auf diese
Art insgesamt positiv aus.
-
Bei
extrem schnellen Reaktionszeiten kann aber aufgrund dieser Mechanismen
Determinismus nicht mehr garantiert werden. Hinzu kommt, dass die Latenzzeiten
der Interruptbehandlung bei diesen Prozessoren zum einen sehr lang
sein können
und zum anderen keine konstante Verzögerungszeit angegeben werden
kann. Auch dies führt
zu Problemen, wenn versucht wird, mit diesen Prozessoren schnelle,
zeitpräzise
und zuverlässige
Reaktionen zu erzeugen.
-
Konkret
bedeutet dies im Fall der Steuerung von Zylindern einer Brennkraftmaschine,
dass Einspritzung und/oder Zündung
zu sehr exakt vorgegebenen Zeitpunkten erfolgen müssen. Dabei
handelt es sich allerdings nicht um Zeitpunkte, sondern um Winkelwerte.
Werden die Arbeitsspiele eines 4-Takt-Otto- oder -Dieselmotors auf
zwei Umdrehungen der Kurbelwelle abgebildet, so entspricht eine Periode
einem Winkelwert von 720 Grad, was zwei Umdrehungen der Kurbelwelle
entspricht.
-
Einspritzung
und/oder Zündung
müssen
zu exakt vorbestimmten Winkelpositionen erfolgen. Die Ermittlung
der Vorgabe ist zwar komplex, aber eine der Leistungsfähigkeit
eines Steuerungsprozessors angemessene und einfach durchzuführende Aufgabe.
Ein Problem betrifft das präzise
Treffen des Zeitpunkts der Ausgabe der Signale an Einspritzdüse und/oder
Zündung.
-
Diese
Problematik wird dadurch verstärkt, dass
bei neueren Dieselaggregaten nicht nur eine Einspritzung durchgeführt wird.
Eine Voreinspritzung erhöht
die Anzahl der präzise
anzusteuernden Ereignisse. Des Weiteren erhöht sich die Problematik dadurch,
dass beispielsweise nicht nur der Einschaltzeitpunkt einer Einspritzung
präzise
getroffen werden muss, sondern auch der Ausschaltvorgang. Damit verdoppelt
sich noch einmal die Anzahl der zeitkritischen reaktiven Aktionen.
Unter Berücksichtigung, dass
es sich meist nicht nur um einen Zylinder handelt, sondern um drei,
vier, sechs, acht oder zwölf, wird
deutlich, welche Anforderungen diese Reaktionen an ein Steuerungssystem
stellen. Bei einer elektrischen Ventilsteuerung werden die Anforderungen weiterhin
zunehmen.
-
Bei
einer mittleren Drehzahl von 3000 Umdrehungen pro Minute erfolgt
eine Umdrehung der Kurbelwelle in 20 ms. Ein Winkelgrad wird in
diesem Fall in 55 μs
durchlaufen. Die Bearbeitungsleistung, die auf einen Prozessor zukommt,
lässt sich
dadurch ermessen, dass für
eine präzise
Reaktion eine Genauigkeit von 0,1 Winkelgraden berücksichtigt
werden muss. Daher müssen
Reaktionen mit einer Präzision
von einigen Mikrosekunden erfolgen. Dabei ist zu berücksichtigen,
dass ein zugrunde liegender Kurbelwellenwinkelsensor nur alle 6
Winkelgrade Signale liefert. Alle notwendigen Interpolationen, um
auf eine Auflösung
von 0,1 Grad zu kommen, müssen ebenfalls
von der Steuerungselektronik durchgeführt werden. Dies ist jedoch
nachteilhafterweise nur noch von kostenaufwendigen Hochleistungsprozessoren zu
leisten.
-
Dabei
ist es in diesem Zusammenhang bereits problematisch, wenn die Interrupt-Latenzzeiten größer als
eine Mikrosekunde sind.
-
Die
vorbeschriebene hohe Präzision
resultiert aus der geforderten Dynamik, der Leistungsentfaltung,
der Laufruhe, der Sauberkeit der Verbrennung und damit eine vom
Gesetzgeber geforderte Minimierung der Emissionen und die effiziente
Nutzung des Kraftstoffs.
-
Aus
der Praxis bekannte Motorsteuerungen sind im allgemeinen aus einer
zentralen Steuereinheit, an die Aktoren und Sensoren angeschlossen sind,
gebildet. Dabei liefern Kurbelwellen- und Nockenwellenwinkelsensoren Eingangssignale,
die der Motorsteuerung zugeführt
werden. Dort werden sie aufbereitet und verarbeitet und führen in
Verbindung mit anderen Informationen zu Reaktionen für Einspritzung
und Zündung.
-
Problematisch
ist in diesem Zusammenhang, dass der Weg aller Informationen immer über eine
zentrale Steuereinheit führt,
weshalb sie grundsätzlich
das begrenzende Systemelement darstellt. Da die Anzahl der zu steuernden
Peripherieeinheiten ständig
zunimmt und im konkreten Fall einer Motorsteuerung die elektrischen
Ventile zukünftig
ebenfalls von dieser aus gesteuert werden müssen, kommen zusätzliche
Funktionen, wie eine gezielte Steuerung des Zylinderinnendrucks,
hinzu, die zusätzliche
zeitliche Anforderungen an die Zentraleinheit stellen. Nachteilig
ist, dass im Zentrum der Steuerung viele zeitliche Anforderungen
zusammentreffen. Sie konkurrieren beim Zugriff auf die CPU und verdrängen sich
gegenseitig, wodurch eine Konfliktsituation entsteht. Letztgenannte
hat zur Folge, dass gegebenenfalls nicht alle Reaktionen im spezifizierten
Zeitraum durchgeführt
werden können.
Um dieses Ziel erreichen zu können
und die Zuverlässigkeit
der zeitlichen Behandlung permanent erfüllen zu können, ist es erforderlich,
die Verarbeitungsgeschwindigkeit zu erhöhen. Dies führt jedoch nachteilhafterweise
zu überproportionalen
Kosten. Die Reaktionsgeschwindigkeit muss so schnell sein, dass
alle Zeitbedingungen unter allen Betriebsbedingungen immer erfüllt werden
können.
-
Eine
zusätzliche
Problematik liegt in der Steuerung der Zentraleinheit durch einen
Mikroprozessor. Seine Bearbeitung erfolgt auf der Basis sequentieller
Logik, die wesentlich lang samer ist als beispielsweise parallele
Logik. Hinzu kommt, dass die Beschleunigungsmechanismen von Mikroprozessoren,
die auf Caches basieren, einem schnellen Determinismus negativ gegenüberstehen.
-
Zum
allgemeinen Stand der Technik wird auf die
DE 102 37 221 A1 verwiesen,
aus der ein Verfahren und eine Vorrichtung zum Bereitstellen eines
kurbelwinkelbasierten Signalverfahrens bekannt ist. Dort wird zur
Bereitstellung eines eine relevante Betriebskenngröße einer
Brennkraftmaschine repräsentierenden,
kurbelwinkelbasierten Signalverlaufes mit hoher Auflösung vorgeschlagen,
die Betriebskenngröße zeitbasiert
mit hoher Auflösung
zu erfassen und mit Hilfe eines zeit- und winkelbasierten Kurbelwinkelsginals
von geringer Auflösung
unter Interpolation auf Kurbelwinkelbasis zu transformieren und dem
oberen Totpunkt des jeweiligen Zylinders im Vielfachen eines frei
wählbaren
Winkelinkrementes zur Interpolation mit hoher Winkelauflösung zuzuordnen.
-
Der
vorliegenden Erfindung liegt die Aufgabe zugrunde, eine zentrale
Steuerung zur Verfügung
zu stellen, deren Verarbeitungskapazität und Flexibilität derart
ausgebildet ist, dass die aus der Praxis gestellten hohen Anforderungen
hinsichtlich der schnellen und zuverlässigen Zeitbedingungen kostengünstig ausführbar sind.
-
Erfindungsgemäß wird diese
Aufgabe mit einem Steuersystem mit den Merkmalen des Patentanspruches
1 und mit einem Verfahren gemäß den Merkmalen
des Patentanspruches 13 gelöst.
-
Mit
dem erfindungsgemäßen Steuersystem zum
Erzeugen von Steuersignalen für
Stellglieder, insbesondere für
Stellglieder von Brennkraftmaschinen, in Abhängigkeit von zeitkritischen
Signalen eines Sensors zum Erfassen von Drehwinkeln eines ro tierenden
Bauteiles mit einem Mikroprozessor steht eine autoreaktive mechatronische
Einheit zur Verfügung,
mittels der extrem präzise
und kostengünstig
Steuersignale für
Stellglieder generierbar sind.
-
Dies
wird dadurch erreicht, dass ein Nullpunkterkennungs- und Taktsignalerzeugungsmodul, ein
Zählermodul
sowie ein Steuersignalgeneratormodul als ein mit dem Mikroprozessor
verknüpftes
zusammenhängendes
Komponentensystem zum Erzeugen der Steuersignale vorgesehen sind.
Damit werden zeitintensive sowie rechenleistungsintensive Berechnungsschritte
auf dezentrale Komponenten übertragen,
dort ausgeführt
und an die entsprechenden Empfänger
weitergeleitet, so dass eventuelle die Funktionstüchtigkeit
eines Systems beeinträchtigende
Verdrängungsphänomene auf
einfache Art und Weise und kostengünstig vermieden werden.
-
Das
erfindungsgemäße Verfahren
zum Steuern von Stellgliedern, insbesondere von Stellgliedern einer
Brennkraftmaschine, bietet vorteilhafterweise die Möglichkeit,
eine zentrale Steuerung mittels eines Mikroprozessors zu entlasten
und bezüglich
der zeitkritischen Ausgabe der eigentlichen Ansteuerfunktionen zu
entkoppeln. Dies wird dadurch erreicht, das in Abhängigkeit
eines auf Basis von aktuell vorliegenden Drehwinkelinformationen
des Sensors zu erwartende Winkelinformationen des rotierenden Bauteils abgebildet
werden, anhand derer die Steuersignale in mit dem Mikroprozessor
verknüpften
dezentralen Komponenten generiert werden.
-
Weitere
Vorteile und vorteilhafte Ausgestaltungen der Erfindung ergeben
sich aus den Patentansprüchen
und den unter Bezugnahme auf die Zeichnung prinzipmäßig beschriebenen
Ausführungsbeispiel.
-
Dabei
zeigen:
-
1 ein
stark schematisiertes Blockschaltbild eines Steuersystems für eine Brennkraftmaschine
mit einem aktiven Sensor als Peripheriekomponente;
-
2 einen
Blockaufbau eines erfindungsgemäß ausgeführten Steuerungssystemes
für eine Brennkraftmaschine;
-
3 ein
Blockschaltbild des Steuerungssystems gemäß 2, welches
zur Generierung der Zeitbasis und zeitbasisabhängigen Steuersignalen vorgesehen
ist;
-
4 eine
Schaltung zur Sensorsignalsynchronisierung mit Haupttakt;
-
5 ein
Blockschaltbild, welches ein Zählerdesign
zur Bestimmung des Zeitabstands zwischen zwei Impulsgebern des rotierenden
Bauteiles darstellt;
-
6 ein
Ablaufdiagramm zur Nullpunktbestimmung;
-
7 ein
Blockschaltbild, welches den Aufbau eines Zählermoduls wiedergibt;
-
8 ein
Teil des Steuersignalgeneratormoduls in Form eines Blockschaltbildes;
und
-
9 ein
Blockschaltbild, welches einen weiteren Teil des Steuersignalgeneratormoduls
darstellt.
-
In 1 ist
ein Blockschaltbild einer Motorsteuerung gezeigt, welche ein erfindungsgemäß ausgeführtes Steuersystem 1 aufweist.
Das Steuersystem 1 ist in 2 und 3 detaillierter
dargestellt, wobei in 4 bis 9 einzelne
Funktionalitäten des
Steuersystems 1 näher
gezeigt sind.
-
Das
Steuersystem 1 ist als ein so genannter intelligenter Sensor
ausgeführt,
mittels welchem die Auswertung der zeitkritischen Signale eines
Kurbelwellen- und Nockenwellenwinkelsensors 2 durchgeführt wird.
Mittels des Steuersystemes 1 werden Signale des Kurbelwellen-
und Nockenwellenwinkelsensors 2, der nachfolgend der Einfachheit
halber als Sensor 2 bezeichnet wird, derart aufbereitet,
dass der aktuelle Winkel der Kurbelwelle oder der Nockenwelle einer
Brennkraftmaschine als Grundlage für ein Steuersignal mit einer
Auflösung
von 0,1 Grad vorliegt.
-
Des
Weiteren steht das Steuersystem 1 mit einer zentralen Rechnereinheit
bzw. einem Mikroprozessor 3 in Verbindung, die wiederum
mit weiteren Peripherieeinheiten, wie einem Luftmassensensor 4, einem Öltemperatursensor 5,
einem Kühlwassertemperatursensor 6,
einem Abgastemperatursensor 7, einer Lambda-Sonde 8,
einer Abgasrückführeinrichtung 9 sowie
einer Kommunikationseinheit 10, Datensignale austauscht.
Hierbei sind die Peripherieeinheiten optional, d.h. es sind nicht
alle Peripherieeinheiten nötig
oder es können
einige Peripherieeinheiten auch mehrfach vorgesehen sein.
-
Die
in Abhängigkeit
des Sensors 2 und in Abhängigkeit einer mit dem Mikroprozessor 3 durchgeführten Kommunikation über das
Steuersystem 1 ermittelten Steuersignale werden verschiedenen
Stellgliedern, die zur Motorsteuerung bzw. zur Steuerung einer Brennkraftmaschine
eines Fahrzeuges vorgesehen sind, zugeführt. Diese Stellglieder sind
in 1 unter den Bezugszeichen 11 und 12 als
Rechtecke symbolhaft dargestellt, wobei die Stellglieder vorzugsweise
Komponenten eines Einspritzsystems 11 oder auch eines Zündsystems 12 einer
Brennkraftmaschine sind.
-
Anhand
von 2 und 3, in welchen das Steuersystem 1 jeweils
detaillierter dargestellt ist, soll die Wirkungsweise des Steuersystems 1 näher erläutert werden.
-
Zunächst werden
dem Mikroprozessor 3 Eingangswerte von Steuerdatenfeldern 24 (Control
Data Arrays) und weiteren Sensorsignalen 25, d. h. Signalen
der vorgenannten Sensoren 4, 5, 6, 7 sowie
der Lambdasonde 8, der Abgasrückführeinheit 9, der Kommunikationseinheit 10 sowie
beliebigen weiteren Fahrzeugkomponenten zugeführt, anhand derer jeweils Einschaltwerte 13 und
Ausschaltwerte 14 bestimmt werden, die Eingangswerte für ein Steuersignalgeneratormodul 15 darstellen.
Die vom Mikroprozessor 3 ermittelten Einschalt- und Ausschaltwerte 13, 14 stellen
vorliegend aktuelle Winkelwerte eines rotierenden Bauteiles dar.
D. h., sie entsprechen Winkelwerten der Kurbelwelle und der Nockenwelle
der Brennkraftmaschine. Die Einschalt- und Ausschaltwerte 13, 14 werden
in einem Komparator 16 mit über ein Nullpunkterkennungs-
und Taktsignalerzeugungsmodul 29 und ein Zählermodul 17 bestimmten Winkelwerten
verglichen.
-
Des
Weiteren ist das Steuersignalgeneratormodul 15 mit einer
Registerbaugruppe 18 ausgebildet, in der die Winkelwerte,
bei welchen ein Steuersignal von dem Steuersystem 1 generiert
wird, abgelegt werden. Mit dieser Vorgehensweise kann extrem genau
reagiert werden. Der Komparator 16 erzeugt die Steuersignale
für Stellglieder,
die Komponenten des Einspritzsystems 11 und/oder des Zündsystems 12 sein
können.
Die Abschaltung des Steuersignals erfolgt durch ein vorliegend nicht
näher dargestelltes korrespondierendes
Zeitregister des Steuersystems 1, das mit Zeitwerten für die Einschaltdauer
des von dem Steuersignalgeneratormodul 15 erzeugten Steuersignales
beschrieben ist. Mit dem Ablauf eines Zeitwertes erfolgt die Abschaltung
des entsprechenden Steuersignales.
-
Selbstverständlich besteht
auch die Möglichkeit,
die Steuersignale des Steuersignalgeneratormoduls 15 in
Abhängigkeit
bestimmter Drehwinkelwerte zu generieren, wobei die Vorgehensweise,
die Steuersignale über
das vorbeschriebene Zeitregister zu aktivieren, eine geringere Rechnerleistung
erfordert, weil ein vorgegebener Zeitwert für eine Einschaltdauer einen
Wert darstellt, der bei der Verarbeitung zugänglicher ist, da er direkt
anfällt
und daher ohne einen weiteren Verarbeitungsschritt verwendet werden
kann.
-
Die
Vorgabe für
die Registerbaugruppe 18 wird von dem Mikroprozessor 3 sowie
dem Zählermodul 17 und
dem Nullpunktbestimmungs- und Takterzeugungsmodul 29 gebildet,
so dass die Motorsteuerung bzw. der Mikroprozessor weiterhin die
volle Kontrolle über
alle Parameter zur Steuerung der Zylinder behält und eine Entkopplung bezüglich der zeitkritischen
Ausgabe der eigentlichen Ansteuerfunktionen erfolgt.
-
Der
Sensor 2 steht über
einen Kanal 26 mit dem Steuersignalgeneratormodul 15 in
Verbindung, über
den die Vorgaben in die Registerbaugruppe 18 geschrieben
werden können.
Das Einschreiben der Vorgaben ist weit weniger zeitkritisch als
die Erzeugung der Ansteuersignale, weil es pro Umdrehung der Nockenwelle
höchstens
einmal erfolgen muss. Hierfür
stehen aber, wie oben erwähnt,
bei einer mittleren Drehzahl von 3000 Umdrehungen pro Minute an
der Kurbelwelle immerhin 40 ms zur Verfügung. Dieser Wert liegt deutlich über dem
von einer Mikrosekunde und kann von jedem Prozessor in der Regel ohne
Aufwand eingehalten werden.
-
Aufgrund
der bereits vorhandenen Informationen und der vorhandenen Logik
ist es mit dem Steuersystem 1 nahezu ohne Zeitaufwand möglich, die aktuelle
Drehzahl zu bestimmen. Sie wird dem Mikroprozessor 3 über einen
Rückkanal 19 zugeführt.
-
Unterstützt wird
der vorbeschriebene Ansatz dadurch, dass diese dezentrale Logik
als parallel arbeitende Logik ausgeführt wird. Eine solche parallele Logik
ist extrem schnell und sehr zuverlässig.
-
Das
in 1 dargestellte Blockschaltbild stellt ein mechatronisches
System dar, bei dem Vorgaben, Überwachungen
und kommunikative Aufgaben von einer leistungsfähigen zentralen Einheit, vorliegend
dem Mikroprozessor 3, ausgeführt werden. Schnelle, zuverlässige Reaktionen
werden in dezentrale Einheiten, d. h. vorliegend das Steuersystem 1, ausgelagert,
so dass Sensor-Informationen mit Aktor-Reaktionen auf kurzem Weg
verbunden werden.
-
Die
Sensoren sowie die Aktoren bzw. Stellglieder stehen mit dem Mikroprozessor 3 in
Verbindung, erhalten von hier Vorgaben und Anweisungen und informieren über einen
rückwärts gerichteten
Kanal über
Prozesszustände
und Leistungsfähigkeit. Eine
entsprechende Konfiguration entkoppelt die Zeitanforderungen der
Mechanik von der Leistungsfähigkeit
einer zentralen Steuerungseinheit bzw. dem Mikroprozessor 3,
so dass ein kostengünstiger
modularer Aufbau mechatronischer Systeme auf der Basis des Zusammenspiels
zwischen aktiven dezentralen Modulen und einer zentralen Steuerungseinheit vorliegt.
-
Das
der Erfindung zugrunde liegende Konzept wird vorliegend als Beispiel
für eine
autoreaktive mechatronische Einheit dargestellt. Es handelt sich um
eine Einheit, die in der Lage ist, extrem präzise und kostengünstig die
Steuerungszeiten einer Motorsteuerung zu gewährleisten, wobei dazu die in 1 dargestellten
Komponenten enthalten sind. Der sensorische Teil ist der Auswertung
der Winkelinformation zugeordnet.
-
Bei
einem 4-Takt-Ottomotor gibt es die Freiheitsgrade, wie einen Zündzeitpunkt,
einen Kraftstoffzuführungsbeginn
und eine Dauer der Kraftstoffzuführung
und bei neueren Motoren einen Ventilöffnungsbeginn sowie eine definierte Öffnungsdauer, die
mit dem Kurbelwellenwinkel verknüpft
sind und auf die direkt steuernd eingegriffen werden muss. Bei Dieselmotoren sind
dies der Einspritzbeginn und Einspritzdauer sowie in Zukunft ebenfalls
Ventilöffnungsbeginn
und Öffnungsdauer.
Zusätzlich
sind hier mehrere Werte für
Einspritzbeginn und Einspritzdauer in einem Arbeitsspiel vorzusehen,
um Vor-, Haupt- und Nacheinspritzung
realisieren zu können.
-
Auf
der Basis der Signale von dem Kurbelwellen- und Nockenwellensensor 2 erfolgt
eine Auswertung, die als Ergebnis einen Winkelwert darstellt. Der
Winkel stellt den Phasenwinkel des Antriebs dar, der für einen
Viertaktantrieb einen Winkelbereich von 0 – 719 Grad annimmt. Die Auswertung
detektiert den Nullpunkt, zählt
die Winkelinformationen und stellt sie dar. Eine wesentliche Ergänzung erhält die Information
dadurch, dass der inkrementale Schritt des Geberrads so untersetzt
wird, dass man eine erhöhte
Winkelauflösung
von 0,1 Grad erhält.
-
Die
zweite Aufgabe des sensorischen Teils der in 1 dargestellten
Einheit der Motorsteuerung befasst sich mit der Ermittlung der Drehgeschwindigkeit.
-
Der
aktorische Teil wird von einem Registersatz, der durch mehrere Registerbaugruppen 18 gebildet
ist und jeweils einem damit korrespondierenden Komparator 16 gebildet.
Jede Registerbaugruppe 18 ist über einen binären Ausgangskanal
mit einer Reaktion verbunden. Die Winkelinformation liegt an allen
Registern gleichzeitig an. Die Registerbaugruppen enthalten Winkelinformationen,
die sich auf vorzunehmende Aktionen beziehen. Sie kennzeichnen die
Winkel für
Einspritzung, Zündung
und gegebenenfalls zur Ventilsteuerung für jeden Zylinder individuell.
Bei Übereinstimmung
erfolgt eine Reaktion, die entweder eine Ein- oder Ausschaltung
eines Aktors bzw. eines Stellgliedes vornehmen kann. Damit ist mit
absoluter Zuverlässigkeit
und ohne Verzögerung eine
Reaktion möglich.
-
Die
Winkelvorgaben werden durch den Mikroprozessor 3 bestimmt.
Es handelt sich um Vorgaben, die nahezu zeitunkritisch übertragen
werden können. Ähnlich wird
in umgekehrter Richtung die erzeugte Drehzahlinformation über den
Rückkanal 19 an
den Mikroprozessor 3 übermittelt.
-
2 zeigt
stark schematisiert den Aufbau des Motorsteuerungssystems. Ausgehend
von einem Zahnkranz 20 der Kurbelwelle 21, der
eine 6°-Einteilung
und zur Nullpunkterkennung eine Lücke aufweist, liefert der Sensor 2 elektrische
Signale, deren zeitlicher Abstand in Form der Zählung von Taktimpulsen eines
Taktgebers 22 bestimmbar ist. Der Taktgeber 22 ist
als eine quarzstabilisierte Taktquelle (Clock Generation) ausgeführt.
-
In
dem Nullpunktbestimmungs- und Takterzeugungsmodul 29 laufen
nachfolgend beschriebene Vorgänge
ab:
Zwischen zwei Impulsen bzw. Signalen des Sensors 2,
die im Folgenden immer als positive Flanken angenommen werden und
selbstverständlich
auch als negative Flanken oder abwechselnd als positive oder negative
Flanken angenommen werden können,
wird die aktuelle Zeit in Form der Zählung von Taktimpulsen des
Taktgebers 22 bestimmt.
-
Während der
ersten Umdrehung der Kurbelwelle 21 wird in einem Nullpunkterkennungs-Funktionsblock 30 der
Nullpunkt gesucht. Hierzu wird der aktuelle Wert vom Sensor 2 mit
dem letzten Wert verglichen. Liegt dieser oberhalb einer Schwelle,
wird dieser Ort als Nulllücke
definiert und dadurch verifiziert, dass der nächste Wert wieder innerhalb
der Schwelle liegt. Ist dies der Fall, wird beim Suchen der erste
kleine Wert so gewertet, dass an dessen Ende ein Zahn 2 des
Zahnkranzes 20 vorliegt, und der Zähler wird entsprechend auf
den Wert 60 gesetzt. Bei allen folgenden Umdrehungen der Kurbelwelle 21 wird die
Nullpunkterkennung in einem Nullpunktüberprüfungsfunktionsblock 31 verifiziert
und gegebenenfalls korrigiert.
-
Aus
dem gemessenen Zeitwert für
den Abstand zweier Signale des Sensors 2 und gegebenenfalls
aus vorhergehenden Werten wird in einem 6°-Signalerzeuger 32 eine
Länge bis
zu einem darauf folgenden Signal bzw. Impuls des Sensors 2 geschätzt und
in einem 0,1°-Signalerzeuger 33 in
60 Teile eingeteilt. Dieser Teilungswert dient der Erzeugung von 0.1°-Impulsen
bzw. Zwischenimpulsen.
-
Des
Weiteren wird in einem Umdrehungsdrehzahlzähler 34 für jede Umdrehung
der Kurbelwelle 21 eine Gesamtzeit bestimmt und über den Rückkanal 19 als
reziproker Umdrehungsdrehzahlwert dem Mikroprozessor 3 zur
Verfügung
gestellt.
-
Zwischen
dem Nullpunkterkennungs- und Takterzeugungsmodul 29 und
dem Steuersignalgeneratormodul 15 ist das Zählermodul 17 angeordnet, in
welchem von 0 bis 7199 in der nachfolgend beschriebenen Art und
Weise hochgezählt
wird. Das Zählmodul 17 erhält vom Funktionsblock 23 zwei Zählsignale
und weitere Steuersignale. Das erste Zählsignal repräsentiert
die 6°-Signalimpulse
des Sensors 2, so dass das Zählmodul 17 sechzig
Signale des Sensors 2 erhält. Bei jedem dieser Zählsignale bzw.
Signale des Sensors 2 wird der Zähler des Zählmoduls 17 auf einen
durch 60 teilbaren Wert gestellt, unabhängig davon, wie weit er vorher
gelaufen ist. Durch diese Vorgehensweise wird alle 6° ein exakter Wert
im Zählermodul 17 eingestellt.
Mittels eines Steuersignals wird der Zähler des Zählermoduls 17 auf
0 gesetzt, wohingegen der Zähler
des Zählermoduls 17 mittels
eines weiteren Steuersignales auf 60 gesetzt wird, wobei letztgenanntes
Steuersignal zum Setzen des Zählers
auf den korrekten Wert bei der ersten Nullpunkterkennung dient.
-
Das
zweite dem Zählermodul 17 zugeführte Zählsignal
entspricht den im 0,1°-Signalerzeuger 33 generierten
0.1°-Zwischenimpulsen,
wobei bei Vorliegen eines Zwischenimpulses das Zählsignal um einen Wert 1 inkrementiert
wird. Allerdings erfolgt die Imkrementierung des zweiten Zählsignals
jeweils nur bis zu dem Wert, der dem vorhergehenden, durch 60 teilbaren
Zählwert
+ 59 entspricht. Liegt die Schätzung
der 0.1°-Zwischenimpulse zu
hoch, wird beim letzten Schritt gewartet, bis der exakte 6°-Signalimpuls
des Sensors 2 vorliegt. Ist die Schätzung zu niedrig, macht der
Zähler
des Zählermoduls 17 bei Vorliegen
des 6°-Signals
des Sensors 2 einen Sprung um mehrere Werte.
-
Etwaige
Sprünge
im Zählwert
werden durch die Logik in den Vergleichern bzw. in dem Komparator 16 des
Steuersignalgeneratormoduls 15 ausgeglichen. Hier wird über spezielle
Schaltungen ein Flipflop pro Kanal eingeschaltet, wenn der Einschaltwert 13 erreicht
oder überschritten
wurde, und ausgeschaltet, falls der entsprechende Ausschaltwert 14 erreicht
oder überschritten
wurde.
-
Impulsgenerierungen,
Zähler,
Vergleichsregister, Komparator und Signalregister zählen zu
dem Teil, der gemäß der hier
angestrebten Partionierung in einer Hardware der Motorsteuerung
implementiert werden soll.
-
Damit
das vorbeschriebene System und die darin enthaltenen Schätzungen
von zeitlichen Parametern richtig auslegbar sind, sind einige Annahmen zu
den auftretenden zeitlichen Parametern zu treffen. Hierbei ist es
insbesondere die maximale Beschleunigung zwischen zwei Zähnen des
Zahnkranzes 20 der Kur belwelle 21, die bestimmt
werden muss, da hiervon – insbesondere
bei linearer Interpolation – der
Fehler des 0.1°-Zwischenimpulssignals
abhängt.
-
Als
maximale Beschleunigung wird angenommen, dass die Brennkraftmaschine
von 1000 auf 6000 Umdrehungen pro Minute (UPM) innerhalb von 1 Umdrehung
beschleunigen kann, dies entspricht einem Delta Δ von 5000 UPM, 83 U/s oder auch
5000 Zähnen/s
(bei 60 Zähnen
pro Umdrehung). Die Beschleunigungskurve wird dabei nicht linear
verlaufen, sondern im mittleren Drehzahlbereich das Maximum annehmen,
während
im unteren und oberen Bereich nur geringere Beschleunigungen vorhanden
sein werden, so dass die Beschleunigungskurve in Form einer S-förmigen Kurve
vorliegt. Es wird angenommen, dass die maximale Beschleunigung tatsächlich um
den Faktor 2 höher
liegt, d. h. im Bereich von 3000 UPM bei einem tatsächlichen
Wert von ca. 10000 Zähnen/s2.
-
Dies
bedeutet, dass bei linearer Schätzung des
Zeitabstands zweier Zähne
ein relativer Fehler von ca. 6% entsteht. Dieser Fehler liegt knapp
oberhalb des angestrebten Maximalfehlers von 5 %. Es wird daher
für vorliegend
davon ausgegangen, dass die lineare Schätzung ausreichend genau ist.
-
In 3 sind
das Steuersignalgeneratormodul 15, das Zählmodul 17 und
das Nullpunktbestimmungs- und Taktsignalerzeugungsmodul 16 dargestellt,
die den Teil der Schaltung der Motorsteuerung darstellen, innerhalb
der die Generierung der Zeitbasis und der zeitbasisabhängigen Steuersignale
erfolgt. Dabei lassen sich das Nullpunkterkennungs- und Taktsignalerzeugungsmodul,
das Zählermodul und
das Steuersignalgeneratormodul innerhalb der Hardware der Motorsteuerung
partitionieren und bilden ein zusammenhängendes Komponentensystem.
-
Das
Interface des Steuersystemes 1 wird eingangsseitig durch
das Sensorsignal des Sensors 2 von der Kurbelwelle 21,
welches 58 Takte und 2 Lücken
pro Umdrehung der Kurbelwelle 21 aufweist und beliebig
konfigurierbar ist, von der Nockenwelle 28 für die erste
und zweite Umdrehung, den Takteingang des Taktgebers 22,
welcher vorliegend mit 40 MHz angenommen wird, und das Interface
zum Mikroprozessor 3 hin gebildet. Ausgangsseitig wird
das Interface durch die generierten Kontrollsignale bzw. Steuersignale
des Steuersignalgeneratormoduls 15 und ein weiteres Register,
in dem ein über
eine Umdrehung gemittelter Wert für die Laufzeit übergeben wird,
gebildet. Letztgenannter Wert stellt ein reziprokes Maß für die Anzahl
der Umdrehungen pro Minute dar.
-
In 2 und 3 ist
jeweils nur ein Steuersignal als Ausgangssignal des Steuersignalgeneratormoduls 15 dargestellt,
wobei in Realität
mehrere Steuersignale von diesem Modul zur Motorsteuerung erzeugt
werden.
-
Es
ist aber auch realisierbar, dass ein Steuersignal von mehreren Registereinheiten
angesteuert wird, um somit bei einem vollständigen Arbeitsspiel mehrfach
die gleiche Aktion durchführen
zu können.
Als Beispiel sei hier die Ansteuerung eines Einspritzventils bei
einem Dieselmotor genannt, womit eine Mehrfacheinspritzung realisierbar
ist.
-
Eine
wichtige Entscheidung betrifft das Design des Zählermodules 17 und
der Vergleichslogik des Komparators 16. Prinzipiell könnte der
Komparator 16 auf Gleichheit mit einem Vorgabewert konzipiert
sein. Bei Wertgleichheit würde
dann der entsprechende Einschaltwert 13 bzw. Ausschaltwert 14 erzeugt
werden. Der Vergleich auf Gleichheit bedeutet jedoch auch, dass
jeder Wert im Zählermodul auch
zur Verfügung
steht, weil ansonsten der entsprechende Impuls übersprungen werden könnte.
-
Die
Alternative besteht darin, im Zählermodul 17 zur
Korrektur auch Zählsprünge mit
einem Abstand von mehr als 1 zuzulassen. Dies wird benötigt, wenn
die Schätzung
des Abstands der 0.1°-Zwischenimpulse
zu groß wird,
d. h., wenn nicht genügend Impulse
zum Zählen
erzeugt werden, bevor der 6°-Signalimpuls des
Sensors 2 vorliegt, was beim Beschleunigen des Motors der
Fall ist. Dies wird bei diesem Ansatz derart gelöst, dass der Zählwert des
Zählermoduls 17 bei
Vorliegen eines 6°-Signalimpulses des
Sensors 2 wieder korrigiert wird, was jedoch einen größeren Sprung
als "1" bedeutet.
-
Das
alternative Zählerdesign
des Zählermoduls 17 ist,
dass der Vergleich im Komparator 16 auf "<=" anstatt
auf Gleichheit zu erfolgen hat. Diese Vergleichseinheit ist mit
etwas erhöhtem
Hardwareaufwand realisierbar. Das Zählerdesign ist dann im Vergleich
zu der erstbeschriebenen Alternative, bei dem der Komparator 16 auf
Gleichheit konzipiert ist, etwas einfacher. Da der Zähler des
Zählermoduls 17 nur eine
Einheit aufweist, der Komparator 16 mit mehreren Einheiten
ausgeführt
ist, wäre
es grundlegend ökonomischer,
die erste Variante des Zählerdesigns zu
wählen.
-
Vorliegend
wird jedoch die zweite Alternative bevorzugt, weil dieses Design
wesentlich stabiler ist. Der Vergleich auf Ungleichheit korrigiert
jeden Zählersprung,
auch ungewollte. Diese integrierte Korrektur erlaubt einen Betrieb
bei mechatronischen Systemen, bei denen Steuerungsfehler Schäden hervorrufen
würden – wie im
Fall eines Verbrennungsmotors.
-
Das
Nullpunktbestimmungs- und Taktsignalerzeugungsmodul 29 hat
eine Reihe von Aufgaben zu erfüllen,
die alle mit der Schaffung einer verlässlichen Zeit- bzw. Taktbasis
zusammenhängen. Dementsprechend
kann diese Einheit wieder in Teileinheiten gegliedert werden. Summarisch
ergeben sich folgende Aufgaben:
Zunächst muss die Aufnahme der
Sensorsignale bzw. der 6°-Signalimpulse des
Sensors 2 sowie eine Synchronisierung mit dem Takteingang
des Taktgebers 22 durchgeführt werden. Des Weiteren muss eine
Detektierung des ersten Nulldurchgangs und eine daraus erfolgende
Generierung so genannter Preset_2_x- bzw. Preset_2_0- und Preset_2_1-Signale
hieraus erfolgen bzw. durchgeführt
werden. Die Preset_2_x-Signale, die im Nullpunktüberprüfungsfunktionsblock 31 generiert
werden und über
einen Kanal 35 dem Zählermodul 17 als
Eingangswert zugeführt
werden, werden benötigt,
um den später
beschriebenen Zähler
auf einen definierten Wert, entweder Zählerstand 60 oder 3660,
zu setzen.
-
Des
Weiteren muss eine Verifikation der weiteren Nulldurchgänge, d.
h. eine Überprüfung, ob
die voraussichtliche Lage des Nullpunkts auch tatsächlich stimmt,
durchgeführt
werden. Sollten sich hier Verschiebungen etwa durch Störungen ergeben,
bietet sich bei jedem Umlauf der Kurbelwelle 21 bzw. der Nockenwelle
eine Korrekturmöglichkeit
an.
-
Darüber hinaus
muss der 6°-Takt
mit gefüllter
Lücke und
zusätzlichem
Nulldurchgangssignal generiert werden und die Anzahl der 40 MHz-Takte zwischen
zwei 6°-Takten
zur augenblicklichen Geschwindigkeitsbestimmung gemessen werden.
-
Schließlich muss
im Nullpunktbestimmungs- und Taktsignalerzeugungsmodul 29 die
Generierung des 0.1°-Taktes
der Zwi schensignale für
den Zähler des
Zählermoduls 17 generiert
werden.
-
Die
Synchronisierung des Sensorsignals mit dem Haupttakt (40 MHz) des
Taktgebers 22 wird als wichtig angesehen, um in der weiteren
Schaltung Metastabilitäten
oder Verletzungen von Speicherbedingungen so weitgehend wie möglich auszuschließen. Derartige
Verletzungen könnten
zu falschen Werten, z.B. im Zähler,
führen
und damit ein unkontrolliertes Verhalten der Motorsteuerung und
des Motors hervorrufen.
-
Die
Synchronisierung der Signale des Sensors 2 wird mit einer
in 4 dargestellten ersten Schaltung 36 durchgeführt, bei
der eine maximale Verzögerung
gegenüber
dem Sensorsignal 50 ns beträgt. Die minimale Verzögerung beträgt 25 ns
und eine Impulsbreite weist einen konstanten Wert von 50 ns auf.
-
Die
zweite in 4 dargestellte Schaltung 37 dient
zur Bestimmung der aktuellen Zeitspanne zwischen zwei Zähnen. Hier
wird der Basistakt von 40 MHz entsprechend 25 ns Schwingungsdauer
zugrunde gelegt, wobei auch davon abgeleitete Takte wie z.B. 10
MHz gewählt
werden können.
Soll eine Messung bis 100 UPM durchführbar sein, muss die Zählbreite
bis 10 ms ausgelegt werden. Mit Reserve bedeutet dies 20 Bit Zählbreite
bei 40 MHz, wobei in 5 das aktuell vorgeschlagene
Zählerdesign
wiedergegeben ist.
-
Ein
gesättigter
oder saturierender Zähler 38 zählt 40 MHz-Impulse, ohne dabei
einen Überlauf
zu produzieren. Dies ist erforderlich, um die Erzeugung falscher
Werte zu verhindern, die scheinbar beim Überlauf entstehen könnten. Ein
Zählwert,
der dem Maximum entspricht, kann dann auch so interpretiert werden,
dass sich der Motor nicht dreht bzw. eine zu geringe Drehzahl aufweist.
-
Das
Zählerdesign
ist speziell für
eine spätere Operation
der Division durch 60 ausgelegt. Hierzu wird in den unteren 6 Bits
nur noch bis 60 und nicht bis 64 wie bei einem binären Zähler gezählt, und
ein generierter Übergang
dient dem Zählen
in den oberen 14 Bits. Bei einer Zählfrequenz von 40 MHz bedeutet
dies eine Dauer von 1.5 μs
pro 60 Takten.
-
Ein
Gültigkeitsbit 39 des
gesättigten
Zählers 25 zeigt
an, ob überhaupt
gezählt
wurde. Beim ersten Durchgang wird an dieser Stelle der Wert 0 stehen, da
dieser Wert durch einen so genannten Power-On-Reset 40 gesetzt
wird. Bei jedem weiteren Durchgang stehen echte Werte im Zähler des
Zählermoduls 17,
so dass der Zählerwert
dementsprechend genutzt werden kann. Der Reset durch das synchronisierte
Zählersignal
Sync_Sensor der Schaltung gemäß 4 wirkt
nicht auf das Gültigkeitsbit 39 des gesättigten
Zählers 38,
sondern nur auf den Zählerstand.
Tritt also ein Signal Sync_Sensor auf, dessen Erzeugung in 4 dargestellt
ist, dann wird der Wert im Zählregister 41 (Count-Value-Register),
das ebenfalls mit einem Gültigkeitsbit 42 versehen
ist, gespeichert, der Taktzähler
jedoch zurückgesetzt.
-
Aus
den vorbeschriebenen Parameter-Schätzungen wurde abgeleitet, dass
die Veränderungen
der Durchlaufzeiten zwischen zwei Zähnen des Zahnkranzes 20 im
Maximalfall < 6%
sind. Dies bedeutet natürlich
auch, dass die Erkennung des Nulldurchgangs, d.h. des fehlenden
Zahns oder der fehlenden Zähne,
relativ einfach sein wird.
-
Für die Nulldurchgangsdetektion
wird jeder Zählwert
des Zählregisters 41 auf
die Anzahl relevanter Bits gekürzt.
Bei einer Nenndrehzahl 6000 UPM beträgt der zeitliche Abstand 167 μs, der entsprechende
minimale Zählwert
also 6680 (als 12- Bit-Wert)
bzw. 111 * 60 + 20. Lässt
man also die unteren 10 Bits zur Detektion fort, dann ist der maximale
Fehler < 13%. Der
verbliebene 10-Bit-Wert wird mit sich selbst, verschoben um 1 Bit
nach rechts (Division/2), addiert, so dass man den Vergleichswert ca.
1.5 * Zählwert
erhält
(* 3: Originalwert verschieben und mit altem wert addieren). Für den weiteren Verlauf
lässt sich
das in 6 dargestellte Ablaufdiagramm, das in Hardware
zu integrieren ist, angeben.
-
Das
Prinzip dieses Nulldurchgangsdetektors wird als Hardwarelösung aus
gekoppelten Automaten bestehen. Einer hiervon verwaltet das Signal Zero_detect,
das über
seine Werte Aufschluss über den
Zustand gibt. Bei der Detektion werden nur gültige Werte des Zählers berücksichtigt.
Aus diesen wird wie beschrieben der Vergleichswert gewonnen und später gespeichert.
Durch die späte
Speicherung können
ein neuer Wert und ein alter Vergleichswert miteinander verglichen
werden.
-
Ist
dieser Vergleich positiv, wird mit hoher Wahrscheinlichkeit angenommen,
dass der Nullpunkt gefunden wurde, was vorliegend dem Wert Zero_detect
= 2 entspricht. Dies wird dadurch verifiziert, dass der Vergleich
beim nächsten
Durchgang wieder negativ wird, was wiederum dem Wert Zero_detect
= 3 entspricht. Dann wird kurzzeitig eines der Preset-Signale Preset_2_X
(abhängig
vom Stand der Nockenwelle) erzeugt. Im anderen Fall beginnt der
Zyklus von vorne und das in 6 dargestellte
Ablaufdiagramm wird erneut durchlaufen.
-
Um
ein hohes Maß an
Betriebssicherheit herzustellen, wird der Nulldurchgang bei jeder
Umdrehung erneut verifiziert. Der Verifikationsmodus ist durch den
Wert Zero_detect = 4 erkenntlich. Zusätzlich wird ein weiterer Zähler mit
6 Bits eingeführt,
der die Anzahl der Zähne
seit der letzten Nulldurchgangserkennung zählt. Dieser Zähler wird
auf 1 gesetzt, wenn eines der Preset-Signale Preset 2 0 oder Preset
2 1 aktiv ist, auf 0 gesetzt, wenn ein echter Nulldurchgang verifiziert
wird.
-
Tritt
nun der Fall auf, dass dieser Zähler
auf 57 steht und der Nulldurchgang durch die Verlängerung
des Zahnabstands erkannt wird, gilt der Nulldurchgang als verifiziert.
Abhängig
von dem Signal der Nockenwelle, welches 0 oder 1 ist, wird ein neues Signal
Reset in Richtung des Zählers
bzw. des Zählermoduls 17 erzeugt,
um diesen pro 2 Umdrehungen einmal definiert auf 0 zu setzen. Intern
wird ein weiteres Reset-Signal
für den
Zahnzähler
und den Umdrehungsdrehzahlzähler
erzeugt.
-
Der
Umdrehungsdrehzahlzähler
läuft einfach mit
dem Haupttakt von 40 MHz des Taktgebers 22 oder einem davon
abgeleiteten Takt mit. Die genaue Definition erfolgt anhand der
gewünschten
Genauigkeit. Bei einem Reset wird der aktuelle Wert, der der Anzahl
der Takte für
eine Umdrehung entspricht, in ein Interface für den Mikroprozessor 3 gespeichert. Für die Aufwandsschätzung werden
hier für
beide Zähler
15 Bit plus einem Valid-Bit bzw. einem Gültigkeitsbit angenommen.
-
Ist
die Nullpunktlage beim Zahnkranz 20 erkannt, was dem Wert
Zero_detect = 4 entspricht, dann kann zwischen Zahn Nr. 58 und Zahn
Nr. 1 des Zahnkranzes 20 linear interpoliert werden und
somit zwei vollständige
6°-Signaltakte
ausgegeben werden. Hierzu wird das Vergleichssignal, das den Zahnzähler mit
dem Wert 57 vergleicht und bereits in der Nullpunktverifikation
kreiert wurde, genutzt. Da für die
Generierung des 0.1°-Zwischenimpulses
bereits ein Zähler
genutzt wird, der als Rückzähler eine
Impulsbreite von etwa 6° im
Rahmen des Schätzverfahrens
erzeugt, kann die Verknüpfung
dieser Signale genutzt werden, um die fehlenden Signale des nicht vorhandenen
59. und 60. Zahnes des Zahnkranzes 20 zu erzeugen.
-
Die
Bestimmung der Impulsintervalle wurde bereits anhand der Darstellung
gemäß 4 näher beschrieben,
wobei der gemessene Wert ohne zusätzlichen Aufwand für die lineare
Interpolation gewählt
werden kann. Zur exakten Bestimmung muss dieser Wert durch 60 dividiert
werden. Eine solche Division ist als Integer-Operation sehr einfach,
da die unteren 6 Bits nur bis 60 zählen. Die Division entspricht
dabei dem Fortlassen der unteren 6 Bits.
-
Der
nachfolgend beschriebene Zähler
dient der kontrollierten Zählung
der 0.1°-Zwischenimpulse. Die
Zählung
selbst soll von 0 bis 7199 erfolgen, wobei im Einzelnen die folgend
aufgeführten
Vorgänge integriert
sind, die in 7 dargestellt sind.
-
Bei
einem Nulldurchgang, bei dem der Zahn 1 des Zahnkranzes 20 den
Sensor 2 passiert und der Drehwinkel der Nockenwelle dem
Wert 0 entspricht, werden der Zähler
(Up-Counter) und das Zwischenregister (Register (13 Bit)) auf 0
gesetzt. Das Reset-Signal wird durch die Verifikation des Nulldurchgangs
erzeugt.
-
Wird
der Wert Null detektiert, werden der Zähler und das Zwischenregister
mit Hilfe der Signale Preset_2_0 oder Preset_2_1 auf 60 bzw. 3660
gesetzt. Hier beginnt dann die Zählung
der 0.1°-Zwischenimpulse.
-
Bei
jedem 6°-Impuls
wird das Zwischenregister (44) neu gesetzt, ansonsten bleibt
dies konstant. Aus diesem Wert wird der nächste, durch 60 teilbare Wert
durch Addition berechnet.
-
Bei
jedem 0.1°-Impuls
wird der Hauptzähler inkrementiert,
es sei denn, der nächste
Wert wäre durch
60 teilbar. In diesem Fall wird der Zähler gestoppt, bis ein 6°-Impuls vorliegt.
Dieser Impuls speichert in jedem Fall den durch 60 teilbaren Wert
im Zählregister.
-
Nachfolgend
wird näher
auf das Steuersignalgeneratormodul 15 eingegangen, das
das Interface zum Mikroprozessor 3 bildet, wobei dieser
zum Laden neuer Steuerwerte in die Register aus Sicht des Mikroprozessor 3 schreibend
ist. Des Weiteren werden vom dem Steuersignalgeneratormodul 15 die Steuersignale
in Abhängigkeit
von den Steuerwerten des Mikroprozessors 3 und des aktuellen
Zählerstandes
des 0.1°-Zählers generiert.
Zusätzlich
werden die Steuersignale in den Registerbaugruppen 18 gespeichert.
-
Die
in 8 gezeigte Darstellung betrifft ausschließlich die
Erzeugung und Speicherung der Steuersignale des Steuersignalgeneratormoduls 15. Der
Einschaltwert ist im On-Register 45 als 13-Bit-Wert gespeichert,
wobei der Ausschaltwert im Off-Register 46 als 14-Bit-Wert
gespeichert ist. Das zusätzliche
Bit ist notwendig, falls eine Art Überlauf eintreten muss. Liegt
beispielsweise der Einschaltwert, dessen erlaubter Wertebereich
zwischen 0 und 7199 liegt, relativ nahe an dem Wert 7199, der Ausschaltwert,
der als 13-Bit-Wert vorliegt, dann nahe bei 0, so sind dies natürlich erlaubte
Werte. Um die Auswertung im IC zu erleichtern, muss in diesem Fall der
Ausschaltwert um Bit 13 = 1 erhöht
werden.
-
Mit
diesem eigentlich nicht zulässigen
Wert ist es dann möglich,
eine einfache Vergleicherhardware und damit Steuersignalgenerierung
(C_S) aufzubauen. Die Generierung des zusätzlichen Bits erfolgt in der
Zugriffslogik. Das Steuersignal wird dann mit dem Haupttakt im Datenregister
gespeichert. Die Verwendung anderer Registerarten wie RS- oder Toggle-Flipflop
ist natürlich
ebenfalls möglich.
Aus den Vergleichern bzw. Komparatoren werden optional drei Signale
erzeugt. Als erstes Signal C_S_in, als zweites Signal, ob der entsprechende
Vergleich aktuell aktiv ist, d. h. vorliegend = '1' ist,
oder als drittes Signal, ob der entsprechende Vergleich aktuell
inaktiv ist.
-
Das
Interface zum Mikrocontroller, d.h. zum Mikroprozessor benötigt Adress-
und Datenleitungen, Steuerleitungen und insbesondere eine interne Decodierung.
Hierfür
sind – bei
einem angenommenen 16-Bit-Interface – 20 Logikzellen entsprechend
5 CLBs ausreichend. Dies bezieht sich auf die Verwendung von FPGAs
(Field Programmable Gate Arrays), welche als programmierbare Logik
eingesetzt werden können.
Diese FPGAs sind häufig
aus kleinen Blöcken
(CLB: Configurable Logic Block) mit z.B. 4 Eingängen, einem Ausgang und einer
vorgebbaren Funktion zwischen den Eingängen und dem Ausgang aufgebaut.
-
Ein
besonderes Problem tritt noch auf, wenn das Setzen der Steuerregister
(On_Reg, Off_Reg) gesichert sein soll. Hierzu muss entweder der
Mikrocontroller in der Lage sein, den inaktiven Zustand zu erkennen,
oder die Hardware muss dies selbst vornehmen. Dies ist insbesondere
dann wichtig, wenn das Interface in der Datenbreite kleiner ist
als die Registerbreite, denn dann könnten die Register nicht in einem
Vorgang geladen werden, und Seiteneffekte wären nicht auszuschließen.
-
Es
wird daher vorgeschlagen, ein selbst-kontrollierendes Interface
einzubauen. Aus Sicht des Mikrocontrollers 3 bedeutet dies,
dass zwei Register mit Daten, aktuell á 13 Bit, hier angenommen á 16 Bit und
eines mit einer Kanalnummer, angenommen á 16 Bit, zu beschreiben sind.
-
Das
Interface hat folgende Eigenschaften: Mit dem Schreiben der Kanalnummer
wird automatisch ein Aktivitätsbit
im Adressregister auf '1' gesetzt. Dieses
Aktivitätsbit
zeigt der Interfacehardware an, dass neue Daten vorliegen. Die Hardware
kontrolliert dann das Signal C S in.
-
Bei
aktivem Vergleich, der in 9 dargestellt
ist, wird bis zum Ausschalten gewartet, ansonsten werden die Werte
in die Vergleicher bzw. Vergleichsregister 47, 48 geschrieben.
Beim Einschreiben werden noch On- und Off-Werte miteinander verglichen
und das Bit 13 des Off-Registers 48 entsprechend gesetzt.
Zugleich wird das Aktivitätsbit
gelöscht,
das vom Mikroprozessor 3 aus gelesen werden kann. Der Mikrocontroller 3 kann
dann den nächsten
Wert setzen.
-
Die
Weiterentwicklung des Ansatzes der intelligenten Sensorik führt zu einer
aktiven Sensorik. Im Rahmen dieser Weiterentwicklung werden die
Fähigkeiten
eines intelligenten Sensors – Signale
zu formen, aufzubereiten und zu Informationen zu verarbeiten – im Rahmen
dieses neuen Konzepts ergänzt durch
einfache Verarbeitungsvorgänge
innerhalb des Sensors. Diese Verarbeitung erzeugt Ausgangssignale,
die direkt auf einen Aktor bzw. ein Stellglied wirken.
-
Als
Beispiel dient eine intelligente Einheit zur zylinderindividuellen
Erzeugung der Steuerzeiten für Ventile,
Einspritzung und Zündung
eines Verbrennungsmotors.
-
Die
Herstellung der präzisen
Zeit- bzw. Winkelbasis und der darauf aufbauende Algorithmus ist einfach
und wird nur mit wenigen Fallunterscheidungen durchlaufen. Deshalb
bietet sich eine vollständige
Implementierung dieses Teils in Hardware an. Der eigentliche Steueralgorithmus
ist hingegen tabellen- und
wertegesteuert und damit sehr irregulär. Hierfür werden viele Fallunterscheidungen
durchgeführt,
Tabellenwerte sind einzulesen, zu verrechnen und auszugeben. Diese
sind wesentlich besser in mikroprozessor-basierten Systemen zu integrieren.
Andererseits haben gerade diese Systeme Probleme mit der besonders
zeitgenauen Bearbeitung, da ein Mikroprozessor zu einem Zeitpunkt
nur einen Befehlsstrang bearbeiten kann.
-
Für die Implementierung
bietet sich damit eine reale Partionierung und Integration des Zeitbasisprogramms
in Hardware, des Steuerprogramms in Software an. Der Vorteil des
erfindungsgemäßen Systems
liegt deutlich darin, dass die Vorteile beider Möglichkeiten optimal genutzt
werden. Der Mikrocontroller wird durch die Herausnahme des Zeitbasisprogramms
derart stark entlastet, dass hier in der Regel ein wesentlich kleinerer
Typ als bei aus der Praxis bekannten Systemen gewählt werden
kann. Die durch die zusätzliche
Hardware entstehenden Mehrkosten sind derart gering, dass insgesamt
ein Nettoeffekt einer Kostenverringerung bei drastischer Erhöhung der Präzision erzielt
wird.
-
Durch
die Aufteilung in Hard- und Software wird die Komplexität verringert.
Ungewollte Seiteneinflüsse
durch verschachtelte Task-Aufrufe in einem Prozessor werden vermieden.
Dadurch kann im Entwicklungsprozess und insbesondere in der Testphase
erheblich Zeit eingespart werden. Das Ergebnis ist eine robuste
und in allen Einsatzbereichen zuverlässig funktionierende Motorsteuerung.