DE102005044835A1 - Synchronisieren von Knoten in einem Computernetzwerk - Google Patents

Synchronisieren von Knoten in einem Computernetzwerk Download PDF

Info

Publication number
DE102005044835A1
DE102005044835A1 DE200510044835 DE102005044835A DE102005044835A1 DE 102005044835 A1 DE102005044835 A1 DE 102005044835A1 DE 200510044835 DE200510044835 DE 200510044835 DE 102005044835 A DE102005044835 A DE 102005044835A DE 102005044835 A1 DE102005044835 A1 DE 102005044835A1
Authority
DE
Germany
Prior art keywords
node
synchronizing
messages
message
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE200510044835
Other languages
English (en)
Inventor
Jan Romberg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of DE102005044835A1 publication Critical patent/DE102005044835A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0664Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/08Speed or phase control by synchronisation signals the synchronisation signals recurring cyclically

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

Bei einem Verfahren zur Synchronisierung eines ersten Knotens mit einem zweiten Knoten in einem Netzwerk mit einer Anzahl von Knoten bestimmt der zweite Knoten, ob vor Ablauf eines empfänglichen Zeitintervalls eine synchronisierende Nachricht empfangen wurde oder nicht. Falls der zweite Knoten eine solche Nachricht empfängt, speichert er entsprechende Informationen. Andernfalls speichert der zweite Knoten Informationen, die zumindest bis zu einer gegebenen Schranke indizieren, für wie viele Berechnungszyklen in Folge keine synchronisierenden Nachrichten während der jeweiligen empfänglichen Intervalle des zweiten Knotens empfangen wurden. Die Erfindung stellt einen vorteilhaften Synchronisationsdient für das Netzwerk von Rechnerknoten zur Verfügung.

Description

  • Gegenstand der Erfindung
  • Die vorliegende Erfindung behandelt generell das Gebiet der Rechnernetzwerke, dabei besonders das Gebiet der Echtzeitanwendungen in der Regelungs- und Steuerungstechnik. Speziell betrifft die vorliegende Erfindung das Fachgebiet der gegenseitigen Synchronisierung von Rechnerknoten in Netzwerken von Rechnern. Bevorzugte Realisierungen der vorliegenden Erfindung stellen allen Knoten des Netzwerks eine gemeinsame Zeitbasis zur Verfügung. Dies gilt auch im Falle von beschränkten Nachrichtenverlusten bei der Kommunikation zwischen Rechnerknoten.
  • Hintergrund der Erfindung
  • Es existieren eine Reihe von weithin bekannten Protokollen für Echtzeitkommunikation in Regelungs- und Steuerungsanwendungen in der Automatisierungstechnik oder auch Anwendungen in der Automobilelektronik. Unter diesen Standards sind z.B. (1) das CAN (Controller Area Network) Protokoll, das den dominierenden Standard in der europäischen Autombilelektronik darstellt und darüber hinaus auch in der Automatisierungstechnik weit verbreitet ist, (2) das Protokoll TTP (Time-Triggered Protocol), und (3) der sich in der Entwicklung befindliche F1exRay-Standard z.B. für automobile Anwendungen. Während die letzteren zwei Standards eine einheitliche, fehlertolerante Zeitbasis für alle teilnehmenden Knoten eines Netzwerks herstellen, ist eine solche Zeitbasis in schwächer synchronisierten Protokollen wie CAN nicht vorgesehen.
  • Eine gemeinsame Zeitbasis für einige oder alle Knoten in einem Netzwerken ist aus mehreren Gründen hilfreich. Zum einen können aufeinanderfolgende Ereignisse, die sich in verteilten Umgebungen abspielen, mit Zeitstempeln der gemeinsamen Zeitbasis versehen werden, so dass ihre kausale Abfolge ermittelt werden kann. Das ist für verschiedene Anwendungen nützlich, so wie z.B. Diagnose (die Kette der Ereignisse im Vorfeld eines Fehlers kann so rekonstruiert werden.) Zum anderen können Anwendungsprogramme für Regelungs- und Steuerungsanweddungen mit verteilter Ausführung auf mehreren Rechnern geeigneterweise als synchrone Programme mit einem gemeinsamen logischen Taks ausgedrückt werden. In einem solchen synchronen Programm ist die verteilte Ausführung mehrerer Prozesse typischerweise deterministisch, d.h. das Ergebnis der gesamten Berechnung hängt allein vom anfänglichen inneren Zustand des Systems und den Eingaben an das System, aber nicht von der relativen Ausführungsgeschwindigkeit auf den verschiedenen Rechnern ab. Als weiterer Vorteil dieses Ansatzes kann angeführt werden, dass Regelungs- und Steuerungstechniker den Entwurf eines Systems typischerweise mit der intuitiven Vorstellung einer uniform fortschreitenden physikalischen Zeitbasis verbinden, die in der logischen Zeitbasis des synchronen Programms eine klare Entsprechung findet. Der synchrone Ansatz zur Programmierung ist deshalb für den Entwurf von Echtzeitsystemen in der Regelungs- und Steuerungstechnik verbreitet anzutreffen, wie durch den Erfolg von Entwurfswerkzeugen für Regelungstechnik (z.B. MATLAB Simulink von The MathWorks, Inc.) praktisch belegt ist.
  • Aus verschiedenen Gründen werden einfache und etablierte Protokolle wie CAN nach wie vor für eine große Anzahl von Anwendungen bevorzugt eingesetzt. So sind z.B. in der Automobilelektronik aufgrund der hohen produzierten Stückzahlen die Entscheidungen im Systementwurf sehr eng an die Stückkosten für Hardware wie z.B. Schaltkreise für die Netzwerkanbindung, gekoppelt. Die Einführung neuer Protokolle wie z.B. TTP oder FlexRay kann deshalb typischerweise erst dann in Erwägung gezogen werden, sobald die nötigen Schaltkreise in der Massenproduktion mit entsprechend geringen Stückkosten verfügbar sind. Des weiteren wir der Übergang zu neuen Bussystemen mit eigener Zeitbasis von dem großen potenziellen Aufwand der Umstellung sowohl für die Hersteller selbst als auch für deren Zulieferer behindert. So existieren z.B. für die Entwicklung eines neuen Automobils typischerweise einige eingebettete Rechnerknoten (Steuergeräte), die im Falle der Beibehaltung des existierenden Bussystems ohne größere Änderungen und somit Kosten verwendet werden können.
  • Wenn eine synchronisierte Zeitbasis im Kontext eines nichtsynchronisierten Basisprotokolls gefordert wird, ist es eine naheliegende Idee, einen Synchronisationsdienst auf der Grundlage der Dienste des Basisprotokolls zu verwenden. Das Basisprotokoll wird somit sowohl für den Austausch von Nachrichten der eigentlichen Anwendung als auch für den Informationsaustausch des Synchronisationsdienstes verwendet. Eine typische technische Randbedingung ist dabei, dass der Synchronisationsdienst so wenige zusätzliche Rechnerressourcen als möglich verwenden soll. Dies gilt vor allem für kostensensitive Anwendungen wie z.B. der erwähnten Automobilelektronik, wo zusätzliche Rechnerressourcen oft aus Kostengründen nicht bereitgestellt werden können.
  • Für das CAN-Protokoll gibt es bereits veröffentlichte Arbeiten zu Synchronisationsdiensten, wie z.B. das TT-CAN-Protokoll der Robert Bosch GmbH. Die deutsche Patentanmeldung DE 102 08 650 A1 legt Teile des Synchronisationsdienstes von TT-CAN offen. Das TT-CAN-Protokoll beschreibt zwei alternative Synchronisationsdienste, einer unter Verwendung zusätzlicher Hardwarebausteine (Level 2), einer ohne (Level 1). Knoten in einem TT-CAN-Netzwerk sind grundsätzlich an einen statisch bestimmten Ablaufplan (Schedule, Nachrichtenslots) gebunden, der die zeitliche Abfolge der Kommunikation auf dem Bus regelt. Dies bringt offensichtlich Probleme mit sich für den Fall, dass Steuergeräte integriert werden sollen, die sich inhärent nicht an den Ablaufplan halten. Ein Beispiel für ein solches Szenario ist die, wie bereits erwähnt, die Integration von Steuergeräten früherer Fahrzeuggenerationen in der Automobilelektronik. TT-CAN gewährt solchen Knoten grundsätzlich Lese-, aber keine Schreibzugriffe.
  • Zusammenfassung der Erfindung
  • Es ist ein Gegenstand der vorgelegten Erfindung, einen Synchronisationsdienst für ein Netzwerk von Rechnerknoten zur Verfügung zu stellen.
  • Es ist ein weiterer Gegenstand von bevorzugten Realisierungen der vorgelegten Erfindung, einen Synchronisationsdienst mittels eines kommerziell etablierten Protokolles als Basisprotokoll zur Verfügung zu stellen.
  • Es ist ein weiterer Gegenstand von bevorzugten Realisierungen der vorgelegten Erfindung, den Synchronisationsdienst mit minimalem zusätzlichen Aufwand and Rechnerressourcen zur Verfügung zu stellen.
  • Es ist ein weiterer Gegenstand von bevorzugten Realisierungen der vorgelegten Erfindung, einen Synchronisationsdienst bereitzustellen, der eine beschränkte Anzahl von verlorenen oder gestörten Nachrichten toleriert.
  • Es ist ein weiterer Gegenstand von bevorzugten Realisierungen der vorgelegten Erfindung, einen Synchronisationsdienst zur Verfügung zu stellen, der kompatibel ist mit der Integration von Rechnerknoten, die nicht spezifisch für die Verwendung mit dem Synchronisationsdienst entwickelt wurden, in einer Art und Weise, die es erlaubt, dass solche Rechnerknoten sowohl Schreib- als auch Lesezugriffe auf das Kommunikationsmedium erhalten.
  • Einer oder mehrere der beschriebenen Gegenstände werden erreicht, ganz oder zum Teil, durch ein Verfahren zur Synchronisation eines ersten Rechnerknotens mit einem zweiten Knoten, in einem Netzwerk mit einer Anzahl Knoten, wobei:
    • 1. der erste Knoten periodisch synchronisierende Nachrichten versendet
    • 2. der zweite Knoten periodisch Berechnungszyklen durchläuft, wobei jeder Berechnungszyklus aus einem empfänglichen Zeitintervall besteht, in dem der zweite Knoten eine synchronisierende Nachricht vom ersten Knoten erwartet, und
    • 3. für mindestens einige der Berechnungszyklen: (a) der zweite Knoten bestimmt, ob vor Ablauf des empfänglichen Zeitintervalls eine synchronisierende Nachricht empfangen wurde oder nicht, (b) der zweite Knoten, falls er eine synchronisierende Nachricht vom ersten Knoten innerhalb seines empfänglichen Zeitintervalls empfängt, Informationen speichert, die indizieren, dass die synchronisierende Nachricht innerhalb des empfänglichen Zeitintervalls des derzeitigen Berechnungszyklus empfangen wurde, (c) der zweite Knoten, falls er keine synchronisierende Nachricht vom ersten Knoten innerhalb seines empfänglichen Zeitintervalls empfängt, Informationen speichert, die zumindest bis zu einer gegebenen Schranke indizieren, für wie viele Berechnungszyklen in Folge keine synchronisierenden Nachrichten während der jeweiligen empfänglichen Intervalle des zweiten Knoten empfangen wurden.
  • Einer oder mehrere der obigen Gegenstände werden erreicht, ganz oder zum Teil, durch ein Verfahren zur gegenseitigen Synchronisiereung eines Senderknotens mit einem Empfängerknoten in einem Netzwerk, wobei:
    • 1. der Sender periodisch Nachrichten versendet, die möglicherweise zur Datenkommunikation der Anwendung verwendet werden, und keine explizite Dateninformation im Zusammenhang mit dem Synchronisierungsdienst enthalten müssen,
    • 2. der Empfänger periodisch Rechenzyklen durchläuft,
    • 3. sowohl Sender als auch Empfänger eine Möglichkeit haben, eine lokale Zeitbasis zu etablieren, zum Beispiel mit Hilfe eines eigenständigen Oszillators, oder durch Zählen von Prozessorzyklen,
    • 4. der Empfänger einen Zähler besitzt, und zwischen verschiedenen Betriebszuständen im Hinblick auf den Zustand der Synchronisierung unterscheidet,
    • 5. der Empfänger, für einen gegebenen Rechenzyklus, mit Hilfe seiner lokalen Zeitbasis in der Lage ist, den Ablaufzeitpunkt oder den Start- und Ablaufzeitpunkt eines definierten empfänglichen Zeitintervalls zu bestimmen, in dem eine Nachricht vom Sender erwartet wird,
    • 6. der Empfänger für einen gegebenen Rechenzyklus im Falle des Nachrichtenempfangs vom Sender innerhalb des empfänglichen Zeitintervalls den nächsten Rechenzyklus initiiert,
    • 7. der Empfänger für einen gegebenen Rechenzyklus im Falle der Abwesenheit von Nachrichten des Senders innerhalb des empfänglichen Zeitintervalls, falls sein lokaler Zähler kleiner ist als ein gegebener, nicht notwendigerweise konstanter Wert, in einen Betriebszustand eintritt, der indiziert, dass innerhalb des letzten empfänglichen Intervalls keine Nachricht empfangen wurde, und seinen lokalen Zähler hochzählt,
    • 8. der Empfänger für einen gegebenen Rechenzyklus im Falle der Abwesenheit von Nachrichten des Senders innerhalb des empfänglichen Zeitintervalls, falls sein lokaler Zähler größer ist als ein gegebener, nicht notwendigerweise konstanter Wert, in einen Betriebszustand eintritt, der indiziert, dass für eine gegebene Anzahl von Rechenzyklen keine Nachricht innerhalb des empfänglichen Zeitintervalls empfangen wurde.
  • Einer oder mehrere der obigen Gegenstände werden erreicht, ganz oder zum Teil, durch eine Vorrichtung, die aus einem Netzwerk mit einer Anzahl von Knoten besteht, die sich wie oben beschrieben verhalten.
  • Einer oder mehrere der obigen Gegenstände werden erreicht, ganz oder zum Teil, durch einen Netzwerkknoten bestehend aus:
    • 1. einem Eingabepuffer, mit einem speziellen Register für eine synchronisierende Nachricht, der zum Empfang von eingehenden Nachrichten von einem Kommunikationsmedium verwendet wird,
    • 2. einer Zustandssteuerung, die auf Ereignisse von einem Zeitgeber sowie auf eingehende synchronisierende Nachrichten reagiert,
    • 3. einem Puffer für empfangene eingehende Nachrichten, mit einem speziellen Register für eine synchronisierende Nachricht, der zum Speichern einer Kopie von eingehenden Nachrichten verwendet wird,
    • 4. einem Puffer für wartende ausgehende Nachrichten, mit einem speziellen Register für eine synchronisierende Nachricht, der zum speichern von ausgehenden Nachrichten verwendet wird, die zum Senden auf das Kommunikationsmedium bereitstehen,
    • 5. einem Ausgabepuffer, mit einem speziellen Register für eine synchronisierende Nachricht, der zum Speichern von ausgehenden Nachrichten verwendet wird,
    • 6. einer Sende-/Empfangssteuerung, die periodisch Werte aus dem Eingabepuffer in den Puffer für empfangene eingehende Nachrichten kopiert, sowie Werte aus dem Puffer für wartende ausgehende Nachrichten in den Ausgabepuffer kopiert, und
    • 7. einer Berechnungssteuerung, der periodisch die spezifische Berechnung der Anwendung, die auf der Vorrichtung ausgeführt wird, ausführt, die dazu die Werte aus dem Puffer für empfangene eingehende Nachrichten verwendet, und neue Werte für den Puffer für wartende ausgehende Nachrichten berechnet.
  • Einer oder mehrere der obigen Gegenstände werden erreicht, ganz oder zum Teil, durch ein Netzwerk mit einer Anzahl von Knoten, jeder Netzwerkknoten bestehend aus:
    • 1. einem Eingabepuffer, mit einem speziellen Register für eine synchronisierende Nachricht, der zum Empfang von eingehenden Nachrichten von einem Kommunikationsmedium verwendet wird,
    • 2. einer Zustandssteuerung, die auf Ereignisse von einem Zeitgeber sowie auf eingehende synchronisierende Nachrichten reagiert,
    • 3. einem Puffer für empfangene eingehende Nachrichten, mit einem speziellen Register für eine synchronisierende Nachricht, der zum Speichern einer Kopie von eingehenden Nachrichten verwendet wird,
    • 4. einem Puffer für wartende ausgehende Nachrichten, mit einem speziellen Register für eine synchronisierende Nachricht, der zum speichern von ausgehenden Nachrichten verwendet wird, die zum Senden auf das Kommunikationsmedium bereitstehen,
    • 5. einem Ausgabepuffer, mit einem speziellen Register für eine synchronisierende Nachricht, der zum Speichern von ausgehenden Nachrichten verwendet wird,
    • 6. einer Sende-/Empfangssteuerung, die periodisch Werte aus dem Eingabepuffer in den Puffer für empfangene eingehende Nachrichten kopiert, sowie Werte aus dem Puffer für wartende ausgehende Nachrichten in den Ausgabepuffer kopiert, und
    • 7. einer Berechnungssteuerung, der periodisch die spezifische Berechnung der Anwendung, die auf der Vorrichtung ausgeführt wird, ausführt, die dazu die Werte aus dem Puffer für empfangene eingehende Nachrichten verwendet, und neue Werte für den Puffer für wartende ausgehende Nachrichten berechnet.
  • Die im weiteren Verlauf des Dokuments geschilderten Ansprüche definieren bevorzugte Realisierungen der vorliegenden Erfindung.
  • In bevorzugten Realisierungen der vorliegenden Erfindung werden die Rechnerknoten logisch zu einem gewurzelten Baum im graphentheoretischen Sinne arrangiert, mit einem "Masterknoten" als Wurzel des Baums. Jede gerichtete Kante des Baums führt von einem "Elternknoten" zu seinem jeweiligen "Kindknoten". Die Synchronisierung des gesamten Netzwerks wird dann durch das oben beschriebene Verfahren erreicht.
  • Als Vorteil gegenüber bisher veröffentlichten Lösungen benötigt der Synchronisationsdienst, der durch die vorliegende Erfindung oder durch ihre bevorzugten Realisierungen bereitgestellt wird, keine zusätzlichen Ressourcen des Kommunikationsmediums für die Synchronisation, falls existierende periodische Nachrichten der Anwendung als synchronisierende Nachrichten verwendet werden.
  • Als weiterer Vorteil tolerieren die vorliegende Erfindung oder ihre bevorzugten Realisierungen eine beschränkte Anzahl von Nachrichtenverlusten oder -störungen auf dem Medium, wo mit der Synchronisationsdienst robust gegenüber physikalischen Störungen oder solchen Verletzungen von Zeitschranken, die in Nachrichtenverlust resultieren, ist.
  • Obschon der Synchronisationsdienst der vorliegenden Erfindung oder ihrer bevorzugten Realisierungen für ein spezifisches Protokoll wie CAN geeignet ist, besteht ein Vorteil gegenüber CAN-spezifischen Lösungen darin, dass die Erfindung auf eine breite Vielfalt von Punkt-zu-Punkt- oder Broadcast-Protokollen mit beschränkbaren Kommunikationslatenzen als Basisprotokoll adaptiert werden kann.
  • Als weiterer Vorteil der vorliegenden Erfindung oder ihrer bevorzugten Realisierungen ist die zeitliche Abfolge der Nachrichtenkommunikation auf dem Medium nicht an einen statisch bestimmten Ablaufplan (Schedule) gebunden, so dass Lese- und Schreibzugriff für Rechnerknoten, die nicht spezifisch für die Verwendung mit der Erfindung entworfen sind, möglich ist.
  • Kurzbeschreibung der Abbildungen
  • Weitere Merkmale, Gegenstände und Vorteile der vorliegenden Erfindung werden durch die folgende exemplarische Beschreibung von bevorzugten beispielhaften Realisierungen herausgearbeitet werden. Es wird dabei Bezug genommen zu den beigelegten schematischen Zeichnungen, mit jeweils folgendem Inhalt:
  • 1: Struktur der Teile eines Knotens in Blockdiagrammdarstellung, entsprechend einer beispielhaften Realisierung der vorliegenden Erfindung,
  • 2: Zeitlicher Verlauf der Bearbeitungsphasen für einen Berechnungszyklus k eines Knotens Ni, entsprechend einer beispielhaften Realisierung der vorliegenden Erfindung,
  • 3: Automatendarstellung der Zustandssteuerung entsprechend einer beispielhaften Realisierung der vorliegenden Erfindung, und
  • 4: Beschreibung eines Verfahrens zur Implementierung der Zustandssteuerung entsprechend einer beispielhaften Realisierung der vorliegenden Erfindung.
  • Detaillierte Beschreibung von beispielhaften Realisierungen der Erfindung In der hier beschriebenen beispielhaften Realisierung der Erfindung sind Rechnerknoten logisch in einem Baum im graphentheoretischen Sinne arrangiert, mit einem "Masterknoten" als Wurzel des Baumes. Die von der Wurzel abwärts gerichteten Kanten des Baumes werden im Folgenden als "synchronisierende Kanäle" bezeichnet, wobei jeder Kanal eine periodische Nachricht ("synchronisierende Nachricht") kommuniziert, die vom jeweiligen Empfänger ("Kindknoten" verwendet wird, um sich mit dem Sender ("Elternknoten") zu synchronisieren.
  • Ziel der hier beschriebenen beispielhaften Realisierung der Erfindung ist vor allem die gegenseitige Synchronisierung von Paaren von Eltern-/Kindknoten. Im nicht gestörten Betrieb, wo keine Nachrichten im Netzwerk gestört oder verloren werden, sendet der Elternknoten periodisch synchronisierende Nachrichten, und der Kindknoten readiert auf den Empfang einer synchronisierenden Nachricht durch Auslösung eines neuen Berechnungszyklus. Der Kindknoten verwendet einen Zeitgeber, um den Endzeitpunkt (und möglicherweise den Startzeitpunkt) des "empfänglichen Zeitintervalls" zu bestimmen. Für einen gegebenen Berechnungszyklus wird, falls eine synchronisierende Nachricht vom Elternknoten innerhalb des empfänglichen Intervalls empfangen wird, der nächste Berechnungszyklus ausgelöst. Für den Fall, dass die synchronisierende Nachricht nicht innerhalb des empfänglichen Intervalls empfangen wird, wird ein Zähler hochgezählt. Falls die Abwesenheit der synchronisierenden Nachricht für mehr als eine gegebene Anzahl von Zyklen bestehen bleibt, geht der Kindknoten in einen Betriebszustand über, der einen Verlust der Synchronisation mit dem Elternknoten anzeigt.
  • Die Daten, welche durch die synchronisierende Nachricht transportiert werden, können beliebige Daten der Anwendung sein, und für den Synchronisationsdienst müssen keine weiteren eigenständigen Daten kommuniziert werden.
  • In der hier beschriebenen beispielhaften Realisierung der Erfindung ist eine gemeinsame Basisperiode T für das Netzwerk definiert.
  • Da die logische Kommunikationstopologie der Anwendung sich typischerweise nicht auf eine Baumform beschränken lässt, kann der Baum zu einem gerichteten Multigraph erweitert werden, indem gestrichelte Kanten eingeführt werden. Die gestrichelten Kanten werden "nichtsynchronisierende Kanäle" genannt: die empfängerseitige Aktivierung des Berechnungszyklus wird nicht durch den Eingangszeitpunkt von nichtsynchronisierenden Nachrichten beeinflusst.
  • In der hier beschriebenen beispielhaften Realisierung der Erfindung kann sich ein Knoten in einem der drei Betriebszustände EXTERNALLY_TRIGGERED, MESSAGE_ABSENT oder SELF_TRIGGERED befinden. Im Zustand EXTERNALLY_TRIGGERED ist der Knoten mit seinem Elternknoten synchronisiert. Im Zustand MESSAGE_ABSENT hat der Knoten eine (möglicherweise vorübergehende) Abwesenheit der synchronisierenden Nachricht erkannt. Im Zustand SELF_TRIGGERED wird der Knoten periodisch durch seinen lokalen Zeitgeber aktiviert, unabhängig von eingehenden synchronisierenden Nachrichten.
  • Eine Anordnung, welche das Synchronisationsverfahren der hier beschriebenen beispielhaften Realisierung der Erfindung umsetzt, ist in 1 gezeigt: Nachrichten vom Kommunikationsmedium kommen periodisch am Eingabepuffer 100 an, der jeweils die zuletzt empfangene Nachricht enthält. Eine Zustandssteuerung 101 wird entweder von einem periodisch ablaufenden lokalen Zeitgeber 102 oder durch die Ankunft einer synchronisierenden Nachricht am Eingabepuffer 100 aktiviert. Die Zustandssteuerung berechnet den nächsten Betriebszustand des Knotens und aktiviert im Anschluss die Sende-/Empfangssteuerung 103, die dafür verantwortlich ist, Werte vom Eingabepuffer 100 zum Puffer für empfangene eingehende Nachrichten 105 sowie vom Puffer für wartende ausgehende Nachrichten 107 zum Ausgabepuffer 110 zu kopieren. Um den speziellen Wert für die synchronisierende Nachricht im Puffer für empfangene eingehende Nachrichten 105 zu erhalten, wird entweder die tatsächlich empfange synchronisierende Nachricht aus dem Eingabepuffer 100 oder eine vorgegebene synchronisierende Nachricht 104 verwendet. Um den speziellen Wert für die synchronisierende Nachricht im Ausgabepuffer 105 zu erhalten, wird entweder die tatsächlich berechnete Nachricht aus dem Puffer für wartende ausgehende Nachrichten 107 oder eine vorgegebene synchronisierende Nachricht 109 verwendet. Nachdem die Werte durch die Sende-/Empfangssteuerung kopiert wurden, aktiviert diese die Berechnungssteuerung, welche die eigentliche Berechnung der Anwendung basierend auf den empfangenen eingehenden Nachrichten 105 ausführt. Die anwendungsseitige Berechung ist dann dafür zuständig, die Werte für den Puffer für wartende ausgehende Nachrichten 107 zu berechnen. Parallel zu den Aktivitäten der einzelnen Steuerungen wird beständig versucht, die Werte aus dem Ausgabepuffer 110 auf das Kommunikationsmedium zu schreiben, wobei jeder Wert maximal einmal pro Berechnungszyklus versandt wird. Eine Nachrichtenrückzugssteuerung 111 ist für manche Basisprotokolle optional notwendig, um die zeitlichen Obergrenzen für die Kommunikation ausgehender synchronisierender Nachrichten, die durch die statische Analyse für maximale Verbleibzeiten im Ausgabepuffer ermittelt wurden, wie im folgenden beschrieben, auch unter nicht vorhergesehenen Betriebsbedingungen tatsächlich einzuhalten. Zu diesem Zweck wird von der Nachrichtenrückzugssteuerung 111 gegebenenfalls die ausgehende Nachricht zurückbehalten.
  • Die laufende Berechnungsphase kann durch die nächste Sende-/Empfangsphase unter bestimmten Umständen unterbrochen werden, so dass nicht alle Werte im Puffer für wartende ausgehende Nachrichten 107 berechnet werden konnten. Es wird dann angenommen, dass die Sende-/Empfangssteuerung 103 einen vorgegebenen Werte 109 für die ausgehende synchronisierende Nachricht verwendet. Folglich hängt die Verfügbarkeit einer synchronisierenden Nachricht für den nächsten Zyklus aufseiten eines Kindknotens nicht vom Abschluss des Berechnungszyklus aufseiten des Elternknotens ab.
  • 2 zeigt den zeitlichen Ablauf der Operationen, welche durch die hier beschriebene beispielhafte Realisierung der Erfindung ausgeführt werden. Während jedes Berechnungszyklus führt ein Knoten zwei aufeinanderfolgende Phasen aus: eine "Sende-/Empfangsphase" 200 sowie eine "Berechnungsphase" 201. Zeitpunkt ti,k 202 bezeichnet den Aktivierungszeitpunkt eines Knotens mit dem Index i in dem Berechnungszyklus mit dem Index k.
  • Die Sende-/Empfangsphase wird beim Masterknoten durch einen periodisch ablaufenden Zeitgeber und beim Nicht-Masterknoten durch die synchronisierende Nachricht 203 ausgelöst. Während dieser Phase wird die eingehende synchronisierende Nachricht 203 sowie die nichtsynchronisierenden Nachrichten, die während der letzten Sende-/Empfangsphase empfangen wurden 204, gelesen, und alle ausgehenden synchronisierenden Nachrichten 205 und nichtsynchronisierenden Nachrichten 206, die während der letzten Berechnungsphase berechnet wurden, werden in den Ausgabepuffer geschrieben. Da die Sende-/Empfangsphase eine bestimmte Zeit für ihre Ausführung benötigt, existiert ein definiertes "stilles Intervall", das die Sende-/Empfangsphase vollständig überdeckt, und während dessen der Knoten nicht in der Lage sein muss, eingehende synchronisierende Nachrichten zu verarbeiten. Der verbleibende Teil des Berechnungszyklus wird als "empfängliches Intervall" bezeichnet. Für nichtsynchronisierende Nachrichten, die innerhalb des stillen Intervalls ankommen, kann der Knoten entweder die Nachricht sofort lesen, und somit in der folgenden Berechnungsphase berücksichtigen, oder sie im Eingabepuffer lassen, so dass sie erst in einer späteren Berechnungsphase berücksichtigt wird. Das stille Intervall (0, Q] beginnt am Anfang eines Berechnungszyklus. Die hier beschriebene beispielhafte Umsetzung der Erfindungs stellt sicher, dass ein Knoten unter gegebenen Betriebsbedingungen keine synchronisierenden Nachrichten im Intervall (0, Q] erhält.
  • In der Berechnungsphase 201 wird die Berechnung der Anwendung ausgeführt, die empfangenen eingehenden Nachrichten 203, 204 werden verarbeitet, und die nächsten Werte für die ausgehenden Nachrichten werden berechnet. Ausgehende Nachrichten werden bis zur Aktivierung der nächsten Sende-/Empfangsphase gespeichert und dann ausgegeben 205, 206.
  • Das detaillierte Verhalten der Zustandssteuerung 101 für einen Knoten, der entsprechend der hier beschriebenen beispielhaften Realisierung der Erfindung ausgeführt ist, zeigen 3 und 4. In 3 ist die Zustandssteuerung initial entweder in Zustand EXTERNALLY_-TRIGGERED 300 (Nicht-Masterknoten) oder in Zustand SELF_TRIGGERED 302 (Masterknoten). Der Parameter Tma wird als "Abwesenheits-Erkennungszeit" bezeichnet. Er bezeichnet das Zeitintervall, nach dessen Ablauf im Falle des Nichtempfangs einer synchronisierenden Nachricht ein Knoten im Zustand EXTERNALLY_TRIGGERED 300 in den Zustand MESSA-GE_ABSENT 301 übergeht. Aus dem Zustand EXTERNALLY_TRIGGERED 300 schaltet die Zustandssteuerung in den Zustand MESSAGE_ABSENT 301 sobald der Zeitgeber mit dem Wert Tma abgelaufen ist und keine synchronisierende Nachricht im Zeitintervall [ti,k, ti,k + Tma) im k-ten Zyklus empfangen wurde. Der Parameter npf ist die "Elternknoten-Defekterkennungs-Anzahl". Sie bezeichnet die maximale Anzahl von Zyklen, welche ein Knoten im Zustand MESSAGE_ABSENT verbleibt, falls im gesamten Zeitraum keine synchronisierende Nachricht erkannt wurde. Vom Zustand MESSAGE_ABSENT 301 schaltet die Zustandssteuerung in den Zustand EXTERNALLY_TRIGGERED 300 wenn eine synchronisierende Nachricht zur Verfügung steht und der Zähler einen Wert kleiner als npf besitzt. Die Zustandssteuerung schaltet in Zustand SELF_TRIGGERED 302 falls der Zähler den Wert npf erreicht. Diese Methode der Eltern-Defekterkennung für Nicht-Masterknoten kann dann optional ein Rückfallverhalten initiieren, falls entweder der Elternknoten oder das Kommunikationsmedium tatsächlich für eine längere Zeit ausfällt.
  • 4 zeigt das detaillierte Verhalten der Zustandssteuerung in Form von Pseudocode. Die "Nachricht-Verfügbar-Routine" ("message available handler") 400 wird aktiviert sobald eine synchronisierende Nachricht im Eingabepuffer 100 verfügbar ist, während die Zeitgeber-Routine ("timer handler") 406 durch den Zeitgeber 102 ausgelöst wird, sobald der Zeitgeber den Wert T oder Tma erreicht. Die Nachricht-Verfügbar-Routine ist im Zustand SELF_TRIGGE-RED nicht aktiviert 401, 402. In den anderen Zuständen wird der Zeitgeber durch die Nachricht- Verfügbar-Routine zurückgesetzt 403, der Zustand wird nach EXTERNALLY_TRIGGERED geschaltet, und die Sende-/Empfangssteuerung 103 wird mit der Instruktion aktiviert, die empfangene synchronisierende Nachricht in den Puffer für empfangene eingehende Nachrichten 105 zu kopieren. Die Zeitgeber-Routine setzt im Zustand SELF_TRIGGERED 407, den Zeitgeber zurück 409 und aktiviert die Sende-/Empfangssteuerung 103 mit der Instruktion, eine vorgegebene Nachricht in den Puffer für empfangene eingehende Nachrichten 105 zu kopieren. Im Zustand MESSAGE_ABSENT 411 setzt die Zeitgeber-Routine den Zeitgeber zurück, zählt den Elternknoten-Defekterkennungs-Zähler nach oben 413, und ruft die Sende-/Empfangssteuerung unter Verwendung der vorgegebenen Nachricht 416 alle T Zeiteinheiten auf 408. Falls der Elternknoten-Defekterkennungs-Zähler größer oder gleich der Elternknoten-Defekterkennungs-Anzahl npf ist, wird in den Zustand SELF_TRIGGERED geschaltet. In Zustand EXTERNALLY_TRIGGERED 417 werden bei Ablauf von Tma Zeiteinheiten nach dem letzten Zurücksetzen 418 sowohl der Zeitgeber als auch Elternknoten-Defekterkennungs-Zähler zurückgesetzt 419 und in den Zustand MESSAGE_ABSENT geschaltet.
  • Nach der Initialisierung eines Netzwerkes von Knoten, die in einem Synchronisationsbaum entsprechend der hier beschriebenen bevorzugten Realisierung der Erfindung angeordnet sind, befindet sich der Masterknoten in Zustand SELF_TRIGGERED, während alle anderen Knoten in Zustand EXTERNALLY_TRIGGERED sind. In Zustand EXTERNALLY_TRIGGERED ist jeder Kindknoten mit seinem Elternknoten synchronisiert, und die Sende-/Empfangsphase wird periodisch durch den Eingang der synchronisierenden Nachricht aktiviert. Im Zustand MESSA-GE_ABSENT hat der Knoten eine (möglicherweise vorübergehende) Abwesenheit der synchronisierenden Nachricht festgestellt. Die Sende-/Empfangsphase wird in diesem Zustand durch den lokalen periodisch ablaufenden Zeitgeber aktiviert. Die gegebene Parametrisierung mit der Abwesenheits-Erkennungszeit und Elternknoten-Defekterkennungs-Anzahl sowie die gegebenen Einschränkungen für die relative Drift der lokalen Zeitgeber stellen sicher, dass ein Knoten, während er sich in Zustand MESSAGE_ABSENT befindet, jederzeit in der Lage ist, sich mit seinem Elternknoten neu zu synchronisieren. Im Zustand SELF_TRIGGERED wird ein Knoten periodisch durch seinen lokalen Zeitgeber aktiviert, und es gibt keine Zusicherungen über die Möglichkeit der Re-Synchronisation mit dem Elternknoten, falls ein solcher existiert.
  • Jeder Knoten verwendet einen lokalen Zeitgeber 102, der zum Beispiel durch einen Oszillator oder durch Zählen von Prozessorzyklen realisiert wird, um die Operationen der Zustands steuerung 101 sowie nachfolgende Operationen der Sende-/Empfangssteuerung 103 und der Berechnungssteuerung 106 zu aktivieren. Zeitgeber sind als physikalische Elemente nichtideal und gewissen Schwankungen unterworfen. timer(t) sei der Wert eines solchen nichtidealen Zeitgebers zum Zeitpunkt t. Für das korrekte Verhalten des synchronisierten Netzwerks ist es notwendig, dass es eine Konstante ε gibt, so dass die relative Drift für alle Zeitgeber eines Netzwerks durch ε begrenzt ist:
    Figure 00140001
  • In Kombination mit einer gemeinsamen Basisperiode T stellt die Annahme über beschränkte Zeitgeberdrift sicher, dass die tatsächliche, nichtideale physikalische Basisperiode jedes Knotens durch [T/(1 + ε), T/(1 – ε)] begrenzt ist, und dass die tatsächliche, nichtideale Abwesenheits-Erkennungszeit durch [Tma/(1 + ε), Tma/(1 – ε)] begrenzt ist.
  • Für jeden logischen Kanal l des Netzwerks wird die pessimistische Nachrichtenjitter-Annahme, d.h. die Differenz im maximalen Falle zwischen der kürzestmöglichen und der längstmöglichen Nachrichtenverzögerung, als Δli(l) bezeichnet. Diese Nachrichtenjitter-Annahme fasst den Jitter von Ende zu Ende eines logischen Kanals zusammen, d.h. im Falle eines synchronisierenden Kanals vom Zeitpunkt der Aktivierung einer Sende-/Empfangsphase am Elternknoten bis zur Aktivierung der korrespondierenden Sende-/Empfangsphase 202 beim Kindknoten. Die pessimistische Nachrichtenjitter-Annahme wird typischerweise beinhalten (1) den Ausführungszeit-Jitter der Sende-/Empfangssteuerung des Senders 103, (2) der Warteschlangen-Jitter aufseiten des Senders, der vom verzögerten Versand der Nachricht aus dem Ausgabepuffer verursacht wird 110, (3) Nachrichtentransport-Jitter des Kommunikationsmediums, (4) Antwortzeit-Jitter für die Aktivierung der empfängerseitigen Sende-/Empfangssteuerung 103 in Folge der Ankunft einer synchronisierenden Nachricht im Eingabepuffer 100.
  • Da der Nachrichtenjitter den Warteschlangen-Jitter aufseiten des Senders beinhaltet, kann eine angenommene obere Schranke für den Nachrichtenjitter ungültig sein für den Fall, dass das Kommunikationsmedium keine Nachrichten akzeptiert, z.B. durch nicht vorhergesehene Überlast oder externe Störungen. In der hier beschriebenen beispielhaften Umsetzung der Erfindung wird der vorausgesagte Warteschlangenjitter aufseiten des Senders immer eingehalten, so dass nach Ablauf des Jitterintervalls keine Nachricht versandt wird. Für manche Basisprotokolle wie z.B. CAN muss die Nachricht, die im Vorfeld in den Ausgabepuffer 110 geschrieben wurde eigens durch eine Nachrichtenrückzugssteuerung 111 zurückgezogen werden für den Fall, dass der vorausgesagte Warteschlangenjitter überschritten wird.
  • Für das korrekte Verhalten des Netzwerks, das durch die hier beschriebene beispielhafte Realisierung der Erfindung synchronisiert wird, muss der Nachrichtenjitter vom Masterknoten zu einem beliebigen anderen Knoten beschränkt sein. Li(N) bezeichne die Menge aller synchronisierenden Kanäle, die einen Pfad vom Masterknoten bis zum Knoten N bilden. Als Voraussetzung für das korrekte Verhalten des Netzwerks, das durch die hier beschriebene beispielhafte Realisierung der Erfindung synchronisiert wird, muss das Netzwerk einen beschränkten Nachrichtenjitter auf allen möglichen Pfaden Li(n) aufweisen. Ein Netzwerk hat einen beschränkten Nachrichtenjitter auf allen möglichen Pfaden falls:
    Figure 00150001
  • Ein Synchronisierungsverfahren sollte bevorzugterweise robust gegenüber beschränktem Verlust von Nachrichten sein. Solche Verluste können auch Ergebnis eines senderseitigen Abbruchs des Nachrichtenversands sein, wie z.B. im Fall des Überschreitens des angenommenen Warteschlangenjitters und folgendem Eingreifen der Nachrichtenrückzugssteuerung 111. Verluste können auch auf dem Kommunikationsmedium selbst auftreten. Als "n-beschränkter verlustbehafteter Kanal" wird ein logischer Kanal bezeichnet, der höchstens n – 1 aufeinanderfolgende Nachrichten verliert. Ein Netzwerk ist ein "n-beschränktes verlustbehaftetes Netzwerk" falls alle synchronisierenden Pfade vom Masterknoten zu anderen Knoten n-beschränkte verlustbehaftete Kanäle sind. Das Synchronisationsverfahren der hier beschriebenen beispielhaften Realisierung der Erfindung garantiert für alle Nicht-Masterknoten, dass niemals in den Zustand SELF_TRIGGERED geschaltet wird für den Fall, dass das Netzwerk npf-beschränkt verlustbehaftet ist.
  • Die speziellen technischen Lösungen, welche in der obigen Beschreibung von beispielhaften Realisierungen der Erfindung ausgeführt sind, sollten nicht als Einschränkung des Umfanges der Erfindung verstanden werden, sondern als Beispiele für bevorzugte Realisierungen der Erfindung. Demgemäß soll der Umfang der Erfindung nicht durch die veranschaulichten Ausführungsbeispiele, sondern durch die angehängten Ansprüche und ihre rechtlichen Äquivalente bestimmt werden.

Claims (29)

  1. In einem Netzwerk mit einer Anzahl von Knoten ein Verfahren zur Synchronisierung eines ersten Knoten mit einem zweiten Knoten, wobei: (a) der erste Knoten periodisch synchronisierende Nachrichten versendet (b) der zweite Knoten periodisch Berechnungszyklen durchläuft, wobei jeder Berechnungszyklus aus einem empfänglichen Zeitintervall besteht, in dem der zweite Knoten eine synchronisierende Nachricht vom ersten Knoten erwartet, und (c) für mindestens einige der Berechnungszyklen: i. der zweite Knoten bestimmt, ob vor Ablauf des empfänglichen Zeitintervalls eine synchronisierende Nachricht empfangen wurde oder nicht, ii. der zweite Knoten, falls er eine synchronisierende Nachricht vom ersten Knoten innerhalb seines empfänglichen Zeitintervalls empfängt, Informationen speichert, die indizieren, dass die synchronisierende Nachricht innerhalb des empfänglichen Zeitintervalls des derzeitigen Berechnungszyklus empfangen wurde, iii. der zweite Knoten, falls er keine synchronisierende Nachricht vom ersten Knoten innerhalb seines empfänglichen Zeitintervalls empfängt, Informationen speichert, die zumindest bis zu einer gegebenen Schranke indizieren, für wie viele Berechnungszyklen in Folge keine synchronisierenden Nachrichten während der jeweiligen empfänglichen Intervalle des zweiten Knoten empfangen wurden.
  2. Das Verfahren aus Anspruch 1, wobei mindestens einige der synchronisierenden Nachrichten Daten der Anwendung transportieren.
  3. Das Verfahren aus Anspruch 1, wobei einige der synchronisierenden Nachrichten frei von Informationen, die mit der Synchronisierungsaufgabe zu tun haben, sind.
  4. Das Verfahren aus Anspruch 1, wobei sowohl der erste als auch der zweite Knoten in der Lage sind, eine lokale Zeitbasis herzustellen.
  5. Das Verfahren aus Anspruch 4, wobei die lokale Zeitbasis mit Hilfe eines Oszillators und/oder durch Zählen von Prozessorzyklen hergestellt wird.
  6. Das Verfahren aus Anspruch 1, wobei der zweite Knoten einen Zähler aufweist, wobei der erste Wert des Zählers anzeigt, dass eine synchronisierende Nachricht innerhalb des empfänglichen Zeitintervalls des aktuellen Berechnungszyklus empfangen wurde, und wobei weitere Werte des Zählers anzeigen von der Anzahl von Berechnungszyklen abhängen, in denen keine synchronisierenden Nachrichten innerhalb des empfänglichen Zeitintervalls am zweiten Knoten empfangen wurden.
  7. Das Verfahren aus Anspruch 6, wobei der Wert des Zählers in jedem Berechnungsyklus, in dem keine synchronisierende Nachrichten innerhalb des empfänglichen Zeitintervalls am zweiten Knoten empfangen wurde, geändert wird, zumindest innerhalb einer gegebenen Schranke.
  8. Das Verfahren aus Anspruch 7, wobei ein zweiter Zähler anzeigt, dass ein Synchronisierungszustand vorliegt, in für mindestens eine gegebene Anzahl von Berechungszyklen keine synchronisierenden Nachrichten innerhalb des empfänglichen Zeitintervalls am zweiten Knoten empfangen wurden.
  9. Das Verfahren aus Anspruch 8, wobei mindestens eine der gegebenen Schranken nicht konstant ist.
  10. Das Verfahren aus Anspruch 1, wobei es nichtsynchronisierende Nachrichten zusätzlich zu den synchronisierenden Nachrichten gibt.
  11. Das Verfahren aus Anspruch 10, wobei mindestens einige der nichtsynchronisierenden Nachrichten vom ersten zum zweiten Knoten übertragen werden.
  12. Das Verfahren aus Anspruch 10, wobei mindestens einige der nichtsynchronisierenden Nachrichten vom zweiten zum ersten Knoten übertragen werden.
  13. Das Verfahren aus Anspruch 1, wobei der erste Knoten und/oder der zweite Knoten periodisch und jeweils abwechselnd eine Sende-/Empfangsphase sowie eine Berechnungsphase durchlaufen.
  14. Das Verfahren aus Anspruch 13, wobei die Sende-/Empfangsphase durch die Ankunft einer synchronisierenden Nachricht, durch einen ablaufenden Zeitgeber, oder beides ausgelöst wird.
  15. Das Verfahren aus Anspruch 13, wobei während der Sende-/Empfangsphase wartende nichtsynchronisierende Nachrichten empfangen und verfügbare synchronisierende und nichtsynchronisierende Nachrichten versandt werden.
  16. Das Verfahren aus Anspruch 13, wobei Nachrichten für die nächste Sende-/Empfangsphase berechnet werden durch ein Anwendungsprogramm, das während der Berechnungsphasen eines Knotens berechnet wird.
  17. Das Verfahren aus Anspruch 1, wobei der zweite Knoten in mindestens einem von drei Zuständen sein kann, EXTERNALLY_TRIGGERED, MESSAGE_ABSENT, oder SELF_-TRIGGERED, so dass: (a) im Zustand EXTERNALLY_TRIGGERED der zweite Knoten mit dem ersten Knoten synchronisiert ist, d.h. der zweite Knoten eine synchronisierende Nachricht während der empfänglichen Phase des aktuellen oder vergangenen Berechungszyklus empfangen hat, (b) im Zustand MESSAGE_ABSENT der zweite Knoten eine möglicherweise vorübergehende Abwesenheit der synchronisierenden Nachricht erkannt hat, d.h. der zweite Knoten keine synchronisierende Nachricht während der empfänglichen Phase des aktuellen oder vergangenen Berechungszyklus empfangen hat, (c) im Zustand SELF_TRIGGERED der zweite Knoten entweder von vornherein in diesem Zustand initialisiert wurde, oder keine synchronisierende Nachricht während der jeweiligen empfänglichen Phase in mindestens einer gegebenen Anzahl von Berechungszyklen empfangen hat.
  18. Das Verfahren aus Anspruch 17, wobei der Berechnungszyklus und alle folgenden Berechnungszyklen im Zustand SELF_TRIGGERED durch den Knoten selbst ausgelöst und aktiviert werden.
  19. Das Verfahren aus Anspruch 1, angewandt auf eine Anzahl von Paaren aus ersten und zweiten Knoten innerhalb eines Netzwerks, wobei die ersten und zweiten Knoten logisch in Form eines Baums im graphentheoretischen Sinne angeordnet sind, und jede Kante des Baums durch ein Paar aus ersten und zweiten Knoten gebildet wird.
  20. Das Verfahren aus Anspruch 19, wobei der Baum einen Masterknoten an der Wurzel des Baumes enthält sowie eine Anzahl von Nicht-Masterknoten als verbleibende Knoten.
  21. Das Verfahren aus Anspruch 20, wobei der Masterknoten in den Zustand SELF_TRIG-GERED initialisiert wird, und die Nicht-Masterknoten in den Zustand EXTERNALLY_-TRIGGERED initialisiert werden.
  22. Das Verfahren aus Anspruch 6, wobei der Wert des Zählers verglichen wird mit einer Elternknoten-Defekterkennungs-Anzahl npf, und die Elternknoten-Defekterkennungs-Anzahl npf fein konstanter Wert ist, der aus Basisperiode T, Schranke für relative Zeitgeberdrift ε, sowie Nachrichtenjitter des Kommunikationsmediums Δli(l) wie folgt berechnet wird:
    Figure 00190001
  23. Das Verfahren aus Anspruch 1, wobei eine Abwesenheits-Erkennungszeit Tma für jeden Knoten auf der Grundlage einer Basisperiode T wie folgt berechnet wird:
    Figure 00190002
  24. Das Verfahren aus Anspruch 19, wobei eine Abwesenheits-Erkennungszeit Tma für jeden Knoten berechnet wird, so dass, in Abhängigkeit von der Basisperiode T, Tma für alle Knoten im Intervall
    Figure 00190003
    liegt, und die individuellen Zuweisungen an Tma so gewählt werden, dass: (a) direkte Kindknoten des Masterknotens einen Wert von Tma nahe an T aufweisen, (b) Blattknoten im Synchronisierungsbaum einen Wert von Tma nahe an
    Figure 00190004
    ufweisen, (c) die individuellen Zuweisung an Tma so gewählt werden, dass die im pessimistischen Falle tolerierte Anzahl von verlorenen Nachrichten in auf den logischen Pfaden vom Masterknoten zu den Blattknoten maximiert wird.
  25. Das Verfahren aus Anspruch 24, wobei die individuellen Zuweisungen an Tma so gewählt werden, dass: (a) für alle gegebenen Knotenpfade vom Masterknoten bis zu einem Blattknoten im Synchronisationsbaum, die durch synchronisierende Kanäle verbunden sind, für jeden einzelnen synchronisierenden Kanal des Pfades bestimmt wird, wie groß die Anzahl der aufeinanderfolgend verlorenen Nachrichten ist, welche die jeweiligen Empfängerknoten des Kanals tolerieren können, ohne in einen anderen Synchronisationszustand zu wechseln, (b) die minimale Anzahl tolerierter verlorenener Nachrichten entlang des Pfades bestimmt wird, und (c) die Wahl der individuellen Zuweisungen an Tma so gewählt wird, dass diese minimale Anzahl tolerierter verlorener Nachrichten maximiert wird.
  26. Ein Verfahren zur gegenseitigen Synchronisation eines Senderknotens mit einem Empfängerknoten, wobei: (a) der Sender periodisch Nachrichten versendet, die möglicherweise zur Datenkommunikation der Anwendung verwendet werden, und keine explizite Dateninformation im Zusammenhang mit dem Synchronisierungsdienst enthalten müssen, (b) der Empfänger periodisch Rechenzyklen durchläuft, (c) sowohl Sender als auch Empfänger eine Möglichkeit haben, eine lokale Zeitbasis zu etablieren, zum Beispiel mit Hilfe eines eigenständigen Oszillators, oder durch Zählen von Prozessorzyklen, (d) der Empfänger einen Zähler besitzt, und zwischen verschiedenen Betriebszuständen im Hinblick auf den Zustand der Synchronisierung unterscheidet, (e) der Empfänger, für einen gegebenen Rechenzyklus, mit Hilfe seiner lokalen Zeitbasis in der Lage ist, den Ablaufzeitpunkt oder den Start- und Ablaufzeitpunkt eines definierten empfänglichen Zeitintervalls zu bestimmen, in dem eine Nachricht vom Sender erwartet wird, (f) der Empfänger für einen gegebenen Rechenzyklus im Falle des Nachrichtenempfangs vom Sender innerhalb des empfänglichen Zeitintervalls den nächsten Rechenzyklus initiiert, (g) der Empfänger für einen gegebenen Rechenzyklus im Falle der Abwesenheit von Nachrichten des Senders innerhalb des empfänglichen Zeitintervalls, falls sein lokaler Zähler kleiner ist als ein gegebener, nicht notwendigerweise konstanter Wert, in einen Betriebszustand eintritt, der indiziert, dass innerhalb des letzten empfänglichen Intervalls keine Nachricht empfangen wurde, und seinen lokalen Zähler hochzählt, (h) der Empfänger für einen gegebenen Rechenzyklus im Falle der Abwesenheit von Nachrichten des Senders innerhalb des empfänglichen Zeitintervalls, falls sein lokaler Zähler größer ist als ein gegebener, nicht notwendigerweise konstanter Wert, in einen Betriebszustand eintritt, der indiziert, dass für eine gegebene Anzahl von Rechenzyklen keine Nachricht innerhalb des empfänglichen Zeitintervalls empfangen wurde.
  27. Eine Vorrichtung, bestehend aus einem Netzwerk mit einer Anzahl von Knoten, wobei die Vorrichtung darauf ausgelegt ist, das Verfahren aus Anspruch 1 durchzuführen.
  28. Ein Netzwerkknoten, bestehend aus: (a) einem Eingabepuffer, mit einem speziellen Register für eine synchronisierende Nachricht, der zum Empfang von eingehenden Nachrichten von einem Kommunikationsmedium verwendet wird, (b) einer Zustandssteuerung, die auf Ereignisse von einem Zeitgeber sowie auf eingehende synchronisierende Nachrichten reagiert, (c) einem Puffer für empfangene eingehende Nachrichten, mit einem speziellen Register für eine synchronisierende Nachricht, der zum Speichern einer Kopie von eingehenden Nachrichten verwendet wird, (d) einem Puffer für wartende ausgehende Nachrichten, mit einem speziellen Register für eine synchronisierende Nachricht, der zum speichern von ausgehenden Nachrichten verwendet wird, die zum Senden auf das Kommunikationsmedium bereitstehen, (e) einem Ausgabepuffer, mit einem speziellen Register für eine synchronisierende Nachricht, der zum Speichern von ausgehenden Nachrichten verwendet wird, (f) einer Sende-/Empfangssteuerung, die periodisch Werte aus dem Eingabepuffer in den Puffer für empfangene eingehende Nachrichten kopiert, sowie Werte aus dem Puffer für wartende ausgehende Nachrichten in den Ausgabepuffer kopiert, und (g) einer Berechnungssteuerung, der periodisch die spezifische Berechnung der Anwendung, die auf der Vorrichtung ausgeführt wird, ausführt, die dazu die Werte aus dem Puffer für empfangene eingehende Nachrichten verwendet, und neue Werte für den Puffer für wartende ausgehende Nachrichten berechnet.
  29. Ein Netzwerk aus einer Anzahl von Netzwerkknoten, wobei jeder Netzwerkknoten besteht aus: (a) einem Eingabepuffer, mit einem speziellen Register für eine synchronisierende Nachricht, der zum Empfang von eingehenden Nachrichten von einem Kommunikationsmedium verwendet wird, (b) einer Zustandssteuerung, die auf Ereignisse von einem Zeitgeber sowie auf eingehende synchronisierende Nachrichten reagiert, (c) einem Puffer für empfangene eingehende Nachrichten, mit einem speziellen Register für eine synchronisierende Nachricht, der zum Speichern einer Kopie von eingehenden Nachrichten verwendet wird, (d) einem Puffer für wartende ausgehende Nachrichten, mit einem speziellen Register für eine synchronisierende Nachricht, der zum speichern von ausgehenden Nachrichten verwendet wird, die zum Senden auf das Kommunikationsmedium bereitstehen, (e) einem Ausgabepuffer, mit einem speziellen Register für eine synchronisierende Nachricht, der zum Speichern von ausgehenden Nachrichten verwendet wird, (f) einer Sende-/Empfangssteuerung, die periodisch Werte aus dem Eingabepuffer in den Puffer für empfangene eingehende Nachrichten kopiert, sowie Werte aus dem Puffer für wartende ausgehende Nachrichten in den Ausgabepuffer kopiert, und (g) einer Berechnungssteuerung, der periodisch die spezifische Berechnung der Anwendung, die auf der Vorrichtung ausgeführt wird, ausführt, die dazu die Werte aus dem Puffer für empfangene eingehende Nachrichten verwendet, und neue Werte für den Puffer für wartende ausgehende Nachrichten berechnet.
DE200510044835 2004-09-24 2005-09-20 Synchronisieren von Knoten in einem Computernetzwerk Withdrawn DE102005044835A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US61252804P 2004-09-24 2004-09-24
US60/612,528 2004-09-24
EP040229460 2004-09-27
EP04022946 2004-09-27

Publications (1)

Publication Number Publication Date
DE102005044835A1 true DE102005044835A1 (de) 2006-04-20

Family

ID=36120753

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200510044835 Withdrawn DE102005044835A1 (de) 2004-09-24 2005-09-20 Synchronisieren von Knoten in einem Computernetzwerk

Country Status (1)

Country Link
DE (1) DE102005044835A1 (de)

Similar Documents

Publication Publication Date Title
EP1814263B1 (de) Verfahren und Vorrichtung zum Austausch von Daten zwischen wenigstens Zwei mit einem Bussystem verbundenen Teilnehmern
EP2039568B1 (de) Verfahren und Vorrichtung zum Austausch von Daten zwischen wenigstens zwei mit einem Bussystem verbundenen Teilnehmern
EP2786513B1 (de) Verfahren zur synchronisation von uhren in knoten eines fahrzeugnetzes und zur durchführung des verfahrens eingerichteter knoten
DE10000305B4 (de) Verfahren und Vorrichtung zum Austausch von Daten zwischen wenigstens zwei mit einem Bussystem verbundenen Teilnehmern
EP1370956B1 (de) Bussystem aus wenigstens zwei datenbussen
AT407582B (de) Nachrichtenverteilereinheit mit integriertem guardian zur verhinderung von ''babbling idiot'' fehlern
DE102008007672B4 (de) Verfahren und Vorrichtung zum Übertragen von Daten in einem Netzwerk
EP2040402B1 (de) Verfahren und Vorrichtung zum Austausch von Daten zwischen wenigstens zwei mit einem Bussystem verbundenen Teilnehmern
EP2090031B1 (de) Verfahren und anordnung zur kommunikation auf einem lin-bus
DE102008018633A1 (de) Verfahren, Buskomponenten und Steuerungssystem zur Ethernet-basierten Steuerung eines Automatisierungssystems
WO2006111499A1 (de) Verfahren und vorrichtung zur synchronisation zweier bussysteme sowie anordnung aus zwei bussystemen
DE3506118A1 (de) Verfahren zum betreiben einer datenverarbeitungsanlage fuer kraftfahrzeuge
EP1763768B1 (de) Verfahren und vorrichtung zur steuerung eines bussystems sowie entsprechendes busysstem
EP1639758B1 (de) Verfahren und vorrichtung zum austausch von daten über ein bussystem
DE112018007743B4 (de) Kommunikationsgerät, Kommunikationssystem und Synchronisationssteuerungsverfahren
DE102014114883A1 (de) Verfahren und System zum Überwachen eines ersten Teilnehmers eines Kommunikationsnetzwerks
EP1428340B1 (de) Verfahren und vorrichtung zur erzeugung von programmunterbrechungen bei teilnehmern eines bussystems und bussystem
DE10053525A1 (de) Verfahren und System zur Synchronisation von Teilnehmern einer Kommunikationsverbindung
DE102005044835A1 (de) Synchronisieren von Knoten in einem Computernetzwerk
DE102009000581A1 (de) Synchronisierung zweier Kommunikationsnetzwerke eines elektronischen Datenverarbeitungssystems
WO2008062022A1 (de) Verfahren zur handhabe von daten
DE10358248A1 (de) Verfahren und Vorrichtung zum Hochfahren eines Knotens eines Kommunikationssystems
AT512266B1 (de) Verfahren und Vorrichtung zum Betreiben eines Slaves
EP2203991A2 (de) Funkkommunikationssystem, koordinatorgerät und kommunikationsendgerät
DE4024029A1 (de) Entscheidungslogik zur priorisierung und synchronisierung zeitlich asynchroner signale

Legal Events

Date Code Title Description
OR8 Request for search as to paragraph 43 lit. 1 sentence 1 patent law
8105 Search report available
8139 Disposal/non-payment of the annual fee