Brevet FR2928473A1 — publié le 20090911

Procédé et dispositif pour assurer une cohérence entre des téléchargements de différentes versions d'un logiciel. Le domaine de l'invention est celui des mises à jour de logiciels adaptés à différentes configurations de véhicules, notamment de véhicules automobiles. Plus particulièrement, l'invention concerne un procédé et un dispositif pour assurer une cohérence entre des téléchargements de différentes versions d'un logiciel. Les véhicules modernes comprennent de plus en plus de calculateurs électroniques, généralement nommés UCE (acronyme de Unité de Contrôle Electronique), qui hébergent un ou plusieurs logiciels chargés d'assurer aussi bien des fonctions de confort que de sécurité. Pour permettre plus de souplesse pendant le développement et de corriger une prestation en série, une UCE est souvent agencée pour mettre en oeuvre une fonction de téléchargement qui permet de remplacer le logiciel existant au moyen d'un outil de diagnostic. Grâce au téléchargement, il est possible de moderniser le logiciel de l'UCE dans le réseau après vente que ce soit pour corriger un bogue logiciel ou pour modifier les valeurs d'une cartographie. Cependant, afin de diminuer les coûts de mise au point des logiciels, comprenant la fabrication d'un fichier, tout en assurant une grande diversité de production, et lorsque la capacité mémoire du calculateur le permet, on regroupe au sein d'un même logiciel plusieurs calibrations correspondant chacune à une application spécifiquement adaptée à un véhicule donné. Une opération supplémentaire de configuration est alors nécessaire que nous nommerons télécodage dans la suite de la description. Cette opération de configuration ou télécodage, permet de sélectionner, à l'aide d'un outil de diagnostic, une configuration particulière parmi celles qui sont présentes dans le logiciel téléchargé. Le logiciel contient une table associative, indiquant pour chaque paramètre de configuration, une adresse en mémoire non volatile, à laquelle est stockée une valeur du paramètre correspondant à la configuration sélectionnée. Si chaque nouvelle version de logiciel est élaborée de façon à tenir rigoureusement compte de toutes les configurations possibles de la version précédente, il suffit alors de télécharger la nouvelle version de logiciel sans se préoccuper de refaire la configuration ou le paramétrage. Cependant ce type d'approche est contraignant tant du fait qu'il fige toute possibilité d'une version pour laquelle une extension ou une modification de paramétrage est utile que du fait d'une connaissance parfaite des version antérieures pas toujours facile à garantir vu la complexité croissante des logiciels. Un problème se pose sérieusement si le paramétrage d'une version antérieure, n'est pas cohérent avec la nouvelle version de logiciel. Un manque de cohérence peut avoir des conséquences fâcheuses en termes d'image de marque, voire désastreuses en termes de sécurité. Pour répondre à ce problème, un objet de l'invention est un procédé pour assurer qu'une nouvelle version d'un logiciel est téléchargée dans une première mémoire d'une unité de contrôle électronique de véhicule, de manière cohérente au regard d'un paramétrage du logiciel, le logiciel comprenant une table associative dont un contenu attribue à au moins un paramètre du logiciel, une valeur qu'il est prévu de télé coder dans une deuxième mémoire de l'unité de contrôle électronique de façon à réaliser le paramétrage. Le procédé est remarquable en ce qu'il comprend : - une étape de comparaison, dans laquelle l'unité de contrôle électronique compare au moins une partie du contenu de la table associative de la nouvelle version, avec le contenu d'une zone de référence dans la deuxième mémoire ; - une étape de défaut déclenchée par une détection de contenu différent, dans laquelle un défaut de télécodage est mémorisé dans la deuxième mémoire ; et - une étape de recopie dans laquelle au moins une partie du contenu de la table associative, est recopiée dans la zone de référence de la deuxième mémoire de façon à pouvoir être comparée ultérieurement avec une même partie du contenu de la table associative d'une version ultérieure dudit logiciel. Particulièrement, le procédé comprend une étape d'invalidation déclenchée si un défaut de télécodage est mémorisé, et dans laquelle l'unité de contrôle électronique appelle à télé coder chaque valeur qu'il est prévu de télé coder dans la deuxième mémoire. Particulièrement encore, le procédé comprend une étape de validation déclenchée si aucun défaut de télécodage n'est mémorisé, et dans laquelle l'unité de contrôle électronique attribue la valeur au dit paramètre au moyen du contenu de la table associative. Plus particulièrement le procédé comprend une étape de lecture préalable à l'étape de comparaison, dans laquelle l'unité de contrôle électronique lit une zone de vérification, à la suite de la table associative dans la première mémoire, et qui contient une première variable pour adresser un début de la zone de référence. Un autre objet de l'invention est un dispositif pour agencer une unité de contrôle électronique de véhicule comprenant deux mémoires, de façon à assurer qu'une nouvelle version d'un logiciel est téléchargée dans une première mémoire, de manière cohérente au regard d'un paramétrage du logiciel, le logiciel comprenant une table associative dont un contenu attribue à au moins un paramètre dudit logiciel, une valeur qu'il est prévu de télé coder dans une deuxième mémoire de façon à réaliser le paramétrage. Le dispositif est remarquable en ce que : la deuxième mémoire comprend une zone de référence agencée pour contenir, avant téléchargement de la nouvelle version, au moins une partie de contenu de table associative qui correspond à une version antérieure du logiciel, et pour contenir, après téléchargement de la nouvelle version, la partie de contenu de la table associative qui correspond à la nouvelle version du logiciel ; et en ce que : - l'unité de contrôle électronique est agencée pour mémoriser un défaut de télécodage dans la deuxième mémoire lorsque la zone de référence contient une partie de contenu de table associative après téléchargement, différent de la partie de contenu de table associative avant téléchargement. Particulièrement la première mémoire est de type � Flash EPROM � et/ou la deuxième mémoire est de type � EEPROM �. Plus particulièrement, la première mémoire comprend une zone de vérification qui contient une première variable pour adresser un début de la zone de référence. D'autres détails et avantages de l'invention, vont encore ressortir à la lecture de la description du mode de réalisation qui suit en référence aux dessins annexés, dans lesquels : - la figure 1 illustre différents types de véhicules automobiles à chacun desquels correspond un logiciel applicatif adapté ; la figure 2 illustre un logiciel qui convient à différents types de véhicule pour chacun desquels un télécodage permet de sélectionner une configuration qui convient ; la figure 3 est une architecture mémoire d'unité de contrôle électronique pour mettre en oeuvre le logiciel illustré par la figure 2 ; la figure 4 est une architecture mémoire d'unité de contrôle électronique qui améliore l'architecture de la figure 3 conformément à l'invention ; la figure 5 montre des étapes de procédé conforme à l'invention ; les figures 6 et 7 montrent deux configurations possibles de l'architecture mémoire de la figure 3. A titre purement illustratif en référence à la figure 1, un logiciel 101 est spécifiquement configuré pour un véhicule 100 équipé d'un moteur de type TU5 avec une boîte de vitesse de type Refl et une carrosserie de type légère, un logiciel 111 est spécifiquement configuré pour un véhicule 110 équipé d'un moteur de type EW10 avec une boîte de vitesse de type Ref2 et une carrosserie de type moyenne, un logiciel 121 est spécifiquement configuré pour un véhicule 120 équipé d'un moteur de type TU3 avec une boîte de vitesse de type Ref3 et une carrosserie de type lourde. Chaque UCE de véhicule héberge alors un logiciel applicatif différent. En référence à la figure 2, un même logiciel applicatif 131 est téléchargé dans l'UCE de chaque véhicule 100, 110, 120. Les configurations pour les trois véhicules sont aussi téléchargées en bloc. On utilise alors un outil de diagnostique 132 pour télé coder dans chaque véhicule, celle des configurations qui lui convient. En référence à la figure 3, l'unité de contrôle électronique (UCE) 10 comprend une mémoire 11 de type � Flash EPROM � et une mémoire 12 de type � EEPROM �. La mémoire 11 contient le programme objet et les données d'un logiciel applicatif, ici par exemple nommé alpha. Particulièrement, le logiciel applicatif comprend une table associative 13 dans laquelle, sur chaque ligne, une colonne 14 associe un nom de paramètre à une valeur d'adresse contenue en colonne 15. Cette valeur d'adresse pointe sur une adresse de la mémoire 12 qui contient une valeur du paramètre associé. Pour illustrer le propos, le paramètre C_M_T relatif à une configuration de motorisation télé codée, est associé dans la table 13, à une valeur OxFF02 qui pointe dans la mémoire 12 sur une valeur OxAAAA mémorisée à l'adresse OxFF02. Le paramètre C_C_T relatif à une configuration de carrosserie télé codée, est associé dans la table 13, à une valeur OxFF04 qui pointe dans la mémoire 12 sur une valeur OxBBB mémorisée à l'adresse OxFF04. Le paramètre C_B_v_T relatif à une configuration de boîte de vitesse télé codée, est associé dans la table 13, à une valeur OxFF06 qui pointe dans la mémoire 12 sur une valeur OxCCC mémorisée à l'adresse OxFF06. Dans le cadre de la fonction de télécodage, l'attribution aux (mapping en anglais) paramètres des valeurs contenues dans la mémoire 12 de type EEPROM, est utilisée par le logiciel applicatif dans les deux situations de vie suivantes. Une première situation de vie a lieu au moment de l'opération de télécodage. Sur réception d'une requête de télécodage envoyée par l'outil 132, l'UCE 10 stocke les valeurs télé codées dans la mémoire 12 aux adresses indiquées dans une carte d'attribution (mapping en anglais). Dans l'exemple représenté en figure 3, la valeur OxAAAA, envoyée par l'outil pour configurer la motorisation, est stockée à l'adresse OxFF02, la valeur OxBBBB, envoyée par l'outil pour configurer la carrosserie, est stockée à l'adresse OxFF04, et la valeur OxCCCC, envoyée par l'outil pour configurer la boîte de vitesses, sera stockée à l'adresse OxFF06. Une deuxième situation de vie a lieu à chaque initialisation de l'UCE 10. Le logiciel applicatif lit les valeurs télé codées qui sont inscrites dans la mémoire 12 aux adresses indiquées dans la carte d'attribution et les associe aux différents paramètres afin d'adapter le logiciel à la configuration de véhicule demandée. Dans l'exemple ci-dessus, la variable nommée par le paramètre � C_M_T � prend la valeur OxAAAA, la variable nommée par le paramètre � C_C_T � prend la valeur OxBBBB, et la variable nommée par le paramètre � C_B_v_T � prend la valeur OxCCCC. La carte d'attribution � mapping EPPROM � est susceptible d'évoluer lors de chaque téléchargement d'un nouveau logiciel. Lorsque l'on effectue un téléchargement, deux cas 5 de figures peuvent se présenter. Dans un premier cas de figure, le nouveau logiciel et le logiciel précédent présentent une carte d'attribution � mapping EEPROM � identique. Il n'est alors pas nécessaire de télé coder à nouveau l'UCE 10. 10 Dans un deuxième cas de figure, le nouveau logiciel et le logiciel précédent ont des cartes d'attribution � mapping EEPROM � différentes. Il est alors nécessaire de réaliser un nouveau télécodage pour éviter que le logiciel applicatif ne démarre avec des variables de 15 télécodage qui contiennent des valeurs aléatoires. En effet, les valeurs présentes en mémoire 12 ne sont pas affectées par le téléchargement d'un nouveau logiciel en mémoire 11. Ceci est source d'une incohérence entre la carte d'attribution qui a évolué et les valeurs télé 20 codées stockées en mémoire 11 qui n'ont pas changées. Le fonctionnement de l'UCE 10, n'est alors plus maîtrisé. Il existe un risque pouvant aller de la perte d'agrément, à la détérioration matérielle, voire même, dans certains cas, la mise en péril de la sécurité des occupants du 25 véhicule. Il n'est pas aisé d'identifier les logiciels qui modifient la carte d'attribution (mapping EEPROM). Ceci motive le constructeur automobile à demander au fournisseur d'indiquer une telle modification sur le 30 bordereau de livraison lors de la fourniture du fichier. Mais rien ne garantit que l'opérateur effectue bien le télécodage en service après vente. Or, cela va à l'encontre de l'exigence du réseau qui consiste à garantir que le véhicule est correctement configuré avant 35 sa remise au client. Pour éviter les risques, une solution consiste à réaliser systématiquement un télécodage après toute opération de téléchargement, y compris pour celles qui n'affectent pas la carte d'attribution (mapping EEPROM). Mais, cela va à l'encontre de la rentabilité du réseau puisque dans la majeure partie des cas, par exemple ceux d'un simple changement de valeurs de calibrations, cette opération est parfaitement inutile. Enfin, une telle opération augmente également le risque d'erreur de configuration inhérent à toute tentative de télécodage (erreur de l'opérateur lors d'un télécodage manuel, erreur dans le fichier lors d'un télécodage automatique, erreur due à une cellule défectueuse lors de la tentative d'écriture dans la mémoire du calculateur). Conformément au but de l'invention qui est de résoudre les problèmes qui viennent d'être évoqués, le mécanisme expliqué à présent en référence 4, permet à l'unité de contrôle électronique 10 de détecter automatiquement, si le nouveau fichier téléchargé nécessite ou non un re-télécodage. Une zone 16 de référence, réservée en mémoire 12, est destinée à recevoir une recopie de la partie de la carte d'attribution dédiée aux variables de télécodage dans la table associative 13. Une zone supplémentaire 17, dite zone de vérification, en mémoire 11 à la suite de la table associative 13, contient une première variable nommée A_D_Z, dont la valeur est une adresse de début de zone de référence 16, à savoir OxFFFO dans l'exemple purement illustratif de la figure 4. La zone 17 contient aussi une deuxième variable nommée T Z dont la valeur est une taille de la zone 16 de référence. La nouvelle structure de données qui vient d'être expliquée en référence à la figure 4, est exploitée conformément au procédé expliqué à présent en référence à la figure 5. Chaque initialisation, à savoir chaque mise sous tension de l'UCE 10, déclenche une étape 50 qui démarre le procédé. Dans une étape 51, l'UCE 10 lit le contenu de la table associative 13 mémorisée avec le logiciel 18 téléchargé en mémoire 11 puis la zone 17. Dans une étape 52, l'UCE 10 lit le contenu de la 5 zone 16 localisée grâce à l'adresse de début et à la taille indiquées dans la zone 17. Dans une étape 53, l'UCE 10 compare le contenu de la colonne 15 dans la table associative 13 avec le contenu de la zone 16 de référence. Une détection de 10 contenu identique, déclenche une étape 56 et une détection de contenu différent, déclenche une étape 54. Dans l'étape 56, l'UCE 10 démarre le logiciel applicatif. Dans l'étape 54, l'UCE 10 invalide le télécodage et 15 mémorise un défaut de télécodage. Dans une étape 55, l'UCE 10 recopie le contenu de la colonne 15 de la table associative 13 dans la zone 16 de référence puis se branche sur l'étape 56 pour démarrer ensuite le logiciel applicatif. 20 Dans une étape 57, l'UCE 10 teste si le défaut de télécodage est présent. Une absence de défaut de télécodage, active une étape 58 de validation et une présence de défaut de télécodage, active une étape 59 d'invalidation. 25 Dans l'étape 58, l'UCE 10 prend en compte les valeurs de télécodage contenues dans la table associative 13 pour exécuter le logiciel applicatif 18. Dans l'étape 59, l'invalidation de télécodage replace l'UCE 10 dans son état de livraison vierge, dont 30 les propriétés sont la présence du défaut télécodage dans la mémoire des défauts, l'activation du mode dégradé correspondant à l'absence de télécodage, et l'allumage d'un voyant au combiné. Tout ceci dans le but, pour l'opérateur en concession, d'identifier immédiatement 35 l'anomalie et de ne pas remettre le véhicule dans cet état au client. Une étape 60 termine alors la phase du procédé que nous venons d'expliquer. La vie d'une UCE 10 depuis la production jusqu'à la modernisation logicielle dans le réseau après vente, est jalonnée par les événements expliqués à présent. La livraison de l'UCE 10 vierge est sans objet car le procédé décrit en référence à la figure 5, fait partie du logiciel applicatif qui n'a pas encore été téléchargé. Au premier téléchargement, un logiciel, nommé alpha pour le bien de la cause, est inscrit dans la mémoire 11. Il inclut la table associative 13 et la zone 17 de vérification. Après une réinitialisation de l'UCE 10, la zone 16 de référence, contient des valeurs indéterminées. Par conséquent, la comparaison, en étape 53, entre table associative 13 et zone 16 de référence, échoue. Le défaut télécodage est mémorisé et le contenu de la table associative, est recopié dans la zone de référence. L'applicatif démarre en mode dégradé car l'UCE 10 reste en mode livraison. Suite à une nouvelle initialisation de l'UCE 10, la comparaison, en étape 53, entre table associative 13 et zone 16 de référence, est un succès. L'applicatif démarre en mode dégradé car le calculateur reste en mode livraison. Après un télécodage au cours duquel les valeurs de télécodage envoyées par l'outil 132, sont inscrites dans la mémoire 12 aux adresses indiquées dans la table associative, le télécodage est validé. Le défaut télécodage disparaît, le voyant s'éteint et l'UCE fonctionne en mode nominal. Suite à une nouvelle initialisation de l'UCE 10, la comparaison, en étape 53, entre table associative 13 et zone 16 de référence, est un succès. L'applicatif démarre et il prend en compte les valeurs de télécodage contenues en mémoire 12 aux adresses indiquées dans la table associative 13. On considère à présent, le téléchargement d'un nouveau logiciel, nommé bêta pour le bien de la cause, ayant la même carte d'attribution que le logiciel précédent comme illustré en référence à la figure 6. Le logiciel bêta est inscrit dans la mémoire 11, il inclut la table associative 23 avec la zone de comparaison 27 qui sont, chacune respectivement égale à la table associative 13 avec la zone de comparaison 17. Après réinitialisation, la comparaison entre la table associative 23 et la zone de référence 16, est un succès. L'applicatif démarre et il prend en compte les valeurs de télécodage contenus en mémoire 12 aux adresses indiquées dans la table associative 23. Suite à une nouvelle initialisation de l'UCE 10, la comparaison entre le contenu de la table associative 23 et le contenu de la zone 16 de référence, est un succès. L'applicatif démarre et il prend en compte les valeurs de télécodage contenues en mémoire 12 aux adresses indiquées dans la table associative 23. On considère à présent, le téléchargement d'un nouveau logiciel, nommé gamma pour le bien de la cause, ayant une carte d'attribution différente de celle du logiciel précédent comme illustré en référence à la figure 7. Le logiciel gamma est inscrit dans la mémoire 11, il inclut la table associative 33 avec la zone de comparaison 37. Ici, le contenu de la table associative 33 est différent du contenu de la zone 16. Après réinitialisation de l'UCE 10, la comparaison entre la table associative 33 et la zone 16 aboutit à un échec. Le défaut télécodage est mémorisé et le contenu de la table associative 33 est recopié dans la zone 16. L'applicatif démarre mais l'UCE 10 bascule à nouveau en mode livraison, c'est-à-dire en mode dégradé avec un voyant allumé. Suite à une nouvelle initialisation de l'UCE 10, la comparaison entre le contenu de la table associative 33 et le contenu de la zone 16 de référence, est un succès. L'applicatif démarre mais l'UCE 10 reste en mode livraison. L'opérateur du service après vente effectue alors un télécodage au cours duquel les valeurs de télécodage sont inscrites dans la mémoire 12 aux adresses indiquées dans la table associative 33. Le télécodage est validé, le défaut télécodage disparaît, le voyant s'éteint et l'UCE 10 fonctionne en mode nominal. Suite à une nouvelle initialisation de l'UCE 10, la comparaison entre le contenu de la table associative 33 et le contenu de la zone 16 de référence, est un succès. L'applicatif démarre et il prend en compte les valeurs de télécodage contenus en mémoire 12 aux adresses indiquées dans la table associative 33. L'invention qui vient d'être exposée procure un gain économique appréciable en ce que le procédé permet, en service après vente ou dans les usines de montage du constructeur automobile lorsqu'il y a retouche, de réaliser l'opération de télécodage après un téléchargement uniquement dans les cas le nécessitant afin d'améliorer la qualité sur la sortie des véhicules. Le procédé proposé est peu coûteux puisqu'il s'agit d'une solution entièrement logicielle, qui n'est pas contraignante en termes de dimensionnement pour les composants constituant le calculateur électronique car elle ne demande que quelques octets supplémentaires en mémoire de type EEPROM et quelques lignes de codes en mémoire de type FLASH EPROM. L'invention qui vient d'être exposée procure aussi un gain en qualité appréciable en ce que le procédé limite le nombre de véhicules potentiellement mal configurés dans le réseau après vente par rapport aux situations connues de l'état de la technique antérieure. On note moins de véhicules à reconfigurer. En évitant de rendre des véhicules mal configurés au client, on assure la sécurité du client et on améliore l'image de marque du réseau après vente. REVENDICATIONS 1. Procédé pour assurer qu'une nouvelle version d'un logiciel est téléchargée dans une première mémoire d'une unité de contrôle électronique de véhicule, de manière cohérente au regard d'un paramétrage dudit logiciel, ledit logiciel comprenant une table associative dont un contenu attribue à au moins un paramètre dudit logiciel, une valeur qu'il est prévu de télé coder dans une deuxième mémoire de ladite unité de contrôle électronique de façon à réaliser ledit paramétrage, caractérisé en ce qu'il comprend : une étape de comparaison (53), dans laquelle l'unité de contrôle électronique compare au moins une partie du contenu de la table associative de la nouvelle version, avec le contenu d'une zone de référence dans la deuxième mémoire ; une étape de défaut (54) déclenchée par une détection de contenu différent, dans laquelle un défaut de télécodage est mémorisé dans la deuxième mémoire ; et - une étape de recopie (55) dans laquelle au moins une partie du contenu de la table associative, est recopiée dans la zone de référence de la deuxième mémoire de façon à pouvoir être comparée ultérieurement avec une même partie du contenu de la table associative d'une version ultérieure dudit logiciel. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend une étape d'invalidation (59) déclenchée si un défaut de télécodage est mémorisé, et dans laquelle l'unité de contrôle électronique appelle à télé coder chaque valeur qu'il est prévu de télé coder dans la deuxième mémoire. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il comprend une étape de validation (58) déclenchée si aucun défaut de télécodage n'estmémorisé, et dans laquelle l'unité de contrôle électronique attribue la valeur au dit paramètre au moyen du contenu de la table associative. 4. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comprend une étape de lecture (51) préalable à l'étape de comparaison (53), dans laquelle l'unité de contrôle électronique lit une zone de vérification, à la suite de la table associative dans la première mémoire, et qui contient une première variable pour adresser un début de la zone de référence. 5. Dispositif pour assurer qu'une nouvelle version d'un logiciel (18) est téléchargée dans une première mémoire (11) d'une unité de contrôle électronique (10) de véhicule, de manière cohérente au regard d'un paramétrage dudit logiciel, ledit logiciel comprenant une table associative (23, 33) dont un contenu attribue à au moins un paramètre dudit logiciel, une valeur qu'il est prévu de télé coder dans une deuxième mémoire (12) de ladite unité de contrôle électronique de façon à réaliser ledit paramétrage, caractérisé en ce que : - la deuxième mémoire (12) comprend une zone de référence (16) agencée pour contenir, avant téléchargement de la nouvelle version, au moins une partie de contenu de table associative (13) qui correspond à une version antérieure dudit logiciel, et pour contenir, après téléchargement de la nouvelle version, la partie de contenu de la table associative (23, 33) qui correspond à la nouvelle version dudit logiciel ; et en ce que : - l'unité de contrôle électronique (10) est agencée pour mémoriser un défaut de télécodage dans la deuxième mémoire (12) lorsque la zone de référence (16) contient une partie de contenu de table associative (33) après téléchargement, différent de la partie de contenu de table associative (13) avant téléchargement. 6. Dispositif selon la revendication 5, caractérisé en ce que la première mémoire est de type � Flash EPROM �. 7. Dispositif selon la revendication 5 ou 6, caractérisé en ce que la deuxième mémoire est de type � EEPROM �. 8. Dispositif selon l'une des revendications 5 à 7, caractérisé en ce que la première mémoire (11) comprend une zone de vérification (17, 27, 37), qui contient une première variable pour adresser un début de la zone de référence (16).