-
Die vorliegende Erfindung betrifft
ein Sendeverfahren für
eine Zeitreferenz über
ein Übertragungsmedium,
wobei beim Zuführen
eines Synchronisationssignals zu einem Zeitgeberblock in ein Register
des Zeitgeberblocks ein Anfangswert eingespeichert wird und das
Register danach getaktet inkrementiert wird, wobei der Wert des
Registers aus dem Register ausgelesen wird, anhand des Wertes eine
Zeitreferenz ermittelt wird und die ermittelte Zeitreferenz von
der Sendeschaltung über
das Übertragungsmedium
gesendet wird.
-
Die vorliegende Erfindung betrifft
ferner einen Zeitgeberblock zur Durchführung des oben genannten Sendeverfahrens.
-
Die oben stehend beschriebene Vorgehensweise
wird z. B. beim Synchronisieren von über das SIMATIC-NET verbundenen
Endgeräten
angewendet.
-
Zum Synchronisieren von über ein Übertragungsmedium
miteinander kommunizierenden Endgeräten ist es erforderlich, von
Zeit zu Zeit eine Zeitreferenz von dem einen Endgerät zum anderen
Endgerät
zu übertragen,
damit die Endgeräte
sich miteinander synchronisieren können. Die Synchronisation ist
dabei umso genauer, je genauer die tatsächliche Sendezeit bzw. Empfangszeit
mit der Zeitreferenz übereinstimmt.
-
Bei der Vorgehensweise des Standes
der Technik treten im Wesentlichen drei Fehlerquellen auf.
-
Die erste Fehlerquelle ist der Zeitversatz
zwischen dem Eingang eines Synchronisationssignals und dem Senden
der Zeitreferenz über
das Übertragungsmedium.
Diese Zeitverzögerung
ist im Stand der Technik variabel. Sie hängt insbesondere von der Verweildauer
des die Zeitreferenz enthaltenden Telegramms in der Sendewarteschlange
der Sendeschaltung ab.
-
Im Stand der Technik wird versucht,
die Sendezeitverzögerung
durch entsprechende Priorisierung des Zeitreferenztelegramms niedrig
zu halten. Ferner wird das Telegramm aus der Sendewarteschlange
entfernt, wenn es nach einer vorbestimmten Wartezeit – z. B.
einer Millisekunde – noch
nicht gesendet worden ist.
-
Die zweite Verzögerung tritt durch die Trägheit der
verwendeten Sende- und Empfangsbausteine selbst sowie durch die
nur endliche Übertragungsgeschwindigkeit über das Übertragungsmedium
auf.
-
Die dritte Fehlerquelle ist die Empfangsverzögerungszeit,
die zwischen dem Ankommen des die Zeitreferenz enthaltenden Telegramms
und dem Einspeichern des Anfangswerts in das Register des Zeitgeberblocks
verstreicht. Im Stand der Technik ist auch diese Zeit variabel.
Sie wird insbesondere durch die Auslastung des Prozessors bestimmt.
Auch hier wird versucht, die Zeitverzögerung durch geeignete Priorisierung
des Zeitreferenztelegramms zu minimieren.
-
Trotz aller Bemühungen des Standes der Technik
lassen sich in der Regel Gangdifferenzen von 1 bis 2 ms nicht vermeiden.
-
Die Aufgabe der vorliegenden Erfindung
besteht darin, ein Sendeverfahren für eine Zeitreferenz sowie den
korrespondierenden Zeitgeberblock zur Verfügung zu stellen, mittels derer
auf einfache Weise eine hochgenaue Synchronisation der Endgeräte möglich ist.
-
Die Aufgabe wird für das Sendeverfahren
dadurch gelöst,
dass von einer Sendeschaltung überwacht
wird, ob das Übertragungsmedium
belegt ist, dass im Falle der Nichtbelegung an den Zeitgeberblock
ein Freigabesignal übermittelt
wird, dass der Wert des Registers erst nach dem Übermitteln des Freigabesignals
aus dem Register ausgelesen wird und dass zwischen dem Auslesen
des Registers und dem Senden der Zeitreferenz über das Übertragungsmedium eine vorbestimmte
Sendezeitverzögerung
liegt.
-
Es wird also – im Gegensatz zu den bisherigen
Bestrebungen des Standes der Technik – die Verzögerung nicht minimiert. Vielmehr
wird dafür
gesorgt, dass die Verzögerung
bekannt ist. Denn dann ist es möglich,
die bekannte Verzögerung
sende- und/oder empfangsseitig zu berücksichtigen. Dies gilt sogar
dann, wenn die Sendezeitverzögerung
erheblich größer als
die minimal erreichbare Verzögerung
ist. Entscheidend ist nur, dass die Sendezeitverzögerung bekannt
ist.
-
Die Aufgabe wird ferner durch einen
Zeitgeberblock gelöst,
der für
die Durchführung
des erfindungsgemäßen Sendeverfahrens
angepasst ist.
-
In der Regel sollte die Zeitreferenz
mit dem ersten über
das Übertragungsmedium übertragenen Bit
korrespondieren. Die Sendezeitverzögerung ist somit vorzugsweise
durch das Auslesen des Registers und dem Beginn des Ausgebens der
Zeitreferenz bestimmt .
-
Wenn das Synchronisationssignal dem
Zeitgeberblock zu vorbekannten Zeitpunkten vorgegeben wird, ist
es möglich,
dass der Anfangswert vorbestimmt ist. Insbesondere ist es möglich, dass
der Anfangswert derart bestimmt ist, dass durch ihn die Sendezeitverzögerung kompensiert
wird. Denn dann ist zur Bestimmung des Anfangswertes weder eine Kenntnis über die
Eigenschaften des Übertragungsmediums
noch über
die Eigenschaften des empfängerseitigen
Zeitgeberblocks erforderlich. Der Anfangswert kann dem Zeitgeberblock
z. B. vorgegeben werden.
-
Alternativ ist es möglich, dass
das Synchronisationssignal dem Zeitgeberblock über das Übertragungsmedium zugeführt wird,
das Synchronisationssignal selbst bereits eine Zeitreferenz erhält und der
Anfangswert anhand der im Synchronisationssignal enthaltenen Zeitreferenz
ermittelt wird. Diese Vorgehensweise bietet insbesondere den Vorteil,
dass eine Synchronisation zu beliebigen Zeitpunkten möglich ist.
-
Zum Ermitteln der korrekten Zeit
sollte vorzugsweise die im Synchronisationssignal enthaltene Zeitreferenz
in einer Korrekturschaltung des Zeitgeberblocks um einen vorbestimmten
Korrekturwert korrigiert und die korrigierte Zeitreferenz als Anfangswert
herangezogen werden. Die Korrektur ist dabei insbesondere dann möglich, wenn
zwischen dem Zuführen
des Synchronisationssignals und dem Einspeichern des Anfangswertes
eine vorbestimmte Empfangszeitverzögerung liegt. Der Korrekturwert kann
dabei derart bestimmt sein, dass durch ihn die Empfangszeitverzögerung kompensiert
wird. Alternativ kann der Korrekturwert auch derart bestimmt sein,
dass durch ihn die Summe von Sendezeitverzögerung und Empfangszeitverzögerung kompensiert wird.
-
Die Empfangszeitverzögerung ist
analog zur Sendezeitverzögerung
vorzugsweise durch den Beginn des Zuführens der Zeitreferenz und
das Einspeichern des Anfangswertes bestimmt. Der Korrekturwert kann
dabei dem Zeitgeberblock vorgegeben werden.
-
Wenn das Synchronisationssignal zusätzlich zur
Zeitreferenz eine Quell- und/oder Zieladresse enthält, ist
es möglich,
dass der Anfangswert nur dann in das Register eingespeichert wird,
wenn die Quelladresse mit einer Sollquelladresse und/oder die Zieladresse
mit einer Sollzieladresse übereinstimmt. Dadurch
ist eine selektive Synchronisierung nur bezüglich einer bestimmten Synchronisationssignalquelle
bzw. nur bezüglich
eines bestimmten Synchronisationsziels erreichbar. Die Sollquelladresse und/oder
die Sollzieladresse können
dabei beispielsweise der Empfangsschaltung vorgegeben werden, so
dass diese die Selektion ausführt.
-
Wenn das Synchronisationssignal zusätzlich zur
Zeitreferenz ferner eine Prüfinformation
für die Zeitreferenz
enthält,
ist es möglich,
dass der Anfangswert nur dann in das Register eingespeichert wird,
wenn die Zeitreferenz anhand der Prüfinformation als ordnungsgemäß ermittelt
wird. Ein Einspeichern unkorrekter Zeitreferenzen kann somit vermieden
werden.
-
Die Synchronisation kann, wenn bereits
das zugeführte
Synchronisationssignal eine Zeitreferenz enthält, insbesondere dadurch bewerkstelligt
werden, dass ein Synchronisationspuls ausgegeben wird, wenn der
Wert des Registers einen vorbestimmten Referenzwert erreicht.
-
Vorzugsweise ist das Sendeverfahren
derart ausgestaltet, dass der Zeitgeberblock seine Funktion selbst
dynamisch festlegt. Dies kann insbesondere auf folgende Weise erreicht
werden:
- – Mit
jedem Einspeichern des Anfangswertes auf Grund einer über das Übertragungsmedium
zugeführten
Zeitreferenz wird ein Zeitgeber gestartet;
- – der
Zeitgeberblock wird gemäß einem
Sendeverfahren betrieben, bei dem ihm ein Synchronisationssignal
mit Zeitreferenz zugeführt
wird, bis der Zeitgeber einen Grenzwert erreicht;
- – wenn
der Zeitgeber den Grenzwert erreicht, wird der Zeitgeberblock hingegen
gemäß einem
Sendeverfahren betrieben, bei dem das Synchronisationssignal dem
Zeitgeberblock zu vorbekannten Zeitpunkten vorgegeben wird.
-
Ergänzend kann der Zeitgeberblock
wieder gemäß einem
Sendeverfahren betrieben werden, bei dem im Synchronisationssignal
eine Zeitreferenz enthalten ist, wenn ihm über das Übertragungsmedium wieder eine
Zeitreferenz zugeführt
wird.
-
Beim Senden der Zeitreferenz über das Übertragungsmedium
ist es möglich,
den Wert des Registers 63 (unverändert)
zu senden. Alternativ ist es aber auch möglich, den Wert des Regis ters
in einer Korrekturschaltung des Zeitgeberblocks um einen vorbestimmten
Korrekturwert zu korrigieren und diesen Wert als Zeitreferenz über das Übertragungsmedium
zu senden. Analog zur Korrektur beim Zuführen der Zeitreferenz über das Übertragungsmedium
gibt es auch für
die Bestimmung dieses Korrekturwerts zwei Möglichkeiten. Zum einen kann
er derart bestimmt sein, dass durch die (ausschließlich) die Sendezeitverzögerung kompensiert
wird. Alternativ kann durch den Korrekturwert die Summe von Sendezeitverzögerung und
Empfangszeitverzögerung kompensiert
werden.
-
Wenn der Zeitgeberblock ein Anforderungssignal
an die Sendeschaltung übermittelt,
die Sendeschaltung das Anforderungssignal abwartet und das Freigabesignal
erst nach Erhalt des Anforderungssignals an den Zeitgeberblock übermittelt,
wird das Übertragungsmedium
von der Sendeschaltung nur dann für die Übermittlung der Zeitreferenz
freigehalten, wenn auch eine Zeitreferenz zum Versenden zur Verfügung steht.
Der übrige
Datenverkehr wird also nur so wenig wie möglich beeinträchtigt.
-
Wenn im Rahmen des Sendeverfahrens
von einer weiteren Sendeschaltung überwacht wird, ob ein weiteres Übertragungsmedium
belegt ist, im Falle der Nichtbelegung an den Zeitgeberblock ein
weiteres Freigabesignal übermittelt
wird und der Wert des Registers erst nach dem Ermitteln auch des
weiteren Freigabesignals aus dem Register ausgelesen und von den
Sendeschaltungen die Zeitreferenz über die Übertragungsmedien gesendet
wird, ist bei mehreren – prinzipiell
voneinander unabhängigen – Übertragungsmedien
auf einfache Weise eine gleichzeitige Versendung der Zeitreferenz über die Übertragungsmedien
gewährleistet.
-
Es ist möglich, die Zeitreferenz als
solche direkt und unmittelbar über
das Übertragungsmedium auszusenden.
Vorzugweise aber werden der Zeitreferenz vom senderseitigen Zeitgeberblock
zusätzliche
Informationen hinzugefügt.
-
Insbesondere ist es möglich, dass
die zusätzlichen
Informationen eine Quell- und/oder eine Zieladresse umfassen. Dadurch
ist es empfangsseitig beispielweise möglich, den Anfangswert nur
dann in das Register einzuspeichern, wenn die Quelladresse mit einer
Sollquelladresse und/oder die Zieladresse mit einer Sollzieladresse übereinstimmt.
Es ist also auf einfache Weise eine selektive Synchronisation realisierbar.
-
Weiterhin ist es möglich, dass
die zusätzlichen
Informationen eine Prioritäts-
und/oder eine Typinformation umfassen. In diesem Fall ist insbesondere
ein Aussondern des Zeitreferenztelegramms aus anderen über das Übertragungsmedium übertragenen
Daten leicht möglich.
-
Auch die zusätzlichen Informationen können dem
Zeitgeberblock vorgegeben werden.
-
Die zusätzlichen Informationen können aber auch
eine Prüfinformation
für die
Zeitreferenz umfassen. Wenn dies der Fall ist, ist es empfangsseitig
insbesondere möglich,
dass der Anfangswert nur dann in das Register eingespeichert wird,
wenn die Zeitreferenz anhand der Prüfinformation als ordnungsgemäß ermittelt
wird. Eine fehlerhafte Synchronisierung kann somit auf einfache
Weise vermieden werden. Die Prüfinformation
kann dabei eine Prüfinformation ausschließlich für die Zeitreferenz
als solche sein. Sie kann aber auch eine Prüfinformation für das gesamte über das Übertragungsmedium übertragene Zeitreferenztelegramm
sein.
-
Die einzige bei der erfindungsgemäßen Vorgehensweise
nicht berücksichtigte
Verzögerung
ist die durch die Sende- und Empfangstreiber und das Übertragungsmedium
selbst hervorgerufene Zeitverzögerung.
Diese liegt in der Regel unterhalb von 10 μs, oftmals sogar unter 1 μs. Sie ist
daher in aller Regel tolerierbar. Prinzipiell wäre mit der erfindungsgemäßen Vorgehensweise
aber auch diese Zeitverzögerung
durch die Sende- und
Empfangstreiber und das Übertragungsmedium
selbst kompensierbar.
-
Der Zeitgeberblock ist vorzugsweise
mit der Sendeschaltung bzw. der Empfangsschaltung direkt verbunden.
Denn dadurch kann insbesondere auf einfache Weise gewährleistet
werden, dass die Sende- bzw. Empfangszeitverzögerung vorbestimmbar ist. Aus
dem gleichen Grund ist auch der Zeitgeberblock selbst vorzugsweise
als festverdrahtete Schaltung ausgebildet.
-
Wenn im Falle einer festverdrahteten
Schaltung der Zeitgeberblock als elektronisch programmierbare Schaltung,
z. B. als field programmable gate array (FPGA) oder als electronically
programmable logic device (EPLD), ausgebildet ist, ist die Erstellung
des Zeitgeberblocks besonders einfach. Alternativ kann der Zeitgeberblock
z. B. als ASIC ausgebildet sein. Denn dann ist er insbesondere bei
großen
Stückzahlen
kostengünstig
herstellbar.
-
Wenn der Zeitgeberblock als Ethernet-Ansschaltung
ausgebildet ist, ist er besonders vielseitig einsetzbar. Aber auch
Ausgestaltungen für
andere, insbesondere leitungsgebundene Übertragungsmedien sind denkbar
und möglich.
-
Weitere Vorteile und Einzelheiten
ergeben sich aus der nachfolgenden Beschreibung eines Ausführungsbeispiels
in Verbindung mit den Zeichnungen. Dabei zeigen in Prinzipdarstellung
-
1 mehrere
in Linientopologie verbundene Endgeräte,
-
2 ein
Endgerät
mit einer Netzwerkanschaltung,
-
3A – 3C eine Verbindungsschaltung
und eine Schnittstelle,
-
4 ein
Datenpaket,
-
5 ein
Ablaufdiagramm,
-
6A – 6D eine Erweiterung der Verbindungsschaltung
der 3A – 3C,
-
7 eine
Korrekturschaltung und
-
8 ein
weiteres Ablaufdiagramm.
-
Gemäß 1 sind mehrere Endgeräte 1 über Netzwerkanschaltungen 2 und
Netzwerkleitungen 3 miteinander vernetzt. Die Vernetzung
zwischen den Endgeräten 1 erfolgt
beispielsweise gemäß dem Ethernet-Standard.
-
Die Endgeräte 1 weisen in der
Regel insbesondere eine intelligente Einheit 4, z. B. einen
Mikrocontroller oder einen Mikroprozessor, und einen media access
controller 5 (MAC 5) auf. Die intelligenten Einheiten 4 sind
mit den MACs 5 über
Adress-/Datenbusse 6 verbunden. Die MACs 5 sind
mit den internen Ports 8 der Netzwerkanschaltungen 2 verbunden.
-
Die internen Ports 8 sind
als medienunabhängige
Schnittstellen (MII = media independent Interface) ausgebildet.
Die Endgeräte 1 sind
daher direkt an die internen Ports 8 anschaltbar.
-
Die Netzwerkleitungen 3 können elektrische oder
Lichtwellenleiter sein. Auch Mischformen sind möglich. Sie sind über Physical
Layer Devices 7 an die Netzwerkanschaltungen 2 angeschaltet,
und zwar an externe Ports 9, 10 der Netzwerkanschaltungen 2.
Die Physical Layer Devices 7 beinhalten die Sendetreiber
für die
auszusendenden Daten sowie die Schwellwertwandler zum Binarisieren
der empfangenen Daten. Auch die externen Ports 9, 10 sind somit
als medienunabhängige
Schnittstellen (MII) ausgebildet.
-
Wie bereits aus 1 und noch deutlicher aus 2 ersichtlich ist, sind
die Leitungen, über
die von den Ports 8 bis 10 Daten versendet werden,
von den Leitungen verschieden, über
welche den Ports 8 bis 10 Daten zugeführt werden.
Die Ports 8 bis 10 werden also im Vollduplex-Betrieb
betrieben, also unter gleichzeitigem Senden und Empfangen von Daten.
Dies ist insbesondere aufgrund des Fehlens eines zwischengeschalteten
MACs von Vorteil.
-
Das Senden bzw. Empfangen der Daten
erfolgt mit einem Übertragungstakt
von z. B. 100 MHz. Intern arbeitet die Verbindungsschaltung 11 mit
einem internen Takt, der niedriger als der Übertragungstakt ist. Der interne
Takt ist z. B. nur 25 MHz.
-
Wie ferner aus den 1 und 2 ersichtlich ist,
weisen die Netzwerkanschaltungen 2 außer den bereits erwähnten Ports 8 bis 10 keine
weiteren Ports zum Datenaustausch mit dem Netzwerk auf. Es sind also
genau drei Ports 8 bis 10 vorhanden.
-
Die Ports 8 bis 10 sind
gemäß 2 über eine Verbindungsschaltung 11 miteinander
verschaltet. Die Verbindungsschaltung 11 arbeitet dabei
nicht ein Softwareprogramm ab, sondern ist als festverdrahtete Verbindungsschaltung 11 ausgebildet.
Sie enthält
die Steuerwerke, die Zwischenspeicher und die Verbindungsleitungen
für die
Ports 8 bis 10.
-
Der Netzwerkanschaltung 2 ist
eine Stromversorgungseinrichtung 12 zugeordnet. Die Stromversorgungseinrichtung 12 kann
z. B. mit Versorgungsleitungen 13 verbunden sein, über die
das Endgerät 1 mit
elektrischer Energie versorgt wird. In diesem Fall ist die Netzwerkanschaltung 2 also
vom Endgerät 1 aus
mit elektrischer Energie versorgbar.
-
Alternativ oder zusätzlich ist
es aber auch möglich,
die Netzwerkanschaltung 2 unabhängig vom Endgerät 1 mit
elektrischer Energie zu versorgen. Insbesondere ist, wie in 2 dargestellt, eine Versorgung über die
Netzwerkleitungen 3 möglich. Es
ist sogar möglich,
der Stromversorgungseinrichtung 12 auf beiden Wegen elektrische
Energie zuzuführen.
In diesem Fall weist die Stromversorgungseinrichtung 12 vorzugsweise
eine Überwachungsschaltung
auf, mittels derer bei Zusammenbruch der Stromversorgung über die
Versorgungsleitungen
13 auf die alternative Stromversorgung,
beispielsweise über
die Netzwerkleitungen 3, umgeschaltet wird.
-
Die Netzwerkanschaltung 2 weist
ferner eine Schnittstellenschaltung 14 auf. Über diese
Schnittstellenschaltung 14 ist insbesondere die Verbindungsschaltung 11 parametrierbar.
Hierauf wird später
noch näher
eingegangen werden.
-
Die Netzwerkanschaltung 2 kann,
wie in 2 durch eine
gestrichelte Umrahmung mit entsprechender Beschriftung angedeutet
ist, als field programmable gate array (FPGA) oder als electronically
progammable logic device (EPLD) ausgebildet sein. Sie ist in diesem
Fall also als elektronisch programmierbare Schaltung 11 ausgebildet.
Prinzipiell könnte
die Verbindungsschaltung 11 aber auch als nicht weiter
programmierbare Schaltung ausgebildet sein, z. B. als integrierter
Schaltkreis, insbesondere als ASIC. Die Stromversorgungseinrichtung 12 ist dabei,
wie ebenfalls in 2 dargestellt,
außerhalb des
Schaltkreises angeordnet.
-
Der interne Aufbau der Verbindungsschaltung 11 wird
nunmehr nachstehend in Verbindung mit den 3A bis 3C näher erläutert, die
Funktionsweise der Verbindungsschaltung 11 in Verbindung
mit 5. Ergänzend wird
dabei auch der Aufbau eines typischen Datenpakets herangezogen,
wie er in 4 dargestellt
ist.
-
Gemäß 3 weist die Verbindungsschaltung 11 einen
internen Block 15 und zwei externe Blöcke 16, 17 auf.
Die Blöcke 15 bis 17 sind
dabei – siehe 2 – alle innerhalb der Verbindungsschaltung 11 angeordnet.
Der interne Block 15 ist aber dem internen Port 8 zugeordnet
(daher die Bezeichnung als interner Block), die externen Blöcke 16, 17 den
externen Ports 9, 10 (daher die Bezeichnung als externe
Blöcke).
-
Wenn der Netzwerkanschaltung 2 vom
Endgerät 1 über den
internen Port 8 ein Datenpaket zugeführt werden soll, geschieht
dies wie folgt:
Einer Empfangsmaschine 18 des internen
Blocks 15 wird über
ein UND-Gatter 19 die entsprechende logische Verknüpfung zweier
Freigabebits zugeführt.
Je eines der Freigabebits stammt dabei von je einem der externen
Blöcke 16, 17.
Die Freigabebits werden von Sendemaschinen 20, 21 der
externen Blöcke 16, 17 auf
logisch Eins gesetzt, wenn Zwischenspeicher 22, 23 leer
sind. Die Zwischenspeicher 22, 23 sind dabei nach
dem FIFO-Prinzip (FIFO = first-in-first-out) organisiert.
-
Wenn beide Zwischenspeicher 22, 23 leer sind,
nimmt die Empfangsmaschine 18 vom Endgerät 1 ein
Datenpaket entgegen und leitet es über einen Datenausgang 24 und
Dateneingänge 25, 26 den
Zwischenspeichern 22, 23 zu. Die Datenübertragung
erfolgt dabei z. B. in sogenannten Nibblen, also in Gruppen von
je 4 Bit. Das Datenpaket wird also in die Zwischenspeicher 22, 23 eingeschrieben.
Die Zwischenspeicher 22, 23 dienen also zum Zwischenspeichern
von Datenpaketen, die der Netzwerkanschaltung 2 über den
internen Port 8 zugeführt
werden. Auf Grund des Umstands, dass die Datenpakete dabei erst
dann in die Zwischenspeicher 22, 23 eingeschrieben
werden, wenn die Zwischenspeicher 22, 23 zuvor
geleert wurden, ist dabei zu jedem Zeitpunkt in die Zwischenspeicher 22, 23 nur
ein einziges Datenpaket einspeicherbar. Weitere Datenpakete werden,
soweit erforderlich, vom Endgerät 1 verwaltet.
-
Den Zwischenspeichern 22, 23 sind
Belegungsermittler 27, 28 zugeordnet. Die Belegungsermittler 27, 28 ermitteln
zum einen, ob die Zwischenspeicher 22, 23 belegt
sind, ob in ihnen also zu sendende Daten abgespeichert sind. Wenn
dies der Fall ist, wird eine entsprechende Information an die Sendemaschinen 20, 21 gegeben,
welche daraufhin die Freigabebits zurücksetzen. Ferner ermitteln
die Belegungsermittler 27, 28, ob folgende Bedingungen
erfüllt
sind:
- a) Das Datenpaket ist vollständig in
die Zwischenspeicher 22, 23 eingeschrieben.
- b) Die in die Zwischenspeicher 22, 23 eingeschriebenen
Daten des Datenpakets haben eine Mindestgröße von z. B. 50 Byte erreicht.
-
Sowie eine dieser beiden Bedingungen
erfüllt
ist (ODER-Verknüpfung), übermitteln
die Belegungsermittler 27, 28 ein Sendebereitschaftsbit
an die Sendemaschinen 20, 21.
-
Schließlich ermitteln die Belegungsermittler 27, 28 durch
Analysieren des Datenpakets noch dessen Priorität. Wenn das Datenpaket als
hochprior erkannt wird, wird ein Prioritätsbit, das an die Sendemaschinen 20, 21 übermittelt
wird, auf Eins gesetzt.
-
Die Frage, ob das in die Zwischenspeicher 22, 23 – vollständig oder
teilweise – eingespeicherte Datenpaket
nunmehr sofort und unmittelbar gesendet wird, hängt von einer Vielzahl von
Umständen
ab, auf die später
noch eingegangen wird. Bereits an dieser Stelle sei aber erwähnt, dass – wenn die
weiteren Sendebedingungen erfüllt
sind – mit
dem Ausgeben der Daten des Datenpakets über die externen Ports 9, 10 begonnen
wird, sowie das Sendebereitschaftsbit gesetzt ist. Es wird also
nicht abgewartet, bis das Datenpaket vollständig in die Zwischenspeicher 22, 23 eingespeichert
ist. Vielmehr ist die Verbindungsschaltung 11 derart ausgebildet,
dass die Daten des Datenpakets bereits vor dem vollständigen Zuführen des
Datenpakets über
die externen Ports 9, 10 ausgegeben werden. Etwas
anderes gilt nur für
extrem kleine Datenpakete, deren Gesamtgröße unter der Mindestgröße von z.
B. 50 Byte liegt.
-
Das Ausgeben wird aber nicht bereits
mit dem ersten eingespeicherten Bit, Nibble oder Byte gestartet.
Es wird abgewartet, bis in den Zwischenspeichern 22, 23 – zumindest
bei längeren
Datenpaketen – die
Mindestanzahl von Daten hinterlegt ist.
-
Die oben stehend beschriebene Vorgehensweise,
mit dem Ausgeben von Daten des Datenpakets zu beginnen, sowie alternativ
das Datenpaket vollständig
in die Zwischenspeicher 22, 23 eingespeichert
ist oder aber die in die Zwischenspeicher 22, 23 eingespeicherten
Daten des Datenpakets eine Mindestgröße erreicht haben, gilt selbstverständlich bezüglich beider
externer Ports 9, 10. Sie gilt umgekehrt auch,
wenn der Netzwerkanschaltung 2 über einen der externen Ports 9, 10 Daten
zugeführt
werden, die dann an den internen Port 8 und/oder den anderen externen
Port 10, 9 weiterzuleiten und dort auszugeben
sind.
-
Aus den oben stehenden Ausführungen
ist insbesondere auch ersichtlich, dass die Verbindungsschaltung 11 derart
ausgebildet ist, dass das Datenpaket stets über beide externe Ports 9, 10 ausgeben
wird, wenn das Datenpaket der Netzwerkanschaltung 2 über den
internen Port 8 zugeführt
wird.
-
Wenn umgekehrt dem internen Block 15 der Netzwerkanschaltung 2 ein
Datenpaket zugeführt wird,
das der Netzwerkanschaltung 2 über einen der externen Ports 9, 10 zugeführt wird,
geschieht dies wie folgt:
Wie aus 4 ersichtlich ist, weist das Datenpaket eine
Zieladresse und eine Quelladresse auf. Die Quelladresse ist stets
eine eindeutige Einzeladresse. Die Zieladresse kann eine Einzeladresse
sein. Sie kann aber auch eine Mehrfachadresse sein, die für mehrere
oder sogar für
alle Endgeräte 1 gültig ist.
-
Der interne Block 15 weist
gemäß 3A Adressextraktoren 29 und
einen Adressvergleicher 30 auf. Die Adressextraktoren 29 extrahieren
aus den ihnen zugeführten
Datenpaketen zunächst
die Zieladresse. Die Zieladresse wird dem Adressvergleicher 30 zugeführt. Der
Adressvergleicher 30 vergleicht die Zieladresse mit (mindestens)
einer intern hinterlegten Filteradresse. Wenn die extrahierte Zieladresse
dieser Filteradresse bzw. einer der Filteradressen entspricht, übermittelt
der Adressvergleicher 30 ein Freigabebit an den übermittelnden
Extraktor 29. Nur in diesem Fall wird das zugeführte Datenpaket
an einen internen Datenwegermittler 31 weitergegeben. Ansonsten
wird es nicht weitergeleitet und somit also insbesondere auch vom
internen Port 8 ferngehalten.
-
Die Prüfung im Adressvergleicher 30 umfasst
insbesondere eine Prüfung,
ob die Zieladresse mit der Filteradresse identisch ist. Sie umfasst
ferner eine Prüfung,
ob die Zieladresse, falls sie eine Mehrfachadresse ist, die Filteradresse
mit umfasst. Gegebenenfalls sind noch weitere Prüfungen nach Typ und/oder Funktion
des Datenpakets möglich.
Dies ist aber nicht erforderlich.
-
Im Ergebnis wird also das Datenpaket
nur dann über
den internen Port 8 ausgegeben, wenn die Zieladresse des
Datenpakets eine Durchschaltbedingung, nachstehend Endgeräte-Durchschaltbedingung
genannt, erfüllt.
-
Das Extrahieren der Zieladresse und
das Überprüfen der
Zieladresse benötigen
Zeit. Während dieser
Zeit werden dem internen Block 15 über seinen entsprechenden Dateneingang 32 weiterhin
Daten zugeführt.
Der interne Block 15 und damit auch die Verbindungsschaltung 11 weist
daher einen Zwischenspeicher 33 auf, in dem diese Daten
zwischengespeichert werden, bis die Prüfung, ob die Endgeräte-Durchschaltbedingung
erfüllt
ist, abgeschlossen ist. Dieser Zwischenspeicher 33 kann
relativ klein ausgebildet sein. Er ist vorzugsweise als FIFO-Speicher organisiert.
Er wird also zyklisch beschrieben und ausgelesen.
-
Da der Datenverkehr über die
Ports 8 bis 10 unabhängig voneinander abläuft, ist
es möglich,
dass dem internen Block 15 über beide Dateneingänge 32 gleichzeitig
Daten zugeführt
werden. Der Datenwegermittler 31 überprüft daher, wenn ihm Daten von
einem der Adressextraktoren 29 zugeführt werden, ob ihm auch bereits
vom anderen Adressextraktor 29 Daten zugeführt werden
und wohin er diese Daten ausgibt. Wenn der Datenwegermittler 31 diese
anderen Daten bereits direkt an eine Sendemaschine 34 des
internen Blocks 15 ausgibt, speichert er die später empfangenen
Daten des anderen Dateneingangs 32 in einem Zwischenspeicher 35 ab.
Anderenfalls gibt er sie direkt an die Sendemaschine 34 weiter. Der
Zwischenspeicher 35 ist ebenfalls nach de FIFO-Prinzip
organisiert. Er kann dabei, wie in 3A angedeutet,
zu einem Zeitpunkt mehr als ein Datenpaket zwischenspeichern. Es
ist in diesen Zwischenspeicher 35 also mehr als ein Datenpaket
einspeicherbar.
-
In ähnlicher Weise können, wie
in 3B gestrichelt angedeutet,
auch die externen Blöcke 16, 17 Adressextraktoren 36 und
Adressvergleicher 37 aufweisen. In diesem Fall vergleicht
der Adressvergleicher 37 die Zieladresse mit der Filteradresse
aber ausschließlich
auf Identität
und invertiert dann das Vergleichsergebnis. Der Adressextraktor 36 leitet
das Datenpaket, das ihm vom anderen externen Port (z. B. dem Port 10)
zugeführt
wird, also nur dann an die Sendemaschine 20 weiter, wenn
dieses Datenpaket nicht bzw. nicht ausschließlich für das angeschlossene Endgerät 1 bestimmt
ist. In diesem Fall ist also eine Netzwerk-Durchschaltbedingung
erfüllt.
-
Zur Vereinfachung des Schaltungsaufwands ist
es möglich,
zur Überprüfung, ob
die Netzwerk-Durchschaltbedingung erfüllt ist, den Adressvergleicher 30 des
internen Blocks 15 zu verwenden und nur das entsprechende
Freigabebit an einen Zwischenspeicher 38 zu übermitteln,
der – ebenso
wie der Zwischenspeicher 33 – die Daten zwischenspeichert,
bis die Prüfung
auf die Netzwerk-Durchschaltbedingung abgeschlossen ist.
-
Alternativ oder zusätzlich zur
Zieladresse können
die Adressextraktoren 29 des internen Blocks 15 bzw,
die Adressextraktoren 36 der externen Blöcke 16, 17 auch
die Quelladresse extrahieren und an die Adressvergleicher 30, 37 übermitteln.
In diesem Fall überprüfen die
Adressvergleicher 30, 37 die Quelladresse mit
der Filteradresse (bzw. einer der Filteradressen). Wenn die Quelladresse
von der Filteradresse verschieden ist, ist eine Quell-Durchschaltbedingung
erfüllt.
Ansonsten wird das Datenpaket sowohl vom Adressextraktor 29 als
auch vom Adressextraktor 36 nicht weitergeleitet. Kreisläufer bei
den Datenpaketen können
somit ausgefiltert werden.
-
Auch bezüglich des Prüfens auf
die Quell-Durchschaltbedingung ist selbstverständlich eine Zwischenspeicherung
in den Zwischenspeichern 33, 38 bis zum Abschließen dieser
Prüfung
erforderlich.
-
Wie in den 3A und 3B durch
gestricheltes Durchkreuzen angedeutet ist, können in einer vereinfachten
Version der Verbindungsschaltung 11 die Adressextraktoren 29, 36 und
die Adressvergleicher 30, 37 entfallen. In diesem
Fall werden Datenpakete, die der Netzwerkanschaltung 2 über einen
der externen Ports 9, 10 zugeführt werden, stets über den
internen Port 8 und den anderen externen Port 10, 9 ausgegeben.
-
Wie oben stehend ausgeführt, sind
die Ports 8 bis 10 im Vollduplex-Betrieb betreibbar.
Es ist also bei jedem Port ein gleichzeitiges Senden und Empfangen
möglich.
Wenn nun einer der Ports 8 bis 10 – z. B.
der interne Port 8 – gleichzeitig
Daten eines Datenpakets ausgibt und Daten eines anderen Datenpakets
entgegennimmt, dann werden ihm also Daten von einem zweiten Port,
z. B. dem externen Port 9 zugeführt, nämlich die Daten, die er selbst
z. B. über seine
Sendemaschine 34 ausgibt. Diese Daten werden – zumindest
in der Regel – auch
dem dritten Port bzw. Block, hier dem externen Port 10 bzw.
dem externen Block 17, zugeführt. Diesen Port 10 bzw. Block 17 werden
aber auch die Daten zugeführt,
die der erstgenannte Port (im gegebenen Beispiel der interne Port 8)
empfängt.
Der betreffende Block – hier der
Block 17 – muss
also gleichzeitig Daten von den beiden anderen Blöcken 15, 16 entgegen
nehmen. Der Block 17 kann aber – logischerweise – über den Port
10, dem er zugeordnet ist, nur die Daten eines einzigen Da tenpakets
ausgeben. Um in einem derartigen Fall einen Datenverlust zu vermeiden,
weist daher jeder der Blöcke 15 bis 17 mindestens
einen Zwischenspeicher 22, 23, 35, 39 und 40 auf.
In diesen Zwischenspeichern 22, 23, 35, 39 und 40 werden
Datenpakete, die nicht sofort ausgegeben werden, zwischengespeichert.
-
Wie aus 3A ersichtlich ist, weist der interne
Block 15 einen einzigen derartigen Zwischenspeicher auf,
nämlich
den Zwischenspeicher 35. In diesen Zwischenspeicher 35 ist,
wie bereits erwähnt, mehr
als ein Datenpaket einspeicherbar.
-
Die externen Blöcke 16, 17 weisen
jeweils zwei derartige Zwischenspeicher auf, nämlich zum einen die Zwischenspeicher 22 und 39 für den externen
Block 16 und zum anderen die Zwischenspeicher 23 und 40 für den externen
Block 17. Die Zwischenspeicher 22, 23 dienen,
wie ebenfalls bereits erwähnt,
zum Zwischenspeichern maximal eines Datenpakets, das den externen
Blöcken 16, 17 über den internen
Port 8 zugeführt
wird. Die Zwischenspeicher 39 und 40 hingegen
dienen zum Zwischenspeichern von Datenpaketen, die der Netzwerkanschaltung 2 über den
jeweils anderen externen Port 10, 9 zugeführt werden.
In diese Zwischenspeicher 39, 40 ist, wie in den 3B und 3C angedeutet, mehr als ein Datenpaket
einspeicherbar.
-
Gegebenenfalls könnten die Blöcke 15 bis 17 auch
weitere, in den FIG nicht dargestellte Zwischenspeicher aufweisen.
Beispielsweise könnten
die Zwischenspeicher 39, 40 in mehrere parallel
geschaltete FIFO-Speicher aufgeteilt sein. Dadurch könnte auf relativ
einfache Weise eine Priorisierung innerhalb der über den anderen externen Port 9, 10 zugeführten Datenpakete
erfolgen.
-
Die Funktionsweise der Sendemaschine 20 des
externen Blocks 16 wird nunmehr nachstehend in Verbindung
mit 5 näher erläutert. Die
Sendemaschine 21 des anderen externen Blocks 17 arbeitet
ein identisches Verfahren ab.
-
Gemäß 5 sendet die Sendemaschine 20 in
einem Schritt 41 Daten eines Datenpakets über den externen Port 9,
dem sie zugeordnet ist, aus. Sodann überprüft sie in einem Schritt 42,
ob das Datenpaket vollständig
gesendet wurde. Wenn dies nicht der Fall ist, kehrt sie zum Schritt
41 zurück.
Anderenfalls führt
sie einen Schritt 43 aus, in dem ein Zeitregister auf den Wert Null
gesetzt wird.
-
Nach dem Schritt 43 prüft die Sendemaschine 20 in
einem Schritt 44, ob der Wert des Zeitregisters eine erste Mindestpause
T1 erreicht hat. Wenn dies nicht der Fall ist, wird der Schritt
44 – zu
einem etwas späteren
Zeitpunkt, also mit einem etwas höheren Wert des Zeitregisters – wiederholt.
-
Wenn der Wert des Zeitregisters die
erste Mindestpause T1 überschritten
hat, wird vom Schritt 44 zu einem Schritt 45 verzweigt. Dort wird – durch überprüfen der
vom Belegungsermittler 27 übermittelten Bits – überprüft, ob hochpriore
Daten vom internen Port 8 zum Aussenden anstehen. Wenn
diese Prüfung
positiv verläuft,
wird in einem Schritt 46 mit dem Senden dieser Daten begonnen und
zum Schritt 41 verzweigt.
-
Wenn im Schritt 45 hingegen entschieden wurde,
dass keine hochprioren Daten vom internen Port 8 zum Senden
anstehen, wird zu einem Schritt 47 verzweigt. Im Schritt 47 wird überprüft, ob das Zeitregister
eine zweite Mindestpause T2 überschritten
hat. Die zweite Mindestpause T2 ist dabei größer als die erste Mindestpause
T1.
-
Wenn die zweite Mindestpause T2 nicht überschritten
ist, wird zum Schritt 44 zurückgesprungen.
Wenn die zweite Mindestpause T2 überschritten ist,
wird in einem Schritt 48 überprüft, ob Daten
vom anderen externen Port 10 zum Aussenden anstehen. Wenn dies der
Fall ist, wird in einem Schritt 49 mit dem Senden dieser Daten begonnen
und sodann zum Schritt 41 verzweigt.
-
Wenn hingegen keine Daten vom anderen externen
Port 10 zum Aussenden anstehen, wird in einem Schritt 50 überprüft, ob der
Inhalt des Zeitregisters eine dritte Mindestpause T3 überschritten
hat. Die dritte Mindestpause T3 ist dabei größer als die zweite Mindestpause
T2.
-
Wenn die dritte Mindestpause T3 nicht überschritten
ist, wird zum Schritt 44 verzweigt. Anderenfalls wird in einem Schritt
51 überprüft, ob – nunmehr niederpriore – Daten
vom internen Port 8 zum Aussenden anstehen. Wenn dies nicht
der Fall ist, wird zum Schritt 44 verzweigt. Wenn hingegen Daten
vom internen Port 8 zum Aussenden anstehen, wird in einem
Schritt 52 mit dem Senden dieser Daten begonnen und zum Schritt
41 verzweigt.
-
Den Datenpaketen sind also Prioritäten zugeordnet.
Die Sendemaschinen 20, 21 erfüllen die Funktion von Paketsteuerelementen,
mittels derer stets das höchstpriore
Datenpaket zuerst ausgegeben wird, wenn von dem jeweiligen externen
Block 16, 17 mehrere Datenpakete prinzipiell ausgebbar sind.
Dabei ist den Datenpaketen, die der Netzwerkanschaltung 2 über den
internen Port 8 zugeführt werden,
alternativ eine hohe oder eine niedrige Priorität zugeordnet. Den Datenpaketen,
die der Netzwerkanschaltung 2 über den jeweils anderen externen
Port 10, 9 zugeführt werden, ist eine mittlere
Priorität
zugeordnet.
-
Darüber hinaus werden die den externen Ports 9, 10 zuzuführenden
Datenpakete von den Sendemaschinen 20, 21 derart
verzögert,
dass zwischen dem Ende eines bereits ausgegebenen Datenpakets und
dem Anfang des nächsten
Datenpakets eine Mindestpause, nämlich
eine der Mindestpausen T1 bis T3, liegt. Die Mindestpause T1 bis
T3 ist dabei ersichtlich von der Priorität des zu sendenden Datenpakets
abhängig.
Ferner hängt
die Priorität
und damit indirekt auch die Mindestpause T1 bis T3 auch davon ab,
ob das zu sendende Datenpaket der Netzwerkanschaltung 2 über den
internen Port 8 oder den anderen ex ternen Port 10, 9 zugeführt wurde.
Die Mindestpause T1 bis T3 ist dabei um so größer, je geringer die Priorität des zu
sendenden Datenpakets ist.
-
Bereits oben stehend wurde erwähnt, dass die
Verbindungsschaltung 11 nicht eine prozessorgesteuerte
Schaltung ist, die ein Softwareprogramm ausführt, sondern eine festverdrahtete
Schaltung. Zur Sicherheit wird aber nochmals darauf hingewiesen,
dass auch die Sendemaschinen 20, 21 die oben stehend
in Verbindung mit 5 beschriebene Schrittfolge
nicht durch Abarbeiten eines Softwareprogramms realisieren, sondern
durch eine schaltungstechnische Ausbildung der Sendemaschinen 20, 21.
Das Wort „Maschinen" ist daher im vorliegenden
Fall im Sinne eine Turing-Maschine zu verstehen. Auch die anderen
Elemente der Verbindungsschaltung 11, beispielsweise die
Empfangsmaschine 18, die Belegungsermittler 27, 28,
die Adressextraktoren 29, 36 und auch die Adressvergleicher 30, 37 arbeiten
stets nicht ein Softwareprogramm ab, sondern sind schaltungstechnisch
derart ausgestaltet, dass sie die erforderliche Funktionalität realisieren.
-
Wie bereits erwähnt, weist die Netzwerkanschaltung 2 eine
Schnittstellenschaltung 14 auf, mittels derer die Verbindungsschaltung 11 parametrierbar
ist. Die Parametrierung der Verbindungsschaltung 11 umfasst
insbesondere die Vorgabe der Filteradressen, die den Adressvergleichern 30, 37 zugeführt werden,
sowie die Mindestpausen T1 bis T3. Gegebenenfalls können auch
weitere Parameter eingestellt werden. Beispielsweise können einzelne Ports,
insbesondere alternativ einer der beiden externen Ports 9, 10,
abschaltbar sein.
-
In den 6A bis 6D ist eine Erweiterung der
Netzwerkanschaltung 2 der 3A bis 3C dargestellt. Der wesentliche
Unterschied zur Darstellung der 3A bis 3C besteht darin, dass die
Netzwerkanschaltung 2 der 6A bis 6D zusätzlich zu den Blöcken 15 bis 17 einen
Zeitgeberblock 53 aufweist. Der Zeitgeberblock 53 dient
der Synchronisierung des an die Netzwerkanschaltung 2 angeschlossenen Endgeräts 1 mit
anderen Endgeräten 1.
-
Der interne Block 15 ist
in 6A dargestellt. Es
ist gegenüber 3A unverändert geblieben. Bezüglich des
internen Blocks 15 sind daher keine weiteren Ausführungen
erforderlich.
-
Die externen Blöcke 16, 17 hingegen
weisen zusätzliche
Elemente auf. So weisen die externen Blöcke 16, 17 insbesondere
empfangsseitige Paketselektoren 54, 55 auf. Mittels
dieser Paketselektoren 54, 55 wird geprüft, ob ein
dem jeweiligen externen Port 9, 10 zugeführtes Datenpaket
ein Zeit-Datenpaket ist. Ist das Datenpaket kein Zeit-Datenpaket,
wird es auf normale Datenausgänge 56, 57 der
externen Blöcke 16, 17 durchgeschaltet.
Wenn es hingegen ein Zeit-Datenpaket ist, wird es auf Zeitausgänge 58, 59 der
externen Blöcke 16, 17 durchgeschaltet.
-
Ein empfangenes Zeit-Datenpaket wird über den
entsprechenden Zeitausgang 58 bzw. 59 dem korrespondierenden
Zeiteingang 60 bzw. 61 des Zeitgeberblocks 53 zugeführt. Von
dem jeweiligen Zeiteingang 60 bzw. 61 wird es
einem Zeitstempelgenerator 62 zugeführt. Dieser kann anhand des
zugeführten
Zeitdatenpakets die Zeit ermitteln. Zur korrekten Ermittlung der
Zeit wird dabei dem Zeitstempelgenerator 62 über die
Schnittstellenschaltung 14 ein Korrekturwert zugeführt. Der
Korrekturwert ist also parametrierbar. Er dient der Berücksichtigung
der Zeit (Empfangszeitverzögerung
T4), die der Zeitstempelgenerator 62 benötigt, um
aus der übermittelten
Zeit den Anfangswert zu berechnen und in einen Zeitzähler 63 einzuspeichern.
-
Das Zuführen eines Zeitdatenpakets
zum Zeitgeberblock 53 erfolgt dabei auf die gleiche Weise wie
das Zuführen
eines Datenpakets zum internen Port B. Auch die Daten der Zeitdatenpakete
werden also bereits vor dem vollständigen Zuführen dieser Datenpakete zu
den externen Ports 9, 10 an den Zeitgeberblock 53 weitergeleitet.
-
Ebenso wie der interne Block 15 und
die externen Blöcke 16, 17 ist
auch der Zeitgeberblock 53 Bestandteil der Verbindungsschaltung 11.
Er ist somit ebenfalls als Hardware-Schaltung ausgebildet, in eine Ethernet-Anschaltung
integriert, gegebenenfalls in einen ASIC integriert oder gegebenenfalls
auch Teil des FPGA bzw. EPLD. Es wird also kein Softwareprogramm
abgearbeitet. Die Zeit, die benötigt wird,
um aus dem Zeitdatenpaket die korrekte Zeit zu ermitteln und an
den Zeitzähler 63 weiterzuleiten,
ist daher vorab ermittelbar. Dadurch ist eine hochgenaue Korrektur
im Zeitstempelgenerator 62 möglich. Ruf Grund der hochgenauen
Korrektur ist es ferner möglich,
dass der Zeitzähler 63 bei
jedem Erreichen eines Referenzwerts – z. B. einmal pro Sekunde – ein hochgenaues
Zeitsignal PPS über
die Schnittstellenschaltung 14 an das Endgerät 1 ausgibt.
-
Die oben stehend beschriebene Vorgehensweise
wird ausgeführt,
wenn das angeschlossene Endgerät 1 als
abhängiges
Endgerät
(Slave) betrieben wird, dem die Zeitreferenz über das Übertragungsmedium 3 vorgegeben
wird. Hierzu wird ein Modusregister der Schnittstellenschaltung 14 entsprechend
geladen. Der Inhalt dieses Registers legt beispielsweise fest, ob
das angeschlossene Endgerät 1 abhängig oder
unabhängig
ist. Ferner kann festgelegt sein, über welchen der externen Ports 9, 10 gegebenenfalls
ein Zeitdatenpaket empfangen wird und über welchen ein Zeitdatenpaket
gesendet wird.
-
Über
ein Zeitadressenregister kann ferner – z. B. durch Vorgabe an die
Paketselektoren 54, 55 – vorgegeben werden, welche
Datenpakete als Zeitdatenpakete erkannt und behandelt werden.
-
Wenn der Zeitgeberblock 53 als
Master betrieben werden soll, wird dem Zeitstempelgenerator 62 zu
vorbekannten Zeitpunkten, z. B. jede Sekunde, das hochgenaue Zeitsignal
PPS über
die Schnittstellenschaltung 14 zugeführt. Mit dem Eintreffen dieses Zeitsignals
PPS wird der Zeitzähler 63 jeweils
mit einem vorbestimmten Anfangswert geladen und neu gestartet. Der
Zeitzähler 63 übermittelt
daraufhin ein Anforderungssignal an eine Zeitsendesteuerung 64. Diese
fragt bei einer der Sendemaschinen 20, 21, eventuell
auch bei beiden Sendemaschinen 20, 21, ab, ob
diese ein Zeittelegramm sofort und ohne Verzögerung aussenden können. Er
wartet entsprechende Bestätigungen
von den Sendemaschinen 20, 21 ab.
-
Die Sendemaschinen 20, 21 überwachen,
ob sie anderweitig ein Datenpaket senden. Sie überwachen also, ob das Übertragungsmedium 3,
das heißt die
Leitungen 3, belegt sind. Sie senden ihre Bestätigungen
erst ab, wenn die Leitungen 3 frei sind.
-
Eine derartige Vorgehensweise ist
allgemein als Handshake bekannt und wird daher nachstehend nicht
näher beschrieben.
-
Wenn die Sendemaschinen 20, 21 der Zeitsendesteuerung 64 ihre
Sendebereitschaft angezeigt haben, übermittelt diese einem Zeitdatenpaketgenerator 65 ein
Startsignal. Dieser liest daraufhin vom Zeitzähler 63 den momentanen
Zählerstand
ein. Den Zählerstand
fügt er
in ein Zeitdatenpaket ein und sendet dieses über einen Zeitausgang 66 an
Zeiteingänge 67 und/oder 68 der
externen Blöcke 16, 17 und
von dort weiter zu den Sendemaschinen 20 bzw. 21.
Der Zählerstand
kann, falls erforderlich, vor dem Einfügen in das Zeitdatenpaket um
einen Korrekturwert korrigiert werden. Die Korrektur kann in einer Korrekturschaltung – ebenso
wie beim Empfang einer Zeitreferenz – erfolgen. Damit kann insbesondere eine
Sendezeitverzögerung
T5 kompensiert werden.
-
Die Sendemaschinen 20, 21 geben
dann das ihnen zugeführte
Zeitdatenpaket aus. Falls das Zeitpaket über beide externe Ports 9, 10 ausgegeben werden
soll, erfolgt das Auslesen des Zeitzählers 63 erst mit
dem Übermitteln
der Bestätigungen
von beiden Sendemaschinen 20, 21. Das Ausgeben
des Zeitdatenpakets an die Sendemaschinen 20 bzw. 21 erfolgt,
wie aus 6 ersichtlich
ist, direkt. Zwischen dem Zeitgeberblock 53 und den externen
Ports 9, 10 sind also keine Zwischenspeicher angeordnet.
-
Das Versenden der Zeitdatenpakete über die externen
Ports 9, 10 erfolgt auf die gleiche Weise wie das
Versenden eines Datenpakets, das den externen Ports 9, 10 über den
internen Port 8 zugeführt
wird. Daten eines Zeitdatenpakets werden also ebenfalls bereits
vor dem vollständigen
Zuführen
des Zeitdatenpakets über
die externen Ports 9, 10 ausgegeben.
-
Da auch der Zeitdatenpaketgenerator 65 als Hardware-Schaltung
ausgebildet ist, ist die durch diesen hervorgerufene Zeitverzögerung T5
vorab ermittelbar und/oder bekannt. Sie kann daher bei der Ermittlung
der korrekten Zeit berücksichtigt
werden. Der nötige
Korrekturfaktor zur Berücksichtigung
der Verzögerungszeit
T5, also der Sendeanfangswert, kann wieder über die Schnittstellenschaltung 14 parametrierbar
sein. Er bestimmt insbesondere den Anfangswert, der im Sendefall
in den Zeitzähler 63 geladen
wird, oder den Korrekturwert, um den der aus dem Zeitzähler 63 ausgelesene
Wert korrigiert wird.
-
Der Aufbau und die Wirkungsweise
des Zeitgeberblocks 53 werden nachfolgend in Verbindung mit
den 6, 7 und 8 nochmals
detaillierter beschrieben. Dabei wird zuerst der Sendefall, also
die Ausgabe eines Zeitdatenpakets beschrieben, danach der Empfangsfall,
also der Empfang eines Zeitdatenpakets.
-
Im Masterfall wird dem Zeitgeberblock 53 von
Zeit zu Zeit, z. B. jede Sekunde, das Zeitsignal PPS zugeführt. Dieses
Zeitsignal PPS wird innerhalb des Zeitgeberblocks 53 dem Zeitstempelgenerator 62 zugeführt. Das
Zeitsignal PPS dient also als Synchronisationspuls für den Zeitgeberblock 53.
-
Beim Zuführen des Synchronisationspulses PPS
speichert der Zeitstempelgenerator 62 im Zeitzähler 63 einen
Sendeanfangswert ein. Danach wird der Zeitzähler 63 getaktet inkrementiert.
Der Zeitzähler 63 ist
also ein Zählregister.
Der Sendeanfangswert korrespondiert mit der Sendeverzögerungszeit T5.
-
Wie bereits ausgeführt, übermittelt
die Zeitsendesteuerung 64 an die Sendemaschinen 20, 21 eine
Anfrage, ob diese ein Zeittelegramm sofort und ohne Verzögerung aussenden
können.
Dies entspricht einem Anforderungssignal, das an die Sendemaschinen 20, 21 übermittelt
wird. Die Sendemaschinen 20, 21 warten dieses
Anforderungssignal ab. Nach dessen Erhalt überprüfen sie, ob sie selbst gerade über das Übertragungsmedium 3 (die
Netzwerkleitungen 3) ein Datenpaket senden. Wenn dies nicht der
Fall ist, ist das Übertragungsmedium 3 nicht
belegt. In diesem Fall übermitteln
sie ihre Sendebereitschaft in Form eines entsprechenden Freigabesignals
an die Zeitsendesteuerung 64.
-
Sowie die Zeitsendesteuerung 64 die
Freigabesignale entgegen genommen hat, übermittelt sie das Startsignal
an den Zeitdatenpaketgenerator 65. Dieser liest daraufhin
den momentanen Zählerstand aus
dem Zeitzähler 63 aus.
Dieser Zählerstand
(= Wert) entspricht – gegebenenfalls
nach entsprechender Korrektur – der
zu übermittelnden
Zeitreferenz. Dieser Zeitreferenz werden vom Zeitdatenpaketgenerator 65 aber
noch zusätzliche
Informationen hinzugefügt.
Insbesondere wird ein komplettes Zeitdatenpaket erstellt. Der Zeitreferenz
werden also – siehe 4 – eine Quell- und ein Zieladresse
sowie eine Prioritäts-
und/oder eine Typinformation hinzugefügt. Diese zusätzlichen
Informationen können
den Zeitgeberblock 53 bzw. dem Zeitdatenpaketgenerator 65 vorab über die
Schnittstellenschaltung 14 vorgegeben werden.
-
Ferner ermittelt der Zeitdatenpaketgenerator 65 eine
Prüfinformation
(CRC = cyclic redundancy check) für das Zeitdatenpaket, also
insbesondere auch für
die Zeitreferenz.
-
Das so ermittelte Zeitdatenpaket
wird dann ohne weitere Verzögerung
an die Sendemaschinen 20, 21 übermittelt und von diesen als
Zeitreferenz über
das Übertragungsmedium 3 gesendet.
-
Wie aus 6 ersichtlich ist, ist der Zeitgeberblock 53 direkt
mit den Sendemaschinen 20, 21 verbunden, über welche
die Zeitreferenz in das Übertragungsmedium 3 einspeisbar
ist. Es erfolgt keine weitere Zwischenspeicherung. Im Zusammenwirken mit
dem Umstand, dass die gesamte in 6 dargestellte
Verbindungsschaltung 11 eine festverdrahtete Schaltung
ist, liegt daher zwischen dem Auslesen des Zeitzählers 63 und dem Senden
der Zeitreferenz über
das Übertragungsmedium 3 bzw.
die Leitungen 3 eine vorbestimmte Sendezeitverzögerung T5.
-
Der Sendeanfangswert bzw. der beim
Senden berücksichtigte
Korrekturwert korrespondiert mit der Sendezeitverzögerung T5.
Er ist somit derart bestimmt, dass durch ihn die Sendezeitverzögerung T5 kompensiert
wird. Insbesondere ergibt sich der Sendeanfangswert als f x T5,
wobei f die Taktfrequenz (z. B. 25 MHz) ist, mit der der Zeitzähler 63 inkrementiert wird.
Dieser Anfangswert kann – sei
es direkt als Zahlenwert, sei es indirekt durch Vorgabe der Sendezeitverzögerung T5 – dem Zeitgeberblock 53 vorgegeben
werden.
-
In der Regel erfolgt das Synchronisieren
zwischen den Endgeräten 1 mit
dem ersten Bit des neuen Zeitdatenpakets. Die Sendezeitverzögerung T5
ist daher in aller Regel durch das Auslesen des Zeitzählers 63 und
dem Beginn des Ausgebens der Zeitreferenz bzw. des Zeitdatenpakets
bestimmt.
-
In völlig analoger Weise wird vorgegangen, wenn
von einem der externen Blöcke 16, 17 über das Übertragungsmedium 3 ein Zeitdatenpaket
empfangen wird. In diesem Fall wird zunächst in den Paketselektoren 54, 55 überprüft, ob die
im Zeitdatenpaket enthaltene Quelladresse mit einer Sollquelladresse übereinstimmt.
Ebenso wird überprüft, ob die
im Datenpaket enthaltene Zieladresse mit einer Sollzieladresse übereinstimmt.
Die Adressen werden den Paketselektoren 54, 55 dabei
wieder über
die Schnittstellenschaltung 14 vorgegeben. Nur im Falle
einer Übereinstimmung
wird, wie bereits erwähnt,
das Zeitdatenpaket an den Zeitgeberblock 53 weitergeleitet. Ansonsten
entfallen die nachfolgend beschriebenen weiteren Schritte.
-
Im Falle der Übereinstimmung wird das Zeitdatenpaket
vom empfangenden externen Block 16, 17 dem Zeitstempelgenerator 62 zugeführt. Dieser überprüft zunächst anhand
der Prüfinformation,
ob die Zeitreferenz ordnungsgemäß übermittelt
wurde. Nur wenn dies der Fall ist, wird die Zeitreferenz weiter verarbeitet.
Ansonsten wird sie verworfen.
-
Im Falle eines ordnungsgemäß empfangenen
Zeitdatenpakets extrahiert der Zeitstempelgenerator 62 die
Zeitreferenz und korrigiert sie – siehe 7 – in
einer Korrekturschaltung 69 um einen Korrekturwert. Die korrigierte
Zeitreferenz wird dann als Empfangsanfangswert in den Zeitzähler 63 eingespeichert.
Ab dem Einspeichern des Empfangsanfangswertes wird der Zeitzähler 63 dann
getaktet inkrementiert. Wenn der Wert des Zeitzählers 63 einen Referenzwert
erreicht, der z. B. der nächsten
vollen Sekunde entspricht, wird in Form des Zeitsignals PPS ein
Synchronisationspuls an das angeschlossene Endgerät 1 ausgegeben.
-
Auch soweit es den Empfangsweg betrifft,
ist der Zeitgeberblock 53 direkt mit den Empfangsschaltungen 16, 17 verbunden, über die
die Zeitreferenz über
das Übertragungsmedium 3 empfangbar
ist. Es erfolgt also keine Zwischenspeicherung. In Verbindung mit
der Ausgestaltung der gesamten Verbindungsschaltung 11 als
Hardware-Schaltung ist somit auch die Verar beitungszeit zwischen
dem Empfangen der Zeitreferenz und dem Einspeichern des Empfangsanfangswertes
vorbestimmt. Diese Zeit wird nachstehend Empfangszeitverzögerung T4
genannt. Der Korrekturwert, um den die empfangene Zeitreferenz korrigiert
wird, kann daher derart bestimmt werden, dass durch ihn die Empfangszeitverzögerung T4
kompensiert wird. Er kann – analog
zum Sendeanfangswert – direkt
als Zahlenwert oder indirekt durch die Empfangszeitverzögerung T4
dem Zeitgeberblock 53 bzw. dem Zeitstempelgenerator 62 über die
Schnittstellenschaltung 14 vorgegeben werden.
-
In aller Regel erfolgt, wie bereits
erwähnt, eine
Synchronisation auf das erste empfangene Bit. Die Empfangszeitverzögerung T4
ist daher durch den Beginn des Empfangens der Zeitreferenz bzw. des
Zeitdatenpakets und das Einspeichern des Empfangsanfangswertes in
den Zeitzähler 63 bestimmt.
-
Wie ebenfalls bereits oben stehend
in Verbindung mit 6D ausgeführt, kann
durch eine entsprechende Vorgabe des Betriebsmodus bestimmt werden,
ob der Zeitgeberblock 53 als Master oder als Slave betrieben
wird. Es ist aber auch möglich,
den Zeitgeberblock 53 derart zu parametrieren, dass er seine
Rolle dynamisch wählt.
Dies wird nachstehend in Verbindung mit 8 näher
erläutert.
-
Gemäß 8 kann von der Zeitsendesteuerung 64 zunächst in
einem Schritt 70 überprüft werden,
ob dem Zeitstempelgenerator 62 über das Übertragungsmedium 3 eine
Zeitreferenz zugeführt
wurde und die zugeführte
Zeitreferenz ordnungsgemäß war. Dies
kann beispielsweise dadurch erreicht werden, dass, wie in 6D angedeutet, ein OK-Bit
an die Zeitsendesteuerung 64 übermittelt wird.
-
Wenn der Zeitsendesteuerung 64 dieses
Bit übermittelt
wird, setzt sie in einem Schritt 71 einen Zeitgeber auf den Wert
Null und startet ihn. Ferner setzt sie in einem Schritt 72 ein Masterbit
M auf den Wert Null. Das Masterbit M wird dem Zeitstempelgenerator 62 zugeführt, der
sich in diesem Fall als Slave verhält. Die weitere Abarbeitung
erfolgt dann anhand der empfangenen Zeitreferenz, wie bereits beschrieben
wurde.
-
Wenn der Zeitsendesteuerung 64 hingegen kein
OK-Bit übermittelt
wird, überprüft sie in
einem Schritt 73, ob der Zeitgeber einen Grenzwert erreicht hat.
Wenn dies der Fall ist, setzt sie in einem Schritt 74 das Masterbit
M auf den Wert Eins und gibt es an den Zeitstempelgenerator 62 aus.
Dieser stellt daraufhin auf Masterbetrieb um. Er nimmt also, solange ihm
das Masterbit M mit Wert Eins übermittelt
wird, über
die Schnittstellenschaltung 14 das Zeitsignal PPS entgegen
und schreibt jeweils den Sendeanfangswert in den Zeitzähler 63 ein.
Die Zeitsendesteuerung 64 ermittelt dann gemäß der oben
stehend beschriebenen Weise, ob ein Zeitdatenpaket versendet werden
kann und veranlasst gegebenenfalls das Versenden dieses Pakets.
-
Gemäß 8 wird also mit jedem Einspeichern des
Empfangsanfangswertes der Zeitgeber gestartet. Bis der Zeitgeber
den Grenzwert erreicht, wird der Zeitgeberblock 53 als
Slave betrieben. Er erzeugt also anhand der übermittelten Zeitreferenz das Zeitsignal
PPS (bzw. den Synchronisationspuls PPS). Wenn der Zeitgeber den
Grenzwert erreicht und überschreitet,
wird der Zeitgeberblock 53 hingegen als Master betrieben.
Er übermittelt
also selbst über
eine oder beide der Sendemaschinen 20, 21 eine
Zeitreferenz. Sobald wieder ein Zeitdatenpaket ordnungsgemäß empfangen
wird, also wieder ein Empfangsanfangswert in den Zeitzähler 63 eingespeichert
wird, konfiguriert sich der Zeitgeberblock 53 aber wieder
auf Slavebetrieb um.
-
Auch eine Mischform von Master- und
Slavebetrieb ist möglich.
In diesem Fall fungiert der Zeitgeberblock 53 z. B. bezüglich des
externen Ports 9 als Slave, nimmt also von dort eine Zeitreferenz
entgegen und ermittelt daraus – gegebenenfalls unter
Korrektur in der Korrekturschaltung 69 – den in das Register 63 einzuschreibenden
Anfangswert. Bezüglich des
anderen externen Ports 10 fungiert der Zeitgeberblock 53 als
Master. Der einzige Unterschied zum „normalen" Masterbetrieb ist, dass dem Zeitgeberblock 53 der
Synchronisationspuls PPS nicht von außen vorgegeben wird.
-
Die Korrektur der Sende- und der
Empfangszeitverzögerung
T5, T4 kann weiterhin in der Korrekturschaltung 69 und
der korrespondierenden sendeseitigen Korrekturschaltung erfolgen.
Sie kann aber auch vollständig
in der einen oder der anderen Korrekturschaltung 69 erfolgen.
-
Mittels der erfindungsgemäßen Netzwerkanschaltung 2 ist
somit auf einfache und kostengünstige Weise
eine Linientopologie mehrerer Endgeräte 1 aufbaubar. Bei
dieser Topologie bleibt dabei die Echtzeitfähigkeit erhalten. Durch Hinzunahme
des Zeitgeberblocks 53 kann dabei sogar auf einfache und hochgenaue
Weise eine Synchronisation mehrerer Endgeräte 1 bewirkt werden.