FR 3033429 A1 20160909 FR 1551794 A 20150304 1 La présente invention concerne un microcontrôleur avec un module de diagnostic et un procédé d'accès audit module de diagnostic dudit microcontrôleur. Actuellement, de très nombreux systèmes électroniques intégrant un calculateur se présentant sous la forme d'un boîtier fermé nous entourent. Un connecteur 5 est prévu pour faire l'interface entre les moyens électroniques à l'intérieur du boîtier et l'extérieur. Lorsqu'un problème survient dans le boîtier électronique, il est généralement prévu d'utiliser un outil de diagnostic qui vient se brancher sur le connecteur et permet d'accéder à certaines fonctions logicielles intégrées dans le calculateur. Le plus souvent, il 10 est possible ainsi de reprogrammer le logiciel du boîtier électronique ou de faire un diagnostic pour au moins connaître l'origine du problème, et parfois aussi le résoudre. Par contre, pour certains problèmes, ces outils ne fonctionnent pas et, en dernier recours, il peut être nécessaire d'intervenir directement à l'intérieur du boîtier pour, d'une part, diagnostiquer les problèmes et, d'autre part, les résoudre si c'est possible. 15 La figure 1 ci-jointe illustre un calculateur de l'art antérieur. Il peut s'agir d'un calculateur moteur pour un véhicule automobile mais aussi de tout système électronique dans un boîtier fermé (qu'il s'agisse d'un calculateur industriel ou d'un produit de grande consommation tel un jouet, un téléphone etc.). Un boîtier 2 a été schématiquement représenté sur la figure 1 par un 20 rectangle. On trouve à l'intérieur de celui-ci un microcontrôleur 4 qui intègre par exemple sur une même puce, un microprocesseur, de la mémoire et un bus d'entrées/sorties 6. Dans la forme de réalisation illustrée, le boîtier 2 présente deux connecteurs 8 qui réalisent une interface électrique entre l'intérieur et l'extérieur du boîtier et permettent l'échange de données dans les deux sens extérieur et intérieur. 25 La figure 1 représente les éléments mis en oeuvre lorsqu'un problème survient et que l'on intervient sur le dispositif électronique pour diagnostiquer le problème et tenter d'y remédier avec un outil de diagnostic extérieur 10 branché à un connecteur 8. Lorsque l'outil de diagnostic extérieur 10 envoie un signal sur la ou les broches prévues à cet effet, une procédure de diagnostic est mise en route au niveau du microcontrôleur 4. 30 Le signal envoyé par l'outil de diagnostic extérieur 10 est détecté par un circuit de détection 12 et transmis via le bus d'entrées/sorties 6 au microcontrôleur 4. Ainsi, si l'outil de diagnostic extérieur 10 envoie le signal ad hoc sur la ou les broches du connecteur 8, alors l'information est envoyée via le circuit de détection 12 au microcontrôleur 4 qui passe automatiquement en mode de diagnostic. Dans ce mode, le 35 microcontrôleur 4 attend par exemple un logiciel à charger et l'exécute après chargement. 3033429 2 Une communication peut ainsi être établie entre le microcontrôleur 4 et l'outil de diagnostic extérieur 10 pour, entre autres choses, procéder à une mise à jour. Toutefois, dans certains cas de figures, en fonction du problème rencontré, il n'est pas possible de faire un diagnostic avec l'outil de diagnostic extérieur 10 et il faut 5 ouvrir le boîtier 2. Il est prévu alors à cet effet un connecteur de débogage 14 pour accéder au microcontrôleur 4 par un port 16 de débogage du microcontrôleur 4. Les inconvénients de la structure décrite ci-dessus (et illustrée sur la figure 1) sont notamment qu'il convient de prévoir au moins une broche sur un connecteur 8 externe du système électronique, un circuit de détection 12 et au moins une entrée au 10 niveau du bus d'entrées/sorties 6 pour activer le mode diagnostic. En outre, même si l'accès par la broche du connecteur n'est pas censé être câblé dans un produit de série, il constitue une faille de sécurité du système électronique. En outre, si un accès au connecteur de débogage 14 à l'intérieur du boîtier 2 est nécessaire, il convient alors d'ouvrir le boîtier 2 qui est dans la quasi-totalité des cas 15 scellé pour éviter justement son ouverture. Cette procédure rend alors par la suite le boîtier 2 inutilisable et il doit être changé. La présente invention a alors pour but de fournir un procédé d'accès à un module de diagnostic et/ou d'intervention pour un système électronique qui ne nécessite pas d'allouer au moins une broche spécifique pour la configuration du microcontrôleur 20 (broche permettant notamment de passer en mode diagnostic) et un système électronique correspondant. Avantageusement, ce procédé d'accès au module de diagnostic permettra d'éviter aussi l'ouverture du boîtier du système électronique, même en cas de problème sérieux. De préférence, la sécurité du système électronique proposé sera augmentée. 25 Avantageusement, la mise en oeuvre de l'invention sur un système électronique de série n'entrainera pas de surcoût de fabrication de ce produit. À cet effet, la présente invention propose un système électronique comportant un microcontrôleur incluant un microprocesseur, un bus d'entrées/sorties et un module d'interface entre le bus d'entrées/sorties du microprocesseur et le connecteur. 30 Selon la présente invention, ce microcontrôleur comporte en outre un module routeur associé à une mémoire ; le module routeur est connecté de manière à recevoir tout signal d'entrée reçu par le bus d'entrées/sorties ; le module routeur comporte des moyens de comparaison permettant de comparer l'information contenue dans les signaux reçus avec au moins un code mémorisé dans la mémoire, et le module routeur comporte 35 en outre des moyens de commutation pour envoyer chaque information reçue vers le microprocesseur ou vers un module de diagnostic en fonction du résultat de la 3033429 3 comparaison de l'information contenue dans le signal avec le code au nombre d'au moins un mémorisé. Cette structure permet de créer une liaison autorisant l'accès à un ou plusieurs modules de diagnostic grâce à la présence du module routeur, associé à une mémoire, par exemple une mémoire de type mémoire flash. Il devient de la sorte inutile de venir ouvrir le boîtier dans lequel se trouve le microcontrôleur pour avoir accès au module de diagnostic par son connecteur qui peut devenir optionnel avec une telle architecture. Le module d'interface d'un tel microcontrôleur fonctionne par exemple selon le 10 protocole CAN (sigle anglais pour "Controller Area Network" ou gestionnaire de réseau de communication). D'autres protocoles (Ethernet, Flexray, ...) peuvent aussi être envisagés. Une variante de réalisation prévoit par exemple que le microcontrôleur tel que décrit plus haut comporte en outre un port de débogage associé à un module de diagnostic. Ce port de débogage est bien entendu optionnel puisqu'il est possible 15 d'accéder au module de diagnostic par une autre voie. La présente invention propose également un procédé d'accès à un module de diagnostic qui comporte les étapes suivantes : a) lecture des trames provenant du module d'interface, b) comparaison de l'information contenue dans chaque trame avec des 20 paramètres mémorisés dans une mémoire, c) en fonction du résultat de la comparaison : - envoi de la trame de façon transparente vers le microprocesseur, - envoi de la trame vers le module de diagnostic. En variante de ce procédé, il est proposé un procédé d'accès à un module de 25 diagnostic d'un microcontrôleur dans lequel le microcontrôleur comporte plusieurs modules de diagnostic. La variante de procédé reprend les étapes a) et b) ci-dessus et à l'étape c), les trois options suivantes sont prévues : - envoi de la trame vers le microprocesseur (105), - envoi de la trame vers un premier module de diagnostic (126), 30 - envoi de la trame vers un autre module de diagnostic (126b) pour activer entre autres un service de programmation série. Une variante de ces procédés prévoit que la lecture de chaque trame et la comparaison de l'information contenue dans les trames avec les paramètres mémorisés dans la mémoire sont réalisées par un module dit module routeur, et que le module 35 routeur assure également la prise en charge de la gestion de chiens de garde en exploitant les paramètres stockés dans la mémoire. 3033429 4 La présente invention concerne également un calculateur destiné à un véhicule automobile et comportant un microcontrôleur tel que décrit ci-dessus. Des détails et avantages de la présente invention apparaitront mieux de la description qui suit, faite en référence au dessin schématique annexé sur lequel : 5 la figure 1 illustre un système électronique intégrant un microcontrôleur de l'art antérieur, la figure 2 illustre, dans un système électronique, selon la présente invention, l'architecture d'un microcontrôleur supportant des modes de diagnostic au travers d'un module de communication standard et son procédé d'activation sécurisé des modes de diagnostic grâce à un module routeur exploitant des données stockées dans une mémoire interne du microcontrôleur. La figure 1 illustrant un dispositif de l'art antérieur a déjà été décrite au préambule. La figure 2 illustre un nouveau calculateur. Il peut s'agir d'un calculateur moteur pour un véhicule automobile mais aussi de tout système électronique dans un boîtier fermé (qu'il s'agisse d'un calculateur industriel ou d'un produit de grande consommation tel un jouet, un téléphone...). Un boîtier 102 a été schématiquement représenté sur la figure 2 par un rectangle. On trouve à l'intérieur de celui-ci un microcontrôleur 104 qui intègre par exemple sur une même puce, un microprocesseur 105, de la mémoire et un bus d'entrées/sorties 106. Dans la forme de réalisation illustrée, le boîtier 102 présente deux connecteurs 108 qui réalisent une interface électrique entre l'intérieur et l'extérieur du boîtier 102 et permettent l'échange de données dans les deux sens extérieur et intérieur. Le calculateur décrit est par exemple un calculateur fonctionnant selon le protocole CAN. Entre le connecteur 108 et le bus d'entrées/sorties 106 du microcontrôleur 104, une interface CAN 118 d'adaptation de niveaux électriques est prévue. Dans le microcontrôleur 104, un module CAN 120 est classiquement prévu 30 pour lire l'information reçue sur le port d'entrées/sorties 106 et la fournir au bon format au microprocesseur 105. De façon originale, il est prévu ici de disposer entre le module CAN 120 et le microprocesseur 105 un module routeur 122. Ce dernier est associé à une mémoire 124, par exemple de type mémoire flash, qui lui est dédiée. 35 Le module routeur 122 est relié à un premier module de diagnostic 126 et à un ou plusieurs seconds modules de diagnostic 126b. 3033429 5 Le module routeur 122 réceptionne toute l'information entrante et, en fonction des paramètres enregistrés dans la mémoire 124, redirige les trames correspondant à ladite information vers le premier module de diagnostic 126 ou un second module de diagnostic 126b ou réachemine les trames de communication standard vers le 5 microprocesseur 105 (pour assurer sa fonction de base). Le module routeur 122 est alors transparent dans le sens où il laisse passer les données identifiées comme faisant partie de sa fonction de base en direction du microprocesseur 105. L'activation d'un mode de diagnostic se fait en envoyant des données spécifiques par le connecteur 108 auquel un ordinateur portable 110 est connecté. De 10 manière classique, une trame de données contient au moins un identifiant. Comme il ressort de la description faite en référence à la figure 2, les données sont transmises au microcontrôleur 104 par l'interface CAN 118 puis entrent dans le microcontrôleur 104 par le port d'entrées/sorties 106 avant de passer dans le module CAN 120. Elles arrivent alors dans le module routeur 122. Dans ce dernier, le(s) identifiant(s) de la trame de données 15 est comparé aux paramètres de la mémoire 124. Ainsi, dans l'implémentation de la figure 2, si les trames transmises contiennent les identifiants 131 SIDO, SID1, ... SIDn, alors le mode de fonctionnement du microcontrôleur 104 devra être le mode de programmation en série géré au sein du second module de diagnostic 126b et si les données transmises contiennent les 20 identifiants 132 DIDO, DID1, ... DIDn, alors le mode de fonctionnement du microcontrôleur 104 devra être le mode de débogage géré au sein du premier module de diagnostic 126. Tous ces identifiants sont mémorisés dans la mémoire 124 qui contient en outre (liste éventuellement non exhaustive) : 25 - des paramètres dits paramètres CAN 128 liés au protocole CAN utilisé par le microcontrôleur 104 comme configuration de démarrage, - des paramètres dits paramètres de gestion du « watchdog » 130 utilisés pour le désactiver ou le rafraichir durant l'activation des modules de diagnostic, - ainsi que des mots de passe. Dans le cas d'implémentation sur un bus CAN, pour entrer dans le mode de programmation en série, plusieurs étapes sont par exemple prévues : i) l'ordinateur portable 110 envoie une trame contenant l'identifiant SIDO et le mot de passe SPWDO (éléments 131 mémorisés dans la mémoire 124). Pour cette première trame, le système CAN est en mode écoute passive uniquement. Le mot de 35 passe est alors contrôlé et comparé au mot de passe correspondant stocké dans la mémoire 124 et permet le passage à l'étape suivante. 3033429 6 ii) une deuxième trame avec l'identifiant SID1 et le mot de passe SPWD1 (éléments 131 mémorisés dans la mémoire 124) est envoyée par l'ordinateur portable 110. Le module routeur 122 vérifie le mot de passe en le comparant aux mots de passe mémorisés dans la mémoire 124. 5 Le succès de cette étape permet le passage à l'étape suivante. À compter du moment où les deux mots de passe ont été reconnus, le microcontrôleur 104 passe alors en mode de programmation en série. Le "chien de garde" (plus connu sous le nom anglais "watchdog") du microprocesseur est de préférence désactivé ou rafraichi. 10 iii) à N : des trames sont ensuite envoyées par l'ordinateur portable 110 avec l'identifiant SID2, et contenant des données telles que l'adresse de stockage, la taille du code, et les données brutes binaires à télécharger en mémoire. Le module 126b répond à chaque trame avec une trame contenant l'identifiant SID3 et des données d'acquittement ou de contrôle de la communication. 15 De manière sensiblement similaire, il est possible également avec le microcontrôleur 104 décrit plus haut de passer en mode débogage. Un procédé pour passer en mode débogage est proposé ci-après à titre d'exemple non limitatif avec les étapes suivantes : i) l'ordinateur portable 110 envoie une trame contenant l'identifiant DIDO et le 20 mot de passe DPWDO (éléments 132 mémorisés dans la mémoire 124). Pour cette première trame, le système CAN et en mode écoute passive uniquement. Le mot de passe est alors contrôlé et comparé au mot de passe correspondant stocké dans la mémoire 124 et permet le passage à l'étape suivante. ii) une deuxième trame avec l'identifiant DID1 et le mot de passe DPWD1 25 (éléments 132 mémorisés dans la mémoire 124) est envoyée par l'ordinateur portable 110. Le module routeur 122 vérifie le mot de passe en le comparant aux mots de passe mémorisés dans la mémoire 124. Le succès de cette étape permet le passage à l'étape suivante. À compter du moment où les deux mots de passe ont été reconnus, le 30 microprocesseur 105 passe alors en mode de débogage. Le "chien de garde" (plus connu sous le nom anglais "watchdog") du microprocesseur est de préférence désactivé ou rafraichi. iii) à N : des trames sont ensuite envoyées par l'ordinateur portable 110 avec l'identifiant DID2 et contenant des requêtes de débogage destinées au module 126. Le 35 module 126 répond à chaque trame avec une trame contenant l'identifiant DID3 et les réponses aux requêtes de débogage. 3033429 7 Comme on peut donc le remarquer, il est inutile de venir ouvrir le boîtier 102 pour pouvoir communiquer avec le premier module de diagnostic 126 et le second module de diagnostic 126b. La forme de réalisation illustrée sur la figure 2 a prévu de conserver un connecteur de débogage 114 mais celui-ci pourrait être supprimé. 5 Sur un système électronique tel que décrit ci-dessus, dans lequel un logiciel est installé, si un problème survient et que les services standards de diagnostic pour l'applicatif correspondant au logiciel installé ne fonctionnent pas, il n'est alors plus nécessaire d'ouvrir le boîtier pour pouvoir accéder via le connecteur de débogage aux ressources de diagnostic de bas niveau du microprocesseur installé au coeur du système 10 électronique. D'après la présente invention, le diagnostic peut être fait au travers d'un port série standard, sans nécessiter une (ou plusieurs) broche dédiée. La sécurité du système électronique s'en trouve renforcée car le système reste un système fermé. L'accès aux modules de diagnostic se fait par une procédure sécurisée par des mots de passe qui sont par exemple mis en mémoire dans le 15 microcontrôleur en fin de la chaine de fabrication. Chaque produit a ses mots de passe propres qui sont stockés dans la mémoire associée au module routeur qui est dans une zone protégée du microcontrôleur. Le produit de série intégrant le système électronique décrit ne présente pas de surcoût par rapport à un système de l'art antérieur similaire pour lequel il est 20 nécessaire d'ouvrir le boîtier (et ce faisant dans la très grande majorité des cas le rendant inutilisable). Le système décrit plus haut permet également d'avoir des fonctionnalités telles la gestion d'un "watchdog" et la gestion de paramètres de configuration (Baud rate CAN, ...). 25 L'exemple de réalisation prévoit l'utilisation du protocole CAN qui est couramment utilisé dans l'industrie automobile. Toutefois la présente invention peut également être mise en oeuvre avec d'autres protocoles, par exemple (non limitatif) CAN- FD, Ethernet, Flexray, . Comme déjà évoqué, le domaine d'application ne se limite pas à l'industrie automobile. 30 Bien entendu, la présente invention ne se limite pas au mode de réalisation préféré décrit ci-dessus et illustré sur le dessin et aux variantes de réalisation évoquées mais s'étend à toutes les variantes à la portée de l'homme du métier. REVENDICATIONS1. Microcontrôleur (104) comportant un microprocesseur (105), un bus d'entrées/sorties (106), un module d'interface (120) entre le bus d'entrées/sorties (106) et le microprocesseur (105), caractérisé en ce qu'il comporte en outre un module routeur (122) associé à une 5 mémoire (124), en ce que le module routeur (122) est connecté de manière à recevoir tout signal d'entrée reçu par le bus d'entrées/sorties (106), en ce que le module routeur (122) comporte des moyens de comparaison permettant de comparer l'information contenue dans les signaux reçus avec au moins un code mémorisé 10 dans la mémoire (124), et en ce que le module routeur (122) comporte en outre des moyens de commutation pour envoyer chaque signal reçu vers le microprocesseur (105) ou vers un module de diagnostic (126, 126b) en fonction du résultat de la comparaison de l'information contenue dans le signal avec le code au nombre d'au moins un mémorisé. 15 2. Microcontrôleur selon la revendication 1, caractérisé en ce que le module d'interface (120) et le module routeur (122) fonctionnent selon le protocole CAN. 3. Microcontrôleur selon l'une des revendications 1 ou 2, caractérisé en ce qu'il comporte en outre un port de débogage associé au module de diagnostic (126). 4. Procédé d'accès à un module de diagnostic (126,) d'un microcontrôleur (104) 20 comportant un bus d'entrées/sorties (106) et un module d'interface (120) entre le bus d'entrées/sorties (106) et un microprocesseur (105), caractérisé en ce qu'il comporte les étapes suivantes a) lecture des trames provenant du module d'interface (120), b) comparaison de l'information contenue dans chaque trame avec des 25 paramètres mémorisés dans une mémoire (124), c) en fonction du résultat de la comparaison : - envoi de la trame vers le microprocesseur (105), - envoi de la trame vers le module de diagnostic (126). 5. Procédé d'accès à un module de diagnostic d'un microcontrôleur selon la 30 revendication 4, dans lequel le microcontrôleur comporte plusieurs modules de diagnostic (126, 126b), caractérisé en ce qu'à l'étape c), les trois options suivantes sont prévues : 3033429 9 - envoi de la trame vers le microprocesseur (105), - envoi de la trame vers un premier module de diagnostic (126), - envoi de la trame vers un autre module de diagnostic (126b) pour activer entre autres un service de programmation série. 6. Procédé d'accès à un module de diagnostic selon l'une des revendications 4 ou 5, caractérisé en ce que la lecture de chaque trame et la comparaison de l'information contenue dans les trames avec les paramètres mémorisés dans la mémoire (124) sont réalisées par un module dit module routeur (122), et en ce que le module routeur (122) assure également la prise en charge de la gestion de chiens de garde en exploitant les paramètres stockés dans la mémoire (124). 7. Calculateur pour véhicule automobile, caractérisé en ce qu'il comporte un microcontrôleur (104) selon l'une des revendications 1 à 3.