FR 2572204 A1 19860425 FR 8515600 A 19851021 Programme de détection de pannes à verrouillage et à combinaison aléa- toire de données pour systèmes gérés par microprocesseurs. La présente invention se rapporte à des systèmes de commande électrique et elle concerne plus particulièrement des programmes de détection de pannes pour systèmes gérés par microprocesseur. Lorsqu'une panne dans un système électrique risque de mettre en danger extrême la vie ou des biens, il est essentiel que le système soit étroitement surveillé. Toute panne du système ou de l'unité de commande doit avoir pour résultat une action corrective immédiate. Diverses techniques sont disponibles lorsqu'on conçoit un système élec- trique qui comporte des fonctions de commande hautement fiables. Ces techniques comprennent des circuits logiques de secours, des programmes de scrutation et des techniques spéciales de traitement des données. Il est important que les systèmes gérés par microprocesseurs, utilisés dans des applications critiques de commande, comprennent cer- tains moyens de détection des pannes des microprocesseurs et des péri- phériques afin d'empêcher toute détérioration due à des pannes du sys- tème. Des programmes de détection de pannes sont utilisés pour forcer les sorties du système à passer à des états prédéterminés ou pour empê- cher tout changement des sorties du système après la détection d'une panne. Il est souhaitable de mettre en place un programme de détection de pannes qui teste convenablement le microprocesseur et, en même temps, n'ajoute pas une charge inutile de matériel ou de logiciel au système géré. Le brevet n 4 409 635, délivré le 11 octobre 1983, décrit un programme de détection de pannes de microprocesseur. Le programme décrit dans ce brevet nécessite la consultation par le microprocesseur d'une mémoire morte à combinaison fixe de données afin de lancer des programmes d'essai automatique. Les données résultantes d'essai automa- tique sont introduites dans un comparateur en même temps que la sortie correcte de la mémoire morte d'essai automatique. Si la sortie de don- nées du microprocesseur correspond à la sortie de la mémoire morte, la sortie du comparateur est au niveau "un" logique. Une sortie correcte déclenche une bascule monostable afin de faire progresser un compteur qui choisit dans la mémoire morte un autre programme d'essai automati- que à exécuter par le microprocesseur. Pendant que le microprocesseur exécute ce programme d'essai automatique, la sortie du comparateur est au niveau "zéro" puisque les données précédemment verrouillées ne sont pas égales aux nouvelles données de la mémoire morte. Lorsque le systé- me est en fonctionnement normal, la sortie du comparateur est une onde carrée. Cette onde carrée est ensuite amplifiée, filtrée et redressée pour mettre en service une porte ET qui permet la gestion du système par le microprocesseur. Si une partie quelconque du système géré par le microprocesseur tombe en panne, l'onde carrée du comparateur est perdue et le microprocesseur ne gère plus le système. La description du brevet n 4 409 635 est incorporée à la présente demande à titre de réfé- rence. Bien que le programme décrit de détection de pannes suivant l'art antérieur teste convenablement le système géré par microproces- seur et écarte le microprocesseur de la gestion du système lorsque sur- vient une panne, le matériel et le temps-système associés au programme sont excessifs. Ce circuit nécessite une mémoire morte spécialisée, un comparateur, un générateur d'impulsion monostable, un compteur binaire, un amplificateur, un filtre passe-bande et un redresseur biphasé afin d'exécuter le programme de détection de pannes. Il est donc souhaitable de mettre au point un programme de détection de pannes qui puisse être exécuté avec un plus petit nombre de composants machines. L'objet principal de la présente invention est de fournir une technique de verrouillage et de combinaison aléatoire de données pour réaliser un programme de détection de défauts dans un système géré par microprocesseur. En vue de réaliser cet objet, la présente invention réside dans une unité de commande électronique pour détecter les pannes dans un système géré par microprocesseur, cette unité de commande étant carac- térisée en ce qu'elle comprend un moyen formant mémoire prévu pour recevoir en entrée un mot contenant des données aléatoires et constitué d'une pluralité de bits; un processeur de données prévu pour recevoir en entrée ce mot contenant des données aléatoires venant du moyen for- mant mémoire et prévu pour transférer des données de sortie aux autres composants de l'unité de commande, ce processeur de données étant en outre prévu pour extraire le mot contenant des données aléatoires, mémorisé dans le moyen formant mémoire, pour réintroduire dans le moyen formant mémoire ce mot contenant des données aléatoires et également pour effectuer une série d'essais automatiques et sortir ensuite un premier mot contenant des données et ayant une relation particulière avec ce mot contenant des données aléatoires; un premier circuit prévu pour combiner le premier mot contenant des données avec le mot conte- nant des données aléatoires afin de créer un deuxième mot prédéterminé contenant des données lorsque le processeur de données fonctionne correctement; et un second circuit prévu pour produire un signal de déverrouillage en réponse à la création de ce deuxième mot prédéterminé contenant des données. La présente invention sera bien comprise à la lecture de la description suivante faite en relation avec les dessins ci-joints, dans lesquels: - la figure 1 est un schéma logique d'une unité de commande construite conformément à un exemple de réalisation de la présente invention; - la figure 2 est un organigramme qui illustre le fonctionne- ment de l'unité de commande suivant la présente invention; - la figure 3 est un schéma de principe d'une unité de commande 4 bits construite conformément à la présente invention; - la figure 4 est un schéma de principe d'une unité de commande 8 bits construite conformément à la présente invention; - la figure 5 est une série de formes d'onde qui illustrent le fonctionnement du circuit de la figure 3; et - la figure 6 est un schéma de principe d'un groupe électrogène qui comprend l'unité de commande suivant la présente invention. On se reportera maintenant aux figures. La figure 1 est un schéma logique d'une unité de commande électronique construite confor- mément à un exemple de réalisation de la présente invention. Des signaux aléatoires existants 10 servent de signaux d'entrée pour créer un mot contenant des données aléatoires et constitué d'une pluralité de bits. Ce mot contenant des données aléatoires est ensuite mémorisé dans, un registre 12 à décalage. Un système 14 géré par microprocesseur sert de processeur de données du système et est connecté pour extraire le mot contenant des données, stocké dans le registre 12 à décalage, par la ligne 16 de données. Après lecture du mot contenant des données, le système 14 géré par microprocesseur envoie le même mot contenant des données aléatoires dans la ligne 18 de données afin de le réintroduire dans le registre 12 à décalage. Le système géré par microprocesseur conduit ensuite une série d'essais automatiques et envoie ensuite dans la ligne 18 de données un premier mot contenant des données et ayant une relation particulière avec le mot contenant des données aléatoires. Une porte OU exclusif 20 sert de moyen pour combiner le premier mot contenant des données avec le mot contenant des données aléatoires. Le premier mot contenant des données est relié au mot contenant des don- nées aléatoires, de telle sorte qu'un deuxième mot prédéterminé conte- nant des données est formé aux sorties du registre 12 à décalage. Apres l'achèvement des programmes d'essai automatique du système géré par microprocesseur, le deuxième mot contenant des données est envoyé aux entrées du comparateur 22 et une sortie d'échantillonnage est produite par le système géré par microprocesseur et est envoyée dans la ligne 24 de données. Si le deuxième mot contenant des données est correct, le comparateur envoie un signal de déverrouillage dans la ligne 26 de don- nées. Une horloge 28 de sécurité reçoit le signal de déverrouillage par la ligne 30 de données et maintient un niveau logique prédéterminé dans la ligne 32 de données lorsque le temps entre signaux successifs de déverrouillage ne dépasse pas une temps présélectionné de panne. Le signal de déverrouillage est envoyé à un circuit 34 de verrouillage des données, qui sert de moyen de gestion du système électrique associé, par l'intermédiaire des lignes respectives d'entrée et de sortie 36 et 38. Le circuit 34 de verrouillage des données peut comprendre un cir- cuit d'interface tel qu'il s'en trouve aux figures 4, 5 et 6 du brevet n 4 409 635. Une caractéristique inédite des unités de commande suivant la présente invention réside dans le fait qu'une combinaison aléatoire de données, en ce qui concerne l'horloge du système géré par microproces- seur, est utilisée comme combinaison nécessaire pour déverrouiller le circuit de verrouillage. L'utilisation d'une combinaison aléatoire assure que le microprocesseur est opérationnel car un mot contenant des données à clé fixe, c'est-à-dire le premier mot contenant des données, ne déverrouillera pas le circuit de verrouillage et ne modifiera pas l'état du système de manière uniforme. L'horloge 28 de sécurité est incorporée pour que l'absence d'apparition de signaux consécutifs de déverrouillage ait pour conséquence d'envoyer un signal de blocage dans la ligne 32 de données, afin d'empêcher que le circuit 34 de verrouil- lage des données n'accepte de nouvelles données. On doit bien noter que le programme à combinaison aléatoire peut être exécuté sur des machines ne comportant que deux circuits intégrés communs. La figure 2 est un organigramme qui illustre le fonctionnement du circuit de la figure 1. La case 40 de début marque lVinitialisation du programme de verrouillage. Les entrées de la combinaison aléatoire sont verrouillées dans le registre à décalage comme le représente la case 42, la porte OU exclusif 20 éeant positionnée pour des données non complémentées. La case 44 montre que le mot contenant des données aléa- toires venant du registre à décalage est lu par le système géré par microprocesseur tout en étant, en même temps, réintroduit dans le registre à décalage par la ligne 18 de données, au fur et à mesure de sa lecture. Le système géré par microprocesseur met ensuite en oeuvre une série de programmes d'essai automatique et envoie au registre à décalage un premier mot contenant des données et un train d'impulsions d'horloge. Le logiciel du système géré par microprocesseur détermine, pour chaque bit de la combinaison de sortie, si les données envoyées à l'entrée du registre à décalage doivent être complémentées ou laissées telles quelles par la porte OU exclusif afin de placer par décalage un "un" logique a la sortie du premier étageo Dans l'exemple préféré de réalisation, si le bit d'information mémorisé est un "zéro" logique, 1lentrée de la porte OU exclusif correspondant 2 la ligne 18 de données est mise à "un" logique, de sorte que les données du premier étage sont complémentées et la sortie du registre à décalage sera donc égale à "un" après une impulsion d'horloge. Si le bit d'information mémorisé est un "un" logique, l'entrée de la porte OU exclusif correspondant à la ligne 18 de données est mise à zéro, de sorte que les données du premier étage restent identiques et un "un" logique est introduit dans le premier étage. Chaque bit des données aléatoires mémorisées est ana- lysé de cette manière et le premier mot contenant des données apparaît sous la forme d'un flot de données produites dans la ligne 18 de don- nées par le système géré par microprocesseur. Chaque bit de ce premier mot contenant des données est réglé de telle sorte que l'entrée du registre à décalage prenne une valeur appropriée et que tous des "uns" logiques soient introduits par décalage dans le registre à décalage. Cette série de "uns" logiques représente alors un deuxième mot prédé- terminé contenant des données, qui est utilisé pour créer par la suite le signal de déverrouillage. Si le registre géré par microprocesseur fonctionne correctement comme l'indique la case 46 de la figure 2, l'algorithme aura alors pour résultat de remplir le registre à décalage par tous des "uns" logiques et le comparateur 22 sera mis en service. Si tous les essais automatiques supplémentaires effectués pen- dant le cycle précédent du programme indiquent un fonctionnement cor- rect des autres composants du microprocesseur, le deuxième mot propre contenant des données, qui dans ce cas est formé de tous les "uns" logiques, est fourni au comparateur 22, comme le montre la case 48 de la figure 2, et une impulsion de déverrouillage est produite par le microprocesseur comme le montre la case 50 de la figure 2. Si le micro- processeur a extrait la combinaison aléatoire originale, réintroduit cette combinaison aléatoire dans le registre et produit ensuite une clé aléatoire appropriée sous forme d'un flot de données en série qui remplit finalement le registre avec tous des "uns", un signal de déver- rouillage sera créé. Ce signal de déverrouillage permettra d'introduire l'état du système dans un circuit de verrouillage des données et de l'utiliser pour gérer le système. Si toutes les conditions ci-dessus n'ont pas été satsifaistes, le verrou reste fermé, l'état du système ne peut être modifié et l'horloge de sécurité ne-reçoit pas d'impulsion de remise à zéro. L'horloge de sécurité mesure ensuite le délai d'attente et empêche le circuit de verrouillage des données d'accepter d'autres signaux de déverrouillage. La figure 3 est un schéma de principe de l'exemple préféré de réalisation de la présente invention pour une combinaison aléatoire de 4 bits. Deux circuits intégrés seulement sont nécessaires pour la mise en oeuvre de la partie verrouillage du programme de détection de pan- nes. En fonctionnement, des données aléatoires sont introduites dans un registre 12 à décalage 4035 au moyen d'une ligne 54 de données d'entrée transmises en parallèle-série. Le système géré par microprocesseur lit la combinaison aléatoire de données dans le registre à décalage en envoyant des impulsions d'horloge au registre à décalage par la ligne 56 de données tout en introduisant des données venant de la sortie Q3 du registre à décalage. Une porte interne OU exclusif à la sortie Q3 est réglée pour des données non complémentées par envoi d'un signal d'entrée de complément à la base, égal à un "un" logique, dans la ligne 18 de données. Ceci permet de renvoyer par décalage la combinaison aléatoire inchangée dans le registre à décalage. Dès que la combinaison a été lue, le programme du microproces- seur contrôle le bit 3 de la combinaison en mémoire et envoie un signal non complémenté à l'entrée de complément à la base du registre à déca- lage. Puisque la sortie Q3 OU exclusif du registre à décalage est réin- jectée à l'entrée de série du registre, les données du bit 3 de la sortie OU exclusif auront pour résultat de décaler un "un" logique vers la sortie du premier étage du registre à décalage. Le bit 2 de la combinaison de données mise en mémoire est ensuite contrôlé et la sor- tie est de nouveau appliquée à l'entrée de complément à -la base du registre à décalage avant que l'impulsion d'horloge ne soit émise. Les bits 1 et O sont traités de la même manière. Si le système géré par microprocesseur fonctionne correctement à la fin du flot de données du mot-clé, le registre à décalage sera rempli avec tous des "uns. On notera que si la combinaison aléatoire originale n'a pas été renvoyée correctement par décalage au registre à décalage après avoir été lue, l'algorithme de OU exclusif et de déca- lage ne remplira pas le registre à décalage avec tous des "uns". Par conséquent, la sortie du registre à décalage ne sera pas égale au deuxième mot propre contenant des données. On notera également que, si les données envoyées à l'entrée de complément à la base du registre à décalage restent à un niveau haut ou bas, le registre à décalage ne sera pas rempli avec tous des "uns" à la fin du programme. Les sorties du registre à décalage sont connectées aux entrées d'un comparateur 22 à portes ET 4073. Apres que le microprocesseur a terminé le remplissage du registre à décalage, une impulsion de déver- rouillage est envoyée au comparateur 22 par la ligne 24 de données si tous les autres essais exécutés pendant le cycle du programme précédent n'indiquent aucune panne. Si le microprocesseur a réussi à remplir le registre à décala- ge avec tous des "uns", l'impulsion de déverrouillage créera un signal de déverrouillage dans la ligne 26 de données. Ce signal de dêverrouil- lage est utilisé par le circuit 34 de verrouillage pour introduire de nouvelles données du système et remettre à zéro l'horloge 28 de sécuri- té. Si le signal de déverrouillage n'est pas créé, l'état du système reste le même et l'horloge de sécurité mesure le délai d'attente afin d'indiquer qu'une panne s'est produite. L'horloge de sécurité est éga- lement utilisée comme entrée du circuit de verrouillage, de sorte qu'une panne du microprocesseur empêchera tout autre changement du cir- cuit de verrouillage des données. La figure 4 est un schéma de principe d'un exemple préféré de réalisation de la présente invention pour une combinaison aléatoire de 8 bits. Ce circuit utilise un registre 12 à décalage 4034, une porte 60 OU exclusif 4070 et deux réseaux de portes ET 4073 pour le compara- teur. La figure 5 est une série de formes d'onde qui illustrent le fonctionnement de l'unité de commande illustrée par le schéma de prin- cipe de la figure 3. La forme d'onde A est un signal de données appa- raissant dans la ligne 54 de données d'entrée transmises en parallèle- série du registre à décalage. La forme d'onde B représente le signal d'horloge dans la ligne 56 de données. Les formes d'onde C, D, E et F sont respectivement les bits de données d'entrée 1, I1, I2 et I3. L'entrée de complément à la base dans la ligne 18 de données est repré- sentée par la forme d'onde G. Les formes d'onde H, I, J et K represen- tent respectivement les sorties Q0o Q1. Q2 et Q3 du registre à décala- ge. La sortie de sélection dans la ligne 24 de données est représentée par la forme d'onde L et la forme d'onde M représente la sortie de déverrouillage dans la ligne 26 de données. La figure 6 représente un schéma de principe d'un groupe élec- trogène qui comprend des unités de commande construites conformément à la présente invention. Ce groupe électrogène comprend trois génératri- ces indépendantes 100, 102 et 104. Les unités 106, 108 et 110 de commande des génératrices et l'unité 112 de commande de l'alimentation des lignes surveillent le groupe et assurent l'alimentation de la ligne 114 de droite et de la ligne 116 de gauche dans les conditions normales et lorsqu'une panne se produit dans un circuit simple. Les contacteurs 118, 120 et 124 sont normalement fermés tandis que les contacteurs 120 et 126 sont normalement ouverts. Par consé- quent, dans les conditions normales, la génératrice 100 alimente la ligne 116 de gauche tandis que la génératrice 104 alimente la ligne 114 de droite. Chaque unité de commande de la figure 6 est construite confor- mément à la figure 1. L'unité 106 de commande surveille le fonctionne- ment de la génératrice 100 par l'intermédiaire de la ligne 128 de don- nées. Elle surveille également le câblage entre la terre et la ligne 116 de gauche en comparant le courant mesuré par les transformateurs , 132 et 134 d'intensité. Si les paramètres dans la ligne 128 de données révèlent une panne de la génératrice 100, ou si le courant mesuré par les transformateurs 130, 132 et 134 d'intensité n'est pas uniforme, ce qui indique une panne de câblage, ou si le programme d'essai automatique de l'unité 106 de commande découvre une panne de cette dernière, l'unité 106 de commande sera alors bloquée dans un état de sortie qui ouvrira le contacteur 118 et informera l'unité 112 de commande, par l'intermédiaire de la ligne 136 de données, qu'une panne s'est produite. L'unité 112 de commande répondra en fermant le contac- teur 122, de sorte que la génératrice 102 alimentera la ligne 116 de gauche. L'unité 108 de commande surveillera le fonctionnement de la génératrice 102 par l'intermédiaire de la ligne 138 de données. Le câblage entre la terre et la ligne 116 de gauche sera surveillé par l'unité 108 de commande par la mesure du courant au moyen des transfor- mateurs 140, 142 et 144 d'intensité. Une panne de la génératrice 102, de son câblage associé ou de l'unité 108 de commande aura pour consé- quence d'ouvrir le contacteur 124 et d'informer de la panne l'unité 112 de commande par l'intermédiaire de la ligne 146 de données. L'unité 110 de commande remplit des fonctions analogues à cel- les de l'unité 106 de commande, mais pour les circuits associés à la ligne 114 de droite. Le fonctionnement de la génératrice 104 est sur- veillé par l'intermédiaire de la ligne 148 de données et le câblage entre la terre et la ligne 114 de droite est surveillé par l'intermé- diaire des transformateurs 150, 152 et 154 d'intensité. Une panne de la génératrice 104 ou du câblage associé ou de l'unité 110 de commande aura pour conséquence de bloquer le contacteur 120 en position ouverte et d'informer de la panne l'unité 112 de commande par l'intermédiaire de la ligne 156 de données. L'unité 112 de commande répondra en fermant le contacteur 126, de sorte que la génératrice 102 pourra alimenter la ligne 114 de droite. L'unité 112 de commande surveille le courant par l'intermédiai- re des transformateurs 158 et 160 d'intensité afin de déterminer si le contacteur 122 ou 126 est fermé. Les transformateurs 162, 164 et 166 d'intensité sont surveillés en même temps et câblés de telle façon qu'une panne du câblage qui les connecte créera un signal à l'unité 112 de commande pour indiquer qu'une action corrective est nécessaire. La présente invention n'est pas limitée aux exemples de réali- sation qui viennent d'être décrits, elle est au contraire susceptible de variantes et de modifications qui apparaîtront à l'homme de l'art. IDENTIFICATION DES REFÉRENCES NUMERIQUES UTILISÉES SUR LES DESSINS LEGENDE REF N FIGURE SIGNAUX ALEATOIRES 10 1 SIGNAUX ALEATOIRES 10 3 GENERATEUR DE SIGNAUX ALEATOIRES 10 4 %, REGISTRE A DECALAGE 12 1 REGISTRE A DECALAGE 12 3 SYSTEME GERE PAR MICROPROCESSEUR 14 1 SYSTEME GERE PAR MICROPROCESSEUR 14 3 SYSTEME GERE PAR MICROPROCESSEUR 14 4 COMPARATEUR 22 1 HORLOGE DE SECURITE 28 1 HORLOGE DE SECURITE 28 3 CIRCUIT DE VERROUILLAGE DES DONNEES 34 1 CIRCUIT DE VERROUILLAGE 36 3 DEBUT 40 2 VERROUILLAGE DE LA COMBINAISON ALEATOIRE 42 2 ENTREE DE LA COMBINAISON ET REINTRODUCTION DANS LE REGISTRE A DECALAGE 44- 2 LES RESULTATS D'ESSAI AUTOMATIQUE SONT-ILS SATISFAISANTS 46 2 -, SORTIE DE LA CLE ALEATOIRE VERS LA PORTE OU EXCLUSIF 48 2 SORTIE D'UNE IMPULSION DE DEVERROUILLAGE 50 2 RETOUR AU PROGRAMME PRINCIPAL 52 2 UNITÉ DE COMMANDE DE GENERATRICE 106 6 UNITÉ DE COMMANDE DE GENERATRICE 108 6 UNITE DE COMMANDE DE GENERATRICE 110 6 UNITE DE COMMANDE D'ALIMENTATION 112 6 REVENDICATIONS 1. Unité de commande électronique pour détecter les pannes d'un système géré par microprocesseur, caractérisée-en ce qu'elle comprend un moyen (12) formant mémoire prévu pour recevoir en entrée un mot ! contenant des données aléatoires et constitué d'une pluralité de bits; un processeur (14) de données prévu pour recevoir en entrée ce mot contenant des données aléatoires venant du moyen (12) formant mémoire et prévu pour transférer des données de sortie aux autres composants de l'unité de commande, ce processeur (14) de données étant prévu en outre pour extraire le mot contenant des données aléatoires, mémorisé dans le moyen (12) formant mémoire, pour réintroduire dans le moyen (12) for- mant mémoire ce mot contenant des données aléatoires et également pour effectuer une série d'essais aléatoires et sortir ensuite un premier mot contenant des données et ayant une relation particulière avec le mot contenant des données aléatoires; un premier circuit (60) prévu pour combiner ce premier mot contenant des données avec le mot conte- nant des données aléatoires afin de créer un deuxième mot prédéterminé contenant des données lorsque le processeur (14) de données fonctionne correctement; et un deuxième circuit (22) prévu pour produire un signal de déverrouillage en réponse à la création de ce deuxième mot prédéterminé contenant des données. 2. Unité de commande électronique suivant la revendication 1, caractérisée en ce que des bits correspondants du premier mot contenant des données et du mot contenant des données aléatoires sont reliés de telle façon que, pour chaque bit du mot contenant des données aléatoi- res qui se trouve à un premier niveau logique, le bit correspondant du premier mot contenant des données se trouve au même niveau logique et que, pour chaque bit du mot contenant des données aléatoires qui se trouve à un deuxième niveau logique, le bit correspondant du premier mot contenant des données se trouve au niveau logique complémentaire. 3. Circuit de commande électronique suivant la revendication 1, caractérisé en ce que le processeur de données comprend une sortie de sélection et en ce que ce processeur de données crée une impulsion de sélection à la sortie de sélection suivant l'achèvement d'une série des essais automatiques. 4. Unité de commande électronique suivant la revendication 1, caractérisée en ce que le signal de déverrouillage est invalidé lorsque le deuxième mot prédéterminé contenant des données n'est pas créé dans un temps présélectionné suivant l'extraction, par le processeur de données, du mot contenant des données aléatoires. 5. Unité de commande électronique suivant la revendication 4, caractérisée en ce que le moyen d'invalidation est une horloge de sécu- rité. 6. Unité de commande électronique suivant la revendication 1, caractérisée en ce que le moyen formant mémoire est un registre à déca- lage. 7. Unité de commande électronique suivant la revendication 1, caractérisée en ce que le premier circuit est une porte OU exclusif. 8. Unité de commande électronique suivant la revendication 1, caractérisée en ce que le deuxième circuit est une porte ET.