FR 2858075 A1 20050128 FR 0451600 A 20040721 Domaine de l'invention La présente invention concerne un procédé de synchronisation de générateurs de temps, locaux, d'un ensemble d'unités esclaves à l'aide d'un générateur de temps local, d'une unité maître, dans un premier réseau reliant entre elles les unités. L'invention concerne également un réseau pour la mise en oeuvre du procédé. Etat de la technique Le développement de l'utilisation de l'électronique dans 10 des fonctions de commande en technique automobile se traduit par une utilisation de plus en plus importante d'unités électriques et électroniques telles que des capteurs, actionneurs et unités de commande, pour les différentes fonctions dans les véhicules automobiles actuels. Le nombre de ces unités fait également augmenter les moyens à mettre en 15 oeuvre pour leur câblage. Pour maintenir les moyens de câblage et le coût correspondant dans des limites, il s'est avéré comme avantageux de ne plus relier chacun des différents capteurs ou n'importe quel actionneur par des lignes individuelles de transmission de signal à une unité de commande traitant les signaux de saisie du capteur ou les si20 gnaux d'actionnement fournis par l'organe actionneur mais de relier un grand nombre de tels capteurs ou actionneurs chaque fois par un circuit d'interface approprié à un bus commun par lequel passent les signaux sous la forme de messages adressés en multiplexage dans le temps entre l'unité de commande et les différentes interfaces. L'utilisation d'un bus réduit certes considérablement le câblage mais cet avantage s'obtient au prix d'une complication de la coordination dans le temps entre les différents capteurs et/ou actionneurs. Dans un réseau utilisant un bus, pour coordonner dans le temps les actions des différentes unités de traitement de données raccordées 30 au bus (entre autre notamment la combinaison d'un capteur ou d'un actionneur et son circuit d'interface associé) il faut qu'avant le début de l'action exécutée, un ordre soit envoyé à ces unités pour définir l'action et l'instant de son exécution, car dans la succession du fonctionnement en multiplexage dans le temps on ne peut garantir que le bus sera libre 35 à l'instant souhaité pour l'exécution de l'action, pour envoyer alors des ordres d'exécution immédiate de l'action souhaitée vers les unités de traitement de données, ainsi concernées. Mais si un ordre qui définit l'instant d'une action est envoyé de façon anticipée aux unités de traitement de données, il est indispensable pour la coordination dans le 5 temps des actions à exécuter, que les unités disposent d'une norme de temps commune. Une possibilité pour établir une norme de temps commune à toutes les unités de traitement de données consiste à utiliser un signal de cadence transmis par le bus et dont les périodes sont 10 comptées par les différentes unités reliées. Mais cette solution n'est pas satisfaisante dans la mesure où elle nécessite sa propre ligne de transmission de signal ou qu'elle occupe une partie importante de la largeur de la bande de transmission d'une seule ligne de bus et qu'en outre on peut avoir des erreurs de comptage provoquées par les différentes uni15 tés de traitement de données à cause de perturbations de transmission par le bus, inconvénient que l'on ne peut éliminer qu'avec des moyens supplémentaires, importants. Une autre possibilité consiste à équiper chaque unité de traitement de données de son propre générateur de signal de temps. Les 20 dispersions inévitables des fréquences de fonctionnement de ces générateurs de signaux de temps se traduisent par la perte ultérieure du -synchronisme initial si bien que dans ce cas également on ne peut assurer une coordination exacte dans le temps des actions que doivent exécuter les différentes unités. Exposé et avantage de l'invention La présente invention a pour but de remédier à ces inconvénients et concerne à cet effet un procédé de synchronisation du type défini ci-dessus, caractérisé par les étapes suivantes: a) l'unité maitre envoie sur le premier réseau un message de syn30 chronisation (SYNC) contenant une valeur de mesure de temps (RM) de l'unité maitre et un repère de temps, b) chaque unité esclave forme la différence entre une valeur de mesure de temps (RSM1, RSM2) enregistrée dans l'unité esclave et la valeur de mesure de temps (RM) reçue de l'unité maître, corrige la 35 valeur actuelle de la mesure de temps (RSM1, RSM2) de l'unité esclave de la différence, et enregistre dans chaque unité une valeur de mesure de temps (RM, RSM 1, RSM2) à la réception des repères de temps, c) l'unité maître 1 insère dans un message de synchronisation sui5 vant (SYNC), la valeur de mesure de temps (RM) enregistrée. Ainsi, le procédé de synchronisation de plusieurs ou d'un ensemble d'unités de traitement de données branchés dans un réseau, selon l'invention, permet d'une manière simple et sans réduire fortement la capacité de transmission d'un bus reliant les unités, d'assurer 10 la synchronisation exacte des unités. Parmi les différentes unités reliées au premier réseau, celle qui forme le temps de la norme pour les autres unités sera l'unité maître et les unités qui devront adapter leur temps à celui de l'unité maître seront les unités esclaves. La synchronisation entre les unités maître et esclaves consiste à transmettre dans le premier réseau un message de synchronisation qui contient une valeur de temps du générateur de temps local de l'unité maître et un repère de temps. Le repère de temps, en négligeant les retards de trans20 mission dans le premier réseau, sera disponible simultanément dans les différentes unités et servira pour enregistrer la valeur instantanée de la mesure de temps du générateur de temps local de chaque unité. Si dans un message de synchronisation ultérieur, l'unité maître transmet aux unités esclaves la valeur de la mesure de temps qu'elle a enregistrée, 25 ces unités peuvent déceler la déviation entre leur générateur de temps local et l'unité maître par comparaison de la valeur de mesure de temps qu'elles auront enregistrée et celle transmise puis corrigée. La précision de la correction assurée par ce procédé est indépendante du temps compris entre la composition d'un message de 30 synchronisation par l'unité maître et sa transmission par le premier réseau. Ce procédé convient tout particulièrement pour des réseaux dans lesquels ce temps ne peut être fixé de manière exacte ou peut varier selon la charge du réseau, ce qui est notamment le cas d'un réseau CAN. Ce message de synchronisation est émis de préférence de 35 manière cyclique dans le premier réseau. Pour éviter que par suite d'une correction du générateur de temps local, des instants prévus pour un certain événement ou une certaine activité d'une unité esclave ne soient intégrés en double dans la mesure du temps de l'unité esclave ou soient supprimés, il est avanta5 geux que l'unité maître définisse dans son message de synchronisation, un instant pour la correction du générateur de temps des unités maîtres, instant qui peut différer de l'instant de la réception du message de synchronisation. Cet instant est choisi avantageusement selon l'application pratique de l'invention, a une distance suffisante des ins10 tants prévus pour les actions de l'unité esclave. Comme après la formation de la différence entre la valeur de la mesure de temps enregistrée par l'unité esclave et la mesure de la valeur de temps transmise par l'unité maître, cette unité esclave connaît la déviation de son générateur de temps local par rapport au générateur 15 de temps de l'unité maître, l'unité locale est en mesure de corriger l'instant spécifié pour la correction en appliquant la différence ainsi obtenue avant même qu'elle ne corrige le générateur de temps local. De cette manière, toutes les unités esclaves corrigent leur générateur de temps local indépendamment de la différence de fonctionnement entre 20 le générateur de temps de l'unité maître, en effectuant une correction exacte par rapport à l'instant spécifié par l'unité maître. Les unités esclaves du premier réseau peuvent être les unités maîtres, c'est-à-dire des unités sous-maîtres d'un second réseau dans lequel elles commandent à leur tour les générateurs de temps 25 d'unités esclaves par un message de synchronisation qui leur est transmis par le second réseau. Si dans ce second réseau, l'intervalle de temps compris entre la formation d'un message de synchronisation à transmettre et la transmission de ce message dans le second réseau est fixé, pour syn30 chroniser les unités esclaves dans le second réseau on peut appliquer un procédé plus simple; selon ce procédé, l'unité sous-maître transmet chaque fois un message de synchronisation avec une valeur déduite de la valeur de la mesure de temps de son générateur de temps local vers les unités esclaves; ces unités déduisent de la valeur transmise, une 35 valeur de mesure de temps que doit prendre en compte leur générateur de temps local. En particulier, pour l'une des deux opérations de déduction, il peut s'agir de la reprise à l'identique de la valeur de mesure de temps (du générateur de temps local de l'unité sous-maître dans le message ou du message dans le générateur de temps de l'unité esclave) 5 et pour l'autre déduction il s'agit d'une correction selon l'intervalle de temps connu et constant entre l'obtention de la valeur de mesure de temps dans l'unité sous-maître et la transmission du message vers les unités esclaves. Ce second réseau peut notamment être un réseau LIN 10 (Réseau d'Interconnexion Local). Dessins La présente invention sera décrite ci-après de manière plus détaillée à l'aide d'exemples de réalisation représentés dans les dessins annexés dans lesquels: - la figure 1 est un schéma par blocs d'un réseau hiérarchisé à deux niveaux appliquant la présente invention, - la figure 2 est un schéma par blocs d'une unité du réseau, - la figure 3 est un chronogramme de l'exécution de la synchronisation entre l'unité maître et une unité esclave du plan hiérarchique moyen 20 encore appelé unité sous-maître selon un premier mode de réalisation de l'invention, - la figure 4 est un chronogramme du déroulement de la synchronisation entre l'unité maître et les unités sous-maîtres correspondant à un second mode de réalisation de l'invention, - la figure 5 montre un chronogramme de la synchronisation entre une unité sous-maître et des unités esclaves reliées à celle-ci dans un plan hiérarchique inférieur. Description de modes de réalisation La figure 1 montre un schéma par blocs d'un réseau de 30 traitement de données à structure hiérarchisée comportant un plan hiérarchique intermédiaire comprenant des unités 3 entre une unité maître 1 et plusieurs unités esclaves 2. Ces unités se composent comme des esclaves vis-à-vis de l'unité maître 1 et vis-à-vis des unités esclaves 2 ces unités 3 se composent comme des unités maîtres et peuvent ainsi 35 être appelées unités sous-maîtres 3. Ces unités communiquent avec l'unité maître 1 par un bus CAN 4 et avec les unités esclaves 2 par un bus LIN 5. Si en se référant au bus CAN 4 on désigne une unité seule, raccordée comme unité maître 1, cela concerne uniquement la 5 caractéristique de l'unité maître 1 ayant une horloge locale dont la mesure du temps s'impose aux autres unités 3 reliées au bus CAN 4; toutes les unités 1, 3, reliées à ce bus peuvent partager la priorité par le bus CAN 4 en multiplexage dans le temps. En revanche, sur un bus LIN 5 seule l'unité sous-maître 10 3 est autorisée à émettre des messages ou informations par le bus 5; la transmission de données en remontant des unités esclave 2 vers l'unité sous-maître 3 ne se fait qu'à la requête de l'unité sous-maître 3. Les unités esclaves 2 se composent chacune d'une interface pour la communication avec le bus et d'un circuit de commande 15 pour commander l'appareil raccordé, par exemple un clignotant ou le moteur d'essuieglace d'un véhicule automobile, des serrures d'un verrouillage centralisé ou autres accessoires et équipements. Pour assurer la coordination marche/arrêt du clignotant ou le mouvement de l'essuie-glace dans le temps il faut que ces équi20 pements ou appareils comportent chacun des horloges locales synchronisées sur les unités esclaves 2 correspondantes. Ces horloges doivent non seulement être synchronisées dans chaque réseau LIN mais également pour des fonctions de commande complexes correspondant par exemple à la coopération de clignotants et de l'actionnement du système 25 de verrouillage centralisé, nécessitant que les unités esclaves 2 des différents bus LIN 5 soient synchronisées. Une synchronisation s'étendant au système s'effectue en deux étapes; la première étape comprend la synchronisation de toutes les unités sousmaitres 3 avec l'unité maître 1 et la seconde étape con30 cerne la synchronisation des unités esclaves 2 avec leur unité sousmaître 3 respectivement associée. Dans la suite on envisagera tout d'abord la synchronisation de l'unité maitre 1 avec les unités sous-maîtres 3 par le bus CAN 4. La figure 2 montre schématiquement la structure de 35 l'unité maître 1. Un générateur de temps ou horloge 6 fournit un signal d'horloge à un processeur de commande 7 qui assure par commande programmée à l'aide d'ordres externes et par les données reçues par l'intermédiaire du bus CAN 4, différentes fonctions de commande qui ne sont pas à proprement parler l'objet de l'invention et ne sont pas dé5 taillées ici. Le signal d'horloge du générateur de cadence ou horloge 6 commande en outre une horloge locale 8 sous la forme d'un compteur numérique dont l'état de comptage est incrémenté à la période du signal de cadence (il peut également être décrémenté). L'état de comptage représente ainsi une valeur de mesure de temps (ou plus simplement une 10 mesure de temps). La sortie de l'horloge 8 est entre autres reliée au processeur de commande 7 pour qu'il puisse en extraire la valeur de la mesure du temps de l'horloge 8. Une interface de bus 9 communique avec le bus CAN 4 sous le contrôle du processeur de commande 7. En particulier cette in15 terface contrôle l'arrivée de repère de temps dans des messages de synchronisation passant dans le bus CAN 4. A l'arrivée d'un repère de temps, l'interface réagit en arrêtant le processeur de commande 7 qui extrait ainsi la valeur de la mesure de temps de l'horloge 8 et l'enregistre dans un registre ou à un emplacement de mémoire fixe 10. 20 Le contenu de l'emplacement de mémoire 10 est inséré comme valeur de mesure de temps dans le message de synchronisation suivant que génère le processeur de commande 7 et qu'il envoie par le bus CAN 4. La structure du circuit comprenant le générateur de cadence 6, le processeur de commande 7, l'horloge 8, l'interface de bus 9 25 et la mémoire 10, est la même dans les unités sous-maîtres 3 et dans l'unité maître 1 et c'est pourquoi la description ne sera pas répétée à chaque fois; ces deux types d'unités se distinguent uniquement par le fonctionnement de leur processeur de commande comme cela sera expliqué ciaprès à l'aide du chronogramme de la figure 3. Ce chronogramme représente trois lignes de temps, parallèles M, C, SM schématisant chacune l'horloge 8 de l'unité maître 1, celle du bus CAN 4 et celle de lhrloge 8 de l'une des unités sousmaîtres 3. Le chronogramme commence par un message de synchronisation représenté sous la forme d'un rectangle SYNC sur le bus CAN 4. 35 La fin de ce message schématisée par un trait interrompu vertical tl représente un repère de temps auquel réagissent l'unité maître 1 et l'unité sous-maître 3 en enregistrant les valeurs de mesure de temps de leur compteur représentées sous la forme de valeurs numériques à la figure, au-dessus de chaque hexagone symbolisant une période de ca5 dence, pour être enregistrées dans le registre 10. A l'instant tl les valeurs enregistrées sont toutes deux égales à zéro, c'est-à-dire que l'horloge de l'unité maître 1 et celle de l'unité sousmaître 3 sont synchronisées à + une période de cadence près. A un instant ultérieur, quelconque, par exemple chaque 10 fois que l'on atteint l'état de comptage 250 pour le générateur de temps de l'unité maître 1, cette unité compose un nouveau message de synchronisation et transmet ce message à l'interface de bus 9 pour assurer son envoi par le bus CAN 4. A ce moment, le bus CAN est chargé d'un autre message MSG de sorte que le nouveau message de synchronisa15 tion SYNC ne pourra être envoyé que lorsque le bus est de nouveau libéré. L'instant auquel l'interface de bus 9 peut envoyer le message de synchronisation n'est pas connu du processeur de commande 7 de l'unité maître 1 lorsque celle-ci forme le message. Si la transmission du nouveau message SYNC se termine 20 à l'instant t2, le générateur de temps de l'unité maître 1 atteint la valeur 255 et dans l'unité sous-maître 3 on est à l'état 254. Ces deux valeurs sont ensuite enregistrées à l'emplacement de mémoire 10 prévu à cet effet dans chacune des unités. Dans le message de synchronisation suivant SYNC, 25 l'unité maître ajoute l'état de comptage 255 de son générateur de temps. La transmission de ce message SYNC se termine à l'instant t3 correspondant à un état de comptage 4 du générateur de temps de l'unité maître 1 ou d'un état de comptage 3 du générateur de temps de l'unité sous-maître 3. Cela correspond ainsi à la différence entre l'état de 30 comptage 255 reçu dans le message de synchronisation SYNC de l'unité maître et l'état de comptage propre 254 confirmant qu'elle a été retardée d'une période de cadence. Ensuite, elle augmente de la différence l'état de comptage instantané de son propre générateur de temps si bien qu'elle est de nouveau parfaitement synchronisée. La figure 4 présente une forme analogue à celle de la figure 3, le déroulement chronologique de la synchronisation correspondant à un mode de réalisation plus développé du procédé. Dans ce cas on a considéré quatre lignes de temps, l'une portant la référence C pour 5 le bus CAN 4 et une ligne portant la référence M pour l'unité maître 1 et deux lignes SM1, SM2 correspondant aux unités sous-maîtres 3. Un premier message de synchronisation SYNC, transmis par le bus 4, contient deux champs de données, ici avec les contenus 255 et 127 dont la fonction sera détaillée ultérieurement. La fin de la transmission du 10 message de synchronisation SYNC représente un repère de temps dont l'arrivée sur le bus à l'instant tl' fait que l'unité maître et les deux unités sous- maîtres enregistrent les valeurs de mesure de temps instantanées de leurs générateurs de temps, locaux, ici RM = 4 pour l'unité maître 1 et RSM1 = 3 et RSM2 pour les deux unités sous-maîtres 3. Un second message de synchronisation transmis par le bus contient dans son premier champ de données, la valeur de la mesure de temps enregistrée précédemment RM = 4 de l'unité maître 1. Les unités sous-maîtres qui ont reçu cette valeur de données calculent chacune sa déviation propre vis-à-vis du compteur Ati = RM - RSMi, 20 avec i = 1, 2. En même temps que la fin du message de synchronisation SYNC, à l'instant t2', on reçoit et enregistre une nouvelle valeur de mesure de temps RM = 54, RSM1 = 53, RSM2 = 55 sur toutes les unités. La seconde valeur de données contenue dans le message de synchronisation, ici la valeur 127, caractérise un instant fixé de ma25 nière arbitraire; plus précisément il s'agit d'un état de comptage du générateur d'horloge de l'unité maître 1 auquel il faut corriger le générateur de temps des unités sous-maîtres. Les unités sous-maîtres corrigent cette valeur de données chaque fois par la déviation constatée Ati ce qui donne comme instant de correction tcl = 127 - Atl = 126 30 pour la première unité sous-maître et tc2 = 127 - At2 = 128 pour la seconde unité sous-maître. Chaque fois que les générateurs de temps locaux des unités sous-maîtres adoptent les valeurs de comptage tcl, tc2 ainsi calculées, c'est-à-dire à l'instant t3' à la figure 4, on corrige ces valeurs de 35 comptage de l'erreur constatée Atl ou At2 si bien que dans le cycle de cadence suivant, tous les générateurs de temps seront synchronisés exactement. En même temps, on corrige les valeurs de mesure de temps RSM 1, RSM2 enregistrées pour l'opération de synchronisation suivante en procédant de façon correspondante avec toutefois le signe algébrique 5 opposé, de sorte que dans le cas envisagé ici, ces deux valeurs correspondent à l'état 54. Si l'on transmet le message de synchronisation suivant qui contient la valeur 54 comme valeur de mesure de temps de l'unité maître, on constatera que les générateurs de temps de toutes les unités sont synchronisés et ainsi on n'effectue aucune nouvelle correc10 tion. La figure 5 montre le déroulement de la synchronisation entre une unité sous-maître 3 et une unité esclave 2 par le bus LIN 5 à l'aide de trois lignes de temps SM, L, S, associées chaque fois à l'unité sous-maître 3, au bus 5 ou à l'unité esclave 2. Chaque fois que l'unité 15 sous-maître 3 a été synchronisée elle-même par l'unité maître 1 (indépendamment de ce que cette synchronisation a conduit comme dans le cas présenté dans les figures précédentes à une correction du générateur de temps de l'unité sous-maître (passage du cycle de temps sous la référence 127) ou non, cela conduit d'une part à une synchronisation 20 des unités esclaves 2 raccordées. Comme l'unité sous-maître 3 a la domination par le bus LIN 5, à chacun des instants constatés elle peut commencer par l'émission d'un message de synchronisation SYNC' transmis par le bus LIN 5 et contenant comme paramètre le numéro, ici le numéro 128 du cycle de cadence dans lequel l'émission a commencé. 25 La transmission du message de synchronisation SYNC' demande un nombre fixe de cycles de cadence; dans le présent exemple de réalisation il s'agit de la durée de trois cycles de cadence de sorte que dans la cadence 131, le message de synchronisation est disponible en totalité dans les unités esclaves 2. Cette unité additionne la durée de 30 transmission connue au numéro de cycle de cadence reçu de l'unité sous-maître 3 et remet ainsi son propre générateur de temps local sur le résultat, ici 131. Il REVENDICATIONS 1 ) Procédé de synchronisation de générateurs de temps (8), locaux, d'un ensemble d'unités esclaves (3) à l'aide d'un générateur de temps local (8) , d'une unité maître (1), dans un premier réseau reliant entre elles les unités (1, 3), caractérisé par les étapes suivantes a) l'unité maître (1) envoie sur le premier réseau (4) un message de synchronisation (SYNC) contenant une valeur de mesure de temps 10 (RM) de l'unité maître (1) et un repère de temps (tl, t2, t3; tl', t2'), b) chaque unité esclave (3) forme la différence (Atl, At2) entre une valeur de mesure de temps (RSM1, RSM2) enregistrée dans l'unité esclave (3) et la valeur de mesure de temps (RM) reçue de l'unité maître (1), corrige la valeur actuelle de la mesure de temps (RSM1, RSM2) 15 de l'unité esclave de la différence (Atl, At2), et enregistre dans chaque unité une valeur de mesure de temps (RM, RSM1, RSM2) à la réception des repères de temps (tl, t2, t3; tl', t2'), c) l'unité maître (1) insère dans un message de synchronisation suivant (SYNC) la valeur de mesure de temps (RM) enregistrée. 20 2 ) Procédé selon la revendication 1, caractérisé en ce qu' on envoie de manière cyclique le message de synchronisation (SYNC). 3 ) Procédé selon la revendication 1, caractérisé en ce que l'unité maître (1) spécifie dans le message de synchronisation (SYNC), un instant (tcl, tc2) pour la correction de l'horloge (8) des unités esclaves (3). 4 ) Procédé selon la revendication 3, caractérisé en ce qu' une unité esclave (3) corrige l'instant (tcl, tc2) spécifique pour la correction en appliquant la différence (Atl, At2). 35 5 ) Procédé selon la revendication 1, caractérisé en ce que le premier réseau (4) est un réseau CAN. 6 ) Procédé selon la revendication 1, caractérisé en ce qu' au moins l'une des unités esclaves (3) du premier réseau (4) est en même temps l'unité maître d'un second réseau (5) appelée unité sousmaître et qui synchronise les unités esclaves subordonnées (2) par un 10 message de synchronisation transmis dans le second réseau. 7 ) Procédé selon la revendication 6, caractérisé en ce que l'unité sousmaître (3) transmet, dans le message de synchronisation, 15 une valeur de la valeur de mesure de temps de son générateur de temps local (8), et chacune des unités esclaves (2), associée, reprend une valeur de mesure de temps déduite de la valeur de mesure de temps obtenue à partir de la valeur transmise dans son générateur de temps local, et l'une des unités (2, 3) tient compte, en effectuant la dérivation, de la durée de transmission du message de synchronisation suivant le second réseau (5). 8 ) Procédé selon la revendication 6 ou 7, 25 caractérisé en ce que le second réseau (5) est un réseau LIN.