FR3106674A1 - Procede de synchronisation temporelle entre une carte mere et une carte fille - Google Patents

Procede de synchronisation temporelle entre une carte mere et une carte fille Download PDF

Info

Publication number
FR3106674A1
FR3106674A1 FR2000643A FR2000643A FR3106674A1 FR 3106674 A1 FR3106674 A1 FR 3106674A1 FR 2000643 A FR2000643 A FR 2000643A FR 2000643 A FR2000643 A FR 2000643A FR 3106674 A1 FR3106674 A1 FR 3106674A1
Authority
FR
France
Prior art keywords
signal
microcontroller
counter
synchronization
daughter card
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
FR2000643A
Other languages
English (en)
Inventor
William TOCQUE
Loïck BILLANT
Cédric BILLOT
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.)
Thales SA
Original Assignee
Thales SA
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 Thales SA filed Critical Thales SA
Priority to FR2000643A priority Critical patent/FR3106674A1/fr
Publication of FR3106674A1 publication Critical patent/FR3106674A1/fr
Pending legal-status Critical Current

Links

Classifications

    • 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/14Time supervision arrangements, e.g. real time clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

L’invention concerne un procédé de synchronisation temporelle entre un compteur d’un microcontrôleur d’une carte mère et un compteur d’un microcontrôleur d’au moins une carte fille reliée à la carte mère, ledit procédé étant caractérisé en ce qu’il comprend les étapes suivantes: émission (100) par le microcontrôleur de la carte mère d’un premier signal d’impulsions de période égale à une première valeur; émission (110) par le microcontrôleur de la carte mère d’un deuxième signal d’impulsions de synchronisation de période supérieure à la première valeur ; émission (120) par le microcontrôleur de la carte mère d’un troisième signal représentatif d’une valeur temporelle avant une nouvelle impulsion de synchronisation du deuxième signal ; synchronisation (130) du compteur du microcontrôleur de la au moins une carte fille à la valeur temporelle à réception de la nouvelle impulsion de synchronisation du deuxième signal par le microcontrôleur de la au moins une carte fille. Figure pour l’abrégé : Fig. 2

Description

Procédé de synchronisation temporelle entre une carte mère et une carte fille
L’invention se situe dans le domaine technique de la synchronisation de dispositifs électroniques. Elle s’applique avantageusement à des dispositifs électroniques dont les processeurs sont contraints, notamment pour des raisons d’embarquabilité ou de faibles capacités de calcul.
Aujourd’hui, il existe plusieurs possibilités de synchroniser des équipements entre eux. Une telle synchronisation est nécessaire du fait que de tels systèmes électroniques sont susceptibles de dériver dans le temps. Il faut donc les synchroniser périodiquement. En effet, si chaque carte fille d’un ensemble de cartes filles comptait de manière isolée et indépendante, les cartes filles finiraient par être désynchronisées les unes par rapport aux autres. Une première possibilité de synchronisation est représentée par la norme IRIG (Inter-Range Instrumentation Group), organisme américain établissant des standards dans le domaine des signaux et du codage du temps. Le format du nom de code IRIG consiste en une seule lettre plus trois chiffres suivants. Chaque lettre reflète un attribut du code IRIG correspondant. Cette norme permet d’encoder la date complète sous la forme BCD (abréviation du terme anglo-saxon Binary Coded Decimal) avec des résolutions pouvant descendre à 10 µs (microsecondes). Ce protocole n’est pas nativement supporté par les microcontrôleurs du commerce. Le hardware n’est pas optimisé pour le traitement du protocole en question et mobilise plus de ressources que pour un protocole natif. La charge CPU est donc élevée et non compatible des contraintes de l’application avec faibles capacités de calcul.
Le protocole PTP, Precision Time Protocol, est un protocole Ethernet de synchronisation d’horloge normalisé. Il est également appelé «horloges distribuées» ou Distributed Clocks (DC). 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 ainsi que les réseaux de télécommunication. Il est complémentaire de la norme d’encodage IRIG, et constitue une évolution du Network Time Protocol (ou NTP). Le protocole 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. Le protocole PTP passant par l’Ethernet, il n’est pas applicable à des processeurs contraints, qui ne sont pas architecturés avec un protocole Ethernet, et à faibles capacités de calcul.
Il existe aussi le protocole PPS, abréviation de Pulse par Seconde. Le protocole PPS est un signal électrique de forme carrée transmettant une information de temps dans un câble. La synchronisation est réalisée sur le front montant de l’impulsion. L’inconvénient principal de ce protocole est qu’il n’y a pas de partage de date mais juste de l’incrémentation d’un compteur.
Dans le cas d’application à un calculateur pour des munitions guidées, il est nécessaire de synchroniser plusieurs compteurs de microcontrôleurs à une date relative, avec une précision potentiellement inférieure ou égale à la microseconde. Les microcontrôleurs sont distants de typiquement quelques dizaines de centimètres. L’ordre de démarrage des microcontrôleurs est aléatoire. De plus, la synchronisation doit occuper une charge CPU quasi nulle et elle doit être générée par un microcontrôleur principal.
Un tel calculateur se veut modulaire de sorte à interfacer de nouveaux équipements facilement via l’ajout d’une ou plusieurs cartes filles sur une carte mère. Il en résulte un besoin en précision de synchronisation pour exécuter les algorithmes utilisés avec des données datées précisément et uniformément entre toutes les cartes. Cette date doit être commune à tous les équipements et partagée par le microcontrôleur de la carte mère avec une charge CPU presque nulle pour la carte mère. Les microcontrôleurs des cartes filles doivent pouvoir s’y synchroniser avec, pour eux aussi, une charge CPU presque nulle. Les microcontrôleurs des cartes filles s’allumant dans un ordre aléatoire, elles doivent pouvoir toutes se synchroniser rapidement sur la date commune fournie par la carte mère.
A cet effet, l'invention a pour objet un procédé de synchronisation temporelle entre un compteur d’un microcontrôleur d’une carte mère et un compteur d’un microcontrôleur d’au moins une carte fille reliée à la carte mère, ledit procédé comprenant les étapes suivantes:
  1. émission par le microcontrôleur de la carte mère d’un premier signal d’impulsions de période égale à une première valeur;
  2. émission par le microcontrôleur de la carte mère d’un deuxième signal d’impulsions de synchronisation de période supérieure à la première valeur;
  3. émission par le microcontrôleur de la carte mère d’un troisième signal représentatif d’une valeur temporelle avant une nouvelle impulsion de synchronisation du deuxième signal;
  4. synchronisation du compteur du microcontrôleur de la au moins une carte fille à la valeur temporelle à réception de la nouvelle impulsion de synchronisation du deuxième signal par le microcontrôleur de la au moins une carte fille.
Avantageusement, l’étape de synchronisation du compteur du microcontrôleur de la au moins une carte fille à la valeur temporelle comprend:
  1. à réception de chaque impulsion du premier signal, une étape d’incrémentation du compteur du microcontrôleur de la au moins une carte fille;
  2. une étape de réception de la valeur temporellepar le microcontrôleur de la au moins une carte fille;
  3. une étape d’interruption du compteur du microcontrôleur de la au moins une carte fille à réception de l’impulsion de synchronisation du deuxième signal par le microcontrôleur de la au moins une carte fille;
  4. à réception de l’impulsion de synchronisation du deuxième signal par le microcontrôleur de la au moins une carte fille, une étape de mise à jour du compteur du microcontrôleur de la au moins une carte fille avec la valeur temporelle.
Avantageusement, le troisième signal représentatif d’une valeur temporelle est un signal UART.
Avantageusement, la première valeur est inférieure ou égale à 100 microsecondes.
Avantageusement, la première valeur est égale à 100 microsecondes, 10 microsecondes, 1 microseconde, 100 nanosecondes.
L’invention concerne aussi un calculateur modulaire comprenant:
  1. une carte mère comprenant un microcontrôleur comprenant un compteur; et
  2. au moins une carte fille comprenant un microcontrôleur comprenant un compteur;
le microcontrôleur de la carte mère étant configuré pourémettre un premier signal d’impulsions de période égale à une première valeur, un deuxième signal d’impulsions de synchronisation de période supérieure à la première valeur et un troisième signal représentatif d’une valeur temporelle avant une nouvelle impulsion de synchronisation du deuxième signal,
et le microcontrôleur de la au moins une carte fille étant configuré pour synchroniser le compteur de ladite carte fille à la valeur temporelle à réception de l’impulsion de synchronisation du deuxième signal par le microcontrôleur de la au moins une carte fille.
Avantageusement, le troisième signal représentatif d’une valeur temporelle émis par le microcontrôleur de la carte mère du calculateur modulaire est un signal UART.
Avantageusement, la première valeur est inférieure ou égale à 100 microsecondes, préférentiellement 100 microsecondes, 10 microsecondes, 1 microseconde, 100 nanosecondes.
L'invention sera mieux comprise et d'autres avantages apparaîtront à la lecture de la description détaillée d'un mode de réalisation donné à titre d'exemple, description illustrée par le dessin joint dans lequel :
La figure 1 représente schématiquement un calculateur modulaire apte à mettre en œuvre le procédé selon l’invention;
La figure 2 représente schématiquement les étapes d’un procédé de synchronisation temporelle selon l’invention;
La figure 3 représente schématiquement une carte mère et quatre cartes filles lors d’une synchronisation temporelle selon l’invention;
La figure 4 représente un chronogramme de signaux pouvant être émis lors du procédé de synchronisation selon l’invention.
Sur ces figures, dans un souci de clarté, les échelles ne sont pas respectées d’une figure à une autre. Par ailleurs, les mêmes éléments porteront les mêmes repères dans les différentes figures.
Un microcontrôleur est un composant électronique qui rassemble tous les éléments d'un mini-ordinateur et qui se présente sous la forme d'un circuit intégré. Il s’agit donc d’un circuit intégré comprenant essentiellement un microprocesseur, des mémoires, et des éléments personnalisés selon l'application visée. Un microcontrôleur permet donc de réaliser des systèmes et montages électroniques programmés. Cela veut dire que l'on peut, avec le même montage, réaliser des fonctions très différentes qui dépendent du programme qui a été programmé dans le microprocesseur du microcontrôleur.
Un microcontrôleur comprend:
  1. un microprocesseur;
  2. une mémoire vive destinée à stocker des données transitoires;
  3. une mémoire morte destinée à stocker de façon permanente des données utilisées par le microprocesseur, par exemple un programme;
  4. des périphériques aux fonctions variées pour effectuer des tâches spécifiques;
  5. une horloge pour le cadencer.
La figure 1 représente schématiquement un calculateur modulaire 5, comprenant plusieurs cartes qui sont reliées entre elles. Un tel calculateur modulaire 5 est apte à mettre en œuvre le procédé selon l’invention. Typiquement dans un calculateur modulaire 5, et comme représenté sur la figure, une ou plusieurs cartes filles 20, 21, 22, 23 sont reliées à une carte mère 10. Chacune des cartes 10, 20, 21, 22, 23 comprend un microcontrôleur 15, 24, 25, 26, 27 comprenant au moins un compteur 30, 40, 41, 42, 43. Un des problèmes majeurs d’un calculateur modulaire 5 est de pouvoir dater des évènements précisément, idéalement à une précision de l’ordre de 1 microseconde, afin que l’ensemble des cartes puissent traiter ces événements de manière synchronisée. Cette date doit être commune à tous les équipements et partagée par le microcontrôleur 15 de la carte mère 10 vers les microcontrôleurs 24, 25, 26, 27 des cartes filles 20, 21, 22, 23 avec une charge CPU presque nulle pour la carte mère 10. Les microcontrôleurs 24, 25, 26, 27 des cartes filles 20, 21, 22, 23 doivent pouvoir s’y synchroniser, également avec une charge CPU proche de zéro. Un autre problème réside dans le fait que les microcontrôleurs 24, 25, 26, 27 des cartes filles 20, 21, 22, 23 s’activent dans un ordre aléatoire. Il faut donc que les microcontrôleurs 24, 25, 26, 27 des cartes filles 20, 21, 22, 23 puissent se synchroniser rapidement (le plus tôt possible après leur activation), c’est-à-dire dans un laps de temps inférieur ou égal à la milliseconde, sur la date commune fournie par le microcontrôleur 15 de la carte mère 10.
La figure 2 représente schématiquement les étapes d’un procédé de synchronisation temporelle selon l’invention. Le procédé de synchronisation temporelle a pour but de synchroniser un compteur 30 d’un microcontrôleur 15 d’une carte mère 10 et un compteur 40, 41, 42, 43 d’un microcontrôleur 24, 25, 26, 27 d’au moins une carte fille 20, 21, 22, 23 reliée à la carte mère 10. Autrement dit, l’invention s’applique à un ensemble d’une carte mère 10 et une ou plusieurs cartes filles 20, 21, 22, 23 dont on souhaite synchroniser les compteurs de leur(s) microcontrôleur(s) à une date relative, et avantageusement une date relative avec une précision inférieure ou égale à la microseconde.
Le procédé de synchronisation temporelle selon l’invention comprend les étapes suivantes:
  1. émission (étape 100) par le microcontrôleur 15 de la carte mère 10 d’un premier signal d’impulsions de période égale à une première valeur;
  2. émission (étape 110) par le microcontrôleur 15 de la carte mère 10 d’un deuxième signal d’impulsions de synchronisation de période supérieure à la première valeur;
  3. émission (étape 120) par le microcontrôleur 15 de la carte mère 10 d’un troisième signal représentatif d’une valeur temporelle avant une nouvelle impulsion de synchronisation du deuxième signal;
  4. synchronisation (étape 130) du compteur 40, 41, 42, 43 du microcontrôleur 24, 25, 26, 27 de la au moins une carte fille 20, 21, 22, 23 à la valeur temporelle à réception de l’impulsion de synchronisation du deuxième signal par le microcontrôleur 24, 25, 26, 27 de la au moins une carte fille 20, 21, 22, 23.
L’étape 130 de synchronisation est décrite pour une seule carte fille 20. Le procédé selon l’invention s’applique de façon identique à plusieurs autres cartes filles (par exemple 21, 22, 23, mais il peut également y en avoir plus).
L’étape 130 de synchronisation du compteur 40 du microcontrôleur 24 de la carte fille 20 à la valeur temporelle comprend en outre:
  1. à réception de chaque impulsion du premier signal, une étape 140 d’incrémentation du compteur 40 du microcontrôleur 24 de la carte fille 20 ;
  2. une étape 150 de réception de la valeur temporellepar le microcontrôleur 24 de la carte fille 20 ;
  3. une étape 160 d’interruption du compteur 40 du microcontrôleur 24 de la carte fille20 à réception de l’impulsion de synchronisation du deuxième signal par le microcontrôleur 24 de la carte fille20;
  4. à réception de l’impulsion de synchronisation du deuxième signal par le microcontrôleur 24 de la carte fille 20, une étape 170 de mise à jour du compteur 40 du microcontrôleur 24 de la carte fille20 avec la valeur temporelle.
Avantageusement, le troisième signal représentatif d’une valeur temporelle est un signal UART. UART est l’abréviation du terme anglo-saxon Universal Asynchronous Receiver Transmitter, c’est-à-dire un émetteur-récepteur asynchrone universel. Le signal UART contient les données du compteur 30 et permet donc de transmettre la date relative. Ce troisième signal permet de connaître le temps courant lors de l’étape 130 de synchronisation. Ce signal peut contenir un compteur de 32 bits (ou bien plus) d’une résolution prédéfinie, par exemple 1 microseconde, ce qui représente dans cet exemple une dynamique totale de 1 * 2^32 soit environ 4294 secondes, c’est-à-dire 71 minutes. Dans cet exemple, il est donc possible de compter de 0 à 71 minutes puis de réinitialiser le comptage.
L’étape 120 d’émission par le microcontrôleur 15 de la carte mère 10 du troisième signal représentatif d’une valeur temporelle se fait avant une impulsion de synchronisation du deuxième signal. En effet, le troisième signal est envoyé suffisamment en avance, par exemple 400 µs avant l’impulsion de synchronisation du deuxième signal, de sorte à laisser le temps au microcontrôleur 24 de la carte fille 20 de recevoir la valeur temporelle avant la prochaine impulsion du signal de synchronisation du compteur.
Dans la réalisation du procédé de synchronisation temporelle selon l’invention, la première valeur est avantageusement inférieure ou égale à 100 microsecondes. A titre d’exemples, la première valeur peut notamment être égale à 100 microsecondes, 10 microsecondes, 1 microseconde, 100 nanosecondes. Cette première valeur détermine la précision de la datation et de la synchronisation ainsi obtenue.
Le procédé de synchronisation temporelle selon l’invention repose sur la combinaison de trois signaux émis par le microcontrôleur 15 de la carte mère 10. Le microcontrôleur 15 émet un premier signal impulsionnel de période correspondant à la précision souhaitée, par exemple une impulsion toutes les microsecondes. Ce signal permet d’envoyer un signal de comptage haute résolution. Le microcontrôleur 15 émet un deuxième signal impulsionnel de période supérieure à la période du premier signal impulsionnel, par exemple une impulsion toutes les millisecondes. Le deuxième signal est un signal de resynchronisation du temps qui sert à synchroniser les signaux de la carte mère. Enfin, le microcontrôleur 15 de la carte mère 10 émet un troisième signal, le signal UART, qui contient l’information de compteur issu du microcontrôleur 15 de la carte mère 10. Le troisième signal est émis en amont de l’impulsion de synchronisation suivante (par exemple 400 µs avant l’impulsion d’après, soit 600 µs après la dernière impulsion). Ce troisième signal fournit la date. Le microcontrôleur 24 de la carte fille 20, de son côté, incrémente son compteur haute résolution à réception du premier signal (à la microseconde dans notre exemple). A réception du troisième signal (400 µs avant l’impulsion de synchronisation suivante, dans notre exemple), le microcontrôleur 24 connaît la date qui sera la date exacte à la prochaine impulsion de synchronisation. A réception de l’impulsion de synchronisation du deuxième signal (les impulsions de synchronisation étant espacées de 1 ms dans notre exemple), le microcontrôleur 24 de la carte fille 20 met à jour son compteur avec la dernière date précédemment reçue via le troisième signal.
La figure 3 représente schématiquement une carte mère 10 et quatre cartes filles 24, 25, 26, 27 lors d’une synchronisation temporelle selon l’invention. Comme déjà mentionné pour la figure 1, chacune des cartes 10, 20, 21, 22, 23 comprend un microcontrôleur 15, 24, 25, 26, 27 comprenant au moins un compteur 30, 40, 41, 42, 43. La représentation est schématique. Le compteur 30 peut être subdivisé sous forme de trois compteurs synchronisés 301, 302, 303: un premier compteur 301 dit compteur de comptage haute résolution (ce compteur permet d’envoyer le signal de comptage haute résolution, à la microseconde dans notre exemple), un deuxième compteur 302 dit compteur de synchronisation (ce compteur sert à synchroniser les signaux de la carte mère), et un troisième compteur 303 dit compteur date qui sert à fournir la date (ce compteur est de haute résolution, par exemple à 1 microseconde, mais pas nécessairement identique à la période du premier signal du premier compteur 301). La même subdivision s’applique aux compteurs 40, 41, 42, 43 des cartes filles mais n’est pas représentée pour des raisons de lisibilité de la figure.
Le premier signal d’impulsions de période égale à la première valeur (nous prendrons 1 µs) est émis sur un premier bus 16, dit bus de comptage haute résolution à partir du premier compteur 301 de comptage haute résolution. Le deuxième signal d’impulsions de synchronisation est émis sur un deuxième bus 17 dit bus de synchronisation à partir du deuxième compteur 302. Le troisième signal de date est émis sur un troisième bus 18, aussi appelé bus UART, en relation avec le deuxième compteur 302 de synchronisation. En effet, le troisième signal de date est émis en amont de l’impulsion de synchronisation à venir du deuxième signal de synchronisation, ou autrement dit un peu après la précédente impulsion de synchronisation du deuxième signal.
Du côté de la carte fille 20, le microcontrôleur 24 incrémente son compteur dit compteur de date haute résolution à partir du premier signal d’impulsions (ici à la microseconde) reçu sur le premier bus 16. Le microcontrôleur 24 reçoit la date qui sera la bonne à la prochaine impulsion de synchronisation, en amont de cette impulsion (par exemple 400 µs avant) sur le troisième bus 18 (bus UART). A la réception de l’impulsion de synchronisation sur le deuxième bus 17, le microcontrôleur 24 déclenche une interruption pour mettre à jour son troisième compteur, dit compteur date, avec la dernière troisième valeur reçue sur le troisième bus 18 (bus UART).
Ainsi, le microcontrôleur 24 de la carte fille 20 synchronise son compteur 40 à la valeur temporelle, c’est-à-dire la date transmise via le bus UART, à réception de la prochaine impulsion de synchronisation du deuxième signal.
L’émission et la réception des signaux entre la carte mère 10 et la carte fille 20 a été décrit avec une seule carte fille 20. L’invention s’applique de façon similaire avec une deuxième carte fille 21 ajoutée à la carte mère 10, une troisième carte fille 22, etc. puisque les mêmes signaux transitent dans les bus 16, 17, 18. La synchronisation peut donc être réalisée avec une pluralité de cartes filles, même si l’ordre d’activation des microcontrôleurs des cartes filles se fait dans un ordre aléatoire. L’invention permet d’ajouter ou de supprimer des cartes filles facilement. En outre, cette solution permet d’utiliser peu de signaux, il y a peu de connexions à faire transiter entre la carte mère et la ou les carte(s) fille(s). Enfin, le procédé de synchronisation selon l’invention occupe une très faible charge CPU à la fois pour le microcontrôleur de la carte mère et pour celui des cartes filles.
L’invention porte aussi sur un calculateur modulaire 5 comprenantune carte mère 10 comprenant un microcontrôleur 15 comprenant un compteur30 et au moins une carte fille 20 comprenant un microcontrôleur 24 comprenant un compteur40. Selon l’invention, le microcontrôleur 15 de la carte mère 10 est configuré pourémettre un premier signal d’impulsions de période égale à une première valeur, un deuxième signal d’impulsions de synchronisation de période supérieure à la première valeur et un troisième signal représentatif d’une valeur temporelle avant une impulsion de synchronisation du deuxième signal, et le microcontrôleur 24 de la au moins une carte fille 20 est configuré pour synchroniser le compteur 40 de ladite carte fille 24 à la valeur temporelle à réception de l’impulsion de synchronisation du deuxième signal par le microcontrôleur 24 de la au moins une carte fille 20. Les signaux transitent via les bus 16, 17, 18 décrits précédemment.
La figure 4 représente un chronogramme de signaux pouvant être émis lors du procédé de synchronisation selon l’invention. Pour les trois diagrammes représentés, l’axe des abscisses est un axe de temps. Le premier signal impulsionnel 51 est de période 50 correspondant à la précision souhaitée. Nous prenons l’exemple d’une période 50 de 1 µs. Le deuxième signal impulsionnel 52 est de période 54 supérieure à la période 50 du premier signal impulsionnel 51, par exemple une impulsion toutes les millisecondes. Le deuxième signal 52 présente donc un front montant toutes les millisecondes. Le deuxième signal 52 est un signal de resynchronisation du temps qui sert à synchroniser les signaux de la carte mère. Le troisième signal 53, le signal UART, contient l’information de compteur, c’est-à-dire une date 56, issue du microcontrôleur 15 de la carte mère 10. Le troisième signal 53 est émis en amont de l’impulsion 52 de synchronisation suivante (par exemple 400 µs avant l’impulsion d’après, soit 600 µs (durée représentée par la référence 55) après la dernière impulsion 58). Autrement dit, le troisième signal 53 est émis à l’instant correspondant à l’instant de l’impulsion 58 auquel a été ajoutée la durée 55. En d’autres termes, si l’impulsion 58 est réalisée à un instant appelé t0, le troisième signal 53 est émis à t0+55 et l’impulsion de synchronisation 57 a lieu à t0+54 (54 > 55), t0+54 étant égal à l’instant t de l’impulsion 57. Le troisième signal 53 fournit la date.
A chaque impulsion du premier signal 51, le microcontrôleur de la carte fille incrémente son compteur date. Le microcontrôleur de la carte fille reçoit après une durée 55 à compter de la dernière impulsion de synchronisation 58 du deuxième signal 52 la date 56 qui correspond à la date réelle à la prochaine impulsion de synchronisation 57. Lors de la réception de l’impulsion de synchronisation 57, le microcontrôleur de la carte fille met à jour son compteur date avec la date 56 reçue préalablement. En d’autres termes, le microcontrôleur de la carte fille synchronise sa date avec la date 56, reçue un peu avant, au moment de la réception de l’impulsion de synchronisation 57, c’est-à-dire à la réception du front montant de l’impulsion 57.
La combinaison des signaux 51, 52 simples avec un signal UART 53 permet l’obtention d’une horloge très précise et partagée de manière modulable avec plusieurs microcontrôleurs.
L’invention repose sur la combinaison de trois signaux et permet d’obtenir une date relative précise, par exemple à la microseconde, partagée et synchronisée par la pluralité des microcontrôleurs des cartes filles. Il est possible d’augmenter la résolution, par rapport à l’exemple décrit, à une valeur inférieure à la microseconde, en augmentant la fréquence du premier signal haute résolution. Il en résulte une simplicité de mise en œuvre d’une synchronisation de date sur plusieurs microcontrôleurs tout en assurant une faible charge CPU.
L’invention apporte une solution au problème de synchronisation de cartes filles avec une date maîtrisée et précise par le microcontrôleur de la carte mère. Cette solution est particulièrement avantageuse en termes de charge CPU quasi nulle puisque ce sont les systèmes hardware des microcontrôleurs qui sont majoritairement utilisés pour effectuer la synchronisation.

Claims (9)

  1. Procédé de synchronisation temporelle entre un compteur (30) d’un microcontrôleur (15) d’une carte mère (10) et un compteur (40, 41) d’un microcontrôleur (24, 25) d’au moins une carte fille (20, 21) reliée à la carte mère (10), ledit procédé étant caractérisé en ce qu’il comprend les étapes suivantes:
    1. émission (100) par le microcontrôleur (15) de la carte mère (10) d’un premier signal (51) d’impulsions de période égale à une première valeur;
    2. émission (110) par le microcontrôleur (15) de la carte mère (10) d’un deuxième signal (52) d’impulsions (58) de synchronisation de période supérieure à la première valeur;
    3. émission (120) par le microcontrôleur (15) de la carte mère (10) d’un troisième signal (53) représentatif d’une valeur temporelle avant une nouvelle impulsion (57) de synchronisation du deuxième signal (52);
    4. synchronisation (130) du compteur (40, 41) du microcontrôleur (24, 25) de la au moins une carte fille (20, 21) à la valeur temporelle à réception de la nouvelle impulsion (57) de synchronisation du deuxième signal (52) par le microcontrôleur (24, 25) de la au moins une carte fille (20, 21).
  2. Procédé de synchronisation temporelle selon la revendication 1, dans lequel l’étape (130) de synchronisation du compteur (40, 41) du microcontrôleur (24, 25) de la au moins une carte fille (20, 21) à la valeur temporelle comprend:
    1. à réception de chaque impulsion du premier signal, une étape (140) d’incrémentation du compteur (40, 41) du microcontrôleur (24, 25) de la au moins une carte fille (20, 21);
    2. une étape (150) de réception de la valeur temporellepar le microcontrôleur (24, 25) de la au moins une carte fille(20, 21);
    3. une étape (160) d’interruption du compteur (40, 41) du microcontrôleur (24, 25) de la au moins une carte fille(20, 21) à réception de l’impulsion de synchronisation du deuxième signal par le microcontrôleur (24, 25) de la au moins une carte fille(20, 21);
    4. à réception de l’impulsion de synchronisation du deuxième signal par le microcontrôleur (24, 25) de la au moins une carte fille (20, 21), une étape (170) de mise à jour du compteur (40, 41) du microcontrôleur (24, 25) de la au moins une carte fille(20, 21) avec la valeur temporelle.
  3. Procédé de synchronisation temporelle selon l’une quelconque des revendications 1 ou 2, dans lequel le troisième signal représentatif d’une valeur temporelle est un signal UART.
  4. Procédé de synchronisation temporelle selon l’une quelconque des revendications 1 à 3, dans lequel la première valeur est inférieure ou égale à 100 microsecondes.
  5. Procédé de synchronisation temporelle selon l’une quelconque des revendications 1 à 4, dans lequel la première valeur est égale à 100 microsecondes, 10 microsecondes, 1 microseconde, 100 nanosecondes.
  6. Calculateur modulaire (5) comprenant:
    1. une carte mère (10) comprenant un microcontrôleur (15) comprenant un compteur (30); et
    2. au moins une carte fille (20, 21) comprenant un microcontrôleur (24, 25) comprenant un compteur(40, 41);
    ledit calculateur modulaire (5) étant caractérisé en ce que le microcontrôleur (15) de la carte mère (10) est configuré pourémettre un premier signal (51) d’impulsions de période égale à une première valeur, un deuxième signal (52) d’impulsions de synchronisation de période supérieure à la première valeur et un troisième signal (53) représentatif d’une valeur temporelle avant une nouvelle impulsion de synchronisation du deuxième signal,
    et en ce que le microcontrôleur (24, 25) de la au moins une carte fille (20, 21) est configuré pour synchroniser le compteur (40, 41) de ladite carte fille (20, 21) à la valeur temporelle à réception de l’impulsion de synchronisation du deuxième signal (52) par le microcontrôleur (24, 25) de la au moins une carte fille (20, 21).
  7. Calculateur modulaire (5) selon la revendication 6, dans lequel le troisième signal représentatif d’une valeur temporelle est un signal UART.
  8. Calculateur modulaire (5) selon l’une quelconque des revendications 6 ou 7, dans lequel la première valeur est inférieure ou égale à 100 microsecondes.
  9. Calculateur modulaire (5) selon l’une quelconque des revendications 6 à 8, dans lequel la première valeur est égale à 100 microsecondes, 10 microsecondes, 1 microseconde, 100 nanosecondes.
FR2000643A 2020-01-23 2020-01-23 Procede de synchronisation temporelle entre une carte mere et une carte fille Pending FR3106674A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2000643A FR3106674A1 (fr) 2020-01-23 2020-01-23 Procede de synchronisation temporelle entre une carte mere et une carte fille

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2000643A FR3106674A1 (fr) 2020-01-23 2020-01-23 Procede de synchronisation temporelle entre une carte mere et une carte fille
FR2000643 2020-01-23

Publications (1)

Publication Number Publication Date
FR3106674A1 true FR3106674A1 (fr) 2021-07-30

Family

ID=72266343

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2000643A Pending FR3106674A1 (fr) 2020-01-23 2020-01-23 Procede de synchronisation temporelle entre une carte mere et une carte fille

Country Status (1)

Country Link
FR (1) FR3106674A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001090865A1 (fr) * 2000-05-20 2001-11-29 Equipe Communications Corporation Synchronisation temporelle dans un systeme de traitement reparti

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001090865A1 (fr) * 2000-05-20 2001-11-29 Equipe Communications Corporation Synchronisation temporelle dans un systeme de traitement reparti

Similar Documents

Publication Publication Date Title
US11099599B2 (en) Communication device, cascaded network and internal synchronization method
US20160080138A1 (en) Method and apparatus for timing synchronization in a distributed timing system
US20080141058A1 (en) System, method, and article of manufacture for synchronizing time of day clocks on first and second computers
CN111585682A (zh) 传感器时间同步方法、装置及终端设备
CN110719135A (zh) 时间校准方法、系统及电子装置
WO2000016223A1 (fr) Systeme modulaire d'acquisition de donnees
US20160294536A1 (en) Method and apparatus for compensating synchronization timing in a distributed timing network
Dong et al. The design and implementation of ieee 1588v2 clock synchronization system by generating hardware timestamps in mac layer
US7567108B2 (en) Apparatus and method for generating clock signal
CN116032411A (zh) 一种时间戳同步方法、系统、终端及存储介质
CN112395231A (zh) 一种多处理器间的数据延迟时间计算方法及装置
FR3106674A1 (fr) Procede de synchronisation temporelle entre une carte mere et une carte fille
CN112291028B (zh) 一种时钟驯服方法、装置及应用该方法的高速相机
US10784976B2 (en) Nanosecond accuracy of timestamping by leveraging alignment marker and method for producing the same
EP4033680A1 (fr) Procédé de synchronisation de domaines temporels d'un système sur puce
EP4018549A1 (fr) Procede de synchronisation de donnees analogiques en sortie d'une pluralite de convertisseurs numerique/analogique
CN111970077A (zh) 探测器读取系统的高精度绝对时间和系统同步方法
KR102388889B1 (ko) 시각 동기 장치, 시각 동기 방법 및 기록 매체에 저장된 시각 동기 프로그램
RU2615326C2 (ru) Способ синхронизации времени в процессорах и устройствах вычислительной машины
CN116671193B (zh) 一种采样方法、采样电路及分布式网络的时钟同步方法
CN115189796B (zh) 基于ieee1588协议的设备主时钟同步方法及装置
CN113485523B (zh) 一种时钟补偿方法及装置
CN114070762B (zh) 网络监测探针组件、同步方法、数据采集分析装置
Deev et al. Features of high-precision sync-signals formation for distributed systems based on a synchronous Ethernet network
CN117411582A (zh) 时间同步方法及装置

Legal Events

Date Code Title Description
PLSC Publication of the preliminary search report

Effective date: 20210730

RX Complete rejection

Effective date: 20211105