Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CIRCUIT FOR DETECTING SYSTEMATIC AND RANDOM FAULTS
Document Type and Number:
WIPO Patent Application WO/2017/212152
Kind Code:
A1
Abstract:
A circuit (100) for detecting faults for a motor vehicle electronic computer, comprising: · a main microcontroller (110) having, – at least two microcontroller cores (111, 112) configured to execute the same instructions in parallel, and – at least a first software module (113) providing a critical function of a motor vehicle, the first software module comprising a predetermined input point (Pin) and a predetermined output point (Sout) · a supervision microcontroller (120) and · a synchronous communication interface (130) for coupling the main microcontroller (110) and the supervision microcontroller (120) in such a way as to allow mutual supervision. The detection circuit makes it possible to detect systematic and random faults.

Inventors:
EGGER VINCENT (FR)
Application Number:
PCT/FR2017/051398
Publication Date:
December 14, 2017
Filing Date:
June 02, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
CONTINENTAL AUTOMOTIVE FRANCE (FR)
CONTINENTAL AUTOMOTIVE GMBH (DE)
International Classes:
G06F11/16; G06F11/07; G06F11/28; G06F21/54
Foreign References:
DE102008033675A12009-02-26
EP1063591A22000-12-27
US20140223238A12014-08-07
GB2379527A2003-03-12
EP2685379A12014-01-15
Attorney, Agent or Firm:
CONTINENTAL AUTOMOTIVE FRANCE (FR)
Download PDF:
Claims:
REVENDICATIONS

1. Circuit (100) de détection de défaillances pour un calculateur électronique (ECU) automobile, le circuit comprenant :

• un microcontrôleur principal (1 10) comprenant,

- au moins deux cœurs (1 1 1 , 1 12) de microcontrôleur configurés pour exécuter les mêmes instructions en parallèle, et

- au moins un premier module logiciel (1 13) 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 (1 10) 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 (1 10) une première valeur d'initialisation (InitA) et une deuxième valeur d'initialisation (InitB);

• le microcontrôleur principal (1 10) est configuré pour, en réponse à l'exécution du premier module logiciel (1 13),

- 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 (1 13), à 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 (1 10) ;

- 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 (1 13), à 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 (1 10) ;

- 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 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 (1 10) en réponse à la première comparaison.

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 (1 10) comprend un deuxième module logiciel (1 14) assurant une fonction critique du véhicule automobile, le deuxième module logiciel comprenant un point d'entrée prédéterminé (Pin) et un point de sortie prédéterminé (Sout), le microcontrôleur principal (1 10) est en outre configuré pour, en réponse à l'exécution du deuxième module logiciel (1 14) :

- 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 (1 14), à 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 (1 14), à partir de la première valeur de point de sortie (Sortie[0]) et de la valeur de 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 (1 10) 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 principal (1 10) 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 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 (1 10) 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 :

· le microcontrôleur principal (1 10) est muni de moyens de mesure d'une période d'exécution d'un ou de plusieurs modules logiciels du microcontrôleur principal (1 10), 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 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 (1 10) en réponse à la quatrième comparaison.

6. Circuit de détection selon l'une quelconque des revendications 1 , 2, 3, 4 ou 5 dans lequel :

• le microcontrôleur principal (1 10) et le microcontrôleur de supervision (120) comprennent, chacun indépendamment, une horloge de fonctionnement (1 15, 125),

• le microcontrôleur de supervision (120) est en outre 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) et d'une valeur prédéterminée d'horloge de fonctionnement (horl*), et

• le microcontrôleur principal (1 10) est en outre muni :

- de moyens de mesure de l'horloge de l'interface de communication (130) et - de moyens de comparaison (1 19) 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 (1 10) puisse détecter une défaillance du microcontrôleur de supervision (120) en réponse à la cinquième comparaison.

7. Circuit de détection selon la revendication 6 dans lequel :

• le microcontrôleur principal (1 10) 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 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 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 (1 10) en réponse à la sixième comparaison.

8. Circuit de détection selon l'une quelconque des revendications 1 , 2, 3, 4, 5, 6 ou 7 dans lequel :

• le microcontrôleur principal (1 10) comprend une première unité d'alimentation (1 17) 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 (1 17, 127) sont physiquement indépendantes l'une de l'autre, · le microcontrôleur principal (1 10) et le microcontrôleur de supervision (120) comprennent, chacun indépendamment, des moyens de mesure de tension, le microcontrôleur principal (1 10) est couplé à la deuxième unité d'alimentation (127) et les moyens de comparaison (1 19) du microcontrôleur principal (1 10) 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 (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 (1 10) puisse détecter une défaillance du microcontrôleur de supervision (120) en réponse à la septième comparaison, et · le microcontrôleur de supervision (120) est couplé à la première unité d'alimentation (1 17) et les moyens de comparaison (1 19) 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 (1 17) par les moyens de mesure et une deuxième plage prédéterminée de tension (V2*) de fonctionnement, de sorte que le microcontrôleur de supervision (120) puisse détecter une défaillance du microcontrôleur principal (1 10) 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 :

· une interface d'actuateur (140) est couplée au microcontrôleur principal (1 10) 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 (1 10) et le microcontrôleur de supervision (120) comprennent, chacun indépendamment, un convertisseur analogique/numérique (1 16, 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 (1 16) du microcontrôleur principal (1 10) 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 (1 10) 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.

Description:
Circuit de détection de défaillances systématiques et aléatoires

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 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 œuvre de fonctions dites critiques d'un véhicule automobile telles que les fonctions ABS, ESP, EPS, EPB ou Airbag.

Pour répondre à ces exigences, la demande de brevet EP 2 685 379 A1 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.

Toutefois, le document EP 2 685 379 A1 n'envisage pas la configuration dans laquelle le microcontrôleur principal comprend au moins deux cœurs 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 cœurs du microcontrôleur principal 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 cœurs de microcontrôleurs.

En outre, les défaillances aléatoires dites « communes » ne peuvent pas non 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 cœurs 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 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 cœurs, 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 cœurs, 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 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 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 cœurs 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 défaillances pour un calculateur électronique automobile. Le circuit comprend :

• un microcontrôleur principal comprenant,

- au moins deux cœurs 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 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 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 ;

• 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 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 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 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 cœurs, et ce, afin d'être conforme au standard ISO 26 262.

Dans une première mise en œuvre, le calcul prédéterminé est un calcul polynomial au moins du deuxième ordre. Ceci afin de s'assurer que les deux cœurs de microcontrôleur sont en capacité de réaliser des calculs corrects.

Dans une deuxième mise en œuvre :

• le microcontrôleur principal comprend un deuxième module logiciel assurant une fonction critique du véhicule automobile, le deuxième module logiciel comprenant 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 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 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 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. Cette mise en œuvre permet de détecter une défaillance dans l'exécution d'une chaîne de fonctions critiques.

Dans une troisième mise en œuvre :

• le microcontrôleur de supervision est muni de moyens de mesure d'un temps qui 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 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 œuvre :

• 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 œuvre :

• 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 œuvre : • 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

« 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 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 œuvre :

• 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 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 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 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 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 œuvre :

• une interface d'actuateur est couplée au microcontrôleur principal et 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, • 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

· 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 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 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 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 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 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 éléments représentés ne sont pas à l'échelle les uns par rapport aux autres, sauf mention contraire. 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 microcontrôleur principal 1 10, un microcontrôleur de supervision 120 et une interface de communication 130.

Le microcontrôleur principal 1 10 comprend deux cœurs de microcontrôleur 1 1 1 et 1 12, configurés pour exécuter en parallèle, des instructions logicielles fournies au microcontrôleur principal 1 10. Plus précisément, en opération, une même instruction est exécutée en parallèle par les deux cœurs de microcontrôleur 1 1 1 et 1 12. Toutefois, il est également envisagé l'utilisation de trois, quatre, cinq ou plus de cœurs de microcontrôleur sans que cela ne nécessite une modification profonde du fonctionnement de l'invention. Le microcontrôleur principal 1 10 comprend également au moins un module logiciel 1 13 permettant d'assurer la mise en œuvre d'une fonction 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 automobile qui peuvent être mises en œuvre, entièrement ou pour partie via un logiciel. En effet, une fonction critique doit être comprise comme pouvant non seulement être mise en œuvre 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 œuvre par le même module logiciel, tel que le module logiciel 1 13.

Le module logiciel 1 13 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 1 13, 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 logiciel 1 13. Par exemple, le point d'entrée prédéterminé Pin du module logiciel 1 13 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 1 13. Dans cet exemple, une tâche périodique peut être exécutée par le système d'exploitation du microcontrôleur principal 1 10.

Le microcontrôleur de supervision 120 peut avoir une configuration différente de celle du microcontrôleur principal 1 10. Par exemple, dans une mise en œuvre particulière, le microcontrôleur de supervision 120 comprend un seul cœur de microcontrôleur (non représenté). Toutefois, selon les besoins, le microcontrôleur principal 1 10 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 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 1 10. Ainsi, le microcontrôleur de supervision 120 connaît la récurrence et l'ordre dans lequel chacun des modules logiciels du microcontrôleur principal 1 10 doit être exécuté.

L'interface de communication 130 est synchrone et est agencée pour coupler le microcontrôleur principal 1 10 et le microcontrôleur de supervision 120 de manière à permettre une supervision mutuelle. Par exemple, l'interface de communication 130 peut être un bus de communication série selon l'un des standards suivants : I2C (en anglais « Inter Integrated Circuit »), RS232 ou SPI (en anglais « Sériai 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 réalisation selon l'invention.

À l'étape S400, le microcontrôleur de supervision 120 fournit au microcontrôleur principal 1 10, 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 œuvre particulière, ces valeurs d'initialisation possèdent une valeur comprise entre 0 et 255. Dans une autre mise en œuvre 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 1 13 est exécuté pour mettre entre œuvre une ou plusieurs fonctions critiques correspondantes. Dans ce cadre, le microcontrôleur principal 1 10 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 1 13, à 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 d'exécution K1 est prédéterminée et connue du microcontrôleur de supervision 120 et du microcontrôleur principal 1 10. Dans une mise en œuvre, la valeur de début d'exécution K1 est une valeur constante tandis que dans une autre mise en œuvre, elle est une valeur spécifique à chaque module logiciel exécutable par le microcontrôleur principal 1 10. 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 envisageables dans la mesure où la formule utilisée est connue du microcontrôleur de supervision 120 et du microcontrôleur principal 1 10.

Ensuite, toujours à l'étape S410, le microcontrôleur principal 1 10 détermine une valeur de point de sortie Sortie[0] au niveau du point de sortie prédéterminé Sout du module logiciel 1 13, à partir de la deuxième valeur d'initialisation InitB et d'une valeur de 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 1 10. 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 valeur spécifique à chaque module logiciel exécutable par le microcontrôleur principal 1 10. 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 microcontrôleur de supervision 120 et du microcontrôleur principal 1 10.

À l'étape S420, le microcontrôleur principal 1 10 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 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 1 10. Par exemple, dans une mise en œuvre particulière, le calcul prédéterminé est un calcul polynomial au moins du deuxième ordre. Ensuite, toujours à l'étape S420, le microcontrôleur principal 1 10 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 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 connaissance de l'ordonnancement des modules logiciels exécutés par le microcontrôleur principal 1 10. 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 est capable de détecter une défaillance du microcontrôleur principal 1 10. 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 supervision 120 peut en déduire qu'au moins une défaillance s'est produite au niveau du microcontrôleur principal 1 10. 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 1 10.

Le mécanisme selon l'invention permet de vérifier que le cycle d'exécution d'un module logiciel du microcontrôleur principal 1 10 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 1 13 n'a pas débuté son exécution alors la valeur de début d'exécution K1 ne sera pas utilisée pour déterminer la valeur de point d'entrée Entree[0] entraînant 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 1 13 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 1 13 est exécuté plus de fois que prévu (par exemple deux fois au lieu d'une seule 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 des défaillances de fautes communes sur les cœurs de microcontrôleur 1 1 1 et 1 12 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 cœurs de microcontrôleur 1 1 1 et 1 12 sont en capacité de réaliser des calculs corrects. En effet, s'il se produit une défaillance commune au niveau des cœurs de microcontrôleur 1 1 1 et 1 12 (par exemple si les cœurs de 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 1 10 peut mettre en œuvre des périphériques intrinsèques au microcontrôleur principal 1 10 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 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 niveau du microcontrôleur principal 1 10 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 permet de prendre des dispositions de sécurité adéquates le plus rapidement possible.

Dans une mise en œuvre particulière, le microcontrôleur de supervision 120 peut détecter une défaillance du microcontrôleur principal 1 10 lorsque ce dernier ne fournit pas la valeur de résultat RESULT[0] dans un temps prédéterminé. Dans cette mise en œuvre, le microcontrôleur de supervision 120 est muni de moyens (non représentés) de mesure d'un temps qui s'est écoulé entre la fourniture au microcontrôleur principal 1 10 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 1 10 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.

Dans une alternative compatible de la précédente mise en œuvre, le microcontrôleur principal 1 10 est muni de moyens (non représentés) de mesure de la période d'exécution du module logiciel 1 13, c'est-à-dire le temps requis pour exécuter le module logiciel 1 13. 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 communication 130. Dans cet agencement particulier, le microcontrôleur de supervision 120 est apte à détecter une défaillance du microcontrôleur principal 1 10 lorsque la période d'exécution mesurée du module logiciel 1 13 est différente d'une période prédéterminée d'exécution du module logiciel 1 13 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. Dans cette mise en œuvre, le « temps aller-retour » prédéterminé et la période prédéterminée d'exécution du module logiciel 1 13 peuvent avoir été déterminés lors des phases de test du circuit 100.

Dans une autre mise en œuvre particulière du circuit de détection 100, le microcontrôleur principal 1 10 comprend une pluralité de modules logiciels. Dans ce 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é de modules logiciels. Dans l'exemple de la figure 1 , le microcontrôleur principal 1 10 comprend un deuxième module logiciel 1 14 en plus du module logiciel 1 13.

De retour à la figure 2, à l'étape S430, le microcontrôleur principal 1 10 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 1 14, à partir de la valeur de point d'entrée Entree[0] et de la valeur de début d'exécution K1 . Ensuite, le microcontrôleur principal 1 10 détermine une valeur de point de sortie Sortie[1 ] au niveau du point de sortie prédéterminé Sout du module logiciel 1 14, à 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 1 10 détermine une valeur de résultat RESULT[1 ] d'un calcul prédéterminé à partir de la valeur 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 microcontrôleur principal 1 10 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 1 10 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 calcul prédéterminé sera considérée pour détecter une défaillance du microcontrôleur principal 1 10. 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 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 l'exécution du module logiciel 1 13 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 1 13.

Les caractéristiques présentées plus haut concernant la possibilité de détecter une défaillance du microcontrôleur principal 1 10 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 œuvre.

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 microcontrôleur principal 1 10 un signal de réamorçage du microcontrôleur principal 1 10, en réponse à la détection d'une défaillance du microcontrôleur principal 1 10, et ce, afin de tenter de réamorcer le microcontrôleur principal 1 10 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 réamorçage du microcontrôleur principal 1 10, en réponse à la détection d'un nombre prédéterminé de défaillances du microcontrôleur principal 1 10, et ce, pendant une période prédéterminée. Par exemple, lorsque de nombreuses demandes de réamorçage du microcontrôleur principal 1 10 sont requises par le microcontrôleur de supervision 120 pendant une période considérée comme courte, cela signifie que la fonction critique assurée par le module logiciel 1 13 n'est plus garantie. En effet, une pluralité de défaillances du microcontrôleur principal 1 10 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 1 10. Au contraire, il pourrait être plus 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 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 principal 1 10 et le microcontrôleur de supervision 120 comprennent, chacun indépendamment, une horloge de fonctionnement 1 15, 125. Le microcontrôleur principal 1 10 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, 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 1 10 et du microcontrôleur de supervision 120. Dans l'exemple de la figure 3, la valeur prédéterminée d'horloge de fonctionnement horl * au niveau du microcontrôleur principal 1 10, est générée à partir d'une horloge 1 15 externe au microcontrôleur principal 1 10. Dans l'exemple de la figure 3, l'horloge externe 1 15 du microcontrôleur principal 1 10 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 autre exemple, on peut également envisager de stocker la valeur prédéterminée d'horloge de fonctionnement horl * dans une mémoire 1 18 du microcontrôleur principal 1 10. 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 1 10 est muni de moyens de comparaison 1 19 pour réaliser une 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 1 10 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 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.

Dans une réalisation particulière de la figure 3, le microcontrôleur principal 1 10 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 1 10. En d'autres termes, le signal d'initialisation Sp est configuré pour être envoyé périodiquement par le microcontrôleur principal 1 10 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 fonctionnement 1 15. 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 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 1 10 dans sa capacité à générer de manière périodique un signal.

De retour à la figure 1 , selon un autre mode de réalisation du circuit 100, il est prévu que le microcontrôleur principal 1 10 et le microcontrôleur de supervision 120 comprennent, chacun indépendamment, une unité d'alimentation 1 17, 127. Dans ce mode de réalisation, le microcontrôleur principal 1 10 est couplé à l'unité d'alimentation 127 du microcontrôleur de supervision 120, et le microcontrôleur de supervision 120 est l'unité d'alimentation 1 17 du microcontrôleur principal 1 10. En outre, il est prévu que le microcontrôleur principal 1 10 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 1 19 du microcontrôleur principal 1 10 sont également configurés pour 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 1 17 et une plage prédéterminée de tension V2 * de fonctionnement de l'unité d'alimentation 1 17. 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 1 10 et peut être stockée dans la mémoire 1 18. En outre, la plage prédéterminée de tension V2 * de fonctionnement de l'unité d'alimentation 1 17 est connue du microcontrôleur de supervision 120 et peut être stockée dans la mémoire 128. Avec cet agencement, les résultats des comparaisons permettent au microcontrôleur principal 1 10 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.

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_1 10 de l'unité d'alimentation 1 17 du microcontrôleur principal 1 10. Par la suite, la mesure de tension Vcc_1 10 est comparée à la plage prédéterminée de tension V2 * de fonctionnement de l'unité d'alimentation 1 17 (zone représentée en gris clair sur la figure 4). Ainsi, lorsque la mesure de tension Vcc_1 10 est dans la plage prédéterminée de tension V2 * de fonctionnement de l'unité d'alimentation 1 17 (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 1 17 n'est détectée par le microcontrôleur de supervision 120. Par contre, une défaillance de l'unité d'alimentation 1 17 sera détectée par le microcontrôleur de supervision 120 si la mesure de tension Vcc_1 10 se situe en dehors de la plage prédéterminée de tension V2 * de fonctionnement de l'unité d'alimentation 1 17. L'agencement de la figure 4 peut être complété pour détecter une sous-tension de l'unité d'alimentation 1 17. La connaissance de cette information peut être intéressante, car la tension Vcc_1 10 peut être utilisée pour alimenter un périphérique PERIPH du microcontrôleur principal 1 10. Il est donc intéressant de détecter une sous-tension de l'unité d'alimentation 1 17 directement au niveau du microcontrôleur principal 1 10. 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_1 10 se situe en dessous de la plage prédéterminée de tension V2 * de fonctionnement de l'unité d'alimentation 1 17.

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 1 10 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 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 1 10 et le microcontrôleur de supervision 120 comprennent, chacun indépendamment, un convertisseur analogique/numérique (ADC) 1 16, 126. Chaque ADC 1 16, 126 est 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 1 16 du microcontrôleur principal 1 10 et la valeur de conversion numérique de l'ADC 126 du microcontrôleur de supervision 120. Dans cet agencement, la valeur de conversion numérique de l'ADC 1 16 du microcontrôleur de supervision 120 est envoyée au microcontrôleur principal 1 10 via l'interface de communication 130. Avec cet agencement, le résultat de la comparaison permet au microcontrôleur principal 1 10 de détecter une défaillance de l'ADC 1 16 du microcontrôleur principal 1 10 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 1 10, 120, on peut en déduire qu'au moins un des ADC est défectueux. Dans un deuxième agencement, les moyens de comparaison 1 19 du microcontrôleur principal 1 10 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 1 16 du microcontrôleur principal. Par la suite, une défaillance d'au moins l'un des ADC peut être déduite de la comparaison des mesures recueillies par le microcontrôleur principal 1 10, 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 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 1 10 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 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 1 10. 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. Avec cet agencement, si une défaillance d'au moins un microcontrôleur 1 10, 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 de réalisation de l'invention. Dans l'exemple de la figure 5, on peut voir une trame de données Tx_1 10 envoyées par le microcontrôleur principal 1 10 et une trame de données Tx_120 envoyées par le microcontrôleur de supervision 120. Les trames Tx_1 10 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 microcontrôleur principal 1 10 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 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 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 1 19 du microcontrôleur principal 1 10 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 1 10, et l'identificateur de la trame émise par le microcontrôleur principal 1 10. 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 1 10 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 supervision 120.

L'exemple de la figure 5 montre l'identificateur ID 0 de la trame Tx_120 et l'identificateur IDi de la trame Tx_1 10. Dans cet exemple, l'identificateur ID 0 correspond à une valeur numérique incrémentée de 1 par le microcontrôleur principal 1 10 à chaque émission de trame tandis que l'identificateur IDi correspond à une valeur numérique 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 0 et IDi 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 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_1 10 comprend le résultat RESULT[0] du calcul polynomial réalisé par les deux cœurs 1 1 1 et 1 12 du microcontrôleur principal 1 10, tels que décrits plus haut. Les trames Tx_1 10 et Tx_120 peuvent également comprendre une 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_1 10 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 microcontrôleur à double cœurs, 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, 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 œuvre 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 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.

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 dessins ne sauraient être compris comme limitant la portée de l'invention.