-
In vielen Systemen besteht eine fortlaufende Notwendigkeit, mehrere Sensoren für die Überwachung und den Report von Daten zu verwenden. So können zum Beispiel unter anderem Pedalstellungssensoren, Drosselklappenstellungssensoren, Abgassensoren und Luftdrucksensoren dazu verwendet werden, um bei der Überwachung und der Steuerung der Aktivität eines Motors in einem Fahrzeug zu helfen. In der Vergangenheit haben viele dieser Sensoren über separate Busse kommuniziert und haben separate Steuerschaltungen benötigt, um Daten auszutauschen. Die Busse, die für unaufmerksame Mechaniker und Techniker eine Art von Labyrinth bilden, zusammen mit den zugehörigen Steuerschaltungen, erhöhen die Kosten und die Komplexität für den Motorraum des Fahrzeugs.
-
Um Fahrzeuge und andere Arten von Systemen zu rationalisieren, sind Kommunikationsprotokolle entwickelt worden, die es einem oder mehreren Sensoren erlauben, gemäß einem vorher festgelegten Protokoll die Übertragung über eine einzige Leitung auszuführen. Aspekte der vorliegenden Offenbarung sind auf verbesserte Techniken zum Messen von Datenimpulsen in diesen und anderen Kommunikationsprotokollen ausgerichtet. In der Druckschrift
EP 0 813 321 A2 ist ein Verfahren offenbart, bei dem mittels eines Zählers die Zeitdauer eines Synchronisationsimpulses erfasst wird, wobei aus dem reziproken Wert der Zeitdauer des Synchronisationsimpulses eine Taktfrequenzinformation abgeleitet wird, und die Taktfrequenz eines Datenübernahmetaktgenerators entsprechend der abgeleiteten Taktfrequenzinformation angepasst wird.
-
Gemäß der Erfindung wird ein Verfahren und ein Empfänger gemäß den Gegenständen der Ansprüche 1 und 5 zur Verfügung gestellt. Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
-
BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockdiagramm, das ein Kommunikationssystem veranschaulicht, das einen Sender und einen Empfänger in Übereinstimmung mit einigen Ausführungsformen umfasst.
-
2 ist ein Wellenformdiagramm einer Datenübertragungseinheit, die von einem Sender zu einem Empfänger übertragen werden kann.
-
3 ist ein Datenimpuls in Bezug auf ein erwartetes Sender-Tick-Intervall und ein Empfänger-Tick-Fenster.
-
4 ist ein Blockdiagramm, das einen Empfänger in Übereinstimmung mit einigen Ausführungsformen veranschaulicht.
-
5 ist ein Ablaufdiagramm, das ein Verfahren in Übereinstimmung mit einigen Ausführungsformen veranschaulicht.
-
6–10 veranschaulichen ein Anwendungsbeispiel eines Empfängers, wobei 7 und 8 ausführlichere Ansichten dahingehend zeigen, wie der Empfänger eine relativ hohe Baud-Rate implementieren kann, und wobei 9 und 10 ausführlichere Ansichten dahingehend zeigen, wie der Empfänger eine relativ niedrige Baud-Rate implementieren kann.
-
In Übereinstimmung mit einem Aspekt der Erfindung umfasst ein Verfahren die folgenden Schritte:
Messen einer Dauer eines ersten Synchronisierungsimpulses, wobei eine feste, vorher festgelegte Anzahl von Ticks mit einem ersten Zeitabstand über den ersten Synchronisierungsimpuls ungeachtet der Dauer des ersten Synchronisierungsimpulses gleichmäßig beabstandet sind;
Messen einer Anzahl an Ticks während einer Dauer, in der ein auf den Synchronisierungsimpuls folgender erster Datenimpuls nach einer durch eine minimale Anzahl von Ticks festgelegten Dauer, während der der Datenimpuls mindestens in einem vorbestimmten Zustand bleibt, weiter in dem vorbestimmten Zustand bleibt, durch periodisches Inkrementieren eines Tick-Zählwertes eines Tick-Zählers; und Korrelieren des Tick-Zählwertes mit einem ersten digitalen Wert, der in dem ersten Datenimpuls kodiert ist.
-
In Übereinstimmung mit einem Aspekt der Erfindung umfasst ein Empfänger folgendes:
Mittel zum Messen einer Dauer eines ersten Synchronisierungsimpulses, wobei eine feste, vorher festgelegte Anzahl von Ticks mit einem ersten Zeitabstand über den ersten Synchronisierungsimpuls ungeachtet der Dauer des ersten Synchronisierungsimpulses gleichmäßig beabstandet sind;
Mittel zum Messen einer Anzahl an Ticks während einer Dauer, in der ein auf den Synchronisierungsimpuls folgender erster Datenimpuls nach einer durch eine minimale Anzahl von Ticks festgelegten Dauer, während der der Datenimpuls mindestens in einem vorbestimmten Zustand bleibt, weiter in dem vorbestimmten Zustand bleibt, durch periodisches Inkrementieren eines Tick-Zählwertes eines Tick-Zählers; und
Mittel zum Korrelieren des Tick-Zählwertes mit einem ersten digitalen Wert, der in dem ersten Datenimpuls kodiert ist.
-
Vorteilhafterweise ist der Empfänger dafür ausgelegt, separate Synchronisierungsimpulse zu empfangen, die von unterschiedlicher Dauer sind; und wobei jeder der Synchronisierungsimpulse die feste, vorher festgelegte Anzahl von Ticks aufweist, die über seine Dauer verteilt sind.
-
Vorteilhafterweise ist ein Tick mit einem Empfänger-Tick-Fenster assoziiert, das in etwa um eine erwartete Sender-Tick-Zeit herum zentriert ist.
-
Vorteilhafterweise wird der Tick-Zähler an einem Beginn des Datenimpulses auf einen von Null verschiedenen Wert eingestellt.
-
Vorteilhafterweise umfasst das Datenimpuls-Messelement einen Frequenzgenerator zum Bereitstellen der Tick-Frequenz.
-
In Übereinstimmung mit einem weiteren Aspekt umfasst ein Empfänger Folgendes:
einen Basistaktgenerator, der dafür ausgelegt ist, ein Basistaktsignal bei einem Basistaktintervall bereitzustellen;
ein Synchronisierungsimpuls-Messelement, das dafür ausgelegt ist zu ermitteln, wie viele Basistaktintervalle einer ersten Dauer eines ersten Synchronisierungsimpulses in einer ersten Datenübertragungseinheit entsprechen, wobei eine feste, vorher festgelegte Anzahl von Ticks über den ersten Synchronisierungsimpuls entsprechend einer ersten Tick-Frequenz gleichmäßig verteilt sind;
einen Tick-Frequenz-Generator, der dafür ausgelegt ist, die erste Tick-Frequenz während eines ersten Datenimpulses in der ersten Datenübertragungseinheit zu erzeugen;
einen Tick-Zähler, der dafür ausgelegt ist, einen Tick-Zähler-Wert in der ersten Tick-Frequenz während des gesamten ersten Datenimpulses bzw. durch den gesamten ersten Datenimpuls hindurch zu inkrementieren, wodurch eine Anzahl von Ticks in dem ersten Datenimpuls ermittelt wird.
-
Vorteilhafterweise umfasst der Tick-Frequenz-Generator Folgendes:
einen Akkumulator, der dafür ausgelegt ist, einen Akkumulatorwert um die feste, vorher festgelegte Anzahl von Ticks bei jedem Basistaktintervall während des ersten Datenimpulses zu inkrementieren; und
eine bitweise Vergleichseinrichtung, die dafür ausgelegt ist, den Akkumulatorwert mit einer Anzahl von Taktintervallen in dem ersten Synchronisierungsimpuls zu vergleichen und dadurch ein Tick-Taktsignal mit der ersten Tick-Frequenz bereitzustellen.
-
Vorteilhafterweise:
-
- ist das Synchronisierungsimpuls-Messelement des Weiteren dafür ausgelegt zu ermitteln, wie viele Basistaktzyklen einer zweiten Dauer eines zweiten Synchronisierungsimpulses in einer zweiten Datenübertragungseinheit entsprechen;
- unterscheidet sich die zweite Dauer von der ersten Dauer, und die feste, vorher festgelegte Anzahl von Ticks ist gleichmäßig über den zweiten Synchronisierungsimpuls entsprechend einer zweiten Tick-Frequenz verteilt, die sich von der ersten Tick-Frequenz unterscheidet.
-
Vorteilhafterweise:
-
- ist der Tick-Frequenz-Generator des Weiteren dafür ausgelegt, die zweite Tick-Frequenz während eines zweiten Datenimpulses in der zweiten Datenübertragungseinheit zu erzeugen; und
- ist der Tick-Zähler des Weiteren dafür ausgelegt, den Tick-Zähler-Wert in der zweiten Tick-Frequenz während des gesamten zweiten Datenimpulses bzw. durch den gesamten zweiten Datenimpuls hindurch zu inkrementieren, wodurch eine Anzahl von Ticks in dem zweiten Datenimpuls ermittelt wird.
-
Vorteilhafterweise umfasst der Empfänger des Weiteren Folgendes:
einen Dekodierer, der dafür ausgelegt ist, die Anzahl von Ticks in den ersten und zweiten Datenimpulsen mit ersten und zweiten Mehrbit-Datenwerten zu korrelieren, die jeweils in den ersten und zweiten Datenimpulsen kodiert sind.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Der beanspruchte Gegenstand der Erfindung wird nun unter Bezugnahme auf die Zeichnungen beschrieben werden, wobei gleiche Bezugszeichen verwendet werden, um sich durchwegs auf die gleichen Elemente zu beziehen. In der folgenden Beschreibung sind zum Zwecke der Erläuterung zahlreiche spezifische Einzelheiten dargelegt, um ein vollständiges Verständnis des beanspruchten Gegenstands bereitzustellen. Es kann aber offensichtlich sein, dass der beanspruchte Gegenstand auch ohne diese spezifischen Einzelheiten verwirklicht werden kann. So kann die Erfindung zum Beispiel, obwohl die Ausführungsformen unten mit Bezug auf das Kommunikationsprotokoll „Single-Edge-Nibble Transmission (SENT) Protokoll” beschrieben sind, auch Anwendung in anderen Kommunikationsprotokollen finden.
-
In früheren SENT-Kommunikationssystemen haben Empfänger Datenimpulsdauern durch das Durchführen einer Überabtastung ermittelt. Beim Überabtasten misst ein Empfänger eine Spannungsgröße eines Datenimpulses an einer Vielzahl von Punkten in dem Datenimpuls in rascher Folge und ordnet dann diese Spannungsmessungen in Tabellenform an, um die Form und die Dauer des Datenimpulses zu ermitteln. Dies erfordert einen beträchtlichen Betrag an Datenverarbeitung. Für einen Empfänger, der hofft, dass er auf eine Sender-Anfrage so schnell wie möglich antworten kann, kann diese exzessive Datenverarbeitung als eine Engstelle in der Kommunikation wirken. Außerdem können die Schaltungen, die für die Implementierung einer solchen Datenverarbeitung benötigt werden, die Kosten für den Empfänger erhöhen.
-
Angesichts dieser Überlegungen haben die Erfinder Empfänger gestaltet, die verbesserte Techniken für die Ermittlung der Dauer eines Datenimpulses verwenden. Insbesondere ermitteln die hier offenbarten Techniken eine Tick-Frequenz, die durch eine Dauer eines Synchronisierungsimpulses bzw. Sync-Impulses definiert ist, der aus einer bekannten Anzahl von Ticks besteht, die gleichmäßig über den Sync-Impuls beabstandet sind. Der Empfänger zählt dann Ticks in einem nachfolgenden Datenimpuls durch das Einstellen eines Tick-Zählers derart, dass dieser während der gesamten Datenimpulsdauer in der Tick-Frequenz inkrementiert wird. Die Anzahl von Ticks in dem Datenimpuls kann so dekodiert werden, dass sie einem bestimmten digitalen Datenwert entspricht. Da diese Techniken zur Messung einer Datenimpulsdauer keine Überabtastung benötigen, verbessert der erfindungsgemäße Empfänger potentiell die Leistung und reduziert die Kosten im Vergleich zu früheren Lösungen.
-
Nun wird Bezug auf 1 genommen, in der ein Kommunikationssystem 100 (z. B. ein SENT-Kommunikationssystem) in Übereinstimmung mit einigen Ausführungsformen zu sehen ist. Das Kommunikationssystem 100 umfasst einen Sender 102 und einen Empfänger 104, die beide jeweils eine Schnittstelle für die Kommunikation über einen Übertragungskanal 106 (z. B. eine einzige Leitung) umfassen. Auf einer Seite des Kanals 106 umfasst der Sender 102 einen Kodierer 108, einen Synchronisierungsimpuls- bzw. Sync-Impuls-Generator 110 und einen Datenimpulsgenerator 112. Auf der anderen Seite des Kanals 106 umfasst der Empfänger 104 einen Impulsdetektor 114, ein Sync-Impuls-Messelement 116 und ein Datenimpuls-Messelement 118. Das Datenimpuls-Messelement 118 ist mit einem Dekodierer 120 gekoppelt und umfasst einen Tick-Frequenz-Generator 122 und einen Tick-Zähler 124.
-
Während der Kommunikation sendet der Sender 102 Daten zu dem Empfänger 104 unter Verwendung eines Kommunikationsprotokolls, das aus Datenübertragungseinheiten besteht, wie dies in 2 gezeigt ist. Eine Datenübertragungseinheit 200 umfasst einen Synchronisierungsimpuls bzw. Sync-Impuls 202, eine Anzahl von Datenimpulsen 204 und einen Impuls 206 einer zyklischen Redundanzprüfung (einen CRC-(Cyclic Redundancy Check)-Impuls 206). Jeder Art von Impuls liegen flexible Zeiteinheiten zugrunde, die als „Ticks” (in den Zeichnungen kleingeschrieben als „ticks”) 208 bezeichnet werden. Der Zeitabstand 210 zwischen aufeinanderfolgenden Ticks, welcher einer Tick-Frequenz entspricht, wird durch eine Dauer des Sync-Impulses 202 festgelegt und wird verwendet, um nachfolgende Daten und CRC-Impulse 204, 206 zu kodieren. Infolgedessen kann, nachdem der Sender 102 die Tick-Frequenz durch das Übertragen des Sync-Impulses mit einer geeigneten Dauer festlegt, der Empfänger 104 die Tick-Frequenz verwenden, um die Anzahl von Ticks 208 in einem Datenimpuls bzw. in Datenimpulsen 204 und in einem CRC-Impuls 206 zu zählen. Da die Anzahl von Ticks 208 in jedem Datenimpuls einem separaten digitalen Wert entspricht, können die Datenimpulse 204 kollektiv verwendet werden, um eine Nachricht von dem Sender 102 zu dem Empfänger 104 zu übertragen.
-
Um diese allgemeine Funktionalität zustande zu bringen, wählt der Sender 102 eine gewünschte Datenübertragungsgeschwindigkeit (oder „Baud”-Rate) vor der Übertragung aus. Der Sync-Impuls-Generator 110 überträgt dann den Sync-Impuls 202 so, dass er eine Dauer aufweist, die indikativ für die ausgewählte Datenübertragungsgeschwindigkeit ist. Da jeder Sync-Impuls eine feste, vorher festgelegte Anzahl von Ticks (z. B. 56 Ticks) verteilt über seine Dauer aufweist, und weil aufeinanderfolgende Ticks um einen sich regelmäßig wiederholenden Zeitabstand 210 für einen gegebenen Sync-Impuls getrennt sind, ist eine Änderung der Dauer des Sync-Impulses 202 ein Hinweis auf eine Änderung der Tick-Frequenz und eine entsprechende Änderung der Datenübertragungsgeschwindigkeit.
-
Nachdem der Sync-Impuls 202 gesendet ist, wodurch die Tick-Frequenz für die Datenübertragungseinheit 200 festgelegt wird, beginnt der Datenimpulsgenerator 112 in dem Sender 112 mit dem Senden von Datenimpulsen 204. Die Dauer jedes Datenimpulses, wie sie durch die Anzahl von Ticks gemessen wird, entspricht einem Mehrbitwert, der darin kodiert ist. So weist zum Beispiel der erste Datenimpuls 204a einen 4-Bit-Nibble-Wert von „8” auf, der darin kodiert ist, und weist der zweite Datenimpuls 204b einen 4-Bit-Nibble-Wert von „3” auf, der darin kodiert ist. Der CRC-Impuls 206 wird in einer ähnlichen Art und Weise übertragen.
-
Um diese übertragene Nachricht korrekt empfangen und dekodieren zu können, empfängt der Empfänger 104 zuerst den Sync-Impuls 202. Nach dem Empfang des Sync-Impulses 202 benachrichtigt der Impulsdetektor 114 das Sync-Impuls-Messelement 116, dass ein Sync-Impuls 202 vorhanden ist. Das Sync-Impuls-Messelement 116 ermittelt die Sync-Impuls-Dauer und programmiert den Tick-Frequenz-Generator 122 derart, dass er regelmäßig in dem Zeitabstand 210 pulsiert, wodurch die Tick-Frequenz reproduziert wird.
-
Wenn die Tick-Frequenz dann reproduziert ist, ist der Empfänger 104 bereit, eine Datenimpulsdauer zu messen. Um dies zu bewerkstelligen, benachrichtigt der Impulsdetektor 114 zuerst einmal das Datenimpuls-Messelement 118, dass ein Datenimpuls vorhanden ist. Das Datenimpuls-Messelement 118 „zählt” dann die Anzahl von Ticks in dem empfangenen Datenimpuls durch das Inkrementieren des Tick-Zählers 124 bei jedem Zeitabstand 210, der von dem Tick-Frequenz-Generator 122 erzeugt wird, solange der Datenimpuls vorhanden ist. Am Ende des Datenimpulses wird die Anzahl von Ticks, die in dem Tick-Zähler 124 gespeichert ist, erfasst. Der Dekodierer 120 dekodiert dann die erfasste Anzahl von Ticks, wodurch es dem Empfänger 104 erlaubt wird, den übertragenen Datenwert wiederherzustellen. Dann wird der Tick-Zähler 124 zurückgesetzt, bevor der nächste Datenimpuls startet, so dass der nächste Datenimpuls auf eine ähnliche Art und Weise dekodiert werden kann.
-
Es sei angemerkt, dass diese Technik zum Messen von Datenimpulsen keine Überabtastung benötigt. Stattdessen wird der Tick-Zähler 124 in dem Empfänger 104 in der Tick-Frequenz inkrementiert, die von dem Tick-Frequenz-Generator 122 bereitgestellt wird. Infolgedessen verbessern die erfindungsgemäßen Techniken potentiell die Leistung und die Kosten, indem sie die Komplexität reduzieren, die an dem Messen der Dauer von Datenimpulsen beteiligt ist.
-
Zur Veranschaulichung einer Kodierungs-/Dekodierungstechnik, die verwendet werden kann, ist 2 derart veranschaulicht worden, dass jeder Datenimpuls (204a, 204b, ...) mit einem niedrigen Impuls (jeweils 212a, 212b, ...) beginnt, der für eine vorher festgelegte Anzahl von Ticks (z. B. 5 Ticks) niedrig gehalten wird. Nach diesem niedrigen Impuls wird jeder Datenimpuls (204a, 204b, ...) für mindestens eine minimale Anzahl von Ticks (z. B. 7 Ticks) hoch gepulst (jeweils 214a, 214b, ...). Infolgedessen weist in dem Beispiel von 2 jeder Datenimpuls eine minimale Länge (z. B. 12 Ticks) auf. Der Rest der Datenimpulsdauer (z. B. 216a, 216b, ...) entspricht dem Datenwert, der in den Datenimpuls kodiert ist. Zum Beispiel bleibt der erste Datenimpuls 204a für acht weitere Ticks 216a hoch, was einem Datenwert von „8” entsprechen könnte (z. B. ausgedrückt als ein 4-Bit-Nibble „1000”); während der zweite Datenimpuls 204b für drei weitere Ticks 216b hoch bleibt, was einem Datenwert von „3” entsprechen könnte (z. B. ausgedrückt als ein 4-Bit-Nibble „0011”), und so weiter.
-
Nun wird Bezug auf 3 genommen, in der eine andere Ausführungsform zu sehen ist, in der eine Dauer eines Datenimpulses 300 gemessen wird. In Übereinstimmung mit dem Beispiel von 2 beginnt dieser Datenimpuls 300 mit einem niedrigen Impuls 302, der für eine vorher festgelegte Anzahl von Ticks (z. B. 5 Ticks) niedrig gehalten wird, und geht dann weiter zu einem hohen Impuls 304, der für mindestens eine minimale Anzahl von Ticks (z. B. 7 Ticks) hoch bleibt. Der restliche eine Tick 306 nach dem hohen Impuls 304 gibt den Datenwert an, der in dem Datenimpuls übertragen wird (z. B. einen Mehrbit-Datenwert von „0001”).
-
Das Bemerkenswerte an 3 ist die Art und Weise, in der der Empfänger Ticks zählt, indem er ein erwartetes Sender-Tick-Intervall 308 und ein Empfänger-Tick-Fenster 310 verwendet, die relativ zueinander versetzt sind. Insbesondere erwartet der Empfänger, dass der Sender Tick-Intervalle ausgehend von einer Zeit 312 misst, die einer Übergangsspannung entspricht, die den Beginn des Datenimpulses 300 markiert. Im Gegensatz dazu inkrementiert der Empfänger seinen Tick-Zähler (z. B. den Tick-Zähler 124 in 1) etwa auf halbem Wege zwischen den erwarteten Sender-Tick-Intervallen 308 entsprechend dem Empfänger-Tick-Fenster 310. Dies ist vorteilhaft dahingehend, dass dies dem Empfänger bessere Spielräume bereitstellt, als wenn die Empfänger-Tick-Fenster 310 so ausgerichtet wären, dass sie direkt den entsprechenden Sender-Tick-Intervallen 308 entsprechen würden. So wird zum Beispiel, selbst wenn der Sender eine fallende Flanke 314 ein bisschen früher oder ein bisschen später überträgt, als dies der Empfänger in dem erwarteten Sender-Tick-Fenster 308 erwartet, der Empfänger einen Wert von „13” Ticks für die Dauer des Datenimpulses 300 immer noch zählen, da das Empfänger-Tick-Fenster 310 um das erwartete Sender-Tick-Intervall „13” herum zentriert ist.
-
4 zeigt eine speziellere Ausführungsform eines Empfängers 400, die ein Sync-Impuls-Messelement 402 umfasst, das aus einem Basistaktgenerator 404, einem Sync-Impuls-Messungszähler 406 und einem Sync-Zählregister 408 besteht. Der Empfänger 400 umfasst auch ein Datenimpuls-Messelement 410, das einen Tick-Frequenz-Generator 412, einen Tick-Zähler 414 und ein Datenregister 415 umfasst. Der Tick-Frequenz-Generator 412 umfasst einen Akkumulator 418, der mit dem Basistaktgenerator 404 gekoppelt ist, und ein bitweises Vergleichselement 420, das mit dem Sync-Zählregister 408 gekoppelt ist. Ein Controller 422, der einen Flankendetektor 424 (z. B. einen Detektor für fallende Flanken) umfasst, ist ebenfalls funktionsfähig gekoppelt, wie gezeigt ist.
-
Wenn ein Sync-Impuls empfangen wird, benachrichtigt der Flankendetektor 424 über den Controller 442 das Sync-Impuls-Messelement. Der Sync-Impuls-Messungszähler 406 wird dann bei jedem Impuls eines Basistaktsignals inkrementiert, das von einem Basistaktgenerator während der gesamten Dauer des Sync-Impulses hindurch erzeugt wird. An dem Ende des Sync-Impulses erfasst das Sync-Zählregister 408 die Anzahl von Basistaktintervallen in dem Sync-Impuls. Wenn zum Beispiel der Basistakt bei 16 MHz läuft und der Sync-Impuls eine Dauer von 168 μs aufweist, dann wird das Sync-Zählregister einen Wert von 2688 erfassen.
-
Wenn ein Datenimpuls empfangen wird, um mit dem Sync-Impuls assoziiert zu werden, dann benachrichtigt der Flankendetektor 424 über den Controller 422 das Datenimpuls-Messelement 410. Der Akkumulator wird an dem Beginn des Datenimpulses auf einen anfänglichen Wert voreingestellt und wird dann um die Anzahl von Ticks (N), die über einen Sync-Impuls verteilt sind, bei jedem Impuls eines Basistaktes durch die gesamte Dauer des Datenimpulses hindurch inkrementiert. Wenn der Basistakt zum Beispiel bei 16 MHz läuft und ein Datenimpuls eine Dauer von 36 μs aufweist, dann würde der Akkumulator bei jeder ansteigenden Flanke des Basistakts um 56 inkrementiert werden (unter der Annahme, dass 56 Ticks über den Sync-Impuls verteilt sind).
-
Auf diese Weise ändert die bitweise Vergleichseinrichtung dann, wenn der Akkumulatorwert den Wert erreicht, der in dem Sync-Zählregister gespeichert ist (hier 2688), ihren Ausgabezustand, wodurch der Beginn des nächsten Tick-Intervalls signalisiert wird. Infolgedessen bildet die Ausgabe der bitweisen Vergleichseinrichtung 420 eine Art von Tick-Takt.
-
Solange ein Datenimpuls vorhanden ist, wird der Tick-Zähler 414 bei jeder ansteigenden Flanke des Tick-Takts (d. h. in der Tick-Frequenz) inkrementiert. An dem Ende des Datenimpulses sendet der Controller 422 ein Signal an das Datenregister 416, um den momentanen Wert in dem Tick-Zähler 41 zu erfassen. Auf diese Weise erfasst das Datenregister 416 die Anzahl von Ticks in einem gegebenen Datenimpuls. Der Dekodierer 426 kann dann die Anzahl von Ticks in dem Datenimpuls dekodieren, um den Mehrbit-Datenwert abzurufen, der darin kodiert ist.
-
In einigen Ausführungsformen wird der Akkumulator 418 an dem Beginn jedes Datenimpulses auf die Hälfe der Anzahl von Basistakten in dem Sync-Impuls eingestellt. Wenn man zum Beispiel annimmt, dass der Sync-Impuls-Messungszähler einen Wert von 2688 speichert, dann kann der Akkumulator am Beginn des ersten Datenimpulses auf 1344 voreingestellt werden. Dies bewirkt, dass der Tick-Zähler etwa auf halbem Wege zwischen erwarteten Sender-Tick-Intervallen inkrementiert wird, wie oben in 3 gezeigt ist.
-
5 zeigt ein Verfahren 500 in Übereinstimmung mit einigen Ausführungsformen. Obwohl dieses Verfahren unten als eine Reihe von Aktionen oder Ereignissen veranschaulicht und beschrieben ist, ist die vorliegende Offenbarung nicht durch die veranschaulichte Reihenfolge solcher Aktionen oder Ereignisse beschränkt. Das Gleiche gilt für andere hierin offenbarte Verfahren. Zum Beispiel können einige Aktionen in anderen Reihenfolgen und/oder gleichzeitig mit anderen Aktionen oder Ereignissen abgesehen von denjenigen, die hierin veranschaulicht und/oder beschrieben sind, stattfinden. Außerdem werden nicht alle veranschaulichten Aktionen benötigt, und die Wellenformen sind lediglich veranschaulichend, und andere Wellenformen können beträchtlich von denjenigen, die veranschaulicht sind, abweichen. Außerdem kann eine oder können mehrere der Aktionen, die hierin beschrieben sind, in einer oder mehreren separaten Aktionen oder Phasen ausgeführt werden.
-
Das Verfahren startet bei 502, wenn das Verfahren den Beginn des Sync-Impulses erfasst, der mit einer Datenübertragungseinheit assoziiert ist. In einigen Ausführungsformen kann der Beginn des Sync-Impulses durch eine fallende Flanke einer Wellenform markiert sein, obwohl dieser in anderen Ausführungsformen auch durch eine ansteigende Flanke einer Wellenform markiert sein könnte.
-
Bei 504 misst das Verfahren eine Dauer des Sync-Impulses, wobei eine feste, vorher festgelegte Anzahl von Ticks mit einem Zeitabstand gleichmäßig über den Sync-Impuls beabstandet sind. So können in einigen Ausführungsformen zum Beispiel 56 Ticks über jeden Sync-Impuls verteilt sein. Aber es könnten in anderen Ausführungsformen auch mehr als 56 Ticks oder weniger als 56 Ticks über jeden Sync-Impuls verteilt sein.
-
Bei 506 wird ein Datenimpuls für die Datenübertragungseinheit erfasst. Der Beginn der Dateneinheit kann durch eine fallende Flanke einer Wellenform markiert sein, obwohl dieser in anderen Ausführungsformen auch durch eine ansteigende Flanke einer Wellenform markiert sein könnte.
-
Bei 508 misst das Verfahren eine Dauer des Datenimpulses durch das periodische Inkrementieren eines Tick-Zählwertes bei dem ersten Zeitabstand während der gesamten Dauer des ersten Datenimpulses.
-
Bei 510 korreliert das Verfahren den Tick-Zählwert an einem Ende des Datenimpulses mit einem digitalen Mehrbitwert, der in dem Datenimpuls kodiert ist.
-
Bei 512 ermittelt das Verfahren, ob ein anderer Datenimpuls in der Datenübertragungseinheit erfasst wird. Falls dem so ist („JA” bei 512), dann kehrt das Verfahren zu 506–510 zurück und misst die Dauer des anderen Impulses unter Verwendung des Zeitabstands aus dem Sync-Impuls in 504, und dekodiert dann den entsprechenden Tick-Zählwert, um zu einem digitalen Mehrbitwert für den anderen Impuls zu gelangen.
-
Wenn kein anderer Datenimpuls in der Datenübertragungseinheit erfasst wird (”NEIN” bei 512), dann geht das Verfahren weiter zu 514, wo es feststellt, ob ein anderer Sync-Impuls für eine andere Datenübertragungseinheit erfasst wird. Wenn ein anderer Sync-Impuls erfasst wird, kehrt das Verfahren zu 504 zurück und misst die Dauer des Sync-Impulses. Ein oder mehrere Datenimpuls(e) für die andere Datenübertragungseinheit kann bzw. können ebenfalls gemessen und dekodiert werden. Im Allgemeinen weist jeder Sync-Impuls eine andere Dauer auf, die einen unterschiedlichen Zeitabstand zwischen Ticks für verschiedene Datenübertragungseinheiten festlegt. Auf diese Weise kann das Verfahren unterschiedliche Datenübertragungsgeschwindigkeiten über die Zeit für verschiedene Datenubertragungseinheiten einrichten.
-
ANWENDUNGSBEISPIEL
-
6 bis 10 veranschaulichen kollektiv ein Anwendungsbeispiel, das eine Art und Weise zeigt, in der ein Sender und ein Empfänger Daten bei einer variablen Baud-Rate austauschen. 6 zeigt einen Überblick, wobei eine erste Datenübertragungseinheit 602 mit einer relativ hohen Baud-Rate übertragen wird und wobei eine zweite Datenübertragungseinheit 604 mit einer relativ niedrigen Baud-Rate übertragen wird. Aufgrund von räumlichen Begrenzungen ist die zweite Datenübertragungseinheit 604 nur als ein Sync-Impuls veranschaulicht, aber es wird klar sein, dass die zweite Datenübertragungseinheit 604 oftmals einen oder mehrere Datenimpulse und einen CRC-Impuls (nicht gezeigt) umfasst. Bemerkenswerterweise setzt in der ersten Datenübertragungseinheit 602 ein relativ kurzer Sync-Impuls einen relativ kurzen Zeitabstand zwischen Ticks fest, was darauf abzielt, eine höhere Datenübertragungsgeschwindigkeit zu fördern. Im Gegensatz dazu stellt in der zweiten Datenübertragungseinheit 604 ein relativ langer Sync-Impuls eine relativ lange Zeit zwischen Ticks ein, was darauf abzielt, eine relativ niedrige Datenübertragungsgeschwindigkeit zu fördern. In diesem Anwendungsbeispiel wird angenommen, dass der Empfänger einen Basistakt aufweist, der bei 3,3 MHz arbeitet, und dass sowohl der Sender als auch der Empfänger wissen, dass 56 Ticks über jeden Sync-Impuls verteilt sein müssen. Obwohl verschiedene ungefähre Zahlenwerte hierin bereitgestellt sind, wird es klar sein, dass diese Zahlenwerte lediglich Beispiele sind und nicht dazu verwendet werden sollten, den Schutzumfang der Offenbarung zu beschränken. Außerdem wird klar sein, dass, obwohl nur zwei Datenübertragungsgeschwindigkeiten gezeigt sind, ein Sender und ein Empfänger adaptiv zwischen einem Kontinuum von Datenübertragungsgeschwindigkeiten wechseln können, um eine gewünschte Funktionalität zu erzielen.
-
Nun wird Bezug auf 7 und 8 genommen, in denen eine ausführlichere Ansicht der ersten Datenübertragungseinheit 602 von 6 zu sehen ist. An dem Beginn der ersten Datenübertragungseinheit empfängt der Empfänger einen Sync-Impuls, der eine Dauer von 168 μs aufweist. Zur Bestimmung dieser Sync-Impuls-Dauer zählt der Empfänger die Anzahl von Basistakten in dem Sync-Impuls. In diesem Beispiel zählt der Empfänger 560 Perioden des Basistaktes, was unter Verwendung eines Sync-Impuls-Zählers (z. B. wie in 4 gezeigt) bewerkstelligt werden kann.
-
8 zeigt eine ausführlichere Ansicht dahingehend, wie der Empfänger einen Datenimpuls (z. B. Nibble 1 von 7) dekodieren kann. Wie gezeigt ist, speichert ein Sync-Impuls-Zähler 802 die Anzahl von Basistaktzyklen in dem Sync-Impuls (560 in diesem Beispiel). Bei dem Start des Datenimpulses wird der Akkumulator 804 auf eine Hälfe des Sync-Impuls-Zählwertes (280 in diesem Beispiel) vorab eingestellt. Dann wird der Akkumulatorwert bei jedem Impuls des Basistakts 806 um 56 erhöht, welches die Anzahl von Ticks pro Sync-Impuls ist.
-
Ein bitweiser Vergleich zwischen dem gespeicherten Sync-Impuls-Zählerwert 802 (ein Wert von 560 in diesem Beispiel) und dem Akkumulator-Ausgabewert 804 stellt einen Tick-Takt 808 bereit, der eine Tick-Frequenz aufweist. Der Tick-Zähler 810 wird entsprechend der Tick-Frequenz inkrementiert, so dass die Anzahl von Ticks in dem Datenimpuls exakt bestimmt wird (hier 12 Ticks in Nibble 1). Die Anzahl von Ticks in dem Datenimpuls kann dann dekodiert werden, um in diesem Beispiel einen Nibble-Wert von „0” zu erhalten. Nachdem der Nibble-Wert dekodiert ist, kann der Tick-Zähler an dem Beginn des nächsten Datenimpulses auf 280 zurückgesetzt werden.
-
9 und 10 zeigen eine ausführlichere Ansicht der zweiten Datenübertragungseinheit 604 von 6. In 8 kann man sehen, dass für die zweite Datenübertragungseinheit 604 der Empfänger einen Sync-Impuls empfängt, der eine Dauer von 554,4 μs aufweist. Der Empfänger zählt wieder die Anzahl von Basistakten in dem Sync-Impuls. In diesem Beispiel zählt der Empfänger 1848 Perioden des Basistaktes. Bemerkenswerterweise bedeutet diese längere Dauer, dass Ticks weiter voneinander entfernt verteilt sind, was darauf abzielt, die Datenübertragungsgeschwindigkeit zu verringern.
-
10 zeigt eine ausführlichere Ansicht dahingehend, wie der Sync-Impuls-Zähler 802, der Akkumulator 804, der Basistakt 806, die bitweise Vergleichseinrichtung 808 und der Tick-Zähler 810 dabei helfen können, Datenimpulse für die zweite Datenübertragungseinheit 604, die in 9 gezeigt ist, zu dekodieren. Wie gezeigt ist, kann der Akkumulator 804 an dem Beginn des ersten Datenimpulses auf die Hälfte des Sync-Impuls-Zählwertes (hier 924) eingestellt werden. Dann wird der Akkumulatorwert bei jedem Basistaktimpuls um 56 erhöht, welches die Anzahl von Ticks pro Sync-Impuls ist. Ein bitweiser Vergleich zwischen dem Akkumulator-Ausgabewert und dem gespeicherten Sync-Impuls-Zählerwert stellt einen Tick-Takt bereit, der eine Tick-Frequenz aufweist. In diesem Fall ist die Tick-Frequenz niedriger als in 7 oder 8, wodurch eine relativ niedrige Datenübertragungsgeschwindigkeit reflektiert wird. Der Tick-Zähler wird entsprechend der Tick-Frequenz derart inkrementiert, dass die Anzahl von Ticks in dem Datenimpuls exakt bestimmt und dekodiert wird.
-
Obwohl die Offenbarung im Hinblick auf eine oder mehrere Implementierungen gezeigt und beschrieben worden ist, werden anderen Fachleuten auf dem Gebiet beim Lesen und Begreifen dieser Spezifikation und der angehängten Zeichnungen äquivalente Abänderungen und Modifikationen in den Sinn kommen. Die Offenbarung umfasst alle solche Modifikationen und Abänderungen und ist lediglich durch den Schutzumfang der nachfolgenden Ansprüche beschränkt. Mit besonderem Hinblick auf die verschiedenen Funktionen, die von den oben beschriebenen Komponenten (z. B. Elementen und/oder Ressourcen) durchgeführt werden, ist es so gedacht, dass die Begriffe, die verwendet werden, um solche Komponenten zu beschreiben, außer es ist anderweitig angegeben, jeder beliebigen Komponente entsprechen sollen, die die spezifizierte Funktion der beschriebenen Komponente durchführt (z. B. die funktionell äquivalent ist), selbst wenn sie nicht strukturell äquivalent zu der offenbarten Struktur ist, die die Funktion in den hierin veranschaulichten exemplarischen Implementierungen der Offenbarung durchführt. Außerdem kann, obwohl ein bestimmtes Merkmal der Offenbarung eventuell in Bezug auf nur eine von mehreren Implementierungen offenbart worden ist, ein solches Merkmal mit einem oder mehreren anderen Merkmalen der anderen Implementierungen je nach Wunsch und wie dies vorteilhaft für jede gegebene oder spezielle Anwendung ist, kombiniert werden. Außerdem sollen die Artikel „ein” und „eine”, wie sie in dieser Anmeldung und in den angehängten Ansprüchen verwendet werden, so interpretiert werden, dass sie „ein/eine oder mehrere” bedeuten.
-
Des Weiteren sollen in dem Ausmaß, wie die Begriffe ”beinhalten”, ”aufweisen”, ”besitzen”, ”mit” oder Varianten davon entweder in der ausführlichen Beschreibung oder in den Ansprüchen verwendet werden, diese Begriffe als einschließend in einer Art und Weise ähnlich dem Begriff ”umfassen” betrachtet werden.