FR 2998237 A1 20140523 FR 1260919 A 20121116 Procédé d'aide au diagnostic à distance d'un véhicule L'invention concerne les systèmes d'aide au diagnostic à distance pour des véhicules automobiles, et plus particulièrement la protection de tels systèmes contre des utilisations accidentelles ou malveillantes pouvant entrainer une perte d'intégrité fonctionnelle sur un véhicule. La croissance de l'électronique embarquée à bord des véhicules a complexifié la maintenance des véhicules. Face à cette complexité, les constructeurs de véhicules ont développé des fonctions d'autodiagnostic toujours plus performantes permettant de signaler les anomalies détectées par le système embarqué lui-même. Actuellement, un opérateur de maintenance dispose de fonctions et d'indicateurs affectés à des pannes distinctes (on parle généralement de codes défauts ou DTC pour Diagnostic Trouble Codes). Dans un garage, pour localiser précisément la panne du véhicule, l'opérateur utilise ainsi des fonctions de nature très différentes comme : la lecture d'informations prélevées sur le véhicule, l'activation de routines de test, la réinitialisation d'apprentissages ou le téléchargement d'un logiciel correcteur d'une anomalie. Il est connu d'obtenir des informations d'un véhicule à distance, c'est- à-dire au moyen d'un système permettant de communiquer avec les différents calculateurs embarqués dans le véhicule, sans liaison filaire entre le véhicule et l'outil qui interroge ce véhicule. L'intérêt de ce type de fonctionnalité est de permettre à un client victime d'une panne ou d'une incompréhension du fonctionnement de son véhicule de reprendre la route sans qu'il soit nécessaire d'appeler une dépanneuse pour remorquer le véhicule jusqu'au garage le plus proche. On parle alors de diagnostic à distance, télédiagnostic ou téléservice pour caractériser le fait que l'opérateur qui active les fonctionnalités n'est pas au contact du véhicule. Le principal défaut engendré par ce type de fonctionnalité est justement lié au fait que, lorsqu'il active ces différentes fonctions, l'opérateur à distance ne dispose pas de l'état visuel du véhicule et qu'il peut, sans aucune intention malveillante, activer une fonction qu'il n'aurait jamais activé si le véhicule s'était trouvé dans l'atelier. Par exemple, il est très improbable qu'un opérateur active une fonction de pilotage des injecteurs (pour vérifier si ces derniers sont défectueux et si le véhicule a une fuite de carburant). En effet, l'opérateur ne se trouvant pas à proximité du véhicule, il n'est pas en mesure de constater cette fuite de carburant. D'autres cas, plus complexes, peuvent survenir, par exemple, le déclenchement d'une régénération du filtre à particules alors que le véhicule est stationné dans de l'herbe haute, risquant la ainsi de déclencher un incendie. L'invention a donc pour but de remédier à l'inconvénient précité et de proposer un système d'aide au diagnostic plus sécurisé. Elle propose plus précisément à cet effet un procédé d'aide au diagnostic à distance d'un véhicule, le véhicule comportant un premier calculateur, et au 15 moins un deuxième calculateur relié au premier calculateur, ledit procédé étant caractérisé en ce qu'il comporte : l'émission d'une requête de diagnostic depuis un outil de diagnostic vers le premier calculateur via une connexion sans fil, l'émission d'une demande d'ouverture d'une session de diagnostic à 20 distance depuis le premier calculateur vers le deuxième calculateur, la transmission de la requête de diagnostic depuis le premier calculateur vers le deuxième calculateur, la vérification pour contrôler si la requête est autorisée pour une session de diagnostic à distance, et si la requête est autorisée, l'émission 25 d'un message depuis le deuxième calculateur vers le premier calculateur, le message comprenant des données de réponse à la requête, la transmission du message de réponse depuis le premier calculateur vers l'outil de diagnostic, l'émission d'une demande de fermeture de la session de diagnostic à 30 distance depuis le premier calculateur vers du deuxième calculateur. L'invention permet d'améliorer la sécurité d'un diagnostic à distance en intégrant, d'une part, des étapes d'ouverture et de fermeture d'une session dédiée au télédiagnostic à partir de l'embarqué et, d'autre part, en mettant en oeuvre une étape de vérification pour contrôler qu'une requête est autorisée à être exécutée au cours d'une session de télédiagnostic. On limite ainsi l'accès à certaines fonctions d'un véhicule pour un opérateur situé à distance d'un véhicule. Avantageusement, le procédé selon l'invention comporte en outre une étape de filtrage, exécutée par le premier calculateur à chaque réception d'une requête et consistant à rejeter la requête si la requête est une demande d'ouverture de session. Avantageusement, le deuxième calculateur comprend une table comportant une liste de requêtes et indiquant pour chaque requête si elle autorisée lors d'une session de diagnostic à distance, la table étant utilisée lors de l'étape de vérification. Avantageusement, le procédé selon l'invention comporte en outre, en réponse à l'émission d'une demande d'ouverture d'une session de diagnostic à distance, l'émission d'un message, depuis le deuxième calculateur vers le premier calculateur, indiquant que la session est ouverte. Avantageusement, le procédé selon l'invention comporte en outre, en réponse à l'émission d'une demande fermeture d'une session de diagnostic à distance, l'émission d'un message, depuis le deuxième calculateur vers le premier calculateur, indiquant que la session est fermée. Avantageusement, le premier calculateur et le deuxième calculateur sont reliés par un bus de données, les requêtes de diagnostic et messages échangés circulant sur le bus de données. Avantageusement, les requêtes de diagnostic comprennent chacune une adresse pour identifier le calculateur de destination et une adresse pour identifier le calculateur auquel envoyer la réponse à la requête. L'invention concerne aussi un système d'aide au diagnostic à distance d'un véhicule, le véhicule comportant un premier calculateur, et au moins un deuxième calculateur relié au premier calculateur, ledit système étant caractérisé en ce que : 2 99823 7 4 - le premier calculateur comporte un module de filtrage configuré pour rejeter une requête si la requête est une demande d'ouverture de session, et en ce que, - le deuxième calculateur comporte une session de diagnostic à 5 distance, la session de diagnostic définissant un ensemble de requêtes autorisées à être exécutées. Avantageusement, le deuxième calculateur comprend une table comportant une liste de requêtes et indiquant pour chaque requête si elle autorisée lors d'une session de diagnostic à distance. 10 Selon un mode de réalisation de l'invention, le véhicule comporte en outre un troisième calculateur, le deuxième calculateur étant relié au premier calculateur par l'intermédiaire du troisième calculateur, le deuxième calculateur étant relié au troisième calculateur par un bus de données, les messages ou requêtes échangées entre le premier calculateur et le 15 calculateur destinataire transitant par le troisième calculateur. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels: la figure 1 illustre un exemple de réalisation du système selon l'invention ; 20 la figure 2 représente un logigramme illustrant le déroulement des étapes du procédé selon l'invention ; la figure 3 présente un logigramme illustrant les étapes mis en oeuvre par un calculateur recevant une requête ; - la figure 4 illustre une variante de réalisation du système selon l'invention. 25 Les dessins annexés pourront non seulement servir à compléter l'invention, mais aussi contribuer à sa définition, le cas échéant. En référence à la figure 1, le système 110 selon l'invention permet de faciliter la maintenance d'un véhicule 100. Le véhicule 100 comporte un premier calculateur 102. Le premier calculateur 102 est apte à échanger des 30 données à distance avec un outil de diagnostic 101 par exemple par l'intermédiaire d'un réseau téléphonique sans fil (GSM ou 3G). Le véhicule comporte par exemple un deuxième calculateur 103 dédié par exemple à la gestion du moteur du véhicule 100. Le véhicule 100 comporte par exemple un troisième calculateur 105 dédié par exemple à la gestion de l'habitacle du véhicule 100. Le troisième calculateur 105 gère un certain nombre d'équipements électriques du véhicule 100 et notamment, des airbags, des éclairages intérieurs, le verrouillage/déverrouillage des portes et du coffre, le fonctionnement des vitres et de toit ouvrant électriques, le cadencement des essuie-glaces. Chacun des calculateurs 102, 103, 105 comporte au moins un processeur et une mémoire. Le véhicule 100 comporte au moins un bus de données 104 sur lequel transitent des données échangées par les différents calculateurs embarqués 102, 103, 105 dans le véhicule 100. L'outil de diagnostic 101 et les calculateurs 102, 103, 105 communiquent au moyen d'un protocole de diagnostic. Ce protocole est basé sur le mécanisme suivant : à chaque requête de l'outil 101 correspond une réponse du destinataire (un des calculateurs 102, 103, 105). Cette réponse peut être positive, il s'agit alors de la réponse attendue par l'outil de diagnostic 101, ou négative, soit parce que la requête est erronée, soit parce que le calculateur destinataire 102, 103, 105 est dans un état ne permettant pas de transmettre la réponse attendue, par exemple à cause d'une surcharge du processeur ou à cause de conditions fonctionnelles non appropriées (le frein à main peut par exemple ne pas être serré car le véhicule est en train de rouler, ce qui peut empêcher l'exécution de certaines fonctions). Chacun des calculateurs 103, 105, embarqués dans le véhicule 100 et susceptibles de répondre à des demandes de diagnostic à distance, comporte une session spécifique, appelée dans la suite de la description session télédiagnostic. Une session définit un mode d'accès à un calculateur dans lequel l'exécution de certaines fonctions ou requêtes est autorisée ou non. Chacun des calculateurs 103, 105 comporte aussi une session dédiée au diagnostic connecté, autrement dit au diagnostic à l'aide d'un outil directement branché sur le véhicule. Un tel outil est utilisé par un opérateur se trouvant physiquement à proximité du véhicule. La création d'une session spécifique au diagnostic à distance permet ainsi de dissocier les fonctions activables par un professionnel connectant dans un garage un outil sur le connecteur centralisé d'un véhicule, d'un professionnel opérant à distance. Selon une caractéristique de l'invention, chacun des calculateurs 103, 105 embarqués dans le véhicule 100, susceptibles de répondre à des demandes de diagnostic à distance, comprennent une table comportant une liste de requêtes et indiquant pour chaque requête si elle est autorisée lors d'une session de diagnostic à distance, la table étant utilisée lors d'une étape de vérification. La table comporte par exemple une série de lignes correspondant à des requêtes, une colonne associée au diagnostic à distance et une autre colonne associée au diagnostic connecté. Dans chaque case, une valeur indique si la requête est autorisée dans la session correspondante comme dans l'exemple si après : Liste des requêtes Session Session Diagnostic connecté Télédiagnostic Lecture des défauts Autorisé Autorisé internes Effacement de la mémoire Flash Eprom Non autorisé Non autorisé Pilotage des injecteurs autorisé Non autorisé ... ... ... Ainsi, un certain nombre de fonctionnalités sur un véhicule sont accessibles à un professionnel au moyen d'un outil connecté lorsqu'il est en phase de mise au point ou lorsqu'il est en phase de réparation dans le cadre d'un parcours routier dans lequel il aura la maîtrise du moment du déclenchement de l'opération. Par contre, ces mêmes fonctionnalités sont interdites en phase d'utilisation par un client ne maitrisant le moment de 2 99823 7 7 déclenchement de ces fonctionnalités. Selon une caractéristique de l'invention, le premier calculateur 102 comporte un module de filtrage de requête. Le module de filtrage filtre toutes requêtes d'ouverture ou de fermeture de session provenant de l'extérieur du 5 véhicule. Ainsi le premier calculateur 102 dispose seul de la capacité à émettre des requêtes d'ouverture et de fermeture d'une session télédiagnostic pour chacun des calculateurs embarqués. Cette caractéristique permet d'empêcher une prise de contrôle ou une exploitation de cette fonctionnalité par une personne malveillante. En 10 effet, avec ce filtrage, il n'est pas possible d'ouvrir à distance une session de diagnostic connecté. Il n'est donc pas possible de « laisser croire » au véhicule qu'un calculateur est en communication avec un outil connecté sur la prise centralisée du véhicule alors que l'accès est réalisé à distance par l'intermédiaire du premier calculateur 102. 15 Le premier calculateur 102 filtre et refuse toute requête extérieure d'ouverture de session ou de fermeture de session. Autrement dit, lorsque le premier calculateur 102 reçoit une requête correspondant à une ouverture de session de diagnostic, il filtre cette requête : si cette requête lui est directement destinée (le premier 20 calculateur 102 dispose aussi d'une fonction de diagnostic interne avec laquelle on peut vouloir échanger des éléments à distance), alors il n'entre pas dans la session demandée, ou si cette requête ne lui est pas destinée, alors il ne la transmet pas sur le bus données 104 du véhicule vers le calculateur destinataire. Pour toute autre requête REQ1 reçue par le premier calculateur 102 à destination d'un autre calculateur 103, 105, le premier calculateur 102 transmet au préalable vers l'autre calculateur 103, 105 une requête d'ouverture d'une session de télédiagnostic. A réception de cette requête, le calculateur destinataire 103, 105 bascule dans la session souhaitée après avoir activé un indicateur interne (ou flag) indiquant qu'une session télédiagnostic est ouverte. Le calculateur destinataire 103, 105 émet un message précisant qu'il est maintenant entré dans la session demandée. Sur réception de ce message, le premier calculateur 102 transmet la requête REQ1. Sur réception de la trame ou message REQ1 et en fonction de la table d'autorisation pour la session télédiagnostic et des conditions fonctionnelles du véhicule (par exemple véhicule à l'arrêt, frein à main serré ) dont dispose le calculateur destinataire 103, 105, ce dernier se charge d'exécuter ou non la fonctionnalité portée par la requête puis transmet la réponse au premier calculateur 102. Sur réception de la réponse, le premier calculateur 102 envoie alors la réponse du calculateur destinataire vers l'outil 101 dont il a reçu la requête REQ1 et transmet aussi au calculateur destinataire une demande de fermeture de session télédiagnostic au moyen. Sur réception de cette demande, le calculateur destinataire place son indicateur interne télédiagnostic à la valeur invalide indiquant la fermeture de la session télédiagnostic, ferme la session télédiagnostic et transmet un message de confirmation de fermeture au premier calculateur 102 pour lui confirmer l'abandon de la session en cours. Le bus de données est par exemple un bus de type CAN (pour Controller Area Network) c'est-à-dire un système multiplexé sur lequel une pluralité de calculateurs communiquent à tour de rôle en échangeant des trames de communications. Chaque trame est identifiée par un code, et contient un ensemble d'informations fonctionnelles. Chaque requête comporte une adresse de destination ADR_REQ indiquant un identifiant du calculateur destinataire de la requête sur le bus de données 104 et une adresse de réponse ADR_REP indiquant un identifiant du calculateur émetteur de la requête sur le bus de données 104. Prenons à titre d'exemple, le cas d'un opérateur souhaitant obtenir à distance la valeur de la température d'eau contenue dans le calculateur de contrôle moteur. La figure 2 représente un logigramme illustrant le 2 99 82 3 7 9 déroulement des étapes du procédé selon l'invention dans cet exemple. La première étape consistera bien entendu pour cet opérateur à sélectionner, dans un outil de diagnostic 101, la requête que nous appellerons REQ1 correspondant à cette demande. Le procédé comporte une étape 5 d'émission 201de la requête de diagnostic REQ1 depuis l'outil de diagnostic 101 vers le premier calculateur 102 via une connexion sans fil. Cette requête est ainsi transmise sans contact physique entre le véhicule 100 et l'outil de diagnostic 101. La requête contient en outre une adresse de requête ADR_REQ et une adresse de réponse ADR_REP du 10 calculateur 103 qui doit traiter fonctionnellement cette demande : en l'occurrence, le calculateur de contrôle moteur 103 dans notre exemple. Sur réception de cette requête, le premier calculateur 102 garde en mémoire les adresses ADR_REQ, ADR_REP du calculateur de contrôle moteur 103 ainsi que la requête REQ1. 15 Le procédé comporte alors l'émission 202 d'une demande d'ouverture d'une session de diagnostic à distance (notée Ouverture_TD), depuis le premier calculateur 102 vers le deuxième calculateur 103. La demande d'ouverture de session de diagnostic à distance 202 contient l'adresse ADR_REQ conservée en mémoire. La requête est émise sur le bus de 20 données 104. Lors de cette étape, le deuxième calculateur 103 reconnait son adresse ADR_REQ de destination et réceptionne la requête 301. Le deuxième calculateur 103 vérifie 302 si la requête est une demande d'ouverture de session télédiagnostic. Le deuxième calculateur 103 25 bascule 303 dans la session télédiagnostic, positionne 304 l'indicateur interne à un état valide et envoie 203 au premier calculateur 102 un message indiquant qu'il se trouve bien dans la session télédiagnostic demandée (noté TD_Ouvert), le message comporte l'adresse de réponse ADR_REP du deuxième calculateur 103. 30 A la réception par le premier calculateur 102 du message de confirmation, le premier calculateur 102 compare l'adresse du message avec l'adresse ADR_REP qu'il a conservé en mémoire de façon à vérifier que la réponse est bien celle qui correspond à la demande précédemment transmise. Le premier calculateur 102 ne renvoie pas ce message vers l'outil de diagnostic 101. En réponse, le premier calculateur 102 transmet la requête REQ1 (dans l'exemple la demande de lecture de l'information température d'eau) vers le deuxième calculateur 103 (le calculateur de contrôle moteur) dont il a conservé l'adresse ADR REQ en mémoire. _ Lors de cette étape, le deuxième calculateur 103 reconnait son adresse ADR_REQ de destination, réceptionne la requête 301 et 103 vérifie 302 si la requête est une demande d'ouverture de session télédiagnostic. Ensuite, le deuxième calculateur 103 moteur vérifie 306 que son indicateur télédiagnostic est bien positionné à un état valide et que la requête REQ1 fait bien partie des requêtes autorisées dans la session télédiagnostic 306 (à l'aide de la table). Si tel est le cas, comme dans notre exemple, le deuxième calculateur 103 exécute la requête 307 et envoie 205 un message de réponse (noté R1) contenant l'information température d'eau au premier calculateur 102. Dans le cas contraire, le deuxième calculateur 103 envoie un message de réponse négatif 308, indiquant qu'il ne peut pas répondre à la requête. Le premier calculateur 102 émet 206 cette réponse R1 vers l'outil de diagnostic 101 et envoi 207 au deuxième calculateur 103 une demande de fermeture de la session télédiagnostic (notée Fermeture_TD). Sur réception de cette requête, le deuxième calculateur 103 repositionne son indicateur interne télédiagnostic à invalide et transmet 208 au premier calculateur 102 une réponse confirmant la fermeture de la session télédiagnostic (notée TD_Fermé). Ce dernier message n'est pas non plus transmis vers l'outil de diagnostic 101. De façon préférentielle, en cas de coupure d'alimentation du premier calculateur 102 ou du calculateur destinataire 103, 105 entre les différentes étapes du procédé selon l'invention, le premier calculateur 102, lors de la remise sous tension, repart du début du procédé à l'étape de demande d'ouverture de session 202. Le calculateur destinataire 103, 105 repositionne 2 99823 7 11 l'indicateur interne télédiagnostic à invalide lors de la remise sous tension. Selon une variante de réalisation, le premier calculateur 102 n'est pas directement relié au bus de données 104 du véhicule. Dans ce cas, le premier calculateur 102 est relié à un calculateur intermédiaire, lui-même connecté au 5 bus de données 104 et faisant office de passerelle ou d'aiguilleur de messages. Chacun des messages ou requêtes échangées entre le premier calculateur 102 et le calculateur destinataire 103 transite alors par le calculateur intermédiaire. Le calculateur intermédiaire peut être par exemple le troisième calculateur 105. La figure 4 illustre cette variante de réalisation du 10 système selon l'invention dans laquelle le véhicule 410 comprend un calculateur intermédiaire 105. REVENDICATIONS1. Procédé d'aide au diagnostic à distance d'un véhicule (100), le véhicule (100) comportant un premier calculateur (102), et au moins un deuxième calculateur (103) relié au premier calculateur (102), ledit procédé étant caractérisé en ce qu'il comporte : l'émission d'une requête de diagnostic (201) depuis un outil de la diagnostic (101) vers le premier calculateur (102) via une connexion sans fil, l'émission d'une demande d'ouverture d'une session de diagnostic à distance (202) depuis le premier calculateur (102) vers le deuxième calculateur (103), 15 la transmission de la requête de diagnostic (204) depuis le premier calculateur (102) vers le deuxième calculateur (103), la vérification (306) pour contrôler si la requête est autorisée pour une session de diagnostic à distance, et si la requête est autorisée, l'émission d'un message (205) depuis le deuxième calculateur (103) vers le premier 20 calculateur (102), le message comprenant des données de réponse à la requête, la transmission du message de réponse (206) depuis le premier calculateur (102) vers l'outil de diagnostic (101), l'émission d'une demande de fermeture de la session de diagnostic à 25 distance (207) depuis le premier calculateur (102) vers le deuxième calculateur (103). 2. Procédé d'aide au diagnostic selon la revendication 1, comportant en outre une étape de filtrage, exécutée par le premier calculateur (102) à chaque 30 réception d'une requête et consistant à rejeter la requête si la requête est une demande d'ouverture de session. 3. Procédé d'aide au diagnostic selon l'une des revendications 1 ou 2, dans lequel le deuxième calculateur (103) comprend une table comportant une liste de requêtes et indiquant pour chaque requête si elle autorisée lors d'une session de diagnostic à distance, la table étant utilisée lors de l'étape de vérification (306). 4. Procédé d'aide au diagnostic selon l'une quelconque des revendications précédentes, comportant en outre, en réponse à l'émission d'une demande d'ouverture d'une session de diagnostic à distance (202), l'émission d'un la message (203), depuis le deuxième calculateur (103) vers le premier calculateur (102), indiquant que la session est ouverte. 5. Procédé d'aide au diagnostic selon l'une quelconque des revendications précédentes, comportant en outre, en réponse à l'émission d'une demande 15 fermeture d'une session de diagnostic à distance (207), l'émission d'un message (208), depuis le deuxième calculateur (103) vers le premier calculateur (102), indiquant que la session est fermée. 6. Procédé d'aide au diagnostic selon l'une quelconque des revendications 20 précédentes, dans lequel le premier calculateur (102) et le deuxième calculateur (103) sont reliés par un bus de données (104), les requêtes de diagnostic et messages échangés circulant sur le bus de données. 7. Procédé d'aide au diagnostic selon la revendication 6, dans lequel, les 25 requêtes de diagnostic comprennent chacune une adresse pour identifier le calculateur de destination (ADR_REQ) et une adresse pour identifier le calculateur auquel envoyer la réponse à la requête (ADR_REP). 8. Système d'aide au diagnostic à distance d'un véhicule (100), le véhicule 30 (100) comportant un premier calculateur (102), et au moins un deuxième calculateur (103) relié au premier calculateur (102), ledit système étant caractérisé en ce que :le premier calculateur (102) comporte un module de filtrage configuré pour rejeter une requête si la requête est une demande d'ouverture de session, et en ce que, le deuxième calculateur (103) comporte une session de diagnostic à distance, la session de diagnostic définissant un ensemble de requêtes autorisées à être exécutées. 9. Système d'aide au diagnostic selon la revendication 8, dans lequel le deuxième calculateur (103) comprend une table comportant une liste de 1 o requêtes et indiquant pour chaque requête si elle autorisée lors d'une session de diagnostic à distance. 10. Système d'aide au diagnostic selon l'une des revendications 9 ou 10, dans lequel le véhicule (410) comporte en outre un troisième calculateur 15 (105), le deuxième calculateur (103) étant relié au premier calculateur (102) par l'intermédiaire du troisième calculateur (105), le deuxième calculateur (103) étant relié au troisième calculateur (105) par un bus de données (104), les messages ou requêtes échangées entre le premier calculateur (102) et le calculateur destinataire (103) transitant par le troisième calculateur (105). 20