DE102009025495B4 - Method for synchronizing processors operating at different locations via an asynchronous communication channel - Google Patents
Method for synchronizing processors operating at different locations via an asynchronous communication channel Download PDFInfo
- Publication number
- DE102009025495B4 DE102009025495B4 DE102009025495.1A DE102009025495A DE102009025495B4 DE 102009025495 B4 DE102009025495 B4 DE 102009025495B4 DE 102009025495 A DE102009025495 A DE 102009025495A DE 102009025495 B4 DE102009025495 B4 DE 102009025495B4
- Authority
- DE
- Germany
- Prior art keywords
- processor
- data blocks
- offset
- clock frequency
- data
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0664—Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0682—Clock or time synchronisation in a network by delay compensation, e.g. by compensation of propagation delay or variations thereof, by ranging
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Verfahren zur Synchronisation zweier örtlich beabstandeter Prozessoren durch Übermitteln einer die Taktfrequenz des ersten Prozessors ausdrückenden Information an den zweiten Prozessor und Anpassen der Taktfrequenz des zweiten Prozessors an die Taktfrequenz des ersten Prozessors, gekennzeichnet durch a) Versenden von mit je einem Zeitstempel versehenen ersten Datenblöcken gleicher Größe mit je K Nachrichten von dem ersten Prozessor an den zweiten Prozessor in gleichen Zeitabständen, wobei K eine festgelegte ganze Zahl ist, b) Empfangen der ersten Datenblöcke des ersten Prozessors durch den zweiten Prozessor, c) Erzeugen von zweiten Datenblöcken mit je K Nachrichten auf dem zweiten Prozessor, wobei die zweiten Datenblöcke die gleiche Größe wie die ersten Datenblöcke besitzen und der Prozess der Datenerzeugung auf dem ersten Prozessor simuliert wird, d) Ermitteln der mittleren Laufzeit der ersten Datenblöcke vom ersten zum zweiten Prozessor aus dem Vergleich der Zeitstempel des ersten Prozessors mit der Uhr des zweiten Prozessors, e) Messen des zeitlichen Versatzes zwischen dem Fertigstellen eines zweiten Datenblocks auf dem zweiten Prozessor und dem Eintreffen des nächsten ersten Datenblocks vom ersten Prozessor, wobei eine Messung des Versatzes nur gültig ist, wenn die Differenz der Laufzeit des eintreffenden Datenblocks zur vorab ermittelten mittleren Laufzeit einen vorgegebenen Betrag nicht übersteigt, f) Replizieren des letzten gültigen Versatzmesswerts, wenn dessen Messung einen nicht gültigen Wert liefert, g) Bilden der Differenz zwischen zwei Versatzmesswerte auf dem zweiten Prozessor, zwischen deren Messung N Datenblöcke empfangen worden sind, wobei N eine festgelegte ganze Zahl ist, h) Anpassen der Taktfrequenz des zweiten Prozessors derart, dass die auf dem zweiten Prozessor gebildete Differenz minimiert wird und i) fortlaufendes Wiederholen der Schritte b) bis h).A method for synchronizing two locally spaced processors by transmitting to the second processor an information expressing the clock frequency of the first processor and adjusting the clock frequency of the second processor to the clock frequency of the first processor, characterized by a) sending one time stamped first data blocks of the same size with K each messages from the first processor to the second processor at equal intervals, where K is a fixed integer, b) receiving the first data blocks of the first processor by the second processor, c) generating second data blocks with each K messages on the second processor, wherein the second data blocks have the same size as the first data blocks and the process of data generation is simulated on the first processor, d) determining the average runtime of the first data blocks from the first to the second processor from the comparison of the time stamps e) measuring the time offset between the completion of a second data block on the second processor and the arrival of the next first data block from the first processor, wherein a measurement of the offset is valid only if the difference of the first processor F) replicating the last valid offset measured value if its measurement gives an invalid value, g) forming the difference between two offset measured values on the second processor between whose measurement N data blocks h, where N is a fixed integer, h) adjusting the clock frequency of the second processor such that the difference formed on the second processor is minimized, and i) continuously repeating steps b) through h).
Description
Die Erfindung betrifft ein Verfahren zur Synchronisation technischer Prozessoren, wobei die Synchronisation über einen Kommunikationskanal erfolgen kann, der Informationen lediglich asynchron transportiert, d. h. in dem eine Datenübertragung ohne festen Zeittakt stattfindet.The invention relates to a method for the synchronization of technical processors, wherein the synchronization can take place via a communication channel which transports information only asynchronously, d. H. in which a data transmission takes place without fixed timing.
Die zunehmende Verbreitung von Kommunikationsnetzen ermöglicht die Kopplung von Prozessen, die an unterschiedlichen Orten ablaufen. Häufig ist die enge zeitliche Kopplung der Prozessoren dabei wünschenswert. Synchronisation im Sinne der vorliegenden Erfindung bedeutet das Angleichen der Ablaufgeschwindigkeiten der Prozesse auf verschiedenen Prozessoren. Es sollen insbesondere die Taktraten auf verschiedenen Rechnern mit unterschiedlichen Architekturen angeglichen werden. Eine Uhrensynchronisation in realen verteilten Systemen – also das Einrichten einer Gleichzeitigkeit des Ablaufs von Prozessen auf verschiedenen Prozessoren – ist hingegen prinzipiell nicht exakt möglich (siehe Druckschrift: Leslie Lamport, Juli 1978, „Time, Clocks and the Ordering of Events in a Distributed System”. Communications of the ACM 21 (7): 558–565).The increasing spread of communication networks allows the coupling of processes that take place in different places. Frequently, the close temporal coupling of the processors is desirable. Synchronization in the sense of the present invention means the adaptation of the execution rates of the processes on different processors. In particular, the clock rates on different computers with different architectures should be aligned. On the other hand, clock synchronization in real distributed systems - ie setting up a simultaneous process sequence on different processors - is in principle not exactly possible (see publication: Leslie Lamport, July 1978, "Time, Clocks and the Ordering of Events in a Distributed System"). Communications of the ACM 21 (7): 558-565).
Es ist nicht ohne weiteres möglich, an getrennten Orten zwei Taktsignale mit exakt gleichen Frequenzen zu generieren, da die hierzu verwendeten Bauteile, insbesondere Schwingquarze, Fertigungstoleranzen unterliegen und ihr Frequenzverhalten durch schwer kontrollierbare Umweltfaktoren (z. B. Temperatur) ändern. Aus diesem Grunde ist die Synchronisation von Prozessoren eine sehr anspruchsvolle technische Aufgabe.It is not readily possible to generate two clock signals at exactly the same frequencies at separate locations, since the components used for this purpose, in particular quartz crystals, are subject to manufacturing tolerances and change their frequency behavior due to difficultly controllable environmental factors (eg temperature). For this reason, the synchronization of processors is a very demanding technical task.
Nach dem Stand der Technik kann diese Aufgabe durch drei unterschiedliche Verfahren gelöst werden:
Die erste besteht darin, ein gemeinsames Taktsignal aus einem gemeinsamen Taktgenerator als Referenz für die Prozessoren vorzusehen. Dies ist allerdings nur dann möglich, wenn dieses Taktsignal über ein geeignetes Medium an die Prozessoren übertragen werden kann (gemeinsame Taktleitung). Ist dies aufgrund von nicht exakt determiniertem Zeitverhalten im Übertragungskanal (Jitter) – wie z. B. bei der Kommunikation via Internet – nicht möglich, so kann man dieses Verfahren nicht anwenden. (Trischitta, P., und Varma, E.: „Jitter in Digital Transmission Systems”. Boston: Artech House, 1989, ISBN 0-890-06248-X).According to the prior art, this object can be achieved by three different methods:
The first is to provide a common clock signal from a common clock generator as a reference for the processors. However, this is only possible if this clock signal can be transmitted to the processors via a suitable medium (common clock line). Is this due to not exactly determined timing in the transmission channel (jitter) - such. For example, when communicating via the Internet - not possible, so you can not use this method. (Trischitta, P., and Varma, E .: "Jitter in Digital Transmission Systems." Boston: Artech House, 1989, ISBN 0-890-06248-X).
Die zweite Möglichkeit ist, das Taktsignal nicht direkt an beide Prozessoren zu senden, sondern es aus einem anderen gemeinsamen Referenzsignal, das beide Prozessoren empfangen können, so genau wie möglich zurück zu gewinnen. Ein bekanntes Beispiel für ein solches Referenzsignal ist das hochgenaue 77,5-kHz-Signal des Langwellensenders DCF77. Durch Frequenzvervielfachung oder Frequenzteilung kann man aus diesem Referenzsignal ein Taktsignal generieren, das für die zu synchronisierenden Prozessoren geeignet ist. Der Empfang eines solchen Referenzsignals ist allerdings aufwendig und auch für das Erzeugen des abgeleiteten Taktsignals müssen vergleichsweise aufwendige Schaltungen vorgehalten werden (Egan, W.: „Frequency Synthesis by Phase-lock”, John Wiley & Sons, 2000, ISBN 0-471-32104-4).The second option is not to send the clock signal directly to both processors, but to recover it from another common reference signal that both processors can receive as accurately as possible. A well-known example of such a reference signal is the high-precision 77.5 kHz signal of the long-wave transmitter DCF77. By frequency multiplication or frequency division can be generated from this reference signal, a clock signal that is suitable for the processors to be synchronized. However, the reception of such a reference signal is complicated and comparatively complex circuits must also be provided for the generation of the derived clock signal (Egan, W .: "Frequency Synthesis by Phase-Lock", John Wiley & Sons, 2000, ISBN 0-471-32104-4).
Die dritte Möglichkeit sieht vor, die Prozessoren mit Taktsignalen aus unabhängigen Taktgeneratoren zu speisen und durch geeignete technische Maßnahmen dafür zu sorgen, dass die jeweils erzeugten Frequenzen möglichst gleich sind. Beispiele hierfür sind hochgenaue, Quarze; durch einen Selektionsprozess kann sichergestellt werden, dass mehrere Quarze möglichst die gleichen physikalischen Eigenschaften aufweisen. Ein genauer Abgleich der Taktgeneratoren kann ihr Schwingverhalten weiter annähern. Auch Umwelteinflüsse, kann man durch geeignete technische Maßnahmen (z. B. Quarzöfen) begrenzen. Allerdings sind diese Maßnahmen sehr aufwendig. (Hewlett Packard: „Fundamentals of Quartz Oscillators, Application Note 200-2”, 1997).The third possibility is to feed the processors with clock signals from independent clock generators and to ensure, by means of suitable technical measures, that the respectively generated frequencies are as equal as possible. Examples are highly accurate, quartz; By means of a selection process, it can be ensured that several quartzes have as far as possible the same physical properties. A precise adjustment of the clock generators can further approximate their oscillation behavior. Environmental influences can also be limited by suitable technical measures (eg quartz furnaces). However, these measures are very expensive. (Hewlett Packard: Fundamentals of Quartz Oscillators, Application Note 200-2, 1997).
Gegenwärtig wird für praktische Anwendungen zumeist eine gemeinsame Taktleitung realisiert, wenn dies aufgrund der räumlichen Anordnung möglich ist. Weiter entfernt liegende Prozessoren können durch getrennte Taktgeneratoren gespeist werden, wobei eine Phase-Locked-Loop-Schaltung (PLL) dafür sorgt, dass die Frequenz auf Empfängerseite an die Frequenz des Senders angeglichen wird. Allerdings ist auch hier erforderlich, dass es einen allein dem Datenaustausch zwischen Sender und Empfänger vorbehaltenen, von anderen Prozessen ungestörten Kommunikationskanal gibt. Dieses Verfahren kommt häufig bei Rundfunkanwendungen zum Einsatz, um eine Empfängerschaltung exakt auf die Trägerfrequenz eines Senders zu justieren.At present, for practical applications, a common clock line is usually realized, if this is possible due to the spatial arrangement. More remote processors can be fed by separate clock generators, with a phase-locked loop (PLL) circuit ensuring that the frequency on the receiver side matches the frequency of the transmitter. However, it is also necessary here for there to be a communication channel reserved solely for data exchange between sender and receiver and undisturbed by other processes. This method is often used in broadcasting applications to adjust a receiver circuit exactly to the carrier frequency of a transmitter.
Alternativ lassen sich Prozessoren über Telekommunikationsnetze (z. B. ISDN) miteinander koppeln, die synchron arbeiten. Hier wird ein globales Taktsignal im Netz bestmöglich repliziert und als Basis für sämtliche Kommunikationsvorgänge genutzt.Alternatively, processors can be coupled together via telecommunications networks (eg, ISDN) that operate synchronously. Here, a global clock signal in the network is replicated in the best possible way and used as the basis for all communication processes.
Durch die zunehmende Verbreitung von asynchronen Kommunikationsnetzen (insbesondere dem Internet) besteht ein zunehmender Bedarf an Synchronisationslösungen, die über asynchronen Datenverkehr realisiert werden können. Die Besonderheit bei asynchronen Netzen ist, dass die Übertragungszeit für Informationen im Netz gewissen Schwankungen (sog. Jitter) unterliegt. Eine präzise und zuverlässige Synchronisation ist unter diesen Bedingungen offenbar besonders schwierig.Due to the increasing spread of asynchronous communication networks (especially the Internet), there is an increasing demand for synchronization solutions that can be realized via asynchronous data traffic. The special feature of asynchronous networks is that the transmission time for information in the network is subject to certain fluctuations (so-called jitter). Accurate and reliable synchronization seems to be particularly difficult under these conditions.
Aufgabe der Erfindung ist daher die Angabe eines Verfahrens zur Synchronisation von Prozessoren über asynchrone Kommunikationskanäle, das keine aufwendigen Schaltungen und teure Spezialbaugruppen erfordert.The object of the invention is therefore to specify a method for the synchronization of processors via asynchronous communication channels, which requires no expensive circuits and expensive special modules.
Die Aufgabe wird gelöst durch ein Verfahren mit den Merkmalen des Hauptanspruchs. Die Unteransprüche geben vorteilhafte Ausgestaltungen an.The object is achieved by a method having the features of the main claim. The dependent claims indicate advantageous embodiments.
Die Erfindung setzt das Vorhandensein eines justierbaren Taktgenerators wenigstens auf der Empfängerseite voraus, der mit kostengünstigen elektronischen Standardschaltungen in an sich bekannter Weise realisiert werden kann. Es wird weiterhin vorausgesetzt, dass die zu synchronisierenden Maschinen technisch dafür ausgelegt sind, mit derselben Taktfrequenz arbeiten zu können, auch wenn die Architekturen möglicherweise nicht identisch sind.The invention requires the presence of an adjustable clock generator at least on the receiver side, which can be realized with inexpensive standard electronic circuits in a conventional manner. It is further assumed that the machines to be synchronized are technically designed to operate at the same clock frequency, even if the architectures may not be identical.
Das erfindungsgemäße Verfahren beschreibt ein Messverfahren, mit dem die genaue Differenz der Taktfrequenzen zweier Prozessoren bestimmt werden kann. Mittels des Messergebnisses kann hiernach der justierbare Taktgenerator der Empfängerseite auf die Taktfrequenz des Senders eingestellt werden. Das erfindungsgemäße Verfahren erlaubt darüber hinaus die Taktfrequenzangleichung in extrem jitterbehafteten Netzwerken.The method according to the invention describes a measuring method with which the exact difference of the clock frequencies of two processors can be determined. By means of the measurement result, the adjustable clock generator of the receiver side can then be set to the clock frequency of the transmitter. The inventive method also allows the clock frequency equalization in extremely jitter-prone networks.
Die Grundzüge des Verfahrens werden zunächst für ein Netzwerk ohne Jitter erläutert:
Ein beliebiger Prozess auf einem ersten Computer (i. F. Sender) generiert in gleichen Zeitabständen Nachrichten. Diese Nachrichten werden zu gleich großen Datenblöcken zusammengefasst, die in gleichen Zeitabständen über einen Kommunikationskanal an einen zweiten Computer (i. F. Empfänger) geschickt werden. Zusätzlich werden die Datennblöcke vom Sender mit einem Zeitstempel versehen, beispielsweise bei Beginn des Erstellens eines Datenblocks oder unmittelbar vor dessen Absenden an den Empfänger.The basic features of the method are first explained for a network without jitter:
Any process on a first computer (i.f., transmitter) generates messages at the same time intervals. These messages are combined into equally sized data blocks, which are sent at the same time over a communication channel to a second computer (i. In addition, the data blocks are provided with a time stamp by the transmitter, for example at the beginning of the creation of a data block or immediately before it is sent to the receiver.
Die Datenblöcke benötigen eine Laufzeit durch den Kommunikationskanal zwischen Sender und Empfänger. In einem Kommunikationskanal ohne Jitter ist diese konstant und kann genau gemessen werden.The data blocks require a transit time through the communication channel between sender and receiver. In a communication channel without jitter, this is constant and can be measured accurately.
Der Empfänger empfängt die Datenblöcke, und es findet eine erste Taktangleichung statt, indem der Empfänger anhand der Zeitstempel und der Anzahl der Nachrichten in den empfangenen Datenblöcken die Senderfrequenz bestimmt und seinen justierbaren Taktgenerator auf diese einstellt. Alternativ kann der Sender auch eine Angabe seiner eigenen Taktfrequenz an den Empfänger senden, die der Empfänger dann bei sich einstellt. Diese erste Anpassung der Taktfrequenz des Empfängers erfolgt also auf der Basis der vom Sender – implizit oder explizit – übermittelten Taktfrequenz des Senders und ist natürlich Stand der Technik.The receiver receives the data blocks and a first clock equalization takes place in which the receiver determines the transmitter frequency based on the time stamps and the number of messages in the received data blocks and adjusts its adjustable clock generator. Alternatively, the transmitter can also send an indication of its own clock frequency to the receiver, which the receiver then adjusts itself. This first adjustment of the clock frequency of the receiver thus takes place on the basis of the transmitter - implicitly or explicitly - transmitted clock frequency of the transmitter and is of course state of the art.
Das der Erfindung zugrunde liegende Problem besteht darin, dass Sender und Empfänger zwar beide behaupten, nunmehr identische Taktfrequenzen aufzuweisen, sich jedoch die physikalisch realen Taktfrequenzen – gemeinhin bei beiden Rechnern – von den nominellen unterscheiden. Entscheidend für eine genaue Synchronisation ist letzten Endes die Frage, wie der Empfänger die Taktfrequenz des Senders in Bezug auf seine eigene bewertet.The problem underlying the invention is that transmitter and receiver Although both claim to have now identical clock frequencies, but the physically real clock frequencies - commonly differ in both computers - from the nominal. The decisive factor for an exact synchronization is ultimately the question of how the receiver evaluates the clock frequency of the transmitter in relation to its own.
Erfindungsgemäß erzeugt daher der Empfänger genauso Nachrichten wie der Sender und stellt sie zu Datenblöcken derselben Größe zusammen. Hierbei ist der Empfänger auf seinen eigenen Zeittakt angewiesen. Auf den genauen Inhalt der Nachrichten kommt es dabei nicht an. Wesentlich ist vielmehr, dass die auf dem Empfänger erzeugten Datenblöcke genau dieselbe Anzahl an Nachrichten enthalten wie die vom Sender empfangenen. Da der Nachrichteninhalt der auf dem Empfänger erzeugten Daten nicht relevant ist, wird der Prozess der Datenerzeugung auf dem Sender nicht reproduziert, sondern nur „simuliert”, denn dem Empfänger stehen normalerweise keine ausreichenden Eingabedaten zur Verfügung, z. B. Mikrofonaufzeichnungen oder dergleichen.According to the invention, therefore, the receiver generates messages as well as the sender and assembles them into data blocks of the same size. Here, the receiver is dependent on its own time clock. The exact content of the news is not important. Rather, it is essential that the data blocks generated on the receiver contain exactly the same number of messages as those received by the sender. Since the message content of the data generated on the receiver is not relevant, the process of data generation on the transmitter is not reproduced, but only "simulated" because the receiver is usually not sufficient input data available, eg. As microphone recordings or the like.
Ziel ist es, sich Informationen über die Arbeitsgeschwindigkeit des Senders „aus der Sicht” des Empfänger zu verschaffen. Wenn Sender und Empfänger keine identische Taktfrequenz aufweisen, unterscheiden sich die zeitlichen Abstände, in denen Nachrichten auf Sender und Empfänger erzeugt werden.The aim is to obtain information about the operating speed of the transmitter "from the perspective" of the receiver. If the sender and receiver do not have the same clock frequency, the time intervals in which messages are generated on the sender and receiver differ.
Erfindungsgemäß wird nun immer zu dem Zeitpunkt eine Zeitmessung auf dem Empfänger gestartet, an dem der Empfänger das Zusammenstellen bei sich generierter Nachrichten zu einem Datenblock abschließt (Referenzzeitpunkt), Die Zeitmessung wird gestoppt, sobald der nächste Datenblock vom Sender empfangen wird. Das Ergebnis der Zeitmessung wird im folgenden t_versatz genannt.According to the invention, a time measurement is now always started at the receiver at which the receiver completes the compilation of generated messages into a data block (reference time). The time measurement is stopped as soon as the next data block is received by the transmitter. The result of the time measurement is called t_offset in the following.
Kerngedanke der Erfindung ist, dass die Zeitdifferenz t_versatz eine allein auf der Empfängerseite bestimmbare Observable ist, die sich eignet, um die Taktfrequenzen schnell und genau anzugleichen. Dies ist überraschend selbst dann möglich, wenn ein Netzwerkjitter die Observable t_versatz zwischen den Einzelmessungen stark streuen lässt.The core idea of the invention is that the time difference t_offset is an observable which can be determined solely on the receiver side and which is suitable for quickly and precisely matching the clock frequencies. Surprisingly, this is possible even if a network jitter causes the observable t_offset to scatter strongly between the individual measurements.
Die Messung der Observable t_versatz erfolgt fortlaufend für alle auf dem Empfänger erzeugten und vom Sender eintreffenden Datenblöcke. Dabei zeigt sich:
- a) Wird die Zeitdifferenz t_versatz mit der Zeit größer, ist der Prozess auf dem Empfänger schneller als auf dem Sender (der Sender kommt mit dem Nachliefern der Datenblöcke nicht hinterher);
- b) wird die Zeitdifferenz t_versatz mit der Zeit kleiner, ist der Prozess auf dem Empfänger langsamer als auf dem Sender (der Sender liefert Datenblöcke schneller nach, als der Empfänger deren Erzeugung simulieren kann);
- c) bleibt die Zeitdifferenz t_versatz gleich, stimmen Empfänger und Sender in der Frequenz überein.
- a) If the time difference t_offset increases with time, the process on the receiver is faster than on the transmitter (the transmitter does not lag behind with the delivery of the data blocks);
- b) if the time difference t_offset becomes smaller over time, the process is slower at the receiver than at the transmitter (the transmitter feeds data blocks faster than the receiver can simulate their generation);
- c) if the time difference t_offset remains the same, the receiver and the transmitter match in frequency.
Die gemessene Zeitdifferenz t_versatz lässt sich unmittelbar zur Berechnung der Frequenzdifferenz heranziehen: Die Differenz zweier aufeinander folgender t_versatz Messwerte, t_diff, ergibt addiert zur Blocklänge des Empfängers (die Zeit, die der Empfänger zum Erstellen eines Datenblocks benötigt) sofort die Blocklänge des Senders. Wird dieser Wert durch die Anzahl der mit einem Block empfangenen Nachrichten geteilt, erhält man die Periodendauer des Senderprozesses, deren Kehrwert die Frequenz des Senderprozesses, f_sender, angibt.
Offenbar gilt ebenso
Die momentane Frequenz des Empfängers ist dem Empfänger selbst stets bekannt. Folglich ist hiernach auch die Frequenzdifferenz zwischen Empfänger und Sender bestimmt. Entsprechend der berechneten Frequenzdifferenz wird die Frequenz des empfängerseitigen Taktgenerators angepasst.The instantaneous frequency of the receiver is always known to the receiver itself. Consequently, the frequency difference between the receiver and the transmitter is determined hereafter. According to the calculated frequency difference, the frequency of the receiver-side clock generator is adjusted.
Die Observable t_versatz wird fortlaufend gemessen, so dass auch die Anpassung der Traktfrequenz auf der Empfängerseite fortlaufend erfolgen kann. Die Schrittweite der Anpassungsschritte nimmt dabei mit der Zeit ab, d. h. die Synchronisation wird immer besser. Der experimentell bestimmte Restfehler beträgt bei typischen Anwendungen weniger als 1 ppm, d. h. der verbleibende Taktunterschied beträgt weniger als einen millionsten Teil des Prozesstaktes.The observable t_shift is continuously measured, so that the adjustment of the track frequency on the receiver side can be carried out continuously. The step size of the adaptation steps decreases with time, d. H. the synchronization is getting better. The experimentally determined residual error is less than 1 ppm in typical applications, i. H. the remaining clock difference is less than a millionth part of the process clock.
Die Erfindung wird nachfolgend noch näher erläutert und auch im Zusammenhang mit Netzwerkjitter anhand der Figuren diskutiert. Dabei zeigt:The invention will be explained in more detail below and also discussed in connection with network jitter with reference to the figures. Showing:
In
Das erfindungsgemäße Synchronisationsverfahren führt durch Anpassung der empfängerseitigen Taktfrequenz dazu, dass t_versatz mit der Zeit einen konstanten Wert annimmt, wie aus
In Weitverkehrsnetzwerken (Wide Area Network, WAN) ist der Netzwerkjitter ein inhärentes Problem. Aufgrund des Netzwerkjitters können die eintreffenden Pakete um eine unbestimmte Zeitspanne verzögert sein und dadurch jeden einzelnen Messwert t_versatz verfälschen oder – abhängig vom Ausmaß des Fehlers – nutzlos machen.
Um das beschriebene Synchronisationsverfahren trotz Netzwerkjitter einsetzen zu können, dürfen zu spät eintreffende Datenblöcke nicht mit in die Messung von t_versatz aufgenommen werden. Aus diesem Grunde werden die vom Sender generierten und an den Empfänger übermittelten Zeitstempel auf der Empfängerseite zusätzlich mit der Zeit des Empfängers verglichen. Zwar sind die internen Uhren von Sender und Empfänger selbst nicht synchronisiert, aber der Zeitvergleich von Datenblock zu Datenblock gibt dennoch Aufschluss darüber, welche Verzögerung vom Netzwerkjitter herrührt.In order to be able to use the described synchronization method despite network jitter, incoming data blocks too late must not be included in the measurement of t_offset. For this reason, the timestamp generated by the sender and transmitted to the receiver on the receiver side are additionally compared with the time of the receiver. Although the internal clocks of the transmitter and receiver are not synchronized themselves, the time comparison of data block to data block still provides information about the delay resulting from the network jitter.
Die Differenz zwischen der Empfangszeit (gemessen am Empfänger) und der Sendezeit (gemessen am Sender und festgehalten im übertragenen Zeitstempel) ist eine im WAN möglicherweise stark streuende Messgröße, die nachfolgend Paketlaufzeit genannt werden soll und deren Mittelwert über einen längeren Zeitraum (z. B. 1 Sekunde) leicht bestimmt werden kann. Dabei ist anzumerken, dass die Messung der Paketlaufzeit natürlich auch durch die fehlende Taktsynchronisation von Sender und Empfänger fehlerbehaftet ist. Sie kann zudem durch unkontrollierbare Einflüsse auf die Netzwerkverbindung (etwa die Last) kurzfristig stark schwanken.The difference between the reception time (measured at the receiver) and the transmission time (measured at the transmitter and recorded in the transmitted timestamp) is possibly a strongly scattering measured variable in the WAN, which is referred to below as packet delay and whose average value over a longer period of time (eg. 1 second) can be easily determined. It should be noted that the measurement of the packet transit time of course is also affected by the lack of clock synchronization of transmitter and receiver error. It can also fluctuate in the short term by uncontrollable influences on the network connection (such as the load).
Erfindungsgemäß wird deshalb der Mittelwert der Paketlaufzeit wiederkehrend bestimmt, beispielsweise einmal pro Sekunde. Sobald dieser Mittelwert bestimmt ist, werden nur noch Datenblöcke zur Messung von t_versatz benutzt, deren tatsächliche Laufzeit im asynchronen Netz dem Mittelwert der Paketlaufzeit im Wesentlichen entspricht. Alle übrigen Datenblöcke werden für die Messung von t_versatz als ungültig verworfen.According to the invention, therefore, the mean value of the packet transit time is determined recurrently, for example once per second. As soon as this mean value is determined, only data blocks for measuring t_offset are used whose actual runtime in the asynchronous network essentially corresponds to the mean value of the packet transit time. All remaining data blocks are rejected as invalid for the measurement of t_offset.
Anstelle der wahren Werte von t_versatz, die infolge der Ungültigkeit von empfangenen Datenblöcken nicht fortlaufend neu bestimmt werden können, wird der letzte gültige Wert für t_versatz schlicht wiederholt (repliziert) bis das nächste gültige Datenpaket eintrifft. Durch dieses Vorgehen ergibt sich die Stufenfunktion aus
Das beschriebene Verfahren kann beispielsweise verwendet werden, um die Aufnahme- und Wiedergabeprozesse zweier Soundkarten an unterschiedlichen Standorten zu synchronisieren, wobei der Datenaustausch über das Internet erfolgt.The described method can be used, for example, to synchronize the recording and playback processes of two sound cards at different locations, whereby the data exchange takes place via the Internet.
Bei herkömmlichen Soundkarten arbeitet man mit einer typischen Samplefrequenz von 48 kHz. Da die Taktgeneratoren herkömmlicher Soundkarten jedoch nicht exakt abgestimmt sind und auch einer gewissen Temperaturabhängigkeit unterliegen, hat man in der Praxis das Problem, dass eine aufnehmende Soundkarte an Standort A in einem festen Zeitintervall geringfügig mehr bzw. weniger Abtastwerte generiert als die wiedergebende Soundkarte an Standort B abspielt. Je nach Soundkarte ergeben sich Abweichungen von bis zu 100 ppm, so dass bei 48 kHz Samplefrequenz innerhalb einer Minute eine Differenz von 60 s × 48.000 1/s × 100/1.000.000 = 288 Samples entsteht. Neben einer geringfügig veränderten Tonhöhe macht sich in der Praxis vor allem negativ bemerkbar, dass in den empfängerseitigen Puffer durch dieses Ungleichgewicht von Zeit zu Zeit ein Unter- bzw. Überlauf stattfindet. Nach dem gegenwärtigen Stand der Technik wird dies (z. B. bei Voice-over-IP-Anwendungen) entweder in Kauf genommen oder durch Resampling bzw. gezieltes Weglassen oder Verdoppeln einzelner Samples softwareseitig ausgeglichen. Diese Ansätze führen jedoch zu einer Verfälschung des Signals.With conventional sound cards one works with a typical sample frequency of 48 kHz. However, since the clock generators of conventional sound cards are not exactly tuned and are also subject to a certain temperature dependence, the problem in practice is that a receiving sound card at location A generates slightly more or fewer samples at a fixed time interval than the reproducing sound card at location B. happening. Depending on the sound card, deviations of up to 100 ppm result, so that a difference of 60 s × 48,000 1 / s × 100 / 1,000,000 = 288 samples occurs at 48 kHz sample frequency within one minute. In addition to a slightly changed pitch makes in practice, especially negative, that in the receiver-side buffer from this imbalance from time to time underflow or overflow takes place. According to the current state of the art, this is either accepted (for example in the case of Voice-over-IP applications) or compensated by resampling or deliberate omission or duplication of individual samples on the software side. However, these approaches lead to a distortion of the signal.
Das erfindungsgemäße Verfahren ermöglicht nun die unverfälschte Wiedergabe des Signals. Jedes vom Sender gesendete Datenpaket repräsentiert eine feste Anzahl von Samples, z. B. Blöcke mit jeweils 128 Samples. Der Sender schickt das Datenpaket sofort ab, nachdem alle Samples für einen kompletten Block vorliegen. Der Empfänger empfängt die Blöcke und benutzt die übertragenen Daten, um den Prozess der Senderseite nachzuvollziehen; im Beispiel ist die Wiedergabe der Samples über die lokale Soundkarte eine adäquate Form der Simulation. Der Wiedergabeprozess läuft zunächst typisch schneller oder langsamer ab als der Aufnahmeprozess des Senders.The inventive method now allows the pure reproduction of the signal. Each data packet transmitted by the transmitter represents a fixed number of samples, e.g. B. blocks of 128 samples each. The sender sends the data packet immediately after all samples are available for a complete block. The receiver receives the blocks and uses the transmitted data to track the process of the transmitter side; In the example, playing the samples over the local sound card is an adequate form of simulation. The playback process is typically faster or slower than the recording process of the transmitter.
Zu jedem Referenzzeitpunkt der empfängerseitigen Soundkarte wird eine Zeitmessung gestartet. Diese Messung wird gestoppt, sobald ein Datenpaket über das Netzwerk eintrifft. Allerdings sind die so durchgeführten Messungen nicht immer brauchbar: Netzwerkjitter sorgt in der Regel dafür, dass die Abstände zwischen den Empfangszeitpunkten der Datenpakete nicht konstant sind. Um dadurch entstehende Messfehler zu vermeiden, werden die empfangenen Datenpakete einem Selektionsprozess unterzogen. Verzögerte Datenpakete führen dann zu ungültigen Zeitmessungen, die nicht weiter verwendet werden.At each reference time of the receiver-side sound card, a time measurement is started. This measurement is stopped as soon as a data packet arrives over the network. However, the measurements thus made are not always useful: Network jitter usually ensures that the intervals between the reception times of the data packets are not constant. In order to avoid resulting measurement errors, the received data packets are subjected to a selection process. Delayed data packets will then result in invalid time measurements that will be discontinued.
Laufen Sender und Empfängerprozess mit derselben Geschwindigkeit, so ist das gemessene Zeitintervall t_versatz im Mittel konstant. Anderenfalls wird die Taktfrequenz der Empfängersoundkarte verringert, sofern t_versatz zunimmt (Soundkarte des Empfängers arbeitet schneller als die des Senders), und erhöht, sofern t_versatz abnimmt (Soundkarte des Empfängers arbeitet langsamer als die des Senders). Dieser Anpassungsvorgang wird fortlaufend wiederholt.If the transmitter and receiver process are running at the same speed, then the measured time interval t_offset is constant on average. Otherwise, the clock frequency of the receiver sound card will be reduced if t_offset increases (the receiver's sound card works faster than that of the transmitter), and increases if t_offset decreases (the receiver's sound card is slower than that of the transmitter). This adjustment process is repeated continuously.
Durch die dargestellte indirekte Form der Zeitmessung wird erreicht, dass empfängerseitig keine absolut exakte Uhr benötigt wird, um hieraus eine absolute Frequenz bzw. einen absoluten Frequenzfehler für die Justage des Taktgenerators abzuleiten. Stattdessen wird lediglich die Veränderung des Zeitintervalls betrachtet, das zwischen dem Referenzpunkt und dem Eintreffen des nächsten Pakets liegt. Hierfür ist keine absolute Zeitmessung notwendig, da lediglich die Veränderung einer Zeitspanne betrachtet wird – und zwar in Bezug auf eine beliebige Uhr, an die keine besonderen Genauigkeitsanforderungen gestellt werden.The illustrated indirect form of the time measurement ensures that the receiver side no absolutely exact clock is needed to derive an absolute frequency or an absolute frequency error for the adjustment of the clock generator. Instead, only the change in the time interval between the reference point and the arrival of the next packet is considered. Absolute timekeeping is not necessary for this, as it only looks at the change in a time span - with respect to any clock to which no special accuracy requirements are made.
Die Erfindung ist jedoch nicht auf Anwendungen in Verbindung mit Soundkarten beschränkt, sondern kann zur Synchronisation beliebiger technischer Prozesse verwendet werden, die im Empfänger nachvollzogen, d. h. simuliert werden können. Weitere Beispiele sind die Synchronisation von Produktionsprozessen, die durch Roboter ausgeführt werden, oder die Synchronisation von Software-Prozessen, die auf getrennten Rechnern ablaufen.However, the invention is not limited to applications in connection with sound cards, but can be used to synchronize any technical processes that were traced in the receiver, i. H. can be simulated. Further examples are the synchronization of production processes, which are carried out by robots, or the synchronization of software processes, which run on separate computers.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102009025495.1A DE102009025495B4 (en) | 2009-06-19 | 2009-06-19 | Method for synchronizing processors operating at different locations via an asynchronous communication channel |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102009025495.1A DE102009025495B4 (en) | 2009-06-19 | 2009-06-19 | Method for synchronizing processors operating at different locations via an asynchronous communication channel |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102009025495A1 DE102009025495A1 (en) | 2011-01-05 |
DE102009025495B4 true DE102009025495B4 (en) | 2015-08-06 |
Family
ID=43298813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102009025495.1A Active DE102009025495B4 (en) | 2009-06-19 | 2009-06-19 | Method for synchronizing processors operating at different locations via an asynchronous communication channel |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102009025495B4 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5276659A (en) * | 1990-04-16 | 1994-01-04 | Kabushiki Kaisha Toshiba | Clock synchronous system for a network station |
DE10311541A1 (en) * | 2002-03-20 | 2003-10-09 | Zarlink Semiconductor Vn Inc | Procedure for detecting zero point deviations between two clocks |
US20050013394A1 (en) * | 2001-07-26 | 2005-01-20 | Mathias Rausch | Clock synchronization in a distributed system |
WO2006011867A1 (en) * | 2004-06-25 | 2006-02-02 | Numerex Corporation | Method and system for adjusting digital audio playback sampling rate |
-
2009
- 2009-06-19 DE DE102009025495.1A patent/DE102009025495B4/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5276659A (en) * | 1990-04-16 | 1994-01-04 | Kabushiki Kaisha Toshiba | Clock synchronous system for a network station |
US20050013394A1 (en) * | 2001-07-26 | 2005-01-20 | Mathias Rausch | Clock synchronization in a distributed system |
DE10311541A1 (en) * | 2002-03-20 | 2003-10-09 | Zarlink Semiconductor Vn Inc | Procedure for detecting zero point deviations between two clocks |
WO2006011867A1 (en) * | 2004-06-25 | 2006-02-02 | Numerex Corporation | Method and system for adjusting digital audio playback sampling rate |
Also Published As
Publication number | Publication date |
---|---|
DE102009025495A1 (en) | 2011-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102006019475B4 (en) | Method for synchronizing modules of a base station | |
DE69228376T2 (en) | METHOD FOR MEASURING CHANNEL DELAY | |
DE69321558T2 (en) | Video and audio signal multiplexing and separating devices | |
DE102011087472B4 (en) | Method for synchronizing clocks in nodes of a vehicle network and for implementing the method of established nodes | |
EP1265124B1 (en) | Method for transmitting time information in a packet data network | |
DE19933753B4 (en) | Time synchronization in a system having a set of nodes coupled to a communication link | |
EP2294732B1 (en) | Method and system for the synchronisation of a central station and several transmitters, in particular in a single-frequency network | |
DE10127901B4 (en) | Synchronous system for periodic control | |
DE102006012466A1 (en) | Systems and methods for synchronizing a time across networks | |
DE10311541A1 (en) | Procedure for detecting zero point deviations between two clocks | |
EP2467993B1 (en) | Method and arrangement for synchronising data streams in networks and a corresponding computer program and corresponding computer-readable storage medium | |
DE102008023908A1 (en) | Transparent Spider | |
DE4330054A1 (en) | Simultaneous transmission system | |
DE10064928A1 (en) | Method, clock module and receiver module for synchronizing a receiver module | |
DE60316758T2 (en) | System for the synchronization of commands, as well as a method, a control device and a target device for the same system | |
EP2002580A1 (en) | Synchronizing assembly for the high-frequency transmitters of a common frequency network | |
DE3927681C2 (en) | ||
DE2050718C3 (en) | Method for communication via an earth satellite by means of time division multiplex and device for carrying out the method | |
EP2534775A1 (en) | Method for time synchronization in a communication network | |
WO2019072598A1 (en) | Method and system for recording and synchronizing audio and video signals and audio and video recording and synchronization system | |
EP1172954B1 (en) | Method, module and module program for synchronisation | |
DE19912556A1 (en) | Wireless network with user clock synchronization | |
WO2000031610A1 (en) | Network subscriber | |
DE69424844T2 (en) | Method and device for synchronizing the transmission frequency of two base stations | |
DE69221938T2 (en) | Radio transmission arrangement with measurement and regulation of the transmission delay |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R082 | Change of representative |
Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE Representative=s name: BOEHMERT & BOEHMERT, DE Representative=s name: BOEHMERT & BOEHMERT, 28209 BREMEN, DE |
|
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R081 | Change of applicant/patentee |
Owner name: CAROT, ALEXANDER, PROF. DR.-ING., DE Free format text: FORMER OWNER: UNIVERSITAET ZU LUEBECK, 23562 LUEBECK, DE Owner name: WERNER, CHRISTIAN, PROF. DR.-ING., DE Free format text: FORMER OWNER: UNIVERSITAET ZU LUEBECK, 23562 LUEBECK, DE |
|
R082 | Change of representative |
Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE |