-
Die
vorliegende Erfindung betrifft ein Verfahren zum Synchronisieren
einer Mehrzahl von datenverarbeitenden Einheiten in einem Netzwerk
sowie ein Netzwerk, in dem das Verfahren anwendbar ist.
-
Die
fortschreitende Elektronifizierung von Steuerungsaufgaben in der
Automobiltechnik hat dazu geführt,
dass elektrische und elektronische Einheiten wie etwa Sensoren,
Aktoren und Steuereinheiten für
die verschiedensten Aufgaben in immer größerer Zahl in modernen Kraftfahrzeugen
zum Einsatz kommen. Mit der Zahl dieser Einheiten steigt der Aufwand
für ihre
Verdrahtung. Um den Verdrahtungsaufwand und die damit verbundenen
Kosten in Grenzen zu halten, hat es sich als zweckmäßig erwiesen,
nicht mehr jeden einzelnen Sensor oder jedes einzelne Stellglied über individuelle
Signalleitungen mit einer der Erfassungssignale des Sensors verarbeitenden bzw.
Stellsignale für
das Stellglied liefernden Steuereinheit zu verbinden, sondern eine
Mehrzahl solcher Sensoren bzw. Stellglieder jeweils über eine
geeignete Schnittstellenschaltung an einen gemeinsamen Bus anzuschließen, auf
dem Signale in Form von adressierten Nachrichten im Zeitmultiplex
zwischen der Steuereinheit und den diversen Schnittstellen übertragen
werden können.
-
Die
Verwendung eines Busses reduziert zwar erheblich den Verdrahtungsaufwand,
doch wird dieser Vorteil dadurch erkauft, dass die zeitliche Koordinierung
verschiedener Sensoren und/oder Aktoren erschwert ist. Um in einem
busgestützten
Netzwerk zeitlich koordinierte Aktionen verschiedener angeschlossener
datenverarbeitender Einheiten (unter denen insbesondere die Kombination
eines Sensors oder Aktors mit seiner zugeordneten Schnittstellenschaltung
verstanden werden kann) auszuführen, muss
an diese Einheiten vor Beginn der auszuführenden Aktion ein Befehl gesendet
werden, der die Aktion und den Zeitpunkt ihrer Ausführung spezifiziert,
da in Folge des Zeitmultiplexbetriebes nicht gewährleistet werden kann, dass
zum gewünschten Zeitpunkt
der Aktion der Bus frei ist, um Befehle zum sofortigen Ausführen der
gewünschten
Aktion an die gewünschten
datenverarbeitenden Einheiten zu senden. Wenn aber ein Befehl, der
den Zeitpunkt einer Aktion spezifiziert, vorab an die datenverarbeitenden Einheiten
gesendet wird, so ist es für
die zeitliche Koordination der auszuführenden Aktionen unerlässlich,
dass die Einheiten über
einen gemeinsamen Zeitstandard verfügen.
-
Eine
Möglichkeit,
einen solchen für
alle datenverarbeitenden Einheiten gemeinsamen Zeitstandard zu etablieren,
ist die Verwendung eines auf dem Bus übertragenen Taktsignals, dessen
Perioden von den angeschlossenen Einheiten mitgezählt werden. Diese
Lösung
ist jedoch insofern unbefriedigend, als sie eine eigene Signalleitung
oder einen großen
Anteil der Übertragungsbandbreite
einer einzelnen Busleitung erfordert, und dass Zählfehler, die den einzelnen
datenverarbeitenden Einheiten aufgrund von Übertragungsstörungen auf
dem Bus unterlaufen können,
nur durch aufwändige
Zusatzmaßnahmen zu
beheben sind.
-
Eine
andere Möglichkeit
ist, jede datenverarbeitende Einheit mit einem eigenen Zeitsignalgeber auszustatten.
Unvermeidliche Streuungen der Arbeitsfrequenzen dieser Zeitsignalgeber
führen
jedoch dazu, dass eine anfängliche
Synchronität
im Laufe der Zeit verloren geht, so dass auch hier eine exakte zeitliche
Koordination von durch die einzelnen Einheiten auszuführenden
Aktionen nicht ohne Weiteres zu gewährleisten ist.
-
Vorteile der
Erfindung
-
Durch
die vorliegende Erfindung, wie in Anspruch 1 definiert, wird ein
Verfahren zum Synchronisieren einer Mehrzahl von datenverarbeitenden
Einheiten in einem Netzwerk geschaffen, das auf einfache Weise und
ohne starke Inanspruchnahme der Übertragungskapazität eines
die Einheiten verbindenden Busses eine exakte Synchronisierung der Einheiten
ermöglicht.
-
Von
den diversen an das erste Netz angeschlossenen Einheiten wird diejenige,
deren Zeit den Standard für
die anderen Einheiten bildet, als Master-Einheit und diejenigen, die ihre Zeit
an die der Master-Einheit anpassen sollen, als Slave-Einheiten bezeichnet.
-
Die
Synchronisierung zwischen Master- und Slave-Einheiten beruht auf der Übertragung
einer Synchronisationsnachricht auf dem ersten Netz, die einen Zeitwert
des lokalen Zeitgebers der Master-Einheit und eine Zeitmarke enthält.
-
Die
Zeitmarke ist – unter
Vernachlässigung von
Ausbreitungsverzögerungen
im ersten Netz – an allen
Einheiten gleichzeitig verfügbar
und wird genutzt, um einen momentanen Zeitmesswert des lokalen Zeitgebers
jeder Einheit aufzuzeichnen. Wenn in einer späteren Synchronisationsnachricht
die Master-Einheit den von ihr aufgezeichneten Zeitmesswert an die
Slave-Einheiten überträgt, können diese die
Abweichung zwischen ihrem lokalen Zeitgeber und dem der Master-Einheit
durch Vergleich des von ihnen aufgezeichneten mit dem übertragenen
Zeitmesswert erkennen und korrigieren.
-
Die
Genauigkeit der Korrektur ist bei diesem Verfahren unabhängig davon,
wie viel Zeit zwischen dem Zusammenstellen einer Synchronisationsnachricht
durch die Master-Einheit und ihrer Übertragung auf dem ersten Netz
vergeht. Es eignet sich daher besonders für Netze, bei denen diese Zeit
nicht exakt festgelegt ist bzw. je nach Netzauslastung variieren kann,
wie insbesondere das CAN-Netz.
-
Vorzugsweise
wird diese Synchronisationsnachricht auf dem ersten Netz zyklisch
gesendet.
-
Um
auszuschließen,
dass infolge einer Korrektur des lokalen Zeitgebers Zeitpunkte,
die für
ein bestimmtes Ereignis oder eine bestimmte Tätigkeit einer Slave-Einheit
vorgesehen sind, in der Zeitmessung der Slave-Einheit doppelt auftreten
oder wegfallen, ist es zweckmäßig, dass
die Master-Einheit in der Synchronisationsnachricht einen Zeitpunkt
für die Korrektur
des Zeitgebers der Slave-Einheiten
spezifiziert, der vom Zeitpunkt des Empfangs der Synchronisationsnachricht
abweichen kann. Dieser Zeitpunkt wird zweckmäßigerweise in Abhängigkeit
von der konkreten Anwendungssituation der Erfindung in einem ausreichenden
Abstand von Zeitpunkten gewählt,
an denen Aktionen der Slave-Einheit
vorgesehen sind.
-
Da
die Slave-Einheit nach dem Bilden der Differenz zwischen dem in
ihr aufgezeichneten Zeitmesswert und dem von der Master-Einheit übertragenen
Zeitmesswert die Abweichung ihres lokalen Zeitgebers vom Zeitgeber
der Master-Einheit kennt, ist sie in der Lage, den für die Korrektur
spezifizierten Zeitpunkt um die so erhaltene Differenz zu korrigieren,
noch bevor sie den lokalen Zeitgeber selbst korrigiert. Auf diese
Weise wird erreicht, dass alle Slave-Einheiten ihre lokalen Zeitgeber
unabhängig
von deren Gangunterschied zum Zeitgeber der Master-Einheit exakt
zu dem von der Master-Einheit spezifizierten Zeitpunkt korrigieren.
-
Die
Slave-Einheiten des ersten Netzes können wiederum Master-Einheiten,
als Sub-Master-Einheiten bezeichnet, eines zweiten Netzes sein,
in welchem sie ihrerseits Zeitgeber von Slave-Einheiten durch eine
auf dem zweiten Netz übertragene
Synchronisationsnachricht steuern.
-
Wenn
bei diesem zweiten Netz die Zeitspanne zwischen der Erzeugung einer
zu übermittelnden Synchronisationsnachricht
und ihrer Übertragung
im zweiten Netz festlegbar ist, kann zum Synchronisieren der Slave-Einheiten
im zweiten Netz ein einfacheres Verfahren angewendet werden, bei
dem die Sub-Master-Einheit jeweils eine Synchronisationsnachricht
mit einem vom Zeitmesswert ihres lokalen Zeitgebers abgeleiteten
Wert an die Slave-Einheiten übermittelt
und diese von dem übermittelten
Wert einen in ihre lokalen Zeitgeber zu übernehmenden Zeitmesswert ableiten.
Dabei kann es sich insbesondere bei einem der beiden Ableitungsvorgänge um eine
identische Übernahme
des Zeitmesswertes – vom
lokalen Zeitgeber der Sub-Master-Einheit in die Nachricht oder von
der Nachricht in den Zeitgeber der Slave-Einheit – und bei
der anderen Ableitung um eine Korrektur um die bekannte und konstante
Zeitspanne zwischen der Gewinnung des Zeitmesswertes in der Sub-Master-Einheit
und der Übertragung der
Nachricht an die Slave-Einheiten handeln.
-
Bei
diesem zweiten Netz kann es sich insbesondere um ein LIN- (Local
Interconnect Network) -Netz handeln.
-
Weitere
Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden
Beschreibung von Ausführungsbeispielen
mit Bezug auf die beigefügten
Figuren.
-
Figuren
-
Es
zeigen:
-
1 ein schematisches Blockdiagramm
eines hierarchischen Netzwerkes mit zwei Ebenen, in dem die vorliegende
Erfindung anwendbar ist;
-
2 ein Blockdiagramm einer
Einheit des Netzwerkes;
-
3 ein Zeitdiagramm des Ablaufs
der Synchronisation zwischen der Master-Einheit und einer Slave-Einheit
der mittleren Hierarchieebene, auch als Sub-Master-Einheit bezeichnet,
gemäß einer
ersten Ausgestaltung der Erfindung;
-
4 ein Zeitdiagramm des Ablaufs
der Synchronisation zwischen der Master-Einheit und Sub-Master-Einheiten
gemäß einer
zweiten Ausgestaltung der Erfindung; und
-
5 ein Zeitdiagramm der Synchronisation zwischen
einer Sub-Master-Einheit und daran angeschlossenen Slave-Einheiten
einer unteren Hierarchieebene.
-
1 ist ein Blockdiagramm
eines hierarchisch strukturierten Datenverarbeitungsnetzwerkes, bei
dem zwischen eine Master-Einheit 1 und eine Mehrzahl von
Slave-Einheiten 2 eine mittlere Hierarchieebene von Einheiten 3 eingefügt ist,
die sich der Master-Einheit 1 gegenüber als Slaves, den Slave-Einheiten 2 gegenüber als
Master-Einheiten verhalten und daher hier als Sub-Master-Einheiten 3 bezeichnet
werden sollen. Diese kommunizieren mit der Master-Einheit 1 über einen
CAN-Bus 4 und mit den Slave-Einheiten 2 über einen
LIN-Bus 5.
-
Wenn
in Bezug auf den CAN-Bus 4 hier eine einzelne angeschlossene
Einheit als Master-Einheit 1 bezeichnet wird, so bezieht
sich dies nur auf die Eigenschaft der Master-Einheit 1,
dass sie einen lokalen Zeitgeber aufweist, dessen Zeitmesswert für alle anderen
an den CAN-Bus 4 angeschlossenen Einheiten 3 verbindlich
ist; alle an diesen Bus angeschlossenen Einheiten 1, 3 können sich
die Herrschaft über
den CAN-Bus 4 im Zeitmultiplex teilen.
-
Auf
einem LIN-Bus 5 hingegen ist jeweils nur die Sub-Master-Einheit 3 berechtigt,
Nachrichten auf dem Bus 5 zu senden; Aufwärtsübertragungen
von Daten von den Slave-Einheiten 2 zur Sub-Master-Einheit 3 finden
jeweils nur auf Anforderung der Sub-Master-Einheit 3 statt.
-
Die
Slave-Einheiten 2 setzen sich jeweils zusammen aus einer
Schnittstelle für
die Buskommunikation und einer Steuerschaltung zum Steuern eines angeschlossenen
Gerätes,
beispielsweise eines Blinkers oder eines Scheibenwischermotors eines Kraftfahrzeuges,
von Schlössern
einer Zentralverriegelung, etc.
-
Um
das Ein- und Ausschalten der Blinker oder die Bewegung der Scheibenwischer
zeitlich zu koordinieren, müssen
die diesen Geräten
jeweils zugeordneten Slave-Einheiten 2 synchronisierte
lokale Zeitgeber aufweisen. Diese müssen nicht nur innerhalb eines
einzelnen LIN-Netzes synchronisiert sein, sondern für komplexe
Steueraufgaben, die zum Beispiel das Zusammenwirken von Blinkerleuchten
mit der Betätigung
einer Zentralverriegelung erfordern, müssen auch die Slave-Einheiten 2 verschiedener LIN-Busse 5 synchronisiert
sein.
-
Eine
systemweite Synchronisation findet in zwei Stufen statt, wobei eine
erste Stufe die Synchronisation aller Sub-Master-Einheiten 3 mit
der Master-Einheit 1 und
die zweite Stufe die Synchronisation der Slave-Einheiten 2 mit
der jeweils ihnen zugeordneten Sub-Master-Einheit 3 umfasst.
-
Im
Folgenden wird zunächst
die Synchronisation der Master-Einheit 1 mit den Sub-Master-Einheiten 3 über den
CAN-Bus 4 betrachtet.
-
2 zeigt schematisch den
Aufbau der Master-Einheit 1.
Ein Taktgenerator 6 liefert ein Taktsignal an einen Steuerprozessor 7,
der programmgesteuert anhand von externen Befehlen und über den CAN-Bus 4 empfangenen
Daten diverse Steuerungsaufgaben wahrnimmt, die nicht Gegenstand
der vorliegenden Erfindung sind und hier nicht weiter behandelt
wer den. Das Taktsignal des Taktgenerators 6 steuert fernen
einen lokalen Zeitgeber 8 in Form eines digitalen Zählers an,
dessen Zählerstand
mit jeder Periode des Taktsignals inkrementiert (oder dekrementiert)
wird und so einen Zeitmesswert darstellt. An einen Ausgang des Zeitgebers 8 ist
u.a. der Steuerprozessor 7 angeschlossen, um den Zeitmesswert
des Zeitgebers 8 zu lesen.
-
Eine
Bus-Schnittstelle 9 kommuniziert unter der Kontrolle des
Steuerprozessors 7 mit dem CAN-Bus 4. Unter anderem überwacht
sie den CAN-Bus 4 auf das Auftreten von Zeitmarken in darauf übertragenen
Synchronisationsnachrichten. Auf das Auftreten einer Zeitmarke reagiert
sie durch Unterbrechen des Steuerprozessors 7, der daraufhin den
Zeitmesswert des Zeitgebers 8 liest und in einem Register
oder einem festgelegten Speicherplatz 10 abspeichert. Der
Inhalt des Speicherplatzes 10 wird als Zeitmesswert in
die nächste
Synchronisationsnachricht eingefügt,
die der Steuerprozessor 7 erzeugt und auf dem CAN-Bus 4 sendet.
-
Der
Schaltungsaufbau mit Taktgenerator 6, Steuerprozessor 7,
Zeitgeber 8, Bus-Schnittstelle 9 und Speicher 10 ist
bei den Sub-Master-Einheiten 3 der gleiche wie bei der
Master-Einheit 1 und wird deshalb nicht eigens beschrieben;
die beiden Typen von Einheiten unterscheiden sich lediglich in der
Arbeitsweise ihrer Steuerprozessoren, wie nachfolgend anhand des
Zeitdiagramms der 3 erläutert wird.
-
Drei
parallele Zeitstrahlen M, C, SM in diesem Diagramm symbolisieren
jeweils den Zeitgeber 8 der Master-Einheit 1,
den CAN-Bus 4 und den Zeitgeber 8 einer der Sub-Master-Einheiten 3.
Das Diagramm beginnt mit einer Synchronisationsnachricht, dargestellt
als Rechteck SYNC, auf dem CAN-Bus 4. Das Ende dieser Nachricht,
symbolisiert durch eine vertikale strichpunktierte Linie t1, stellt
eine Zeitmarke dar, auf die Master- und Sub-Master-Einheit 1, 3 reagieren,
indem sie die Zeitmesswerte ihrer Zähler, in der Fig. dargestellt
als Zahlenwerte über
jedem eine Taktperiode symbolisierenden Sechseck, in ihrem Register 10 speichern.
Zum Zeitpunkt t1 sind die aufgezeichneten Werte beide Null, das
heißt
die Zeitgeber von Master- und Sub-Master-Einheit 1 bzw. 3 sind
auf ± eine
Taktperiode synchron.
-
Zu
einem beliebigen späteren
Zeitpunkt, zum Beispiel jedes Mal beim Auftreten eines Zählwertes
250 des Zeitgebers der Master-Einheit 1, stellt diese eine
neue Synchronisationsnachricht zusammen und überträgt sie an die Bus-Schnittstelle 9,
um sie auf dem CAN-Bus 4 senden zu lassen. Zu diesem Zeitpunkt
ist der CAN-Bus durch eine andere Nachricht MSG belegt, so dass
die neue Synchronisationsnachricht SYNC erst mit Freiwerden des
Busses gesendet werden kann. Den Zeitpunkt, zu dem die Bus-Schnittstelle 9 die
Synchronisationsnachricht wird senden können, ist dem Steuerprozessor 7 der Master-Einheit 1 beim
Erzeugen der Nachricht nicht bekannt.
-
Wenn
die Übertragung
der neuen Nachricht SYNC zur Zeit t2 endet, hat der Zeitgeber der
Master-Einheit 1 den Wert 255, der der Sub-Master-Einheit 3 den Wert
254. Beide Werte werden in dem hierfür vorgesehenen Speicherplatz 10 der
jeweiligen Einheiten aufgezeichnet.
-
In
die nächste
Synchronisationsnachricht SYNC wird der Zählwert 255 des Zeitgebers der
Master-Einheit eingefügt.
Die Übertragung
dieser Nachricht SYNC endet zum Zeitpunkt t3, bei einem Zählwert 4 des
Zeitgebers der Master-Einheit 1 bzw. 3 des Zeitgebers
der Sub-Master-Einheit 3. Letztere bildet nun die Differenz
zwischen dem in der Synchronisationsnachricht SYNC empfangenen Zählwert 255
der Master-Einheit und dem eigenen Zählwert 254 und erkennt daran,
dass sie um eine Taktperiode verzögert ist. Daraufhin erhöht sie den
momentanen Zählwert
des eigenen Zeitgebers um die festgestellte Differenz und ist dadurch
wieder perfekt synchronisiert.
-
4 zeigt in einer analogen
Darstellung zu 3 den
zeitlichen Ablauf der Synchronisation gemäß einer weiterentwickelten
Ausgestaltung des Verfahrens. Hier werden vier Zeitstrahlen betrachtet,
einer, mit C bezeichnet, für
den CAN-Bus 4 und jeweils einer, mit M bezeichnet, für eine Master-Einheit 1 und zwei,
mit SM1, SM2 bezeichnet, für
zwei Sub-Master-Einheiten 3. Eine erste auf dem Bus 4 übertragene
Synchronisationsnachricht SYNC enthält zwei Datenfelder, hier mit
den Inhalten 255 und 127, auf deren Funktion an späterer Stelle
eingegangen wird. Das Ende der Übertragung
der Synchronisationsnachricht SYNC stellt eine Zeitmarke dar, deren
Auftreten auf dem Bus zum Zeitpunkt t1' die Master-Einheit und beide Sub-Master-Einheiten
veranlasst, momentane Zeitmesswerte ihrer lokalen Zeitgeber, hier RM
= 4 bei der Master-Einheit 1 und RSM1 = 3 und RSM2 bei
den zwei Sub-Master-Einheiten 3, aufzuzeichnen.
-
Eine
zweite auf dem Bus übertragene
Synchronisationsnachricht enthält
in ihrem ersten Datenfeld den zuvor aufgenommenen Zeitmesswert RM
= 4 der Master-Einheit 1.
Die Sub-Master-Einheiten, die diesen Datenwert empfangen, berechnen
jeweils ihre eigene Zählerabweichung Δti = RM – RSMi,
i = 1,2. Gleichzeitig wird mit Ende der zweiten Synchronisationsnachricht
SYNC, zum Zeitpunkt t2',
ein neuer Zeitmesswert RM = 54, RSM1 = 53 bzw. RSM2 = 55 an allen
Einheiten aufgenommen und gespeichert.
-
Der
zweite in der Synchronisationsnachricht enthaltene Datenwert, hier
127, bezeichnet einen willkürlich
festlegbaren Zeitpunkt, genauer gesagt einen Zählerstand des Zeitgebers der
Master-Einheit 1, zu dem eine Korrektur der Zeitgeber der
Sub-Master-Einheiten
erfolgen soll. Die Sub-Master-Einheiten korrigieren diesen Datenwert
jeweils um die festgestellte Abweichung Δti und erhalten so als Korrekturzeitpunkte
tc1 = 127 – Δt1 = 126
für die
erste Sub-Master-Einheit und tc2 = 127 – Δt2 = 128 für die zweite Sub-Master-Einheit.
-
Jeweils
wenn die lokalen Zeitgeber der Sub-Master-Einheiten die so berechneten Zählwerte tc1,
tc2 annehmen, das heißt
zum Zeitpunkt t3' in 4, wird die Korrektur dieser
Zählwerte
um den festgestellten Fehler Δt1
bzw. Δt2
durchgeführt,
so dass im darauffolgenden Taktzyklus alle Zeitgeber exakt synchronisiert
sind. Gleichzeitig werden die für die
nächste
Synchronisationsoperation gespeicherten Zeitmesswerte RSM1, RSM2
in entsprechender Weise – allerdings
mit umgekehrtem Vorzeichen – korrigiert,
so dass sie im hier betrachteten Fall beide den Wert 54 annehmen.
Wenn die nächste
Synchronisationsnachricht übertragen
wird, die als Zeitmesswert der Master-Einheit den Wert 54 enthält, wird festgestellt,
dass die Zeitgeber aller Einheiten synchron sind, und es wird keine
erneute Korrektur vorgenommen.
-
5 zeigt den Ablauf der Synchronisation zwischen
einer Sub-Master-Einheit 3 und einer Slave-Einheit 2 über den
LIN-Bus 5 anhand von drei Zeitstrahlen SM, L, S, die jeweils
der Sub-Master-Einheit 3,
dem Bus 5 bzw. der Slave-Einheit 2 zugeordnet
sind. Jedes Mal, wenn die Sub-Master-Einheit 3 selbst von
der Master-Einheit 1 synchronisiert worden ist – unabhängig davon,
ob diese Synchronisation wie im in der Fig. gezeigten Fall zu einer
Korrektur des Zeitgebers der Sub-Master-Einheit (Überspringen
des Taktzyklus mit der Nummer 127) geführt hat oder nicht – führt sie
ihrerseits eine Synchronisation der an sie angeschlossenen Slave-Einheiten 2 aus.
Da die Sub-Master-Einheit 3 die Herrschaft über den
LIN-Bus 5 innehat, kann sie zu jedem von ihr festgelegten
Zeitpunkt mit dem Senden einer Synchronisationsnachricht SYNC' auf dem LIN-Bus 5 beginnen,
die als Parameter die Nummer, hier 128, des Taktzyklus enthält, in dem
mit dem Senden begonnen wird.
-
Die Übertragung
der Synchronisationsnachricht SYNC' nimmt eine feste Zahl von Taktzyklen
in Anspruch – im
hier betrachteten Beispiel ist eine Dauer von drei Taktzyklen angenommen – so dass
im Takt 131 die Synchronisationsnachricht vollständig an der die Slave-Einheit 2 vorliegt.
Diese addiert zur von der Sub-Master-Einheit 3 empfangenen
Taktzyklusnummer die bekannte Übertragungsdauer
und setzt ihren eigenen lokalen Zeitgeber auf das Ergebnis, hier
131.