Brevet FR2857111A1 — publié le 20050107

MICROCONTROLEUR A PROTECTION LOGIQUE CONTRE LES DECHARGES ELECTROSTATIQUES L'invention concerne une protection de microcontrôleur contre les décharges électrostatiques (aussi appelées ESD pour Electrostatic Discharge en anglais), et notamment un rnicrocontrôleur présentant une protection contre les décharges électrostatiques fonctionnelles. On désignera par décharge électrostatique fonctionnelle une décharge électrostatique modifiant le fonctionnement logique d'un module du microcontrôleur. II est connu dans l'état de la technique d'utiliser des microcontrôleurs comprenant des plots d'échange de signaux avec l'extérieur, et comprenant des modules fonctionnels reliés aux plots. Les modules fonctionnels comprennent des éléments, tels que des transistors, susceptibles d'être détériorés lors de l'application de décharges électrostatiques sur les plots. Un opérateur peut notamment se comporter électriquement comme un condensateur chargé d'environ 5 KiloVolts et appliquer une impulsion électrique durant quelques dizaines de nanosecondes. Il existe deux types de protection d'un microcontrôleur. La protection physique utilise des circuits intégrés aux ports d'entrée/sortie de modules du microcontrôleur. Ces circuits dissipent les décharges électrostatiques et évitent la destruction des modules. Ces circuits de protection comprennent classiquement deux diodes. Une diode est reliée en série entre le plot de sortie et une ligne d'alimentation VDD du module fonctionnel. L'autre diode est par ailleurs reliée en série entre le plot de sortie et une ligne de masse. Lorsque la tension appliquée sur le plot est supérieure à la somme de la tension VDD et de la tension de seuil de la diode correspondante, la diode est conductrice du plot vers la ligne d'alimentation. La diode court-circuite donc les décharges positives appliquées sur le plot. De façon similaire, lorsque la tension de la ligne de masse est supérieure à la somme de la tension du plot et de la tension de seuil de la diode correspondante, la diode est conductrice de la ligne de masse vers le plot. La diode court- circuite donc les décharges négatives appliquées sur le plot. Ce type de protection se révèle insuffisant pour garantir le bon fonctionnement logique ou la reprise automatique du fonctionnement logique dans le microcontrôleur. La protection logique consiste à protéger le microcontrôleur contre les décharges électrostatiques fonctionnelles. Cette protection est classiquement réalisée par un circuit du microcontrôleur détectant une instruction logique illégale dans le microprocesseur et générant une réinitialisation de l'ensemble du microcontrôleur lors d'une telle détection. Cependant, un tel circuit ne détecte qu'une proportion réduite des décharges électrostatiques existantes. Le détecteur ne prend ainsi pas en compte les défaillances de modules fonctionnels n'impliquant pas la génération d'une instruction logique illégale. Il existe donc un besoin, que l'invention vise à satisfaire, pour un 15 microcontrôleur résolvant ces inconvénients. L'invention concerne ainsi un microcontrôleur, comprenant: -un microprocesseur; - un circuit de réinitialisation du microprocesseur, générant sélectivement un signal de réinitialisation du microprocesseur; -comprenant en outre: - un dispositif de détection, présentant au moins une entrée de réception d'un signal logique vital du microcontrôleur, et une sortie appliquant une commande de réinitialisation sur le circuit de réinitialisation lors de la détection d'un changement d'état logique du signal vital. Selon une variante, le dispositif de détection comprend une bascule D présentant une entrée D alimentée par un signal stationnaire, une entrée d'horloge recevant le signal vital inversé, une entrée de réinitialisation recevant le signal de réinitialisation émis par le circuit de réinitialisation, et une sortie formant la sortie du dispositif. Selon encore une variante, le dispositif de détection comprend une porte OU présentant plusieurs entrées recevant des signaux vitaux respectifs et une sortie connectée à l'entrée d'horloge de la bascule D. Selon une autre variante, le microcontrôleur comprend en outre une 5 horloge de surveillance de fonctionnement du microprocesseur générant un signal vital appliqué à l'entrée du dispositif de détection dont l'état logique est changé à l'expiration d'une temporisation. Selon encore une autre variante, le microcontrôleur comprend en outre des modules logiques connectés au microprocesseur et réinitialisés par ledit signal de 10 réinitialisation. Selon une variante, un signal vital reçu par le circuit de détection est un signal de réinitialisation généré par un module logique. On peut encore prévoir que le microcontrôleur comprenne en outre: -au moins un module de détection d'instructions illégales du microprocesseur générant sélectivement un signal d'erreur sur sa sortie; - une porte OU présentant une entrée connectée à la sortie du dispositif de détection et au moins une entrée connectée à la sortie du module de détection d'instructions illégales. L'invention sera mieux comprise à la lecture de la description qui suit et à 20 l'examen des figures qui l'accompagnent. Les figures montrent: -figure 1, une représentation schématique d'un exemple de microcontrôleur selon l'invention; -figure 2, un chronogramme illustrant le fonctionnement d'une bascule D utilisée dans le microcontrôleur de la figure 1. L'invention propose de détecter la défaillance du microcontrôleur par la surveillance de ses signaux vitaux. On désignera par la suite par signal vital d'un microcontrôleur, un signal devant rester stationnaire en utilisation normale, en l'absence de commande de réinitialisation, un signal vital étant en outre distinct d'un signal de détection d'une instruction illégale. La figure 1 représente schématiquement un exemple de microcontrôleur selon l'invention. Un tel microcontrôleur 1 comprend un microprocesseur 2, un circuit de réinitialisation du microprocesseur 3 générant sélectivement un signal de réinitialisation du microprocesseur. Le microcontrôleur 1 comprend en outre un dispositif de détection 4, présentant au moins une entrée 5 de réception d'un signal logique vital du microcontrôleur, et une sortie 6 appliquant une commande de réinitialisation sur le circuit de réinitialisation 3 lors de la détection d'un changement d'état logique du signal logique vital. Un changement d'état d'un signal logique vital à l'entrée 5 est ainsi détecté par le dispositif de détection 4, qui génère une commande de réinitialisation appliquée sur le circuit de réinitialisation 3. Le circuit de réinitialisation 3 réinitialise alors les parties adéquates du microcontrôleur 1. On peut notamment prévoir que le circuit de réinitialisation 3 réinitialise le microprocesseur 2 ainsi que les différents modules fonctionnels du microcontrôleur 1. Le microcontrôleur 1 présente ainsi une protection accrue contre les décharges électrostatiques et est réinitialisé automatiquement par le circuit 3 pour 15 une plage accrue de défaillances possibles. Dans l'exemple représenté, le dispositif de détection comprend une bascule de type D, identifiée par la référence 7. Cette bascule 7 présente une entrée D référencée 71, alimentée par un signal stationnaire VDD, une entrée d'horloge 73 recevant le signal vital inversé issu de l'entrée 5, une entrée de réinitialisation 74 recevant le signal de réinitialisation émis par le circuit de réinitialisation 3 et une sortie 72 formant la sortie du dispositif 4. Comme représenté, le signal vital d'entrée est inversé par une porte NON 41. Bien entendu, l'inversion sur l'entrée d'horloge n'est que facultative, et dépend de l'état normal du signal de réinitialisation. Pour un signal vital au niveau 25 logique 0 en fonctionnement normal, on se dispense ainsi de l'inversion, afin d'obtenir un front montant sur l'entrée d'horloge 73. La figure 2 illustre un chronogramme de fonctionnement du microcontrôleur de la figure 1. Les chiffres dans la marge de gauche correspondent aux références des bornes de la bascule D. L'entrée 71 est alimentée par la tension stationnaire Vdd. Le signal vital est au niveau logique haut lors d'un fonctionnement normal. Le niveau logique sur l'entrée 73 est donc initialement à l'état bas, du fait de la porte NON. Le niveau logique sur la sortie 72 est initialement à l'état bas. En absence de changement de l'état sur l'entrée 73, le niveau logique haut de l'entrée 71 n'est pas recopié sur la sortie 72. A l'instant T, un signal vital subit un changement d'état, identifié par un front montant sur l'entrée d'horloge 73. La sortie 72 passe ainsi à l'état haut avec un léger retard du fait de ce front d'horloge montant. Le passage à l'état haut de la sortie 72 forme une commande de réinitialisation appliquée sur le circuit 3. Le circuit 3 génère alors avec un certain retard un signal de réinitialisation appliqué sur l'entrée 74. Le signal de réinitialisation étant par ailleurs appliqué sur d'autres modules du microcontrôleur, le signal vital change vers l'état haut; le signal sur la porte 73 passe donc à l'état bas. Ainsi, à l'instant T', la bascule D est opérationnelle pour détecter un nouveau changement d'état du signal vital. Le dispositif de détection 4 illustré comprend avantageusement une porte OU 42 présentant plusieurs entrées formant l'entrée du dispositif 4. Les entrées de la porte OU reçoivent des signaux vitaux respectifs. La sortie de la porte OU 42 est connectée à l'entrée d'horloge de la bascule D (en l'occurrence par l'intermédiaire de la porte NON 41). La porte OU 42 permet de traiter plusieurs signaux vitaux d'un microcontrôleur 1 par un même circuit de détection 4. Les signaux vitaux peuvent par exemple être des signaux de réinitialisation internes d'un ou plusieurs modules fonctionnels 8 du microcontrôleur 1, ou un signal de fin de temporisation généré par une horloge de surveillance du microprocesseur. On peut ainsi prévoir que des modules logiques 8 soient connectés au microprocesseur 2 et réinitialisés par le signal de réinitialisation du circuit 3. On peut aussi prévoir que le microcontrôleur comprenne une horloge de surveillance de fonctionnement du microprocesseur générant un signal vital appliqué à l'entrée du dispositif de détection. L'état logique de ce signal vital est changé à l'expiration d'une temporisation de l'horloge de surveillance. Le microprocesseur présente avantageusement de façon connue en soi un module de détection d'instructions illégales, reçues par exemple par le microprocesseur 2. Ce module génère sélectivement un ou plusieurs signaux d'instructions illégales sur sa sortie. Ces signaux d'instructions illégales sont dans l'exemple appliqués sur des entrées 44 d'une porte OU 43. Cette porte OU 43 présente une entrée supplémentaire connectée à la sortie du dispositif de détection ou de la bascule 7. La sortie de la porte OU 44 est appliquée à l'entrée du circuit de réinitialisation. Ainsi, le microcontrôleur 1 selon l'invention permet également de générer une commande de réinitialisation pour des signaux d'instructions illégales à partir d'un même circuit de réinitialisation 3. REVENDICATIONS 1. Microcontrôleur (1), comprenant: -un microprocesseur (2); -un circuit de réinitialisation du microprocesseur (3), générant sélectivement un signal de réinitialisation du microprocesseur (2); - caractérisé en ce qu'il comprend en outre: - un dispositif de détection (4), présentant au moins une entrée de réception lo (5) d'un signal logique vital du microcontrôleur, et une sortie (6) appliquant une commande de réinitialisation sur le circuit de réinitialisation lors de la détection d'un changement d'état logique du signal vital. 2. Microcontrôleur (1) selon la revendication 1, caractérisé en ce que le dispositif de détection comprend une bascule D (7), présentant une entrée D (71) alimentée par un signal stationnaire, une entrée d'horloge (73) recevant le signal vital, une entrée de réinitialisation (74) recevant le signal de réinitialisation émis par le circuit de réinitialisation, et une sortie (72) formant la sortie du dispositif. 3. Microcontrôleur (1) selon la revendication 2, caractérisé en ce que le dispositif de détection (4) comprend une porte OU (42) présentant plusieurs entrées recevant des signaux vitaux respectifs et une sortie connectée à l'entrée d'horloge de la bascule D. 4. Microcontrôleur (1) selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre une horloge de surveillance de fonctionnement du microprocesseur générant un signal vital appliqué à l'entrée du dispositif de détection dont l'état logique est changé à l'expiration d'une temporisation. 5. Microcontrôleur (1) selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre des modules logiques connectés au microprocesseur et réinitialisés par ledit signal de réinitialisation. 6. Microcontrôleur selon la revendication 5, caractérisé en ce qu'un signal vital reçu par le circuit de détection est un signal de réinitialisation généré par un module logique. 7. Microcontrôleur selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre: -au moins un module de détection d'instructions illégales du microprocesseur générant sélectivement un signal d'erreur sur sa sortie; - une porte OU présentant une entrée connectée à la sortie du dispositif de détection et au moins une entrée connectée à la sortie du module de détection d'instructions illégales.