DE10191695B4 - A method and communication control unit for multi-master clock synchronization in a distributed real-time computer system - Google Patents

A method and communication control unit for multi-master clock synchronization in a distributed real-time computer system

Info

Publication number
DE10191695B4
DE10191695B4 DE2001191695 DE10191695A DE10191695B4 DE 10191695 B4 DE10191695 B4 DE 10191695B4 DE 2001191695 DE2001191695 DE 2001191695 DE 10191695 A DE10191695 A DE 10191695A DE 10191695 B4 DE10191695 B4 DE 10191695B4
Authority
DE
Grant status
Grant
Patent type
Prior art keywords
time
master
slave
local
global
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.)
Active
Application number
DE2001191695
Other languages
German (de)
Other versions
DE10191695D2 (en )
Inventor
Hermann Kopetz
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.)
FTS ComputerTechnik Ges mbH
FTS Computertechnik GmbH
Original Assignee
FTS ComputerTechnik Ges mbH
FTS Computertechnik GmbH
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
Grant date

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 – G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock

Abstract

Verfahren zum Aufbau einer globalen Zeitbasis in einem verteilten Echtzeitcomputersystem bestehend aus einer Anzahl von Knotenrechnern (110, 120, 130, 140, 150), die über einen oder mehrere Broadcast Kommunikationskanäle (101) verbunden sind, wobei A method for establishing a global time base in a distributed real-time computer system consisting of a number of node computers (110, 120, 130, 140, 150) which are connected via one or more broadcast communication channels (101), wherein
• der lokale Oszillator eines Knotenrechners die Dauer eines Microticks (301) der lokalen Zeit eines Knotenrechners bestimmt, • the local oscillator of a node computer the duration of microticks (301) determines the local time of a node computer,
• während eines a priori definierten Zeitintervalls ein ausgezeichneter Knotenrechner (110) die Rolle des aktiven Zeitmasters übernimmt, • during a priori specified time interval an excellent node calculator (110) takes over the role of the active time master,
• alle anderen Knotenrechner (120, 130, 140, 150) die Rolle eines Zeitslaves übernehmen, • any other node computer (120, 130, 140, 150) assume the role of a time slaves
• der aktive Zeitmaster (110) die einheitliche Macroticklänge (350) der globalen Zeit festlegt, und • the active time master (110) determines the uniform Macrotick length (350) of the global time, and
• das Verhältnis Microtick zu Macrotick in jedem Knotenrechner unterschiedlich sein kann, • may be the ratio Microtick to Macro tick in each node calculator different,
dadurch gekennzeichnet, dass characterized, in that
der aktive Zeitmaster (110) das Sendeereignis einer Synchronisationsnachricht, die in ihrem Datenfeld den Macrotick des globalen Synchronisationsereignisses enthält, so festlegt, dass das Zeitintervall zwischen dem globalen Synchronisationsereignis (412), das von allen korrekten Zeitslaves beobachtet werden... the active time master (110) the transmission event of a synchronization message containing the Macrotick the global synchronization event in its data field, specifies that the time interval between the global synchronization event (412), which are observed by all correct time slaves ...

Description

  • Die Erfindung betrifft ein Verfahren zum Aufbau einer globalen Zeitbasis in einem verteilten Echtzeitcomputersystem bestehend aus einer Anzahl von Knotenrechnern die über einen oder mehrere Broadcast Kommunikationskanäle verbunden sind, wobei der lokale Oszillator eines Knotenrechners die Dauer eines Microticks der lokalen Zeit eines Knotenrechners bestimmt, während eines a priori definierten Zeitintervalls ein ausgezeichneter Knotenrechner die Rolle des aktiven Zeitmasters übernimmt, alle anderen Knotenrechner die Rolle eines Zeitslaves übernehmen, der aktive Zeitmaster die einheitliche Macroticklänge der globalen Zeit festlegt, und das Verhältnis Microtick zu Macrotick in jedem Knotenrechner unterschiedlich sein kann. The invention relates to a method for establishing a global time base in a distributed real-time computer system consisting of a number of node computers which are connected via one or more broadcast communication channels, wherein the local oscillator of a node computer determines the duration of a micro ticks of the local time of a node computer, during a priori defined time interval an excellent end computer takes over the role of the active time master, all other nodes hosts take on the role of a time slaves, the active time master determines the uniform Macro Tick length of the global time, and the ratio microtick may be different from Macro tick in each node computer.
  • In einem verteilten fehlertoleranten Echtzeitcomputersystem, bestehend aus einer Anzahl von Knotenrechnern die über ein Echtzeitkommunikationssystem verbunden sind, beispielsweise über ein CAN-Kommunikationsnetzwerk („Control Area Network"), müssen die Knotenrechner oft zeitlich koordinierte Aufgaben vornehmen. Um diese zeitliche Koordination der verteilten Aktionen zu erleichtern, ist es sinnvoll, eine systemweite globale Zeitbasis aufzubauen. Diese globale Zeit soll auch mit dem extern vorgegebenen Zeitstandard, der physikalischen Sekunde, abgestimmt sein. Eine effiziente Uhrensynchronisation von hoher Genauigkeit ist daher von großem wirtschaftlichen Wert. In a distributed fault-tolerant real-time computer system consisting of a number of node computers that are connected via a real-time communication system, for example via a CAN communication network ( "Control Area Network"), the node computers have to make time-coordinated tasks often. At this time coordination of distributed actions easier, it makes sense to build a system-wide global time base. This global time should be coordinated with the externally set time standard, the physical second. an efficient clock synchronization of high accuracy is of great economic value.
  • Die The DE 4140 017 A1 DE 4140 017 A1 offenbart ein Verfahren zur Erzeugung einer globalen Zeitbasis in einer Datenverarbeitungsanlage. discloses a method for generating a global time base in a data processing system. Hierfür wird ein Rechnerknoten mit seiner lokalen Zeit als Referenzknoten definiert, der ein Synchronisierungsobjekt aussendet, das im Wesentlichen gleichzeitig an den anderen Rechnerknoten empfangen wird. For this purpose, a computer node is defined by its local time reference node which transmits a synchronization object that is received substantially at the same time to the other computer node. In dem Verfahren ist es möglich, dass jeder Rechnerknoten die Relation seiner lokalen Zeitbasis zur Referenzzeitbasis und zu den lokalen Zeitbasen der anderen Rechnerknoten feststellen kann. In the method, it is possible that each computer node may determine the ratio of its local time base to the reference time base and to the local time bases of the other computer node.
  • Die The DE 199 33 753 A1 DE 199 33 753 A1 zeigt ein Verfahren und eine Vorrichtung zum Verteilen von verfolgbaren Zeitwerten für einen Satz von Knoten in einem Computernetzwerk. discloses a method and a device for distributing of trackable values ​​for a set of nodes in a computer network. Jeder Knoten umfasst einen Slavetaktgeber, der einen Slavezeitwert unter Verwendung eines Synchronisierungsprotokolls synchronisiert. Each node includes a slave clock that synchronizes a slave time value using a synchronization protocol. In dem Netz gibt es einen Masterknoten, der einen Mastertaktgeber aufweist, der einen Masterzeitwert mit dem verfolgbaren Zeitwert synchronisiert und über die Kommunikationsverbindung verteilt. In the network there is a master node having a master clock that synchronizes a master time value with the value traceable and distributed via the communication link.
  • Schließlich zeigt die Finally shows the EP 0 470 199 B1 EP 0470199 B1 ein Verfahren zur Synchronisierung der Zeit in einem Computernetzwerk. a method of synchronizing time in a computer network. In dem Netz ist ein Hauptzeitgeber vorgesehen, der die Zeitinformationen an die anderen Einheiten überträgt, um die lokalen Zeitgeber mit den übertragenen Zeitinformationen des Hauptzeitgebers zu synchronisieren. In the network, a main clock is provided, which transmits the time information to the other units, to synchronize the local clock with the transmitted time information of the main clock. Jede Einheit weist einen Oszillator auf, der an den jeweiligen Zeitgeber eine Impulsfolge ausgibt, wobei eine Einstellvorrichtung vorgesehen ist, die die vom Oszillator ausgegebene Impulsfolge in Abhängigkeit von den Zeitinformationen des Hauptzeitgebers einstellt, so dass der jeweilige lokale Zeitgeber ein genaues Takten der Zeit des Hauptzeitgebers zwischen den übertragenen Zeitinformationen ermöglicht. Each unit comprises an oscillator which outputs a pulse train to the respective timer, wherein an adjustment device is provided which adjusts the output from the oscillator pulse train in dependence on the time information of the main clock so that the respective local timer accurate clocking the time of the main clock enables between the transmitted time information.
  • Es ist Aufgabe der Erfindung, ein effizientes Verfahren zum Aufbau einer globalen Zeitbasis sowie eine Kommunikationskontrolleinheit zu dessen Durchführung zu schaffen, womit eine systemweite, globale Zeit aufgebaut werden kann, welche auch mit einem externen Zeitstandard, wie der physikalischen Sekunde, abstimmbar ist. It is an object of the invention to provide an efficient method for establishing a global time base, and a communication control unit for its implementation to create, whereby a system-wide global time can be established, which is also connected to an external time standard, such as the physical second, tunable.
  • Diese Aufgabe wird mit dem eingangs erwähnten Verfahren dadurch gelöst, dass erfindungsgemäß der aktive Zeitmaster das Sendeereignis einer Synchronisationsnachricht, die in ihrem Datenfeld den Macrotick des globalen Synchronisationsereignisses enthält, so festlegt, dass das Zeitintervall zwischen dem globalen Synchronisationsereignis, das von allen korrekten Zeitslaves beobachtet werden kann, und dem Beginn des Macroticks, der im Datenfeld der Synchronisationsnachricht angegeben ist, a priori bekannt ist. This object is achieved by the initially mentioned method characterized in that according to the invention the active time master, determines the transmission event of a synchronization message containing the Macrotick the global synchronization event in its data field, that the time interval between the global synchronization event, which can be observed by all correct time slaves can, and is known to the beginning of the Macro ticks that is specified in the data field of the synchronization message, a priori.
  • Das hier vorgeschlagene Verfahren zur Uhrensynchronisation in einem verteilten Echtzeitcomputersystem baut auf dem US-Patent The method proposed here for clock synchronization in a distributed real-time computer system builds on the US Patent US 4 866 606 A US 4866606 A vom 12. September 1989 mit dem Titel „Loosely Coupled Distributed Computer System with Node Synchronization for Precision in Real-Time Applications" auf. Mit dem neuen, erfindungsgemäßen Verfahren lässt sich allerdings die Granularität eines Macroticks auch bei Verwendung von Oszillatoren unterschiedlicher Frequenz in den Kontenrechnern einheitlich so festlegen, dass sie mit der Granularität eines vorgegebenen externen Zeitstandards in fixer Beziehung steht. Damit wird mit dem erfindungsgemäßen Verfahren auf einfache Weise die interne und externe Uhrensynchronisation vereinigt. September 12, 1989, entitled "Loosely Coupled Distributed Computer System with Node Synchronization for Precision in Real-Time Applications" on. With the new, inventive method, however, the granularity of a Macro ticks can be even with the use of oscillators of different frequencies in the accounts computers set uniformly so that it is at the granularity of a given external time standard in fixed relationship. This is combined with the method of the invention in a simple manner the internal and external clock synchronization.
  • Weitere vorteilhafte Ausgestaltungsformen des erfindungsgemäßen Verfahrens sind den Unteransprüchen zu entnehmen. Another advantageous embodiment of the inventive method are disclosed in the dependent claims.
  • Das vorab beschriebene Ziel und andere neue Eigenschaften der vorliegenden Erfindung werden in der Zeichnung näher erläutert. The object and other previously-described novel features of the present invention will be explained in more detail in the drawing. In dieser zeigt This shows
  • 1 1 die Struktur eines verteilten Computersystems mit fünf Knotenrechnern, die über einen Bus verbunden sind, the structure of a distributed computer system with five nodes computers which are connected via a bus,
  • 2 2 die Struktur eines Knotenrechners, bestehend aus einem Host Computer und einer Kommunikationskontrolleinheit mit dem Anschluss zum Bus, the structure of a node computer comprising a host computer and a communication control unit to the connection to the bus,
  • 3 3 den Zusammenhang zwischen den lokalen Microticks und den globalen Macroticks, the relationship between local and global ticks Micro Macro ticks
  • 4 4 den Ablauf der Ereignisse im Zeitbereich bei der Synchronisation eines Slave-Knotens durch den Zeit Master, und the sequence of events in the time domain in the synchronization of a slave node by the time master, and
  • 5 5 die Intervalle auf der Zeitachse, während der ein Standby Master eine Synchronisationsnachricht senden darf. the intervals on the time axis, during a standby master may send a synchronization message.
  • Im folgenden Abschnitt wird eine Realisierung des neuen Verfahrens an einem Beispiel mit fünf Knotenrechnern, die über einen gemeinsamen Bus kommunizieren, gezeigt. The following section is an implementation of the new method with an example with five node computers that communicate over a common bus is shown. Die Objekte in den Abbildungen sind so nummeriert, dass die erste der dreistelligen Objektziffern immer die Bildnummer angibt. The objects in the figures are numbered so that the first of the three-digit numeric object always indicates the image number.
  • Die The 1 1 zeigt ein System von fünf Knotenrechnern shows a system of five nodal computers 110 110 , . 120 120 , . 130 130 , . 140 140 und and 150 150 , die über einen gemeinsamen Bus That via a common bus 101 101 , z. Such. B. über einen CAN-Bus („Control Area Network"), Daten austauschen. Der Knotenrechner ( "Control Area Network") to exchange data, via a CAN bus. The nodal computer 110 110 ist der aktuelle Zeitmaster, der die anderen vier Knotenrechner is the current time master of the other four node computers 120 120 , . 130 130 , . 140 140 , . 150 150 periodisch resynchronisiert. periodically re-synchronized. Einer dieser vier Knotenrechner, beispielweise der Knotenrechner One of these four node computers, such as the node computers 120 120 , kann die Rolle eines Standby Masters einnehmen, der die zentrale Uhrensynchronisation übernimmt, falls der Knotenrechner The role of a standby master can take that takes over the central clock synchronization, if the node computers 110 110 ausfällt. fails.
  • Weiters zeigt die Further shows the 2 2 den inneren Aufbau eines Knotenrechners, etwa von Knotenrechner the internal structure of a node computer, such as from node computer 110 110 . , Ein Knotenrechner besteht aus zwei Subsystemen, einem Host Computer A node computer consists of two subsystems, a host computer 201 201 und einem Kommunikationskontroller and a communication controller 202 202 , der mittels einer Leitung , By means of a conduit 203 203 mit dem gemeinsamen Bus to the common bus 101 101 verbunden ist. connected is. Jeder Knotenrechner muss über einen lokalen Zeitzähler verfügen, der vom lokalen Oszillator des Knotenrechners getrieben wird und dessen Granularität die Microtickgranularität des Knotenrechners festlegt. Each node computer must have a local time counter which is driven by the local oscillator of the node computer and its granularity defines the Microtickgranularität of the node computer. Erfindungsgemäß kann ein Teil oder das gesamte beschriebene Verfahren im Kommunikationskontroller According to the invention, a part or the entire process described in the communication controller 202 202 in Software oder Hardware realisiert werden. be implemented in software or hardware.
  • Die The 3 3 zeigt den Zusammenhang zwischen den globalen Macroticks shows the relationship between the global macro ticks 310 310 , . 320 320 , . 330 330 und den lokalen Microticks and the local microticks 301 301 (siehe Kopetz, H. (1997). Real-Time Systems, Design Principles for Distributed Embedded Applications; ISBN: 0-7923-9894-7, Third printing 1999. Boston. Kluwer Academic Publishers, Seite 48) an. (See Kopetz, H. (1997) Real-Time Systems, Design Principles for Distributed Embedded Applications; ISBN:.. 0-7923-9894-7, Third printing 1999 Boston Kluwer Academic Publishers, page 48) on. Die Macroticks The Macro ticks 310 310 , . 320 320 , . 330 330 bauen die globale Zeitbasis im verteilten System auf. build up global time base to the distributed system. Der Abstand The distance 350 350 von zwei globalen Macroticks two global macro ticks 310 310 , . 320 320 ; ; 320 320 , . 330 330 soll sich nach Möglichkeit an der physikalischen Sekunde orientieren. should be based wherever possible on the physical second. Es ist vorteilhaft, für den Abstand It is advantageous for the distance 350 350 eine ganzzahlige negative Zweierpotenz der physikalischen Sekunde (siehe Kopetz, Seite 51) zu wählen. an integral negative power of the physical second (see Kopetz, page 51) to choose. Der Abstand zwischen den Microticks The distance between the microticks 301 301 wird von den Eigenschaften des sich in einem Knotenrechner befindenden lokalen Oszillators bestimmt und ändert sich aufgrund von physikalischen Einflüssen (beispielweise der Temperatur des Oszillators). is determined by the characteristics of that are available in a node computer and the local oscillator (for example, the temperature of the oscillator) changes due to physical influences. Im allgemeinen Fall ist die Relation MMR von Microticks zu Macroticks nicht ganzzahlig. In the general case the relation of MMR Micro ticks to Macro ticks is not an integer. In In 5 5 beispielsweise hat diese Relation MMR einen Wert zwischen 13 und 14. Im allgemeinen Fall hat jeder Knotenrechner eine unterschiedliche MMR, die durch die Eigenschaften des lokalen Oszillators des Knotenrechners vorgegeben ist und sich über die Zeit ändern kann. For example, this relation MMR has a value 13 to 14 In the general case, each node computer having a different MMR, which is determined by the characteristics of the local oscillator of the node computer and may change over time.
  • In der In the 4 4 ist der Ablauf der Ereignisse während eines Synchronisationsvorganges gezeigt. the sequence of events during a synchronization process is shown. Die Zeitachse The timeline 400 400 zeigt den Fortschritt der Zeit von links nach rechts an. shows the progress of time from left to right. Die senkrechten Linien, die die Zeitachse The vertical lines, the time axis of the 400 400 schneiden, stellen die signifikanten Ereignisse während der Synchronisation dar. Zum Zeitpunkt cut, make the significant events during synchronization. Back to the time 410 410 beginnt der Zeitmaster time master starts 110 110 eine Synchronisationsnachricht zu senden, die das abstrakte Synchronisationsereignis to send a synchronization message that the abstract synchronization event 412 412 , ausgedrückt in Macroticks, beinhaltet. Expressed in Macro ticks includes.
  • Bei der in When in 4 4 gezeigten Realisierung, bei der das globale Synchronisationsereignis der Beginn des Macroticks ist, der in der Synchronisationsnachricht enthalten ist, wählt der Masterknoten Realization shown, in which the global synchronization event is the beginning of the Macro ticks, which is contained in the synchronization message, the master node selects 110 110 , der die Synchronisation vornimmt, den Sendezeitpunkt Which performs the synchronization, the transmission time 410 410 so, dass das Eintreffen des Endes der Synchronisationsnachricht so that the arrival of the end of the synchronization message 411 411 möglichst nahe zum globalen Synchronisationsereignis as close as possible to the global synchronization event 412 412 bei den Slaveknoten liegt. lies with the slave nodes. Aufgrund von Digitalisierungsfehlern und dem Jitter des Masters kann das Ende der Synchronisationsnachricht Due to digitization errors and jitter of the Masters the end of the synchronization message can 411 411 vom globalen Synchronisationsereignis the global synchronization event 412 412 abweichen. differ.
  • Da im Slaveknoten das Ende der Synchronisationsnachricht Since the slave node, the end of the synchronization message 411 411 als globales Synchronisationsereignis as a global synchronization event 412 412 interpretiert wird, ist die Variabilität der Länge des Zeitintervalls zwischen dem globalen Synchronisationsereignis is interpreted, the variability of the length of the time interval between the global synchronization event 412 412 und dem Eintreffen des Endes der Synchronisationsnachricht and the arrival of the end of the synchronization message 411 411 mitbestimmend für die Genauigkeit der Synchronisation. co-determines the accuracy of synchronization. Eine a priori bekannte konstante Abweichung zwischen dem Eintreffen des Endes der Synchronisationsnachricht An a priori known constant deviation between the arrival of the end of the synchronization message 411 411 und des globalen Synchronisationsereignisses and global synchronization event 412 412 kann im Synchronisationsalgorithmus korrigiert werden. can be corrected in the synchronization algorithm.
  • In einer anderen Realisierung kann auch der Beginn des Sendens oder der Beginn des Empfangs einer Nachricht als globales Synchronisationsereignis In another implementation, and the start of transmission or the beginning of the reception of a message can as a global synchronization event 412 412 festgelegt werden. be determined.
  • Da in CAN-Systemen die Bit-Länge einer Nachricht, auch die der Synchronisationsnachricht, vom Dateninhalt abhängt, muss der Zeitmaster nach Festlegung des globalen Synchronisationsereignisses (ausgedrückt in globalen Macroticks) die exakte Länge der Synchronisationsnachricht, ausgedrückt in lokalen Microticks des Masters, berechnen und unter Berücksichtigung der bekannten Übertragungsgeschwindigkeit des Masters den Sendezeitpunkt Since in CAN systems, the bit length of a message, and the synchronization message, depending on the data content, the time master has in the determination of the global synchronization event (expressed in global Macro ticks) the exact length of the synchronization message, expressed in local microticks of the master, calculate and taking into account the known transmission speed of the master the time of transmission 410 410 bestimmen. determine. Das Ereignis The event 413 413 entspricht dem Empfangsinterrupt der Synchronisationsnachricht beim Slave. corresponds to the receive interrupt the synchronization message from the slave. In der Interruptbehandlungsroutine des Ereignisses In the interrupt handler of the event 413 413 muss der Slave den alten Wert seines lokalen Zeitzählers sichern und die Länge des Intervalls the slave must save the old value of its local time counter and the length of interval 421 421 , ausgedrückt in Microticks des Slaves, als Initialisierungswert in den lokalen Zeitzähler des Slaves eintragen, bevor der lokale Zeitzähler zum Zeitpunkt Expressed in microticks of the slave register as initialization value in the local time counter of the slave before the local time counter at the time 414 414 erneut gestartet wird. is restarted.
  • Schließlich ist in Finally, in 5 5 gezeigt, wie auf der Zeitachse shown as on the time axis 500a 500a priori nicht überlappende Zeitintervalle definiert werden, die jeweils abwechselnd dem Master – die Intervalle < priori non-overlapping time intervals are defined, each of which alternately the master - the intervals < 510 510 , . 511 511 > und < > And < 520 520 , . 521 521 >) – bzw. einem Standby-Master – die Intervalle < >) - or a standby master - the intervals < 512 512 , . 513 513 > und < > And < 522 522 , . 523 523 >) – zugeordnet sind. >) - are associated. Normalerweise sendet der Master nach dem Timeout die nächste Synchronisationsnachricht. Normally, the master sends the next synchronization message after the timeout. Sollte innerhalb des Timeoutintervalls If within the timeout interval 532 532 der Standby Master keine Synchronisationsnachricht vom Master empfangen haben, so kann er innerhalb des Intervalls < the standby master have received no synchronization message from the master, he can within the interval < 522 522 , . 523 523 > eine Synchronisationsnachricht senden. > A synchronization message. Empfängt ein Slave während des Intervalls Receiving a slave during the interval 533 533 keine Synchronisationsnachricht, so stoppt der Slave jede weitere Sendeoperation, bis er eine neue Synchronisationsnachricht empfangen hat. no synchronization message, the slave stops any further transmission operation until it has received a new synchronization message. Diese Unterbrechung der Sendetätigkeit des Slaves ist notwendig, um ein freies Zeitfenster für die Übertragung der nächsten Synchronisationsnachricht vom Master zu schaffen. This interruption of the transmission operation of the slave is necessary to provide a free time slot for the transmission of the next synchronization message from the master. Wenn der aktive Master zum gewählten Sendezeitpunkt If the active master to the selected transmission time 410 410 die Synchronisationsnachricht nicht senden kann, weil z. the synchronization message can not send because, for. B. der Bus belegt ist, so muss er den Sendeauftrag abbrechen und ein neues globales Synchronisationsereignis As the bus is busy, he must cancel sending order and a new global synchronization event 412 412 festlegen. establish. Dieser Vorgang ist zu wiederholen, bis das Ende des dem Master zugewiesenen Synchronisationsintervalls, z. This procedure can be repeated until the end of the master synchronization interval allocated such. B. das Ende des Intervalls < As the end of the interval < 520 520 , . 521 521 >, erreicht ist. > is reached. Da mit Ende des Zeitintervalls As with the end of the time interval 533 533 alle Slaves ihre Sendeaufträge abbrechen, wird mit hoher Wahrscheinlichkeit eine Synchronisationsnachricht des Master vor dem Ende des Intervalls all slaves cancel their send jobs is most likely a synchronization message of the master before the end of the interval 532 532 erfolgreich sein. be successful.
  • Nach dem Eintreffen einer Synchronisationsnachricht beim Slave errechnet sich der Slave die Abweichung zwischen der Uhr des Masters und dem lokalen Zeitzählers des Slaves nach folgender Formel After the arrival of a synchronization message at the slave, the slave calculates the deviation between the clock of the master and the local time counter of the slave according to the following formula Deviation = [old.TC – RL – (new.GSE – old.GSE)·old.MMR] Deviation = [old.TC - RL - (new.GSE - old.GSE) · old.MMR] wobei Deviation die Abweichung, ausgedrückt in lokalen Microticks des Slaves, zwischen der Uhr des Masters und dem lokalen Zeitzählers des Slaves in der vorangegangenen Runde angibt, old.TC den Wert des alten lokalen Zeitzählers des Slaves vor Beginn der neuen Synchronisationsrunde, RL den Wert der Receiver Latency said deviation indicative of the deviation, expressed in local microticks of the slave, between the clock of the master and the local time counter of the slave in the previous round, old.TC the value of the old local time counter of the slave before the new synchronization round, RL the value of the receiver Latency 421 421 ausgedrückt in Microticks des Slaves, und new.GSE und old.GSE den Macrotick der neuen und der alten Synchronisationsnachricht bezeichnen. Micro expressed in ticks of the slave, and new.GSE and old.GSE designate the Macro tick of the new and the old synchronization message.
  • Diese Abweichung wird nun dazu verwendet, die Microtick/Macrotick Relation MMR zu korrigieren. This deviation is then used to correct the Microtick / Macro Tick relation MMR. Damit wird erreicht, dass sich die Driftrate des Slaves an die Driftrate des Masters anpasst. This ensures that the drift rate of the slave adapts to the drift rate of the master. Der neue Wert dieser Relation new.MMR ergibt sich zu The new value of this relation new.MMR gives to himself new.MMR = old.MMR + Deviation·weight new.MMR = old.MMR + Deviation · weight wobei weight die Gewichtung der Abweichung darstellt. wherein the weighting of the weight deviation is. Angenommen die Dauer einer Synchronisationsrunde Suppose the duration of a synchronization round 531 531 beträgt nsync Macroticks, und is nsync Macro ticks, and 2 k < nsync < 2 k+1 , 2 k <nsync <2 k + 1, dann ist 2 –(k+1) ein sinnvoller Wert für weight. (k + 1), an appropriate value for weight - then 2. Eine Multiplikation von Deviation mit 2 –(k+1) lässt sich durch eine einfache Shift-Operation im Rechner realisieren. Multiplication of deviation with 2 - (k + 1) can be realized by a simple shift operation in the computer.
  • Mit dem vorgeschlagenen Synchronisationsverfahren lassen sich folgende Präzision und Macrotickgranularität realisieren: The proposed synchronization method, the following precision and Macrotickgranularität be realized:
    • • Angenommen die Microtickgranularität des Masters und des Slaves liegen bei einer μsec, ebenso der Latency Jitter in der Interruptbehandlung von Master und Slave. • Assuming the Microtickgranularität the master and the slaves of the Latency Jitter be at a microseconds, as in the interrupt handling of master and slave. Dann beträgt die Konvergenzfunktion (Kopetz, p. 59) 4 μsec. Then is the convergence function (Kopetz, p. 59) 4 microseconds.
    • • Angenommen die Abweichung der Driftrate zwischen Master und Slave beträgt nach einer Initialisierungsphase, in der sich die MMRs der Slaves an den Master adaptiert haben, 10 –5 und die Synchronisationsperiode ist 100 msec. • Assuming that the deviation of the drift rate between master and slave is after an initialization, in which the MMRs of the slaves have adapted to the master 10 -5 and the synchronization period msec 100th Dann ist der Drift-offset 1 μsec, womit sich die Präzision zu 5 μsec ergibt. Then, the drift offset 1 is microseconds, thus resulting in the precision microseconds to 5 hours. In einem solchen System ist es sinnvoll, für die Granularität eines Macroticks ein Intervall von 2 –17 Sekunden, das sind ca 8 μsec, zu wählen. In such a system, it makes sense for the granularity of a Macro ticks an interval of 2 -17 seconds, which are about 8 microseconds to choose.
  • Wenn eine kleinere Granularität der Mikroticks und eine Reduzierung des Interruptjitter durch Hardwaremechanismen erreicht werden, lässt sich die Präzision und damit die Makrotickgranularität wesentlich reduzieren, sogar in den Bereich unter einer Mikrosekunde. If a smaller granularity of Microticks and a reduction in Interruptjitter be achieved by hardware mechanisms, the precision and the macrotick can significantly reduce, even in the area under a microsecond.
  • Das vorgestellte Verfahren zur Synchronisation der Uhren in einem verteilten Computersystem lässt sich sowohl in Software wie auch in Hardware realisieren. The presented method for synchronizing the clocks in a distributed computer system can be implemented both in software and in hardware. Es stellt eine einfache und wirtschaftliche neue Methode zum Aufbau einer globalen Zeit dar. It is a simple and economical new way to build a global time.

Claims (9)

  1. Verfahren zum Aufbau einer globalen Zeitbasis in einem verteilten Echtzeitcomputersystem bestehend aus einer Anzahl von Knotenrechnern ( A method for establishing a global time base in a distributed real-time computer system consisting (from a number of node computers 110 110 , . 120 120 , . 130 130 , . 140 140 , . 150 150 ), die über einen oder mehrere Broadcast Kommunikationskanäle ( ), Which (via one or more broadcast communication channels 101 101 ) verbunden sind, wobei • der lokale Oszillator eines Knotenrechners die Dauer eines Microticks ( ), Respectively, wherein • the local oscillator of a node computer (the duration of microticks 301 301 ) der lokalen Zeit eines Knotenrechners bestimmt, • während eines a priori definierten Zeitintervalls ein ausgezeichneter Knotenrechner ( ) Determines the local time of a node computer, • during a priori specified time interval an excellent node computer ( 110 110 ) die Rolle des aktiven Zeitmasters übernimmt, • alle anderen Knotenrechner ( ) Takes on the role of the active time master, • any other node computers ( 120 120 , . 130 130 , . 140 140 , . 150 150 ) die Rolle eines Zeitslaves übernehmen, • der aktive Zeitmaster ( ) Assume the role of a time slaves, • the active time master ( 110 110 ) die einheitliche Macroticklänge ( ) The uniform Macrotick length ( 350 350 ) der globalen Zeit festlegt, und • das Verhältnis Microtick zu Macrotick in jedem Knotenrechner unterschiedlich sein kann, dadurch gekennzeichnet , dass der aktive Zeitmaster ( ) Of the global time determines and • the ratio Microtick to Macrotick in each node computer may be different, characterized in that the active time master ( 110 110 ) das Sendeereignis einer Synchronisationsnachricht, die in ihrem Datenfeld den Macrotick des globalen Synchronisationsereignisses enthält, so festlegt, dass das Zeitintervall zwischen dem globalen Synchronisationsereignis ( ) The transmission event of a synchronization message containing the Macrotick the global synchronization event in its data field, specifies that the time interval between the global synchronization event ( 412 412 ), das von allen korrekten Zeitslaves beobachtet werden kann, und dem Beginn des Macroticks, der im Datenfeld der Synchronisationsnachricht angegeben ist, a priori bekannt ist. ), Which can be observed by all slaves correct time, and is known to the beginning of the Macro ticks that is specified in the data field of the synchronization message, a priori.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Ende ( A method according to claim 1, characterized in that the end ( 411 411 ) des Eintreffens der Synchronisationsnachricht beim Zeitslave ( () Of the arrival of the synchronization message at the time Slave 120 120 , . 130 130 , . 140 140 , . 150 150 ) das globale Synchronisationsereignis ( ), The global synchronization event ( 412 412 ) darstellt. ) Represents.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der aktive Zeitmaster ( A method according to claim 1 or 2, characterized in that the active time master ( 110 110 ) vor dem Senden die datenabhängige Nachrichtenlänge der aktuellen Synchronisationsnachricht berechnet und aus der ermittelten Nachrichtenlänge und der bekannten Übertragungsgeschwindigkeit des Senders den Abstand ( ) Calculates the data-dependent message length of the current synchronization message prior to transmission and the distance (from the determined message length and the known transmission rate of the transmitter 420 420 ) des Sendezeitpunkts ( () Of the transmission time 410 410 ) der Nachricht von dem globalen Synchronisationsereignis ( () The news of the global synchronization event 412 412 ), ausgedrückt in den lokalen Microticks des Senders, bestimmt. ) Expressed in the local microticks of the transmitter is determined.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass jeder Zeitslave das Zeitintervall ( Method according to one of claims 1 to 3, characterized in that each slave time (the time interval 421 421 ) zwischen dem globalen Synchronisationsereignis ( ) (Between the global synchronization event 412 412 ) und einem Neustart ( ), And a restart ( 414 414 ) des lokalen Zeitzählers des Slaves, ausgedrückt in den lokalen Microticks des Empfängers, als Initialisierungswert des lokalen Zeitzählers des Slaves verwendet. ) Of the local time counter of the slave, expressed in the local microticks of the receiver, used as the initialization of the local time counter of the slave.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass ein Zeitslave nach der Resynchronisation das lokale Verhältnis Microtick/Macrotick aufgrund der Abweichung des lokalen Zeitzählers des Slaves vom Zeitmaster in der vorangegangenen Runde nach folgender Formel korrigiert, um eine Anpassung der Driftrate des Slaves an die Driftrate des Masters zu realisieren: A method according to any one of claims 1 to 4, characterized in that a timing slave to the resynchronization corrects the local ratio Microtick / Macrotick due to the deviation of the local time counter of the slave from the time master in the previous round according to the following formula to an adjustment of the drift rate of the slave to realize the drift rate of the master: Deviation = [old.TC – RL – (new.GSE – old.GSE)·old.MMR] Deviation = [old.TC - RL - (new.GSE - old.GSE) · old.MMR] new.MMR = old.MMR + Deviation·weight, new.MMR = weight old.MMR + Deviation · wobei Deviation die Abweichung, ausgedrückt in lokalen Microticks des Slaves, zwischen der Uhr des Masters und dem lokalen Zeitzähler des Slaves in der vorangegangenen Runde angibt, old.TC den Wert des lokalen Zeitzählers des Slaves vor Beginn der neuen Synchronisationsrunde, RL den Wert der Receiver Latency ( said deviation indicative of the deviation, expressed in local microticks of the slave, between the clock of the master and the local time counter of the slave in the previous round, old.TC the value of the local time counter of the slave before the new synchronization round, RL the value of the Receiver Latency ( 421 421 ), new.GSE und old.GSE den Inhalt der neuen und der alten Synchronisationsnachricht und weight die Gewichtung der Abweichung darstellen. ) New.GSE and old.GSE represent the content of the new and old synchronization message and weight, the weight of the dog.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass der Zeitmaster ( A method according to any one of claims 1 to 5, characterized in that the time master ( 110 110 ) die Übertragung der Synchronisationsnachricht abbricht, falls er feststellt, dass der errechnete Sendezeitpunkt ( ) Stops transmission of the synchronization message, if it determines that the calculated transmission time point ( 410 410 ) nicht realisiert werden konnte, da der Bus ( ) Could not be realized because of the bus ( 101 101 ) zum Zeitpunkt des Sendens belegt war. ) Was occupied at the time of sending.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass auf der Zeitachse ( A method according to any one of claims 1 to 6, characterized in that (on the time axis 400 400 ) a priori nicht überlappende Intervalle (< ) A priori non-overlapping intervals (< 510 510 , . 511 511 >, < > < 512 512 , . 513 513 >, < > < 520 520 , . 521 521 >, < > < 522 522 , . 523 523 >) abwechselnd dem aktiven Zeitmaster ( >) Alternately (the active time master 110 110 ) und einem Standby Zeitmaster ( ) And a standby time master ( 120 120 ) zugewiesen werden, um nach Ausbleiben der erwarteten Synchronisationsnachricht im Intervall (< be assigned) to the interval (for lack of expected synchronization message < 510 510 , . 511 511 >, < > < 520 520 , . 521 521 >) des aktiven Masters dem Standby Master die Möglichkeit zu geben, eine Synchronisationsnachricht in dem ihm zugewiesenen Intervall (< >) Of the active master the ability to give the standby master synchronization message in its assigned interval (< 512 512 , . 513 513 >, < > < 522 522 , . 523 523 >) zu senden. to send>).
  8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass der Zeitmaster ( A method according to any one of claims 1 to 7, characterized in that the time master ( 110 110 ) das Verhältnis Microtick/Macrotick so wählt, dass die Macroticklänge einer negativen Zweierpotenz der physikalischen Sekunde entspricht. ) The ratio Microtick / Macrotick so selected that the Macrotick length of a negative power of two of the physical second.
  9. Kommunikationskontrolleinheit zur Übermittlung von Nachrichten in einem verteilten Echtzeitcomputersystem, dadurch gekennzeichnet, dass eine oder mehrere der in Anspruch 1 bis 8 angegebenen Verfahren in Hardware realisiert werden. Communication control unit for the transmission of messages in a distributed real-time computer system, characterized in that one or more of the specified in claim 1 to 8 in process hardware can be realized.
DE2001191695 2000-05-04 2001-04-30 A method and communication control unit for multi-master clock synchronization in a distributed real-time computer system Active DE10191695B4 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
AT7852000 2000-05-04
ATA785/2000 2000-05-04
PCT/AT2001/000131 WO2001084286A8 (en) 2000-05-04 2001-04-30 Method and communication control unit for multimaster clock synchronisation in a distributed real time computer system

Publications (2)

Publication Number Publication Date
DE10191695D2 DE10191695D2 (en) 2003-06-12
DE10191695B4 true DE10191695B4 (en) 2009-07-23

Family

ID=3680906

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001191695 Active DE10191695B4 (en) 2000-05-04 2001-04-30 A method and communication control unit for multi-master clock synchronization in a distributed real-time computer system

Country Status (2)

Country Link
DE (1) DE10191695B4 (en)
WO (1) WO2001084286A8 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010037906A1 (en) * 2010-09-30 2012-04-05 Schneider Electric Automation Gmbh Method and system for recording, synchronization and analysis of data means in a communication network of spatially distributed analyzers

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003058468A1 (en) * 2002-01-07 2003-07-17 Kvaser Consultant Ab Distributed control and monitoring system
DE10306788A1 (en) * 2003-02-18 2004-08-26 Brose Fahrzeugteile Gmbh & Co. Kommanditgesellschaft, Coburg Control method for two or more motor vehicle control units, especially blinker or indicator light controllers, whereby the timer circuits of the two controllers are synchronized using existing control bus signals
DE102009037156A1 (en) * 2009-08-04 2011-02-17 Lenze Automation Gmbh A method for synchronously detecting and recording process and / or status data and automation system
US9860191B2 (en) 2012-06-25 2018-01-02 Fts Computertechnik Gmbh Method for constructing optimal time-controlled paths in a large computer network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866606A (en) * 1984-06-22 1989-09-12 Austria Miktosystem International Gmbh Loosely coupled distributed computer system with node synchronization for precision in real time applications
DE4140017A1 (en) * 1991-12-04 1993-06-09 Nec Electronics (Germany) Gmbh, 4000 Duesseldorf, De Method for generating a global time base and data processing system with distributed computer nodes
EP0470199B1 (en) * 1989-04-25 1998-07-08 Kvaser Consultant Ab Clock synchronisation in a computer system
DE19933753A1 (en) * 1998-07-22 2000-01-27 Hewlett Packard Co Distributed system application techniques using time synchronization technology

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866606A (en) * 1984-06-22 1989-09-12 Austria Miktosystem International Gmbh Loosely coupled distributed computer system with node synchronization for precision in real time applications
EP0470199B1 (en) * 1989-04-25 1998-07-08 Kvaser Consultant Ab Clock synchronisation in a computer system
DE4140017A1 (en) * 1991-12-04 1993-06-09 Nec Electronics (Germany) Gmbh, 4000 Duesseldorf, De Method for generating a global time base and data processing system with distributed computer nodes
DE19933753A1 (en) * 1998-07-22 2000-01-27 Hewlett Packard Co Distributed system application techniques using time synchronization technology

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010037906A1 (en) * 2010-09-30 2012-04-05 Schneider Electric Automation Gmbh Method and system for recording, synchronization and analysis of data means in a communication network of spatially distributed analyzers
DE102010037906B4 (en) * 2010-09-30 2014-02-27 Schneider Electric Automation Gmbh Method and system for recording, synchronization and analysis of data means in a communication network of spatially distributed analyzers

Also Published As

Publication number Publication date Type
DE10191695D2 (en) 2003-06-12 grant
WO2001084286A8 (en) 2002-07-11 application
WO2001084286A2 (en) 2001-11-08 application

Similar Documents

Publication Publication Date Title
EP0286856B1 (en) Fault-tolerant computer arrangement
DE19626287A1 (en) A method of operating a drive system and apparatus for carrying out the method
US7340630B2 (en) Multiprocessor system with interactive synchronization of local clocks
DE4215380A1 (en) Synchronisation system for local clocks with automation modules - performs synchronisation operation when difference between local unit and central unit is less than transmission and processing time of central unit
EP1251646A2 (en) Method for halfduplex transmission of informations between communication devices with repeaters
DE4408488A1 (en) A process for the cyclic transmission of data between at least two distributed operating control devices
DE10000303A1 (en) Data communication method for bus system subscribers has time information provided by one subscriber used for correcting local clock source at each other subscriber
EP0327083A2 (en) Device to operate absolute time clocks in a process control system comprising a central clock and participants
DE10000304A1 (en) Method and apparatus for exchanging data between at least two subscribers connected to a bus system
EP0548381A1 (en) Time control method in computer networks
DE3843261A1 (en) Circuit arrangement for controlling the phase of a clock signal
EP0363513A1 (en) Method and apparatus for receiving a binary digital signal
EP0309849A1 (en) Arrangement for the correction of the pulse length of a digital signal
DE4140017A1 (en) Method for generating a global time base and data processing system with distributed computer nodes
EP0247026A2 (en) Method for synchronizing the time clocks of computing devices connected to a communication medium, and the computing devices concerned
DE102005048584A1 (en) FlexRay communication chip, FlexRay communication controller and method for message transmission between a FlexRay communication link and a FlexRay user
EP0849904A2 (en) Synchronous digital transmission system, control device, network element and central clock generator
EP0751634A2 (en) Method and circuit for frame synchronisation in a multi-cellular telecommunications system
EP0530393A1 (en) Method and apparatus for synchronising a clockcircuit of a switching communication system
EP2034642A1 (en) Method for transmitting synchronisation messages in a communications network
DE10260806A1 (en) Network interface, especially an Ethernet interface, has a hard-wired interface circuit that permits the forwarding of data packets between ports before they have been completely received
DE4123007A1 (en) Data rate matching method using packing data - storing input words in registers of buffer memory, controlling multiplexer w.r.t. number of bits in output word and varying bits in synchronising word
EP1170903A2 (en) Bus monitoring unit for a network node within a time triggered data communication network
DE19753288A1 (en) Information transmission method for fault-tolerant real-time computer system
EP0506214A1 (en) Method for operating a multiplex-control for an on-board network for automotive-vehicle

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8364 No opposition during term of opposition