FR 2719919 A1 19951117 FR 9405835 A 19940511 La présente invention concerne un calculateur de pilotage du fonctionnement d'au moins un organe fonctionnel d'un véhicule automobile. On connaît déjà dans l'étant de la technique, des calculateurs de pilotage de ce type qui comportent une unité à microprocesseur associée à des moyens de mémorisation. Les progrès de la technologie informatique ont permis par utilisation de circuits numériques de plus en plus performants, d'apporter beaucoup plus de souplesse à la réalisation des systèmes informatiques notamment embarqués à bord des véhicules automobiles. Cependant, l'introduction croissante de programmes dans les équipements, s'accompagne de nouveaux problèmes liés à la nature spécifique du produit logiciel et à son élaboration. La souplesse de modification est telle qu'elle absorbe la majeure partie des adaptations de système, mais cette souplesse n'est qu'apparente car une modification mineure de code peut avoir des répercutions sur l'ensemble du logiciel. Les problèmes de maintenance des logiciels sont d'un ordre différent de ceux du matériel. En effet, un logiciel ne tombe pas en panne, mais il faut pour le corriger ou le modifier le meme niveau de compétence que pour l'élaborer. La structure actuelle des calculateurs est telle que ces opérations de maintenance sont extrêmement difficiles à réaliser. Le but de l'invention est donc de résoudre ces problèmes. A cet effet, l'invention a pour objet un calculateur de pilotage du fonctionnement d'au moins un organe fonctionnel d'un véhicule automobile, du type comportant une unité à microprocesseur associée à des moyens de mémorisation, caractérisé en ce que les moyens de mémorisation comprennent 1) une mémoire non volatile adaptée pour stocker un programme de démarrage du calculateur, 2) une mémoire flash adaptée pour stocker au moins un programme d'application pour l'organe fonctionnel, 3) au moins une mémoire de données, et 4) une mémoire non volatile électriquement programmable adaptée pour stocker des informations d'identification du calculateur et dudit au moins un programme d'application. L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement â titre d'exemple et faite en se référant au dessin annexé qui représente un schéma synoptique illustrant la structure d'un calculateur de pilotage selon l'invention. On reconnaît sur cette figure, un calculateur de pilotage d'au moins un organe fonctionnel d'un véhicule automobile, du type comportant une unité à microprocesseur désignée par la référence générale 1 associée à des moyens de mimorisation 2, Ce calculateur peut aussi bien être un calculateur de contrôle du fonctionnement du moteur du véhicule, qu'un calculateur de commande de boîte de vitesses électronique, de contrôle de suspension, de climatisation ou encore d'ordinateur de bord. Tous ces systèmes embarqués sur véhicule, peuvent en effet présenter une structure basée sur l'emploi d'un microprocesseur ou d'un microcontrôleur associe à des mémoires. Selon l'invention, les moyens de mémorisation 2 comprennent 1) une mémoire non volatile 3 adaptée pour stocker un programme de démarrage du calculateur, 2) une mémoire flash 4 adaptée pour stocker au moins un programme d'application pour l'organe fonctionnel, 3) au moins une mémoire de données 5, et 4) une mémoire non volatile électriquement programmable 6 adaptée pour stocker des informations d'iden- tification du calculateur et dudit au moins un programme d'application. Le calculateur doit en effet contenir un programme de démarrage ou de "BOOT" implanté dans une mémoire non volatile de type EEPROM ou flash paginée du coeur numérique afin de permettre par exemple le lancement d'un téléchargement du programme d'application dans le calculateur. La mémoire de programme d'application correspond à une zone de stockage du programme qui permet au calculateur électronique d'assurer la fonction pour lequel il a été conçu. I1 inclut aussi bien le programme que les données ainsi que les calibrations. La mémoire de données 5 est en fait une zone de données correspondant à la place de mémoire nécessaire au traitement des caractères reçus, par exemple sur une ligne de diagnostic du véhicule et au programme de téléchargement de celui-ci. La mémoire non volatile électriquement programmable 6 de stockage des informations d'identification du calculateur est utilisée dans la mesure où le calculateur doit posséder une zone d'identification contenant les paramètres nécessaires d'une part à l'identification du calculateur et d'autre part, à l'identification du programme d'application. Pour les calculateurs munis d'une mémoire EEPROM, la zone d'identification est stockée dans cette mémoire afin d'être sauvegardée en permanence, tandis que pour les autres calculateurs, elle est stockée directement dans la mémoire Flash EPROM. Cette zone d'identification comporte en outre les informations suivantes LABEL TAILLE RANGE CHKSUM Mot O. .65535 CLEF Mot -32768.32767 FOURNISSEUR Octet O.. 255 SYSTEME Octet O 255 DATE-1 3 Octets 00 00 00.00. .00/31.. .999 APPLICATION Octet 0..255 VERSION Octet O Z55 EDITION 2 Octets 0.. 255/0.255 DATE-2 3 Octets 00.00. .00/31.. 12.99 SITE Octet 0. .255 SIGNATURE 3 Octets 00.00.00 NOMBRE Octet 0..255 Cette zone d'identification comporte en fait les zones suivantes 1) CHKSUM qui correspond à une zone de somme de contrôle de la mémoire Flash après téléchargement du code et cette information peut être donnée sur 16 bits. La zone d'identification n'est pas intégrée dans le calcul de la somme de contrôle. Cette zone peut contenir le complément à deux du modulo 65536 de la somme des octets téléchargés. Après téléchargement, le calculateur doit calculer sa somme de contrôle qui additionnée à la somme de contrôle de la zone d'identification doit être égale à zéro. 2) CLEF qui correspond à une zone de clef d'accès au calculateur. Cette information sur 16 bits par exemple, donne la clef d'accès au programme de téléchargement et cette clef est inopérante lorsque sa valeur est égale & zéro. 3) FOURNISSEUR qui correspond à une zone d'iden- tification du fournisseur du calculateur codée par exemple sur 8 bits et qui permet d'identifier celui-ci à partir d'une logique de codage déterminée quelconque. 4) SYSTEME qui correspond à une zone d'identification de la famille du calculateur, c'est à dire la définition du matériel de cette famille, codée par exemple sur 8 bits. 5) DATE-1 qui correspond à une zone d'indication de la date de fabrication du calculateur, par exemple sur trois octets. Le premier octet peut indiquer le jour du mois de fabrication, le second, le mois de l'année1 et le troisième, l'année du siècle. 6) APPLICATION qui correspond à une zone d'identification du type d'application, codée par exemple sur 8 bits, auquel est destiné le programme d'application et qui correspond à une version de matériel différente pour un système donné. 7) VERSION qui correspond à une zone d'identification de la version du programme d'application stocké, c'est à dire une information codée sur 8 bits par exemple, qui caractérise la version du logiciel qui fonctionne dans le calculateur. 8) EDITION qui correspond à une zone d'indication de l'état de modification du programme d'application stocké, codée par exemple sur 16 bits. Le poids fort de cette zone peut correspondre à l'état de modification du logiciel, tandis que le poids faible peut correspondre à l'état de modification de la calibration. Pour les calculateurs qui n'utilisent pas d'indices de calibration, le poids faible peut être forcé à zéro. 9) DATE-2 qui correspond à une zone d'indication de la date de chargement de la version/Edition du programme d'application stocké. Cette information par exemple sur trois octets identifie la dernière date de programmation ou de reprogrammation de la version/Edition du programme du calculateur. Le codage de cette zone est identique à celui de la zone DATE-1. 10) SITE qui correspond à une zone d'identification du site où s' est produit le premier chargement d'un programme d'application dans la mémoire Flash, qui peut se présenter sous la forme d'une information sur 8 bits, codée de manière déterminée quelconque pour identifier ce site. 11) SIGNATURE qui correspond à une zone d'identification de la signature du site où s'est produit le chargement du programme d'application stocké, codée d'une manière déterminée quelconque sur trois octets pour identifier le lieu de reprogrammation du calculateur, et enfin 12) NOMBRE qui correspond à une zone d'indication du nombre de programmes d'application chargés dans la mémoire Flash. Cette information par exemple sur 8 bits identifie le nombre de programmes d'application qui ont été chargés dans ce calculateur et permet également d'identifier la présence d'un programme d'application. Cette variable est gerée directement par le calculateur et permet à tout moment de connaître le nombre de programmations réellement effectuees sur le calculateur et permet par exemple d'identifier les programmations faites par des organismes non autorises. Afin d'assurer le téléchargement d'un programme d'application dans les meilleures conditions, cette zone d'identification doit être programmée et/ou remise à Jour de la manière suivante. La programmation du calculateur peut en effet être découpée en trois phases distinctes qui sont pour la première, une phase correspond à une fabrication du calculateur associée à une première programmation par le fournisseur de celui-ci, pour la seconde, une phase qui peut être réalisée soit chez le fournisseur du calculateur, soit chez l'utilisateur et qui correspond à la programmation de la première application dans celui-ci, et enfin pour la troisième, une phase qui est réserve au service après-vente pour la gestion des évolutions de logiciel. Pour la première phase de programmation chez le fournisseur du calculateur, celui-ci doit programmer une partie de la zone d'identification afin d'identifier le produit et ce d'une façon décrite dans le tableau suivant. Dans ce tableau, les informations codées par le fournisseur sont notées X. I VALEUR REnajR9ii5 > VALEUR ~ CHKSUM O CLEF O Autorisation d'écriture FOURNISSEUR XX Code du fournisseur SYSTEME XX DATE-1 XXXX Date de fabrication APPLICATION XX VERSION O EDITION O DATE-2 O SITE FE SIGNATURE O NOMBRE FE Une fois le calculateur livré par exemple chez un fabricant de véhicules automobiles, celui-ci est implanté sur véhicule et la seconde phase de programmation de celui-ci se produit par exemple sur la ligne de montage du véhicule. Cette seconde phase de programmation permet de mettre en place le programme d'application. Cette opération est par exemple réalisée par téléchargement de ce programme dans la mémoire correspondante du calculateur, par l'intermédiaire d'une ligne de téléchargement, notée 7 sur la figure. Cette ligne de téléchargement permet de charger au moins un programme d'application dans la mémoire Flash et de remettre à jour la zone d'identification dans la mémoire non volatile électriquement programmable. Cependant, avant d'effectuer le téléchargement de ce code, l'outil de téléchargement correspondant doit corréler des paramètres de la zone d'identification du calculateur avec des paramètres à implanter et qui correspondent par exemple aux zones de SYSTEME et d'APPLICATION décrites précédemment. En effet, ces paramètres SYSTEME et APPLICATION du code à implanter doivent être identiques à ceux stockés. La zone d'identification est alors modifiée de la façon suivante, les modifications opérées lors de cette seconde phase de programmation étant notées Y. LABEL VALEUR REMARQUE CHKSUM YYYY CLEF YYYY FOURNISSEUR XX Code du fournisseur SYSTEME XX DATE-1 XXXXXX Date de fabrication APPLICATION XX VERSION YY EDITION YY DATE-2 YYYYYY SITE SIGNATURE O NOMBRE 01 1 Première programmation I1 est impératif que la procédure de téléchargement modifie la zone d'identification pour la remettre à jour seulement après la transmission de données et le téléchargement du programme. La troisième phase de programmation, par exemple en service après vente, ne diffère de la précédente que par le fait qu'elle s'effectue sur le véhicule par exemple en service après vente. Avant d'effectuer le téléchargement du code, l'outil de téléchargement doit corréler certains des paramètres de la zone d'identification avec les paramètres à implanter. Ces paramètrs sont les paramètres de SYSTEME, d'APPLICATION, de VERSION et d'EDITION. Les paramètres de SYSTEME, d'APPLICATION et de VERSION du code à implanter devront être identiques à ceux correspondants stockés, tandis que le paramètre d'EDITION du code å implanter devra être strictement supérieur au paramètre d'EDITION stocké de la zone d'identification. Dans le cas de calculateurs de controle du fonctionnement des moteurs reliés à un clavier d'antidémarrage codé, il interdit, une fois verrouillé, toute communication avec les lignes de téléchargement, de sorte qu'il est nécessaire de réaliser un déverrouillage préalable du calculateur par ce clavier d'antidémarrage codé. La troisième phase de programmation se traduit par les modifications suivantes de la zone d'identification (modifications notées Z). VALEUR REMiJtOUI CHKSUM ZZZZ CLEF YYYY FOURNISSEUR XX Code du fournisseur SYSTEME XX DATE-1 XXXXXX Date de fabrication APPLICATION XX VERSION YY EDITION ZZ DATE-2 ZZZZZZ SITE ZZ SIGNATURE ZZZZZZ NOMBRE ZZ Incrémentation ZIP+1 Une autre programmation peut également être réalisée lors de l'implantation d'un calculateur de rechange. Le calculateur ne possedant à l'origine que l'étiquette du fournisseur, une seconde étiquette est adjointe par les services après vente lors de la programmation de ce calculateur de rechange. Cependant, cette programmation d'un calculateur de rechange ne diffère pas des procèdures décrites précédemment et seule la zone d'identification est modifiée, et se présente de la façon suivante (modifications notées W). FOURNISSEUR XX Code du fournisseur SYSTEME XX DATE-1 XXXXXX Date de fabrication APPLICATION XX VERSION WW EDITION WW DATE-2 WW SITE FD SIGNATURE WWWWWW NOMBRE O i Première progration On conçoit alors que la structure du calculateur selon l'invention permet une remise à niveau très simple du ou des programmes d'application chargés dans celui-ci et une remise à jour de la zone d'identification. REVENDICATIONS 1. Calculateur de pilotage du fonctionnement d'au moins un organe fonctionnel d'un véhicule automobile, du type comportant une unité à microprocesseur (1) associée à des moyens de mémorisation (2), caractérisé en ce que les moyens de mémorisation comprennent 1) une mémoire non volatile (3) adaptée pour stocker un programme de démarrage du calculateur, 2) une mémoire flash (4) adaptée pour stocker au moins un programme d'application pour l'organe fonctionnel, 3) au moins une mémoire de données (5), et 4) une mémoire non volatile électriquement programmable (6) adaptée pour stocker des informations d'identification du calculateur et dudit au moins un programme d'application. 2. Calculateur selon la revendication 1, caractérise en ce que la mémoire non volatile électriquement programmable (6) comporte en outre - une zone de somme de contrôle de la mémoire Flash (CHKSUM), - une zone de clef d'accès au calculateur (CLEF), - une zone d'identification du fournisseur du calculateur (FOURNISSEUR), - une zone d'identification de la famille du calculateur (SYSTEME), - une zone d'indication de la date de fabrication du calculateur (DATE-1), - une zone d'identification du type d'application auquel est destiné ledit au moins un programme d'application (APPLICATION), - une zone d'identification de la version du programme d'application stocké (VERSION), - une zone d'indication de l'état de modification du programme d'application stocké (EDITION), - une zone d'indication de la date de chargement de la version/Edition du programme d'application stocké (DATE-2), - une zone d'indication du site où s'est produit le premier chargement d'un programme d'application dans la mémoire Flash (SITE), - une zone d'identification de la signature du site où s' est produit le chargement d'un programme d'application stocké (SIGNATURE), - une zone d'indication du nombre de programmes d'application chargés dans la mémoire Flash (NOMBRE). 3. Calculateur selon la revendication 1 ou 2, caractérisé en ce que le calculateur est muni d'au moins une ligne de téléchargement (7) dudit au moins un programme d'application dans la mémoire Flash et de mise à Jour de la mémoire non volatile électriquement programmable.