-
Die Erfindung betrifft ein Verfahren mit den Merkmalen des Oberbegriffs des Anspruchs 1 und eine Vorrichtung mit den Merkmalen des Oberbegriffs des Anspruchs 7.
-
Stand der Technik
-
Zur Steuerung von Mikroprozessoren, speziell im Kraftfahrzeug-Umfeld, werden Zeitgeber verwendet, um interne und externe Ereignisse zeitlich zu koordinieren. Dabei ist es häufig wünschenswert, einen Zeitgeber mit geringer Stromaufnahme einzusetzen, etwa um ein Steuergerät zu vorbestimmten Zeiten aus einem Ruhezustand mit verringertem Energieverbrauch heraus zu aktivieren.
-
Einfache Zeitgeber verwenden Schwingkreise auf der Basis von Ringoszillatoren oder Widerstands-Kondensator-Gliedern (RC-Glieder). Derartige Schwingkreise sind schwierig zu kalibrieren und unterliegen Temperatur- und Alterungseffekten. Genauere Schwingkreise, beispielsweise auf der Basis von keramischen Resonatoren oder Quarzen, erfordern einen erhöhten Kostenaufwand und eine komplexere Ansteuerung.
-
Der Erfindung liegt die Aufgabe zugrunde, einen Zeitgeber und ein Verfahren zum Bereitstellen eines zeitabhängigen Signals bereitzustellen, so dass eine einfache und genaue Generierung eines Zeitsignals bei geringen Kosten möglich ist.
-
Offenbarung der Erfindung
-
Die Erfindung löst dieses Problem mittels eines Verfahrens mit den Merkmalen des Anspruchs 1 und einem Zeitgeber des Anspruchs 7.
-
Ein erfindungsgemäßes Verfahren zum Bereitstellen eines zeitabhängigen Signals umfasst Schritte des Teilens eines ersten Taktsignals eines ersten Taktgenerators mit einer ungenauen Taktfrequenz durch einen Divisor, des Bereitstellens des zeitabhängigen Signals auf der Basis des durch den Divisor geteilten ersten Taktsignals, des periodischen Aktivierens und Deaktivierens eines zweiten Taktgenerators, der zum Bereitstellen eines zweiten Taktsignals mit einer genauen Taktfrequenz eingerichtet ist, des Vergleichens der Taktfrequenzen des ersten und des zweiten Taktsignals und des Anpassens des Divisors auf der Basis des Vergleichs.
-
Der erste Taktgenerator mit der ungenauen Taktfrequenz weist üblicherweise eine geringere Stromaufnahme und eine geringere Grundfrequenz auf als der zweite Taktgenerator mit der genauen Taktfrequenz. Erfindungsgemäß wird die Bereitstellung des zeitabhängigen Signals auf der Basis des ersten Taktgenerators periodisch mit dem zweiten Taktgenerator abgeglichen, so dass die Genauigkeit des zeitabhängigen Signals gesteigert wird, ohne die Stromaufnahme oder die Schaltungskomplexität des Zeitgebers signifikant zu steigern. Das Verfahren kann einfach in bestehende Schaltungen integriert werden, insbesondere in programmierbare Logikschaltungen oder programmgesteuerte Verarbeitungseinrichtungen.
-
Das Vergleichen der Taktfrequenzen kann ein Zählen der Taktzyklen des ersten Taktgenerators während einer vorbestimmten Anzahl Taktzyklen des zweiten Taktgenerators umfassen.
-
Der Divisor kann auf folgenden Wert angepasst werden:
wobei:
- f2
- die Taktfrequenz des zweiten Taktgenerators,
- Q
- einevorbestimmte Anzahl Taktzyklen des zweiten Taktgenerators,
- Z
- die Anzahl Taktzyklen des ersten Taktgenerators während Q Taktzyklen des zweiten Taktgenerators, und
- fx
- die Taktfrequenz des bereitgestellten Taktsignals ist.
-
Je öfter das Anpassen des Divisors erfolgt, desto höher ist die erreichbare Genauigkeit des zeitabhängigen Signals, desto höher jedoch auch der Stromverbrauch eines erfindungsgemäß aufgebauten Zeitgebers. In einer bevorzugten Ausführungsform wird der zweite Taktgenerator periodisch 59-mal so lange deaktiviert wie aktiviert. Beispielsweise kann der zweite Taktgenerator jede Minute während einer Sekunde aktiviert werden.
-
Der zweite Taktgenerator kann auch auf der Basis eines externen Ereignisses aktiviert werden, so dass beispielsweise für eine Echtzeit-Steuerungsaufgabe die volle Genauigkeit des zweiten Taktgenerators aktivierbar ist. Dabei kann das zeitabhängige Signal auf der Basis des zweiten Taktsignals bereitgestellt werden, welches durch einen weiteren vorbestimmten Divisor geteilt wird.
-
Das Verfahren kann als Computerprogrammprodukt mit Programmcodemitteln implementiert sein und auf einer Verarbeitungseinrichtung ablaufen oder auf einem computerlesbaren Datenträger gespeichert sein.
-
Ein erfindungsgemäßer Zeitgeber umfasst einen ersten Taktgenerator zur Bereitstellung eines ersten Taktsignals mit einer niedrigen Taktfrequenz, einen Zähler zur Teilung des ersten Taktsignals durch einen Divisor, um ein zeitabhängiges Signal bereitzustellen, einen zweiten Taktgenerator zur Bereitstellung eines zweiten Taktsignals mit einer genauen Taktfrequenz, eine Steuereinrichtung, die dazu eingerichtet ist, den zweiten Taktgenerator periodisch zu aktivieren und deaktivieren, und eine Steuereinrichtung, die dazu eingerichtet ist, den Divisor auf der Basis eines Vergleichs der ungenauen Taktfrequenz mit der genauen Taktfrequenz anzupassen.
-
Der Zeitgeber kann vorteilhaft in einem anwenderspezifischen integrierten Schaltkreis (ASIC) aufgebaut sein. Alternativ kann auch ein Standardbaustein wie ein programmierbarer Mikrocomputer verwendet werden. Dadurch eignet sich der Zeitgeber insbesondere für Steuerungsaufgaben, bei denen Teile einer Steuereinrichtung mittels des Zeitgebers aus einem Energie sparenden Ruhezustand aktiviert werden. In einer weiteren Ausführungsform kann der Zeitgeber auch dafür verwendet werden, eine Zeitdauer zu bestimmen, während derer das Steuergerät in einem vorbestimmten Betriebszustand war.
-
Vorteilhafterweise umfasst wenigstens der erste Taktgenerator ein die Taktfrequenz bestimmendes RC-Glied. Auf diese Weise kann der erste Taktgenerator einfach und kostengünstig ausgeführt sein. Alternativ dazu kann der erste Taktgenerator einen Ringoszillator umfassen. Der Ringoszillator ist ebenfalls einfach und kostengünstig aufzubauen und kann zusätzlich mittels eines logischen Signals aktiviert und deaktiviert werden, so dass ein Einschwingvorgang erleichtert sein kann. Die Art des Aufbaus des ersten Taktgenerators beeinflusst die des zweiten Taktgenerators nicht, der auf eine der genannten Weisen oder beispielsweise auf der Basis eines keramischen Resonators oder eines Quarzes aufgebaut sein kann.
-
Kurze Beschreibung der Figuren
-
Die Erfindung wird nun mit Bezug auf die beigefügten Figuren genauer beschrieben, in denen:
-
1 ein Blockschaltbild eines Zeitgebers; und
-
2 ein Ablaufdiagramm eines Verfahrens zum Bereitstellen eines zeitabhängigen Signals mittels des Zeitgebers aus 1 darstellt.
-
1 zeigt ein Blockschaltbild eines Zeitgebers 100. Der Zeitgeber 100 kann beispielsweise an Bord eines Kraftfahrzeugs eingebaut und zur Steuerung eines Mikrocomputers vorgesehen sein, der mittels des Zeitgebers 100 aus einem Energie sparenden Modus aktiviert wird.
-
Der Zeitgeber 100 ist im Wesentlichen als integrierter Schaltkreis 105 ausgeführt, der über die gezeigten Funktionsblöcke hinaus noch weitere Funktionsblöcke umfassen kann. In einer bevorzugten Ausführungsform ist der integrierte Schaltkreis 105 ein anwenderspezifischer integrierter Schaltkreis (ASIC).
-
Der integrierte Schaltkreis 105 ist mit einem ersten Schwingkreis 110 und einem zweiten Schwingkreis 115 verbunden. Der erste Schwingkreis 110 ist ein RC-Schwingkreis und umfasst einen Widerstand 120 (R) und einen Kondensator 125 (C). Obwohl der erste Schwingkreis 110 als Reihenschwingkreis dargestellt ist, kann in anderen Ausführungsformen auch ein Parallelschwingkreis verwendet werden. Anstelle des RC-Schwingkreises kann auch ein LC-Schwingkreis verwendet werden, indem anstelle des Kondensators 125 eine Spule verwendet wird. Am Ausgang eines ersten Treibers 145 ist eine Taktfrequenz f1 des ersten Schwingkreises 110 bereitgestellt.
-
Der zweite Schwingkreis 115 umfasst drei invertierende Gatter 130 bis 140. Die invertierenden Gatter 130 bis 140 sind in Serie geschaltet und rückgekoppelt, so dass sich am Ausgang des dritten invertierenden Gatters 140 ein Taktsignal mit einer vorbestimmten Taktfrequenz einstellt. In der dargestellten Ausführungsform ist das zweite invertierende Gatter 135 über ein logisches Signal steuerbar. Je nach Pegel des logischen Signals invertiert das zweite invertierende Gatter 135 das vom ersten logischen Gagtter 130 bereitgestellte Signal oder liefert ein konstantes Ausgangssignal. Das zweite logische Gatter 135 kann beispielsweise ein NOR, NAND oder XOR-Gatter sein. Somit ist der zweite Schwingkreis 115 auf der Basis des logischen Signals aktivierbar und deaktivierbar. Die Genauigkeit des zweiten Schwingkreises 115 kann gegenüber der Genauigkeit des ersten Schwingkreises gesteigert sein. Alternativ oder zusätzlich kann auch ein Schwingkreis mit einer grundsätzlich genaueren Arbeitsweise verwendet werden, etwa ein Schwingquarz oder ein Keramikresonator.
-
Der erste Schwingkreis 110 wird von einem ersten Treiber 145 innerhalb des integrierten Schaltkreises 105 und der zweite Schwingkreis 115 von einem zweiten Treiber 150 innerhalb des integrierten Schaltkreises 105 angesteuert. Der erste Treiber 145 stellt ein erstes Taktsignal mit der Frequenz f1 des ersten Schwingkreises 110 an einen ersten Zähler 155 und der zweite Treiber 150 ein zweites Taktsignal mit der Frequenz f2 des zweiten Schwingkreises 115 an einen zweiten Zähler 160 bereit. Der erste Zähler 155 teilt das erste Taktsignal durch einen voreinstellbaren Divisor N und stellt das Resultat als zeitabhängiges Signal an einem ersten Ausgang 165 außerhalb des integrierten Schaltkreises 105 bereit. In entsprechender Weise teilt der zweite Zähler 160 das vom zweiten Treiber 150 bereitgestellte zweite Taktsignal durch einen anderen vorbestimmten Divisor und stellt das Resultat als zeitabhängiges Signal an einem zweiten Ausgang 170 außerhalb des integrierten Schaltkreises 105 bereit.
-
Einer oder beide der Schwingkreise 110 und 115 können ganz oder teilweise vom integrierten Schaltkreis 105 umfasst sein.
-
Ferner umfasst der integrierte Schaltkreis 105 eine Steuereinrichtung 175 zur Steuerung der Treiber 145 und 150, sowie der Zähler 155 und 160. Die Steuereinrichtung 175 ist ferner mit einem externen Eingang 180 verbunden. Die Steuereinrichtung 175 kann als fest verdrahtete Logik implementiert oder durch einen Mikrocomputer gebildet sein, auf dem ein entsprechendes Steuerprogramm abläuft.
-
Nicht dargestellt sind weitere Schnittstellen des Zeitgebers 100, über die beispielsweise ein externer Mikrocomputer in die Abläufe des Zeitgebers 100 eingreifen und somit Diagnose- und Zusatzfunktionen auslösen kann.
-
Im Betrieb des Zeitgebers 100 steuert der erste Treiber 145 den ersten Schwingkreis 110 permanent an, so dass dieser oszilliert und das am Ausgang des ersten Treibers 145 bereitgestellte erste Taktsignal permanent vorliegt. Der erste Zähler 155 wird von der Steuereinrichtung 175 auf einen vorbestimmten Zählerstand gesetzt, den er mit der Frequenz des ersten Taktsignals abwärts zählt. Ist der Zählerstand 0 erreicht, so invertiert der erste Zähler 155 den Zustand des ersten Ausgangs 165 von logisch 1 auf logisch 0 oder umgekehrt. Gleichzeitig wird der erste Zähler 155 wieder auf den vorbestimmten Wert gesetzt, entweder aus einem internen Halteregister, oder durch die Steuereinrichtung 175. Ein am ersten Ausgang 165 bereitgestelltes zeitabhängiges Signal hat somit eine Frequenz, die der Taktfrequenz des ersten Taktsignals am ersten Treiber 145, geteilt durch den vorbestimmten Wert, entspricht.
-
In periodischen Zeitabständen, beispielsweise nach einer vorbestimmten Anzahl von Wechseln des logischen Zustandes des ersten Ausgangs 165, initiiert die Steuereinrichtung 175 eine Kalibrierungsphase.
-
Während der Kalibrierungsphase aktiviert die Steuereinrichtung 175 den zweiten Treiber 150 und dieser den zweiten Schwingkreis 115. Zur Bestimmung eines neuen Divisors N wird wie folgt vorgegangen.
-
Der erste Zähler
155 teilt die vom ersten Schwingkreis
110 erzeugte Frequenz f
1 durch den Divisor N, so dass am ersten Ausgang
165 die vorbestimmte Taktfrequenz f
x anliegt. Damit gilt allgemein:
-
Während einer vorbestimmten Anzahl Q Taktzyklen des ersten Schwingkreises 110 werden Z Taktzyklen des zweiten Schwingkreises 115 im zweiten Zähler 160 gezählt: Z = f1·Q· 1 / f₂ (Gleichung 3)
-
Aus Gleichung 3 folgt:
f1 = Zf₂ / Q. (Gleichung 4) Gleichung 4 eingesetzt in Gleichung 2 liefert:
-
Somit kann der neue Divisor N bestimmt werden, ohne weitere Annahmen über die erste Taktfrequenz f1 treffen zu müssen.
-
In einem Beispiel soll folgendes gelten:
fx | 1 Hz |
f2 | 40 kHz |
f1 | 32 kHz (Sollwert) |
Q | 40000 |
-
Weist die Frequenz f1 keinen Fehler auf, so gilt Gleichung 1 und N = 32000. Liegt f1 jedoch um 10% zu niedrig, also bei 28800 Hz, so liegt fx fälschlicherweise bei 0,9 Hz. Während der Kalibrierung wird Z zu 28800 bestimmt. Nach Gleichung 5 wird N ebenfalls zu 28800 bestimmt und der erste Zähler 155 mit diesem Wert geladen, so dass fx nachfolgend wieder bei 1 Hz liegt, obwohl f1 weiter um 10% zu niedrig ist. Diese Kalibrierung erfolgt periodisch alle 59 Sekunden für 1 Sekunde (Q·f2 = 1 Hz).
-
Die Wahl der Frequenzen f1 und f2 im Bereich von 32000 bei einer bereitzustellenden Taktfrequenz fx von 1 Hz hat den Vorteil, dass N bei einer fehlerfreien Taktfrequenz f1 bei 32000 liegt, was in etwa der Hälfte des mit einem 16 Bit-Register darstellbaren Zahlenbereichs liegt. Der erste Zähler 155 kann also ein 16 Bit-Zähler sein, wobei ausreichend Reserven für Divisoren N bei einer nicht fehlerfreien Taktfrequenz f1 von beispielsweise +/–20% verbleiben.
-
Geht man davon aus, dass ein Stromverbrauch des Zeitgebers 100 während der Kalibrierungsphase 10-mal so hoch ist wie der Stromverbrauch außerhalb der Kalibrierungsphase, wenn der zweite Treiber 150 und der zweite Schwingkreis 115 deaktiviert sind, und geht man weiter davon aus, dass alle 59 s eine Kalibrierungsphase von 1 s durchgeführt wird, so beträgt der Stromverbrauch des Zeitgebers im Mittel das 69/60-Fache des Stromverbrauchs, wenn der zweite Treiber 150 und der zweite Schwingkreis 115 deaktiviert sind. Dies entspricht einer Steigerung des Stromverbrauchs um lediglich 15%.
-
2 zeigt ein Ablaufdiagramm eines Verfahrens 200 zum Bereitstellen eines zeitabhängigen Signals mittels des Zeitgebers 100 aus 1.
-
In einem Schritt 205 befindet sich das Verfahren 200 im Startzustand. Im Schritt 210 wird das erste Taktsignal mittels des ersten Teilers 155 geteilt und anschließend in einem Schritt 215 am ersten Ausgang 165 bereitgestellt.
-
Anschließend wird in einem Schritt 220 bestimmt, ob eine Kalibrierungsphase eingeleitet werden soll. Ist dies nicht der Fall, so fährt das Verfahren 200 mit den Schritten 210 und 215 fort. Andernfalls werden in einem Schritt 225 der zweite Treiber 150 und der zweite Schwingkreis 115 aktiviert und in einem Schritt 230 die Taktzyklen des ersten Taktsignals und des zweiten Taktsignals gezählt. Der Schritt 230 endet, wenn eine vorbestimmte Zeitdauer der Aktivierungsphase abgelaufen ist.
-
Anschließend wird in einem Schritt 235 überprüft, ob am Eingang 180 eine Anforderung anliegt, den zweiten Treiber 150 und den zweiten Schwingkreis 115 permanent zu betreiben. Ist dies nicht der Fall, so werden in einem Schritt 240 der zweite Treiber 150 und der zweite Schwingkreis 115 deaktiviert. Anschließend oder wenn die oben beschriebene Anforderung vorliegt, werden in einem Schritt 245 die bestehenden Anzahlen von Taktzyklen des ersten und des zweiten Taktsignals miteinander verglichen. Auf deren Basis wird in einem nachfolgenden Schritt 250 der neue vorbestimmte Zählerstand für den ersten Zähler 155 bestimmt, wie oben mit Bezug auf 1 erläutert ist.
-
In einem anschließenden Schritt 255 wird der erste Zähler 155 auf den bestimmten Zählerstand gesetzt und das Verfahren 200 beginnt von Neuem.
-
Zu einem beliebigen Zeitpunkt kann in einem Schritt 260 bestimmt werden, dass eine Anforderung am externen Eingang 180 vorliegt, worauf in einem folgenden Schritt 265 der zweite Treiber 150 und der zweite Schwingkreis 115 aktiviert werden. In der Folge wird in einem Schritt 270 ein zeitabhängiges Signal am zweiten Ausgang 170 bereitgestellt.
-
Die Schritte 260 bis 270 können die Schritte 210 bis 255 des Verfahrens 200 an einer beliebigen Stelle unterbrechen, beeinflussen aber deren zeitliche Abfolge nicht.