FR 3073650 A1 20190517 FR 1760785 A 20171116 PROCEDE DE MISE A JOUR A DISTANCE D'UN LOGICIEL EMBARQUE DE VEHICULE [0001] La présente invention concerne de manière générale un procédé de mise à jour d'un logiciel embarqué de véhicule, et en particulier, l'invention concerne un tel procédé devant effectuer un retour en arrière de version de logiciel, au cas où une version actuelle doit finalement être retirée. [0002] Il est connu dans l'art antérieur de stocker dans une mémoire dédiée la version antérieure du logiciel, comme le divulgue le document W02016167768. Cependant, au niveau d'un véhicule, compte tenu des nombreux logiciels embarqués, il faut alors prévoir de grandes capacités de stockage informatique, ce qui conduit à une augmentation du coût global du véhicule. On peut aussi prévoir de télécharger la version antérieure uniquement en cas de besoin, mais cela augmente le temps de mise à jour, particulièrement si le véhicule se trouve dans une zone isolée sans couverture de réseau avec une grande vitesse d'échange de données, et cela peut aussi augmenter les coûts de communication, surtout si le véhicule se trouve à l'étranger par exemple ou si la version à télécharger présente une grande taille informatique. [0003] Un but de la présente invention est de répondre aux inconvénients de l'art antérieur mentionnés ci-dessus et en particulier, tout d'abord, de proposer un procédé de mise à jour qui permet de revenir rapidement à une version antérieure d'un logiciel installé, tout en minimisant les besoins en place de stockage et/ou les coûts si la mise à jour doit se faire par une liaison sans fil sur un réseau de communications payantes. [0004] Pour cela un premier aspect de l'invention concerne un procédé de mise à jour à distance d'un logiciel embarqué dans une unité de 25 stockage informatique de véhicule et présentant une version actuelle installée 2 et une version antérieure, le procédé de mise en jour comprenant une étape de retour en arrière pour installer la version antérieure, avec au moins les étapes consistant à : - consulter un fichier différentiel caractérisant des différences entre la version 5 actuelle et la version antérieure, - reconstruire la version antérieure à partir de la version actuelle en utilisant les données du fichier différentiel, - remplacer dans l'unité de stockage informatique du véhicule la version actuelle du logiciel par la version antérieure, 10 - piloter au moins un organe du véhicule avec le logiciel présentant la version antérieure. Le procédé selon la présente invention n'a pas besoin de la version antérieure complète, pour effecteur le retour en arrière. En effet, l'invention propose d'utiliser un fichier différentiel pour reconstruire (ou réécrire, ou recoder, ou encore modifier dans l'unité de stockage informatique 15 uniquement les parties de codes concernées) la version antérieure du logiciel, à partir de la version actuelle. Cela limite le besoin d'échange de données, ou le besoin de stockage informatique pour revenir à la version antérieure du logiciel. En d'autres termes, le procédé selon l'invention met en oeuvre une restitution différentielle inverse du logiciel pour effecteur le retour 20 à une version antérieure d'un logiciel embarqué de véhicule. [0005] En particulier, l'unité de stockage informatique du véhicule est une unité intégrée du véhicule, et n'est pas amovible. En d'autres termes, l'invention ne concerne pas les mises à jours d'appareils nomades (téléphones, tablettes, ordinateurs portables...) qui pourraient être transportés dans le véhicule par l'utilisateur. L'invention ne concerne pas non plus les mises à jour d'un système de géolocalisation portable. [0006] Avantageusement, l'étape de remplacement de la version actuelle par la version antérieure comprend une étape d'écriture de la version antérieure dans l'unité de stockage informatique de véhicule, 30 éventuellement précédée d'une étape d'effacement de la version actuelle. 3 [0007] Avantageusement, l'étape de reconstruction de la version antérieure est mise en oeuvre au niveau du véhicule, par exemple dans une unité de calcul de mise à jour embarquée. Le procédé est mis à jour au niveau du véhicule. 5 [0008] Avantageusement, l'étape de reconstruction de la version antérieure consiste à modifier ou remplacer dans l'unité de stockage informatique uniquement les parties de code informatique qui différent entre la version actuelle et la version antérieure. [0009] Avantageusement, l'étape de consultation du fichier 10 différentiel consiste à consulter un fichier différentiel stocké dans une unité de stockage informatique du véhicule. [0010] Avantageusement, le fichier différentiel a été utilisé pour construire la version actuelle du logiciel à partir de la version antérieure, lors d'une mise à jour précédente. En d'autres termes, le retour en arrière est 15 effectué sur la base du même fichier différentiel que celui utilisé précédemment pour passer de la version antérieure à la version actuelle. L'invention prévoit donc de pouvoir utiliser dans les deux sens le fichier différentiel, ce qui économise les étapes de téléchargement. [0011] Avantageusement, le fichier différentiel a été obtenu par 20 un téléchargement à distance effectué par une liaison sans fil. Utiliser un fichier différentiel permet de limiter jusqu'à 90% les données à transmettre. En effet, le fichier différentiel qui liste les différences entre deux versions de logiciel peut avoir une taille de seulement 10% de la taille du logiciel complet. [0012] Avantageusement, la liaison sans fil est effectuée en se 25 connectant à un relais téléphone. Autrement dit, la liaison sans fil est une liaison téléphonique selon la norme 2G, 3G ou 4G par exemple. [0013] Avantageusement, le fichier différentiel a été construit lors d'une étape consistant à lister les différences entre la version antérieure et la version actuelle du logiciel. 4 [0014] Avantageusement, le procédé de mise à jour à distance comprend une étape initiale de détection d'une anomalie de fonctionnement d'un organe du véhicule, nécessitant une étape de retour en arrière pour installer une version antérieure du logiciel pilotant l'organe présentant 5 l'anomalie de fonctionnement. En d'autres termes, l'étape de retour en arrière est déclenchée si le véhicule détecte une anomalie de fonctionnement, par exemple lors des tests de vérification qu'une nouvelle version de logiciel fonctionne correctement. Si un échec de fonctionnement est détecté, alors le procédé met en place l'étape de retour en arrière pour revenir à la version 10 antérieure (ou une autre version antérieure) du logiciel qui vient d'être installée. [0015] Un second aspect de l'invention concerne un procédé de commande d'un organe de véhicule, effectué par un logiciel stocké dans une unité de stockage informatique du véhicule, et dont la mise à jour est 15 effectuée par le procédé de mise à jour à distance selon le premier aspect de l'invention. [0016] Un troisième aspect de l'invention concerne une unité de stockage informatique de véhicule automobile, stockant un logiciel dont la mise à jour est effectuée par le procédé de mise à jour à distance selon le 20 premier aspect de l'invention. Il s'agit typiquement d'un calculateur du véhicule. [0017] Un quatrième aspect de l'invention concerne un véhicule automobile comprenant une unité de stockage informatique selon le troisième aspect de l'invention. 25 [0018] D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description détaillée qui suit d'un mode de réalisation de l'invention donné à titre d'exemple nullement limitatif et illustré par les dessins annexés, dans lesquels : 5 [0019] - la figure 1 représente un véhicule avec un organe géré par un logiciel qui doit être mis à jour selon le procédé de la présente invention ; [0020] - la figure 2 représente un schéma des étapes mises en 5 oeuvre par le logiciel de la présente invention. [0021] La figure 1 représente un véhicule comprenant un organe 10 (par exemple un dispositif d'injection, un système multimédia embarqué, un dispositif de géolocalisation intégré au véhicule...) qui est géré ou piloté par un logiciel stocké dans une unité de stockage informatique 20. En raison 10 d'évolutions techniques, ou pour mettre en place des lois de commande tenant compte de retour d'expérience, il peut être nécessaire de faire évoluer la version du logiciel qui pilote cet organe, par une mise à jour de la version antérieure (installée) vers une version actuelle (à installer donc) [0022] A cet effet, le véhicule comprend une unité de liaison 15 sans fil 30 qui permet de se connecter à un serveur distant 40 via par exemple une antenne relais téléphonique 45, pour télécharger une nouvelle version de ce logiciel et l'installer dans l'unité de stockage informatique 20. [0023] A partir de ce moment, la version installée est considérée comme la version actuelle. Il peut arriver que cette version actuelle ne 20 convienne pas (problème de compatibilité au niveau du véhicule, problèmes de transmission ayant conduit à des pertes de données de la version actuelle, problème découvert après l'installation de la version actuelle...), et qu'il faille ré installer la version antérieure. Une telle opération de retour en arrière est appelée « roll-back » ou « rolling-back » en langue anglaise. 25 [0024] Au lieu de re-télécharger la version antérieure, ou de prévoir de la stocker au niveau du véhicule, l'invention propose d'utiliser un fichier différentiel FD (représenté figure 2) qui liste les différences entre la version actuelle et la version antérieure, pour reconstruire (ou réécrire, ou recoder) la version antérieure du logiciel, au niveau local. Typiquement, un tel fichier différentiel liste de manière exhaustive les différences entre les deux 6 versions considérées du logiciel. En conséquence, comme seules les différences sont listées et mémorisées, la taille du fichier différentiel est bien inférieure à celle du logiciel complet. Cela permet de limiter les temps de téléchargement, et/ou les tailles de stockage nécessaires sur le véhicule. 5 [0025] A cet effet, une unité de calcul de mise à jour embarquée 60 consulte le fichier différentiel et reconstruit la version antérieure du logiciel, sans avoir besoin de télécharger toute la version antérieure. Cela économise de la place de stockage informatique dans le véhicule, et/ou des temps de connexion au serveur distant. 10 [0026] On peut envisager de télécharger le fichier différentiel lorsque le besoin de retour en arrière est identifié. [0027] Alternativement, on peut envisager de prévoir que le passage vers la version actuelle a déjà été effectué au moyen d'un fichier différentiel qui a été conservé dans une mémoire dédiée de l'unité de calcul 15 de mise à jour embarquée 60 du véhicule, et il suffit alors de réutiliser ce même fichier différentiel pour effectuer le retour en arrière. [0028] Enfin, on peut aussi prévoir de construire ce fichier différentiel lors du téléchargement de la version actuelle, en se servant de la version antérieure qui était encore en service avant la mise jour et 20 effacement pour comparer les versions et écrire ce fichier différentiel à un moment où on dispose des deux versions au niveau du véhicule. [0029] La figure 2 présente schématiquement les étapes de cette mise à jour avec retour en arrière. Au temps TO, une version actuelle N d'un logiciel est installée dans l'unité de stockage informatique 20, et pour 25 une raison de non comptabilité, échec de fonctionnement, problème non identifié auparavant, il faut revenir à une version antérieure N-1 du logiciel. A cet effet, l'unité de calcul de mise à jour embarquée 60 consulte le fichier différentiel FD qui liste les différences entre la version actuelle N et la version antérieure N-1. 7 [0030] Dans cet exemple, le fichier différentiel FD peut être stocké dans l'unité de calcul de mise à jour embarquée 60, on peut prévoir de le télécharger, ou de le conserver dans une autre unité de stockage informatique du véhicule. 5 [0031] Au temps Ti, l'unité de calcul de mise à jour embarquée 60 peut réécrire ou reconstruire, ou recoder la version antérieure N-1 du logiciel à partir de la version actuelle et du fichier différentiel FD. Enfin, au temps T2, la version antérieure N-1 remplace dans l'unité de stockage informatique 20 la version actuelle N, pour pouvoir commander l'organe 10 10 selon l'ancienne méthode. [0032] On comprendra que diverses modifications et/ou améliorations évidentes pour l'homme du métier peuvent être apportées aux différents modes de réalisation de l'invention décrits dans la présente description sans sortir du cadre de l'invention. En particulier, il est fait 15 référence à une version actuelle N et une version antérieure N-1, mais il faut garder à l'esprit que des versions intermédiaires du logiciel peuvent avoir été installées ou développées. En d'autres termes, les deux versions N et N-1 ne sont pas forcément deux versions strictement consécutives du logiciel. On peut envisager, lors du retour en arrière, REVENDICATIONS1. Procédé de mise à jour à distance d'un logiciel embarqué dans une unité de stockage informatique (20) de véhicule et présentant une 5 version actuelle (N) installée, le procédé de mise en jour comprenant une étape de retour en arrière pour installer une version antérieure (N-1), avec au moins les étapes consistant à : - consulter un fichier différentiel (FD) caractérisant des différences entre la version actuelle (N) et la version antérieure (N-1), 10 - reconstruire la version antérieure (N-1) à partir de la version actuelle (N) en utilisant les données du fichier différentiel (FD), - remplacer dans l'unité de stockage informatique du véhicule la version actuelle (N) du logiciel par la version antérieure (N-1), - piloter au moins un organe du véhicule avec le logiciel présentant la version 15 antérieure (N-1). 2. Procédé de mise à jour à distance selon la revendication précédente, dans lequel l'étape de reconstruction de la version antérieure (N1) est mise en oeuvre au niveau du véhicule, par exemple dans une unité de calcul de mise à jour embarquée (60). 20 3. Procédé de mise à jour à distance selon l'une des revendications précédentes, dans lequel l'étape de consultation du fichier différentiel (FD) consiste à consulter un fichier différentiel (FD) stocké dans une unité de stockage informatique du véhicule. 4. Procédé de mise à jour à distance selon la revendication 25 précédente, dans lequel le fichier différentiel (FD) a été utilisé pour construire la version actuelle (N) du logiciel à partir de la version antérieure (N-1), lors d'une mise à jour précédente. 9 5. Procédé de mise à jour à distance selon l'une des revendications précédentes, dans lequel le fichier différentiel (FD) a été obtenu par un téléchargement à distance effectué par une liaison sans fil. 6. Procédé de mise à jour à distance selon la revendication précédente, dans lequel la liaison sans fil est effectuée en se connectant à un relais téléphone. 7. Procédé de mise à jour à distance selon l'une des revendications précédentes, dans lequel le fichier différentiel (FD) a été construit lors d'une étape consistant à lister les différences entre la version 10 antérieure (N-1) et la version actuelle (N) du logiciel. 8. Procédé de mise à jour à distance selon l'une des revendications précédentes, comprenant une étape initiale de détection d'une anomalie de fonctionnement d'un organe du véhicule, nécessitant une étape de retour en arrière pour installer une version antérieure (N-1) du logiciel 15 pilotant l'organe présentant l'anomalie de fonctionnement. 9. Unité de stockage informatique (20) de véhicule automobile, stockant un logiciel dont la mise à jour est effectuée par le procédé de mise à jour à distance selon l'une des revendications 1 à 7. 10. Véhicule automobile comprenant une unité de stockage 20 informatique (20) selon la revendication précédente.