FR 3052575 A1 20171215 FR 1655245 A 20160608 1 L'invention concerne le domaine de l'automobile et plus particulièrement un circuit de détection de défaillance pour un calculateur électronique. L'invention porte également sur un calculateur électronique comprenant le circuit de détection. Le développement de calculateurs électroniques dans le domaine automobile doit considérer de nombreuses contraintes de sécurité fonctionnelle telles que celles fixées par le standard ISO 26 262. Dans le cadre de ce standard, il est notamment requis de pouvoir détecter les défaillances dites systématiques (en anglais « systematic failures ») qui sont liées aux 10 erreurs de développement des modules logiciels des calculateurs (par exemple, blocage dans l'exécution d'une fonction, écrasement d'une partie d'un espace mémoire). Les exigences de ce standard s'appliquent particulièrement aux calculateurs électroniques impliqués dans la mise en oeuvre de fonctions dites critiques d'un véhicule automobile telles que les fonctions ABS, ESP, EPS, EPB ou Airbag. 15 Pour répondre à ces exigences, la demande de brevet EP 2 685 379 Al propose d'intégrer dans les calculateurs électroniques un microcontrôleur principal et un microcontrôleur de supervision qui sont adaptés pour se superviser mutuellement via une interface de communication de type bus. Cet agencement permet de détecter de nombreuses défaillances des fonctions critiques d'un véhicule automobile. 20 Toutefois, le document EP 2 685 379 Al n'envisage pas la configuration dans laquelle le microcontrôleur principal comprend au moins deux coeurs de microcontrôleur qui sont agencés pour exécuter en parallèle les mêmes instructions. Dans ce cas de figure, les défaillances systématiques ne peuvent être détectées par le microcontrôleur de supervision, car les deux coeurs du microcontrôleur principal 25 vont exécuter le même code de logiciel et donc produire les mêmes résultats. Le microcontrôleur de supervision ne peut donc pas déduire de défaillance liée à l'exécution du logiciel sur la base des résultats identiques produits par les deux coeurs de microcontrôleurs. En outre, les défaillances aléatoires dites « communes » ne peuvent pas non 30 plus être détectées par le microcontrôleur de supervision. Les défaillances aléatoires communes proviennent d'une panne commune à au moins deux éléments redondants du calculateur électronique, tels que les coeurs de microcontrôleur, les alimentations ou les horloges. Par exemple, lorsque le microcontrôleur principal comprend deux périphériques tels que des convertisseurs analogique/numérique (ci-après dénommés ADC), la 35 détection d'une défaillance des ADC peut être déduite de la comparaison des résultats produits par chacun des ADC. Or, généralement, les deux ADC, tout comme les deux 3052575 2 coeurs, possèdent la même alimentation, sont alimentés par la même horloge, et font souvent partie du même boîtier. Il peut alors arriver qu'une panne commune aux deux ADC, ou aux deux coeurs, puisse se produire de sorte que les résultats des ADC ne sont pas exploitables pour détecter une éventuelle défaillance. En effet, il peut tout à fait 5 se produire une défaillance due à une panne d'alimentation et/ou de l'horloge ou une panne résultant d'une décharge électrostatique (ESD) du boîtier comprenant les ADC et les coeurs. Le microcontrôleur de supervision ne peut donc pas déduire de défaillance aléatoire commune sur la base des résultats produits par les deux périphériques. Ceci n'est pas acceptable pour l'application considérée, car de nombreuses 10 défaillances critiques ne sont pas détectées. Pour cela, il est proposé un circuit de détection des défaillances d'un microcontrôleur principal comprenant au moins deux coeurs de microcontrôleur qui sont agencés pour exécuter en parallèle les mêmes instructions. A cet effet, un premier aspect de l'invention propose un circuit de détection de 15 défaillances pour un calculateur électronique automobile. Le circuit comprend : - un microcontrôleur principal comprenant, au moins deux coeurs de microcontrôleur configurés pour exécuter les mêmes instructions en parallèle, et au moins un premier module logiciel assurant une fonction critique d'un 20 véhicule automobile, le premier module logiciel comprenant un point d'entrée prédéterminé et un point de sortie prédéterminé, - un microcontrôleur de supervision, et - une interface de communication synchrone pour coupler le microcontrôleur principal et le microcontrôleur de supervision de manière à permettre une 25 supervision mutuelle. En outre, le circuit est remarquable en ce que : - le microcontrôleur de supervision est configuré pour fournir au microcontrôleur principal une première valeur d'initialisation et une deuxième valeur d'initialisation ; 30 - le microcontrôleur principal est configuré pour, en réponse à l'exécution du premier module logiciel : déterminer une première valeur de point d'entrée au niveau du point d'entrée prédéterminé du premier module logiciel, à partir de la première valeur d'initialisation et d'une valeur de début d'exécution indicative d'un 35 début d'exécution d'un module logiciel du microcontrôleur principal; déterminer une première valeur de point de sortie au niveau du point de sortie prédéterminé du premier module logiciel, à partir de la deuxième 3052575 3 valeur d'initialisation et d'une valeur de fin d'exécution et indicative d'une fin d'exécution d'un module logiciel du microcontrôleur principal ; déterminer une première valeur de résultat d'un calcul prédéterminé à partir de la première valeur de point d'entrée et de la première valeur de point de 5 sortie ; et fournir au microcontrôleur de supervision la première valeur de résultat. - le microcontrôleur de supervision est muni de moyens de comparaison pour réaliser une première comparaison entre la première valeur de résultat et une première valeur de résultat prédéterminée du calcul prédéterminé de sorte que le microcontrôleur de supervision puisse détecter une défaillance du microcontrôleur principal en réponse à la première comparaison. Ceci a l'avantage de pouvoir détecter les défaillances systématiques et aléatoires d'un microcontrôleur à double coeurs, et ce, afin d'être conforme au standard ISO 26 262. Dans une première mise en oeuvre, le calcul prédéterminé est un calcul 15 polynomial au moins du deuxième ordre. Ceci afin de s'assurer que les deux coeurs de microcontrôleur sont en capacité de réaliser des calculs corrects. Dans une deuxième mise en oeuvre : - le microcontrôleur principal comprend un deuxième module logiciel assurant une fonction critique du véhicule automobile, le deuxième module logiciel comprenant 20 un point d'entrée prédéterminé et un point de sortie prédéterminé, le microcontrôleur principal est en outre configuré pour, en réponse à l'exécution du deuxième module logiciel : - déterminer une deuxième valeur de point d'entrée au niveau du point d'entrée prédéterminé du deuxième module logiciel, à partir de la première 25 valeur de point d'entrée et de la valeur de début d'exécution, - déterminer une deuxième valeur de point de sortie au niveau du point de sortie prédéterminé du deuxième module logiciel, à partir de la première valeur de point de sortie et de la valeur de fin d'exécution, - déterminer une deuxième valeur de résultat du calcul prédéterminé à partir 30 de la deuxième valeur de point d'entrée et de la deuxième valeur de point de sortie, et - fournir au microcontrôleur de supervision la deuxième valeur de résultat. - les moyens de comparaison du microcontrôleur de supervision sont en outre configurés pour réaliser une deuxième comparaison entre la deuxième valeur de 35 résultat et une deuxième valeur de résultat prédéterminée du calcul prédéterminé de sorte que le microcontrôleur de supervision puisse détecter une défaillance du microcontrôleur principal en réponse à la deuxième comparaison. 3052575 4 Cette mise en oeuvre permet de détecter une défaillance dans l'exécution d'une chaîne de fonctions critiques. Dans une troisième mise en oeuvre : - le microcontrôleur de supervision est muni de moyens de mesure d'un temps qui 5 s'est écoulé entre la fourniture au microcontrôleur principal des premières et deuxièmes valeurs d'initialisation et la réception d'une valeur de résultat, et - les moyens de comparaison du microcontrôleur de supervision sont en outre configurés pour réaliser une troisième comparaison entre le temps ALLER-RETOUR et un temps ALLER-RETOUR prédéterminé, de sorte que le 10 microcontrôleur de supervision puisse détecter une défaillance du microcontrôleur principal en réponse à la troisième comparaison. Dans une quatrième mise en oeuvre : - le microcontrôleur principal est muni de moyens de mesure d'une période d'exécution d'un ou de plusieurs modules logiciels du microcontrôleur principal, et - les moyens de comparaison du microcontrôleur de supervision sont en outre configurés pour réaliser une quatrième comparaison entre la mesure de la période d'exécution transmise au microcontrôleur de supervision et une période d'exécution prédéterminée, de sorte que le microcontrôleur de supervision puisse détecter une défaillance du microcontrôleur principal en réponse à la quatrième comparaison. Dans une cinquième mise en oeuvre : - le microcontrôleur principal et le microcontrôleur de supervision comprennent, chacun indépendamment, une horloge de fonctionnement, - le microcontrôleur de supervision est en outre muni de moyens de génération d'horloge pour générer une horloge de fonctionnement de l'interface de communication à partir de l'horloge de fonctionnement et d'une valeur prédéterminée d'horloge de fonctionnement, et - le microcontrôleur principal est en outre muni : - de moyens de mesure de l'horloge de l'interface de communication, et - de moyens de comparaison pour réaliser une cinquième comparaison entre une mesure de l'horloge de fonctionnement de l'interface de communication par les moyens de mesure et la valeur prédéterminée d'horloge de fonctionnement, de sorte que le microcontrôleur principal puisse détecter une défaillance du microcontrôleur de supervision en réponse à la cinquième comparaison. Dans une sixième mise en oeuvre : 3052575 5 - le microcontrôleur principal est en outre muni de moyens pour générer périodiquement un signal d'initialisation indicatif de l'initialisation d'une communication via l'interface de communication à partir d'une valeur prédéterminée de périodicité, et 5 - le microcontrôleur de supervision est en outre muni de moyens de mesure de la périodicité du signal d'initialisation, les moyens de comparaison du microcontrôleur de supervision sont en outre configurés pour réaliser une sixième comparaison entre une mesure de la périodicité de la réception du signal d'initialisation par les moyens de mesure et la valeur prédéterminée de 10 périodicité, de sorte que le microcontrôleur de supervision puisse détecter une défaillance du microcontrôleur principal en réponse à la sixième comparaison. Dans une septième mise en oeuvre : - le microcontrôleur principal comprend une première unité d'alimentation et le microcontrôleur de supervision comprend une deuxième unité d'alimentation, la 15 première et la deuxième unité d'alimentation sont physiquement indépendantes l'une de l'autre, - le microcontrôleur principal et le microcontrôleur de supervision comprennent, chacun indépendamment, des moyens de mesure de tension, - le microcontrôleur principal est couplé à la deuxième unité d'alimentation et les 20 moyens de comparaison du microcontrôleur principal sont en outre configurés pour réaliser une septième comparaison entre une mesure de la tension de fonctionnement de la deuxième unité d'alimentation par les moyens de mesure et une première plage prédéterminée de tension de fonctionnement, de sorte que le microcontrôleur principal puisse détecter une défaillance du microcontrôleur de 25 supervision en réponse à la septième comparaison, et - le microcontrôleur de supervision est couplé à la première unité d'alimentation et les moyens de comparaison du microcontrôleur de supervision sont en outre configurés pour réaliser une huitième comparaison entre une mesure de la tension de fonctionnement de la première unité d'alimentation par les moyens de 30 mesure et une deuxième plage prédéterminée de tension de fonctionnement, de sorte que le microcontrôleur de supervision puisse détecter une défaillance du microcontrôleur principal en réponse à la huitième comparaison. Dans une huitième mise en oeuvre : - une interface d'actuateur est couplée au microcontrôleur principal et 35 au microcontrôleur de supervision, l'interface d'actuateur est configurée pour envoyer un signal d'actuation à un actuateur prévu pour être connecté au circuit de détection, 3052575 6 - le microcontrôleur principal et le microcontrôleur de supervision comprennent, chacun indépendamment, un convertisseur analogique/numérique configuré pour recevoir le même signal d'actuation, et 5 - les moyens de comparaison du microcontrôleur de supervision sont en outre configurés pour réaliser une neuvième comparaison entre les valeurs de conversion numérique obtenues du convertisseur analogique/numérique du microcontrôleur principal et la valeur de conversion numérique du convertisseur analogique/numérique du 10 microcontrôleur de supervision, de sorte que le microcontrôleur de supervision puisse détecter une défaillance du microcontrôleur principal en réponse à la neuvième comparaison. Dans un second aspect, l'invention concerne également un module de commande électronique ou ECU pour « Engine Control Unit » en anglais, prévu pour la 15 détection de défaillances d'au moins une fonction critique d'un véhicule automobile. Le module de commande électronique comprend un circuit selon le premier aspect couplé à un capteur et à un actuateur de la fonction critique du véhicule. D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en 20 regard des dessins annexés sur lesquels : la figure 1 est une représentation schématique d'un circuit de détection de défaillance pour un calculateur électronique automobile selon l'invention, la figure 2 est un ordinogramme d'un mode de réalisation selon l'invention, la figure 3 est une représentation schématique d'une partie du circuit de la 25 figure 1 montrant un mécanisme de contrôle d'horloge selon un mode de réalisation de l'invention, la figure 4 est une représentation schématique d'une partie du circuit de la figure 1 montrant un mécanisme de contrôle d'alimentation, et - la figure 5 est une représentation schématique d'une partie du circuit de la 30 figure 1 montrant un mécanisme d'échange de données entre le microcontrôleur principal et le microcontrôleur secondaire, incorporant, notamment, un mécanisme de contrôle de transmission. Dans ces figures, des références identiques ou similaires d'une figure à une autre désignent des éléments identiques ou analogues. Pour des raisons de clarté, les 35 éléments représentés ne sont pas à l'échelle les uns par rapport aux autres, sauf mention contraire. 3052575 7 La figure 1 représente schématiquement un circuit 100 de détection de défaillance, selon l'invention, pour un calculateur électronique (non représenté) d'un véhicule automobile (non représenté). Tel qu'illustré par la figure 1, le circuit 100 comprend au moins un 5 microcontrôleur principal 110, un microcontrôleur de supervision 120 et une interface de communication 130. Le microcontrôleur principal 110 comprend deux coeurs de microcontrôleur 111 et 112, configurés pour exécuter en parallèle, des instructions logicielles fournies au microcontrôleur principal 110. Plus précisément, en opération, une 10 même instruction est exécutée en parallèle par les deux coeurs de microcontrôleur 111 et 112. Toutefois, il est également envisagé l'utilisation de trois, quatre, cinq ou plus de coeurs de microcontrôleur sans que cela ne nécessite une modification profonde du fonctionnement de l'invention. Le microcontrôleur principal 110 comprend également au moins un module logicie1113 permettant d'assurer la mise en oeuvre d'une fonction 15 critique du véhicule automobile. Dans la suite de cette description, il faudra comprendre l'usage de l'expression « fonction critique » comme désignant une fonction d'un véhicule automobile dont la défaillance peut causer des dommages corporels au conducteur du véhicule. Par exemple, le système antiblocage des roues (ABS) et le système de calcul de direction assistée (EPS) sont considérés comme des fonctions critiques du véhicule 20 automobile qui peuvent être mises en oeuvre, entièrement ou pour partie via un logiciel. En effet, une fonction critique doit être comprise comme pouvant non seulement être mise en oeuvre totalement par logiciel, mais également pour partie par logiciel et pour partie par un ou plusieurs éléments électroniques et/ou mécaniques du circuit 100. Toutefois, on notera qu'une ou plusieurs fonctions critiques peuvent être mises en oeuvre par le même 25 module logiciel, tel que le module logiciel 113. Le module logiciel 113 comprend un point d'entrée prédéterminé Pin et un point de sortie prédéterminé Sout. De manière générale, ces points doivent être situés dans le code source du module logiciel 113, tels des jalons, de sorte que l'on peut déterminer, respectivement, un début d'exécution et une fin d'exécution du module 30 logiciel 113. Par exemple, le point d'entrée prédéterminé Pin du module logiciel 113 peut se situer au niveau d'une fonction exécutée par une tâche périodique, alors que le point de sortie prédéterminé Sout peut se situer au niveau d'une fonction exécutée par une autre tâche périodique ou par un autre sous-ensemble du module logiciel 113. Dans cet exemple, une tâche périodique peut être exécutée par le système d'exploitation du 35 microcontrôleur principal 110. Le microcontrôleur de supervision 120 peut avoir une configuration différente de celle du microcontrôleur principa1110. Par exemple, dans une mise en oeuvre 3052575 8 particulière, le microcontrôleur de supervision 120 comprend un seul coeur de microcontrôleur (non représenté). Toutefois, selon les besoins, le microcontrôleur principal 110 et le microcontrôleur de supervision 120 peuvent avoir les mêmes caractéristiques techniques. En outre, le microcontrôleur de supervision 120 est muni de 5 moyens de comparaison 129 d'au moins deux valeurs. Enfin, le microcontrôleur de supervision 120 comprend une mémoire 128 pour stocker une ou plusieurs valeurs. Dans le cadre de l'invention, le microcontrôleur de supervision 120 a la connaissance de l'ordonnancement de l'exécution d'une pluralité de modules logiciels du microcontrôleur principal 110. Ainsi, le microcontrôleur de supervision 120 connait la récurrence et l'ordre 10 dans lequel chacun des modules logiciels du microcontrôleur principal 110 doit être exécuté. L'interface de communication 130 est synchrone et est agencée pour coupler le microcontrôleur principal 110 et le microcontrôleur de supervision 120 de manière à permettre une supervision mutuelle. Par exemple, l'interface de communication 130 peut 15 être un bus de communication série selon l'un des standards suivants : I2C (en anglais « Inter Integrated Circuit »), RS232 ou SPI (en anglais « Serial Peripheral Interface »). Néanmoins, d'autres interfaces de communication présentant un aspect synchrone peuvent également être envisagées. La figure 2 représente schématiquement un ordinogramme d'un mode de 20 réalisation selon l'invention. À l'étape S400, le microcontrôleur de supervision 120 fournit au microcontrôleur principal 110, via l'interface de communication 130, une première valeur d'initialisation InitA et une deuxième valeur d'initialisation InitB. Par exemple, ce sont des nombres entiers préalablement stockés dans la mémoire 128. Dans une mise en oeuvre 25 particulière, ces valeurs d'initialisation possèdent une valeur comprise entre 0 et 255. Dans une autre mise en oeuvre particulière, les valeurs d'initialisation sont modifiées selon une périodicité prédéterminée. L'étape S410 est réalisée lorsque le module logiciel 113 est exécuté pour mettre entre oeuvre une ou plusieurs fonctions critiques correspondantes. Dans ce cadre, 30 le microcontrôleur principal 110 détermine une valeur de point d'entrée Entree[0] au niveau du point d'entrée prédéterminé Pin du module logiciel 113, à partir de la première valeur d'initialisation InitA et d'une valeur de début d'exécution K1. Cette valeur de début d'exécution K1 permet de déterminer si le point d'entrée prédéterminé Pin du module logiciel a été franchi lorsque ce module logiciel est exécuté. La valeur de début 35 d'exécution K1 est prédéterminée et connue du microcontrôleur de supervision 120 et du microcontrôleur principa1110. Dans une mise en oeuvre, la valeur de début d'exécution K1 est une valeur constante tandis que dans une autre mise en oeuvre, elle 3052575 9 est une valeur spécifique à chaque module logiciel exécutable par le microcontrôleur principal 110. Dans un exemple, la valeur de point d'entrée Entree[0] est égale à la somme de la première valeur d'initialisation InitA, et de la valeur de début d'exécution K1. Toutefois, d'autres formules de détermination de la valeur de point d'entrée Entree[0] sont 5 envisageables dans la mesure où la formule utilisée est connue du microcontrôleur de supervision 120 et du microcontrôleur principal 110. Ensuite, toujours à l'étape S410, le microcontrôleur principal 110 détermine une valeur de point de sortie Sortie[0] au niveau du point de sortie prédéterminé Sout du module logiciel 113, à partir de la deuxième valeur d'initialisation InitB et d'une valeur de 10 fin d'exécution K2. La valeur de fin d'exécution K2 permet de déterminer si le point de sortie prédéterminé Sout, du module logiciel a été franchi lorsque ce module logiciel est exécuté. La valeur de fin d'exécution K2 est prédéterminée et connue du microcontrôleur de supervision 120 et du microcontrôleur principal 110. Comme pour la valeur de début d'exécution K1, la valeur de fin d'exécution K2 peut avoir une valeur constante ou une 15 valeur spécifique à chaque module logiciel exécutable par le microcontrôleur principal 110. Dans un exemple, la valeur de point de sortie Sortie[0] est égale à la somme entre le carré de la valeur de fin d'exécution K2 et de la deuxième valeur d'initialisation initB. Toutefois, d'autres formules de détermination de la valeur de point de sortie Sortie[0] sont envisageables dans la mesure où la formule utilisée est connue du 20 microcontrôleur de supervision 120 et du microcontrôleur principal 110. À l'étape S420, le microcontrôleur principal 110 détermine une valeur de résultat RESULT[0] d'un calcul prédéterminé à partir de la valeur de point d'entrée Entree[0] et de la valeur de point de sortie Sortie[0]. Dans un exemple, la valeur de résultat RESULT[0] est égale à la somme entre la valeur de point d'entrée Entree[0] et le 25 carré de la valeur de point de sortie Sortie[0]. Toutefois, d'autres formules de détermination de la valeur de résultat RESULT[0] sont envisageables dans la mesure où la formule utilisée du calcul prédéterminé est connue du microcontrôleur de supervision 120 et du microcontrôleur principal 110. Par exemple, dans une mise en oeuvre particulière, le calcul prédéterminé est un calcul polynomial au moins du deuxième 30 ordre. Ensuite, toujours à l'étape S420, le microcontrôleur principal 110 fournit au microcontrôleur de supervision 120 la valeur de résultat RESULT[0] via l'interface de communication 130. Enfin, toujours à l'étape S420, le microcontrôleur de supervision 120 compare la valeur de résultat RESULT[0] à une valeur de résultat prédéterminé RESULT[0]* du 35 calcul prédéterminé, grâce aux moyens de comparaison 129. La valeur de résultat prédéterminé RESULT[0]* peut être calculée à la volée par le microcontrôleur de supervision 120 à partir des valeurs d'initialisation, des valeurs d'exécution, et de la 3052575 10 connaissance de l'ordonnancement des modules logiciels exécutés par le microcontrôleur principal 110. Par ailleurs, la valeur de résultat prédéterminé RESULT[0]* peut avoir été calculée préalablement puis stockée dans la mémoire 128. À partir du résultat de la comparaison, le microcontrôleur de supervision 120 5 est capable de détecter une défaillance du microcontrôleur principal 110. En effet, comme le microcontrôleur de supervision 120 connaît l'ensemble des paramètres permettant d'obtenir la valeur de résultat RESULT[0], il peut donc déterminer si le résultat obtenu correspond au résultat escompté. Ainsi, si la valeur de résultat RESULT[0] est différente de la valeur de résultat prédéterminé RESULT[0]*, alors le microcontrôleur de 10 supervision 120 peut en déduire qu'au moins une défaillance s'est produite au niveau du microcontrôleur principal 110. A contrario, si la valeur de résultat RESULT[0] est égale à la valeur de résultat prédéterminé RESULT[0]*, alors le microcontrôleur de supervision 120 peut en déduire qu'aucune défaillance ne s'est produite au niveau du microcontrôleur principal 110. 15 Le mécanisme selon l'invention permet de vérifier que le cycle d'exécution d'un module logiciel du microcontrôleur principal 110 a été respecté, car la valeur de résultat RESULT[0] est obtenue en faisant un lien entre le début et la fin de l'exécution des modules logiciels. En effet, selon l'exemple de la figure 2, si le module logiciel 113 n'a pas débuté son exécution alors la valeur de début d'exécution K1 ne sera pas utilisée 20 pour déterminer la valeur de point d'entrée Entree[0] entrainant ainsi une valeur erronée du résultat constitué par la valeur de résultat RESULT[0]. Il en sera de même si le module logiciel 113 n'a pas débuté son exécution car la valeur de fin d'exécution K2 ne sera pas utilisée pour déterminer la valeur de point de sortie Sortie[0]. En outre, si le module logiciel 113 est exécuté plus de fois que prévu (par exemple deux fois au lieu d'une seule 25 fois) cela entraînera également une valeur erronée du résultat constitué par la valeur de résultat RESULT[0] car les valeurs de début d'exécution K1 et/ou de fin d'exécution K2 seront prises en compte plusieurs fois pour déterminer les valeurs de point d'entrée Entree[0] et de point de sortie Sortie[0], respectivement. De cette manière, les défaillances systématiques peuvent être détectées. Il est également possible de détecter 30 des défaillances de fautes communes sur les coeurs de microcontrôleur 111 et 112 en tant qu'unités de calcul. En effet, la complexité du calcul prédéterminé de la valeur de résultat permet de s'assurer que les coeurs de microcontrôleur 111 et 112 sont en capacité de réaliser des calculs corrects. En effet, s'il se produit une défaillance commune au niveau des coeurs de microcontrôleur 111 et 112 (par exemple si les coeurs de 35 microcontrôleur proviennent d'une même série de fabrication défaillante), on obtiendra une valeur erronée de la valeur de résultat RESULT[0]. En outre, on peut noter que l'exécution d'une fonction critique par le microcontrôleur principal 110 peut mettre en 3052575 11 oeuvre des périphériques intrinsèques au microcontrôleur principa1110 tels que le mécanisme de transfert automatique de mémoire (en anglais DMA - « Direct Memory Access »), le gestionnaire d'interruption (en anglais "Interrupt Controller") ou encore le gestionnaire d'événements temporels (en anglais « Timer »). La défaillance d'au moins un 5 de ces périphériques peut provoquer un résultat erroné de la valeur de résultat RESULT[0]. Ainsi, la réalisation du calcul prédéterminé permet également la détection de la défaillance de ces périphériques par le microcontrôleur de supervision 120. On notera que la déduction de la présence d'au moins une défaillance au 10 niveau du microcontrôleur principal 110 permet principalement d'identifier une défaillance mais pas nécessairement sa source. Toutefois, comme les fonctions automobiles surveillées sont des fonctions critiques, il est d'abord important de pouvoir détecter la présence du plus grand nombre de défaillances possibles avant de pouvoir en identifier la source. Ainsi, savoir qu'une fonction critique d'un véhicule automobile est défaillante 15 permet de prendre des dispositions de sécurité adéquates le plus rapidement possible. Dans une mise en oeuvre particulière, le microcontrôleur de supervision 120 peut détecter une défaillance du microcontrôleur principal 110 lorsque ce dernier ne fournit pas la valeur de résultat RESULT[0] dans un temps prédéterminé. Dans cette mise en oeuvre, le microcontrôleur de supervision 120 est muni de moyens (non représentés) 20 de mesure d'un temps qui s'est écoulé entre la fourniture au microcontrôleur principal 110 des première et deuxième valeurs d'initialisation InitA et InitB et la réception de la valeur de résultat RESULT[0]. On appellera ci-après ce temps écoulé, le « temps aller-retour ». Avec cet agencement, les moyens de comparaison 129 du microcontrôleur de supervision 120 permettent de déduire une défaillance du microcontrôleur principal 110 25 lorsque le « temps aller-retour » mesuré par le microcontrôleur de supervision 120 est différent d'un « temps aller-retour » prédéterminé connu du microcontrôleur de supervision 120 ou n'est pas compris dans un intervalle de temps prédéterminé autour du « temps aller-retour » prédéterminé. Dans un exemple, le « temps aller-retour » prédéterminé est stocké dans la mémoire 128 du microcontrôleur de supervision 120. 30 Dans une alternative compatible de la précédente mise en oeuvre, le microcontrôleur principal 110 est muni de moyens (non représentés) de mesure de la période d'exécution du module logiciel 113, c'est-à-dire le temps requis pour exécuter le module logiciel 113. Dans ce cadre, suite à l'exécution du module logiciel, la mesure de la période d'exécution est envoyée au microcontrôleur de supervision 120 via l'interface de 35 communication 130. Dans cet agencement particulier, le microcontrôleur de supervision 120 est apte à détecter une défaillance du microcontrôleur principal 110 lorsque la période d'exécution mesurée du module logicie1113 est différente d'une 3052575 12 période prédéterminée d'exécution du module logiciel 113 connue du microcontrôleur de supervision 120 ou n'est pas comprise dans un intervalle de temps prédéterminé autour de la période prédéterminée d'exécution. Dans un exemple, la période prédéterminée d'exécution est stockée dans la mémoire 128 du microcontrôleur de supervision 120. 5 Dans cette mise en oeuvre, le « temps aller-retour » prédéterminé et la période prédéterminée d'exécution du module logiciel 113 peuvent avoir été déterminés lors des phases de test du circuit 100. Dans une autre mise en oeuvre particulière du circuit de détection 100, le microcontrôleur principal 110 comprend une pluralité de modules logiciels. Dans ce 10 cadre, chacun des modules logiciels de la pluralité de modules logiciels assure une fonction critique du véhicule automobile. En outre, l'exécution de la pluralité de modules logiciels est réalisée de manière séquentielle. En d'autres termes, les modules logiciels de la pluralité de modules logiciels sont « chaînés » de sorte que l'exécution d'un deuxième module logiciel fait suite à la fin de l'exécution d'un premier module logiciel de la pluralité 15 de modules logiciels. Dans l'exemple de la figure 1, le microcontrôleur principal 110 comprend un deuxième module logiciel 114 en plus du module logiciel 113. De retour à la figure 2, à l'étape S430, le microcontrôleur principal 110 détermine une valeur de point d'entrée Entree[1] au niveau du point d'entrée prédéterminé Pin du module logiciel 114, à partir de la valeur de point d'entrée Entree[0] et de la valeur 20 de début d'exécution K1. Ensuite, le microcontrôleur principal 110 détermine une valeur de point de sortie Sortie[1] au niveau du point de sortie prédéterminé Sout du module logiciel 114, à partir de la valeur de point de sortie Sortie[0] et de la valeur de fin d'exécution K2. Par la suite, toujours à l'étape S430, le microcontrôleur principal 110 détermine une valeur de résultat RESULT[1] d'un calcul prédéterminé à partir de la valeur 25 de point d'entrée Entree[1] et de la valeur de point de sortie Sortie[1]. La détermination des valeurs de points d'entrée Entree[1], de point de sortie Sortie[1] et de résultat RESULT[1] est similaire à la détermination des valeurs de point d'entrée Entree[0], de point de sortie Sortie[0] et de résultat RESULT[0], comme expliqué plus haut. De la même manière, la valeur de résultat RESULT[1] est envoyée par le 30 microcontrôleur principal 110 au microcontrôleur de supervision 120, via l'interface de communication 130, afin d'y être comparée à la valeur de résultat prédéterminé RESULT[1]*, de sorte qu'une défaillance du microcontrôleur principal 110 puisse être détectée. Dans un exemple, seule la valeur de résultat RESULT[1] est envoyée au microcontrôleur de supervision 120. Dans ce cas, seule la valeur finale du 35 calcul prédéterminé sera considérée pour détecter une défaillance du microcontrôleur principal 110. Dans un autre exemple, les valeurs de résultat RESULT[0] et RESULT[1] sont envoyées au microcontrôleur de supervision 120. Dans ce cas, la valeur de 3052575 13 résultat RESULT[0] est considérée comme une valeur intermédiaire du calcul prédéterminé qui peut aider à identifier le lieu d'occurrence d'une défaillance donnée. En effet, si la valeur de résultat RESULT[0] correspond à la valeur de résultat attendue RESULT[0]*, alors le microcontrôleur de supervision 120 peut en déduire que 5 l'exécution du module logiciel 113 s'est produite sans erreur. Au contraire, si la valeur de résultat RESULT[0] est différente de la valeur de résultat attendue RESULT[0]*, alors le microcontrôleur de supervision 120 peut en déduire que la défaillance a eu lieu lors de l'exécution du module logiciel 113. Les caractéristiques présentées plus haut concernant la possibilité de détecter 10 une défaillance du microcontrôleur principal 110 lorsque les résultats calculés ne sont pas fournis au microcontrôleur de supervision 120 dans un temps prédéterminé ou selon un temps d'exécution prédéterminé, sont également envisagées pour cette mise en oeuvre. Selon un autre mode de réalisation du circuit 100, il est prévu que le microcontrôleur de supervision 120 soit en outre configuré pour envoyer au 15 microcontrôleur principal 110 un signal de réamorçage du microcontrôleur principal 110, en réponse à la détection d'une défaillance du microcontrôleur principal 110, et ce, afin de tenter de réamorcer le microcontrôleur principal 110 ou le(s) modules logiciel(s) à l'origine de la défaillance. Dans le cadre de ce mode de réalisation du circuit 100, il est également prévu que le microcontrôleur de supervision 120 soit en outre configuré pour entraver le 20 réamorçage du microcontrôleur principal 110, en réponse à la détection d'un nombre prédéterminé de défaillances du microcontrôleur principal 110, et ce, pendant une période prédéterminée. Par exemple, lorsque de nombreuses demandes de réamorçage du microcontrôleur principal 110 sont requises par le microcontrôleur de supervision 120 pendant une période considérée comme courte, cela signifie que la fonction critique 25 assurée par le module logicie1113 n'est plus garantie. En effet, une pluralité de défaillances du microcontrôleur principal 110 détectées dans un intervalle de temps limité signifie que la fonction critique assurée par le module logiciel en cours d'exécution n'arrive pas à retrouver un mode de fonctionnement normal. Dans ce cas, il n'est pas nécessaire de tenter de réamorcer le microcontrôleur principal 110. Au contraire, il pourrait être plus 30 judicieux de couper complètement la ou les fonctions critiques qui sont potentiellement à l'origine de la défaillance du système. Par exemple, on peut envisager de mettre le véhicule automobile dans un mode de fonctionnement dégradé, en activant seulement les fonctions vitales du véhicule automobile. Ceci permettrait d'informer le conducteur qu'une fonction critique du véhicule n'est plus fonctionnelle et qu'il est préférable de s'arrêter et 35 de demander une assistance technique. La figure 3 représente schématiquement une partie du circuit 100 selon un mode de réalisation de l'invention. Dans ce mode de réalisation, le microcontrôleur 3052575 14 principal 110 et le microcontrôleur de supervision 120 comprennent, chacun indépendamment, une horloge de fonctionnement 115, 125. Le microcontrôleur principal 110 est également muni de moyens de mesures (non représentés) d'horloge pour mesurer l'horloge de fonctionnement de l'interface de communication 130. En outre, 5 le microcontrôleur de supervision 120 est muni de moyens de génération d'horloge 121 pour générer une horloge de fonctionnement de l'interface de communication 130 à partir, de l'horloge de fonctionnement 125 du microcontrôleur de supervision 120, et d'une valeur prédéterminée d'horloge de fonctionnement horl* connue du microcontrôleur principal 110 et du microcontrôleur de supervision 120. Dans l'exemple de la figure 3, la valeur 10 prédéterminée d'horloge de fonctionnement horl* au niveau du microcontrôleur principal 110, est générée à partir d'une horloge 115 externe au microcontrôleur principal 110. Dans l'exemple de la figure 3, l'horloge externe 115 du microcontrôleur principal 110 comprend un oscillateur externe couplé à une boucle à verrouillage de phase PLL, elle-même couplée à deux diviseurs de fréquences DIV. Toutefois, dans un 15 autre exemple, on peut également envisager de stocker la valeur prédéterminée d'horloge de fonctionnement horl* dans une mémoire 118 du microcontrôleur principal 110. Par ailleurs, au niveau du microcontrôleur de supervision 120, la valeur prédéterminée d'horloge de fonctionnement horl* est stockée dans la mémoire 128. De plus, le microcontrôleur principal 110 est muni de moyens de comparaison 119 pour réaliser une 20 comparaison entre une mesure de l'horloge de fonctionnement de l'interface de communication 130 et la valeur prédéterminée d'horloge de fonctionnement horl*. Avec cet agencement, le résultat de la comparaison permet au microcontrôleur principal 110 de détecter une défaillance du microcontrôleur de supervision 120 dans sa capacité à générer de manière fiable une horloge de fonctionnement. En effet, si la mesure de 25 l'horloge de fonctionnement de l'interface de communication est différente de la valeur prédéterminée d'horloge de fonctionnement ou n'est pas comprise dans un intervalle prédéterminé comprenant la valeur prédéterminée d'horloge de fonctionnement, on peut en déduire que les mécanismes de gestion d'horloge du microcontrôleur de supervision 120 sont défaillants. 30 Dans une réalisation particulière de la figure 3, le microcontrôleur principal 110 est muni de moyens (non représentés) pour générer périodiquement un signal d'initialisation Sp indicatif de l'initialisation d'une communication via l'interface de communication 130, et ce, à partir d'une valeur prédéterminée de périodicité Sinit* connue du microcontrôleur de supervision 120 et du microcontrôleur principal 110. En d'autres 35 termes, le signal d'initialisation Sp est configuré pour être envoyé périodiquement par le microcontrôleur principal 110 au microcontrôleur de supervision 120. Dans l'exemple de la figure 3, le signal périodique d'initialisation Sp est généré à partir de l'horloge de 3052575 15 fonctionnement 115. En outre, le microcontrôleur de supervision 120 est pourvu de moyens (non représentés) de mesure de la périodicité d'un signal pour mesurer la périodicité de la réception du signal d'initialisation Sp. Avec cet agencement, les moyens de comparaison 129 du microcontrôleur de supervision 120 sont également configurés 5 pour réaliser une comparaison entre la mesure de la périodicité de la réception du signal d'initialisation et la valeur prédéterminée de périodicité Sinit*. Dans cet agencement, le résultat de la comparaison permet au microcontrôleur de supervision 120 de détecter une défaillance du microcontrôleur principal 110 dans sa capacité à générer de manière périodique un signal. 10 De retour à la figure 1, selon un autre mode de réalisation du circuit 100, il est prévu que le microcontrôleur principal 110 et le microcontrôleur de supervision 120 comprennent, chacun indépendamment, une unité d'alimentation 117, 127. Dans ce mode de réalisation, le microcontrôleur principal 110 est couplé à l'unité d'alimentation 127 du microcontrôleur de supervision 120, et le microcontrôleur de supervision 120 est l'unité 15 d'alimentation 117 du microcontrôleur principal 110. En outre, il est prévu que le microcontrôleur principal 110 et le microcontrôleur de supervision 120 comprennent, chacun indépendamment, des moyens (non représentés) de mesure de tension pour mesurer la tension d'une unité d'alimentation. Avec cet agencement, les moyens de comparaison 119 du microcontrôleur principal 110 sont également configurés pour 20 réaliser une comparaison entre une mesure de la tension de fonctionnement de l'unité d'alimentation 127 et une plage prédéterminée de tension V1* de fonctionnement de l'unité d'alimentation 127. De plus, les moyens de comparaison 129 du microcontrôleur de supervision 120 sont également configurés pour réaliser une comparaison entre une mesure de la tension de fonctionnement de l'unité d'alimentation 117 et une plage 25 prédéterminée de tension V2* de fonctionnement de l'unité d'alimentation 117. Dans cet agencement, la plage prédéterminée de tension V1* de fonctionnement de l'unité d'alimentation 127 est connue du microcontrôleur principal 110 et peut être stockée dans la mémoire 118. En outre, la plage prédéterminée de tension V2* de fonctionnement de l'unité d'alimentation 117 est connue du microcontrôleur de supervision 120 et peut être 30 stockée dans la mémoire 128. Avec cet agencement, les résultats des comparaisons permettent au microcontrôleur principal 110 et au microcontrôleur de supervision 120 de détecter mutuellement une défaillance de l'unité d'alimentation de l'autre microcontrôleur. Notamment, il est possible pour un microcontrôleur de détecter les sous-tensions et surtensions de l'unité d'alimentation sous surveillance. 35 La figure 4 montre schématiquement une partie du circuit 100 qui concerne le mode de réalisation précédent. Dans l'exemple de la figure 4, le microcontrôleur de supervision 120 mesure une tension d'alimentation Vcc_110 de l'unité d'alimentation 117 3052575 16 du microcontrôleur principal 110. Par la suite, la mesure de tension Vcc_110 est comparée à la plage prédéterminée de tension V2* de fonctionnement de l'unité d'alimentation 117 (zone représentée en gris clair sur la figure 4). Ainsi, lorsque la mesure de tension Vcc_110 est dans la plage prédéterminée de tension V2* de 5 fonctionnement de l'unité d'alimentation 117 (zone représentée en blanc entre les traits en pointillés sur la figure 4), alors aucune défaillance de l'unité d'alimentation 117 n'est détectée par le microcontrôleur de supervision 120. Par contre, une défaillance de l'unité d'alimentation 117 sera détectée par le microcontrôleur de supervision 120 si la mesure de tension Vcc_110 se situe en dehors de la plage prédéterminée de tension V2* de 10 fonctionnement de l'unité d'alimentation 117. L'agencement de la figure 4 peut être complété pour détecter une sous-tension de l'unité d'alimentation 117. La connaissance de cette information peut être intéressante, car la tension Vcc_110 peut être utilisée pour alimenter un périphérique PERIPH du microcontrôleur principal 110. Il est donc intéressant de détecter une sous-tension de l'unité d'alimentation 117 directement au 15 niveau du microcontrôleur principal 110. Pour cela, il est possible d'utiliser un module d'inhibition de basse tension de type connu (en anglais LVI pour « Low Voltage Inhibit») au niveau du microcontrôleur. Une sous-tension peut être détectée lorsque la mesure de tension Vcc_110 se situe en dessous de la plage prédéterminée de tension V2* de fonctionnement de l'unité d'alimentation117. 20 De retour à la figure 1 selon un autre mode de réalisation du circuit 100, il est prévu une interface d'actuateur 140 qui est couplée au microcontrôleur principal 110 et au microcontrôleur de supervision 120. L'interface d'actuateur 140 est configurée pour envoyer un signal d'actuation à un actuateur 300. L'actuateur 300 est configuré pour être couplé au circuit 100. Dans un exemple, l'actuateur 300 est un actuateur de 25 déclenchement du système ABS. Dans cet exemple, le signal d'actuation peut être généré en réponse à la réception, via une interface de capteur 150, d'une mesure d'un capteur de collision 200. En outre, il est prévu que le microcontrôleur principal 110 et le microcontrôleur de supervision 120 comprennent, chacun indépendamment, un convertisseur analogique/numérique (ADC) 116, 126. Chaque ADC 116, 126 est 30 configuré pour recevoir et convertir un même signal analogique d'actuation provenant de l'interface d'actuateur 140. Dans un premier agencement, les moyens de comparaison 129 du microcontrôleur de supervision 120 sont en outre configurés pour réaliser une comparaison d'un même signal physique entre la valeur de conversion numérique de l'ADC 116 du microcontrôleur principal 110 et la valeur de conversion 35 numérique de l'ADC 126 du microcontrôleur de supervision 120. Dans cet agencement, la valeur de conversion numérique de l'ADC 116 du microcontrôleur de supervision 120 est envoyée au microcontrôleur principal 110 via l'interface de communication 130. Avec cet 3052575 17 agencement, le résultat de la comparaison permet au microcontrôleur principal 110 de détecter une défaillance de l'ADC 116 du microcontrôleur principal 110 ou de l'ADC 126 du microcontrôleur de supervision 120. En effet, si des valeurs différentes de conversion numérique sont fournies par les ADC des deux microcontrôleurs 110, 120, on peut en 5 déduire qu'au moins un des ADC est défectueux. Dans un deuxième agencement, les moyens de comparaison 119 du microcontrôleur principal 110 sont en outre configurés pour réaliser une comparaison entre la valeur de conversion numérique de l'ADC 126 du microcontrôleur de supervision 120 et la valeur de conversion numérique de l'ADC 116 du microcontrôleur principal. Par la suite, une défaillance d'au moins l'un des ADC peut être 10 déduite de la comparaison des mesures recueillies par le microcontrôleur principal 110, comme expliqué plus haut au sujet du microcontrôleur de supervision 120. Dans une réalisation particulière du mode de réalisation précédent, selon la figure 1, il est prévu une unité d'interrupteur 160 qui est couplée entre l'interface d'actuateur 140 et l'actuateur 300. L'unité d'interrupteur 160 est configurée pour alterner 15 entre un premier état dans lequel l'interface d'actuateur 140 peut communiquer avec l'actuateur 300 et un deuxième état dans lequel l'interface d'actuateur 140 ne peut pas communiquer avec l'actuateur 300. En outre, le microcontrôleur principal 110 est configuré pour envoyer un signal de désactivation du circuit 100 à l'unité d'interrupteur 160, en réponse à la détection d'une défaillance du microcontrôleur de 20 supervision 120. De la même manière, le microcontrôleur de supervision 120 est configuré pour envoyer un autre signal de désactivation du circuit 100 à l'unité d'interrupteur 160, en réponse à la détection d'une défaillance du microcontrôleur principal 110. Dans cet agencement, l'unité d'interrupteur 160 est configurée pour passer du premier état au deuxième état en réponse à la réception d'un signal de désactivation. 25 Avec cet agencement, si une défaillance d'au moins un microcontrôleur 110, 120 est détectée, il est proposé que le microcontrôleur détectant la défaillance génère le signal de désactivation pour désactiver le circuit 100 en empêchant ce dernier d'envoyer des signaux d'actuations à l'actuateur 300. La figure 5 montre schématiquement une partie du circuit 100 selon un mode 30 de réalisation de l'invention. Dans l'exemple de la figure 5, on peut voir une trame de données Tx_110 envoyées par le microcontrôleur principal 110 et une trame de données Tx_120 envoyées par le microcontrôleur de supervision 120. Les trames Tx_110 et Tx_120 de l'exemple de la figure 5 sont transmises via l'interface de communication 130. Selon le mode de réalisation de la figure 5, il est prévu que le 35 microcontrôleur principal 110 et le microcontrôleur de supervision 120 comprennent chacun des moyens (non représentés) de mise en forme de trames des données à envoyer sur l'interface de communication 130. Les moyens de mise en forme de trames 3052575 18 sont adaptés pour former des trames de données à envoyer sur l'interface de communication 130, mais également pour extraire des données des trames reçues via l'interface de communication 130. Chacun des moyens de mise en forme de trame sont en outre configurés pour, en réponse à la réception d'une trame, insérer un identificateur 5 de trame dans la trame à envoyer. Cette insertion d'indicateur dépend d'un identificateur de trame contenu dans la dernière trame reçue. Avec cet agencement, les moyens de comparaison 119 du microcontrôleur principal 110 sont en outre configurés pour réaliser une comparaison entre l'identificateur de la dernière trame émise par le microcontrôleur de supervision 120 en réponse à une trame émise par le microcontrôleur principal 110, et 10 l'identificateur de la trame émise par le microcontrôleur principal 110. Les moyens de comparaison 129 du microcontrôleur de supervision 120 sont configurés de la même manière pour réaliser une comparaison entre l'identificateur de la trame émise par le microcontrôleur principal 110 en réponse à une trame émise par le microcontrôleur de supervision 120, et l'identificateur de la trame émise par le microcontrôleur de 15 supervision 120. L'exemple de la figure 5 montre l'identificateur ID° de la trame Tx_120 et l'identificateur ID, de la trame Tx_110. Dans cet exemple, l'identificateur Do correspond à une valeur numérique incrémentée de 1 par le microcontrôleur principal 110 à chaque émission de trame tandis que l'identificateur ID, correspond à une valeur numérique 20 incrémentée de 1 par le microcontrôleur de supervision 120 à chaque émission de trame. De manière générale, les identifiants ID° et ID, sont synchronisés de sorte que le microcontrôleur recevant un identifiant d'une trame puisse vérifier que cet identifiant est bien lié à l'identifiant généré par ce même microcontrôleur lors de l'émission de la trame précédente. Ce principe permet de s'assurer qu'aucune trame n'est « perdue » et que les 25 deux microcontrôleurs sont aptes à communiquer entre eux. En outre, dans la figure 5, la trame Tx_120 comprend les valeurs d'initialisation InitA et initB et la trame tx_110 comprend le résultat RESULT[0] du calcul polynomial réalisé par les deux coeurs 111 et 112 du microcontrôleur principal 110, tels que décrits plus haut. Les trames Tx_110 et Tx_120 peuvent également comprendre une 30 indication ERR de la détection d'une défaillance. De plus, un contrôle cyclique de redondance CRC peut être inclus dans chaque trame Tx_110 et Tx_120 pour vérifier que l'intégrité de la trame lors de la transmission, a bien été respectée. L'invention présente de nombreux avantages. En effet, grâce à l'ensemble des mécanismes présentés plus haut, il est possible de détecter les défaillances d'un 35 microcontrôleur à double coeurs, et ce, afin d'être conforme au standard ISO 26 262. La présente invention a été décrite et illustrée dans la présente description détaillée et dans les figures des dessins annexés. La présente invention ne se limite pas, 3052575 19 toutefois, aux formes de réalisation ainsi présentées. D'autres variantes et modes de réalisation peuvent être déduits et mis en oeuvre par la personne du métier à la lecture de la présente description et des dessins annexés. Il est également envisagé un calculateur électronique (ECU) automobile pour 5 la détection des pannes d'au moins une fonction critique d'un véhicule automobile et qui comporte un circuit de détection tel que décrit plus haut, parmi les différents modes de réalisation de l'invention pris isolément ou en combinaison. Enfin, il est également envisagé un véhicule automobile comprenant un ou plusieurs ECU selon l'invention. 10 Dans les revendications, le terme « comporter » n'exclut pas d'autres éléments ou d'autres étapes. L'article indéfini « un » n'exclut pas le pluriel. Les différentes caractéristiques présentées et/ou revendiquées peuvent être avantageusement combinées. Leur présence dans la description ou dans des revendications dépendantes différentes n'excluent pas cette possibilité. Enfin, les signes de référence aux figures des 15 dessins ne sauraient être compris comme limitant la portée de l'invention. REVENDICATIONS1. Circuit (100) de détection de défaillances pour un calculateur électronique (ECU) automobile, le circuit comprenant : - - - - - 25 30 - 35 un microcontrôleur principal (110) comprenant, au moins deux coeurs (111, 112) de microcontrôleur configurés pour exécuter les mêmes instructions en parallèle, et au moins un premier module logiciel (113) assurant une fonction critique d'un véhicule automobile, le premier module logiciel comprenant un point d'entrée prédéterminé (Pin) et un point de sortie prédéterminé (Sout), un microcontrôleur de supervision (120) et une interface de communication (130) synchrone pour coupler le microcontrôleur principal (110) et le microcontrôleur de supervision (120) de manière à permettre une supervision mutuelle, le circuit (100) est caractérisé en ce que : le microcontrôleur de supervision (120) est configuré pour fournir au microcontrôleur principal (110) une première valeur d'initialisation (InitA) et une deuxième valeur d'initialisation (InitB); le microcontrôleur principal (110) est configuré pour, en réponse à l'exécution du premier module logiciel (113), déterminer une première valeur de point d'entrée (Entree[0]) au niveau du point d'entrée prédéterminé (Pin) du premier module logiciel (113), à partir de la première valeur d'initialisation (InitA) et d'une valeur de début d'exécution (K1) indicative d'un début d'exécution d'un module logiciel du microcontrôleur principal (110) ; déterminer une première valeur de point de sortie (Sortie[0]) au niveau du point de sortie prédéterminé (Sout) du premier module logiciel (113), à partir de la deuxième valeur d'initialisation (InitB) et d'une valeur de fin d'exécution (K2) et indicative d'une fin d'exécution d'un module logiciel du microcontrôleur principal (110) ; déterminer une première valeur de résultat (RESULT[0]) d'un calcul prédéterminé à partir de la première valeur de point d'entrée (Entree[0]) et de la première valeur de point de sortie (Sortie[0]) ; et fournir au microcontrôleur de supervision (120) la première valeur de résultat (RESULT[0]) ; le microcontrôleur de supervision (120) est muni de moyens de comparaison (129) pour réaliser une première comparaison entre la première 3052575 21 valeur de résultat (RESULT[0]) et une première valeur de résultat prédéterminée du calcul prédéterminé (RESULT[0]*) de sorte que le microcontrôleur de supervision (120) puisse détecter une défaillance du microcontrôleur principal (110) en réponse à la première comparaison. 5 2. Circuit de détection selon la revendication 1 dans lequel le calcul prédéterminé est un calcul polynomial au moins du deuxième ordre. 3. Circuit de détection selon l'une des revendications 1 ou 2 dans lequel : - le microcontrôleur principal (110) comprend un deuxième module logiciel (114) assurant une fonction critique du véhicule automobile, le deuxième module 10 logiciel comprenant un point d'entrée prédéterminé (Pin) et un point de sortie prédéterminé (Sout), le microcontrôleur principal (110) est en outre configuré pour, en réponse à l'exécution du deuxième module logiciel (114) : - déterminer une deuxième valeur de point d'entrée (Entree[1]) au niveau du point d'entrée prédéterminé (Pin) du deuxième module logiciel (114), à 15 partir de la première valeur de point d'entrée (Entree[0]) et de la valeur de début d'exécution (K1) ; - déterminer une deuxième valeur de point de sortie (Sortie[1]) au niveau du point de sortie prédéterminé (Sout) du deuxième module logiciel (114), à partir de la première valeur de point de sortie (Sortie[0]) et de la valeur de 20 fin d'exécution (K2) ; - déterminer une deuxième valeur de résultat (RESULT[1]) du calcul prédéterminé à partir de la deuxième valeur de point d'entrée (Entree[1]) et de la deuxième valeur de point de sortie (Sortie[1]) ; et - fournir au microcontrôleur de supervision (120) la deuxième valeur de résultat (RESULT[1]) ; - les moyens de comparaison (129) du microcontrôleur de supervision (120) sont en outre configurés pour réaliser une deuxième comparaison entre la deuxième valeur de résultat (RESULT[1]) et une deuxième valeur de résultat prédéterminée du calcul prédéterminé (RESULT[1]*) de sorte que le microcontrôleur de supervision (120) puisse détecter une défaillance du microcontrôleur principal (110) en réponse à la deuxième comparaison. 4. Circuit de détection selon l'une quelconque des revendications 1, 2 ou 3 dans lequel : - le microcontrôleur de supervision (120) est muni de moyens de mesure d'un temps qui s'est écoulé (ALLER-RETOUR) entre la fourniture au microcontrôleur 3052575 22 principal (110) des premières et deuxièmes valeurs d'initialisation (InitA, InitB) et la réception d'une valeur de résultat (RESULT[0], RESULT[1]), et - les moyens de comparaison (129) du microcontrôleur de supervision (120) sont en outre configurés pour réaliser une troisième comparaison entre le temps 5 ALLER-RETOUR et un temps ALLER-RETOUR prédéterminé, de sorte que le microcontrôleur de supervision (120) puisse détecter une défaillance du microcontrôleur principal (110) en réponse à la troisième comparaison. 5. Circuit de détection selon l'une quelconque des revendications 1, 2, 3 ou 4 dans lequel : 10 - le microcontrôleur principal (110) est muni de moyens de mesure d'une période d'exécution d'un ou de plusieurs modules logiciels du microcontrôleur principal (110), et - les moyens de comparaison (129) du microcontrôleur de supervision (120) sont en outre configurés pour réaliser une quatrième comparaison entre la mesure de 15 la période d'exécution transmise au microcontrôleur de supervision (120) et une période d'exécution prédéterminée, de sorte que le microcontrôleur de supervision (120) puisse détecter une défaillance du microcontrôleur principal (110) en réponse à la quatrième comparaison. 6. Circuit de détection selon l'une quelconque des revendications 1, 2, 3, 4 ou 5 20 dans lequel : - le microcontrôleur principal (110) et le microcontrôleur de supervision (120) comprennent, chacun indépendamment, une horloge de fonctionnement (115, 125), - le microcontrôleur de supervision (120) est en outre muni de moyens de 25 génération d'horloge (121) pour générer une horloge de fonctionnement de l'interface de communication (130) à partir de l'horloge de fonctionnement ( 125) et d'une valeur prédéterminée d'horloge de fonctionnement (horl*), et - le microcontrôleur principal (110) est en outre muni : - de moyens de mesure de l'horloge de l'interface de communication (130) et 30 - de moyens de comparaison (119) pour réaliser une cinquième comparaison entre une mesure de l'horloge de fonctionnement de l'interface de communication (130) par les moyens de mesure et la valeur prédéterminée d'horloge de fonctionnement (horl*), de sorte que le microcontrôleur principal (110) puisse détecter une défaillance du 35 microcontrôleur de supervision (120) en réponse à la cinquième comparaison. 3052575 23 7. Circuit de détection selon la revendication 6 dans lequel : - le microcontrôleur principal (110) est en outre muni de moyens pour générer périodiquement un signal d'initialisation (Sp) indicatif de l'initialisation d'une communication via l'interface de communication (130) à partir d'une valeur 5 prédéterminée de périodicité (Sinit*), et - le microcontrôleur de supervision (120) est en outre muni de moyens de mesure de la périodicité du signal d'initialisation (Sp), les moyens de comparaison (129) du microcontrôleur de supervision (120) sont en outre configurés pour réaliser une sixième comparaison entre une mesure de la périodicité de la réception du 10 signal d'initialisation (Sp) par les moyens de mesure et la valeur prédéterminée de périodicité (Sinit*), de sorte que le microcontrôleur de supervision (120) puisse détecter une défaillance du microcontrôleur principal (110) en réponse à la sixième comparaison. 8. Circuit de détection selon l'une quelconque des revendications 1, 2, 3, 4, 5, 6 15 ou 7 dans lequel : - le microcontrôleur principal (110) comprend une première unité d'alimentation (117) et le microcontrôleur de supervision (120) comprend une deuxième unité d'alimentation (127), la première et la deuxième unité d'alimentation (117, 127) sont physiquement indépendantes l'une de l'autre, 20 - le microcontrôleur principal (110) et le microcontrôleur de supervision (120) comprennent, chacun indépendamment, des moyens de mesure de tension, le microcontrôleur principal (110) est couplé à la deuxième unité d'alimentation (127) et les moyens de comparaison (119) du microcontrôleur principal (110) sont en outre configurés pour réaliser une septième comparaison 25 entre une mesure de la tension de fonctionnement de la deuxième unité d'alimentation (127) par les moyens de mesure et une première plage prédéterminée de tension (V1*) de fonctionnement, de sorte que le microcontrôleur principal (110) puisse détecter une défaillance du microcontrôleur de supervision (120) en réponse à la septième comparaison, et 30 - le microcontrôleur de supervision (120) est couplé à la première unité d'alimentation (117) et les moyens de comparaison (119) du microcontrôleur de supervision (120) sont en outre configurés pour réaliser une huitième comparaison entre une mesure de la tension de fonctionnement de la première unité d'alimentation (117) par les moyens de mesure et une deuxième plage 35 prédéterminée de tension (V2*) de fonctionnement, de sorte que le 3052575 24 microcontrôleur de supervision (120) puisse détecter une défaillance du microcontrôleur principal (110) en réponse à la huitième comparaison. 9. Circuit de détection selon l'une quelconque des revendications 1, 2, 3, 4, 5, 6, 7 ou 8 dans lequel : 5 - - 10 - 15 20 une interface d'actuateur (140) est couplée au microcontrôleur principal (110) et au microcontrôleur de supervision (120), l'interface d'actuateur (140) est configurée pour envoyer un signal d'actuation à un actuateur (300) prévu pour être connecté au circuit de détection (100), le microcontrôleur principal (110) et le microcontrôleur de supervision (120) comprennent, chacun indépendamment, un convertisseur analogique/numérique (116, 126) configuré pour recevoir le même signal d'actuation, et les moyens de comparaison (129) du microcontrôleur de supervision (120) sont en outre configurés pour réaliser une neuvième comparaison entre les valeurs de conversion numérique obtenues du convertisseur analogique/numérique (116) du microcontrôleur principal (110) et la valeur de conversion numérique du convertisseur analogique/numérique (126) du microcontrôleur de supervision (120), de sorte que le microcontrôleur de supervision (120) puisse détecter une défaillance du microcontrôleur principal (110) en réponse à la neuvième comparaison. 10. Calculateur électronique (ECU) automobile pour la détection de défaillances d'au moins une fonction critique d'un véhicule automobile caractérisé en ce qu'il comprend un circuit de détection selon l'une quelconque des revendications 1 à 9, couplé à un capteur (200) et à un actuateur (300) d'une fonction critique du véhicule.