-
Hintergrund
der Erfindung
-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich auf das Gebiet verteilter Systeme.
Insbesondere bezieht sich diese Erfindung auf ein Synchronisieren
von Takten über
Teilnetze eines verteilten Systems hinweg.
-
Hintergrundtechnik
-
Verteilte
Systeme umfassen häufig
eine Anordnung von Knoten, die untereinander über ein Kommunikationsnetzwerk
verbunden sind. Derartige verteilte Systeme umfassen verteilte Steuersysteme und
verteilte Computersysteme, um nur einige Beispiele zu nennen. Ein
Kommunikationsnetzwerk für ein
derartiges System könnte
mit einem Protokoll auf Paketbasis, wie z. B. Ethernet, oder einem
oder mehreren einer Vielzahl von Protokollen auf Paketbasis, die
für Anwendungen
eines verteilten Steuersystems angepasst sind, implementiert sein.
-
Einige
oder alle der Knoten eines verteilten Systems könnten einen lokalen Takt umfassen,
der eine lokale Zeit für
einen Knoten beibehält.
Es ist häufig
wünschenswert,
einen gemeinsamen Zeitsinn in einem verteilten System beizubehalten,
indem die lokalen Zeiten, die in den lokalen Takten seiner Knoten
beibehalten werden, synchronisiert werden.
-
Ein
früheres
Protokoll zum Synchronisieren der lokalen Takte eines verteilten
Systems ist das Network Time Protocol (NTP oder Netzwerkzeitprotokoll). Üblicherweise
erzeugt ein Knoten, der gemäß dem NTP
arbeitet, periodisch ein Paket, das einen Zeitwert beinhaltet, der
aus seinem loka len Takt erhalten wird, und überträgt das Paket über das
Kommunikationsnetzwerk. Knoten, auf denen das NTP läuft, sammeln üblicherweise
diese Pakete von dem Kommunikationsnetzwerk und führen eine
statistische Analyse der erhaltenen Zeitdaten durch und stellen
ansprechend darauf die Zeitwerte in ihren lokalen Takten ein.
-
Ein
relativ großes
Kommunikationsnetzwerk umfasst üblicherweise
Kommunikationsvorrichtungen, wie z. B. Router, die eine Kommunikation
unter großen
Anzahlen von Knoten ermöglichen.
Ein typischer Router könnte
als eine Speicher- und Weiterleitvorrichtung gekennzeichnet sein,
da er eingehende Pakete speichert und Informationen, die den eingehenden
Paketen zugeordnet sind, verarbeitet, bevor er die Pakete an ihre
Ziele weiterleitet. Abschnitte eines Kommunikationsnetzwerks, die
durch einen Router getrennt sind, könnten als Teilnetze des Kommunikationsnetzwerks
bezeichnet werden. Ein Kommunikationsnetzwerk könnte eine beliebige Anzahl von
Routern und Teilnetzen umfassen.
-
Üblicherweise
bewirken die Speicher- und die Weiterleitfunktion eines Routers
eine relativ große
Variation bei der Übertragungszeit
von Paketen zwischen Knoten, die sich auf unterschiedlichen Teilnetzen
befinden. Die Variation einer Paketübertragungszeit kann als Jitter
bezeichnet werden. Leider schränkt
die relativ große
Menge an Jitter, die durch Speicher- und Weiterleitvorrichtungen,
wie z. B. Router, eingeführt
wird, die Genauigkeit einer Zeitsynchronisation über Teilnetze, die frühere Mechanismen,
wie z. B. NTP, verwenden, stark ein.
-
Die
EP 1047213 A2 beschreibt
ein Netzwerksynchronisationssystem, in dem eine Mehrzahl von IEEE
1394-Bussen durch Brücken
in einer baumartigen Konfiguration verbunden ist, um ein einzelnes Netzwerk
zu bilden, und in dem jede der Brücken zwei Portale A bis H aufweist,
die jeweils mit benachbarten Bussen verbunden sind. Die Brücken sind
derart vorkonfiguriert, dass eines der Portale als ein Netzwerk zyklus-Master
ausgewählt
ist, der als eine Referenztaktquelle des gesamten Netzwerks fungiert.
Dann wird in jedem Bus, mit dem der Netzwerkzyklus-Master nicht
verbunden ist, der die kleinste Knotensprungzahl zu dem Netzwerkzyklus-Master aufweist,
als ein Lokal-Zyklus-Master ausgewählt. Die anderen Portale, die
nicht ausgewählt
sind, werden alle als ein abhängiges
Portal eingestellt, wobei der Netzwerkzyklus-Master und die abhängigen Portale
auf der gleichen Brücke
zur Synchronisation ein Synchronisationssignal an die anderen Portale übertragen.
-
Die
EP 0991216 A2 beschreibt
eine Organisation einer Zeitsynchronisation in einem verteilten System.
Ein verteiltes System umfasst ein Teilnetz mit einem Satz von Knoten,
die mit einer Kommunikationsverbindung gekoppelt sind, und ein weiteres Teilnetz,
das weitere Knoten umfasst, die mit einer zweiten Kommunikationsverbindung
gekoppelt sind. Ein Grenzknoten ist zwischen die Kommunikationsverbindungen
geschaltet. Eine erste Seite des Grenzknotens entspricht dem Teilnetz
der ersten Kommunikationsverbindung und eine zweite Seite entspricht
dem Teilnetz der zweiten Kommunikationsverbindung. Der Grenzknoten
umfasst einen Grenztakt, der die Rolle eines Master-Taktes auf der ersten
oder der zweiten Seite des Grenzknotens oder auf sowohl der ersten
als auch der zweiten Seite annehmen könnte. Der Grenztakt könnte auch
die Rolle eines Slave-Taktes auf einer beliebigen der ersten oder
der zweiten Seite des Grenzknotens annehmen. Der Grenztakt in dem
Grenzknoten allgemein nimmt höchstens
auf einer seiner Seiten die Rolle eines Slave-Taktes an. Der Grenzknoten nimmt unabhängig an
der Auswahl des besten Master-Taktes auf sowohl seiner ersten als
auch zweiten Seite teil.
-
Die
US 6,032,261 beschreibt
eine weitere Weise einer Synchronisation lokaler Busse.
-
Eine
Aufgabe der vorliegenden Erfindung besteht darin, eine Zeitsynchronisationsbrücke bereitzustellen,
die einen gemeinsamen Zeitsinn über Teilnetze
hinweg mit einer höheren
Qualität
ermöglicht.
-
Diese
Aufgabe wird durch eine Zeitsynchronisationsbrücke gemäß Anspruch 1 oder 2 gelöst.
-
Offenbart
ist ein verteiltes System mit einer Zeitsynchronisationsbrücke zum
Beibehalten eines relativ genauen gemeinsamen Zeitsinns über Teilnetze
hinweg trotz der Verwendung einer Kommunikationsvorrichtung, wie
z. B. eines Routers, die Jitter bei Paketübertragungen über Teilnetze
hinweg bewirkt.
-
Ein
verteiltes System gemäß den vorliegenden
Lehren umfasst einen Satz von Knoten, die über einen Satz von Teilnetzen
kommunizieren. Die Knoten weisen jeweils einen lokalen Takt und
Mechanismen zum Beibehalten einer Zeitsynchronisation unter den
lokalen Takten durch ein Übertragen
von Zeitgebungsdatenpaketen über
die Teilnetze auf. Die Zeitgebungsdatenpakete laufen nicht durch
einen Router. Statt dessen erhält
eine Zeitsynchronisationsbrücke
die Zeitgebungsdatenpakete und koordiniert ansprechend darauf eine
Zeitsynchronisation über
die Teilnetze hinweg.
-
Weitere
Merkmale und Vorteile der vorliegenden Erfindung werden aus der
folgenden detaillierten Beschreibung ersichtlich werden.
-
Kurze Beschreibung
der Zeichnungen
-
Die
vorliegende Erfindung ist unter Bezugnahme auf bestimmte exemplarische
Ausführungsbeispiele
derselben beschrieben und entsprechend wird Bezug auf die Zeichnungen
genommen. Es zeigen:
-
1 ein
verteiltes System gemäß den vorliegenden
Lehren;
-
2 eine
Zeitsynchronisationsbrücke
bei einem Ausführungsbeispiel;
-
3 eine
exemplarische Bestimmung dessen, welches eines Satzes von Synchronisationsmodulen
in einer Zeitsynchronisationsbrücke
der primäre
Takt sein soll;
-
4 eine
exemplarische Implementierung eines Synchronisationsmoduls;
-
5 eine
Zeitsynchronisationsbrücke
bei einem weiteren Ausführungsbeispiel.
-
Detaillierte
Beschreibung
-
1 zeigt
ein verteiltes System 200 gemäß den vorliegenden Lehren.
Das verteilte System 200 umfasst einen Satz von Teilnetzen 50–52.
Das Teilnetz 50 ermöglicht
eine Kommunikation unter einem Satz von Knoten 10–12,
das Teilnetz 51 ermöglicht eine
Kommunikation unter einem Satz von Knoten 20–22 und
das Teilnetz 52 ermöglicht
eine Kommunikation unter einem Satz von Knoten 30–32.
Das verteilte System 200 umfasst einen Router 40,
der eine Kommunikation zwischen den Teilnetzen 50–52 ermöglicht.
Bei einem Ausführungsbeispiel
sind die Teilnetze 50–52 Ethernet-Teilnetze und der
Router 40 ist ein Ethernet-Router.
-
Die
Knoten 10–12 nehmen
an einem Synchronisationsprotokoll zum Beibehalten einer synchronisierten
lokalen Zeit in den Knoten 10–12 teil. Das Synchronisationsprotokoll
umfasst ein Senden und Empfangen von Zeitgebungsdatenpaketen über das
Teilnetz 50. Ähnlich
nehmen die Knoten 20–22 an
dem Synchronisationsprotokoll durch ein Senden und Empfangen von
Zeitgebungsdatenpaketen über das
Teilnetz 51 teil und die Knoten 30–32 nehmen
an dem Synchronisations protokoll durch ein Senden und Empfangen
von Zeitgebungsdatenpaketen über das
Teilnetz 52 teil. Bei einem Ausführungsbeispiel sind die Zeitgebungsdatenpakete
Multicast-Pakete, die
einen Lebenszeit-Indikator aufweisen, der gemäß einem von Ethernet-Standards
eingestellt ist, was verhindert, dass dieselben durch den Router 40 über die
Teilnetze 50–52 gesendet
werden.
-
Das
verteilte System 200 umfasst eine Zeitsynchronisationsbrücke 60,
die eine Zeitsynchronisation über
die Teilnetze 50–52 hinweg
unter Verwendung von Informationen, die in den Zeitgebungsdatenpaketen
von den Knoten 10–12, 20–22 und 30–32 beinhaltet
sind, koordiniert. Die Zeitsynchronisationsbrücke 60 umgeht den
Jitter, der dem Router 40 zugeordnet ist, und liefert einen
relativ genauen gemeinsamen Zeitsinn unter den Knoten 10–12, 20–22 und 30–32.
Die Zeitsynchronisationsbrücke 60 behält eine
interne Zeit bei und umfasst Mechanismen zum Synchronisieren der
internen Zeit auf einen besten Takt, d. h. einen Takt mit hoher
Qualität
oder bevorzugten Takt, in dem verteilten System 200 und
zum Verteilen der internen Zeit an die verbleibenden lokalen Takte
in dem verteilten System 200 durch ein Erzeugen seiner
eigenen Zeitgebungsdatenpakete.
-
2 stellt
die Zeitsynchronisationsbrücke 60 bei
einem Ausführungsbeispiel
dar. Die Zeitsynchronisationsbrücke 60 umfasst
einen Satz von Synchronisationsmodulen 70–72,
die mit den jeweiligen Netzen 50–52 durch einen Satz
entsprechender physischer Schnittstellen 80–82 kommunizieren.
Das Synchronisationsmodul 70 sendet und empfängt Zeitgebungsdatenpakete über das
Teilnetz 50, das Synchronisationsmodul 71 sendet
und empfängt Zeitgebungsdatenpakete über das
Teilnetz 51 und das Synchronisationsmodul 72 sendet
und empfängt Zeitgebungsdatenpakete über das
Teilnetz 52.
-
Bei
diesem Ausführungsbeispiel
umfasst jedes Synchronisationsmodul 70–72 einen Takt, der durch
ein Oszillatorsignal 114 getrieben wird, das durch einen
Oszillator 100 erzeugt wird. Alternativ könnte jedes
Synchronisationsmodul 70–72 seinen eigenen
Oszillator aufweisen.
-
Die
Synchronisationsmodule 70–72 kommunizieren
miteinander über
einen Kommunikationsbus 110. Informationen, die über den
Kommunikationsbus 110 übertragen
werden, ermöglichen
es den Synchronisationsmodulen 70–72 zu bestimmen,
welches als der primäre
Takt innerhalb der Zeitsynchronisationsbrücke 60 fungieren soll,
sowie einen Takt mit bester Qualität oder einen bevorzugten Takt
in dem verteilten System 200 zu bestimmen, auf den alle
verbleibenden Takte synchronisiert werden.
-
Bei
einem Ausführungsbeispiel
schafft der Kommunikationsbus 110 eine TDMA-Kommunikation unter
den Synchronisationsmodulen 70–72 und ein Steuerbus 112 wird
verwendet, um anzuzeigen, welches der Synchronisationsmodule 70–72 zu
einer beliebigen bestimmten Zeit eine Steuerung des Kommunikationsbusses 110 besitzt.
Das Synchronisationsmodul 70–72, das den Steuerbus 112 treibt,
könnte
willkürlich
ausgewählt
werden. Der Kommunikationsbus 110 könnte RS485, eine Token-Ring-Anordnung, sein
oder könnte
als ein gemeinschaftlich verwendeter Speicher implementiert sein,
um einige Beispiele zu nennen.
-
Die
Synchronisationsmodule 70–72 bestimmen kollektiv,
welcher ihrer internen Takte als der primäre Takt der Zeitsynchronisationsbrücke 60 fungieren
soll. Jedes Synchronisationsmodul 70–72 erzeugt ein jeweiliges
Signal mit einem Puls pro Sekunde (1-PPS-Signal) 140–142 aus
seinem internen Takt. Ein Satz von Schaltern 120–122 wird
verwendet, um eines der 1-PPS-Signale 140–142 auszuwählen, um
einen Master- bzw. Hauptzeitpuls 116 für alle der Synchronisationsmodule 70–72 bereitzustellen.
Die internen Takte in allen der Synchronisationsmodule 70–72 synchronisieren
auf den Master-Zeitpuls 116. Die tatsächliche Echtzeit, die dem Master-Zeitpuls 116 zugeordnet
ist, wird über
den Kommunikationsbus 110 kommuniziert.
-
Wenn
z. B. bestimmt wird, dass der interne Takt in dem Synchronisationsmodul 70 der
primäre Takt
sein soll, erzeugt das Synchronisationsmodul 70 ein Steuersignal 90,
um den Schalter 120 zu schließen, und die Synchronisationsmodule 71–72 erzeugen
die Steuersignale 91–92,
um die Schalter 121–122 zu öffnen. Danach überträgt das Synchronisationsmodul 70 während jedes
Master-Zeitpulses 116, der von dem 1-PPS-Signal 140 erhalten
wird, den Vollzeitwert aus seinem internen Takt über den Kommunikationsbus 110.
Die Synchronisationsmodule 71–72 verwenden den
Zeitwert auf dem Kommunikationsbus 110 gemeinsam mit dem
Master-Zeitpuls 116,
um ihre jeweiligen internen Takte zu synchronisieren.
-
3 stellt
eine exemplarische Bestimmung dessen, welches der Synchronisationsmodule 70–72 der
primäre
Takt in der Zeitsynchronisationsbrücke 60 sein soll,
dar. Die Zeitsynchronisationsbrücke 60 empfängt einen
Satz von Zeitgebungsdatenpaketen 190–192 über die
jeweiligen Teilnetze 50–52. Die Zeitgebungsdatenpakete 190–192 könnten von
einem beliebigen der jeweiligen Knoten 10–12, 20–22 und 30–32 ausgehen.
Die Zeitgebungsdatenpakete 190–192 tragen jeweilige
Sätze von
Taktmetadaten 160–162.
-
Die
Taktmetadaten 160–162 liefern
Informationen bezüglich
der Qualität
des Taktes, der dem entsprechenden Zeitgebungsdatenpaket 160–162 zugeordnet
ist. Wenn z. B. der Knoten 10 das Zeitgebungsdatenpaket 190 erzeugt,
zeigen die Taktmetadaten 160 die Qualität des Taktes in dem Knoten 10 an.
Bei einem Ausführungsbeispiel
könnte
die Qualität
eines Taktes durch eine Schicht- bzw. Stratum-Nummer angezeigt werden.
Eine Schicht gleich Eins z. B. könnte
einen Takt anzeigen, der eine Zeit bereitstellt, die von einem GPS-Empfänger erhalten wird,
oder eine Zeit, die von einer Atomuhr erhalten wird, während eine
Schicht von mehr als Eins eine Zeit anzeigen könnte, die von einer weniger
genauen Quelle erhalten wird. Andere Taktmetadaten könnten Taktstatistiken,
wie z. B. Varianz und/oder Quantisierung, anzeigen. Die Taktmetadaten
könnten
Felder umfassen, die es einem Benutzer ermöglichen, den lokalen Takt in
einem bestimmten Knoten als einen bevorzugten Takt zu spezifizieren,
von dem jegliche Zeit in dem verteilten System 200 hergeleitet
werden soll.
-
Die
Synchronisationsmodule 70–72 extrahieren die
Taktmetadaten 160–162 aus
den Zeitgebungsdatenpaketen 190–192 und verteilen
dieselben unter sich selbst über
den Kommunikationsbus 110. Die Zeitsynchronisationsbrücke 60 selbst
umfasst einen Satz von Taktmetadaten, der ähnliche Informationen über die
Qualität
der Zeit, die durch seine Takte erhalten wird, liefert. Unter Verwendung
dieser Informationen bestimmt jedes Synchronisationsmodul 70–72 unabhängig den
primären
Takt für
die Zeitsynchronisationsbrücke 60 unter
Verwendung der gleichen Informationen und der gleichen Kriterien.
Alternativ könnte
ein zentraler Prozessor in der Zeitsynchronisationsbrücke 60 implementiert
sein, um die Bestimmung eines primären Taktes unter Verwendung
der gleichen Informationen durchzuführen. Der ausgewählte primäre Takt
könnte
der Takt in dem Synchronisationsmodul sein, das auf dem gleichen Teilnetz
ist wie der beste Takt.
-
Es
wird z. B. angenommen, dass die Taktmetadaten 160–162 und
die Taktmetadaten für
die Zeitsynchronisationsbrücke 60 anzeigen,
dass der beste Takt den Taktmetadaten 160 zugeordnet ist.
Der interne Takt in dem Synchronisationsmodul 70 wird,
da es auf dem gleichen Teilnetz wie der beste Takt ist, als der
primäre
Takt ausgewählt
und synchronisiert auf den Master-Takt auf dem Teilnetz 50,
von dem das Zeitgebungsdatenpaket 190 ausging. Die Synchronisationsmodule 71–72 synchronisieren
ihre internen Takte auf das Synchronisationsmodul 70 und treiben
die Teilnetze 51–52 als
einen Master-Takt gemäß dem Synchronisationsprotokoll,
indem Zeitgebungsdatenpakete über
die Teilnetze 51–52 ausgegeben
werden. Die Zeitgebungsdatenpakete, die über die Teilnetze 51–52 ausgegeben
werden, umfassen die Taktmetada ten, die dem Master-Takt auf dem
Teilnetz 50 zugeordnet sind.
-
Als
weiteres Beispiel wird angenommen, dass die Taktmetadaten 160–162 und
die Taktmetadaten für
die Zeitsynchronisationsbrücke 60 anzeigen,
dass alle Takte im Wesentlichen die gleiche Qualität aufweisen,
oder dass die Takte in der Zeitsynchronisationsbrücke 60 die
beste Qualität
aufweisen. Eines der Synchronisationsmodule 70–72 ist
als der primäre
Takt ausgewählt,
z. B. das gleiche, das den Steuerbus 112 treibt, und die
verbleibenden der Synchronisationsmodule 70–72 synchronisieren
auf denselben. Die Synchronisationsmodule 70–72 treiben
die Teilnetze 50–52 als
Master-Takt durch ein Ausgeben von Zeitgebungsdatenpaketen.
-
Jeder
Satz der Taktmetadaten 160–162 umfasst einen
Identifizierer (CLOCK-UUID) für
den Takt, der dem entsprechenden Zeitgebungsdatenpaket 190–192 zugeordnet
ist, gemeinsam mit einer Anzeige der Anzahl von Zeitsynchronisationsbrücken, die das
entsprechende Zeitgebungsdatenpaket 190–192 durchlaufen hat.
Die Synchronisationsmodule 70–72 bevorzugen es,
Master-Takte auszuwählen,
deren Zeitgebungsdatenpakete durch die geringste Anzahl von Zeitsynchronisationsbrücken gelaufen
sind, d. h. diese durchquert haben. Die Synchronisationsmodule 70–72 aktualisieren
diese Anzeige, wenn dasselbe Zeitgebungsdatenpakete erzeugt und
die Metadaten für
den ausgewählten
Master-Takt weiterleitet.
-
Jeder
Satz der Taktmetadaten 160–162 umfasst einen
Toridentifizierer (PORT#), der dem Knoten zugeordnet ist, der das
entsprechende Zeitgebungsdatenpaket 190–192 ausgegeben hat.
Jede der Verbindungen zu den Teilnetzen 50–52 auf
der Zeitsynchronisationsbrücke 60 z.
B. besitzt eine Tornummer, die mit den Metadaten in Zeitgebungsdatenpaketen,
die durch die Synchronisationsmodule 70–72 erzeugt werden,
gesendet wird.
-
4 zeigt
eine exemplarische Implementierung des Synchronisationsmoduls 70.
Die Synchronisationsmodule 71–72 könnten in
einer ähnlichen
Weise implementiert sein. Das Synchronisationsmodul 70 umfasst
einen Takt 152, der durch das Oszillatorsignal 114 getrieben
wird, gemeinsam mit einem Zeitstempel-Latch 154, einem
Zeitpaketerkenner 150, einem PPS-Zeitstempel-Latch 155,
einer Taktsteuerung 151 und einem Prozessor 156.
Der Takt 152 stellt das 1-PPS-Signal 140 bereit.
-
Wenn
der Takt 152 ein Slave- bzw. Nebentakt ist, führen der
Zeitpaketerkenner 150 und der Prozessor 156 die
geeigneten Funktionen zum Synchronisieren des Taktes 152 auf
einen Master-Takt durch. Der Zeitpaketerkenner 150 bewirkt,
dass das Zeitstempel-Latch 154 einen Lokalzeitwert von
dem Takt 152 latcht, wenn das Zeitgebungsdatenpaket 190 erfasst
wird. Der Prozessor 156 erhält den gelatchten Zeitwert
von dem Zeitstempel-Latch 154 und erhält ein Nachfolgepaket von dem
Master-Takt über das
Teilnetz 50. Der Prozessor 156 verwendet den gelatchten
Zeitwert und einen Zeitstempel, der in dem Nachfolgepaket beinhaltet
ist, um einen Versatzwert zu berechnen. Der Prozessor 156 stellt
den Versatzwert an die Taktsteuerung 151 bereit, die einen
Nachführwert
erzeugt, der die Zeit in den Takt 152 einstellt.
-
Wenn
der Takt 152 der Master-Takt ist, erzeugen der Zeitpaketerkenner 150 und/oder
der Prozessor 156 Zeitgebungsdatenpakete und Nachfolgepakete
und übertragen
dieselben über
das Teilnetz 50, um lokale Takte auf dem Teilnetz 50 zu
synchronisieren.
-
Der
Prozessor 156 erhält
das Zeitgebungsdatenpaket 190, extrahiert die Taktmetadaten 160 und
kommuniziert dieselben über
den Kommunikationsbus 110 durch eine Busschnittstelle 158.
Wenn der Takt 152 als der primäre Takt ausgewählt ist,
verwendet der Prozessor 156 das Steuersignal 90,
um den Schalter 120 zu schließen, und verteilt einen Zeitwert,
der von dem Takt 152 erhalten wird, über den Kommunikationsbus 110.
Wenn der Takt 152 nicht der primäre Takt ist, stellt der Prozessor 156 den
Takt 152 ein, um sich dem Zeitwert anzupassen, der über den
Kommunikationsbus 110 verteilt wird, in Synchronisation
mit dem Master-Zeitpuls 116. Das PPS-Zeitstempel-Latch 155 versieht
den Master-Zeitpuls mit einem Zeitstempel und der Prozessor 156 verwendet
diesen PPS-Zeitstempel, um Takteinstellungen zu berechnen.
-
Der
Takt 152 könnte
als ein Zähler,
der durch das Oszillatorsignal 114 getrieben wird, implementiert
sein. Niedrigstwertige Bits des Zählers könnten als ein Addierer implementiert
sein, so dass die Zunahme an Oszillatorperioden gelegentlich erhöht oder
gesenkt werden könnte,
um wirksam den Takt 152 zu beschleunigen oder zu verlangsamen,
wenn derselbe auf einen bestimmten anderen Takt in dem verteilten
System 200 synchronisiert.
-
5 stellt
die Zeitsynchronisationsbrücke 60 bei
einem weiteren Ausführungsbeispiel
dar. Dieses Ausführungsbeispiel
umfasst einen Takt 220, der eine Zeit 222 für alle Synchronisationsmodule 70–72 erzeugt.
Bei diesem Ausführungsbeispiel
gibt es keine Takte in den einzelnen Synchronisationsmodulen 70–72 und
die Zeit 222 wird für
die Zeitstempelfunktionen des Taktsynchronisationsprotokolls verwendet.
In einer Weise, die der Auswahl eines primären Takts ähnelt, wird eines der Synchronisationsmodule 70–72 ausgewählt, um
den zentralen Takt 220 einzustellen. Das ausgewählte Synchronisationsmodul 70–72 platziert
einen Satz von Nachführungsinformationen
auf einem Nachführungsbus 224,
um den Takt 220 einzustellen und denselben auf einen Master-Takt
auf einem der Teilnetze 50–52 zu synchronisieren.
-
Bei
einem Ausführungsbeispiel
umfasst die Zeitsynchronisationsbrücke 60 einen GPS-Empfänger oder
einen kalibrierten Atomtakt, der es ermöglicht, dass dies der Master-Takt
für das
verteilte System 200 ist.
-
Die
Zeitsynchronisationsbrücke 60 könnte in einem
modularen Entwurf implementiert sein, bei dem der Kommunikationsbus 110,
der Master-Zeitpuls 116 und der Steuerbus 112,
usw. abhängig
von der Anzahl von Teilnetzen, die durch den Router 40 unterstützt werden,
unter mehreren modularen Einheiten erweitert sein könnten. Ein
Abschnitt des Steuerbusses 112 könnte z. B. zur Verwendung innerhalb einer
modularen Einheit zugewiesen sein und ein Abschnitt des Steuerbusses 112 als
eine Modulareinheit-Auswahlfunktion zugewiesen sein. Ein Auswählerschalter
auf jeder modularen Einheit könnte
verwendet werden, um eine eindeutige Einheitsnummer zu erhalten.
Jede modulare Einheit könnte
auf den Takt des Synchronisationsmoduls synchronisieren, der als
der primäre
Takt ausgewählt
ist. Alternativ könnte
jede modulare Einheit einen externen Takt, der das 1-PPS-Signal
bereitstellen könnte,
gemeinschaftlich verwenden. Die Kommunikation der Zeitwerte könnte unter
Verwendung einer Multicast-Veröffentlichungsoperation
aller modularer Einheiten erzielt werden.
-
Bei
einem Ausführungsbeispiel
sind das Taktsynchronisationsprotokoll und verwandte Mechanismen,
die in den Knoten 10–12, 20–22 und 30–32 implementiert
sind, diejenigen, die in dem U.S.-Patent Nr. 5,566,180 beschrieben
sind. Knoten mit einem lokalen Takt, der als ein Master gemäß diesem
Synchronisationsprotokoll fungiert, könnten als Master-Takt bezeichnet
werden. Knoten mit einem lokalen Takt, der als ein Slave gemäß diesem
Synchronisationsprotokoll fungiert, könnten als Slave-Takt bezeichnet
werden. Jeder Slave-Takt könnte
einen Schaltungsaufbau zum Einstellen seiner jeweiligen lokalen
Zeit basierend auf Berechnungen der Sende- und Empfangszeit der
Zeitgebungsdatenpakete, die über
die Teilnetze 50–52 übertragen
werden, umfassen. Ein Master-Takt auf einem Teilnetz erzeugt periodisch
ein Zeitgebungsdatenpaket und überträgt dasselbe über das
Teilnetz. Jeder Slave-Takt auf dem Teilnetz empfängt das Zeitgebungsdatenpaket
und latcht ansprechend darauf einen lokalen Zeitwert. Der Master-Takt
erzeugt ein Nachfolgepa ket für
jedes Zeitgebungsdatenpaket und überträgt dasselbe über das
Teilnetz. Jedes Nachfolgepaket umfasst einen Zeitstempel. Jeder
Slave-Takt empfängt
das Nachfolgepaket und vergleicht den gelatchten lokalen Zeitwert.
Jeder Slave-Takt verwendet die Differenz zwischen dem Zeitstempel
und dem gelatchten lokalen Zeitwert zur Einstellung seines lokalen
Takts.
-
Die
Knoten 10–12, 20–22 und 30–32 könnten ein
beliebiger Typ von Knoten sein. Ein beliebiger oder mehrere der
Knoten 10–12, 20–22 und 30–32 z. B.
könnten
ein Sensorknoten oder ein Betätigerknoten
oder ein Anwendungssteuerungsknoten oder eine Kombination dieser
in einem verteilten Steuersystem sein. Ein beliebiger oder mehrere
der Knoten 10–12, 20–22 und 30–32 könnten ein
Computersystem, wie z. B. ein Personalcomputer, sein, wobei der Prozessor
verwendet wird, um Takteinstellparameter zu berechnen.
-
Die
vorstehende detaillierte Beschreibung der vorliegenden Erfindung
ist zu Darstellungszwecken vorgesehen und soll nicht ausschließlich sein oder
die Erfindung auf das genaue offenbarte Ausführungsbeispiel einschränken. Entsprechend
ist der Schutzbereich der vorliegenden Erfindung durch die beigefügten Ansprüche definiert.