FR 2939216 A1 20100604 FR 0858212 A 20081203 -1- PROCÉDÉ DE GESTION DE DONNÉES DE CALIBRATION D'UN LOGICIEL [0001] La présente invention concerne un procédé de gestion de données de calibrations d'un logiciel implémenté dans un calculateur contenant un logiciel calibrable. Elle s'applique notamment à un logiciel de contrôle moteur qui servira d'exemple unique, mais il doit être noté que la description de la démarche sont restent applicable à tout type de calculateur sur lequel est implémenté un logiciel calibrable. [0002] Des calculateurs sont aujourd'hui présents sur la quasi-totalité des véhicules Un logiciel est implémenté dans ce calculateur pour le faire fonctionner. Le logiciel comprend des données de calibration, qui sont des variables permettant de faire fonctionner le même logiciel sur différentes configurations de véhicule. Ainsi, en fonction du modèle du véhicule sur lequel est implémenté le logiciel, les données de calibration n'auront pas forcément les mêmes valeurs. De plus, au fur et à mesure du développement logiciel, différentes versions du logiciel sont disponibles (évolution, correction). Aussi, comme pour les différentes configurations de véhicule, les données de calibration n'ont pas forcément les mêmes valeurs pour les différentes versions du logiciel. Il est donc souhaitable de gérer les données de calibration de façon à officialiser le jeu souhaité de données de calibration en fonction du modèle du véhicule et de la version du logiciel retenu. En d'autres termes, il est souhaitable d'utiliser les bonnes valeurs de données de calibration en fonction de la configuration du véhicule et de la version du logiciel gérée par le calculateur dans lequel est implémenté le logiciel. [0003] Il est connu d'officialiser un jeu de données de calibration manuellement et sans méthodologie précisément définie. Toutefois, avec l'évolution des technologies du véhicule, le durcissement des normes européennes d'émissions et les nombreuses évolutions associées, le nombre de données de calibrations des logiciels implémentées dans les calculateurs de véhicules augmente. Aussi, lorsque l'officialisation d'un jeu de données de calibration est réalisée manuellement, il y a des risques grandissants que certaines données de calibrations ne soient pas paramétrées, ou encore que des données de calibrations soient paramétrées plusieurs fois (doublons), ce qui entraîne une perte de temps, ou des dysfonctionnements du logiciel. 2939216 -2- [0004] Il est connu un logiciel commercialisé par la société AVL sous le nom de produit AVL CRETA (marque déposée de la société AVL List GmbH, Autriche) de gestion de données de calibration. [0006] Par ailleurs, le document EP-A-1 439 638 décrit un procédé de formation d'une table 5 de données compressée à partir d'une table de données non compressée, le procédé comprenant une étape consistant à définir une structure en bit de description de code comprenant un premier nombre de bits définissant un type de code et un deuxième nombre de bits définissant un codage par plage d'éléments de données. Le procédé comprend également une étape consistant à définir un premier descripteur de code comme la structure en bit de description de code ayant 10 son premier nombre de bits configuré pour définir un code de type pseudo-code binaire identifiant des éléments de données de longueur d'octet. Le procédé comprend également une étape consistant à définir un deuxième descripteur de code comme la structure en bit de description de code ayant son premier nombre de bits configuré pour définir un code de type code de mot identifiant des éléments de données de longueur de mot. Le procédé comprend 15 également une étape consistant à représenter dans la table de données compressée chaque passage d'un ou plusieurs éléments de données de longueur d'octet dans la table de données non compressée avec le premier descripteur de code ayant sa longueur de passage égale au nombre d'éléments de données de longueur d'octet dans le passage d'un ou plusieurs éléments de données de longueur d'octet suivi par les un ou plusieurs éléments de données de longueur 20 d'octet. Le procédé comprend également une étape consistant à représenter dans la table de données compressée chaque passage d'un ou plusieurs éléments de données de longueur de mot dans la table de données non compressée avec le deuxième descripteur de code ayant sa longueur de passage égale au nombre d'éléments de données de longueur de mot dans le passage d'un ou plusieurs éléments de données de longueur d'octet suivi par les un ou plusieurs 25 éléments de données de longueur de mot. [0006] Toutefois, le logiciel AVL CRETA et le procédé du document EP-A-1 439 638 ne permettent pas de contrevenir aux inconvénients cités plus haut. [0007] Il y a donc un besoin pour un procédé de gestion de données de calibration d'un logiciel implémenté dans un calculateur de véhicule, qui permette un gain de temps et un gain 2939216 -3- de place en mémoire hors calculateur et qui limite au maximum les risques de données de calibration erronées. [0008] Pour cela, l'invention propose un procédé de gestion de données de calibration d'un logiciel existant sous plusieurs versions implémenté dans un calculateur pilotant un organe, tel 5 que notamment un organe d'un véhicule automobile, à l'exemple d'une boite de vitesse ou du contrôle moteur, le procédé comprenant les étapes suivantes : l'assignation de chaque donnée de calibration à une fonction unique parmi une pluralité de fonctions existant sous plusieurs types, le classement de toute donnée de calibration selon sa dépendance à la version du logiciel et sa dépendance aux types de fonctions et l'attribution d'une ou plusieurs valeurs à chaque donnée 10 de calibration. [0009] Dans une variante préférée, le procédé comporte de plus le classement de toute donnée de calibration selon que la valeur attribuée à cette donnée de calibration est indépendante ou dépendante de la version du logiciel. Avantageusement, à l'étape d'attribution, une valeur unique est attribuée à une donnée de calibration indépendante de la version du logiciel. De 15 manière corollaire, plusieurs valeurs sont attribuées à la donnée de calibration lorsque la donnée de calibration est dépendante de la version du logiciel. [0010] Dans une variante, le procédé comporte de plus le classement de toute donnée de calibration selon que la valeur attribuée à la donnée de calibration est indépendante ou dépendante du type de la fonction. Avantageusement, à l'étape d'attribution, plusieurs valeurs 20 sont attribuées à la donnée de calibration lorsque la donnée de calibration est dépendante du type de la fonction à laquelle est assignée la donnée de calibration. [001 1] Dans une variante, le procédé comprend en outre, avant l'étape d'attribution, une étape d'assignation de chaque donnée de calibration à un service, chaque service comprenant au moins une fonction. 25 [0012] Dans une variante, le procédé comprend en outre une étape de mise à jour du logiciel avec les données de calibration sélectionnées. [0013] Dans une variante tout particulièrement préférée, le calculateur est un calculateur de contrôle moteur d'un véhicule 2939216 -4- [0014] D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit des modes de réalisation de l'invention, donnés à titre d'exemple uniquement et en références aux dessins qui montrent : 5 • figure 1 : un schéma de principe d'un procédé de gestion de données de calibration d'un logiciel implémenté dans un calculateur de véhicule ; • figure 2 : un tableau du classement des données de calibration en fonction des premier et deuxième critères. • Figure 3 : une liste de variables gérées par le procédé. 10 [ooi5] Il est proposé un procédé de gestion de données de calibration d'un logiciel implémenté dans un calculateur de véhicule, ce logiciel pouvant exister sous plusieurs versions, correspondant par exemple à différentes mises à jour. Le procédé comprend une étape d'assignation de chaque donnée de calibration à une fonction unique parmi une pluralité de 15 fonctions, ces fonctions existant sous plusieurs types correspondant par exemple à différentes configurations de véhicule (présence ou non d'un filtre à particules, d'un type donné de boite de vitesses, etc.). Le procédé comprend le classement de toute donnée de calibration selon sa dépendance à la version du logiciel et sa dépendance aux types de fonctions. Le procédé comprend également une étape d'attribution d'une ou plusieurs valeurs à chaque donnée de 20 calibration. [ooi 6] Ainsi, les données de calibration sont classées en n'étant associées qu'à une unique fonction. De plus, un lien est fait entre les données de calibration du logiciel et le modèle du véhicule sur lequel est implémenté le logiciel. [0017] Une fois la version du logiciel choisie et la configuration du véhicule déterminée, un 25 chemin unique permet donc d'accéder à chaque donnée de calibration. De cette façon, l'accès à une donnée de calibration est rapide, de la place est gagnée en mémoire et les risques de données de calibration erronées sont limités au maximum. [0018] La figure 1 représente un schéma de principe d'un procédé de gestion de données de calibration d'un logiciel implémenté dans un calculateur de véhicule. 2939216 -5- [001 s] La figure 1 montre un logiciel Sk 1 comprenant n données de calibration vi, v2, ... vn. La figure 1 montre également k fonctions fi, f2, ... fs d'un véhicule 2 et les entités de base 3 d'un logiciel ei, ... ep qui lient le logiciel avec les fonctions F. Une entité de base forme une sous ensemble de variables du logiciel, l'ensemble des entités de base formant E. S correspond 5 à l'ensemble des logiciels Si, ..., Sm développés et L l'ensemble des données de calibration existantes dans au moins une des versions du logiciel. Un exemple de différentes données est proposé au tableau de la figure 3. [0020] Le logiciel est implémenté dans un calculateur de véhicule. Il s'agit par exemple d'un calculateur de contrôle moteur de véhicule. 10 [0021] Les fonctions du véhicule sont par exemple l'injection de carburant dans le moteur, le refroidissement du moteur par un liquide de refroidissement, la gestion d'un filtre à particules, etc... Ces fonctions sont gérées par le calculateur dans lequel est implémenté le logiciel. [0022] Dans une première étape, chaque donnée de calibration vi, v2, ... vn. est assignée à une unique fonction du véhicule, parmi les fonctions fi, f2, ... fs du véhicule. Une donnée de 15 calibration est par exemple la quantité du carburant injecté en fonction du régime moteur et de la demande du conducteur. Cette donnée de calibration spécifique pourra ainsi être assignée à la fonction � moteur �. [0023] Plusieurs données de calibration peuvent être assignées à la même fonction si, par exemple, toutes ces données de calibration concernent la même fonction. Sur la figure 1, on voit 20 que les données de calibration vi, v2et V3 sont toutes les trois assignées à la fonction fi. Le découpage est au choix de l'utilisateur, par exemple v; et vn peuvent être affectés à la même fonction fs, mais peuvent rester dans deux entités de base différentes pour une raison propre à l'utilisateur. [0024] Comme le montre la figure 1, la donnée de calibration vn est assignée à la fonction fs 25 par l'intermédiaire de l'entité de base er. [0025] Le procédé de gestion de données de calibration d'un logiciel est adapté à gérer différentes versions du logiciel. Le procédé de gestion de données de calibration d'un logiciel est également adapté à gérer différents types d'une fonction du véhicule. -6- [0026] Dans une deuxième étape, les données de calibration sont classées. [0027] Le premier critère de classement est de vérifier si la donnée de calibration a une valeur affectée ou non par la version du logiciel. Le logiciel peut être amené à évoluer au cours du temps. Plusieurs versions la, lb, le du logiciel 1 peuvent donc exister en même temps, une première version la du logiciel 1 étant implémentée dans certains véhicules, une deuxième version lb du logiciel 1 étant implémentée dans d'autres véhicules et une troisième version 1c du logiciel 1 étant implémentée dans encore d'autre véhicules. [0028] Ainsi, pour une donnée de calibration indépendante de la version du logiciel elle est applicable pour toutes les mises à jour avec une valeur unique. [0029] Plusieurs valeurs peuvent être attribuées à la donnée de calibration lorsque la donnée de calibration est dépendante de la version du logiciel (changement du format). Une calibration dépendante de la version du logiciel est restreinte d'utilisation. [0030] Certaines données de calibrations sont indépendantes de la version du logiciel, et ont donc la même valeur quelle que soit la version du logiciel. D'autres données de calibrations sont dépendantes de la version du logiciel, et ont donc des valeurs différentes selon la version du logiciel. [0031] Le deuxième critère de classement est la dépendance ou non de la donnée à un type de fonction. Une valeur unique est attribuée à la donnée de calibration lorsque la donnée de calibration est indépendante du type de la fonction à laquelle est assignée la donnée de calibration. [0032] Plusieurs valeurs sont attribuées à la donnée de calibration lorsque la donnée de calibration est dépendante du type de la fonction à laquelle est assignée la donnée de calibration. Ainsi, les valeurs d'une fonction du véhicule peuvent différer selon le modèle du véhicule sur lequel est installée la fonction. Par exemple, un filtre à particules peut être différent (ou même absent) selon les modèles de véhicules. Les fonctions peuvent donc avoir différentes types ou modes de fonctionnement. Le logiciel est adapté pour gérer différentes types de fonctions. Le procédé de gestion de données de calibration d'un logiciel est lui aussi adapté à gérer ces différentes types, certaines des données restant indépendantes du type, et ayant donc 2939216 -7- la même valeur quel que soit celui-ci. D'autres données de calibrations sont dépendantes de ce type et seront par exemple notées (FAP(vi)=OS2, FAP(vi)=S200, FAP(vi)=sans FAP) [0033] Toute donnée de calibration indépendante de la version du logiciel est classée dans une première catégorie. Cette première catégorie est dite � générique logiciel � puisque les données 5 de calibration de cette première catégorie ont des valeurs indépendantes de la version du logiciel (cf. colonne 2 de la figure 2). [0034] Toute donnée de calibration à laquelle sont attribuées plusieurs valeurs qui sont dépendantes de la version du logiciel est classée dans une deuxième catégorie. Cette deuxième catégorie est dite � spécifique logiciel � puisque les données de calibration de cette deuxième 10 catégorie ont des valeurs dépendantes de la version du logiciel (cf. colonne 1 de la figure 2). [6636] Le classement selon le premier critère revient donc à classer les données de calibration dans la première ou la deuxième catégorie. [0036] Toute donnée de calibration à laquelle est attribuée une seule valeur, qui est indépendante du type de la fonction à laquelle est assignée, est classée dans une troisième 15 catégorie. Cette catégorie est dite � générique fonction � puisque les données de calibration de cette troisième catégorie ont des valeurs indépendantes du type de la fonction (cf. ligne 1 de la figure 2). [0037] Toute donnée de calibration à laquelle sont attribuées plusieurs valeurs, qui sont dépendantes du type de la fonction à laquelle est assignée, est classée dans une quatrième 20 catégorie. Cette quatrième catégorie est dite � spécifique fonction � puisque les données de calibration de cette quatrième catégorie ont des valeurs dépendantes du type de la fonction (cf. ligne 2 de la figure 2). [0038] Le classement selon le deuxième critère revient donc à classer les données de calibration dans la troisième ou la quatrième catégorie. 25 [0039] Le croisement de ces deux types de critères est nécessaire et suffisant pour caractériser d'une manière unique la globalité de données de calibrations pour une configuration de véhicule (type fonctions) et une version de logiciel. 2939216 -8- [0040] La figure 2 présente un tableau du classement des données de calibration en fonction des premier et deuxième critères qui impliquent les 4 catégories. [6641] Toute donnée classée dans les deuxième et quatrième catégories, à savoir spécifique fonction et spécifique logiciel (case 4 du tableau) a plusieurs valeurs, qui sont dépendantes à la 5 fois du type de la fonction à laquelle est attribuée la donnée de calibration et de la version du logiciel. [0042] Toute donnée classée dans les première et quatrième catégories, à savoir générique logiciel et spécifique fonction (case 5 du tableau) a plusieurs valeurs, qui sont dépendantes uniquement du type de la fonction à laquelle est attribuée la donnée de calibration. Dans ce cas- 10 là, pour un type de fonction donnée, la donnée de calibration a une valeur unique indépendante de la version du logiciel. [0043] Toute donnée classée dans les deuxième et troisième catégories, à savoir spécifique logiciel et générique fonction (case 6 du tableau) a plusieurs valeurs, qui sont dépendantes uniquement de la version du logiciel. Dans ce cas-là, pour une version de logiciel donnée, la 15 donnée de calibration a une valeur unique indépendante du type de la fonction. [0044] Toute donnée classée dans les première et troisième catégories, à savoir générique logiciel et générique fonction (case 7 du tableau) a une unique valeur, qui est indépendante de la version du logiciel et du type de la fonction. [0045] Ainsi, le procédé de gestion de données de calibration d'un logiciel permet d'organiser 20 les données de calibration en tenant compte d'un premier degré de liberté, qui est la version du logiciel. Le procédé de gestion des données permet également, dans le cas où la fonction comporte plusieurs types, d'organiser les données de calibration en tenant compte d'un deuxième degré de liberté, qui est le type de la fonction. [0046] Lorsque le logiciel existe en une seule version, générique et spécifique logiciel 25 deviennent générique logiciel. Le classement de chaque donnée de calibration se fait uniquement selon les troisième et quatrième catégories. 2939216 -9- [0047] Une fois le procédé appliqué au logiciel, un unique chemin permet d'accéder à chaque donnée de calibration, ce chemin définissant un lien entre le logiciel et le type de la fonction, à savoir le modèle du véhicule. Cela permet de limiter au maximum le risque d'attribuer à une donnée de calibration une valeur erronée. En d'autres termes, cela permet de limiter les erreurs 5 lors de la paramétrisation des données de calibration. De plus, un gain de temps et une augmentation de la qualité du travail sont obtenus. [0048] Les fonctions du véhicule peuvent être réparties en différents services Ri. Dans ce cas-là, préalablement à la première étape d'assignation, chaque donnée de calibration est assignée à un service. Un service est par exemple une entité qui est spécialisée sur une ou plusieurs 10 fonctions. . L'ensemble de services impliques au processus est noté R (cf. Figure 3). [0049] Le procédé de gestion de données de calibration d'un logiciel est utilisé par exemple pour mettre à jour le logiciel implémenté dans un calculateur de véhicule. [0050] Le procédé de gestion permet de faciliter cette mise à jour en choisissant les données de calibration et la version du logiciel adaptées pour un modèle de véhicule. 15 [0051] Les données de calibration sont en quelque sorte atomisées par le procédé de gestion puis permettent d'attribuer rapidement et sans erreur les bonnes valeurs aux données de calibration du logiciel grâce au chemin unique créé par le choix du logiciel et la configuration du véhicule. [0052] Dans une troisième étape, une ou plusieurs valeurs sont attribuées à chaque donnée de 20 calibration. [0053] Ensuite le procédé de gestion comprend une quatrième étape de sélection des données de calibration adaptées à une version de logiciel et à une configuration véhicule (choix du type pour chaque fonction). [0054] Une cinquième étape de mise à jour du logiciel avec les données de calibration 25 sélectionnées clôt le processus de gestion de calibration. 2939216 -10- [0055] Cela permet ainsi de reconstruire un jeu de données en fonction de n'importe quelle version du logiciel et de n'importe quel modèle de véhicule, avec des types de fonctions spécifiques au modèle. [0056] Une fois la version du logiciel choisie et quelles que soient les fonctions du modèle du 5 véhicule, les données de calibration auxquelles une valeur est à attribuer sont connues de manière exacte. Connaissant de plus les fonctions présentes dans le modèle de véhicule choisi, le procédé permet de définir l'ensemble des données de calibration de manière unique. [0057] De plus, un avantage supplémentaire de ce procédé est son faible coût. Par contre, ce procédé peut demander un travail de mise en oeuvre concernant l'atomisation, mais permet un 10 énorme gain de temps et d'efficacité par la suite. [0058] Par ailleurs, le procédé permet de manipuler II 1fil ou i = 1, ..., s modèles de véhicules dans une constellation de données de calibration minimale où les 1fil sont les types de fonctions. REVENDICATIONS1. Calculateur pilotant un ou plusieurs organes, mettant en oeuvre un logiciel implémenté dans le calculateur sous plusieurs versions, et mettant en oeuvre des données de calibration (vl, v2, ..., vq) sélectionnées par un procédé comportant : - l'assignation de chaque donnée de calibration (vl, v2, ..., vq) à une fonction unique parmi une pluralité de fonctions (fi, f2, ..., fi) existant sous plusieurs types, - le classement de toute donnée de calibration selon sa dépendance à la version du logiciel et sa dépendance aux types de fonctions. - l'attribution d'une ou plusieurs valeurs à chaque donnée de calibration 2. Calculateur selon la revendication 1, caractérisé en ce que la sélection des données de calibration comporte de plus le classement de toute donnée de calibration selon que la valeur attribuée à cette donnée de calibration est indépendante ou dépendante de la version du logiciel, 3. Calculateur selon la revendication 2, caractérisé en ce qu'à l'étape d'attribution, une valeur unique est attribuée à une donnée de calibration indépendante de la version du logiciel. Calculateur selon la revendication 2, caractérisé en ce qu'à l'étape d'attribution, plusieurs valeurs sont attribuées à la donnée de calibration lorsque la donnée de calibration est dépendante de la version du logiciel. 5. Calculateur selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte de plus le classement de toute donnée de calibration selon que la valeur attribuée à la donnée de calibration est indépendante ou dépendante du type de la fonction. 6. Calculateur selon la revendication 5, caractérisé en ce qu'à l'étape d'attribution, plusieurs valeurs sont attribuées à la donnée de calibration lorsque la donnée de calibration est dépendante du type de la fonction à laquelle est assignée la donnée de calibration. 2939216 -12- 7. Calculateur selon l'une quelconque des revendications précédentes, caractérisé en ce qu'avant l'étape d'attribution, on opère en outre une étape d'assignation de chaque donnée de calibration à un service, chaque service comprenant au moins une fonction. 8. Calculateur selon la revendication 1 à 7, caractérisé en ce que le calculateur est un 5 calculateur de contrôle d'un organe embarqué dans un véhicule automobile. 9. Calculateur selon la revendication 1 à 7, caractérisé en ce que le calculateur est un calculateur du contrôle moteur d'un moteur à combustion interne.