Brevet FR2790565A1 — publié le 20000908

f CALCULATEUR ELECTRONIQUE EMBARQUE SUR VEHICULE AUTOMOBILE L'invention concerne un calculateur électronique embarqué sur véhicule automobile, pouvant servir de calculateur générique à un grand nombre d'applications. La plupart des applications embarquées sur véhicule automobile utilisent des calculateurs électroniques spécifiques, comme par exemple un calculateur de contrôle pour moteur thermique, un calculateur pour boîte de vitesse automatique, etc. Ces calculateurs sont tellement spécifiques à leur utilisation qu'ils sont difficilement réutilisables, même en partie, pour des applications différentes de celles pour lesquelles ils ont été conçus. Parmi tous les travaux réalisés actuellement sur les calculateurs embarqués, aucune plate-forme générique n'a été conçue pour servir à plusieurs applications embarquées sur véhicule. Les demandes de brevets français 96 07885 et 98 079322, déposées au nom de RENAULT, concernent des systèmes électroniques de contrôle d'un moteur thermique dans un véhicule automobile. Le calculateur est réalisé pour prendre en compte les contraintes d'exécution du logiciel de contrôle d'un moteur thermique à combustion interne, de sorte que son utilisation pour d'autres types d'applications, différentes de la commande du moteur, est très difficile à mettre en oeuvre. Une architecture connue d'unité de traitement électronique est celle d'un "Personal Computer", P.C., dans laquelle un bus relie la carte-mère, qui contient le processeur et ses circuits auxiliaires, comme le contrôleur DMA, le contrôleur d'interruption, le contrôleur d'écran entre autres, à la mémoire et aux cartes d'extension. Ce bus est à deux voies, le bus de données et le bus d'adresses qui traverse le P.C. et est réglementé par le processeur. Mais les lignes d'adresses et de données sont complétées par des lignes transportant des signaux de synchronisation entre le processeur et la mémoire, de sorte que toutes les cartes sont à l'écoute du bus et à chaque émission d'un signal approprié du processeur, une d'entre elles se déclare concernée par l'adresse émise alors que les autres se coupent de la suite de la communication. Elles se brancheront à nouveau lors du cycle de transfert suivant. L'installation de cartes d'extension peut provoquer des problèmes de conflit dans le cas o deux cartes revendiquent le même domaine d'adresses. Un P.C. utilise différents types de bus, dont le bus AT de largeur 16 bits, autrement appelé bus ISA. La coexistence entre des cartes d'extension à 8 bits et à 16 bits est parfois difficile lorsque les adresses attribuées à ces cartes se trouvent dans une même zone 128 Ko. Le bus VLD étend ce bus ISA par des slots adéquats pour les extensions de cartes, en particulier des cartes graphiques. Seuls ces slots sont liés à l'unité centrale du PC via le bus VLD, afin que les autres slots restent à la disposition des cartes ISA. Le bus PCI (Peripheral Component Interconnect) n'est pas tributaire de l'unité centrale car un contrôleur de bus PCI reste actif entre cette unité centrale et le bus PCI. Bien que les cartes ISA ne soient pas exploitables dans un slot PCI, le recours aux cartes ISA reste indispensable dans la plupart des systèmes équipé d'un bus PCI. Une application embarquée sur véhicule est destinée à interagir, ou réagir aux contraintes, ou aux perturbations en provenance de son environnement extérieur. Pour cela, le logiciel d'application du calculateur embarqué détermine les valeurs de commande, ou consignes, à appliquer à des actionneurs de l'environnement extérieur, à partir de paramètres délivrés par des capteurs connectés au calculateur. Pour l'acquisition des paramètres, il existe généralement trois types de capteurs et actionneurs: analogiques-numériques, fréquentiels et à entrées- sorties logiques. Etant donné ces spécifications des différents périphériques d'un calculateur, destiné à être utilisé dans un grand nombre d'application, l'architecture d'un P.C. dans laquelle le but est standardisé, donc figé, démontre les circuits d'utilisation d'un tel outil de manière générique pour des applications embarquées sur véhicule. L'invention vise à proposer un calculateur électronique embarqué destiné à être utilisé dans plusieurs types d'applications, à partir d'une adaptation autour des particularités et spécificités matérielles propres à chacune de ces applications. Cette adaptabilité est réalisée par un module logique reconfigurable en fonction de l'unité centrale de traitement de chaque application et de ses modules périphériques externes. Pour cela, l'objet de l'invention est un calculateur électronique embarqué sur véhicule relié à des capteurs délivrant des paramètres de fonctionnement pour la commande d'actionneurs de l'environnement extérieur, comprenant une carte électronique mère sur laquelle sont connectés notamment une unité centrale de traitement destinée à exécuter une application déterminée, des mémoires de type RAM et ROM, un bus d'adresses, un bus de données, un bus de contrôle et un connecteur d'expansion des lignes de sélection de circuits programmables, caractérisé en ce qu'il comporte de plus une carte électronique interface sur laquelle sont connectés électriquement: - un module logique programmable en fonction de l'application à réaliser par l'unité centrale à laquelle il est relié par le bus d'expansion, et des modules périphériques externes au calculateur; - des modules d'interface avec les entrées et les sorties physiques du calculateur, de type différentiel, tout ou rien, parallèles ou séries. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description d'un exemple de réalisation, illustrée par les figures suivantes qui sont: - la figure 1: un schéma fonctionnel d'un calculateur électronique embarqué comprenant une carte électronique interface selon l'invention; - la figure 2: un exemple non limitatif d'un calculateur électronique embarqué comprenant une carte électronique interface, relié à plusieurs modules périphériques; - la figure 3: un exemple non limitatif d'architecture logicielle d'une application réalisable par un calculateur électronique embarqué selon l'invention. Le calculateur électronique embarqué selon l'invention a pour caractéristique essentielle de comporter notamment une carte électronique interface sur laquelle sont connectés électriquement d'une part un module logique programmable en fonction de l'application à laquelle est dédié le calculateur et d'autre part des modules d'interface avec les entrées et les sorties physiques du calculateur, de type différentiel, tout ou rien, parallèles ou séries. Le module logique est relié à l'unité de traitement électronique sur une carte mère du calculateur par son bus d'expansion, pour la transmission des données et des adresses, ce qui garantit une indépendance entre la carte contenant le module d'interface et l'unité de traitement. L'unité centrale peut comprendre: - une unité de calcul d'entiers, - une unité de calcul en virgule flottante, permettant une plus grande précision sur les grandeurs physiques, - une unité de chargement-rangement, - une unité de branchement. Ce micro-processeur peut disposer d'une pile de registres parmi lesquels: - des registres généraux pour les calculs d'entiers, - des registres généraux pour les calculs en virgule flottante, - du cache d'instruction, - de la mémoire vive, - un contrôleur d'interruptions, - un bus d'adresses et un bus de données à 8, 16 et 32 bits, - un connecteur d'expansion avec le bus d'adresses, le bus de données et le bus de contrôle, - une unité d'intégration système simplifiant l'intégration avec des mémoires externes, ou d'autres unités centrales ou périphériques, - des lignes de sélection de circuits "Chip Select" programmables pour simplifier l'interface avec des périphériques externes. La figure 1 est un schéma fonctionnel de la carte électronique interface du calculateur selon l'invention. Cette carte 1 comprend un module 2 logique configurable selon l'application désirée, s'interfaçant avec le bus de données 3 et le bus d'adresses 4 du bus d'expansion 5 de l'unité centrale 6 du calculateur, placée sur une carte mère 7. La carte 1 comprend également un module 8 d'interface entre le module logique 2 et un convertisseur analogique-numérique 9, dont les canaux analogiques Ci sont référencés par rapport à leur potentiel de masse analogique propre. Chaque convertisseur analogique numérique peut dialoguer avec la carte mère. La carte 1 comprend un module 10 d'interface entre le module logique 2 et un convertisseur numérique- analogique 11, dont les signaux de contrôle sont gérés par le module logique qui assure le décodage d'adresse et l'adressage des fonctions internes du sous-ensemble. Elle comprend aussi un module 12 d'interface avec les entrées Tout ou Rien 13 du bus de données local 20, ainsi qu'un module 14 d'interface avec les sorties Tout ou Rien 15 du bus de données local, dont les signaux de contrôle respectifs sont gérés par le module logique 2 qui assure le décodage d'adressses du sous-ensemble. De plus, la carte 1 comprend un module 16 d'interface avec la liaison série 17 qui transforme les données parallèles en données séries de manière bidirectionnelle. Cette liaison gère le nombre de données, les formats de trames, les erreurs de transmission et le débit. Elle s'interface sur le bus de données local et ses signaux de contrôle sont gérés par le module logique qui assure le décodage d'adresse du sous-ensemble. Pour améliorer le fonctionnement du calculateur, des moyens 18 d'amplification et de protection sont placés en amont des entrées TOR 13 et en aval des sorties TOR , tels que des diodes Zéner et des "polyswitch" associés à des registres de latch. De même, des moyens d'adaptation 19 sont couplés au module d'interface 16 avec la liaison série 17. Le calculateur selon l'invention n'est pas dédié à un bus spécifique mais est reconfigurable en fonction du processeur cible réalisant l'application attendue et des besoins propres de cette application, cela grâce au module logique programmable. Ce dernier est réalisé à partir d'un composant logique programmable de type PAL, EPLG, FPGA par exemple, et gère et génère tous les signaux de contrôle des modules périphériques du calculateur, nécessaires à l'application, soit: - les lignes d'interruption et les registres associés, grâce à des cavaliers 21 de configuration des niveaux d'interruption ainsi que la sélection des boîtiers périphériques; - la mise en forme des données venant ou partant vers les modules périphériques; - la transformation des bus de données parallèles en bus de données séries, et inversement; - les horloges ainsi que les signaux de lecture et d'écriture; - le décodage de la carte mère contenant l'unité de traitement 6. La sélection de la carte électronique interface 1 peut être faite soit par le module logique 2 qui décode lui- même les lignes d'adresses du bus d'expansion de la carte mère du calculateur, soit à l'aide d'une ligne de sélection de circuits "chip select" présente sur l'unité de traitement, la carte interface devant comporter des cavaliers 22 de configuration des "chip select". La figure 2 est un exemple non limitatif d'un calculateur électronique embarqué, comprenant une carte mère 34 avec une unité centrale de traitement 30 reliée à plusieurs modules logiques 33 montés sur différentes cartes CP1 à CPn périphériques, chacun d'eux permettant à l'unité centrale 30 du calculateur d'accéder à plusieurs modules périphériques de l'application. Chaque module logique est relié au connecteur du bus d'expansion 31 de l'unité centrale 30 par les lignes d'adresses 35, de données 36, d'interruption 37 et de contrôle 38. Dans le cas de la figure 2, l'horloge 32 des modules logiques 33 est celle de la carte mère, mais elle peut aussi bien être celle des modules. La figure 3 est un exemple non limitatif d'architecture logicielle d'une application réalisable par un calculateur embarqué selon l'invention. L'exécution de cette application est réalisée selon les étapes suivantes, remplies par l'unité centrale du calculateur: -au "reset", initialisation (el) des modules logiques des différentes cartes électroniques CPi portant les modules logiques; - initialisation d'un exécutif temps réel (e2); initialisation (e3) des routines d'interruption et de l'horloge temps réel; - initialisation (e4) des "drivers" d'entrées-sorties de ces modules périphériques; - activation (e5) de l'application. Cette application devant s'exécuter en temps réel, elle sollicite les services de l'exécutif temps réel, tels que la création de tâches, leur synchronisation sur des évènements comme des interruptions, sur un sémaphore pour assurer l'exclusion mutuelle, sur des données partagées entre tâches, sur une boîte aux lettres, etc, afin de répondre aux contraintes en temps réel. Les tâches de l'application accèdent aux capteurs et commandent les actionneurs par l'intermédiaire des "drivers" d'entrées-sorties. Certains d'entre eux peuvent fonctionner de manière asynchrone, à condition de demander les services de l'exécutif pour signaler aux tâches de l'application le début ou la fin d'une opération d'entrée-sortie. ]0 REVE N D ICATIONS 1. Calculateur électronique embarqué sur véhicule relié à des capteurs délivrant des paramètres de fonctionnement pour la commande d'actionneurs de l'environnement extérieur, comprenant une carte électronique mère sur laquelle sont connectés notamment une unité centrale de traitement destinée à exécuter une application déterminée, des mémoires de type RAM et ROM, un bus d'adresses, un bus de données, un bus de contrôle et un connecteur d'expansion des lignes de sélection de circuits programmables, caractérisé en ce qu'il comporte de plus une carte électronique interface (1) sur laquelle sont connectés électriquement: - un module logique (2) programmable en fonction de l'application à réaliser par l'unité centrale (6) à laquelle il est relié par le bus d'expansion (5), et des modules périphériques externes au calculateur; - des modules d'interface avec les entrées et les sorties physiques du calculateur, de type différentiel, tout ou rien, parallèles ou séries. 2. Calculateur électronique embarqué selon la revendication 1, caractérisé en ce qu'il comporte, en plus du module logique (2) programmable: - un module (8) d'interface entre ledit module logique (2) et un convertisseur analogique-numérique (9), dont les canaux analogiques sont référencés par rapport à leur potentiel de masse analogique propre; - un module (10) d'interface entre ledit module logique (2) et un convertisseur numérique-analogique (11), dont les signaux de contrôle sont gérés par le module logique qui assure le décodage du sous- Il ensemble et l'adressage des fonctions internes du calculateur; - un module (12) d'interface entre ledit module logique (2) et les entrées tout ou rien (13) du bus (20) de données local, ainsi qu'un module (14) d'interface avec les sorties tout ou rien (15) dudit bus de données local dont les signaux de contrôle respectifs sont gérés par le module logique (2) assurant le décodage d'adresses du sous-ensemble; - un module (16) d'interface entre le module logique (2) et la liaison série (17) transformant les données parallèles en données séries de manière bidirectionnelle; - des cavaliers (21) de configuration des signaux d'interruption pour la sélection des modules périphériques; - des cavaliers (22) de configuration des lignes de sélection de circuits présentes sur l'unité centrale (6); - une horloge temps réel. 3. Calculateur électronique embarqué selon l'une des revendications 1 ou 2, caractérisé en ce que la carte électronique mère (34) dont l'unité centrale (30) est reliée à plusieurs modules logiques (33) montés sur différentes cartes d'interface (CPi) périphériques, chaque module permettant à l'unité centrale d'accéder à plusieurs modules périphériques de l'application embarquée et étant relié au connecteur du bus d'expansion (31) de l'unité centrale par des lignes d'adresses (35), de données (36), d'interruption (37) et de contrôle (38). 4. Calculateur électronique embarqué selon la revendication 3, caractérisé en ce que l'horloge (32) des modules logiques (33) est l'horloge de la carte mère du calculateur. 5. Calculateur électronique embarqué selon la revendication 3, caractérisé en ce que l'horloge du calculateur est l'horloge d'un seul des modules logiques (33) reliés à l'unité centrale (30) de la carte électronique mère (34). 6. Calculateur électronique embarqué selon la revendication 2, caractérisé en ce qu'il comporte également des moyens d'amplification et de protection (18) placés en amont des entrées tout ou rien (13) et en aval des sorties tout ou rien (15). 7. Calculateur électronique embarqué selon la revendication 2, caractérisé en ce qu'il comporte de plus des moyens d'adaptation (19) couplés au module d'interface (16) avec la liaison série (17). 8. Calculateur électronique embarqué selon l'une des revendications 1 à 7, caractérisé en ce que l'exécution de l'application destinée à être faite par l'unité centrale de traitement comporte les étapes suivantes: - au "reset", initialisation (el) des modules logiques des différentes cartes électroniques (Cpi) portant les modules logiques; - initialisation d'un exécutif temps réel (e2); initialisation (e3) des routines d'interruption et de l'horloge temps réel; - initialisation (e4) des "drivers" d'entrées- sorties de ces modules périphériques; - activation (e5) de l'application.