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 PDF

Info

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
Application number
DE102017214421.1A
Other languages
English (en)
Inventor
Christoph Mueller
Thomas Gebauer
Cristina Murillo Miranda
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch 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
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102017214421.1A priority Critical patent/DE102017214421A1/de
Priority to US15/999,196 priority patent/US10915375B2/en
Priority to CN201810940883.2A priority patent/CN109412777B/zh
Publication of DE102017214421A1 publication Critical patent/DE102017214421A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/08Speed or phase control by synchronisation signals the synchronisation signals recurring cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0091Transmitter details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting 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/4902Pulse width modulation; Pulse position modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed 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 Schnittstelle 100 zwischen einem taktgebenden Prozessor 102 und einem taktnehmenden Prozessor 104.
  • Eine Vorrichtung zur Synchronisation von Prozessen umfasst entweder den taktgebenden Prozessor 102 oder den taktnehmenden Prozessor 104 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 Signals 106 vom taktgebenden Prozessor 102 zum taktnehmenden Prozessor 104 ausgebildet. Die Schnittstelle 100 ist zur Übertragung eines zweiten Signals 108 vom taktnehmenden Prozessor 104 zum taktgebenden Prozessor 102 ausgebildet.
  • Der taktgebenden Prozessor 102 umfasst einen ersten Zähler 110. Der taktnehmende Prozessor 104 umfasst einen zweiten Zähler 112. Der taktgebende Prozessor 102 ist ausgebildet einen ersten Prozess auszuführen. Der taktnehmende Prozessor 104 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 Prozessor 102 ein zeitlicher Abstand zwischen wenigstens einer ersten Flanke und einer zweiten Flanken des ersten Signals 106 bestimmt.
  • Anschließend wird in einem Schritt 204 die erste Flanke und die unmittelbar darauf folgende zweite Flanke in dem zeitlichen Abstand vom taktgebenden Prozessor 102 an den taktnehmenden Prozessor 104 gesendet.
  • Anschließend wird in einem Schritt 206 vom taktnehmenden Prozessor 104 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ählers 112 im taktnehmenden Prozessor 104 abhängig von dem zeitlichen Abstand bestimmt und korrigiert.
  • Anschließend wird in einem optionalen Schritt 208 das zweite Signal 108 vom taktnehmenden Prozessor 104 an den taktgebenden Prozessor 102 gesendet, das eine erfolgreiche Synchronisation des zweiten Zählers 112 des taktnehmenden Prozessors 104 bestätigt. Optional wird der zweite Prozess auf dem taktnehmenden Prozessor 104 als synchron markiert.
  • Anschließend wird in einem optionalen Schritt 210 das zweite Signal 108 vom taktgebenden Prozessor 102 empfangen. Optional wird der erste Prozess auf dem taktgebenden Prozessor 102 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 Prozessor 102 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 Signal 108 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ählers 110 für den taktgebenden Prozessor 102 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 Prozessor 102 bestimmt und vom taktnehmenden Prozessor 104 wie zuvor beschrieben ausgewertet.
  • Das zweite Signal 108 und das erste Signal 106 können in einem Zeitmultiplexverfahren über dieselbe Signalleitung oder auf unterschiedlichen Signalleitungen übertragen werden.
  • 3 zeigt schematisch mögliche Signalverläufe eines kodierten Signals 302 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 Flanke 304 folgende fallende Flanke 306 des Signals 302 auftritt. Der größte zeitliche Abstand T1 entspricht in diesem Beispiel der Hälfte der Periode T2 mit der sich die steigende Flanke 304 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ähler 110 seinen Zustand übermittelt und anhand derer der zweite Zähler 112 seinen Zustand synchronisiert. Die Synchronisationsimpulse werden in 4 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 in 4 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 Prozessors 104 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ähler 112 vom kodierten Wert abweicht.

Claims (15)

  1. 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.
  2. 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.
  3. 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.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass das zweite Signal (108) und das erste Signal (106) in einem Zeitmultiplexverfahren über dieselbe Signalleitung gesendet werden.
  5. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass das zweite Signal (108) und das erste Signal (106) auf unterschiedlichen Signalleitungen gesendet werden.
  6. Verfahren nach einem der Ansprüche 3 bis 5, 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.
  7. 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.
  8. 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.
  9. 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.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass das zweite Signal (108) und das erste Signal (104) in einem Zeitmultiplexverfahren über dieselbe Signalleitung empfangen werden.
  11. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass das zweite Signal (108) und das erste Signal (106) auf unterschiedlichen Signalleitungen empfangen werden.
  12. Verfahren nach einem der Ansprüche 9 bis 11, 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.
  13. Vorrichtung zur Synchronisation von Prozessen, gekennzeichnet durch einen taktgebenden Prozessor (102), der ausgebildet ist ein Verfahren nach einem der Ansprüche 1 bis 6 auszuführen.
  14. Vorrichtung zur Synchronisation von Prozessen, gekennzeichnet durch einen taktnehmenden Prozessor (104), der ausgebildet ist ein Verfahren nach einem der Ansprüche 7 bis 12 auszuführen.
  15. Computerprogramm, dadurch gekennzeichnet, dass das Computerprogramm Instruktionen zur Ausführung eines Verfahrens nach den Ansprüchen 1 bis 12 enthält.
DE102017214421.1A 2017-08-18 2017-08-18 Verfahren und Vorrichtung zur Synchronisation von Prozessen auf wenigstens zwei Prozessoren Pending DE102017214421A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 广州龙之杰科技有限公司 一种数字信号边沿延时修正系统及方法

Also Published As

Publication number Publication date
US10915375B2 (en) 2021-02-09
US20190056976A1 (en) 2019-02-21
CN109412777A (zh) 2019-03-01
CN109412777B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
DE102011004040B4 (de) Synchronisationssignalerfassungsvorrichtung
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
DE2924922C2 (de)
DE102017214421A1 (de) Verfahren und Vorrichtung zur Synchronisation von Prozessen auf wenigstens zwei Prozessoren
DE112015003343B4 (de) Netzwerksystem, Zeit-Master-Station und Zeit-Slave-Station
DE102018129189B4 (de) Verfahren zum betreiben eines netzwerkteilnehmers in einem automatisierungskommunikationsnetzwerk
DE19710971A1 (de) Verfahren zur Bestimmung der Laufzeit eines Telegramms sowie Teilnehmer zur Durchführung des Verfahrens
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
DE3435097C2 (de)
DE112013007197T5 (de) Programmierbare Steuerung
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
DE102017009587A1 (de) Phasendifferenzschätzungsvorrichtung und Kommunikationsvorrichtung mit der Phasendifferenzschätzungsvorrichtung
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
DE102009036335B3 (de) Herstellungsverfahren für Rohre und Walzenstraße
DE102009000584A1 (de) Diagnose der Synchronisation zweier Kommunikationsnetzwerke eines elektronischen Datenverarbeitungssystems
DE19703890C1 (de) Watchdog-Bedienung