Ouvrir le menu principal

Precision Time Protocol

(Redirigé depuis IEEE 1588)

Precision Time Protocol (PTP) est un protocole Ethernet de synchronisation d'horloge, normalisé sous le nom IEEE 1588 en 2001 et en juin 2008 pour la version 2. En 2005 il a aussi été standardisé sous le nom IEC 61588. Il est également appelé "horloges distribuées" ou Distributed Clocks (DCs).

Ce protocole est destiné aux réseaux supportant le multicast et l'unicast. Son utilisation est destinée à des applications de type mesures, militaire, industriel (robotique, motion control, papeterie, gruikerie, etc) ainsi que les réseaux de télécommunication depuis la sortie de la seconde version.

Il est complémentaire de la norme d'encodage IRIG, et constitue une évolution du Network Time Protocol (ou NTP).

Enfin PTP n'a pas vocation à déterminer un horodatage, mais à le transmettre; tout système PTP doit donc intégrer ou se baser sur une source de temps, telle qu'une horloge GPS, et s'y recaler régulièrement.

Principe du protocoleModifier

Ce protocole est établi selon le principe d'horloge maître et d'horloges esclaves. L'horloge maître servant de référence temporelle est appelée "horloge de référence". Son heure est synchronisée (via GPS, NTP, etc) sur une horloge appelée horloge globale. Dans le cas d'une communication par bus, c'est l'horloge du premier esclave sur le bus qui est considérée comme horloge de référence.

Afin que toutes les horloges aient la même heure, il faut corriger

  • la dérive d'horloge
  • le délai (de transmission).

Légende des abréviations :

  • m = maître
  • s = esclave
  • d = délai

Par exemple dm2s = délai maître à esclave

Mécanismes de correctionModifier

Correction de la dérive (ou offset)Modifier

Cela se passe en deux temps :

a) SYNCModifier

L'horloge maître envoie à l'esclave un message de synchronisation (SYNC) contenant :

  • une estimation de l'heure d'émission
  • les propriétés de l'horloge

Son heure de réception est notée par l'esclave (t2)

b) FOLLOW_UPModifier

Immédiatement après le maître envoie un message de suivi (FOLLOW_UP) contenant :

  • l'heure exacte d'émission (t1)

Ainsi l'esclave détermine l'offset en soustrayant l'heure de réception à l'heure exacte d'émission : dm2s = t2 - t1

Un message SYNC est émis à chaque période de synchronisation, généralement égale à 2 secondes.

Le message FOLLOW_UP n'est pas présent en "1-step mode" mais uniquement en "2-step mode".

Correction du délaiModifier

Cela se passe en deux temps :

c) DELAY_REQModifier

L'esclave envoie au maître une demande de délai (DELAY_REQ). A l'émission de ce message, l'esclave note l'heure d'émission (t3) tandis que le maître note l'heure de réception (t4).

d) DELAY_RESPModifier

Le maître envoie à l'esclave une réponse de délai (DELAY_RESP) contenant l'heure à laquelle il a reçu la requête de délai (t4).

Ainsi l'esclave peut calculer le délai moyen : ds2m = t4 - t3

On part du principe que le délai est symétrique (dm2s = ds2m) Cette opération est répétée aléatoirement entre 2 et 30 périodes de synchronisation. On peut également fixer un multiple de cette période à ne pas dépasser pour répéter l'opération plus souvent.

Calculs des correctionsModifier

Délai allerModifier

d = (dm2s + ds2m) / 2

offsetModifier

Δt = dm2s - d

Horloges IEEE 1588Modifier

Grand Master ClockModifier

Le Grand Master Clock est l'horloge qui fournit l'horodatage dans le réseau.

Ordinary ClockModifier

Une Ordinary Clock est une horloge en fin ou en début de chaîne 1588. Cette horloge peut devenir Grand Master Clock (si une source de temps lui est raccordée).

Boundary ClockModifier

La Boundary Clock est une horloge de cœur de réseaux qui permet de faire la liaison entre deux mondes PTP.

Transparent ClockModifier

Une transparent Clock permet de corriger des délais de propagation de la trame et ainsi d'avoir une meilleure précision dans l'horodatage.

Voir aussiModifier