Brevet FR2858076A1 — publié le 20050128

Domaine de l'invention La présente invention concerne un procédé de synchronisation d'un ensemble d'unités de traitement de données comprenant une unité maître et au moins une unité esclave ayant chaque fois un généra5 teur de signal de temps pour fournir un signal de temps dont la valeur représente le temps écoulé à partir d'un instant 0, et reliées par un bus. L'invention concerne également un dispositif pour la mise en oeuvre d'un tel procédé, c'est-à-dire un réseau comportant un ensemble d'unités de traitement de données parmi lesquelles il y a une unité maître 10 et au moins une unité esclave, ces unités ayant chacune un générateur de signal de temps pour fournir un signal de temps dont la valeur représente le temps écoulé à partir d'un instant O, en étant reliées par un bus, l'unité maître disposant d'une installation pour émettre un signal de synchronisation (SYNC) défini à un instant; Etat de la technique Le développement de l'utilisation de l'électronique pour des fonctions de commande en technique automobile a conduit à utiliser pour différentes fonctions des unités électriques et électroniques telles que des capteurs, des actionneurs et des unités de commande, de plus en plus 20 nombreux dans les véhicules modernes. Avec l'augmentation du nombre de ces unités augmentent également les moyens de câblage nécessaires. Pour maintenir néanmoins les travaux de câblage et les coûts entraînes dans certaines limites il s'est avéré intéressant de ne plus relier séparément chaque capteur ou chaque actionneur par des lignes individuelles de 25 transmission de signaux à une unité de commande qui traite les signaux saisis par les capteurs ou les signaux d'actionnement destinés aux organes d'actionnement, mais d'associer un ensemble de tels capteurs et organes d'actionnement ou actionneurs par une interface appropriée à un bus commun qui transmet les signaux sous la forme d'informations ou de 30 messages adressés en mode multiplexé dans le temps entre l'unité de commande et les différentes interfaces. L'utilisation d'un bus réduit considérablement le câblage mais cela au prix d'une complication de la coordination dans le temps des différents capteurs et/ou actionneurs. Dans un réseau utilisant un bus, 35 pour coordonner dans le temps les actions de différentes unités de traitement de données raccordées au bus (entre autres en particulier la combinaison d'un capteur ou d'un actionneur et son interface), il faut qu'avant le début de l'action exécutée, on envoie un ordre à ces unités, qui spécifie l'action et l'instant de son exécution car dans la suite du fonctionnement en multiplex dans le temps, il n'est pas sûr que le bus soit libre à l'instant souhaité pour l'action, pour permettre l'émission d'ordres pour l'exécution immédiate de l'action souhaitée vers les unités destinataires, traitant les 5 données. Mais si un ordre qui spécifie l'instant d'une action est envoyé au préalable aux unités de traitement de données, il est indispensable pour assurer la coordination dans le temps des actions à exécuter que les unités disposent d'un standard de temps commun. Une possibilité pour réaliser un tel standard de temps 10 commun à toutes les unités traitant les données consiste à utiliser un signal de cadence (ou signal d'horloge) transmis par le bus et dont la période est comptée par les unités raccordées. Cette solution n'est toutefois pas satisfaisante car il lui faut sa propre ligne de transmission de signal ou occuper une bande de transmission relativement importante dans une 15 ligne de bus et l'erreur de comptage que peuvent avoir les différentes unités traitant les données à cause de perturbations de transmission sur le bus ne peut être corrigée qu'avec des moyens compliqués. Une autre possibilité consiste à équiper chaque unité de traitement de données de son propre générateur de signal de temps. Les 20 inévitables dispersions de fréquences de fonctionnement de ces générateurs de signaux de temps conduisent néanmoins à la disparition du synchronisme initial, au cours du temps. Cela ne permet pas non plus, sauf utilisation d'autres moyens, d'assurer une coordination exacte du temps entre les actions que doivent exécuter les différentes unités. 25 Exposé et avantage de l'invention La présente invention concerne à cet effet un procédé du type défini ci-dessus, caractérisé en ce que les étapes suivantes: a) on transmet un signal de synchronisation (SYNC) définissant un ins30 tant sur le bus; b) on enregistre la valeur du signal de temps fourni par le générateur de signal de temps d'au moins chaque unité esclave à l'instant défini par le signal de synchronisation; c) on transmet la valeur du signal de temps de l'unité maître à l'instant 35 défini par le signal de synchronisation; d) on détermine dans chaque unité esclave une différence de temps représentant la différence entre la valeur du signal de temps enregistrée dans l'étape b) et la valeur du signal de temps transmise dans l'étape c) et on corrige le générateur de signal de temps de l'unité esclave en fonction de la différence de temps ainsi obtenue. Le procédé selon l'invention permet de développer un réseau d'unités de traitement de données et un procédé de synchronisation d'un 5 ensemble d'unités de traitement de données dans un réseau, permettant de façon simple et sans réduire fortement la capacité de transmission du bus reliant les unités, d'assurer une synchronisation exacte des unités. Les différentes unités reliées au bus se composent de celle dont le temps constitue le standard pour les autres unités, c'est-à-dire de io l'unité maître, et de celles dont le temps doit être adapté à celui de l'unité maître c'est-à-dire les unités esclaves. La synchronisation entre l'unité maître et les unités esclaves repose sur la transmission d'un signal de synchronisation défini à un instant, par le bus, à l'enregistrement en mémoire de la valeur du signal 15 de temps fourni à l'instant défini par le signal de synchronisation par le générateur de signal de temps d'au moins une unité esclave, puis à transmettre la valeur du signal de temps de l'unité maître à l'instant défini par le signal de synchronisation et enfin à déterminer dans chaque unité esclave, une différence de temps qui correspond à la différence entre le 20 signal de temps enregistré en mémoire et celui transmis, et ensuite à corriger le générateur de signal de temps de chaque unité esclave en fonction de la différence de temps ainsi obtenue. L'instant auquel l'unité maître transmet la valeur du signal de temps aux unités esclaves est sans importance pour la précision de la 25 synchronisation. De manière avantageuse, les générateurs de temps (horloge) sont des compteurs numériques incrémentés ou décrémentés périodiquement par un signal de cadence et les valeurs de signal de temps sont les états de comptage de ces compteurs. La différence des valeurs de signal de 30 temps constitue ainsi une mesure directe de la différence de temps entre les générateurs de temps de l'unité maître et de l'unité esclave; la correction peut alors se faire par simple addition de cette différence à l'état de comptage actuel du générateur de temps de l'unité esclave. Le signal de cadence ou de temps sur lequel se fonde le gé35 nérateur de signal de temps est généré avantageusement dans chaque unité par le générateur de cadence local de cette unité. Le signal de synchronisation pourrait en principe provenir d'une source quelconque comme par exemple être déclenché manuelle- ment par l'utilisateur. Mais il est préférable de générer le signal de synchronisation directement par l'unité maître. Dans le cas d'un bus transmettant différents types d'informations, un type d'informations étant un ordre de synchronisation 5 du générateur de signal de temps d'au moins une unité esclave, on utilise avantageusement comme signal de synchronisation un modèle transmis à l'identique dans chaque ordre de synchronisation et reconnu par l'unité esclave. Dans un but de simplification on peut utiliser comme signal lo de synchronisation un modèle contenu dans chaque information transmise par le bus quel que soit le type d'information. Ainsi comme signal de synchronisation on peut par exemple utiliser la séquence introductive qui caractérise chaque fois le début d'une information transmise sur le bus. Cela est notamment intéressant si le bus transmet des informations asynt5 chrones sans lien avec une trame de temps prédéfinie. Pour simplifier le traitement dans les unités esclaves, il est intéressant de transmettre chaque fois dans une même information, le signal de synchronisation et la valeur du signal de temps de l'unité maître avec laquelle les unités esclaves doivent être synchronisées En ce qui concerne le dispositif selon l'invention, l'unité maître comprend en outre une installation pour saisir la valeur de son signal de temps à l'instant défini par le signal de synchronisation (SYNC) et d'une installation pour introduire cette valeur dans une information transmise par le bus, et chaque unité esclave comporte des installations 25 pour enregistrer la valeur de leur signal de temps à l'instant défini par le signal de synchronisation, pour déterminer une différence de temps correspondant à la différence entre la valeur reçue de l'unité maître et la valeur enregistrée du signal de temps et pour adapter son propre générateur de signal de temps à cette différence de temps le bus est un bus LIN et le 30 réseau est intégré dans un véhicule automobile. Dessins La présente invention sera décrite ci-après de manière plus détaillée à l'aide d'un exemple de réalisation représenté dans les dessins annexés dans lesquels: - la figure 1 est un schéma blocs d'un réseau appliquant la présente invention; - la figure 2 est un schéma blocs d'une unité maître du réseau; - la figure 3 est un schéma blocs d'une unité esclave; - la figure 4 est un ordinogramme du travail exécuté par l'unité maître et les unités esclaves. Description du mode de réalisation La figure 1 est un schéma blocs d'un réseau de traitement 5 de données comprenant une unité maître 1 et plusieurs unités esclaves 21, 2-2, ... appelées globalement unités esclaves 2 reliées par un bus LIN 3. Le bus LIN (réseau local interconnexion) autorise seulement l'unité maître 1 à émettre des informations sur le bus; les transmissions montantes de données à partir des unités esclaves 2 vers l'unité maître 1 ne sont possi10 bles qu'à la requête de l'unité maître. Une description détaillée du standard LIN ne sera pas donnée ici car elle n'est pas indispensable à la compréhension de l'invention. On pourra se référer pour plus de détails à la page Internet http://www.carbussystems.com/lin. html. Les unités esclaves 2-1 se composent chaque fois d'une in15 terface pour la communication avec le bus et d'un circuit de commande pour un feux clignotant. Les unités esclaves 2-2 commandent par exemple un moteur d'essuie-glaces; d'autres unités esclaves peuvent servir à commander par exemple les serrures d'un verrouillage centralisé, etc... Pour assurer la coordination de la mise en marche et de l'arrêt des cli20 gnotants ou le mouvement des essuie-glaces, l'unité maitre 1 envoie aux unités esclaves 2 concernées des ordres spécifiant l'action à déclencher et l'instant du déclenchement de l'action. De plus les ordres de synchronisation sont transmis par le bus pour adapter les générateurs locaux de temps (horloge locale) des unités esclaves 2 à l'horloge de l'unité maître 1. 25 La figure 2 montre schématiquement la structure de l'unité maître 1. Un générateur de cadence 5 fournit un signal de cadence d'une fréquence fl à un processeur de commande 6 qui commandé par programme assure diverses fonctions de commande à partir d'ordres externes et de données reçues par le bus 3. Ces fonctions de commande ne faisant 30 pas directement l'objet de la présente invention ne seront pas décrites de manière détaillée. Le signal de cadence ou d'horloge du générateur de cadence ou horloge 5 commande en outre un générateur de signal de temps 7 sous la forme d'un compteur numérique dont l'état de comptage est incrémenté à chaque période du signal de cadence (ou est décrémenté). Une 35 sortie parallèle du générateur de signal de temps est reliée à l'entrée de données d'un registre 8. Un générateur d'informations 9 est relié à la sortie de transfert de bits ou à un bit de niveau élevé de la sortie du comptage du générateur de signal de temps 7 par une ligne 1 1. Le générateur d'informations 9 sert d'une part à convertir des ordres déterminés fournis par le processeur de commande 6 et destinés à une ou plusieurs unités esclaves 2, en un format exigé par le bus LIN 3, compatible et à transmettre par le bus LIN 3; le générateur sert également à envoyer vers les uni5 tés esclaves 2, des ordres de synchronisation, déclenchés, à partir du signal reçu du générateur de signal de temps 7. Une telle information de synchronisation comprend une entête avec un élément unitaire pour toutes les informations transmises sur le bus 3, une information type qui caractérise l'information comme ordre 10 de synchronisation et une information d'adresse caractérisant les unités esclaves 2 auxquelles est destinée l'information. De façon générale l'information de synchronisation concerne toutes les unités esclaves 2 reliées au bus LIN 3. Un circuit de reconnaissance de modèle 10 est raccordé à la 15 sortie d'émission du générateur d'informations 9 conduisant au bus 3. Ce circuit 10 surveille l'échange de données sur le bus 3 pour déterminer l'arrivée du préambule unitaire pour chaque information et lorsque le circuit détecte un tel préambule il fournit une impulsion de déclenchement au registre 8 si bien que celui-ci enregistre l'état de comptage émis à cet 20 instant actuel par le générateur de signal de temps 7. Une sortie de données du registre 8 est reliée à une entrée du générateur d'informations 9 qui autorise celui-ci après l'émission du préambule unitaire de lire une information de synchronisation et le contenu du registre 8 pendant l'émission de l'information de type et d'adresse et de l'insérer comme va25 leur de données dans l'information de synchronisation qui vient d'être générée. La figure 3 montre schématiquement la structure d'une unité esclave 2. Un décodeur d'informations raccordé au bus LIN 3 sert à reconnaitre les différentes informations transmises par le bus pour ex30 traire les informations de type et d'adresse de l'en-tête pour l'analyse à l'aide de l'information d'adresse et déterminer si une information de données est destinée à l'unité esclave 2 et le cas échéant à transmettre l'information type et éventuellement les données contenues dans l'information vers un circuit de commande 13 qui exécute l'activité de35 mandée dans l'information par l'unité maître 1. Des informations de synchronisation ne sont pas traitées par le circuit de commande 13 mais par d'autres parties de l'unité esclave 2 comme cela sera décrit ci-après. Si le décodeur d'informations 12 reconnaît une information de synchronisation il transmet l'état de comptage contenu comme données dans cette information et qui correspond au générateur de signal de temps 7 à une première entrée d'un circuit de différence 14. De la même manière que l'unité maître 1, l'unité esclave 2 dispose d'un générateur de cadence locale 5 dont la période f2 peut différer légèrement de la période fi de l'unité maître; l'unité esclave comporte également un générateur de signal de temps 7 incrémenté (ou décrémenté) par le signal de cadence du générateur de cadence 5 et un registre 8 dont o10 une entrée de données est reliée à une sortie de comptage parallèle du générateur de signal de temps 7. Un circuit de reconnaissance de modèle 10 est raccordé au bus LIN 3. Ce circuit 10 qui peut être de même construction que l'unité maître 1 commande le registre 8 lorsqu'elle reconnaît un modèle commun 15 à toutes les informations de sorte que le registre reçoit l'état de comptage appliqué à cet instant à son entrée de données et émet cet état de comptage par sa sortie. Cette sortie est reliée à une seconde entrée du circuit de différence 14. Dès que le décodeur d'information 12 reconnaît que l'information actuellement reçue est effectivement une information de syn20 chronisation, il commande le circuit de différence 14. Celui-ci forme alors la différence entre les états ou valeurs de comptage appliqués à ces deux entrées et émet un signal appliqué à une première entrée d'un circuit de sommation 15. La seconde entrée du circuit de sommation 15 est reliée à la sortie de données du générateur de signal de temps 7 qui peut émettre 25 à cet instant déjà un autre état de comptage qu'à l'instant de la mise en oeuvre du registre 8 par le circuit de reconnaissance de modèle 10. Le circuit de sommation 15 transmet la somme des valeurs appliquées à ces deux entrées. L'émission faite par le circuit de sommation 15 remplace l'état de comptage du générateur de signal de temps 7 par le nouvel état 30 de comptage. Ainsi celui-ci est identique à l'état de comptage du générateur de signal de temps 7 de l'unité maître au même instant. Le déroulement chronologique du procédé de synchronisation est représenté à la figure 4 à l'aide d'un ordinogramme. Les blocs de la partie gauche du diagramme correspondent aux étapes du procédé exé35 cuté par l'unité maître 1 et les blocs de la partie droite du diagramme correspondent aux étapes de traitement de l'unité esclave 2. Dans l'étape S1 on attend que se produise l'instant de synchronisation. Un instant de synchronisation peut être défini par exemple par un changement de niveau d'un bit de valeur élevée du générateur de signal de temps 7 de l'unité maître 1, quand ce bit est transmis par la ligne 11 au générateur d'informations 9; il peut également s'agir de l'instant d'un débordement de compteur si la ligne est reliée à une sortie de report du générateur de 5 signal de temps 7. Dans l'étape S2, on déclenche le générateur d'informations 9 par la ligne 1 1 pour qu'il fournisse une information de synchronisation. Le générateur d'informations 9 n'est pas nécessairement tout de suite en mesure de répondre à une telle requête; si en même temps il y a des requêtes de priorité plus élevées pour émettre des infor10 mations par le processeur de commande 6, alors l'information de synchronisation sera retardée jusqu'à ce que ces autres requêtes soient traitées. Cela n'a pas d'influence sur la précision de la synchronisation car ce n'est que lorsque le générateur d'informations commence dans l'étape S3 à envoyer l'information de synchronisation par le bus (cela est sché15 matisé par la flèche en pointillés portant la référence SYNC) et que le circuit de reconnaissance de modèle 10 de l'unité maître 1 reconnaît dans l'étape S4 le préambule de cette information, qu'alors seulement l'état de comptage du générateur de signal de temps 7 de l'unité maître 1 est repris dans le registre 8. En même temps, dans l'étape S5 on reconnaît le préambule de l'information de synchronisation également dans les unités esclaves 2 ce qui produit le transfert des valeurs de comptage du générateur de signal de temps 7 dans les registres 8 des unités maîtres 1 et des unités esclaves 2, de manière simultanée. Dans l'étape S6 on transmet l'état de 25 comptage de l'unité maître 1 aux unités esclaves (cela est schématisé par la flèche en pointillés N) qui retranchent leur propre état de comptage de cet état de comptage dans l'étape S7; le résultat est additionné dans l'étape S8 à un instant éventuellement ultérieur, à un état de comptage inchangé pour donner son état de comptage actuel; dans l'étape S9 on 30 remplace l'état de comptage actuel par le résultat obtenu. Ensuite le procédé revient à la sortie pour les unités maîtres et esclaves. REVENDICATIONS 1 ) Procédé de synchronisation d'un ensemble d'unités de traitement de données comprenant une unité maître (1) et au moins une unité esclave (2) ayant chaque fois un générateur de signal de temps (7) pour fournir un 5 signal de temps dont la valeur représente le temps écoulé à partir d'un instant 0, et reliées par un bus (3), caractérisé par les étapes suivantes a) on transmet un signal de synchronisation (SYNC) définissant un 10 instant sur le bus (3); b) on enregistre la valeur du signal de temps fourni par le générateur de signal de temps (7) d'au moins chaque unité esclave (2) à l'instant défini par le signal de synchronisation; c) on transmet la valeur du signal de temps de l'unité maître (1) à 15 l'instant défini par le signal de synchronisation; d) on détermine dans chaque unité esclave (2) une différence de temps représentant la différence entre la valeur du signal de temps enregistrée dans l'étape b) et la valeur du signal de temps transmise dans l'étape c) et on corrige le générateur de signal de temps (7) de 20 l'unité esclave (2) en fonction de la différence de temps ainsi obtenue. 2 ) Procédé selon la revendication 1, caractérisé en ce que les générateurs de signal de temps (7) sont des compteurs numériques incrémentés ou décrémentés périodiquement par un signal de cadence et les valeurs de signal de temps correspondent chaque fois aux états de comptage de ces compteurs. 3 ) Procédé selon la revendication 2, caractérisé en ce que dans l'étape d) on forme la différence entre l'état de comptage transmis dans l'étape c) et l'état de comptage enregistré dans l'étape b) et on ajoute cette différence à l'état de comptage enregistré dans l'étape b). 35 4 ) Procédé selon la revendication 2 ou 3, caractérisé en ce que dans chaque unité on génère le signal de cadence par le générateur de cadence local (5) de cette unité. 5 ) Procédé selon l'une des revendications précédentes, caractérisé en ce que on génère le signal de synchronisation (SYNC) par l'unité maître (1). 6 ) Procédé selon la revendication 5, caractérisé en ce qu' on transmet différents types d'informations sur le bus (3) et un type d'informations est un ordre de synchronisation du générateur de signal de temps (7) d'au moins l'une des unités esclaves (2), et le signal de synchronisation (SYNC) est un modèle transmis de manière identique dans chaque ordre de synchronisation. 15 7 ) Procédé selon la revendication 6, caractérisé en ce que le modèle est transmis dans chaque information transmise par le bus (3). 8 ) Procédé selon la revendication 7, caractérisé en ce que le signal de synchronisation (SYNC) est une séquence initiale commune à toutes les informations. 9 ) Procédé selon l'une des revendications 6 à 8, caractérisé en ce que le signal de synchronisation (SYNC) et la valeur du signal de temps (N) de l'unité maître (1) à l'instant défini par le signal de synchronisation (SYNC) sont transmis dans une même information. 30 10 ) Réseau comportant un ensemble d'unités de traitement de données parmi lesquelles il y a une unité maître (1) et au moins une unité esclave (2), ces unités ayant chacune un générateur de signal de temps (7) pour fournir un signal de temps dont la valeur représente le temps écoulé à 35 partir d'un instant 0, en étant reliées par un bus (3), l'unité maître (1) dispose d'une installation pour émettre un signal de synchronisation (SYNC) défini à un instant, notamment pour exécuter le procédé selon l'une des revendications 1 à 9, 1l caractérisé en ce que l'unité maître (1) comprend en outre une installation (8) pour saisir la valeur de son signal de temps à l'instant défini par le signal de synchronisation (SYNC) et d'une installation (9) pour introduire cette valeur dans une 5 information transmise par le bus (3), et chaque unité esclave (2) comporte des installations pour enregistrer (8) la valeur de leur signal de temps à l'instant défini par le signal de synchronisation, pour déterminer (14) une différence de temps correspondant à la différence entre la valeur reçue de l'unité maître (1) et la valeur enregistrée du signal de temps et pour adap10 ter (15) son propre générateur de signal de temps (7) à cette différence de temps. 110) Réseau selon la revendication 10, caractérisé en ce que le bus est un bus LIN (3). 12 ) Réseau selon la revendication 10 ou 11, caractérisé en ce qu' il est intégré dans un véhicule automobile. 20