FR 3091608 A1 20200710 FR 1900079 A 20190104 Description Titre de l'invention : Procédé et dispositif de mise à jour d'une unité de commande électronique Domaine technique [0001] L'invention concerne les procédés et dispositifs de contrôle de la mise à jour lo- gicielle d'un véhicule, notamment de type automobile. Arrière-plan technologique [0002] Les véhicules contemporains embarquent nombre de calculateurs assurant chacun une ou plusieurs fonctions, telles que par exemple la gestion de l'aide à la conduite, de l'antipatinage, de la répartition électronique du freinage ou encore la commande d'actionneurs pour assurer le fonctionnement optimal d'un moteur à combustion. [0003] Ces calculateurs sont aussi appelés UCE (« Unité de Commande Electronique » ou en anglais ECU « Electronic Control Unit »). Ces calculateurs embarquent des logiciels qui sont exécutés pour assurer les fonctions dont ils ont la charge. Des mises à jour de ces logiciels sont parfois nécessaires, par exemple pour améliorer une fonction ou pour corriger une erreur, aussi appelée « bug » en informatique. [0004] Ces mises à jour peuvent s'avérer critiques, notamment pour les logiciels qui assurent le bon fonctionnement du véhicule et la sécurité des passagers du véhicule. Le contrôle de ces mises à jour est par conséquent particulièrement important. Résumé de l'invention [0005] Un objet de la présente invention est d'améliorer le processus d'installation de mise(s) à jour logicielle d'un ou plusieurs calculateurs d'un véhicule. [0006] Un autre objet de l'invention est de réduire les risques d'erreur et de problème associés à la mise à jour logicielle d'un ou plusieurs calculateurs d'un véhicule. [0007] Selon un premier aspect, l'invention concerne un procédé de mise à jour d'au moins un logiciel d'au moins un calculateur d'un système embarqué dans un véhicule. A cet effet, le procédé comprend les étapes de : réception de premières informations représentatives d'une configuration d'un système de référence pour la mise à jour du au moins un logiciel ; comparaison des premières informations avec des deuxième informations re- présentatives d'une configuration du au moins un calculateur ; installation de la mise à jour en fonction du résultat de la comparaison des premières informations avec les deuxièmes informations ; réception de troisièmes informations représentatives d'une configuration d'un système cible après mise à jour du au moins un logiciel ; vérification de la mise à jour en comparant les troisièmes informations avec 2 des quatrièmes informations représentatives d'une configuration du au moins un calculateur après mise à jour du au moins un logiciel. [0008] Selon une variante, le procédé comprend en outre l'étape d'annulation de la mise à jour en fonction du résultat de la vérification. [0009] Selon encore une variante, le procédé comprend en outre l'étape de rendu d'un message d'alerte en fonction du résultat de la vérification. [0010] Selon une autre variante, les deuxièmes et/ou quatrièmes informations comprennent chacune une ou plusieurs des informations suivantes : une information représentative de caractéristiques du au moins un logiciel installé dans le au moins un calculateur ; et/ou une information représentative de caractéristique matérielles du au moins un calculateur ; et/ou une information représentative des paramètres de configuration et de calibration du au moins un calculateur. [0011] Selon un deuxième aspect, l'invention concerne un dispositif de mise à jour d'au moins un logiciel d'au moins un calculateur d'un système embarqué dans un véhicule. A cet effet, le dispositif comprend : des moyens de réception de premières informations représentatives d'une configuration d'un système de référence pour la mise à jour du au moins un logiciel ; des moyens de comparaison des premières informations avec des deuxième informations représentatives d'une configuration du au moins un calculateur ; des moyens d'installation de la mise à jour en fonction du résultat de la comparaison des premières informations avec les deuxièmes informations ; des moyens de réception de troisièmes informations représentatives d'une configuration d'un système cible après mise à jour du au moins un logiciel ; des moyens de vérification de la mise à jour en comparant les troisièmes informations avec des quatrièmes informations représentatives d'une configuration du au moins un calculateur après mise à jour du au moins un logiciel. [0012] Selon une variante, le dispositif comprend en outre des moyens d'annulation de la mise à jour en fonction du résultat de la vérification. [0013] Selon encore une variante, le dispositif comprend en outre des moyens de rendu d'un message d'alerte en fonction du résultat de la vérification. [0014] Selon un troisième aspect, l'invention concerne un système embarqué dans un véhicule comprenant un ou plusieurs calculateurs et un dispositif tel que décrit ci-dessus selon le deuxième aspect de l'invention. [0015] Selon une variante, le dispositif correspond à un calculateur du système embarqué. [0016] Selon un quatrième aspect, l'invention concerne un véhicule, par exemple de type au- 3 tomobile, comprenant le dispositif tel que décrit ci-dessus selon le deuxième aspect de l'invention. [0017] Selon un cinquième aspect, l'invention concerne un programme d'ordinateur qui comporte des instructions adaptées pour l'exécution des étapes du procédé selon le premier aspect de l'invention, ceci notamment lorsque le programme d'ordinateur est exécuté par au moins un processeur. [0018] Un tel programme d'ordinateur peut utiliser n'importe quel langage de pro- grammation, et être sous la forme d'un code source, d'un code objet, ou d'un code intermédiaire entre un code source et un code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. [0019] Selon un sixième aspect, l'invention concerne un support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé selon le premier aspect de l'invention. [0020] D'une part, le support d'enregistrement peut être n'importe quel entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une mémoire ROM, un CD-ROM ou une mémoire ROM de type circuit microélectroniquc, ou encore un moyen d'enregistrement magnétique ou un disque dur. [0021] D'autre part, ce support d'enregistrement peut également être un support trans- missible tel qu'un signal électrique ou optique, un tel signal pouvant être acheminé via un câble électrique ou optique, par radio classique ou hertzienne ou par faisceau laser autodirigé ou par d'autres moyens. Le programme d'ordinateur selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. [0022] Alternativement, le support d'enregistrement peut être un circuit intégré dans lequel le programme d'ordinateur est incorporé, le circuit intégré étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Brève description des figures [0023] D'autres caractéristiques et avantages de l'invention ressortiront de la description des modes de réalisation non limitatifs de l'invention ci-après, en référence aux figures 1 à 3 annexées, sur lesquelles : [0024] [fig.]] illustre de façon schématique un environnement de mise à jour d'un système embarqué dans un véhicule, selon un exemple de réalisation particulier de la présente invention ; [0025] [fig.2] illustre un organigramme des différentes étapes d'un procédé de mise à jour du système embarqué de la figure 1, selon un exemple de réalisation particulier de la présente invention ; [0026] [fig.3] illustre schématiquement un dispositif configure pour la mise àjour du système embarqué de la figure 1, selon un exemple de réalisation particulier de la présente invention. Description des modes de réalisation [0027] Un procédé de contrôle de l' alimentation d'un ou plusieurs amplificateurs audios ainsi que le dispositif et/ou le système associés vont maintenant être décrits dans ce qui va suivre en référence conjointement aux figures 1 et 2. [0028] Selon un exemple particulier et non limitatif de réalisation de l'invention, un procédé de mise àjour d'un ou plusieurs logiciels installés sur un ou plusieurs calculateurs d'un véhicule comprend la réception de premières informations représentatives de la configuration d'un système de référence, c'est-à-dire la configuration du système visé par la mise à jour. Les premières informations sont comparées à des deuxièmes informations représentatives de la configuration courante du ou des calculateurs sur lesquels doit être réalisée mise à jour. La mise àjour est alors effectuée en fonction du résultat de la comparaison, par exemple la mise àjour est mise en oeuvre si la configuration courante du ou des calculateurs apparaît comme étant compatible avec la configuration du système de référence. Des troisièmes informations représentatives de la configuration d'un système cible, c'est-à-dire du système tel qu'il devrait être après mise à jour du ou des logiciels (le système cible correspond par exemple au système de référence mis à jour avec la mise àjour logicielle) sont reçues. Une vérification de la mise à jour logicielle du ou des calculateurs est alors effectuée en comparant les troisièmes informations avec des quatrièmes informations représentatives de la configuration du ou des calculateurs qui ont été mis à jour via la mise àjour logicielle. [0029] Une vérification en 2 étapes de la mise à jour, c'est-à-dire avec une première véri- fication avant installation de la mise à jour et une deuxième installation après mise à jour, permet d'améliorer la fiabilité des calculateurs et la sécurité des passagers du véhicule. En effet, la première vérification permet de s'assurer que la mise à jour n'entrainera à priori pas de problème et la deuxième vérification permet de vérifier qu'effectivement aucun problème n'est survenu lors de la mise à jour. [0030] Un dispositif configuré pour la mise en oeuvre du procédé est également décrit. [0031] La figure 1 illustre de façon schématique un environnement de mise à jour d'un système embarqué 10 dans un véhicule, selon un exemple de réalisation particulier et non limitatif de la présente invention. [0032] Le système 10 est avantageusement embarqué dans un véhicule, par exemple de type automobile. Le système 10 comprend par exemple un dispositif 101 connecté à un ou plusieurs calculateurs 102, 103. Le dispositif 101 correspond par exemple lui aussi un calculateur, par exemple un calculateur de type UCE. Une UCE est composée d'un calculateur électronique et d'un ou plusieurs logiciels embarqués qui réalisent un ou plusieurs asservissements. Les calculateurs 102 et 103 sont par exemple eux aussi de type UCE. Le dispositif 101 est aussi appelé calculateur orchestreur (ou ECU orchestreur) en cc qu'il est responsable de l'orchestration et du contrôle de la mise à jour logicielle de l'ensemble des calculateurs 101, 102 et 103. Les calculateurs 101, 102, 103 forment par exemple une architecture multiplexée pour la réalisation dc différents services utiles pour le bon fonctionnement du véhicule et pour assister le conducteur et/ou les passagers du véhicule dans le contrôle du véhicule. [0033] Les calculateurs 101, 102 et 103 communiquent et échangent des données entre eux par l'intermédiaire d'un ou plusieurs bus informatiques, par exemple un bus de communication de type bus de données CAN (dc l'anglais « Controller Arca Nctwork » ou en français « Réseau dc contrôleurs »). [0034] Le dispositif 101 est relié à un dispositif externe 11 via une connexion filaire ou sans fil. Le dispositif externe 11 est par exemple un serveur distant du « cloud » (ou « nuage » en français). Le dispositif 101 charge par exemple les mises à jour logicielles stockées pour téléchargement dans le dispositif externe 11 via par exemple l'Internet avec une connexion de type OTA (dc l'anglais « over-the-air », ou en français « par voie aérienne »). [0035] Bien entendu, le nombre de calculateurs du système 10 n'est pas limité à 3 et s'étend à tout nombre, par exemple 10, 20, 50, 100 ou plus de calculateurs. Selon une variante, le système 10 comprend un seul calculateur, à savoir le calculateur 101. Un exemple de réalisation matérielle d'un tel calculateur 101 est décrit en regard de la figure 3. [0036] La figure 3 illustre schématiquement un dispositif 3 configuré pour la mise à jour d'un ou plusieurs calculateurs d'un système embarqué de véhicule, selon un exemple de réalisation particulier et non limitatif de la présente invention. [0037] Le dispositif 3 est par exemple configuré pour la mise en oeuvre des étapes du procédé décrit en regard de la figure 2. Des exemples d'un tel dispositif 3 comprennent, sans y être limités, un équipement électronique embarqué tel qu'un ordinateur de bord d'un véhicule, un calculateur électronique tel qu'une UCE. Les éléments du dispositif 3, individuellement ou en combinaison, peuvent être intégrés dans un unique circuit intégré, dans plusieurs circuits intégrés, et/ou dans des composants discrets. Le dispositif 3 peut être réalisé sous la forme de circuits électroniques ou de modules logiciels (ou informatiques) ou encore d'une combinaison de circuits électroniques et de modules logiciels. Selon différents modes de réalisation particuliers, le dispositif 3 est couplé en communication avec d'autres dispositifs ou systèmes similaires, par exemple par l'intermédiaire d'un bus de communication ou au 6 travers de ports d'entrée / sortie dédiés. [0038] Le dispositif comprend un (ou plusieurs) processeur(s) 30 configurés pour exécuter des instructions pour la réalisation des étapes du procédé. Le processeur 30 peut inclure de la mémoire intégrée, une interface d'entrée/sortie, et différents circuits connus de l'homme du métier. Le dispositif 3 comprend en outre au moins une mémoire 31, par une mémoire volatile at/ou non volatile et/ou comprend un dispositif de stockage mémoire qui peut comprendre de la mémoire volatile et/ou non volatile, telle que EEPROM, ROM, PROM, RAM, DR/AM, SRAM, flash, disque magnétique ou optique. [0039] Le code informatique comprenant les instructions à charger et exécuter par le processeur est par exemple stocké sur la mémoire ou le dispositif de stockage mémoire 31. [0040] Selon un mode de réalisation particulier et non limitatif, le dispositif 3 comprend un bloc 32 d'éléments d'interface pour communiquer avec des dispositifs externes, par exemple un serveur distant ou le « cloud », des capteurs odornétriques, un capteur GPS. Les éléments d'interface du bloc 32 comprennent une ou plusieurs des interfaces suivantes : interface radiofréquence RF, par exemple de type Bluctooth® ou Wi-Fi®, LTE (de l'anglais « Long-Term Evolution » ou en français « Evolution à long terme »), LTE-Advanced (ou en français LTE-avancé) ; interface USB (de l'anglais « Universal Serial Bus » ou « Bus Universel en Série » en français) ; interface HDMI (de l'anglais « High Definition Multimedia hiterface », ou « Interface Multimedia Haute Definition » en français). [0041] Des données sont par exemples chargées vers le dispositif 3 via l'interface du bloc 32 en utilisant un réseau Wi-FiC) tel que selon IEEE 802.11 ou un réseau mobile tel qu'un réseau 4G (ou LTE Advanced selon 3GPP release 10 - version 10) ou 5G. [0042] Selon un autre mode de réalisation particulier, le dispositif 3 comprend une interface de communication 33 qui permet d'établir une communication avec d'autres dispositifs (tels que d'autres calculateurs ou UCE) via un canal de communication 330. L'interface de communication 33 correspond par exemple à un transmetteur configuré pour transmettre et recevoir des informations et/ou des données via le canal de communication 330. L'interface de communication 33 correspond par exemple à un réseau filaire de type CAN. [0043] Selon un mode de réalisation particulier supplémentaire, le dispositif 3 peut fournir des signaux de sortie à un ou plusieurs dispositifs externes, tels qu'un écran d'affichage, un ou des haut-parleurs et/ou d'autres périphériques via respectivement des interfaces de sortie non représentées. 7 [0044] La figure 2 illustre un organigramme des différentes étapes d'un procédé de la mise à jour logicielle d'un ou plusieurs calculateurs d'un système embarqué de véhicule, selon un exemple de réalisation particulier et non limitatif de la présente invention. Le procédé est par exemple mis en oeuvre dans le dispositif 101 de la figure 1 ou le dispositif 3 de la figure 3. [0045] Dans une première étape 21, des premières informations représentatives de la confi- guration d'un système de référence pour la mise à jour du ou des logiciels (par exemple firmware(s)) à installer sur le ou les calculateurs du système embarqué sont reçues, par exemple du cloud via une connexion Internet ou OTA. Le système de référence correspond au système tel que prévu par l'éditeur du ou des logiciels pour l'installation de ces derniers logiciels. Les informations représentatives de la configuration comprennent par exemple les caractéristiques matérielles (de l'anglais « hardware ») du ou des calculateurs requises pour la mise à jour (par exemple cadence du processeur, espace mémoire) et/ou les caractéristiques logicielles (niveau de version du ou des logiciels déjà installés avant la mise à jour). [0046] Des troisièmes informations représentatives de la configuration d'un système cible sont également reçues lors de cette première étape. Le système cible correspond au système une fois que la ou les mises à jour ont été installées. Le système cible correspond par exemple au système de référence auquel auraient été appliquées la ou les mises à jour. Selon une variante de réalisation, les troisièmes informations sont reçues dans une étape ultérieure, par exemple après l'installation de la ou les mises à jour. [0047] Des deuxièmes informations représentatives de la configuration de chacun des cal- culateurs peuvent également être reçues lors de cette première étape 21. Le calculateur orchestreur reçoit par exemple de chacun des autres calculateurs du système leurs deuxièmes informations associées. Ces deuxièmes informations peuvent par exemple être reçues sur requête(s) formulée(s) par le calculateur orchestreur. Selon une variante, les deuxièmes informations ont été reçues au préalable, c'est-à-dire antérieurement à la première étape, et sont stockées en mémoire du calculateur orchestreur. Selon cette variante, les deuxièmes informations peuvent être reçues de chaque calculateur de manière périodique, sur requête ou non du calculateur orchestreur. [0048] Les deuxièmes informations associées à chaque calculateur comprennent l'une ou plusieurs des informations suivantes : information représentative de caractéristiques du au moins un logiciel installé dans ledit au moins un calculateur, par exemple la version du logiciel ; et/ou information représentative de caractéristique matérielles du au moins un calculateur, par exemple cadence du processeur, type de processeur, espace mémoire ; et/ou 8 information représentative des paramètres de configuration et de calibration du au moins un calculateur. [0049] Dans une deuxième étape 22, une vérification de la compatibilité entre la confi- guration du système de référence et la configuration de chacun des calculateurs sur lesquels doit être effectuée la mise àjour est réalisée. A cet effet, les premières informations représentatives de la configuration du système de référence sont comparées aux deuxièmes informations représentatives de la configuration du ou des calculateurs sur lequel ou lesquels doit être appliquée la mise àjour logicielle. S'il ressort de la comparaison que la configuration du ou des calculateurs ne permet pas d'appliquer la mise à jour, cette dernière n'est pas mise en oeuvre et le processus passe dans un état d'échec de mise à jour 221. Un message peut optionnellement être rendu, par exemple pour affichage sur un outil de suivi de mise à jour (par exemple un Smartphonc (ou « téléphone intelligent » en français) ou une tablette ou un ordinateur) ou sur un écran du tableau de bord du véhicule. S'il ressort de la comparaison que la configuration du ou des calculateurs est compatible avec la mise à jour, cette dernière est mise en oeuvre dans une troisième étape 23. [0050] Selon une variante, il est également vérifié à l'étape 22 si l'état du véhicule est compatible avec l'installation de la mise àjour. Il est par exemple vérifié si le véhicule est immobilisé, si le niveau de batterie est suffisant etiou s'il n'y a pas de code défaut rédhibitoire. Si ces dernières conditions sont vérifiées, alors la mise àjour est déployée à l'étape 23. Sinon, l'installation n'est pas déployée 221. [0051] Dans la troisième étape 23, la mise à jour du ou des logiciels est mise en oeuvre sur le ou les calculateurs cibles. La mise à jour correspond par exemple à la reprogrammation d'une mémoire flash associée au calculateur cible. [0052] Dans une quatrième étape 24, il est vérifié que la mise à jour a été correctement déployée sur le ou les calculateurs cibles de la mise à jour. A cette fin, les troisièmes informations représentatives du système cible sont comparées à des quatrièmes informations représentatives de la configuration du ou des calculateurs mis à jour à l'étape 23. Cette vérification permet de s'assurer que le déploiement de la ou les mises à jour s'est effectué correctement, en vérifiant que la configuration du ou des calculateurs correspond bien à ce qui était attendu, c'est-à-dire con-espond au système cible dont la configuration est décrite avec les troisièmes informations. Les quatrièmes informations sont similaires aux deuxièmes informations mais représentatives du ou des calculateurs à un autre instant, après la mise à jour. [0053] S'il ressort de la comparaison que la mise à jour n'a pas été déployée correctement, c'est-à-dire qu'il existe une ou plusieurs différences entre la configuration des calculateurs décrites par les quatrièmes informations et la configuration du système cible décrite par les troisièmes informations, alors le processus passe à l'étape 241. 9 [0054] Dans l'étape 241, la mise à jour est annulée, c'est-à-dire que le ou les calculateurs qui ont été mis à jour à l'étape 23 sont remis à la version logicielle telle qu'avant la mise à jour. L'ensemble des requêtes mises en oeuvre pour la mise àjour sont annulées afin de revenir dans l'état initial (de l'anglais « rollback »). [0055] Selon une variante, un message d'alerte ou d'erreur est rendu pour restitution auprès du conducteur ou d'un technicien. Le message d'alerte ainsi rendu est par exemple affiché sur un écran du tableau de bord, invitant par exemple le conducteur à se diriger sans délai vers un centre de maintenance. Le message peut par exemple être affiché sur un écran d'un Smartphonc ou d'une tablette ou peut encore être restitué sous la forme d'un message sonore ou vocale. Selon encore une variante, le message est rendu en plus, c'est-à-dire en complément, de l'annulation de la mise à jour ou à la place de l'annulation si cette dernière n'a par exemple pas pu être mise en oeuvre. [0056] S'il ressort de la comparaison que la mise àjour a été déployée correctement, c'est-à-dire qu'il n'existe pas de différence (ou pas de différence inattendue) entre la configuration des calculateurs décrites par les quatrièmes informations et la configuration du système cible décrite par les troisièmes informations, alors le processus de mise à jour se termine correctement et le véhicule est considéré comme étant apte à fonctionner. [0057] La deuxième vérification de l'étape 24 permet également de s'assurer qu'il n'y a pas eu de modification de la configuration du ou des calculateurs à mettre à jour après que la première vérification de l'étape 22 a été effectuée. [0058] La vérification en deux étapes augmente la sécurité des passagers du véhicule et des usagers de la route en général en évitant de mettre à jour un logiciel non compatible au véhicule (risque ASIL (de l'anglais « Automotive Safetry Integrity Level » ou en français « Niveau de sécurité et d'intégrité d'un véhicule ») niveau D par exemple si le calculateur à mettre à jour porte des fonctionnalités critiques comme l'aide à la conduite par exemple). Une telle vérification permet également de réduire le nombre de pièces jugées non confoimes en évitant des problèmes associés à des mises à jour non consistantes. [0059] Bien entendu, l'invention ne se limite pas aux modes de réalisation décrits ci-avant mais s'étend à une méthode de contrôle de la mise à jour d'au moins un logiciel d'au moins un calculateur d'un système embarqué dans un véhicule et au dispositif configuré pour la mise en oeuvre d'une méthode de contrôle de la mise à jour d'au moins un logiciel d'au moins un calculateur d'un système embarqué dans un véhicule. [0060] L'invention concerne également un véhicule, par exemple automobile ou plus géné- ralement un véhicule à moteur terrestre, comprenant le dispositif 3 de la figure 3 ou le système de la figure 10 de la figure 1. 10