Brevet FR2785402A1 — publié le 20000505

La présente invention concerne un procédé destiné à synchroniser des unités de calcul reliées entre elles par un système de bus. Dans la technique de mesure, de régulation et de commande, on met souvent en oeuvre des système de calculateurs disposant d'une multiplicité d'unités de calcul, reliées entre elles par un système de bus. En particulier dans le cas d'applications en technique automobile, par exemple dans le cas d'un système de freinage électromécanique, une boucle de régulation doit être réalisée au moyen d'un système de bus. Pour cela, dans le cas d'une transmission en série des données, toutes les unités de calcul doivent présenter une base de temps commune. Par DE 41 40 017 C2, on connaît un système de bus comportant un échange en série de données entre unités de calcul communiquant entre elles. Les unités de calcul présentent chacune leur propre système d'horloge. Par l'intermédiaire du bus de données, des information de temps sont échangées et mises en mémoire. Une base de temps commune pour les unités de calcul est créée par le fait que les valeurs de temps des bases de temps locales sont chaque fois recalculées dans la base de temps commune, en prenant en compte des retards entre un retard de signal de données et son traitement. Une unité de calcul réceptrice peut ensuite recalculer la valeur de temps transmise, de la base de temps commune, dans sa base de temps locale. Il n'y a donc pas d'horloge centrale pour les différentes unités de calcul. Il est connu d'effectuer une synchronisation au moyen d'un message envoyé sur le bus, l'instant d'entrée de ce message permettant à l'unité de calcul réceptrice de se synchroniser sur l'émetteur. La résolution temporelle de ce procédé est du même ordre de grandeur que la durée de transmission de l'information. Cet ordre de grandeur est, par exemple pour un bus CAN, d'environ microsecondes pour 500 kbits/seconde. Si une information subit un retard inattendu, une information comportant une haute priorité peut également être retardée de façon importante. En technique automobile, cela n'est pas admissible dans le cas d'applications mettant en oeuvre des techniques de sécurité. Un autre problème est constitué par le fait que toutes les unités de calcul recevant le message de synchronisation se synchronisent sur l'émetteur, même si celui-ci émet un signal défectueux. Un des buts de l'invention est de mettre à disposition un procédé destiné à synchroniser entre elles des unités de calcul reliées par un système de bus, par lequel s'effectue une synchronisation particulièrement fiable des unités de calcul. Ce but est atteint avec un procédé du type indiqué ci-dessus, qui est caractérisé en ce que, pour synchroniser entre elles des unités de calcul reliées par un système de bus, il comporte les étapes suivantes: - une première unité-maître envoie de façon cyclique un premier signal de temps sur un conducteur de données du système de bus, - une deuxième unité-maître envoie de façon cyclique un deuxième signal de temps sur un conducteur de données, le deuxième signal de temps étant défini dans un rapport de phases déterminé par rapport au premier signal de temps, - les unités de calcul à synchroniser, qui présentent chaque fois une base de temps qui se tient dans un rapport de phases déterminé par rapport aux signaux de temps, reçoivent les signaux de temps et contrôlent qu'ils sont en concordance avec leur propre base de temps. Selon d'autres caractéristiques avantageuses de l'invention: - les unités-maîtres émettent leurs signaux de temps sur des conducteurs de données séparés, et cela essentiellement au même temps d'horloge et simultanément; - chaque unité-maître reçoit sur l'un des conducteurs de données le signal de temps de l'autre unité-maître, pour contrôler, l'un par rapport à l'autre, le rapport de phases des signaux de temps; - les unités-maîtres alignent le rapport de phases de leurs signaux de temps, si un écart du rapport de phases prédéterminé ne dépasse pas une plage définie; - une annonce de défaut est faite si les rapports de phases entre les signaux de temps, ou le rapport de phases entre une base de temps de l'une des unités de calcul et au moins l'un des signaux de temps dépassent un écart défini; - en cas de dépassement de l'écart défini entre les signaux de temps, l'unité de calcul concernée émet un signal vers l'unité-maître correspondante. - une unité de calcul synchronise sa base de temps avec les signaux de temps, étant entendu que, pour la synchronisation, un signal de temps ou la base de temps n'est pas pris en compte, si un écart défini par rapport aux deux autres signaux est dépassé; - une unité de calcul synchronise sa base de temps en prenant en compte les signaux de temps et sa propre base de temps, tandis que le signal comportant le plus grand écart avec les autres signaux est le moins pris en compte; - les signaux de temps sont corrigés en prenant en compte leur durée de transmission dans chaque unité de calcul réceptrice concernée et/ou dans chaque unité- maître réceptrice concernée; - le système de bus est un bus CAN. Comme deux unités-maîtres émettent de façon cyclique des signaux de temps vers les unités de calcul, une unité de calcul recevant un signal peut déterminer, en cas d'écart par rapport à sa propre base de temps, si le défaut provient de sa propre base de temps ou de l'une des unités- maîtres émettrices. Chaque unité de calcul dispose donc de trois signaux de synchronisation dans le cas d'un fonctionnement sans défaut. On obtient une sécurité particulièrement élevée si les unités de calcul envoient leurs signaux de temps sur des conducteurs de bus différents. Pour le cas o un conducteur est défectueux, une synchronisation des unités de calcul peut se faire au moyen du deuxième conducteur, par la deuxième unité-maître. Un tel deuxième conducteur est de toute manière souvent exigé, en technique automobile, pour des raisons de sécurité, pour disposer de deux canaux redondants pour la transmission de données. Avantageusement, chaque unité- maître reçoit le signal de temps de l'autre unité-maître, pour contrôler le rapport de phases des signaux de temps entre eux. Si un écart du rapport de phase prédéfini est constaté, un alignement peut alors être effectué. En cas d'utilisation de conducteurs de bus différents pour l'émission des signaux de temps, il est avantageux que les unités- maîtres émettent leurs signaux de temps au même temps d'horloge et sans décalage de phases l'une par rapport à l'autre. Pour synchroniser dans le temps les unités de calcul et leurs bases de temps avec les signaux de temps des unités-maîtres, il s'offre plusieurs possibilités. On préfère particulièrement, dans ce cas, qu'une unité de calcul utilise, à partir des signaux de temps reçus des unités-maîtres et de leur propres bases de temps, pour la synchronisation, seulement les signaux qui ne dépassent pas un écart défini par rapport aux deux autre signaux. L'unité de calcul peut alors soit se synchroniser sur la valeur moyenne des deux signaux se rapprochant le plus étroitement possible l'un de l'autre, soit former une valeur moyenne à partir de l'ensemble des trois signaux de synchronisation, pour autant qu'il n'y ait pas d'écart inacceptable d'un des signaux. En variante, le temps de synchronisation peut toujours être calculé à partir de l'ensemble des trois signaux de synchronisation si, chaque fois, est effectuée une pondération d'un signal de synchronisation en fonction de la différence de temps par rapport aux deux autres signaux de synchronisation, ou par rapport à une valeur moyenne non pondérée. Bien que l'on préfère tout particulièrement un système comportant seulement deux unités-maîtres émettant des signaux de temps, l'invention peut également être réalisée avec des unités-maîtres supplémentaires. Une des unités de calcul ou des unités-maîtres raccordées au système de bus peut être une unité de commande centrale. Pour des raisons de sécurité, plusieurs unités de commande centrales peuvent aussi être reliées au système de bus, en particulier avec des conducteurs de données différents. Les avantages de l'invention se font sentir de façon particulièrement prononcée dans des systèmes de bus comportant une transmission de données en série. D'autres caractéristiques et avantages de l'invention ressortent de la description qui va suivre d'un exemple d'exécution avec référence au dessin. La figure unique représente deux bus CAN, auxquels sont raccordées des unités-maîtres et des unités de calcul. Deux unités-maîtres 11 et 21, ainsi que des unités de calcul 121, 122, 123 et 124, qui peuvent être des microcontrôleurs, sont chacune reliées à un conducteur de données 1 d'un premier bus CAN et à un conducteur de données 2 d'un deuxième bus CAN. L'unité-maître 11 est, de plus, conçue pour fonctionner en unité centrale de commande, qui commande les unités de calcul 121 à 124. L'unité de commande centrale commande le freinage d'un véhicule automobile. Chacune des unités de calcul 121 à 124 possède, pour produire un signal de synchronisation, sa propre base de temps T tel qu'un oscillateur. Chaque unité de calcul 121 à 124 est reliée à une autre unité de calcul, non représentée, qui sert à commander localement un système installé sur un véhicule automobile, par exemple un frein électromécanique, et à enregistrer et à émettre, sur le système de bus, des valeurs de mesure. Les unités de calcul 121 à 124 travaillent, dans le cas de cet exemple d'exécution, simplement comme un contrôleur de bus, bien qu'elles puissent prendre également en charge des fonctions de commande du système. Au démarrage du système, les deux unités-maîtres 11 et 21 sont synchronisées l'une avec l'autre, pour servir de maître-temps pour le système de bus. Pour cela, l'une des deux unités-maîtres émet un signal de temps Tl comme maître. L'autre unité-maître fonctionne, pendant cette phase d'initialisation, comme esclave et se synchronise sur le signal de temps Tl prédéfini. Si l'unité-maître 11, fonctionnant comme esclave dans la phase de démarrage, reconnaît plusieurs fois, successivement, un signal de temps Tl comme défectueux, elle émet une information vers l'unité-maître correspondante. Seulement si le signal de temps T1 de l'unité-maître 11 ne dépasse pas une différence de phase définie, donc se trouve à l'intérieur d'une plage d'acquisition, l'unité-maître, travaillant en esclave, se synchronise sur le signal de temps Tl. Dans le cas contraire, l'opération de synchronisation est répétée. Dans ce cas, l'unité-maître travaillant antérieurement comme maître-temps, peut assumer le râle d'esclave. S'il se produit une synchronisation sans défaut des deux unités-maîtres 11 et 21, la précision de la synchronisation entre les deux unités est limitée aux oscillations qui se produisent au cours du temps de parcours d'informations comportant le niveau de priorité le plus élevé. S'il se présente des défauts limités dans le temps, qui ne s'ajoutent pas, par exemple un retard de l'un des deux signaux de temps T1 ou T2, cela est toléré par une plage d'acquisition. Si toutefois cette plage d'acquisition est dépassée, la phase de démarrage, pour laquelle l'une des deux unités-maîtres fonctionne en esclave, doit être répétée. S'il apparaît des différences essentielles entre les mesures de temps des deux unités-maîtres, on renonce à une nouvelle synchronisation des unités-maîtres. Cela est détecté par les unités de calcul 121 à 124. Les unités de calcul se synchronisent, dans ce cas, sur l'unité de calcul travaillant encore correctement. Après que la phase de démarrage se soit terminée avec succès, l'unitémaître 11 émet de façon cyclique le signal de temps T1 comme signal de synchronisation vers toutes les unités de calcul, ou noeuds, reliés au conducteur de données 1. De même, l'unité-maître 21 émet de façon cyclique, au même temps d'horloge, le signal de temps T2 vers toutes les unités de calcul 121 à 124. Pour garantir que ces signaux de temps soient transmis ils présentent la priorité la plus élevée. Dans le cas des unités de calcul, il apparaît, à chaque synchronisation, trois temps différents, c'est-à- dire le temps d'arrivée du signal de temps Tl de l'unité- maître 11 sur le conducteur 1, le temps d'arrivée du signal de temps T2 sur le conducteur de données 2, et un temps de synchronisation local, prédéfini par chaque base de temps T concernée. Quand le réseau est synchronisé, c'est-à-dire après achèvement de la phase de démarrage non synchronisée, ces trois temps doivent être sensiblement les mêmes, car les deux unités-maîtres et chacune des unités de calcul concernées doivent avoir mesuré, depuis le dernier cycle (dernier temps de synchronisation), la même durée à l'intérieur d'une zone de tolérance (plage d'acquisition). Si la mesure de temps d'une unité-maître ou d'une unité de calcul est défectueuse, cela peut chaque fois être déterminé par les unités de calcul en comparant les temps d'arrivée des signaux de temps Tl et T2 au temps local de synchronisation de la base de temps T. Chaque unité de calcul concernée, choisit, à partir des trois possibilités de synchronisation connues (signal de temps Tl, signal de temps T2 et base de temps T), celles qui coïncident chronologiquement le plus étroitement entre elles, et elle se synchronise sur leur valeur moyenne. Dans ce cas, il n'est pas absolument nécessaire de prévoir une plage de tolérance ou une plage d'acquisition. En variante, chaque unité de calcul concernée peut être synchronisée sur la valeur moyenne de l'ensemble des trois temps de synchronisation. Dans ce cas, une plage de tolérance, ou plage d'acquisition, est nécessaire pour extraire un signal de synchronisation défectueux provenant de l'une des trois sources. Pour les unités de calcul 121 à 124, la possibilité de synchroniser est perdue seulement si au moins deux sources de signaux de synchronisation (unité-maître 11, unité-maître 21, bases de temps correspondantes) font défaut. On peut donc parler d'une synchronisation dans le temps qui est à l'abri des défaillances. La synchronisation des unités de calcul est réalisée de façon particulièrement précise si les temps d'arrivée des signaux de temps T1 et T2 sont chaque fois corrigés de leur durée de transmission. REVENDICATIONS 1. Procédé pour synchroniser entre elles des unités de calcul (121; 122; 123; 124) reliées par un système de bus (1, 2), comportant les étapes suivantes: - une première unité-maître (11) envoie de façon cyclique un premier signal de temps (T1) sur un conducteur de données (1; 2) du système de bus (1, 2), - une deuxième unité-maître (21) envoie de façon cyclique un deuxième signal de temps (T2) sur un conducteur de données (1; 2), le deuxième signal de temps (T2) étant défini dans un rapport de phase déterminé par rapport au premier signal de temps (T1), - les unités de calcul à synchroniser (121; 122; 123; 124), qui présentent chacune une base de temps (T) qui se tient dans un rapport de phase déterminé par rapport aux signaux de temps (T1; T2), reçoivent les signaux de temps (Tl; T2) et contrôlent qu'ils sont en concordance avec leur propre base de temps (T). 2. Procédé suivant la revendication 1, caractérisé en ce que les unités-maîtres (11; 21) émettent leurs signaux de temps sur des conducteurs de données séparés (1; 2). 3. Procédé suivant la revendication 2, caractérisé en ce que les unités-maîtres (11; 21) émettent leurs signaux de temps (T1; T2) essentiellement au même temps d'horloge et simultanément. 4. Procédé suivant l'une quelconque des revendications précédentes, caractérisé en ce que chaque unité-maître (11; 21) reçoit sur l'un des conducteurs de données (1; 2) le signal de temps (Tl; T2) de l'autre unité-maître (21; 11), pour contrôler l'un par rapport à l'autre le rapport de phases des signaux de temps (T1; T2). 5. Procédé suivant la revendication 4, caractérisé en ce que les unités-maîtres (11; 21) alignent le rapport de phases de leurs signaux de temps (Tl; T2), si un écart du rapport de phase prédéterminé ne dépasse pas une plage définie. 6. Procédé suivant l'une quelconque des revendications précédentes, caractérisé en ce qu'une annonce de défaut est faite si les rapports de phases entre les signaux de temps (T1; T2), ou le rapport de phases entre une base de temps (T) de l'une des unités de calcul (121; 122; 123; 124) et au moins l'un des signaux de temps (T1; T2), dépassent un écart défini. 7. Procédé suivant la revendication 6, caractérisé en ce qu'en cas de dépassement de l'écart défini entre les signaux de temps (Tl; T2), l'unité de calcul (121; 122; 123; 124) émet un signal vers l'unité- maître (11; 21) concernée. 8. Procédé suivant l'une quelconque des revendications précédentes, caractérisé en ce qu'une unité de calcul (121; 122; 123; 124) synchronise sa base de temps (T) avec les signaux de temps (T1; T2), étant entendu que, pour la synchronisation, un signal de temps (T1; T2) ou la base de temps (T) n'est pas pris en compte si un écart défini par rapport aux deux autres signaux (T1; T2; T) est dépassé. 9. Procédé suivant l'une quelconque des revendications précédentes, caractérisé en ce qu'une unité de calcul (121; 122; 123; 124) synchronise sa base de temps (T) en prenant en compte les signaux de temps (T1; T2) et sa propre base de temps (T), le signal (Tl; T2; T) comportant le plus grand écart par rapport aux autres signaux (T1; T2; T) étant le moins pris en compte 10. Procédé suivant l'une quelconque des revendications précédentes, caractérisé en ce que les signaux de temps (T1; T2; T) sont corrigés en prenant en compte leur durée de transmission dans chaque unité de calcul réceptrice concernée (121; 122; 123; 124) et/ou dans chaque unité-maître réceptrice concernée (11; 21). il 11. Procédé suivant l'une des revendications précédentes, caractérisé en ce que le système de bus est un bus CAN.