DE102017214421A1 - Verfahren und Vorrichtung zur Synchronisation von Prozessen auf wenigstens zwei Prozessoren - Google Patents
Verfahren und Vorrichtung zur Synchronisation von Prozessen auf wenigstens zwei Prozessoren Download PDFInfo
- Publication number
- DE102017214421A1 DE102017214421A1 DE102017214421.1A DE102017214421A DE102017214421A1 DE 102017214421 A1 DE102017214421 A1 DE 102017214421A1 DE 102017214421 A DE102017214421 A DE 102017214421A DE 102017214421 A1 DE102017214421 A1 DE 102017214421A1
- Authority
- DE
- Germany
- Prior art keywords
- signal
- edges
- processor
- counter
- clocking
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000004590 computer program Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000000630 rising effect Effects 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/04—Speed or phase control by synchronisation signals
- H04L7/08—Speed or phase control by synchronisation signals the synchronisation signals recurring cyclically
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/38—Synchronous or start-stop systems, e.g. for Baudot code
- H04L25/40—Transmitting circuits; Receiving circuits
- H04L25/49—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0091—Transmitter details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/38—Synchronous or start-stop systems, e.g. for Baudot code
- H04L25/40—Transmitting circuits; Receiving circuits
- H04L25/49—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
- H04L25/4902—Pulse width modulation; Pulse position modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
Verfahren und Vorrichtung zur Synchronisation von Prozessen, wobei von einem taktgebenden Prozessor (102) ein erstes Signal (106) gesendet wird, wobei das erste Signal (106) abwechselnd erste Flanken mit einer ersten Richtung und zweite Flanken, mit einer der ersten Flanke entgegengesetzten zweiten Richtung aufweist, wobei ein zeitlicher Abstand zwischen wenigstens einer der ersten Flanken und wenigstens einer der zweiten Flanken abhängig von einem Stand eines Zählers im taktgebenden Prozessor (102) bestimmt wird. Verfahren zur Synchronisation von Prozessen, wobei von einem taktnehmenden Prozessor (104) ein erstes Signal (106) empfangen wird, wobei das erste Signal (106) abwechselnd erste Flanken mit einer ersten Richtung und zweite Flanken, mit einer der ersten Flanke entgegengesetzten zweiten Richtung aufweist, wobei ein Stand eines Zählers (112) im taktnehmenden Prozessor (104) abhängig von einem zeitlichen Abstand zwischen wenigstens einer der ersten Flanken und wenigstens einer der zweiten Flanken bestimmt wird.
Description
- Stand der Technik
- Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Synchronisation von Prozessen auf wenigstens zwei Prozessoren.
- Herkömmliche Systeme mit mehreren Prozessoren, die zeitlich synchron ablaufen müssen, werden über Signale synchronisiert, die über drei verschiedene Signalleitungen über General Purpose Input Output Pins der Prozessoren ausgetauscht werden. Dabei wird ein erstes Signal von einem taktgebenden Prozessor an einen taktnehmenden Prozessor übermittelt. Im ersten Signal werden periodisch in ersten Zeitabständen T1 Taktflanken abwechselnder Richtung übertragen. Das erste Signal signalisiert in zweiten Zeitabständen T2 = 2 * T1 periodisch mit Taktflanken derselben Richtung Startzeitpunkte zu denen ein erster Prozess auf dem taktgebenden Prozessor startet. Im taktgebenden Prozessor wird ein erster Zähler von 0 bis N-1 inkrementiert. Im taktnehmenden Prozessor wird ein zweiter Zähler von 0 bis N-1 inkrementiert. Der erste Zähler und der zweite Zähler zählen von 0 bis N-1 und starten dann wieder bei 0. Zur Synchronisation der Zähler wird immer dann eine Flanke eines zweiten Signals vom taktgebenden Prozessor zum taktnehmenden Prozessor übertragen, wenn der erste Zähler bei 0 startet. Dies ist periodisch in dritten Zeitabständen N*T2 der Fall. Dadurch wird eine Phasenlage zwischen erstem Zähler und zweitem Zähler bestimmbar. Im taktnehmenden Prozessor ist eine Zustandsmaschine angeordnet, die den zweiten Zähler abhängig von der Phasenlage zeitlich mit dem ersten Zähler synchronisiert. Sobald der zweite Zähler zeitlich synchronisiert ist, wird ein drittes Signal, das die zeitliche Synchronisierung bestätigt, vom taktnehmenden Prozessor zum taktgebenden Prozessor gesendet. Erst dann wird der erste Prozess tatsächlich gestartet. Ein zweiter Prozess auf dem taktnehmenden Prozessor wird dann anhand des ersten Signals zeitlich synchron gestartet. Das dritte Signal wird hierbei frühestens nach einer Zeitdauer von 2*N*T2 übermittelt.
- Wünschenswert ist es eine demgegenüber verbesserte Synchronisation zu ermöglichen.
- Offenbarung der Erfindung
- Dies wird durch das Verfahren und die Vorrichtung nach den unabhängigen Ansprüchen ermöglicht.
- Bezüglich des Verfahrens ist zur Synchronisation von Prozessen vorgesehen, dass von einem taktgebenden Prozessor ein erstes Signal gesendet wird, wobei das erste Signal abwechselnd erste Flanken mit einer ersten Richtung und zweite Flanken, mit einer der ersten Flanke entgegengesetzten zweiten Richtung aufweist, wobei ein zeitlicher Abstand zwischen wenigstens einer der ersten Flanken und wenigstens einer der zweiten Flanken abhängig von einem Stand eines Zählers im taktgebenden Prozessor bestimmt wird. Dadurch wird der Zählerstand anhand der Länge des zeitlichen Abstands kodierbar. Dies ermöglicht es den Zählerstand auf dem taktgebenden Prozessor in demselben Signal an einen taktnehmenden Prozessor zu übertragen, in dem mögliche Startzeitpunkte für einen Prozess auf dem taktnehmenden Prozessor übertragen werden. Dies spart gegenüber herkömmlicher Signalisierung eine Signalleitung ein, ohne die Synchronisierung zu verlangsamen.
- Vorteilhafterweise wird das erste Signal vom taktgebenden Prozessor mit sich periodisch wiederholenden ersten Flanken gesendet, wobei wenigstens der zeitlicher Abstand zwischen einer der ersten Flanken und einer unmittelbar auf eine erste Flanke folgenden zweiten Flanke abhängig vom Stand des Zählers im taktgebenden Prozessor bestimmt wird. Die möglichen Startzeitpunkte werden so periodisch, beispielsweise mit steigender Flanke übertragen. Eine fallende Flanke, die in diesem Fall unmittelbar auf eine der steigenden Flanken folgt, kodiert in der Länge des zeitlichen Abstands zwischen der steigenden Flanke und der fallenden Flanke den momentanen Zählerstand.
- Vorteilhafterweise wird vom taktgebenden Prozessor ein zweites Signal empfangen, das eine erfolgreiche Synchronisation des taktnehmenden Prozessors mit dem Zähler bestätigt. Dies bestätigt die Synchronisierung.
- Vorteilhafterweise wird das zweite Signal und das erste Signal in einem Zeitmultiplexverfahren über dieselbe Signalleitung gesendet. Dies spart eine Signalleitung und zwei General Purpose Input Output Pins.
- Vorteilhafterweise werden das zweite Signal und das erste Signal auf unterschiedlichen Signalleitungen gesendet. Die parallele Übertragung beschleunigt die Synchronisierung.
- Vorteilhafterweise wird auf dem taktgebenden Prozessor ein Prozess nach Erhalt des zweiten Signals und synchron zu den sich periodisch wiederholenden ersten Flanken gestartet. Damit wird sichergestellt, dass der Prozess nach erfolgreicher Synchronisierung zeitgleich mit dem ersten Signal an den taktnehmenden Prozessor startet.
- Vorteilhafterweise wird von dem taktnehmenden Prozessor ein erstes Signal empfangen, wobei das erste Signal abwechselnd erste Flanken mit einer ersten Richtung und zweite Flanken, mit einer der ersten Flanke entgegengesetzten zweiten Richtung aufweist, wobei ein Stand eines Zählers im taktnehmenden Prozessor abhängig von einem zeitlichen Abstand zwischen wenigstens einer der ersten Flanken und wenigstens einer der zweiten Flanken bestimmt wird. Der taktnehmende Prozessor wirkt damit mit dem zuvor erwähnten taktgebenden Prozessoren zur verbesserten Synchronisation zusammen.
- Vorteilhafterweise wird das erste Signal vom taktnehmenden Prozessor mit sich periodisch wiederholenden ersten Flanken empfangen, wobei der Stand des Zählers im taktnehmenden Prozessor abhängig von wenigstens dem einen zeitlichen Abstand zwischen einer der ersten Flanken und einer unmittelbar auf die wenigstens eine erste Flanke folgenden zweiten Flanke bestimmt wird. Der taktnehmende Prozessor wertet die zuvor erwähnten Flanken zur verbesserten Synchronisation aus.
- Vorteilhafterweise wird vom taktnehmenden Prozessor ein zweites Signal gesendet, das eine erfolgreiche Synchronisation des Zählers des taktnehmenden Prozessors bestätigt. Damit signalisiert der taktnehmende Prozessor die Bereitschaft, Prozesse synchron abzuarbeiten.
- Vorteilhafterweise werden das zweite Signal und das erste Signal in einem Zeitmultiplexverfahren über dieselbe Signalleitung empfangen. Dies spart eine Signalleitung und zwei General Purpose Input Output Pins.
- Vorteilhafterweise werden das zweite Signal und das erste Signal auf unterschiedlichen Signalleitungen empfangen. Die parallele Übertragung beschleunigt die Synchronisierung.
- Vorteilhafterweise wird auf dem taktnehmenden Prozessor ein Prozess nach Senden des zweiten Signals und synchron zu den sich periodisch wiederholenden ersten Flanken gestartet. Dies stellt sicher, dass der Prozess auf dem taktnehmenden Prozessor synchron mit dem taktgebenden Prozessor aufgerufen wird.
- Bezüglich der Vorrichtung zur Synchronisation von Prozessen, sind der taktgebenden Prozessor und der taktnehmende Prozessor ausgebildet, das jeweilige Verfahren auszuführen.
- Die Erfindung betrifft auch ein Computerprogramm mit Instruktionen zur Ausführung eines der erwähnten Verfahren, insbesondere auf einem der erwähnten Prozessoren.
- Weitere vorteilhafte Ausgestaltungen ergeben sich aus der nachfolgenden Beschreibung und der Zeichnung. In der Zeichnung zeigt
-
1 schematisch eine Schnittstelle zwischen einem taktgebenden Prozessor und einem taktnehmenden Prozessor, -
2 schematisch ein Signalflussdiagramm in einem Verfahren zur Synchronisation von Prozessen, -
3 schematisch mögliche Signalverläufe eines kodierten Signals zur Synchronisation der Prozesse, -
4 schematisch eine Zuordnung einer Kodierung zu zeitlichem Abstand von Flanken entgegengesetzter Richtung im kodierten Signal. -
1 zeigt schematisch eine Schnittstelle100 zwischen einem taktgebenden Prozessor102 und einem taktnehmenden Prozessor104 . - Eine Vorrichtung zur Synchronisation von Prozessen umfasst entweder den taktgebenden Prozessor
102 oder den taktnehmenden Prozessor104 oder beide. Es können auch mehr als zwei Prozessoren vorgesehen sein. Die Vorrichtung ist insbesondere in einem Steuergerät oder in mehreren Steuergeräten eines Kraftfahrzeugs angeordnet. - Ein Computerprogramm enthält Instruktionen zur Ausführung eines der im Folgenden beschriebenen Verfahren. Die Prozessoren sind ausgebildet das Computerprogramm auszuführen.
- Die Schnittstelle
100 ist zur Übertragung eines ersten Signals106 vom taktgebenden Prozessor102 zum taktnehmenden Prozessor104 ausgebildet. Die Schnittstelle100 ist zur Übertragung eines zweiten Signals108 vom taktnehmenden Prozessor104 zum taktgebenden Prozessor102 ausgebildet. - Der taktgebenden Prozessor
102 umfasst einen ersten Zähler110 . Der taktnehmende Prozessor104 umfasst einen zweiten Zähler112 . Der taktgebende Prozessor102 ist ausgebildet einen ersten Prozess auszuführen. Der taktnehmende Prozessor104 ist ausgebildet einen zweiten Prozess auszuführen. Die Prozesse werden beispielsweise alle 20 ms, 40 ms oder 100 ms aufgerufen. -
2 zeigt schematisch ein Signalflussdiagramm in einem Verfahren zur Synchronisation von Prozessen, insbesondere des ersten Prozesses und des zweiten Prozesses. - In einem Schritt
202 wird abhängig vom Stand des Zählers im taktgebenden Prozessor102 ein zeitlicher Abstand zwischen wenigstens einer ersten Flanke und einer zweiten Flanken des ersten Signals106 bestimmt. - Anschließend wird in einem Schritt
204 die erste Flanke und die unmittelbar darauf folgende zweite Flanke in dem zeitlichen Abstand vom taktgebenden Prozessor102 an den taktnehmenden Prozessor104 gesendet. - Anschließend wird in einem Schritt
206 vom taktnehmenden Prozessor104 die erste Flanke und die unmittelbar folgende zweite Flanke detektiert, der zeitliche Abstand zwischen der ersten Flanke und der zweiten Flanke ermittelt, und der Stand des zweiten Zählers112 im taktnehmenden Prozessor104 abhängig von dem zeitlichen Abstand bestimmt und korrigiert. - Anschließend wird in einem optionalen Schritt
208 das zweite Signal108 vom taktnehmenden Prozessor104 an den taktgebenden Prozessor102 gesendet, das eine erfolgreiche Synchronisation des zweiten Zählers112 des taktnehmenden Prozessors104 bestätigt. Optional wird der zweite Prozess auf dem taktnehmenden Prozessor104 als synchron markiert. - Anschließend wird in einem optionalen Schritt
210 das zweite Signal108 vom taktgebenden Prozessor102 empfangen. Optional wird der erste Prozess auf dem taktgebenden Prozessor102 als synchron markiert. - Anschließend wird in einem Schritt
212 der erste Prozess zum Zeitpunkt gestartet, zu dem die ersten Flanken des ersten Signals auftreten. - Zeitlich synchron dazu wird der zweite Prozess in einem Schritt
214 gestartet. - Das erste Signal
106 weist im Beispiel abwechselnd erste Flanken mit einer ersten Richtung und zweite Flanken, mit einer der ersten Flanke entgegengesetzten zweiten Richtung auf. - Das erste Signal
106 wird im Beispiel vom taktgebenden Prozessor102 vorzugsweise mit sich wiederholenden ersten und zweiten Flanken gesendet. Der erste Prozess und der zweite Prozess werden beispielsweise synchron zu den sich periodisch wiederholenden ersten Flanken gestartet, jedoch erst nachdem das zweite Signal108 gesendet und empfangen wurde. Die ersten Flanken können steigende Flanken sein. Die zweiten Flanken sind in diesem Falle fallende Flanken. Die ersten Flanken können auch fallende Flanken sein. In diesem Falle sind die zweiten Flanken steigende Flanken. - Das erste Signal wird vom taktgebenden Prozessor
102 vorzugsweise mit sich periodisch wiederholenden ersten Flanken gesendet. Vorzugsweise folgt auf jede der sich periodisch wiederholende ersten Flanken eine zweite Flanke, in einem Abstand, der einen momentanen Zählerstand des ersten Zählers110 für den taktgebenden Prozessor102 kodiert. - Wenigstens der zeitliche Abstand zwischen einer der ersten Flanken und wenigstens einer unmittelbar auf die wenigstens eine erste Flanke folgenden zweiten Flanke wird wie zuvor beschrieben abhängig vom Stand des Zählers
110 im taktgebenden Prozessor102 bestimmt und vom taktnehmenden Prozessor104 wie zuvor beschrieben ausgewertet. - Das zweite Signal
108 und das erste Signal106 können in einem Zeitmultiplexverfahren über dieselbe Signalleitung oder auf unterschiedlichen Signalleitungen übertragen werden. -
3 zeigt schematisch mögliche Signalverläufe eines kodierten Signals302 zur Synchronisation der Prozesse, das mittels der ersten Flanke und der zweiten Flanke darstellbar ist. - Der zeitliche Abstand wird ausgehend von der steigenden Flanke
304 anhand von verschiedenen Zeitpunkten t1, t2, ... tk-1, tk dargestellt, zu denen eine unmittelbar auf die steigende Flanke304 folgende fallende Flanke306 des Signals302 auftritt. Der größte zeitliche Abstand T1 entspricht in diesem Beispiel der Hälfte der Periode T2 mit der sich die steigende Flanke304 periodisch wiederholt. - Der momentane Zählerstand kann in dem zeitlichen Abstand dT beliebig kodiert werden. Je mehr verschiedene zeitliche Abstände zur Verfügung stehen, desto genauer kann der momentane Zählerstand dargestellt werden.
-
4 zeigt schematisch eine Zuordnung einer Kodierung zu zeitlichem Abstand dT von Flanken entgegengesetzter Richtung im kodierten Signal für unterschiedliche Werte von k. - Die Kodierung geht davon aus, dass die Zähler von 0 bis N-1 inkrementiert werden und dann wieder bei 0 starten. Die verschiedenen zeitlichen Abstände dT bis zur fallenden Flanken
306 stellen Synchronisationsimpulse sync dar, mit denen der erste Zähler110 seinen Zustand übermittelt und anhand derer der zweite Zähler112 seinen Zustand synchronisiert. Die Synchronisationsimpulse werden in4 nummeriert. sync1 stellt beispielsweise eine fallende Flanke bei t1 dar. Eine der fallenden Flanken stellt einen besonderen Zustand des Erreichens des höchsten Zählerstands N-1 dar. Dieser ist in4 mit clock anstelle von sync bezeichnet. - Für k=2 stehen im Beispiel die Kodierungen 11 und 10 zur Verfügung. 11 bedeutet, dass die fallende Flanke bei t2=T1 erfolgt. 10 bedeutet, dass die fallende Flanke bei t1=T1/2 erfolgt.
- Für k=L stehen L-1 Synchronisationsimpulse zur Verfügung, wobei jeder Synchronisationsimpuls genau einen Zustand des ersten Zählers
110 kodiert. Diese Kodierung wird nacheinander durch Messen der zeitlichen Dauer eines Signalpegels am General Purpose Input Output Pin des taktnehmenden Prozessors104 zu vorgegebenen Messzeitpunkten erzeugt. Ein hoher Signalpegel führt zu einer Kodierung 1, ein niedriger Signalpegel führt zu einer Kodierung 0. Wenn eine Kodierung 0 erfasst wurde, kann die Messung beendet werden, da im Beispiel nur eine fallende Flanke in einer Periode T2 vorgesehen ist. - Der zeitliche Abstand dT eines Synchronisationsimpuls beträgt dT=N*T2/(L-1).
- Eine Synchronisationsdauer beträgt damit 2*N*T2/(L-1). Die herkömmliche Synchronisation hat demgegenüber eine längere Dauer 2*N*T2.
- Für T2=20ms und N=10 ergibt sich bei der verbesserten Synchronisation bei L=5 eine Synchronisationsdauer von 100ms gegenüber von 400ms nach dem erwähnten Stand der Technik.
- Eine Implementierung wird im Folgenden für 20ms Prozesszeit dargestellt:
- Taktgebender Prozessor
- Init:
- k, T1, N
- Zähler = -1
- 20ms Prozess:
-
- Sende steigende Flanke
304 über General Purpose Input Output Pin; - Starte Zeitmesser;
- Inkrementiere Zähler = Zähler +1;
- Falls Zähler >= N, setze Zähler = 0;
- Berechne zeitlichen Abstand dT abhängig vom Wert „Zähler“;
- Warte bis Wert „Zeitmesser“ >= Wert „zeitlicher Abstand dT“, dann sende fallende Flanke
306 über General Purpose Input Output Pin; - Taktnehmender Prozessor
- Init:
- k, T1, N
- Zähler = -1
- Messzeit = T1/k
- 20ms Prozess:
- Interrupt durch steigende Flanke
304 startet 20ms Prozess; - Starte Zeitmesser;
- Inkrementiere Zähler = Zähler + 1
- Falls Zähler >= N Zähler = 0;
- Warte bis Wert „Zeitmesser“ >= „Zähler“ * „Messzeit“, dann messe Signalpegel an General Purpose Input Output Pin;
- Wenn Signalpegel 1, dann speichere momentane Werte, Wiederhole vorherige Schritte ab Inkrementieren des Zählers;
- Wenn Signalpegel 0, dann Beenden der Messung und Synchronisieren des Zählers;
- Senden des zweiten Signals.
- Das Synchronisieren des Zählers erfolgt beispielsweise indem der zweite Zähler
112 auf den kodierten Wert gesetzt wird, sofern der momentane Wert des zweiten Zähler112 vom kodierten Wert abweicht.
Claims (15)
- Verfahren zur Synchronisation von Prozessen, dadurch gekennzeichnet, dass von einem taktgebenden Prozessor (102) ein erstes Signal (106) gesendet wird, wobei das erste Signal (106) abwechselnd erste Flanken (304) mit einer ersten Richtung und zweite Flanken (306), mit einer der ersten Flanke (304) entgegengesetzten zweiten Richtung aufweist, wobei ein zeitlicher Abstand (dT) zwischen wenigstens einer der ersten Flanken (304) und wenigstens einer der zweiten Flanken (306) abhängig von einem Stand eines Zählers im taktgebenden Prozessor (102) bestimmt wird.
- Verfahren nach
Anspruch 1 , dadurch gekennzeichnet, dass das erste Signal (106) vom taktgebenden Prozessor (102) mit sich periodisch wiederholenden ersten Flanken (304) gesendet wird, wobei wenigstens der zeitliche Abstand (dT) zwischen einer der ersten Flanken (304) und wenigstens einer unmittelbar auf die wenigstens eine erste Flanke (304) folgenden zweiten Flanke (306) abhängig vom Stand des Zählers (110) im taktgebenden Prozessor (102) bestimmt wird. - Verfahren nach
Anspruch 2 , dadurch gekennzeichnet, dass vom taktgebenden Prozessor (102) ein zweites Signal (108) empfangen wird, das eine erfolgreiche Synchronisation eines taktnehmenden Prozessors (104) mit dem Zähler (110) bestätigt. - Verfahren nach
Anspruch 3 , dadurch gekennzeichnet, dass das zweite Signal (108) und das erste Signal (106) in einem Zeitmultiplexverfahren über dieselbe Signalleitung gesendet werden. - Verfahren nach
Anspruch 3 , dadurch gekennzeichnet, dass das zweite Signal (108) und das erste Signal (106) auf unterschiedlichen Signalleitungen gesendet werden. - Verfahren nach einem der
Ansprüche 3 bis5 , dadurch gekennzeichnet, dass auf dem taktgebenden Prozessor (102) ein Prozess nach Erhalt des zweiten Signals (108) und synchron zu den sich periodisch wiederholenden ersten Flanken (304) gestartet wird. - Verfahren zur Synchronisation von Prozessen, dadurch gekennzeichnet, dass von einem taktnehmenden Prozessor (104) ein erstes Signal (106) empfangen wird, wobei das erste Signal (106) abwechselnd erste Flanken (304) mit einer ersten Richtung und zweite Flanken (306), mit einer der ersten Flanke (304) entgegengesetzten zweiten Richtung aufweist, wobei ein Stand eines Zählers (112) im taktnehmenden Prozessor (104) abhängig von einem zeitlichen Abstand zwischen wenigstens einer der ersten Flanken (304) und wenigstens einer der zweiten Flanken (306) bestimmt wird.
- Verfahren nach
Anspruch 7 , dadurch gekennzeichnet, dass das erste Signal (102) vom taktnehmenden Prozessor (104) mit sich periodisch wiederholenden ersten Flanken (304) empfangen wird, wobei der Stand des Zählers (112) im taktnehmenden Prozessor (104) abhängig vom wenigsten ein zeitlichen Abstand zwischen wenigstens einer der ersten Flanken (304) und wenigstens einer unmittelbar auf die wenigstens eine erste Flanke (304) folgenden zweiten Flanke (306) bestimmt wird. - Verfahren nach
Anspruch 8 , dadurch gekennzeichnet, dass vom taktnehmenden Prozessor (104) ein zweites Signal (108) gesendet wird, das eine erfolgreiche Synchronisation des Zählers des taktnehmenden Prozessors (104) bestätigt. - Verfahren nach
Anspruch 9 , dadurch gekennzeichnet, dass das zweite Signal (108) und das erste Signal (104) in einem Zeitmultiplexverfahren über dieselbe Signalleitung empfangen werden. - Verfahren nach
Anspruch 9 , dadurch gekennzeichnet, dass das zweite Signal (108) und das erste Signal (106) auf unterschiedlichen Signalleitungen empfangen werden. - Verfahren nach einem der
Ansprüche 9 bis11 , dadurch gekennzeichnet, dass auf dem taktnehmenden Prozessor (112) ein Prozess nach Senden des zweiten Signals (108) und synchron zu den sich periodisch wiederholenden ersten Flanken gestartet wird. - Vorrichtung zur Synchronisation von Prozessen, gekennzeichnet durch einen taktgebenden Prozessor (102), der ausgebildet ist ein Verfahren nach einem der
Ansprüche 1 bis6 auszuführen. - Vorrichtung zur Synchronisation von Prozessen, gekennzeichnet durch einen taktnehmenden Prozessor (104), der ausgebildet ist ein Verfahren nach einem der
Ansprüche 7 bis12 auszuführen. - Computerprogramm, dadurch gekennzeichnet, dass das Computerprogramm Instruktionen zur Ausführung eines Verfahrens nach den
Ansprüchen 1 bis12 enthält.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102017214421.1A DE102017214421A1 (de) | 2017-08-18 | 2017-08-18 | Verfahren und Vorrichtung zur Synchronisation von Prozessen auf wenigstens zwei Prozessoren |
US15/999,196 US10915375B2 (en) | 2017-08-18 | 2018-08-16 | Method and device for the synchronization of processes on at least two processors |
CN201810940883.2A CN109412777B (zh) | 2017-08-18 | 2018-08-17 | 用于同步至少两个处理器上的进程的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102017214421.1A DE102017214421A1 (de) | 2017-08-18 | 2017-08-18 | Verfahren und Vorrichtung zur Synchronisation von Prozessen auf wenigstens zwei Prozessoren |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102017214421A1 true DE102017214421A1 (de) | 2019-02-21 |
Family
ID=65235168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102017214421.1A Pending DE102017214421A1 (de) | 2017-08-18 | 2017-08-18 | Verfahren und Vorrichtung zur Synchronisation von Prozessen auf wenigstens zwei Prozessoren |
Country Status (3)
Country | Link |
---|---|
US (1) | US10915375B2 (de) |
CN (1) | CN109412777B (de) |
DE (1) | DE102017214421A1 (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189623B (zh) * | 2018-08-24 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种cpu的测试方法、装置及电子设备 |
US10824188B2 (en) | 2019-01-14 | 2020-11-03 | Groq, Inc. | Multichip timing synchronization circuits and methods |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4196416A (en) * | 1976-09-01 | 1980-04-01 | Steuerungstechnik Gmbh | Synchronization apparatus with variable window width and spacing at the receiver |
KR100235842B1 (ko) * | 1997-08-28 | 1999-12-15 | 윤종용 | 데이터 송/수신 회로 및 그 방법 |
US6065131A (en) * | 1997-11-26 | 2000-05-16 | International Business Machines Corporation | Multi-speed DSP kernel and clock mechanism |
DE10007606A1 (de) * | 2000-02-18 | 2001-08-30 | Siemens Ag | Verfahren zur Frequenzteilung eines Taktsignals und Frequenzteilerschaltung zur Realisierung des Verfahrens |
DE10046920C2 (de) * | 2000-09-21 | 2003-08-14 | Siemens Ag | Verfahren zum gesteuerten Einsynchronisieren auf ein nicht stabiles Taktsystem und hiermit korrespondierende Empfangseinheit |
JP4313715B2 (ja) * | 2004-04-01 | 2009-08-12 | Okiセミコンダクタ株式会社 | 同期確立回路および同期確立方法 |
DE102005037263A1 (de) * | 2005-08-08 | 2007-02-15 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Decodieren eines Signals |
US20080263380A1 (en) * | 2007-04-23 | 2008-10-23 | Joseph Ernest Dryer | Gps time syncronization for data device |
JP5541234B2 (ja) * | 2011-06-08 | 2014-07-09 | 株式会社デンソー | トランシーバ |
US9696826B2 (en) * | 2015-06-30 | 2017-07-04 | Atmel Corporation | Stylus with low-power detector |
KR102456587B1 (ko) * | 2015-11-09 | 2022-10-20 | 에스케이하이닉스 주식회사 | 래치 회로, 그 래치 기반의 이중 데이터 레이트 링 카운터, 하이브리드 카운팅 장치, 아날로그-디지털 변환 장치, 및 씨모스 이미지 센서 |
CN105549487B (zh) * | 2016-01-26 | 2018-01-16 | 广州龙之杰科技有限公司 | 一种数字信号边沿延时修正***及方法 |
-
2017
- 2017-08-18 DE DE102017214421.1A patent/DE102017214421A1/de active Pending
-
2018
- 2018-08-16 US US15/999,196 patent/US10915375B2/en active Active
- 2018-08-17 CN CN201810940883.2A patent/CN109412777B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US10915375B2 (en) | 2021-02-09 |
US20190056976A1 (en) | 2019-02-21 |
CN109412777B (zh) | 2023-08-08 |
CN109412777A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102011004040B4 (de) | Synchronisationssignalerfassungsvorrichtung | |
DE112015003343B4 (de) | Netzwerksystem, Zeit-Master-Station und Zeit-Slave-Station | |
EP3706340A1 (de) | Verfahren zur synchronisation von uhren in knoten eines fahrzeugnetzes und zur durchführung des verfahrens eingerichteter knoten | |
DE2537937C2 (de) | Synchronisationsschaltung, die durch Ermittlung eines günstigen Abtastzeitpunktes den Empfang von in einem gestörten Eingangssignal enthaltenen Impulsen ermöglicht | |
EP3298798B1 (de) | Verfahren und vorrichtung zur sensorsynchronisierung | |
EP1750482A2 (de) | Verfahren zum Synchronisieren von Signaltönen und entsprechende Hörgeräte | |
DE112015005263T5 (de) | Kommunikationssystem und Kommunikationsvorrichtung | |
DE69020439T2 (de) | Anordnung zur Synchronisierung von Datenrahmengruppen in einem seriellen Bitstrom. | |
DE102017214421A1 (de) | Verfahren und Vorrichtung zur Synchronisation von Prozessen auf wenigstens zwei Prozessoren | |
WO2012013423A1 (de) | Messverfahren für eine von hilfsmessgrössen abhängige messgrösse | |
DE102013213088A1 (de) | Überwachungsschaltung mit einem Signatur-Watchdog | |
EP0834749B1 (de) | Verfahren und Vorrichtung zur Entfernungsmessung zwischen zwei über einen Kommunikationskanal verbundenen Stationen | |
DE112013007362T5 (de) | Entfernungsmesseinrichtung und Entfernungsmessverfahren | |
DE112013007197T5 (de) | Programmierbare Steuerung | |
AT518674A1 (de) | Verfahren zur synchronisierten Erfassung von zur Steuerung von Differentialschutzeinrichtungen elektrischer Energieleitungen benötigten Messdaten | |
DE102017009587B4 (de) | Phasendifferenzschätzungsvorrichtung und Kommunikationsvorrichtung mit der Phasendifferenzschätzungsvorrichtung | |
EP2455830A1 (de) | Verfahren zur Erfassung von Eingangssignaländerungen | |
DE102016222618A1 (de) | Verfahren zum Überwachen eines Zeitgebers einer integrierten Schaltung | |
DE1183958B (de) | Taktgeber, z. B. fuer TASI-Systeme | |
DE102014104668B4 (de) | Verfahren zum Betreiben eines Encoder-Emulators und Encoder-Emulator | |
DE102015002170A1 (de) | Verfahren für eine deterministische Auswahl eines Sensors aus einer Vielzahl von Sensoren | |
DE2721764C2 (de) | Bitfehlerquotenbestimmung in PCMÜbertragungssystemen | |
EP2287693B1 (de) | Verfahren zum synchronen Erfassen und Aufzeichnen von Prozess- und/oder Zustandsdaten sowie Automatisierungssystem | |
DE2049947C3 (de) | Anordnung zum Erkennen einer im bitseriellen Datenfluß auftretenden vorgegebenen Bitfolge | |
DE102009036335B3 (de) | Herstellungsverfahren für Rohre und Walzenstraße |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed |