FR3108191A1 - Procédé et dispositif de mise à jour d’un logiciel comportant des adresses physiques vers la mémoire d’un calculateur embarqué d’un véhicule - Google Patents
Procédé et dispositif de mise à jour d’un logiciel comportant des adresses physiques vers la mémoire d’un calculateur embarqué d’un véhicule Download PDFInfo
- Publication number
- FR3108191A1 FR3108191A1 FR2002378A FR2002378A FR3108191A1 FR 3108191 A1 FR3108191 A1 FR 3108191A1 FR 2002378 A FR2002378 A FR 2002378A FR 2002378 A FR2002378 A FR 2002378A FR 3108191 A1 FR3108191 A1 FR 3108191A1
- Authority
- FR
- France
- Prior art keywords
- software
- zone
- update
- memory
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000004913 activation Effects 0.000 claims abstract description 11
- 230000004048 modification Effects 0.000 claims abstract description 5
- 238000012986 modification Methods 0.000 claims abstract description 5
- 230000005540 biological transmission Effects 0.000 claims abstract description 3
- 238000009434 installation Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000008672 reprogramming Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005672 electromagnetic field Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000007420 reactivation Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0859—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions
- H04L41/0863—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions by rolling back to previous configuration versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Stored Programmes (AREA)
Abstract
L’invention concerne un procédé d’installation d’une mise à jour d’un logiciel d’un calculateur embarqué d’un véhicule, comportant une mémoire comprenant une première zone, une deuxième zone, un logiciel courant, généré lors d’une première compilation préalable, étant stocké dans la première zone, et comportant des adresses physiques, déterminées lors de la première compilation préalable, désignant des parties de ladite première zone, et un pointeur indiquant au calculateur quelles instructions exécuter, ledit pointeur indiquant la première zone mémoire, comportant des étapes de : - Téléchargement (311) d’un logiciel de mise à jour, généré lors d’une deuxième compilation préalable, comportant des adresses physiques, désignant des parties de ladite deuxième zone mémoire, -Emission (312) d’une requête commandant une écriture de la mise à jour dans la deuxième zone - Emission (314) d’une requête commandant une activation du logiciel mis à jour, comportant une modification du pointeur, de sorte que celui-ci indique la deuxième zone. Figure pour l’abrégé : Figure 3
Description
L’invention concerne la mise à jour logicielle d’un ou plusieurs calculateurs d’un véhicule automobile réalisée à distance d’un outil de diagnostic aussi appelée mise à jour OTA (pour Over The Air).
Arrière-plan technologique
Dans la suite de la description, lorsque le fichier à télécharger contient des instructions ou le code exécutable d'un logiciel, on parlera également de téléchargement d'un logiciel.
La complexité croissante de la fonction électronique embarquée entraîne une multiplication des boîtiers électroniques (ou calculateurs) montés sur les véhicules automobiles.
Afin de limiter la diversité qui en résulte, il a été décidé de reporter lorsque cela est possible la diversité matérielle sur le logiciel et de pratiquer un téléchargement de ces calculateurs. L'opération est réalisée moyennant un outil débarqué qui se connecte sur la prise diagnostic du véhicule et permet de programmer dans la mémoire du ou des calculateurs le logiciel qui assure un fonctionnement conforme du véhicule produit en prenant en compte les caractéristiques (motorisation, options) propres à ce véhicule.
La communication entre l'outil et le ou les calculateurs fait généralement usage soit de la technologie CAN 500kbps connue de l’état de l’art actuel ou de la technologie Ethernet 100 Mbits/s en cours de déploiement dans le monde automobile afin de transférer les données à programmer.
On connaît déjà dans l'état de la technique des procédés et des systèmes de téléchargement de fichiers dans des calculateurs embarqués à bord de véhicules automobiles, tels que ceux décrits par exemple dans le document FR-A-2719924. Ce document détaille les différentes étapes successives de la procédure utilisée lors de l'assemblage des véhicules ou dans le réseau après-vente d'un constructeur, lors de la correction d'une prestation par échange de fichier.
Cependant, dans le but de rendre les véhicules toujours plus sûrs pour leurs clients, les constructeurs automobiles envisagent de pouvoir réaliser certaines mises à jour directement chez le client final, à l’image de ce qui existe déjà dans le domaine du consumérisme pour un PC ou un smartphone par exemple. En effet, les moyens de connectivité présents dans les véhicules permettent déjà d’échanger de nombreuses informations avec l’extérieur (informations de trafic, de navigation, de données pour la réparation ou pour les assureurs, …) et ces échanges sont en pleine expansion. Il en résulte une demande accrue pour la protection des données clients, mais aussi pour une protection importante de ces véhicules compte tenu des possibilités de cyber-attaque et du risque encouru sur la sécurité routière. En effet, lors de la détection d’une attaque de ce type et de la disponibilité d’un « patch » correctif (un logiciel ou module logiciel) en mesure d’en supprimer ou d’en réduire les risques, la vitesse à laquelle cette correction peut être installée revêt sans aucun doute un aspect primordial. Dans ce cas, une mise à jour OTA peut permettre de gagner beaucoup de temps en comparaison d’un rappel organisé des véhicules dans le garage du réseau agrée ou indépendant.
Pour pouvoir réaliser ce type d’opération directement chez le client final, il convient néanmoins de prendre en considérations plusieurs aspects qui ajoutent à la complexité de cette opération.
La mise à jour du logiciel d’un calculateur d’une automobile peut dans certains cas la rendre indisponible ou encore induire des conséquences importantes tant pour les occupants du véhicule que pour son environnement. C’est la raison pour laquelle la mise à jour en OTA de certains calculateurs et en particulier ceux qui sont associés à la dynamique du véhicule nécessitent un mécanisme appelé Rollback (ou retour en arrière, ou encore retour à un état précédent) qui permet de revenir à la configuration logicielle antérieure dans le cas de la détection d’un problème survenu pendant la mise à jour du logiciel d’un ou plusieurs calculateurs du véhicule.
Ce type de problème peut intervenir par exemple dans le cas où le calculateur destinataire essaye d’écrire une valeur sur une cellule mémoire corrompue par exemple, ou dans le cas d’une erreur de transmission due par exemple à un champ électromagnétique, ou d’autres cas encore.
Un tel type de problème est généralement détecté par le calculateur destinataire (par exemple au moyen d’une vérification d’un CRC Cyclic Redoundancy Check dans le cas d’une réception erronée). Dans ce cas, une information sera transmise au calculateur maitre pour demander l’exécution du processus de rollback.
On connait par exemple par le document US20190057214 un dispositif de commande de mise à jour qui comprend une première unité de communication, une seconde unité de communication, et une unité de commande. La première unité de communication est configurée pour recevoir des données de patch pour chaque bloc des logiciels et des premières données d'authentification pour chaque bloc d'authentification d'un logiciel dans un terminal mis à jour en utilisant les données de patch sur une base par bloc.
L'unité de commande est configurée pour demander au terminal d'effectuer un rollback pour restauration d’un premier bloc à un (M-1) ième bloc en utilisant les données de patch à réception d'un résultat de mise jour indiquant une défaillance dans une authentification d’un bloc Mième (M> 1).
Cette solution présente l’inconvénient de devoir générer des blocs de logiciels et de vérifier leur intégrité au cours de la procédure de rollback. Ceci augmente le risque d’échec de la procédure de rollback.
Un objet de la présente invention est de proposer une solution pour remettre rapidement à un état précédent une mise à jour logicielle d’un calculateur d’un véhicule en particulier lorsqu’une mise à jour a été identifiée comme corrompue.
L’invention concerne en particulier un procédé d’installation d’une mise à jour d’un logiciel d’un calculateur embarqué d’un véhicule, comportant une mémoire comprenant une première zone (Z1), une deuxième zone (Z2), un logiciel courant, généré lors d’une première compilation préalable, étant stocké dans la première zone (Z1), ledit logiciel courant comportant des adresses physiques, déterminés lors de la première compilation préalable, désignant des parties de ladite première zone (Z1), et un pointeur indiquant au calculateur quelles instructions exécuter, ledit pointeur indiquant la première zone mémoire (Z1), caractérisé en ce qu’il comporte des étapes de:
- Téléchargement (311) d’un logiciel de mise à jour, généré lors d’une deuxième compilation préalable, ledit logiciel de mise à jour comportant des adresses physiques, déterminés lors de la deuxième compilation préalable, désignant des parties de ladite deuxième zone (Z2) mémoire,
-Emission (312) d’une requête commandant une écriture de la mise à jour dans la deuxième zone (Z2)
- Emission (314) d’une requête commandant une activation du logiciel mis à jour, ladite activation comportant une modification du pointeur, de sorte que celui-ci indique la deuxième zone mémoire (Z2).
- Téléchargement (311) d’un logiciel de mise à jour, généré lors d’une deuxième compilation préalable, ledit logiciel de mise à jour comportant des adresses physiques, déterminés lors de la deuxième compilation préalable, désignant des parties de ladite deuxième zone (Z2) mémoire,
-Emission (312) d’une requête commandant une écriture de la mise à jour dans la deuxième zone (Z2)
- Emission (314) d’une requête commandant une activation du logiciel mis à jour, ladite activation comportant une modification du pointeur, de sorte que celui-ci indique la deuxième zone mémoire (Z2).
L’invention a pour avantage de fonctionner avec des calculateurs disposant de microcontrôleurs peut évolués. En effet, l’invention ne nécessite pas que le microcontrôleur chargé de la gestion de la mémoire dispose d’un mécanisme de translation d’adresse.
L’invention a pour avantage lorsqu’un test d’intégrité des données reçues abouti à un échec, de permettre d’interrompre sans délai la procédure d’installation et de continuer à utiliser le logiciel courant qui n’est pas modifié dans la première mémoire.
En outre une étape de rollback (par exemple, suite à un disfonctionnement constaté par un utilisateur), peut facilement être mise en œuvre en modifiant à nouveau le pointeur pour revenir au logiciel toujours présent dans la première zone mémoire.
L’invention offre donc un gain de temps mais aussi une sécurité renforcée dans la mesure où elle élimine des risques supplémentaires de corruption des données inévitablement liées aux opérations successives de génération de bloc de logiciels au cours de la phase de rollback dans la solution de l’état de la technique.
Avantageusement, le procédé de mise à jour d’un logiciel d’un calculateur selon l’invention, comporte en outre une étape d’émission d’une requête commandant une vérification de l’intégrité du logiciel mis à jour dans la deuxième zone, l’étape d’émission d’une requête commandant une activation du logiciel mis à jour, seulement si l’intégrité est vérifiée.
Avantageusement, le procédé de mise à jour d’un logiciel d’un calculateur selon l’invention, comporte en outre une étape de retour à un état précédent la mise à jour, ledit retour à un état précédent comportant une modification du pointeur, de sorte que celui indique la première zone mémoire.
Avantageusement, le procédé de mise à jour d’un logiciel d’un calculateur selon l’invention, comporte en outre, consécutivement à une détection d’une erreur, une étape d’émission d’une requête commandant l’arrêt de l’installation de la mise à jour.
Avantageusement, l’arrêt de l’installation de la mise à jour comporte l’émission d’un message destiné au conducteur pour l’informer de l’arrêt de l’installation.
L’invention concerne aussi un produit programme d’ordinateur comportant des instructions adaptées pour l’exécution des étapes du procédé selon l’invention, lorsque le programme d’ordinateur est exécuté par au moins un processeur.
L’invention concerne aussi un dispositif de mise à jour d’un logiciel d’un calculateur, ledit dispositif comprenant une mémoire associée à au moins un processeur configuré pour mettre en œuvre les étapes du procédé selon l’invention.
L’invention concerne aussi un véhicule caractérisé en ce qu’il comporte un dispositif de mise à jour d’un logiciel d’un calculateur selon l’invention.
Brève description des figures
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 annexées, sur lesquelles:
En référence à la figure 1, le système selon l’invention comporte un véhicule 101 connecté à un serveur 102 de mise à jour distant.
Le véhicule 101 comprend une pluralité de calculateurs ECU1, ECU2, ECU3 dont une unité de communication embarquée qui communique avec le serveur 102, par l'intermédiaire d'une connexion sans fil. Typiquement, la connexion ou liaison sans fil est une connexion par ondes radio (3G, 4G,…).
Les calculateurs ECU1, ECU2, ECU3 communiquent entre eux par l’intermédiaire d’un bus de données 104 (par exemple de type CAN).
Le serveur débarqué 102 est par exemple un calculateur générique comportant au moins une mémoire et un processeur.
Le véhicule 101 et le serveur débarqué 102 communique via un réseau étendu 105 tel que un réseau de communication fixe 103 (ou WAN pour "Wide Area Network"), par exemple le réseau Internet auquel véhicule se connecte par une liaison sans fil (3G, 4G,…).
Le calculateur ECU1 aussi appelé calculateur de gestion de mise à jour (ou encore FOTA Master – pour Firmware Over-The-Air) qui permet la mise à jour des calculateurs ECU2 à ECU3, dispose à cet effet des mécanismes capables de transférer les fichiers de données reçues en trames attendues par les calculateurs ECU2, ECU3 destinataires pour installer leur logiciel. A noter que le calculateur jouant le rôle de FOTA master dans un véhicule peut ou non être le même calculateur que celui qui dispose des fonctions de communication sans fils.
Un opérateur via un terminal 107 peut réaliser les vérifications et transmet des instructions à distance au véhicule 101. Ces instructions sont transmises au véhicule 101 par voie d’onde qui peut être de la 4G, du WIFI ou toute autre technologie de communication sans fil à venir.
Les calculateurs ECU1, ECU2, ECU3 peuvent être mis à jour dans un garage. La mise à jour d’un logiciel dans un garage répond à une procédure spécifique (cas 1 de la figure 1) au cours de laquelle, l’opérateur devient responsable du véhicule qui lui a été confié. A cet égard, il place le véhicule dans un environnement «safe and secure» avant de lancer cette opération à partir d’un outil 106 branché sur une prise dédiée 108 du véhicule 101 Puis une fois l’opération terminée, il effectue certains contrôles afin de s’assurer de son bon fonctionnement. En cas de problème détecté, soit lors du déroulement de la procédure ou après la mise à jour, le technicien prendra les mesures nécessaires à la correction de l’anomalie (nouvel essai, changement de pièce, …) avant de restituer le véhicule au client. Le garagiste est donc à ce titre un maillon important de la chaine safety mais est aussi en charge de s’assurer de la qualité de l’opération réalisée.
Lors d’une mise à jour OTA chez un client (cas 2 de la figure 1), rien de tout cela n’est possible et il convient donc d’ajouter dans chaque calculateur un mécanisme permettant de revenir à la version antérieure en cas de problème.
Pour réaliser une mise à jour d’un calculateur cible, le FOTA master communique avec ledit calculateur cible via le réseau de communication disponible dans le véhicule (par exemple CAN, Ethernet ou autre). Il utilise pour cela un protocole de communication dédié, comme par exemple, le protocole UDS (norme ISO14229) couramment employé pour réaliser le diagnostic ou le téléchargement du logiciel des calculateurs embarqués dans les véhicules automobiles.
En référence à la figure 2, le calculateur 200 selon l’invention comporte un microcontrôleur muni d’une mémoire Flash 201. La mémoire flash 201 comporte:
- une première zone Z1, aussi appelée zone d’exécution, utilisée pour exécuter le logiciel téléchargé, et d’une taille au moins égale à une taille donnée N,
- une deuxième zone Z2, aussi appelée zone de sauvegarde, d’une taille au moins égale à la taille donnée N, utilisée comme mémoire de sauvegarde permettant de revenir à la version précédente du logiciel en cas de problème lors de l’installation,
La taille de la mémoire flash 201 est donc d’au moins deux fois la taille donnée N.
La Z2 peut être un module mémoire séparé de la première zone Z1 ou faire partie du même module mémoire en tant que zone contiguë à la première zone Z1.
Dans l’exemple de la figure 2 les plages d’adresses 00000h-0FFFFh (h pour hexadécimal) et 10000h-1FFFFh correspondant respectivement à la première Z1 puis à la deuxième zone Z2. Le principe de sélection de la zone mémoire du logiciel à exécuter est réalisé en programmant à une adresse particulière communément appelée pointeur Vecteur de Reset généralement situé au début de la mémoire Flash (adresse 00000h) une instruction dont l’exécution va provoquer un saut vers la zone mémoire Z1 ou Z2 correspondant à la zone d’exécution. Le démarrage aura donc toujours lieu dans la zone mémoire qui contient le vecteur de reset. La suite de l’exécution aura lieu à partir de la bonne zone mémoire car les adresses à partir desquelles le microcontrôleur va lire les instructions à exécuter seront liées soit à la zone Z1, ou bien à la zone Z2, les valeurs de ces adresses étant produites au moment de la compilation du logiciel.
Dans la suite de la description, on verra que l’activation d’une mise à jour nouvellement installée consiste donc simplement à programmer le Vecteur de Reset en lui affectant l’adresse de saut vers la zone contenant le logiciel mis à jour (version N+1). De même, un rollback est réalisé en inscrivant au Vecteur de Reset, l’adresse de base de la zone mémoire contenant la version précédente (version N).
Dans l’exemple de la figure 4, le calculateur à mettre à jour 200, ou calculateur cible, dispose d’un logiciel (version N) dans sa première zone mémoire Z1.
Avantageusement, avant la mise à jour du calculateur cible, le FOTA master place le calculateur 200 dans un état dédié à la programmation (où le fonctionnel est désactivé) en utilisant une requête d’entrée en session reprogrammation. Le calculateur cible 200 accepte d’exécuter cette requête uniquement si les conditions sécuritaires sont remplies (ex : véhicule à l’arrêt, chaîne de traction désactivée, etc.)
En session reprogrammation, le FOTA master communique directement avec le logiciel de boot du calculateur cible 200. En fonction des requêtes envoyées par le FOTA master, le logiciel de boot du calculateur peut exécuter différentes opérations (écriture, copie, contrôle d’intégrité) sur l’une des deux mémoires dont il dispose (mémoire d’exécution ME ou mémoire de sauvegarde MS). La figure 3 décrit une succession d’actions à réaliser par le FOTA master pour installer un nouveau logiciel dans le calculateur cible 200.
Avant l’exécution du procédé de mise à jour selon l’invention, le calculateur cible 200 se trouve dans un premier état 501, dit état initial, dans lequel: la première zone Z1 comporte le logiciel courant (version N).
Dans une première étape 311, le FOTA master télécharge un logiciel mis à jour compilé pour être installé dans la deuxième zone mémoire. La compilation a pour effet d’inclure dans l’image constituant la mise à jour à installer, les adresses mémoires qui diffèrent selon que le logiciel est destiné à s’exécuter depuis la première ou depuis la seconde banque.
Selon l’invention, la translation des adresses est donc réalisée non pas dynamiquement (autrement dit pendant l’exécution du logiciel par le microcontrôleur), mais au moment de la création (compilation) du logiciel. Ainsi un logiciel (par exemple version n) serait compilé pour la première banque et la mise à jour (n+1) pour la seconde banque. Dans l’exemple de la figure 2, le logiciel compilé pour la deuxième zone mémoire comprend adresses comprises entre 10000h et 1FFFFh.
Le logiciel compilé pour la première zone comprend des adresses comprises entre 0000h et 0FFFFh.
De façon optionnelle, le FOTA master envoie une requête pour demander au calculateur cible 200 d’effacer la deuxième zone Z2.
Le FOTA master envoie ensuite 312 au calculateur cible la mise à jour et commande son écriture dans la deuxième zone Z2.
Le FOTA master envoie 313 ensuite une requête pour demander au calculateur cible de contrôler l’intégrité des données copiées dans la deuxième zone Z2. Cette vérification peut être réalisée à l’aide d’un CRC Cyclic Redoundancy Check ou toute autre méthode connue de l’état de l’art (exemple : calcul, à l’aide d’une fonction de hachage, d’un «condensat» du contenu des données et comparaison du résultat avec une valeur de référence transmise au préalable par le FOTA master). Si la mémoire est composée de plusieurs blocs de données, chaque bloc dispose de son propre mécanisme de contrôle d’intégrité (basé sur la même méthode ou des méthodes différentes).
A l’issue de cette étape le calculateur cible 200 se trouve dans un deuxième état 502, dans lequel: la première zone Z1 comporte le logiciel courant (version N) et la deuxième zone Z2 comporte le logiciel mis à jour (version N+1).
Le FOTA master commande alors l’activation 314 du logiciel mis à jour (version N+1).
A noter que quelle que soit la phase de l’installation, plus particulièrement l’opération consistant à programmer la mise à jour, si une erreur est détectée (erreur de programmation de la mémoire Flash, réponse négative après plusieurs tentatives), le FOTA master interrompt 315 l’installation sans activer le logiciel de la deuxième zone Z2. L’utilisation du véhicule reste alors possible en continuant d’exécuter le logiciel contenu dans première zone Z1. Un message d’erreur est alors affiché signalant l’échec de l’installation au client qui doit alors déposer son véhicule dans un garage.
Si à l’issue d’une installation réussie, il s’avère qu’un fonctionnement anormal du véhicule est détecté par le client, un retour à la version précédente (version N) est possible en pratiquant un rollback. Ce dernier consiste dans le cas de la mémoire double bank en une simple réactivation de l’exécution du logiciel encore présent dans première zone (Z1). Aucune recopie n’est nécessaire, l’opération de rollback consistant ici à réaffecter le pointeur d’exécution à la première zone (Z1), si bien qu’à chaque mise sous tension du calculateur (démarrage véhicule) le logiciel qui s’exécutera sera celui de la première zone (Z1).
L’étape d’activation 314, ou l’exécution d’un éventuel rollback, s’opèrent par simple réaffectation de l’adresse d’exécution à la zone mémoire contenant le nouveau logiciel (activation) ou celle contenant l’ancienne version servant de mémoire de sauvegarde (rollback) selon un mécanisme connu de l’état de l’art.
On peut noter que les affectations «mémoire d’exécution» (ou zone d’exécution) et «mémoire de sauvegarde» (ou zone de sauvegarde) ne sont donc pas fixes puisqu’une banque donnée devient à chaque mise à jour alternativement mémoire d’exécution puis mémoire de sauvegarde. En effet lorsqu’une mise à jour réussie est éprouvée du point de vue de la prestation qu’elle est censée assurer (pas de rollback déclenché par le client pendant un certain temps), la mémoire de sauvegarde devient disponible pour accueillir une éventuelle nouvelle mise à jour et ce sera alors la mémoire d’exécution qui deviendra mémoire de sauvegarde lors de l’installation de la nouvelle mise à jour. A chaque mise à jour réussie, les affectations mémoire d’exécution et mémoire de rollback s’inversent donc.
On peut aussi noter que par souci de simplification, seul le cas de sortie lié à un échec survenant au cours du test d’intégrité a été représenté sur la figure 3. Le bon déroulement de la procédure d’installation est cependant bien supervisé au cours de chaque étape, plus particulièrement l’effacement de la mémoire et la phase de transfert-écriture des données en mémoire depuis le FOTA master. Si une erreur survient après plusieurs (par exemple 3) tentatives, la procédure d’installation prend fin ce qui se solde par un échec de la mise à jour.
Claims (8)
- Procédé d’installation d’une mise à jour d’un logiciel d’un calculateur embarqué d’un véhicule, comportant une mémoire comprenant une première zone (Z1), une deuxième zone (Z2), un logiciel courant, généré lors d’une première compilation préalable, étant stocké dans la première zone (Z1), ledit logiciel courant comportant des adresses physiques, déterminées lors de la première compilation préalable, désignant des parties de ladite première zone (Z1), et un pointeur indiquant au calculateur quelles instructions exécuter, ledit pointeur indiquant la première zone mémoire (Z1), caractérisé en ce qu’il comporte des étapes de:
- Téléchargement (311) d’un logiciel de mise à jour, généré lors d’une deuxième compilation préalable, ledit logiciel de mise à jour comportant des adresses physiques, déterminés lors de la deuxième compilation préalable, désignant des parties de ladite deuxième zone (Z2) mémoire,
-Emission (312) d’une requête commandant une écriture de la mise à jour dans la deuxième zone (Z2)
- Emission (314) d’une requête commandant une activation du logiciel mis à jour, ladite activation comportant une modification du pointeur, de sorte que celui-ci indique la deuxième zone mémoire (Z2). - Procédé de mise à jour d’un logiciel d’un calculateur selon la revendication 1, comportant en outre une étape d’émission (313) d’une requête commandant une vérification de l’intégrité du logiciel mis à jour dans la deuxième zone (Z2), l’étape d’émission (314) d’une requête commandant une activation du logiciel mis à jour, seulement si l’intégrité est vérifiée.
- Procédé de mise à jour d’un logiciel d’un calculateur selon l’une des revendications précédentes, comportant en outre une étape de retour à un état précédent la mise à jour, ledit retour à un état précédent comportant une modification du pointeur, de sorte que celui indique la première zone mémoire (Z1).
- Procédé de mise à jour d’un logiciel d’un calculateur selon l’une des revendications précédentes comportant en outre, consécutivement à une détection d’une erreur, une étape d’émission (315) d’une requête commandant l’arrêt de l’installation de la mise à jour.
- Procédé de mise à jour d’un logiciel d’un calculateur selon la revendication précédente dans lequel l’arrêt de l’installation de la mise à jour comporte l’émission d’un message destiné au conducteur pour l’informer de l’arrêt de l’installation.
- Produit programme d’ordinateur comportant des instructions adaptées pour l’exécution des étapes du procédé selon l’une des revendications 1 à 5, lorsque le programme d’ordinateur est exécuté par au moins un processeur.
- Dispositif de mise à jour d’un logiciel d’un calculateur, ledit dispositif comprenant une mémoire associée à au moins un processeur configuré pour mettre en œuvre les étapes du procédé selon l’une quelconque des revendications 1 à 5.
- Véhicule caractérisé en ce qu’il comporte un dispositif de mise à jour d’un logiciel d’un calculateur selon la revendication précédente.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2002378A FR3108191B1 (fr) | 2020-03-10 | 2020-03-10 | Procédé et dispositif de mise à jour d’un logiciel comportant des adresses physiques vers la mémoire d’un calculateur embarqué d’un véhicule |
PCT/FR2021/050190 WO2021181015A1 (fr) | 2020-03-10 | 2021-02-02 | Procédé et dispositif de mise à jour d'un logiciel comportant des adresses physiques vers la mémoire d'un calculateur embarqué d'un véhicule |
CN202180020341.3A CN115280280A (zh) | 2020-03-10 | 2021-02-02 | 用于朝向车辆的车载计算机的存储器更新包括物理地址的软件的更新方法和更新装置 |
EP21707766.8A EP4118548A1 (fr) | 2020-03-10 | 2021-02-02 | Procédé et dispositif de mise à jour d'un logiciel comportant des adresses physiques vers la mémoire d'un calculateur embarqué d'un véhicule |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2002378A FR3108191B1 (fr) | 2020-03-10 | 2020-03-10 | Procédé et dispositif de mise à jour d’un logiciel comportant des adresses physiques vers la mémoire d’un calculateur embarqué d’un véhicule |
FR2002378 | 2020-03-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3108191A1 true FR3108191A1 (fr) | 2021-09-17 |
FR3108191B1 FR3108191B1 (fr) | 2023-05-19 |
Family
ID=72088200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2002378A Active FR3108191B1 (fr) | 2020-03-10 | 2020-03-10 | Procédé et dispositif de mise à jour d’un logiciel comportant des adresses physiques vers la mémoire d’un calculateur embarqué d’un véhicule |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4118548A1 (fr) |
CN (1) | CN115280280A (fr) |
FR (1) | FR3108191B1 (fr) |
WO (1) | WO2021181015A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003629A (zh) * | 2021-10-29 | 2022-02-01 | 深圳壹账通智能科技有限公司 | 一种高效预编译型缓存数据管理方法、装置、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2719924A1 (fr) | 1994-05-11 | 1995-11-17 | Peugeot | Procédé de déverrouillage de l'accès d'un outil de téléchargement d'un fichier, à un calculateur. |
US6141683A (en) * | 1998-01-30 | 2000-10-31 | Lucent Technologies, Inc. | Method for remotely and reliably updating of the software on a computer with provision for roll back |
WO2019021064A1 (fr) * | 2017-07-25 | 2019-01-31 | Aurora Labs Ltd | Construction de mises à jour delta de logiciel pour un logiciel ecu de véhicule et détection d'anomalie basée sur une chaîne d'outils |
US20190057214A1 (en) | 2017-08-21 | 2019-02-21 | Kabushiki Kaisha Toshiba | Update control device, terminal, and method of controlling |
US20190095187A1 (en) * | 2017-09-28 | 2019-03-28 | Trillium Incorporated | Incremental updates in static libraries |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1209813A (en) | 1968-02-22 | 1970-10-21 | Agfa Gevaert Nv | Improved photographic silver halide material |
-
2020
- 2020-03-10 FR FR2002378A patent/FR3108191B1/fr active Active
-
2021
- 2021-02-02 EP EP21707766.8A patent/EP4118548A1/fr active Pending
- 2021-02-02 CN CN202180020341.3A patent/CN115280280A/zh active Pending
- 2021-02-02 WO PCT/FR2021/050190 patent/WO2021181015A1/fr unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2719924A1 (fr) | 1994-05-11 | 1995-11-17 | Peugeot | Procédé de déverrouillage de l'accès d'un outil de téléchargement d'un fichier, à un calculateur. |
US6141683A (en) * | 1998-01-30 | 2000-10-31 | Lucent Technologies, Inc. | Method for remotely and reliably updating of the software on a computer with provision for roll back |
WO2019021064A1 (fr) * | 2017-07-25 | 2019-01-31 | Aurora Labs Ltd | Construction de mises à jour delta de logiciel pour un logiciel ecu de véhicule et détection d'anomalie basée sur une chaîne d'outils |
US20190057214A1 (en) | 2017-08-21 | 2019-02-21 | Kabushiki Kaisha Toshiba | Update control device, terminal, and method of controlling |
US20190095187A1 (en) * | 2017-09-28 | 2019-03-28 | Trillium Incorporated | Incremental updates in static libraries |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003629A (zh) * | 2021-10-29 | 2022-02-01 | 深圳壹账通智能科技有限公司 | 一种高效预编译型缓存数据管理方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021181015A1 (fr) | 2021-09-16 |
EP4118548A1 (fr) | 2023-01-18 |
CN115280280A (zh) | 2022-11-01 |
FR3108191B1 (fr) | 2023-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3273350B1 (fr) | Dispositif de mise à jour de logiciels et procédé de mise à jour de logiciels | |
US10162625B2 (en) | Vehicle control storage methods and systems | |
FR3096153A1 (fr) | Procédé et dispositif de retour à un état précédent une mise à jour logicielle d’un calculateur d’un véhicule à distance | |
CN113238774A (zh) | 车载迎宾动画更新方法、装置、车载终端及存储介质 | |
CN107102849B (zh) | 用于周期性点火开关断开的文件替换的方法和设备 | |
FR3108191A1 (fr) | Procédé et dispositif de mise à jour d’un logiciel comportant des adresses physiques vers la mémoire d’un calculateur embarqué d’un véhicule | |
CN115514742A (zh) | Ota管理器、中心、系统、方法、非暂时性存储介质 | |
EP4004712A1 (fr) | Procédé et dispositif de mise à jour d'un logiciel d'un calculateur embarqué d'un véhicule, comportant une mémoire d'exécution, une mémoire de sauvegarde et une mémoire de contrôle | |
FR3100071A1 (fr) | Procédé et dispositif de mise à jour d’un logiciel d’un calculateur embarqué d’un véhicule, comportant une mémoire d’exécution et une mémoire de sauvegarde | |
JP7559684B2 (ja) | Otaマスタ、システム、方法、プログラム、及び車両 | |
FR3103926A1 (fr) | Procédé de mise à jour de système numérique. | |
FR3099265A1 (fr) | Procédé et dispositif de mise à jour d’un logiciel d’un calculateur embarqué d’un véhicule, comportant une mémoire d’exécution, une mémoire de sauvegarde et une mémoire de contrôle | |
FR3099264A1 (fr) | Procédé et dispositif de mise à jour d’un logiciel d’un calculateur embarqué d’un véhicule, comportant une mémoire d’exécution et une mémoire de sauvegarde | |
EP1616256B1 (fr) | Procédé de gestion d'un code executable téléchargé dans un système embarqué reprogrammable | |
FR3114416A1 (fr) | Procédé et dispositif de mise à jour d’un logiciel d’un calculateur embarqué d’un véhicule, comportant une mémoire d’exécution, une mémoire de sauvegarde et une mémoire de contrôle | |
FR3114415A1 (fr) | Procédé et dispositif de mise à jour d’un logiciel d’un calculateur embarqué d’un véhicule, comportant une mémoire d’exécution et une mémoire de sauvegarde | |
WO2020165518A1 (fr) | Procédé de mise à jour d'un calculateur automobile de façon à lui ajouter une fonctionnalité supplémentaire | |
WO2021023694A1 (fr) | Procédé d'écriture dans une zone de données sécurisée d'un calculateur sur bus embarqué de véhicule | |
EP3991029A1 (fr) | Procédé de dialogue avec un calculateur sur bus embarqué de véhicule | |
FR3100638A1 (fr) | Procédé et dispositif de mise à jour d’un calculateur cible à partir d’un script interprété | |
FR2903791A1 (fr) | Procede de telechargement d'un module logiciel. | |
WO2021205655A1 (fr) | Système de commande embarqué et procédé de diagnostic d'anomalie | |
FR2928473A1 (fr) | Procede et disositif pour assurer une coherence entre des telechargements de differentes versions d'un logiciel. | |
WO2024080913A1 (fr) | Simulation de fonctionnalités d'un véhicule physique ou de parties de celui-ci | |
WO2024121096A1 (fr) | Unite de commande electronique pour vehicule comprenant une boite noire transactionnelle, et procede de fonctionnement d'une telle unite de commande electronique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20210917 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLFP | Fee payment |
Year of fee payment: 4 |
|
PLFP | Fee payment |
Year of fee payment: 5 |
|
CD | Change of name or company name |
Owner name: STELLANTIS AUTO SAS, FR Effective date: 20240423 |