-
Stand der Technik
-
Die Erfindung betrifft ein Verfahren und ein System zur Synchronisation wenigstens zweier Teilnehmer, wobei jeder zu synchronisierende Teilnehmer einen eigenen Zeitgeber enthält und die Teilnehmer über wenigstens eine Kommunikationsverbindung in Verbindung stehen gemäß den Oberbegriffen der unabhängigen Ansprüche.
-
Als Stand der Technik in der automobilen Vernetzung wird seit einigen Jahren das CAN-Protokoll eingesetzt. Die Kommunikation ist dort ereignisgesteuert geregelt. Sehr große Lasten können erzeugt werden, wenn das Senden verschiedener Nachrichten zur gleichen Zeit initiiert werden soll. Der nicht-destruktive Arbitrierungsmechanismus von CAN garantiert, daß sequentielle Senden aller Nachrichten gemäß der Priorität ihrer Identifier bzw. Kennungen. Für harte Echtzeitsysteme muß vorab eine Analyse der Laufzeiten und Buslasten für das gesamte System gemacht werden, um sicher zu gehen, daß alle Nachrichten-Deadlines eingehalten werden können (selbst unter Spitzenbelastung).
-
Soll ein solches System zeitgesteuert betrieben werden, wie in der deutschen Patentanmeldung gemäß Offenlegungsschrift
DE 100 00 303 A1 gezeigt, wird beispielsweise ein erster Teilnehmer in einer Funktion als Zeitgeber die Nachrichten zeitlich derart steuern, dass er wiederholt eine Referenznachricht, die eine Zeitinformation bezüglich der Zeitbasis des ersten Teilnehmers enthält, in einem vorgebbaren zeitlichen Abstand über den Bus überträgt, wobei ein wenigstens zweiter Teilnehmer mittels seiner Zeitbasis eine eigene Zeitinformation abhängig von der Zeitinformation des ersten Teilnehmers bildet, wobei aus den beiden Zeitinformationen ein Korrekturwert ermittelt wird und der zweite Teilnehmer seine Zeitinformation und/oder seine Zeitbasis abhängig von dem Korrekturwert anpasst. Neben einer solchen Master-Synchronisation werden weitere Synchronisationsmechanismen eingesetzt.
-
So gibt es bereits Kommunikationsprotokolle, die auf einer zeitgesteuerten Abarbeitung basieren, wie z. B. TTP/C oder Interbus-S. Die Besonderheit hierbei ist, daß der Buszugriff bereits vorab durch Vergabe von Sendezeitpunkten geplant wird. Bei einer solchen impliziten Synchronisation wird somit ein Fahrplan aus Sendezeitpunkten vorgegeben, an welchen die Teilnehmer gebunden sind. Es wird also beim TTP/C-Protokoll die Zeitinformation durch Zuordnung der Kommunikationsobjekte zur globalen Zeit nach Fahrplan und entsprechenden Abgleich der lokalen Zeit der einzelnen Teilnehmer verteilt.
-
Während der Laufzeit kann es somit zu keinen Kollisionen kommen. Ebenso wird aber eine Spitzenlast am Kommunikationsbus vermieden. Dabei ist der Bus also häufig nicht vollständig ausgelastet.
-
Die
US Patentschrift 5,402,394 beschreibt ein Verfahren zum Betrieb von Recheneinrichtungen, welche über seriellen Datenbus verbunden sind, eigene Zeitgeber aufweisen und über den Datenbus Zeitinformationen austauschen. Es wird ein Ereignis zur Synchronisation auf dem Datenbus übermittelt. Es wird ein gemeinsamer Zeitbezug für die Teilnehmer bereitgestellt, indem für jeden Empfänger eine individuelle Transformation der Zeitinformation in dessen jeweiliges Zeitsystem vorgenommen wird.
-
Die
US Patentschrift 5,694,542 offenbart ein Verfahren, bei welchem in einer zeitgesteuerten TDMA-Kommunikation der Empfangszeitpunkt von Nachrichten in einem TDMA-Zyklus mit den jeweiligen erwarteten Empfangszeitpunkten verglichen wird und die ermittelten Abweichungen in ein Synchronisierungsverfahren eingehen. Beide genannten US-Patente referenzieren die Veröffentlichung „Clock Synchronization in Distributed Real-Time Systems” von H. Kopetz und W. Ochsenreiter (IEEE TRANSACTIONS ON COMPUTERS, VOL. C-36, NO. 8, AUGUST 1987, S. 933). Dort werden die Erzeugung einer fehlertoleranten Zeitbasis für ein verteiltes Echtzeitsystem, die erreichbare Synchonisierungsgenauigkeit und die Konzepte von instantaner und kontinuierlicher Synchronisierung behandelt.
-
Die
US Patentschrift 5,896,524 offenbart ein Verfahren, um die zeitliche Beziehung zwischen Ereignissen, die in einem Computersystem mit mehreren über ein Netzwerk verbundenen Prozessoren auftreten, zu bestimmen. Hierbei wird in einem 30 mit dem Netzwerk verbundenen Postprozessor eine globale Zeitinfirmation ermittelt.
-
So zeigt sich, dass der Stand der Technik nicht in jeder Hinsicht optimale Ergebnisse zu liefern vermag.
-
So soll in einem verteilten System ein Verfahren zur Synchronisation von Uhren bzw. interner Zeitgeber vorgestellt werden, welches sehr robust gegen viele unterschiedliche Fehlermechanismen ist und trotzdem eine sehr hohe Synchronisationsqualität ermöglicht.
-
Vorteile der Erfindung
-
Die Erfindung geht aus von einem Verfahren und einem System zur Synchronisation wenigstens zweier Teilnehmer, wobei jeder zu synchronisierende Teilnehmer einen eigenen Zeitgeber enthält und die Teilnehmer über wenigstens eine Kommunikationsverbindung in Verbindung stehen, wobei wenigstens ein Ereignis zur Synchronisation auf der Kommunikationsverbindung übermittelt wird.
-
Vorteilhafter Weise ermittelt ein erster Teilnehmer abhängig von dem Ereignis eine erste globale Zeit und wenigstens ein zweiter Teilnehmer abhängig von dem Ereignis eine zweite globale Zeit. Die jeweils ermittelte erste und zweite globale Zeit wird dann auf der Kommunikationsverbindung durch die entsprechenden Teilnehmer übermittelt, wobei jeder zu synchronisierende Teilnehmer aus der wenigstens ersten und zweiten globalen Zeit eine allgemeine globale Zeit ermittelt und den enthaltenen Zeitgeber mit der allgemeinen globalen Zeit synchronisiert.
-
Da damit die globale Zeit explizit genau auf dem Bus bzw. der Kommunikationsverbindung sichtbar ist, benötigt man keine implizite Information über den Kommunikationsfahrplan.
-
Weiterhin von Vorteil ist, dass das wenigstens eine Ereignis wiederholt auf der Kommunikationsverbindung übermittelt wird, wodurch sich ein solches Synchronisationsverfahren auch in nicht zeitgesteuerten Systemen verwenden lässt.
-
Zweckmäßigerweise sind Schnittstellen für eine externe Uhrensynchronisation automatisch enthalten.
-
Vorteilhafter Weise ermittelt jeder zu synchronisierende Teilnehmer die allgemeine globale Zeit in gleicher Weise.
-
Als Schutz gegen Fehler ist neben dem erfindungsgemäßen Verfahren bzw. Algorithmus auch noch der Datensicherungsmechanismus auf dem Bus, d. h. extreme Fehlersicherheit und -toleranz möglich.
-
Gegenüber einer genannten Impliziten Lösung sind die Controllerkosten teilweise deutlich geringer, da eine aufwendige Fahrplangenereierung und -überwachung entfällt, wobei die entstehende Bandbreitenreduzierung gegenüber dem impliziten System bei modernen Medien im Rahmen der Kommunikationsverbindung so gering ausfällt, dass diese zu keinen Funktionseinschränkungen führt.
-
Vorteilhafter Weise wird zusätzlich der Verlauf der ersten und/oder wenigstens zweiten globalen Zeit zwischen zwei Ereignissen und der Verlauf der allgemeinen globalen Zeit im ersten und/oder wenigstens zweiten Teilnehmer einander angenähert, insbesondere einander angeglichen.
-
Damit sind Alterungs- und Temperatureinflüsse und sonstige derartige Fehler- bzw. Abweichungsursachen problemlos kompensierbar.
-
In einer vorteilhaften Ausgestaltung steht eine erste Anzahl zu synchronisierender Teilnehmer über eine Kommunikationsverbindung in Verbindung und diese ermitteln je eine globale Zeit, wobei eine zweite Anzahl zu synchronisierender Teilnehmer die jeweilige globale Zeit auf der Kommunikationsverbindung übermittelt und die zweite Anzahl kleiner als die erste Anzahl ist. Dadurch ist die Buslast deutlich reduzierbar, da nicht jeder zu sychronisierende Teilnehmer seine globale Zeit auf den Bus legen muß und eine optimierbare, vorgebbare Zahl an Teilnehmern diesebezüglich auswählbar ist.
-
In einer weiteren Vorteilhafte Ausgestaltung wird aus dem Verlauf der ersten und/oder wenigstens zweiten globalen Zeit und dem Verlauf der allgemeinen globalen Zeit eine Korrekturgröße ermittelt mit welcher der Verlauf der ersten und/oder wenigstens zweiten globalen Zeit dem Verlauf der allgemeinen globalen Zeit angenähert, insbesondere angeglichen, wird. Hierbei kann für die Korrekturgröße ein Maximalwert und/oder ein Minimalwert vorgegeben werden.
-
Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Ansprüchen und der Beschreibung.
-
Zeichnung
-
Die Erfindung wird im Weiteren anhand der in der Zeichnung dargestellten Figuren näher erläutert. Dabei zeigt
-
1 schematisch ein Bussystem bzw. eine Kommunikationsverbindung mit mehreren Teilnehmern.
-
In 2 ist der zeitliche Ablauf des Verfahrens dargestellt.
-
Dieses Verfahren bzw. der Synchronisationsalgorithmus sowie optionale Ausgestaltungen werden noch einmal in 3 in einem Flussdiagramm veranschaulicht. In 4, bestehend aus 4a und 4b, wird die Korrektur der lokalen globalen Zeit eines Teilnehmers auf die allgemeine globale Zeit dargestellt.
-
Beschreibung der Ausführungsbeispiele
-
1 zeigt ein Bussystem 100 mit mehreren Busteilnehmern 101 bis 104. Jeder Teilnehmer 101 bis 104 besitzt dabei einen eigenen Zeitgeber 105 bis 108, die durch ein internes Mittel, wie eine Uhr, Zähler, Taktgenerator, etc. dargestellt werden. Dabei kann nun jeder ausgewählte Teilnehmer ein Ereignis auf dem Bussystem 100 bzw. der Kommunikationsverbindung übertragen, durch welches ausgelöst die einzelnen Teilnehmer jeweils eine eigene Globale Zeit Gi zu diesem Ereignis ermitteln also jeweils eine eigene Sicht auf die Globale Zeit G des Systems. Dabei können neben einem Bus also einer einzelnen Kommunikationsverbindung auch mehrere Busse eingesetzt werden, z. B. aus Redundanzgründen zwei. Dabei muß nicht jeder Teilnehmer wie dargestellt mit jedem Bus verbunden sein. Die Globale Zeit kann für jeden Bus und einen Abgleich der mit beiden Bussen verbundenen Teilnehmer 101 und 103 ermittelt werden.
-
2 zeigt den prinzipiellen Ablauf des Synchronisationsverfahrens. Zunächst wird ein Ereignis auf der Kommunikationsverbindung übermittelt. Dieses Ereignis kann beispielsweise von einem Teilnehmer der Kommunikationsverbindung ausgelöst sein. Dieses Ereignis ist beispielsweise, wie in 2 dargestellt, ein Synchronisationspuls SP. Dieser kann als reiner Impuls ausgelegt sein oder auch als steigende oder fallende Flanke eines Signals. Dabei kann ein explizit dafür vorgesehenes Signal übermittelt werden oder auch die Flanke eines vorgebbaren bzw. auswählbaren binären Signals, welches beispielsweise in einer Nachricht oder Botschaft auf dem Kommunikationssystem auf der Kommunikationsverbindung übermittelt wird. Ausgelöst durch dieses Ereignis senden nun bestimmte Teilnehmer jeweils eine zu diesem Ereignis ermittelte globale Zeit auf der Kommunikationsverbindung. Dabei sollten wenigstens zwei globale Zeiten Gi durch die Teilnehmer auf dem Kommunikationssystem übermittelt werden. Es müssen aber nicht alle Teilnehmer, die über die Kommunikationsverbindung in Verbindung stehen bzw. nicht alle zu synchronisierenden Teilnehmer, jeweils eine eigene globale Zeit auf dem Bussystem übermitteln.
-
Allerdings erfassen alle zu synchronisierenden Teilnehmer alle auf der Kommunikationsverbindung übermittelten globalen Zeiten Gi, um daraus jeweils eine allgemeine globale Zeit G zu ermitteln. Dies kann beispielsweise durch Mittelwertbildung mit oder ohne Streichung von Extremwerten oder Ähnlichem geschehen. Verwenden dabei alle zu synchronisierenden Teilnehmer das gleiche Verfahren zum Bilden der jeweiligen allgemeinen globalen Zeit, so ist im schlimmsten Fall innerhalb geringfügiger Toleranzen davon auszugehen, dass die jeweils ermittelte allgemeine globale Zeit der einzelnen Teilnehmer zum Zeitpunkt t3 übereinstimmt. Diese ermittelte allgemeine globale Zeit ist aber dann auf den Zeitpunkt t1 des Ereignisses bezogen.
-
Durch einen Vergleich (z. B. Differenzbildung, Quotientenbildung, etc.) der eigenen globalen Zeit Gi bezogen auf t1 im Zeitpunkt t3 mit der ermittelten allgemeinen globalen Zeit G, welche für den Zeitpunkt t1 gilt, kann eine Abweichung der globalen Zeit Gi jedes Teilnehmers zu der jeweiligen allgemeinen globalen Zeit G ermittelt werden. Mit Hilfe dieser Abweichung kann bei einem neuen Ereignis im Zeitpunkt t3 mit Hilfe einer aus der Abweichung ermittelten Korrekturgröße eine angeglichene bzw. angenäherte neue eigene globale Zeit Gi ermittelt werden, in welcher Fehlereffekte berücksichtigt sind.
-
Die Ermittlung der eigenen globalen Zeit muss nicht durch ein erneutes Ereignis ausgelöst sein, sondern kann auch beispielsweise nach einem vorgebbaren Abstand t oder auch einfach abfolgend ermittelt werden. Werden aber Ereignisse, speziell wiederholte Ereignisse, als Auslöser für eine Korrekturrechnung benutzt, so wird damit die im jeweiligen Teilnehmer vorhandene eigene globale Zeit der allgemeinen globalen Zeit der Kommunikationsverbindung mit allen Teilnehmern angenähert. Durch dieses quasi „Regelverfahren” der Anpassung der einzelnen globalen Zeiten kann eine optimale Synchronisation mit den vorher erwähnten Vorteilen erzielt werden.
-
Dies soll noch einmal im folgenden Flussdiagramm in 3 näher erläutert werden:
Im folgenden wird der Ablauf des Synchronisationsalgorithmus einschließlich der benötigten Voraussetzungen beschrieben.
-
Zunächst erfolgt in Block 300 eine Definition eines auf dem Bus sichtbaren Ereignisses. Ein solches Ereignis ist notwendig, entscheidend ist eine klare Definition dieses Ereignisses, die jeder Teilnehmer bzw. Controller überprüfen kann. Zur Abkürzung wird dieses Ereignis wie oben SP genannt.
-
Wichtig ist, dass alle Controller dieses Ereignis gleichzeitig wahrnehmen. Die Qualität der „Gleichzeitigkeit” beeinflusst direkt die Qualität der resultierenden Synchronisation. Die Gleichzeitigkeit kann auch rechnerisch hergestellt werden indem Laufzeiten, Wandlungszeiten oder ähnliche bekannte Einflussgrößen berücksichtigt werden.
-
Beispiele für ein solches Ereignis sind: Ein speziell dafür eingerichteter Synchronisationspuls. Ein bestimmtes bit (oder ein spezieller Teil davon) einer bestimmten Nachricht. Ein bestimmtes bit (oder ein spezieller Teil davon) der ersten (zweiten, ...) Nachricht nach einem bestimmten Ereignis.
-
Dabei ist zu beachten, dass schon durch die Definition des Ereignisses Fehlertoleranz in das System hineindesignt werden kann.
-
Dabei ist sicherzustellen dass das Ereignis oft genug kommt, wobei es nicht notwendig ist, dass dies periodisch geschieht.
-
Ebenso muß das Ereignis nicht immer vom gleichen Teilnehmer kommen. Wie oft das Ereignis kommt, hängt insbesondere von der speziellen Applikation ab und ist frei wählbar bzw. aus dem System entnehmbar. Falls das Ereignis (z. B. bei einer periodischen Sendung) einmal nicht kommt, ist ein späterer Zeitpunkt problemlos verwendbar, z. B. ein Senden in der nächsten Periode beeinflusst die Synchronisierungsqualität mit einem Faktor 2 (z. B. von 200 ns nach 400 ns).
-
Als nächstes ist in Block 301 ein Messmechanismus vorhanden.
-
In jedem zu sychronisierenden Controller muss ein Messmechanismus vorhanden sein, der den Zeitpunkt SP in der lokalen Sicht auf die globale Zeit festhalten kann. Dabei ist die Qualität (Auflösung) der Messgenauigkeit direkt proportional zur erreichbaren Synchronisationsqualität.
-
Die Globale Zeit G wird lokal typischerweise durch einen oder mehrere Counter, sowie gegebenenfalls zugehörige Offsets implementiert.
-
Es wird also in Block 301 ein „Snapshot” (z. B. Capture Compare) der lokalen Sicht der globalen Zeit zum Zeitpunkt des Ereignisses SP gefordert. Bezeichnung: Der Wert des Snapshots im Controller i wird entsprechend mit Gi bezeichnet.
-
In Block 302 werden die Werte Gi verschickt. Zwischen je zwei Ereignissen müssen die Werte Gi verschickt werden. Dies Kostet zwar Bandbreite, kann aber wie bereits erwähnt optimiert werden, da nicht alle Gi verschickt werden müssen, nur hinreichend viele (bei einem einzigen wird eine Mastersynchronisation durchgeführt).
-
Sinvoller Weise wird vorher, also off-line definiert, wann alle Gi 's, die berücksichtigt werden sollen, auch tatsächlich geschickt sind, wann die Erfassung der Gis z. B. in t2 beendet wird.
-
In Block 303 wird dann die Globale Zeit gebildet. Dabei wird insbesondere ein (z. B. fehlertoleranten) Algorithmus verwendet um aus den Gi die globale Zeit G (zum Zeitpunkt SP) zu bilden. Alle Knoten, auch die, deren Gi-Wert nicht zur globalen Zeit beiträgt, machen (irgendwann) zwischen dem letzten gesendeten Gi und dem nächsten SP diese Ermittlung. Beispiele für solche Ermittlungen sind:
- – G = (G1 + ... + Gn)/n, wobei z. B zuvor noch Extremwerte eleminiert werden können
- – G = FTA(G1, ..., Gn) mit irgend einem der in der Literatur bekannten fehlertoleranten Algorithmen.
- – G ist das „mittlere” der Gi
-
Sinnvoll ist dabei dass in jedem Controller der gleiche Algorithmus abläuft, wobei aber auch das Gegenteil denkbar ist, um beispielsweise eine Kompensation zu betreiben.
-
Jeder Knoten i kennt jetzt den Offset (G – Gi)seiner eigenen Sicht auf die globale Zeit zur tatsächlichen globalen Zeit (zum Zeitpunkt SP und bis auf die oben erwähnte Messungenauigkeit).
-
Beim nächsten SP in Block 304 wird dieser Offset verwendet um die globale Zeit zu korrigieren. Dabei gilt:
- – Es muss nicht direkt der Augenblick SP gewählt werden, es reicht aus, wenn die eigene Sicht auf die globale Zeit so korrigiert wird, dass keine Konsistenzprobleme auftreten.
- – „Rückwirkend” zum letzten SP hin ist damit sichergestellt, dass eigene Sicht der globalen Zeit und tatsächliche globale Zeit gleich sind (zumindest zum Zeitpunkt des letzten SPs).
- – Im eingeschwungenen Zustand kann der Offset sich nur noch um die Drift der eigenen Zeit zwischen zwei SPs verschieben. D. h. ist v1g die Geschwindigkeit der lokalen Sicht auf die globale Zeit und vg die Geschwindigkeit der globalen Zeit, dann ist (vg – vlg)·T der Wert des Offsets, wenn T das Zeitintervall zwischen den beiden betrachteten SPs ist.
- – Die Differenz (vg – vlg) hängt von der Qualität der Oszillatoren ab, die zur lokalen Erzeugung der globalen Zeit verwendet werden.
-
Eine weitere Vorteilhafte Ausgestaltung ergibt sich daraus, dass das Verfahren darüber hinaus noch dazu verwendet werden kann, die Differenz (vg – vlg) selbst klein zu machen, also wie in 4a und 4b nachfolgend dargestellt, den Verlauf der globalen Zeit und der eigenen lokalen Zeiten Gi anzupassen. Voraussetzung dafür ist, dass vg beeinflussbar ist. Dafür gibt es eine Reihe verschiedener Möglichkeiten (z. B. Oszillatoren deren Frequenz über eine Spannung beeinflusst wird, Hardware, die ab und zu einen Puls des Oszillators hinzufügen oder weglassen kann, eine nicht ganzzahlige Umsetzung des Clockticks in Counterwerte, usw...)
-
Weiterhin gilt, da Messung des Offsets nach dem obigen im wesentlichen eine Messung der Differenz vg – vlg ist, kann der neue Wert von vlg direkt durch Anwendung dieser Differenz erzeugt werden. D. h. die Differenz (Gi – G) muss im folgenden gleichmäßig über ein Intervall der Länge T verteilt werden.
-
Einweiterer Effekt ist die Clusterdrift, das bedeutet, dass durch die Regelung der Globalen Zeit mit Verwendung der ermittelten Globalen Zeit eine Toleranzfortpflanzung, quasi ein Aufschwingen des Verlaufs, also eine Drift der gesamten Zeit aller zu synchronisierender Teilnehmer als Clusterdrift auftreten kann. Man kann aber durch das erfindungsgemäße Verfahren weiter verhindern, dass der gesamte Cluster (zwar gut aufeinander synchronisiert) insgesamt abdriftet. Die erfolgt durch z. B. Festlegen eines Maximal/Minimalwerts für die Korrektur von vlg oder auch durch Systematisches Beeinflussen der Korrektur von vlg in Richtung der Konfigurationswerte. D. h. an Stelle des theoretisch idealen vlg-Werts verwendet man einen, der geringfügig näher am Konfigurationswert liegt. Die Details hängen dann immer vom Verfahren ab, mit dem man vlg beeinflusst (s. o.). Der Effekt dabei ist, dass die Synchronisierungsqualität geringfügig verschlechtert wird, dafür aber die Gesamtdrift des Clusters verhindert wird.
-
In 4 bestehend aus 4a und 4b ist die Korrekturrechnung beispielsweise für einen Teilnehmer dargestellt. Dabei zeigt 4a den Verlauf der lokalen globalen Zeit des jeweiligen Teilnehmers, in welcher sich Temperatur, Alterungserscheinungen usw. widerspiegeln gegenüber der allgemein ermittelten allgemeinen globalen Zeit. Dabei läuft beispielsweise der interne Zeitgeber des Teilnehmers schneller als beispielsweise ein Zeitgeber, welcher der allgemeinen globalen Zeit entsprechen würde. Dies zeigt sich im Verlauf der Kurven Gi und G insbesondere in deren Steigung. Beim ersten Ereignis werden die jeweiligen globalen Zeiten, insbesondere die dieses Teilnehmers, über das Kommunikationssystem übermittelt. Beispielsweise beim wiederholten Ereignis in SP2 ist dann die Abweichung (Vlg – Vg)·T zwischen dem internen Zeitgeber des Teilnehmers und der allgemeinen globalen Zeit vorhanden. Aus dieser Abweichung wird nun eine Korrekturgröße ermittelt und damit der Verlauf des internen Zeitgebers des Teilnehmers korrigiert. So wird also beispielsweise die Abweichung selbst (Vlg – Vg)·T über das Zeitfenster T verteilt. Dadurch läuft bis zu einem dritten Ereignis SP3 der interne Zeitgeber angenähert an die allgemeine globale Zeit.