Brevet FR2819598A1 — publié le 20020719

Dispositif de synchronisation tolérant aux pannes pour réseau informatique temps réel. La présente invention appartient au domaine des matériels et logiciels pour réseaux informatiques temps réel à tolérance de pannes. Plus spécifiquement, elle concerne la synchronisation des équipements raccordés audit réseau. Le problème à résoudre est la mise en phase sans défaillance des horloges temps réel d'équipements de traitement connectés par un ou plusieurs réseaux de transfert de données. Le fait qu'une solution sûre soit apportée à ce problème est particulièrement important pour la latence des données dans le cas des équipements embarqués sur aéronefs, notamment ceux qui remplissent les fonctions d'alarme, de pilote automatique, de gestion des plans de vol, de maintenance ou de service. L'état de l'art en la matière est constitué par les brevets US 5,307, 409,5, 343,414, 5, 386,424 et 5,557, 623. Ces systèmes ont en outre fait l'objet d'une norme ARINC 659 (27 décembre 1993) correspondant à un système de transfert de données par bus"Fond de panier". Les inconvénients de cet état de l'art sont essentiellement la distance courte sur laquelle une synchronisation sûre est possible (environ un mètre en raison de la nécessité d'une référence de masse commune à tous les abonnés) et l'absence de versatilité du système, tous les équipements devant être synchronisés, le bus de fond de panier assurant à la fois le transfert des données et des signaux de synchronisation. Le dispositif selon l'invention permet de réaliser une synchronisation sûre sur quelques dizaines de mètres et autorise le choix d'inclure ou pas dans la synchronisation n'importe lequel des équipements connectés au réseau en séparant le transfert des données et le bus de synchronisation des équipements. Cette synchronisation est moins précise que celle de la norme ARINC 659, mais elle permet d'utiliser des transferts de données par réseau à haut débit sur des distances plus importantes. A ces fins, l'invention propose un dispositif de synchronisation des horloges temps réel locales d'équipements informatiques reliés à un bus de transfert de données comprenant des circuits électroniques pour générer des impulsions de synchronisation, des circuits de comptage pour générer l'horloge temps réel locale et échanger les impulsions avec les autres entités de synchronisation, des circuits de vote temporel pour resynchroniser les circuits de comptage, caractérisé en ce que les impulsions sont transportées par un bus spécifique de synchronisation. L'invention sera mieux comprise, et ses différentes caractéristiques et avantages ressortiront de la description qui suit d'un exemple de réalisation, et de ses figures annexées dont : - la figure 1 montre l'architecture de la plate-forme de synchronisation selon l'invention ; - la figure 2 montre le principe sur lequel repose la mise en oeuvre de la synchronisation par l'invention ; - la figure 3 montre un mode de réalisation du dispositif selon l'invention ; - la figure 4 expose le schéma de vote permettant de fournir une horloge temps réel synchronisée et sûre selon l'invention ; - la figure 5 expose le schéma de codage permettant d'entrelacer différents modes de synchronisation ; - La figure 6 représente certains états du dispositif selon l'invention en fonctionnement. La plate-forme informatique de la figure 1 comporte au moins une unité centrale ou CPU (11), plusieurs unités d'entrée/sortie ou I/O (21, 22), des commutateurs ou cabinet switch (31,32). Ces équipements sont connectés entre eux par un réseau de données duplex (41) par exemple de type Ethernet 100MHz Full Duplex. La plate-forme représentée est connectée à d'autres différentes plates-formes par l'intermédiaire des commutateurs (31,32) et du bus (51). Les unités centrales et de traitement (11,21, 22) comportent chacune un système de traitement proprement dit (110) où s'effectuent les traitements spécifiques de l'unité et le contrôle du réseau de données via le End System ou ES (111), une horloge temps réel ou RTC" (112) et l'entité de synchronisation ou Sync (113,213, 223) selon l'invention. Les entités de synchronisation (113,213, 223) sont reliées entre elles par un bus de synchronisation spécifique (61) distinct de la liaison de données (41), sur lequel des indications sur des modes de réalisations spécifiques sont fournies plus loin dans la description. Les entités de synchronisation (113, 213) sont chacune composées de deux unités redonnantes SUx et SUy (Figure 2). Chaque unité SUx, SUy comporte un oscillateur local Hx, Hy (Figure 3), une table de configuration CONF TABLE avec une valeur de temps d'attente d'initialisation init wait time , au moins une première valeur de période de synchronisation miF value (set une deuxième valeur de période de synchronisation MAF value pour décrire le séquencement cyclique de la plate-forme sous la forme Minor frame/Major Frame de manière à phaser les différents cycles de traitement des équipements CPU (11) et 1/0 (21,22) pour diminuer la latence des transferts de données échangées selon le numéro de cycle. Les unités redondantes SUx, SUy sont reliées directement entre elles de manière à échanger des signaux de contrôle de l'horloge temps réel locale RTC ctrl et des signaux de contrôle d'état state ctrl . Chaque unité de synchonisation SUx, SUy reçoit de son processeur de traitement local (110,210, 220) un signal de configuration de synchronisation GONFIG~SYNC et renvoie un signal d'horloge temps réel RTC. Chaque unité de synchronisation SUx, (resp SUy) envoie sur le bus spécifique de synchronisation (61) deux signaux Ax, Bx (resp Ay, By) et reçoit quatre signaux Ax, Bx, Ay, By. Chaque unité de synchronisation Sux, Suy comporte avantageusement des circuits spécifiques (711,712) pour la relier au bus spécifique de synchronisation (61). De préférence, ces circuits spécifiques (711,712, 721,722) seront des drivers différentiel bidirectionnel du bus CAN ( controller area network ) conforme aux spécifications de la norme ISO 11 898 (numéro de référence ISO 11 898 : 1993 (E) ), document auquel on se reportera si nécessaire pour comprendre le fonctionnement du CAN. Ces circuits sont notamment utilisés dans des réseaux locaux d'échanges de données à haute vitesse pour véhicule automobile. Un exemple de circuit de ce type est le driver de référence PCA 82 C 250 de la Société Philips Semiconductors (référence : Data Sheet du 21 octobre 1997). Ces circuits sont particulièrement avantageux en raison des propriétés des états récessifs et dominants sur la liaison différentielle qui sont utilisés par l'invention pour réaliser un OU câblé entre plusieurs émetteurs sans référence de masse commune sur plusieurs dizaines de mètres (cette propriété est utilisée dans la norme CAN pour réaliser l'arbitrage de prise de bus entre les différents terminaux). Chaque paire de circuits (71,72) pourra donc être connectée séparément à une alimentation (95,96) spécifique de l'équipement et isolée galvaniquement des autres équipements de la plateforme. Sur la figure 4, la séquence de synchronisation des canaux Ax, Bx, Ay, By de type c ! k utilise l'oscillateur local Hx, Hy de chaque unité de synchronisation SUx, SUy. La séquence comprend une impulsion de synchronisation calibrée Sync pulse (calibrated))'pour rephaser l'horloge temps réel locale RTC et une impulsion de type de synchronisation Sync type (duration) pour indiquer le type de cycle plate-forme (minor-frame/ major frame) (Figure 5). Chaque impulsion de synchronisation comporte une partie récessive et une partie dominante. A partir de l'état récessif, le signal de type clk est mis dans l'état dominant pendant quelques périodes de l'oscillateur local, puis il est placé dans l'état récessif. La durée de cet état dominant dépend du type d'impulsion. L'oscillateur local Hx, (resp Hy) a une période de 5 f. 1 s environ. L'impulsion calibrée est générée par l'unité Sux (resp Suy) sur ses propres signaux Ax, Bx, (resp Ay, By). Chaque unité relit les quatre canaux Ax, Bx, Ay, By. A partir de l'état courant des signaux lus sur ces 4 canaux, elle effectue un vote pendant une fenêtre expected window d'une durée de plusieurs périodes de l'oscillateur local. Elle détecte le basculement cohérent des signaux sur les canaux Ax, Bx, Ay, By dit Edge détection La mise en phase de l'horloge temps réel locale RTC Edge synchronisation s'effectue en au moins trois, au plus quatre périodes d'oscillateur après Edge détection > . La figure 4 explique comment se combinent les impulsions de synchronisation calibrées générées sur les quatre canaux Ax, Bx, Ay, By du bus spécifique (61) pour générer un vote RTC vote qui prend en compte à la fois les décalages temporels des oscillateurs locaux Hx, Hy et les défaillances Fault zu de chaque unité de synchronisation SUx, SUy. Le résultat du vote sur les quatre canaux est donné par la formule logique suivante : RTC vote = (Ax or Ay) and (Bx or Ay) and (Ax or By) and (Bx or By). Ce vote est généralement désigné sous l'appellation de vote majoritaire. Il se différencie d'un vote quadruplex par la suppression des termes (Ax or Bx) et (Ay or By) provenant d'une seule unité SUx ou SUy qui propagent une faute en cas de défaillance de cette seule unité. La table de décision est donc la suivante : Ax Ay Bx By RTC Vote 1111 1 11101 1 1 1 1 1100 0 1011 1 1 # # 1 # 1010 1 1001 0 1 0 0'0 0 # # 1 1 # # # 1 # # # # # 1 # # # # # # # 1 1 1 1 # 1 1 # # # 1 # 1 1 1 La précision de l'oscillateur local interne Hx, (resp Hy) de l'unité de synchronisation SUx, (resp SUy) sera choisie meilleure ou égale à 100 ppm de telle sorte que pour une période de synchronisation miF de 50 ms par exemple, la tolérance sur la dérive de l'horloge temps réel locale RTC sera inférieure à une période de l'oscillateur local, c.à.d. 5 s. La figure 5 explique la manière dont est codé le type de synchronisation. L'impulsion Sync type (duration) suit l'impulsion de synchronisation calibrée. Le code correspond à trois valeurs différentes des durées d'impulsion (par exemple 2,3 et 4 périodes d'oscillateur local). Les trois valeurs représentent les instructions suivantes : Init~Sync : Démarrer une séquence de synchronisation Start~miF Démarrer une séquence de type miF Start~MAF : Démarrer une séquence de type MAF Une séquence miF (minor frame) correspond à une période élémentaire de l'horloge temps réel locale RTC (112) soit quelques dizaines de millisecondes. Une séquence MAF (major frame) correspond à une succession des miF différentes jusqu'à la reprise de la miF initiale. La période de la MAF peut être de plusieurs ordres de grandeur supérieure à miF, par exemple 100 fois, soit quelques secondes. Ces valeurs dépendent des types d'équipements que l'on veut synchroniser, la valeur optimale de MAF devant être ajustée à une valeur déterminée à partir du plus petit commun multiple des miF. Exemple : 100 cycles de miF à 10 ms forment un cycle MAF de 1 s. Un vote est également effectué sur le type de synchronisation. Le codage, le décodage, le vote sur le code et le contrôle d'état de l'unité de synchronisation sont effectués par un circuit logique programmable (91,92). La figure 6 présente les principaux diagrammes de transition d'états. La figure 6.0 présente une vue générale des transitions entre les états : hors synchronisation " Sync disable" , d'attente Wait , de synchronisation réalisée In sync et d'absence de synchronisation Out of sync . Les transitions de/vers l'état Sync disable sont déclenchées par des commandes du processeur de traitement local (Host command : CONFIG~SYNC = ON/OFF). Après une commande CONFIG~SYNC = ON, l'unité de synchronisation SUx, SUy passe à l'état Wait". L'unité de traitement entre en phase opérationnelle ( LRM entering OPS mode ) se place dans l'état Out of sync en attente d'une séquence Initsync"ou Start~MAF . Une séquence ) nitsync est envoyée par l'unité de synchronisation si aucune activité n'est détectée avant la fin de la période d'attente. Une séquence StartJvtAF est envoyée après la séquence InitSync . L'une de ces deux séquences déclenche la transition de l'état Out of sync à l'état In sync . La figure 6.1 montre de manière plus précise comment s'intègre la dimension temporelle dans cette transition d'état, ainsi que la séquence miF. La transition de l'état "In sync" à l'état Out of sync est déclenchée par la séquence Syncjost générée si SUx, SUy reçoit une impulsion de synchronisation en dehors de la fenêtre expected window (RTC vote = 0) ou s'il y a désaccord sur le type de synchronisation (Sync Type vote = 0). La figure 6.2 détaille ces transitions d'état en prenant en compte les deux votes, les deux trames de sychronisation (miF et MAF) et les itérations (i = i + 1 : next time window ). Le vote sur les types de sychronisation peut être avantageusement du type majoritaire précédent entre les quatre canaux. Dans un mode de réalisation, le rapport de la période du cycle majeur à celle du cycle mineur est compris entre 2 et 10000. L'invention n'est pas limitée aux réseaux pour équipements embarqués sur les aéronefs. Elle peut également s'appliquer à des réseaux locaux industriels (RLI) et à des réseaux pour équipements embarqués sur navires. REVENDICATIONS 1. Dispositif de synchronisation des horloges temps réel locales (112,212, 222) d'équipements informatiques reliés à un bus de transfert de données (41) comprenant des circuits électroniques (711,712, 721,722) pour générer des impulsions de synchronisation (Ax, Bx, Ay, By), des circuits de comptage (91,92) pour générer l'horloge temps réel locale (112,212, 222) et échanger les impulsions (Ax, Bx, Ay, By) avec les autres entités de synchronisation (113,213, 223), des circuits de vote temporel (81,82) pour resynchroniser les circuits de comptage (91,92), caractérisé en ce que les impulsions (Ax, Bx, Ay, By) sont transportées par un bus spécifique de synchronisation (61). 2. Dispositif de synchronisation selon la revendication 1, caractérisé en ce qu'il comprend en outre des alimentations (95,96) indépendantes des autres entités de synchronisation. 3. Dispositif de synchronisation selon l'une des revendications précédentes, caractérisé en ce que les échanges sur les canaux Ax, Bx, Ay, By sont conformés en impulsion de synchronisation (Sync pulse) et en codage de type de synchronisation (Sync type). 4. Dispositif de synchronisation selon une des revendications précédentes, caractérisé en ce que les circuits électroniques (711,712, 721, 722) génèrent les impulsions (Ax, Bx, Ay, By) sur des lignes différentielles à états dominant et récessif. 5. Dispositif de synchronisation selon la revendication 4, caractérisé en ce que les circuits électroniques (711,712, 721,722) sont du type driver bidirectionnel de réseau CAN. 6. Dispositif de synchronisation selon une des revendications précédentes, caractérisé en ce que le vote temporel des impulsions (Ax, Bx, Ay, By) dans les circuits logiques (81,82) est un vote majoritaire quadruplex en éliminant les paires (Ax or Bx) et (Ay or By) provenant de la même unité de synchronisation SUx, SUy. 7. Dispositif de synchronisation selon l'une des revendications précédentes, caractérisé en ce que la synchronisation des équipements de la plate-forme informatique est réalisée sous forme de cycles mineur et majeur de périodes multiples. 8. Dispositif de synchronisation selon l'une des revendications prédédentes, caractérisé en ce que le rapport de la période du cycle majeur à celle du cycle mineur est compris entre 2 et 10000. 9. Dispositif de synchronisation selon l'une des revendications précédentes, caractérisé en ce que un équipement (11,21, 22) peut être mis ou non en synchronisation sans perturber les autres équipements de la plateforme qui sont déjà synchronisés entre eux. 10. Equipement informatique comprenant un dispositif de synchronisation selon l'une des revendications précédentes. 11. Procédé de synchronisation pour équipement informatique comprenant quatre états opérationnels (Sync disable, Wait, Out of sync, In sync), par échange d'impulsions de synchronisation, caractérisé en ce que les impulsions (Ax, Bx, Ay, By) sont transportées par un bus spécifique de synchronisation (61). 12. Procédé de synchronisation pour équipement informatique comprenant quatre états opérationnels (Sync disable, Wait, Out of sync, In sync), caractérisé en ce que la transition de l'état (Out of sync) vers l'état (ln sync) est déclenchée par l'expiration d'un temps d'attente ou l'envoi d'une séquence d'initialisation de synchronisation (Init sync) ou d'une séquence de synchronisation d'un premier type (StartmiF) ou d'un deuxième type (Start~MAF). 13. Procédé de synchronisation pour équipement informatique comprenant quatre états opérationnels (Sync disable, Wait, Out of sync, In sync), caractérisé en ce que la transition de l'état (In sync) vers l'état (Out of sync) est déclenchée par l'arrivée de séquences de synchronisation inattendues ou par un premier vote négatif sur quatre signaux (Ax, Bx, Ay, By) ou un deuxième vote négatif sur trois codes (Init~sync, StartmiF, StartMAF). 14. Procédé de synchronisation selon la revendication 12, caractérisé en ce que les premier et deuxième votes sont du même type. 15. Procédé de synchronisation selon la revendication 11 ou la revendication 12, caractérisé en ce que les séquences de synchronisation ont un cycle mineur et un cycle majeur de périodes multiples. 16. Procédé de synchronisation selon la revendication 14, caractérisé en ce que le rapport de la période du cycle majeur à celle du cycle mineur est compris entre 2 et 10000.