Brevet FR2719683A1 — publié le 19951110

La présente invention concerne les calculateurs électroniques utilisés dans les véhicules automobiles pour effectuer en particulier la commande électronique du moteur. Ces calculateurs sont des systèmes informatiques comprenant un processeur, une mémoire vive et une mémoire externe. Ces calculateurs peuvent être utilisés pour de nombreuses autres fonctions telles que la commande et la surveillance de l'état d'ouverture des portières du véhicule, des réglages divers, par exemple le réglage des rétroviseurs, des fonctions de sécurité (systèmes antiblocage des freins, coussins d'air de sécurité, etc) ou des fonctions de diagnostic embarqué. De nouvelles fonctions sont proposées en permanence aux utilisateurs si bien que les capacités nécessaires des calculateurs sont toujours augmentées. Pour des raisons de prix de revient, ces calculateurs sont toujours dimensionnés au plus juste en ce qui concerne la capacité de leur mémoire, le nombre de leurs entrées/sorties et leur puissance de calcul. Toute augmentation de leurs capacités a un impact notable sur le prix de ces calculateurs. Dans le cas des véhicules automobiles, le nombre de modèles et des options disponibles est élevé et l'on a pour chaque option un nombre limité de véhicules vendus si bien qu'il n'est pas économiquement possible de prévoir à chaque fois un calculateur dont les capacités sont adaptées aux fonctions disponibles sur le véhicule. Les fournisseurs d'équipements proposent donc des calculateurs très puissants conçus par exemple sur la base de processeurs à 16 bits ou de processeurs multiples. Ces calculateurs sont largement dimensionnés pour pouvoir exécuter des algorithmes complexes mais ils sont beaucoup trop chers pour les modèles de bas de gamme qui représentent l'essentiel des volumes de production. On utilise donc des calculateurs qui sont dimensionnés au plus juste pour les modèles de bas de gamme qui doivent être complétés pour les modèles offrant des options. Les équipementiers proposent des architectures de logiciels modulaires qui sont parfois écrites en langage évolué qui permettent d'adapter rapidement les logiciels des calculateurs à des fonctions nouvelles. Les applications sont codées en faisant appel à des bibliothèques de routines. Ceci a malheureusement tendance à accroître encore les besoins en ressources du système. Le problème des ressources nécessaires devient encore plus pénalisant pour les études et les développements d'algorithmes complexes. En effet, on ne dispose pas de calculateurs capables de recevoir ces algorithmes. Les personnes qui développent de nouveaux algorithmes doivent travailler sur des prototypes qui sont en constante évolution et souvent sujets à des défaillances. Une autre solution consiste à travailler sur des calculateurs existants en essayant de contourner les problèmes de ressources. Pour ces systèmes en développement, les équipementiers proposent des systèmes adaptés qui sont chers. De plus ces systèmes sont spécifiques pour un calculateur si bien que cela supprime la possibilité de mise en concurrence des fournisseurs pour une application donnée. Il existe donc un besoin de pouvoir augmenter les capacités d'un calculateur dimensionné pour des fonctions de base afin de lui donner la possibilité d'être utilisé sur de nombreux modèles avec des options diverses et également pour le développement de nouveaux algorithmes complexes. L'invention a donc pour objet un procédé pour augmenter les capacités d'un calculateur de série embarqué sur un véhicule automobile, en particulier la mémoire et la puisssance de calcul du calculateur, en vue de l'exécution de nouvelles fonctions, le calculateur comportant une mémoire externe morte programmable électriquement, caractérisé en ce que l'on connecte un calculateur additionnel constitué par une unité de microinformatique au calculateur de série, le calculateur additionnel agissant en tant que calculateur hôte et le calculateur de série en tant que calculateur cible, et en ce que la mémoire externe du calculateur de série est remplacée pour une mémoire à double accès et un bloc de synchronisation, la connexion entre les deux calculateurs étant réalisée par la mémoire à double accès et le bloc de synchronisation générant des interruptions pour le calculateur additionnel à partir d'évènements se produisant dans le calculateur de série. Ce procédé permet d'adapter un calculateur de série quelconque en utilisant un calculateur additionnel qui n'est pas spécifique au calculateur de série. En particulier, le choix de l'architecture en logiciel du calculateur additionnel est indépendant de l'architecture du calculateur de série et le calculateur additionnel peut être utilisé sur un autre calculateur de série ou sur un autre véhicule sans nécessiter aucune mise au point ou adaptation. L'architecture matérielle et logicielle du calculateur de série est conservée. Les lois de commande et les réglages existants sont également conserves. La capacité de la mémoire à double accès correspond à l'ensemble des capacités d'adressage du calculateur de série et la mémoire vive du calculateur de série sert aux échanges de données entre les deux calculateurs. Avantageusement, le calculateur additionnel est constitué par une carte électronique. Cette carte peut être implantée sur la carte mère du calculateur de série. Dans le cas du développement de nouveax algorithmes, ce calculateur additionnel peut également être constitué par une carte implantée dans un microordinateur de type PC. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui va suivre pour la compréhension de laquelle on se reportera aux dessins annexés dans lesquels - La figure 1 est le schéma synoptique d'un mode de réalisation de l'invention - la figure 2 représente la configuration du logiciel, et - la figure 3 illustre l'étant du noyau après le chargement des tâches d'acquisition. Sur la figure 1, le calculateur de série embarqué est représenté à la gauche de la figure et le calculateur additionnel à droite, le calculateur de série comporte par exemple un calculateur d'injection 1 avec un logiciel de série. Il reçoit des données d'entrée en 2 et fournit des signaux aux organes du moteur en 3. Conformément à l'invention, la mémoire externe du calculateur 1 est remplacée par une mémoire à double accès 4 et on prévoit un bloc de synchronisation 5 qui est en liaison avec le calculateur de série 1. Le complément de ressources en capacité de mémoire et de puissance de calcul est fourni par une unité de microinformatique comprenant un processeur 6 de type PC avec un logiciel d'entrées/sorties. Ce processeur reçoit des données d'entrée en 7 et fournit en 8 des données destinées au traitement de fonctions supplémentaires. Ce calculateur informatique agit en tant que calculateur hôte, le calculateur de série 1 étant le calculateur cible. Le calculateur additionnel comporte une mémoire 9 dans laquelle sont stockées des tâches utilisateurs. La mémoire 9 reçoit également des développements de lois de commande en langage évolué. Un disque 11 qui est en liaison avec la mémoire 9 sert au stockage des tâches. Ce disque 11 est également en communication avec le bloc de synchronisation 5. Un système d'affichage 12 reçoit des informations de la mémoire 9. Un système de pilotage 13 est en liaison bilatérale avec la mémoire 9 et reçoit des informations de la mémoire à double accès 4, ce système étant utilisé pour effectuer une tâche de pilotage. La mémoire à double accès 4 réalise la connexion entre les deux calculateurs. Elle est en liaison bilatérale avec les deux calculateurs et avec le bloc de synchronisation 5 qui reçoit des données de synchronisation du calculateur cible 1 et en envoie à la mémoire 9. La mémoire à double accès 9 échange des variables du calculateur cible 1 avec ce dernier et des variables du processeur PC 6 avec ce dernier. Les variables du processeur PC transitent par la mémoire 9. La figure 2 illustre l'architecture logicielle de l'ensemble des deux calculateurs. Le calculateur cible comporte un logiciel de série 21 d'injection. Il reçoit des variables internes en 22, des entrées standard en 23 et délivre des données de sortie en 24. Ce logiciel commande la synchronisation du moteur. Le calculateur additionnel comporte un logiciel 25 tel que celui désigné par la dénomination commerciale "NTR V2.00". Il est en liaison avec le disque 11, il est relié à un clavier d'affichage 26, il reçoit des données d'entrée de tâche 27 et délivre des données de sortie de tâche 28. Il gère aussi des nouvelles lois de commande, par exemple au nombre de trois, schématisées en 29. La connexion entre les deux calculateurs est réalisée par une tâche de communication 31 du calculateur additionnel qui dialogue avec la mémoire vive à double accès 32 qui comprend une partie 33 de copie de mémoire virtuelle contenant des données concernant les variables et les périphériques internes à des adresses comprises entre 000 et 1FF (en système hexadécimal). Une autre partie 34 dont les adresses sont comprises entre 200 et 3FFF comprend les échanges de données, les indicateurs de synchronisation et les boîtes à lettres et une troisième partie 35 dont les adresses sont comprises entre 4000 et FFFF est utilisée pour les valeurs de réglage et les données d'interruption. La figure 3 représente l'architecture logicielle et l'état du noyau après le chargement des tâches d'acquisition. On retrouve le logiciel 25 de la figure 2. Il gère trois tâches d'acquisition 41, 42 et 43, une tâche de dialogue 44, une tâche d'affichage 45 et une tâche de sauvegarde 46. La tâche de dialogue comprend par exemple quatre procédures de choix 47 sélectionnées au moyen de cinq menus 48. La tâche d'affichage comprend trois procédures 49 et la tâche de sauvegarde trois procédures 51. Le calculateur additionnel est sous la forme d'une carte électronique de type PC qui peut être logée dans le véhicule. Ce système pourrait évidemment être réalisé sous d'autres formes. Le principe de l'invention consiste donc à connecter un calculateur additionnel à un calculateur embarqué de série qui devient un calculateur cible géré par le calculateur additionnel qui est le calculateur hôte. Le calculateur de série devient un périphérique du calculateur additionnel. En d'autres termes, on rajoute des capacités de calcul sous la forme d'une carte microprocesseur adaptée à dialoguer avec le calculateur de série en utilisant les informations d'entrée et de sortie de ce dernier. Le calculateur de série reçoit des signaux relatifs au fonctionnement du moteur (température, pression, régime...etc...); il effectue des opérations et génère des signaux de sortie, notamment, à destination des injecteurs. Le calculateur additionnel, qui utilise les signaux d'entrée du calculateur de série et éventuellement d'autres signaux, effectue d'autres calculs et modifie les signaux de sortie du calculateur de base sans affecté le fonctionnement de ce dernier. Par exemple, dans le cas de la commande d'une climatisation par le calculateur additionnel, il faut prendre en compte l'incidence du fonctionnement de la climatisation au niveau de la commande réalisée par le calculateur de série. La mise en marche de la climatisation nécessite sa prise en compte par le moteur et, par suite, une correction du temps d'injection. Cette correction peut être chargée dans le calculateur additionnel qui vient alors substituer, lorsque la climatisation est mise en route, aux valeurs de temps d'injection calculées par le calculateur de série les valeurs corrigées par le calculateur additionnel. Les modifications de matériel et de logiciel à apporter au calculateur embarqué sont minimes et ce calculateur peut continuer à assurer ses fonctions de base, par exemple commande de l'injection et de l'allumage du moteur, le calculateur additionnel exécutant les nouveaux algorithmes. La communication entre les deux calculateurs se fait immédiatement au rythme d'un accès à un périphérique. Les deux logiciels sont étroitement synchronisés par des échanges d'interruption. La mémoire double accès est vue depuis le calculateur série comme étant sa mémoire externe d'origine alors que cette même mémoire est vue depuis le calculateur additionnel comme un périphérique. Le bloc de synchronisation génère des interruptions pour le calculateur additionnel à partir d'événements survenant dans le calculateur série, ce qui permet de synchroniser les deux logiciels. La capacité de la mémoire 4 correspond à l'ensemble des capacités d'adressage du calculateur série, par exemple 64 K, ceci permettant au calculateur additionnel d'accéder à toutes les données du calculateur série en temps réel. Le logiciel de série est logé dans la mémoire à double accès à son emplacement habituel. La mémoire vive du calculateur série sert aux échanges de données, le transfert d'informations s'effectuant immédiatement sans liaison série, ni conversion. L'invention permet d'ajouter facilement un algorithme complexe, par exemple de diagnostic ou de contrôle de moteur, au calculateur de série. Le calculateur additionnel est doté d'un processeur adapté à cet algorithme et peut lire ses propres entrées, acquérir des données du calculateur cible, synchroniser l'algorithme avec les événements du calculateur cible, dérouler l'algorithme avec son architecture logicielle, mettre à jour des variables du calculateur cible ou des sorties complémentaires. L'utilisation d'une mémoire à double accès permet de réaliser l'interface entre les deux calculateurs sans modifier le logiciel du calculateur de série, alors qu'une telle modification serait nécessaire si les échanges entre les deux calculateurs étaient réalisés par exemple par une liaison série à fort débit. Le logiciel de série n'est pas modifié, mais certains de ses traitements peuvent être neutralisés ou modifiés par le calculateur additionnel par modification du logiciel en temps réel. Les architectures logicielles des deux systèmes peuvent être complètement différentes. On peut par exemple avoir un automate de contrôle moteur dans le calculateur série et un automate de diagnostic dans le calculateur additionnel qui peut travailler en langage évolué avec virgule flottante et être doté de routines d'acquisition, d'affichage ou d'interface avec l'extérieur. Le calculateur additionnel n'est pas spécifique à un type de calculateur cible, la standardisation de la connexion étant due au fait que les signaux aboutissant à une mémoire programmable électriquement sont standardisés. On peut donc connecter le calculateur additionnel sur tous les calculateurs de série du marché. REVENDICATIONS 1. Procédé pour augmenter les capacités d'un calculateur de série (1 - 3), notamment embarqué sur un véhicule automobile, en particulier la mémoire et la puissance de calcul de ce calculateur, en vue de l'exécu- tion de nouvelles fonctions, le calculateur comportant une mémoire externe morte programmable électriquement, caractérisé en ce que l'on connecte un calculateur additionnel constitué par une unité de microinformatique(6-9, 11, 12) au calculateur de série, le calculateur additionel agissant en tant que calculateur hôte et le calculateur de série en tant que calculateur cible, et en ce que la mémoire externe du calculateur de série est remplacée par une mémoire à double accès (4) et un bloc de synchronisation (5), la connexion entre les deux calculateurs étant réalisée par la mémoire à double accès et le bloc de synchronisation générant des interruptions pour le calculateur additionnel à partir d'évènements se produisant dans le calculateur de série. 2. Procédé selon la revendication 1, caractérisé en ce que la capacité de la mémoire à double accès (4) correspond à l'ensemble des capacités d'adressage du calculateur de série. 3. Procédé selon la revendication 2, caractérisé en ce que la mémoire vive du calculateur de série (1 - 3) sert aux échanges de données entre les deux calculateurs. 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que le calculateur additionnel est constitué par une carte électronique. 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le calculateur additionnel est de type PC.