Brevet FR3116352A1 — publié le 20220520

L’invention concerne un dispositif (1) de contrôle moteur, conforme à la norme de sûreté VDA, comprenant un premier module (L1) logiciel en charge du pilotage d’un moteur (M), un deuxième module (L2) logiciel en charge de la surveillance du premier module (L1) logiciel et apte à détecter une défaillance du premier module (L1), à décider au moins une action (S1, S2) primaire de mise en sécurité comprenant une coupure (S1) du moteur (M) et/ou une réinitialisation (S2) du processeur (P) et à demander leur exécution, et un troisième module (L3) matériel en charge d’exécuter ladite au moins une action (S1, S2) primaire de mise en sécurité, où le deuxième module (L2) est encore apte à exécuter, par lui-même, au moins une action (S’1, S’2) secondaire de mise en sécurité comprenant une coupure (S’1) du moteur (M) et/ou une réinitialisation (S’2) du processeur (P). Figure d’abrégé : Figure 2 Dispositif de contrôle moteur comprenant une mise en sécurité secondaire L’invention concerne un dispositif de contrôle moteur. Ce dispositif de contrôle moteur est en charge de la commande et du contrôle d’un moteur électrique ou thermique. Il est avantageusement architecturé conformément à la norme de sûreté VDA. De manière connue, telle qu’illustrée à la , un dispositif 1 de contrôle moteur selon la norme VDA comprend un premier module logiciel, nommé L1. Ce premier module L1 est en charge du pilotage effectif d’un moteur M électrique ou thermique. Pour cela le premier module L1 est interfacé avec le moteur M au moyen de capteurs SE et d’actionneurs AC, figurés chacun par une flèche. Le premier module L1 s’exécute sur un premier cœur C1 d’un processeur P. Afin de sécuriser le fonctionnement du premier module L1 et du moteur M, le dispositif 1 de contrôle moteur comprend encore un deuxième module logiciel, nommé L2. Ce deuxième module L2 est en charge de la surveillance du premier module L1. Aussi le deuxième module L2 surveille le fonctionnement et les productions du premier module L1 et est ainsi apte à détecter une défaillance du premier module L1. Pour cela le deuxième module L2 est interfacé avec le moteur M au moyen de capteurs SE. Il reçoit encore, transmis par le premier module L1, des données D1 indicatives du fonctionnement. Il peut commander au premier module L1 de se placer en mode dégradé (ou limp home mode) au moyen d’une commande LH. Le deuxième module L2 s’exécute sur un deuxième cœur C2, distinct du premier cœur C1, du même processeur P. En cas de détection d’une défaillance du premier module L1, le deuxième module L2 décide d’au moins une action S1, S2 primaire de mise en sécurité du moteur M et du dispositif 1 de contrôle moteur. Cette action S1, S2 primaire est décidée par le deuxième module L2 qui en confie l’exécution à un troisième module L3. Une première action S1 primaire comprend une coupure S1 du moteur M. Une deuxième action S2 primaire comprend une réinitialisation S2 (ou « reset » en anglais) du processeur P. Le deuxième module L2 choisit la première action S1 primaire ou la deuxième action S2 primaire en fonction du contexte. Le plus souvent, la première action S1 primaire est demandée si la deuxième action S2 primaire n’a pas eu d’effet, si par exemple le véhicule continue d’accélérer alors qu’une réinitialisation du dispositif 1 a été demandée. Une fois que le deuxième module L2 a décidé de ladite au moins une action S1, S2 primaire de mise en sécurité, il demande, via une commande SR à un troisième module L3 matériel de les exécuter. Aussi, le dispositif 1 de contrôle moteur comprend encore un troisième module matériel, nommé L3. Ce troisième module est matériel et indépendant du processeur P afin d’assurer sa fiabilité et son indépendance. Le troisième module L3 est encore en charge de surveiller le deuxième module L2, mais cette fonction n’impacte pas l’invention. Pour cela le deuxième module L2 échange avec le troisième module L3 des données D2 concernant son fonctionnement. Les noms des modules L1, L2, L3 correspondent respectivement aux désignations « Level 1 », « Level 2, « Level 3 » de la norme de sûreté VDA. Cependant, il peut arriver que le troisième module L3 soit défaillant. Il peut s’agir d’une défaillance intrinsèque du troisième module L3 lui-même ou d’une défaillance au niveau des actionneurs permettant l’exécution des actions S1, S2 primaires de mise en sécurité. Le résultat, et donc le problème, est le même : alors qu’une défaillance du premier module L1 a été détectée par le deuxième module L2 et qu’une mise en sécurité a été demandée par le deuxième module L2 au troisième module L3, le troisième module L3 n’assure pas sa fonction et le premier module L1 continue de contrôler, sans restriction, le moteur M. Aussi, il convient de proposer une solution alternative, permettant de pallier ce problème. Pour cela, l’invention a pour objet un dispositif de contrôle moteur, conforme à la norme de sûreté VDA, comprenant un premier module logiciel en charge du pilotage d’un moteur, s’exécutant sur un premier cœur d’un processeur, un deuxième module logiciel en charge de la surveillance du premier module logiciel et apte à détecter une défaillance du premier module, à décider au moins une action primaire de mise en sécurité comprenant une coupure du moteur et/ou une réinitialisation du processeur et à demander leur exécution, le deuxième module s’exécutant sur un deuxième cœur du processeur, différent du premier cœur, et un troisième module matériel en charge d’exécuter ladite au moins une action primaire de mise en sécurité, à la demande du deuxième module, où le deuxième module est encore apte à exécuter, par lui-même, au moins une action secondaire de mise en sécurité comprenant une coupure du moteur et/ou une réinitialisation du processeur. Des caractéristiques ou des modes de réalisation particuliers, utilisables seuls ou en combinaison, sont : - le deuxième module est apte à exécuter ladite au moins une action secondaire après avoir demandé l’exécution de ladite au moins une action primaire, préférentiellement après un délai apte à permettre au troisième module d’exécuter ladite au moins une action primaire de mise en sécurité, - le deuxième module est apte à exécuter la coupure du moteur en envoyant un ordre adapté au premier module, - le premier module comprend au moins un sous-module dédié à répondre à l’ordre adapté, - le sous-module applique une consigne nulle à toutes les fonctions permettant le fonctionnement du moteur, - une consigne nulle comprend une consigne de couple nul et une consigne de non transfert d’énergie vers l’unité de stockage pour un moteur électrique et une coupure d’injection pour un moteur thermique, - le deuxième module exécute la réinitialisation du processeur en exécutant une instruction qui provoque une réinitialisation du processeur, telle qu’un saut à une adresse de réinitialisation, une opération interdite, telle qu’une division par zéro, ou encore un appel à un périphérique interne dédié. L’invention sera mieux comprise à la lecture de la description qui suit, faite uniquement à titre d’exemple, et en référence aux figures en annexe dans lesquelles : montre un synoptique d’un dispositif contrôle moteur selon l’art antérieur, montre un synoptique d’un dispositif contrôle moteur selon l’invention, illustre un diagramme des opérations selon l’art antérieur, illustre un diagramme des opérations selon l’invention. L’invention concerne un dispositif 1 de contrôle moteur, conforme à la norme de sûreté VDA, tel qu’illustré à la . Un tel dispositif reprend tous les points d’un dispositif de l’art antérieur, tel que décrit précédemment, en relation avec la . Tel qu’illustré sur le diagramme de la , illustrant l’art antérieur, le deuxième module L2, figuré au centre, teste en permanence le fonctionnement du premier module L1. Ceci est réalisé dans une étape E1 de test, réalisé notamment avec les données D1 transmises par le premier module L1 au deuxième module L2 et avec les mesures réalisées via les capteurs SE. Tant qu’aucune défaillance n’est détectée, le test E1 est OK et autorise la poursuite de l’exécution du premier module L1, tel que figuré par une ligne en chicanes. Si une défaillance est détectée pour le premier module L1, le dispositif 1 passe dans un mode dégradé SH à l’étape E2. Cette étape E2 s’accompagne d’une demande LH de passage en mode dégradé (ou en anglais « limp home ») envoyée au premier module L1 pour qu’il exécute des actions de réduction de performance. A l’étape E3, le même test qu’à l’étape E1 est réitéré. Si aucune défaillance n’est détectée et que le dispositif 1 est OK, il reste dans le mode dégradé SH. Si au contraire le test E3 confirme la défaillance, l’exécution se poursuit par une étape E4 de mise en sécurité. Cette étape s’accompagne d’une demande SR envoyée au troisième module L3 pour qu’il exécute les actions S1, S2 primaires, à l’étape E5. Afin de pallier une défaillance du troisième module L3 qui, pour une raison ou une autre, pourrait faire défaut à exécuter une action S1, S2, primaire de mise en sécurité, le dispositif 1 de contrôle moteur selon l’invention est modifié relativement à l’art antérieur afin que le deuxième module L2 soit encore apte à exécuter, directement par lui-même, au moins une action S’1, S’2 secondaire de mise en sécurité, et ce sans passer par l’intermédiaire du troisième module L3. Une telle action S’1, S’2 secondaire comprend une coupure S’1 du moteur M et une réinitialisation S’2 du processeur P, sur lequel, pour rappel, s’exécutent le premier module L1 et le deuxième module L2. Ainsi les actions primaires S1, S2 sont décidées par le deuxième module L2 et exécutées par le troisième module L3. Au contraire, les actions secondaires S’1, S’2 sont directement exécutées par le deuxième module L2 et ce sans faire appel au troisième module L3. Il peut être remarqué que les actions S1, S2 primaires et les actions S’1, S’2 secondaires se ressemblent. Elles sont cependant distinguées. Si elles sont fonctionnellement identiques, au moins dans leur objectif, elles diffèrent notamment dans leurs moyens de mise en œuvre pour atteindre cet objectif. La voie normale, de mise en sécurité est celle de l’exécution d’au moins une action S1, S2 primaire par le troisième module L3. Aussi, selon une caractéristique, plus particulièrement illustrée à la , le deuxième module L2 est apte à exécuter ladite au moins une action S’1, S’2 secondaire après avoir demandé l’exécution de ladite au moins une action S1, S2 primaire. Ainsi, si le troisième module L3 n’est pas défaillant, il exécute ladite au moins une action S1, S2 primaire. L’exécution de ladite au moins une action S’1, S’2 secondaire par le deuxième module L2 n’intervient alors pas, la réinitialisation du processeur P se produisant avant, mettant fin à au déroulement du deuxième module L2. Selon l’invention, le deuxième module L2 comprend les étapes F1-F5 identiques aux étapes présentes dans l’art antérieur E1-E5 et des étapes supplémentaires F6-F10. Aussi, après que l’étape F4 ait demandé l’exécution des actions S1, S2 primaires au troisième module L3, les étapes F6-F10 préparent une solution de mise en sécurité de secours. Ces étapes F6-F10 sont déclenchées après la demande F4. L’étape F6, optionnelle, met en place une attente W. Le délai d’attente est alors avantageusement tel que le troisième module L3 ait le temps d’exécuter ladite au moins une action S1, S2 primaire de mise en sécurité. Si le troisième module L3 est fonctionnel, le déclenchement d’une réinitialisation du processeur P, via l’action S2 primaire, interrompt le déroulement du deuxième module L2 après l’étape F4 et avant les étapes F7 et F8. Si au contraire, le troisième module L3 n’exécute pas les actions S1, S2 primaires de mise en sécurité, le déroulement du deuxième module L2 se poursuit. A l’issue de l’éventuelle attente F6, le deuxième module L2 exécute l’étape F7 et l’étape F9 qui exécutent respectivement l’action S’1 et l’action S’2 secondaires de mise en sécurité. Selon une autre caractéristique, le deuxième module L2 exécute la coupure S’1 du moteur M en envoyant un ordre adapté O au premier module L1. Selon une autre caractéristique, pour répondre à l’ordre adapté O, le premier module L1 comprend au moins un sous-module T, additionnel relativement à l’art antérieur, dédié à répondre à l’ordre adapté O. Selon une autre caractéristique, ce module T, lorsqu’un ordre adapté O est reçu, modifie l’exécution du premier module L1 de manière à ce que les consignes destinées au moteur M et à son fonctionnement soient toutes annulées, inhibées ou rendues inopérantes, de manière à stopper le moteur M. Selon une autre caractéristique, une consigne nulle comprend une consigne de couple nul et une consigne de non transfert d’énergie vers l’unité de stockage (batterie) pour un moteur M électrique et une coupure d’injection pour un moteur M thermique. Une consigne nulle doit s’entendre d’une consigne tendant à stopper le moteur M et à le placer en sécurité. Ainsi une consigne d’injection nulle coupe l’injecteur ou réduit son débit à zéro. Une consigne proportionnelle est ainsi mise à sa consigne de repos ou pour simplifier le vocabulaire, annulée. Une consigne tout ou rien ou multi positions est aussi basculée en consigne de repos. Ainsi, si la boîte de vitesse est commandée, une consigne de repos ou « nulle » peut être une consigne de mise au point mort. Selon une autre caractéristique, le deuxième module L2 exécute la réinitialisation S’2 du processeur P en exécutant une instruction qui provoque directement ou indirectement une réinitialisation du processeur P. Cette réinitialisation ou auto-réinitialisation, puisque le deuxième module L2 réinitialise le processeur P sur lequel il s’exécute, est illustrée par l’étape F10. Une telle instruction peut être un saut à une adresse de réinitialisation, une opération interdite, telle qu’une division par zéro, ou encore un appel à un périphérique interne dédié, tel que le SMU, qui est en charge de commander une telle réinitialisation et qui est adressé via un driver dédié. Selon une autre caractéristique, le deuxième module L2 est encore apte à compter le nombre de réinitialisations S’2 du processeur P exécutées. Ceci est réalisé par l’étape F8, qui incrémente un compteur. Cette étape est réalisée avant l’étape F9 qui exécute la réinitialisation S’2 du processeur. Ainsi, si la réinitialisation S’2 du processeur P est sans effet sur le problème initial (défaillance du premier module L1), l’étape F8 est exécutée à nouveau. S’agissant d’une réinitialisation à chaud, le compteur n’est pas effacé, contrairement à une réinitialisation à froid, se produisant lors d’une coupure du contact. L’accroissement du compteur de nombre de réinitialisations est indicateur d’une inutilité de la réinitialisation du processeur P. Aussi, selon une autre caractéristique, le dépassement, par le nombre de réinitialisations S’2 du processeur P exécutées, d’un certain seuil, préférentiellement égal à 8, ce dépassement étant détecté par une valeur trop grande dudit compteur, l’étape F9 n’est plus appliquée. Ceci, interdit toute nouvelle tentative d’exécution d’une réinitialisation S’2 du processeur P. Dans ce cas, il est espéré que l’autre action de mise en sécurité S1 ou S’1, ait pu aboutir et arrêter le moteur M. L’invention a été illustrée et décrite en détail dans les dessins et la description précédente. Celle-ci doit être considérée comme illustrative et donnée à titre d’exemple et non comme limitant l’invention à cette seule description. De nombreuses variantes de réalisation sont possibles. 1 : dispositif, AC : actionneurs, C1, C2 : cœur de micro-processeur, D1, D2 : données, E1-E5, F1-F10 : étape, L1, L2, L3 : module, LH : commande de mode dégradé « limp home », M : moteur, O : ordre adapté, P : processeur, S1, S2 : action primaire, S’1, S’2 : action secondaire, SE : capteurs, SH : commande d’action de mode dégradé SR : commande d’action de mise en sécurité, T : sous-module d’arrêt moteur, W : attente. Dispositif (1) de contrôle moteur, conforme à la norme de sûreté VDA, comprenant un premier module (L1) logiciel en charge du pilotage d’un moteur (M), s’exécutant sur un premier cœur (C1) d’un processeur (P), un deuxième module (L2) logiciel en charge de la surveillance du premier module (L1) logiciel et apte à détecter une défaillance du premier module (L1), à décider au moins une action (S1, S2) primaire de mise en sécurité comprenant une coupure (S1) du moteur (M) et/ou une réinitialisation (S2) du processeur (P) et à demander leur exécution, le deuxième module (L2) s’exécutant sur un deuxième cœur (C2) du processeur (P), différent du premier cœur (C1), et un troisième module (L3) matériel en charge d’exécuter ladite au moins une action (S1, S2) primaire de mise en sécurité, à la demande du deuxième module (L2), caractérisé en ce que le deuxième module (L2) est encore apte à exécuter, par lui-même, au moins une action (S’1, S’2) secondaire de mise en sécurité comprenant une coupure (S’1) du moteur (M) et/ou une réinitialisation (S’2) du processeur (P). Dispositif (1) selon la revendication précédente, où le deuxième module (L2) est apte à exécuter ladite au moins une action (S’1, S’2) secondaire après avoir demandé l’exécution de ladite au moins une action (S1, S2) primaire, préférentiellement après un délai apte à permettre au troisième module (L3) d’exécuter ladite au moins une action (S1, S2) primaire de mise en sécurité. Dispositif (1) selon l’une quelconque des revendications précédentes, où le deuxième module (L2) est apte à exécuter la coupure (S’1) du moteur (M) en envoyant un ordre adapté (O) au premier module (L1). Dispositif (1) selon la revendication précédente, où le premier module (L1) comprend au moins un sous-module (T) dédié à répondre à l’ordre adapté (O). Dispositif (1) selon la revendication précédente, où le sous-module (T) applique une consigne nulle à toutes les fonctions permettant le fonctionnement du moteur (M). Dispositif (1) selon la revendication précédente, où une consigne nulle comprend une consigne de couple nul et une consigne de non transfert d’énergie vers l’unité de stockage pour un moteur (M) électrique et une coupure d’injection pour un moteur (M) thermique. Dispositif (1) selon l’une quelconque des revendications précédentes, où le deuxième module (L2) exécute la réinitialisation (S’2) du processeur (P) en exécutant une instruction qui provoque une réinitialisation du processeur (P), telle qu’un saut à une adresse de réinitialisation, une opération interdite, telle qu’une division par zéro, ou encore un appel à un périphérique interne (SMU) dédié.