FR 2781897 A1 20000204 FR 9909660 A 19990726 PROCEDE DE COMMANDE DE TACHES EFFECTUEES PAR UN SYSTEME D'EXPLOITATION, POUR LA COMMANDE D'UN MOTEUR DE VEHICULE La présente invention traite d'une méthodologie de commande de tâches, et plus particulièrement d'un procédé de commande de taches d'organes de véhicule, mis en ceuvre au moyen d'un système d'exploita- tion multitâche ou en temps reel. Comme il est bien connu, la commande de moteur d'un véhicule classique est accomplie par une architecture monotâche, réalisée en utilisant un système d'exploitation monotâche, et la commande en temps réel est effectuée au moyen d'un traitement d'interruptions. Cependant, en raison de la complexité croissante de la commande des moteurs au cours des dernières années, il est devenu nécessaire de traiter de nombreuses tâches (c'est-à-dire des processus ou des travaux) et de définir des priorités pour ces nombreuses tâches. Il a ainsi été pro- posé d'introduire une architecture multitâche, réalisée au moyen d'un système d'exploitation multitâche ou en temps réel. La figure 9 est un diagramme explicatif illustrant une routine de traitement dans laquelle trois tâches A - C et une interruption doivent être traitées par une architecture multitâche, réalisée par un système d'exploitation multitâche ou en temps réel. Ici, en ce qui concerne les taches individuelles A - C, la tâche B est définie comme ayant la priorité la plus élevée, tandis que la tache C est définie comme ayant la priorité la plus basse. Le traitement des inter- ruptions est défini comme ayant une priorité plus élevée que n'importe laquelle des tâches individuelles A - C. Il est également défini que la routine de changement de tâche est appelée pour faire débuter la tâche B après la fin du traitement d'interruption, et pour faire débuter la tâche C après la fin de la tâche B. Ceci est illustré d'une part par la tâche synchronisée avec le temps (par exemple le commande du papillon d'accélérateur) pour la tâche A devant être exécutée en synchronisme avec le temps, d'autre part par la tâche synchronisée avec la rotation (par exemple la commande de débit d'injection de carburant ou des conditions temporelles d'allumage) pour la tâche B devant être executée en synchronisme avec la rotation du vilebrequin, et enfin par la tâche synchronisée avec la rotation (par exemple la commande de la vanne de réglage de la vitesse de ralenti) pour la tâche C devant être exécutée en synchronisme avec la rotation du vilebrequin. Quand le traitement d'interruption a lieu à un instant tl pendant le traitement de la tâche A, le traitement de la tâche A est interrompu de façon que le traitement d'interruption ayant la plus haute priorité soit exécuté. De plus, quand le traitement d'interruption s'achève à un instant t2, une routine de changement de tâche est appelée pour faire démarrer la tâche B, de telle sorte que la tâche B soit traitée à partir de l'instant t3. Après cela, quand le traitement de la tâche B s'achève à l'instant t4, la routine de changement de tâche est appelée pour faire démarrer la tâche C. Cependant, étant donné que la tâche A a une priorité plus éle- vée que celle de la tâche C, le traitement restant de la tâche A est ef- fectué à l'instant t5 quand la tâche B est finie. De plus, quand le traite- ment de la tâche A est terminé à l'instant t6, le traitement de la tâche C est exécuté. Les tâches individuelles A - C et l'interruption sont traitées dans une région de mémoire sous forme de pile, se trouvant dans la mémoire vive (ou RAM) du micro-ordinateur qui est à l'intérieur de l'unité de com- mande électronique. La figure 10 illustre la structure de la région de pile dans le cas o les taches individuelles A - C et les interruptions sont traitées, comme représenté sur la figure 9. La mémoire vive contient à la fois une région de pile, et une région de gestion de pointeur de pile. La région de pile est une région de travail pour le traitement des tâches individuelles A C et des interruptions, et est incorporée pour chacune des tâches indivi- duelles. La région de gestion de pointeur de pile a pour rôle de mémoriser et gérer un pointeur de pile qui indique l'adresse d'une région de mé- moire utilisée pour traiter les tâches individuelles A - C dans la région de pile, et est incorporée pour chacune de ces tâches individuelles. Ici, le pourcentage d'occupation de la région de gestion de pointeur de pile est tellement faible qu'on peut dire que la mémoire vive est quasiment entiè- rement occupée par la région de pile. Dans un état initial, la valeur du pointeur de pile de la tâche A, qui est mémorisée dans la région de gestion de pointeur de pile, est fixée à "SPAO"; la valeur du pointeur de pile de la tâche B, mémorisée dans la région de gestion de pointeur de pile, est fixée à SPBO"; et la valeur du pointeur de pile de la tâche B, mémorisée dans la région de gestion du pointeur de pile, est fixée à "SPC0". Ainsi, la traitement de la tâche A débute à partir de la position SPA0 de la région de pile. De plus, on suppose que la valeur du pointeur de pile passe à "SPA1" à l'instant (c'est-à-dire à l'instant tl sur la figure 9) o le traitement d'interruption commence pendant le traitement de la tache A. Ensuite, le traitement d'interruption commence à la position SPA1 de la région de pile. De plus, on suppose que la valeur du pointeur de pile passe à "SPA2" à l'instant (c'est à dire à l'instant t2 sur la figure 9) o le traite- ment d'interruption est achevé. Quand le traitement d'interruption est achevé, le pointeur de pile retourne à SPA1 ou la valeur qu'il avait à l'instant o le traitement de la tâche A a été interrompu, et la routine de changement de tâche est appelée pour commencer la tâche B. A cet ins- tant, la valeur du pointeur de pile de la tâche A, mémorisée dans la ré- gion de gestion de pointeur de pile, passe de la valeur initiale SPA0 à la valeur SPA1 du pointeur de pile au moment o le traitement de la tâche A a été interrompu. Ensuite, le traitement de la tâche B est commencé (à l'instant t3 sur la figure 9) à partir de la position SPB0 de la région de pile. Quand le traitement de la tâche B est fini, la routine de change- ment de tâche est appelée afin de commencer la tâche C (à l'instant t4 sur la figure 9). Cependant, étant donné que la tâche A a une priorité plus élevée que celle de la tâche C, le traitement restant de la tâche A interrompue est effectué (à l'instant t5 sur la figure 9). A cet instant, le pointeur de pile est déplacé vers la position SPA1 de la tâche A, mémori- sée dans la région de gestion de pointeur de pile, de façon que le traitement restant de la tâche A soit effectué à partir de la position SPA1 de la région de pile. Apres ceci, quand le traitement de la tâche A est terminé, le poin- teur de pile se déplace jusqu'à la position SPCO de façon que le traite- ment de la tâche C commence à partir de la position SPC0 de la région de pile (à l'instant t6 sur la figure 9). Ainsi, quand le traitement d'une interruption survient pendant le traitement de la tâche A, les régions actives (de SPA1 à SPA2) pour le traitement d'interruption sont empilées au dessus des régions actives (de SPA0 à SPA1) pour la tâche A dans la région de pile, qui ont été utilisées à ce moment pour le traitement de la tâche A. Ceci s'applique également au cas ou le traitement d'interruption survient pendant le traitement de la tâche B ou C. En résumé, le traite- ment d'interruption peut avoir lieu pendant le traitement de n'importe laquelle des tâches individuelles A - C. Ainsi, quand le traitement d'interruption a lieu pendant le traitement de la tâche B, la région active pour le traitement d'interruption est empilée au-dessus la région active pour le traitement de la tâche B dans la région de pile, qui a été utilisée à ce moment pour le traitement de la tâche B. D'autre part, quand le traitement d'interruption a lieu pendant le traitement de la tâche C, la région active pour le traitement d'interruption est empilée au dessus la région active pour le traitement de la tâche C dans la région de pile, qui a été utilisée à ce moment pour le traitement de la tâche C. En conséquence, les tailles des régions de pile pour les tâches in- dividuelles A - C doivent être fixées à la taille totale nécessaire pour traiter les tâches plus la taille nécessaire pour le traitement d'interrup- tion. En outre, comme décrit précédemment, la taille de la région de ges- tion de pointeur de pile est tellement faible que la taille de la mémoire vive est déterminée par le total des tailles des régions de pile des tâches individuelles A - C. En d'autres termes, la taille de la mémoire vive doit être fixée au total des tailles nécessaires au traitement des tâches A - C et de la taille nécessaire pour que le traitement d'interruption puisse être empilé au dessus de chaque région de pile des tâches individuelles A - C. Pour le cas o la taille nécessaire pour le traitement de la tâche A est de 400 octets, la taille nécessaire pour le traitement de la tâche B est de 300 octets, la taille nécessaire pour le traitement de la tâche C est de 500 octets, et la taille nécessaire pour le traitement d'interruption est de octets, la taille de la région de pile pour la tâche A est fixée à 500 (400 + 100) octets, la taille de la région de pile pour la tâche B est fixée à 400 (300 + 100) octets, la taille de la région de pile pour la tâche C est fixée à 600 (500 + 100) octets. Ceci nécessite de fixer la taille de la mé- moire vive à une valeur de 1500 (= 500 + 400 + 600) octets. D'autre part, dans l'architecture monotâche mise en oeuvre en utili- sant un système d'exploitation monotâche, un passage à une autre tache ne peut être effectué avant que la tâche en cours de traitement soit ter- minée. Ainsi, quand les tâches individuelles A - C et l'interruption doi- vent être traitées comme décrit ci-dessus dans une architecture monotâ- che, la taille de la mémoire vive peut être fixée à 600 octets correspon- dant au maximum des tailles des régions de pile des tâches individuelles A - C (c'est à dire la taille de la région de pile de la tâche C) Dans l'architecture multitâche réalisée par l'utilisation du système d'exploitation multitâche ou en temps réel, comme décrit précédemment, la taille de la mémoire vive est augmentée, car la taille de la mémoire vive doit être le total des tailles nécessaires pour le traitement des tâches individuelles, et de la taille nécessaire au traitement d'interruption et empi- lée au dessus de chacune des régions de pile des tâches individuelles. Compte tenu de ce qui précède, un but de la présente invention est de réduire la taille de la mémoire vive dans laquelle une pile ou région active pour le traitement de tâches et d'interruption est implantée, dans une architecture multitâche réalisée par l'utilisation d'un système d'exploi- tation multitâche ou en temps réel. Plus particulièrement, la présente invention procure une commande de tâches réalisée par l'utilisation d'un système d'exploitation multitâche ou en temps réel. De plus, le traitement d'interruption devant être exé- cuté en interrompant plusieurs tâches ayant des priorités fixées, est défi- ni de façon à avoir une priorité plus élevée. Une région de pile est définie comme une région de mémoire active pour traiter les tâches individuelles et l'interruption, dans une mémoire accessible en lecture et en écriture. La région de pile est fixée à une taille nécessaire pour traiter les tâches individuelles et conformément au nombre de tâches. Une région d'interruption est également fixée à la taille nécessaire pour le traitement d'interruption, et est séparée de la région de pile pour les taches indivi- duelles. Ainsi, conformément à l'invention, quand le traitement d'interruption est activé pendant le traitement d'une tâche, le traitement d'interruption est accompli dans une région de pile prédefinie. De ce fait, la taille de la région de pile pour chaque tâche doit seulement être la taille nécessaire au traitement de la tâche. De plus, la taille de la mémoire est déterminée par le total des tailles des régions de pile pour le traitement des tâches individuelles et de l'interruption. Dans une commande multitâche classique, quand le traitement d'interruption est activé pendant le traitement d'une tâche, la zone active pour le traitement d'interruption est empilée au dessus de la région active de la tâche dans la région de pile. Cela impose de fixer la taille de la mémoire au total des tailles nécessaires pour le traitement des tâches individuelles et pour le traitement d'interruption devant être empilé au dessus des régions de pile des tâches individuelles. En résumé, conformément à la présente invention, les régions des- tinées au traitement d'interruption sont regroupées en une seule région, ce qui fait que la taille de mémoire peut être réduite en conséquence. D'autres caractéristiques et avantages de l'invention seront mieux compris à la lecture de la description qui va suivre d'un mode de réalisa- tion donné à titre d'exemple non limitatif. La suite de la description se réfère aux dessins annexés, dans lesquels: La figure 1 est un schéma synoptique montrant une structure schématisée d'un mode de réalisation conforme à l'invention; La figure 2 est un schéma synoptique montrant la structure interne d'une unité de commande électronique du mode de réalisation; Le figure 3 est un organigramme expliquant le traitement d'une tâ- che A dans le mode de réalisation; La figure 4 est un organigramme expliquant le traitement d'une tâ- che B dans le mode de réalisation; La figure 5 est un organigramme expliquant le traitement d'une tâ- che C dans le mode de réalisation; La figure 6 est un organigramme expliquant le traitement d'interrup- tion dans le mode de réalisation; La figure 7 est un schéma explicatif pour l'explication de la struc- ture d'une pile dans le mode de réalisation; La figure 8 est un organigramme pour l'explication du traitement d'interruption dans le mode de réalisation; La figure 9 est un schéma explicatif pour l'explication d'une routine pour le traitement de plusieurs tâches et d'une interruption; La figure 10 est un schéma explicatif pour l'explication de la struc- ture d'une pile dans l'art antérieur La figure 1 est un schéma d'un moteur commandé par une unité de commande électronique conforme à la présente invention, ainsi que d'un système périphérique. Un moteur à essence à cinq cylindres du type à allumage par bou- gies comporte une chambre de combustion 5 définie par un cylindre 2, un piston 3 et une culasse 4. Une bougie d'allumage 6 d'un type à bobine intégrée est également présente dans la chambre 5. Le moteur 1 a un système d'admission constitué par un collecteur d'admission 8 communi- quant avec la chambre de combustion 5 par une soupape d'admission 7, un injecteur de carburant 9 pour injecter du carburant dans le collecteur d'admission 8, un tuyau d'admission 10 communiquant avec le collecteur d'admission 8, une chambre d'égalisation de pression 11 pour absorber des pulsations de l'air d'admission, un papillon d'accélérateur 12 pour réguler un débit d'air d'admission, un filtre à air 13 pour éliminer la pous- sière de l'air entrant qui doit être fourni à la chambre d'égalisation de pression 11, un conduit de dérivation 31 formant une dérivation sur le papillon 12 et établissant un communication entre l'amont et l'aval du papillon 12, et une vanne de commande de vitesse de ralenti 32 placée dans le conduit de dérivation 31. Le système d'échappement du moteur I comprend un collecteur d'échappement 15 qui communique avec la chambre de combustion 5 par une soupape d'échappement 14. Le moteur comporte également des capteurs individuels 20 - 27. Le capteur de température d'eau 20 est placé dans le circuit de refroidis- sement du moteur 1 pour mesurer la température de l'eau de refroidisse- ment du moteur. Le capteur de température d'air d'admission 21 est placé dans le filtre à air 13 pour mesurer la température de l'air d'admission. Le capteur de pédale d'accélérateur 22 est connecté à une pédale d'accélérateur 28 pour détecter le niveau d'enfoncement de la pédale d'accélérateur 28. Le capteur de débit d'air d'admission 23 est placé en amont du papillon 12 pour mesurer le débit d'air d'admission. Le capteur de concentration en oxygène 24 est placé dans le collecteur d'échap- pement 15 pour mesurer la concentration en oxygène résiduel dans les gaz d'échappement. De plus, le capteur d'angle de rotation 25 détecte la saillie d'une (60-2)-ième dent formée sur le volant (non représenté) pour émettre un signal impulsionnel de détection d'angle de rotation à chaque 1/60-ième de tour du vilebrequin (non représenté). Ici, 1/60-ième de tour du vilebrequin correspond à un multiple entier, allant jusqu'à une position angulaire de vilebrequin de 6 degrés, de la position angulaire de 0 degré, à la position o la saillie de la (60-2)-ième dent est présente, et à un multiple entier allant jusqu'à 18 degrés à la position (c'est-a-dire à la position de la dent "cassée") o la saillie de la (60- 2)-ième dent est absente. Le capteur d'angle de rotation agit aussi comme un capteur de vitesse du moteur 1. Le capteur de came 26 émet un signal impulsionnel de détection de référence pour la reconnaissance des cylindres à chaque tour de l'arbre à cames (non représenté) (c'est-a-dire tous les deux tours du vilebrequin). Le capteur de vitesse du véhicule 27 détecte la vitesse du véhicule en détectant une saillie d'une roue de génération de signal 29 montée sur un essieu du véhicule (non représenté). Les signaux de détection des capteurs individuels 20 - 27 sont envoyés à une unité de commande électronique 30. Cette unité de com- mande électronique 30 commande le moteur 1 en commandant la bougie d'allumage 6, I'injecteur de carburant 9, le papillon d'accélérateur 12 et la vanne de commande de vitesse de ralenti 32 en se basant sur les si- gnaux de détection des capteurs individuels 20 - 27. Comme représenté sur la figure 2, l'unité de commande électroni- que 30 comprend un micro-ordinateur 310, une partie de circuit 351 pour effectuer un pré-traitement pour charger dans le micro-ordinateur 310 les signaux de détection des capteurs individuels 20 - 27, et une partie de circuit 352 pour attaquer les organes dont le fonctionnement est commandé (la bougie d'allumage 6, I'injecteur de carburant 9, le papillon d'accélérateur 12 et la vanne de commande de vitesse de ralenti 32) conformément à des ordres de commande qui sont produits par le micro- ordinateur. Ici, l'unité de commande électronique 30 est alimentée par de I'énergie venant d'une batterie du véhicule, quand l'interrupteur d'allu- mage est fermé. Le micro-ordinateur 310 comprend un microprocesseur 311, une mémoire morte (ou ROM) 312, une mémoire vive (ou RAM) 313, une mé- moire vive de sauvegarde 314, un port d'entrée-sortie 315, un port d'entrée 316, un port de sortie 317, un bus commun 318 et un circuit de génération d'horloge 319. Le microprocesseur 311 prélève les signaux de détection des cap- teurs individuels 20 - 27 à partir du port d'entrée-sortie 315 ou du port d'entrée 316, par l'intermédiaire du bus commun 318, conformément a un programme de commande (c'est-à-dire un système d'exploitation multitâ- che ou en temps réel) enregistré dans la mémoire morte 312, génère des ordres de commande pour attaquer les organes dont le fonctionnement est commandé, en exécutant des opération prédéterminées basées sur le programme de commande, et émet les ordres à partir du bus commun 318 par le port de sortie 317. Le programme de commande peut être enregistré sur un support d'enregistrement pouvant être lu par l'ordinateur (par exemple une mé- moire à semiconducteur, un disque dur, une disquette, une carte de don- nées (une carte à puce, une carte magnétique ou similaire), un disque optique (CD-ROM, DVD ou similaire), un disque magnéto-optique (MD ou similaire), un disque à changement de phase ou une bande magnétique) de façon qu'il puisse être utilisé en faisant démarrer le microprocesseur 311, dans lequel il est chargé, si besoin est. Le programme mentionné ci-dessus, des données initiales, ou au- tres, sont préalablement enregistrés dans la mémoire morte 312. Une région de pile et une région de gestion de pointeur de pile pour les tâ- ches individuelles A - C décrites ultérieurement et l'interruption, sont définies dans la mémoire vive 313. La mémoire vive de sauvegarde 314 enregistre diverses conditions de configuration pour commander le moteur 1. Ici, cette mémoire vive de sauvegarde 314 est alimentée en énergie électrique directement à partir de la batterie montée sur le véhicule, et non par l'intermédiaire de l'inter- rupteur d'allumage, ce qui fait que son contenu mémorisé est conservé même après l'interruption de l'alimentation de l'unité de commande élec- tronique 30 par la batterie montée sur le véhicule, sous l'effet de l'ou- verture de l'interrupteur d'allumage. Le circuit de génération d'horloge 319 génère et fournit une horloge de fonctionnement CK aux éléments individuels 311 - 317 du micro-ordinateur 310. La partie de circuit 351 est constituée par des amplificateurs- séparateurs individuels 321 - 325, un multiplexeur 326, un convertisseur analogique / numérique (A/N) 327, et des circuits de mise en forme de signal 328 et 329. Le multiplexeur 326 sélectionne les signaux de détec- tion des capteurs individuels 20 - 24, appliqués par l'intermédiaire des amplificateurs-séparateurs individuels respectifs 321 - 325, conformé- ment à l'ordre du micro-ordinateur 310. Le convertisseur A/N 327 convertit d'analogique en numérique les signaux de détection des capteurs individuels 20 - 24, sélectionnés par le multiplexeur 326 conformément à l'ordre du micro-ordinateur 310. Les signaux de détection des capteurs individuels 20 - 24 après conversion analogique-numérique sont émis vers le port d'entrée-sortie 315. Le circuit de mise en forme de signal 328 met en forme individuel- lement les signaux de détection issus du capteur d'angle de rotation 25 et du capteur de came 26 pour donner des formes d'ondes de signaux consistant en impulsions binaires. Le circuit de mise en forme de signal 329 met en forme le signal de détection du capteur de vitesse de véhi- cule pour donner une forme d'onde de signal consistant en impulsions binaires. Les signaux de détection des capteurs individuels 25 - 27 ainsi mis en forme sont dirigés vers le port d'entrée 316. La partie de circuit 352 précitée est composée de circuits d'attaque individuels 341 - 344. Le circuit d'attaque 341 commande l'instant d'allumage de la bou- gie 6 en commandant l'alimentation de la bobine incorporée dans la bou- gie d'allumage, conformément à l'ordre de commande du micro-ordinateur 310. Le circuit d'attaque 342 commande l'injecteur de carburant 9 pour qu'il s'ouvre pendant une durée prédéterminée conformément à l'ordre de commande du micro-ordinateur 310. Ceci fonctionne de façon que le carburant pompé par la pompe à carburant (non représentée) vers l'in- jecteur de carburant 9 puisse être injecté par l'injecteur de carburant 9 avec un débit d'injection correspondant à la durée d'ouverture, pour commander le débit d'injection de carburant. Le circuit d'attaque 343 commande le débit d'air d'admission en contrôlant le degré d'ouverture du papillon d'accélérateur 12 conformé- ment à l'ordre de commande du micro-ordinateur 310. Le circuit d'attaque 344 régule le débit d'air d'admission devant être fourni au moteur 1 au ralenti pour régler à une valeur prédéterminée la vitesse de ralenti du moteur 1, en commandant l'ouverture de la vanne de commande de vitesse de ralenti 32 conformément à l'ordre de com- mande du micro-ordinateur 310. La figure 3 est un organigramme montrant le traitement de la tâche A devant être exécutée par l'unité de commande électronique 30. La tâche synchronisée avec le temps ou la tâche A est lancée de façon cyclique (par exemple toutes les 8 ms) conformément au pro- gramme de commande (c'est-à-dire le système d'exploitation multitâche ou en temps réel) enregistré dans la mémoire morte 312. Premièrement, les signaux de détection des capteurs individuels 20 - 24, entrant respectivement par les amplificateurs-séparateurs 321 - 325, et sélectionnés par le multiplexeur 326, sont convertis d'analogique en numérique par le convertisseur A/N 327 de façon que les signaux convertis des capteurs individuels 20 - 24 soient transférés du port d'entrée-sortie 315, par le bus commun 318, vers la mémoire vive 313 et le microprocesseur 311 (Etape 101). Ensuite, en utilisant en tant que région active 313a la région de pile de la tâche A définie dans la mé- moire vive 313 par le microprocesseur 311, la commande du papillon d'accélérateur est traitée en se basant sur le signal de détection du cap- teur de pédale d'accélérateur 22. L'ordre de commande du papillon 12 est généré sur la base du résultat du traitement et est transféré du bus commun 318, par le port de sortie 317, vers le circuit d'attaque 343 de façon que le papillon d'accélérateur 12 soit commandé par le circuit d'attaque 343, ce qui achève la tâche A (Etape 102). La figure 4 est un organigramme montrant le traitement de la tâche B devant être exécutée par l'unité de commande électronique 30. Le tâche B, ou la tâche synchronisée avec la rotation, est lancée de façon cyclique à des positions angulaires de vilebrequin prédétermi- nées (par exemple des positions angulaires de 36 degrés) sur la base du signal de détection du capteur d'angle de rotation 25, conformément au programme de commande (c'est-à-dire le système d'exploitation multitâ- che ou temps réel) enregistré dans la mémoire morte 312. Comme la tâche A, la tâche B est traitée en utilisant en tant que région active une région de pile 313a de la tâche B, qui est définie dans la mémoire vive 313 par le microprocesseur 311. Initialement, le débit d'injection de carburant est traité en se ba- sant sur les signaux de détection du capteur de débit d'air d'admission 23 et du capteur d'angle de rotation 25 de façon que l'ordre de commande de l'injecteur de carburant 9 soit généré d'après le résultat du traitement. Cet ordre de commande est transféré du bus commun 318, par le port de sortie 317, vers le circuit d'attaque 342 de façon que l'injecteur de carbu- rant 9 soit commandé par le circuit d'attaque 342 (Etape 111). Ensuite, sur la base des signaux de détection du capteur de débit d'air d'admission 23 et du capteur d'angle de rotation 25, I'instant d'allumage de la bougie 6 est traité. L'ordre de commande de la bougie d'allumage 6 est généré sur la base du résultat du traitement et est transféré du bus commun 318, par le port de sortie 317, vers le circuit d'attaque 341 de façon que la bougie d'allumage 6 soit commandée par le circuit d'attaque 341 (Etape 112). Ensuite, sur la base du signal de détection du capteur d'angle de rotation 25 (Etape 113), on détermine si la position angulaire du vilebre- quin est ou non à une valeur prédéterminée (par exemple 0 degré). Le traitement de la tâche B est terminé à moins que la position angulaire prédéterminée ne soit atteinte, et la tâche C commence si la position prédéterminée est atteinte (Etape 114). Il en résulte que la tâche C com- mence chaque fois que le vilebrequin passe par une position angulaire prédéterminée. Par exemple, quand la tâche B est commencée à chaque position angulaire de 36 degrés du vilebrequin, la tâche C est commen- cée à chaque position angulaire de 360 degrés. La figure 5 est un organigramme montrant le traitement de la tâche C devant être exécutée par l'unité de commande électronique 30. La tâche C, ou la tâche synchronisée avec la rotation, est égale- ment traitée en utilisant en tant que région active la région de pile 313a de la tâche C définie dans la mémoire vive 313 par le microprocesseur 311. Le débit d'air d'admission devant être fourni au moteur I au ralenti est traité en se basant sur les signaux de détection du capteur de débit d'air d'admission 23 et du capteur d'angle de rotation 25. L'ordre de commande de la vanne de commande de vitesse de ralenti 32 est généré sur la base du résultat du traitement et est transféré du bus commun 318, par le port de sortie 317, vers le circuit d'attaque 344 de façon que la vanne de commande de vitesse de ralenti 32 soit commandée par le cir- cuit d'attaque 344 (Etape 121). La figure 6 est un organigramme montrant le traitement d'interruption devant être exécuté par l'unité de commande électronique 30. L'interruption est lancée de façon cyclique à des positions angulaires de vilebrequin prédéterminées (par exemple une position angulaire de 6 degrés a l'endroit o il n'y a pas une dent "cassée" et de 18 degrés à l'endroit o il y a une dent "cassée") conformément au programme de commande enregistré dans la mémoire morte 312. D'autre part, l'interruption est traitée est utilisant en tant que région active la région de pile 313b de l'interruption qui est définie dans la mémoire vive 313 par le microprocesseur 311. Initialement, la position de la dent "cassée" est détectée en se basant sur le signal de détection du capteur d'angle de rotation 25 (Etape 131). Ensuite, le compteur associé au vilebrequin est incrémenté à des positions angulaires de vilebrequin prédéterminées (par exemple 36 de- grés) (Etape 132). Ensuite, on détermine à partir de la routine précédente (Etape 133) si le compteur associé au vilebrequin est incrémenté. L'interruption s'achève s'il n'est pas incrémenté, et la tâche B est com- mencée s'il est incrémenté (Etape 134). Ces tâches A - C sont bien connues dans la technique. La tache B reçoit la priorité la plus élevée, tandis que la tache C reçoit la priorité la plus basse, et l'interruption reçoit une priorité plus élevée que celles des tâches individuelles A - C. La figure 7 est un schéma explicatif de la structure d'une pile dans * laquelle les taches individuelles A - C et l'interruption doivent être trai- tées dans ce mode de réalisation par une architecture multitâche mise en oeuvre en utilisant le système d'exploitation multitâche ou en temps réel. Les régions de pile, qui sont définies dans la mémoire vive 313, sont les régions actives pour le traitement des tâches individuelles A - C et d'interruption, et comportent la région de pile de traitement d'interruption 313b indépendamment et en plus des régions de pile pour les taches individuelles A à C (313a). La région de gestion de pointeur de pile 313c, qui est définie dans la mémoire vive 313, est une région pour la mémorisation et la gestion du pointeur de pile indiquant les adresses des régions utilisées pour les taches individuelles A - C et l'interruption dans la région de pile, et est prévue pour traiter non seulement chacune des tâches individuelles A - C, mais aussi l'interruption. Ici, le pourcen- tage que la région de gestion de pointeur de pile 313c occupe dans la mémoire vive 313 est tellement faible qu'on peut dire que la mémoire vive est presque uniquement occupée par la région de pile. Dans ce mode de réalisation, la routine de traitement pour le trai- tement des tâches individuelles A - C et d'interruption est identique à une routine classique, comme représenté sur la figure 9. Dans l'état ini- tial, la tâche A a une valeur de pointeur de pile "SPA0" enregistrée dans la région de gestion de pointeur de pile, la tache B a une valeur de pointeur de pile "SPB0" enregistrée dans la région de gestion de pointeur de pile, la tâche C a une valeur de pointeur de pile "SPC0" enregistrée dans la région de gestion de pointeur de pile, et l'interruption a une va- leur de pointeur de pile "SPI0O enregistrée dans la région de gestion de pointeur de pile. On décrira ensuite les opération de commande des tâches par l'unité de commande électronique 30 de ce mode de réalisation en se référant aux figures 7 et 9. Comme représenté sur la figure 7, le traitement de la tâche A com- mence à partir de la position "SPA0" de la région de pile. De plus, on suppose que la valeur du pointeur de pile est déplacée vers la position "SPA1" à l'instant (l'instant tI sur la figure 9) ou le traitement de la tâche A est interrompu. Ensuite, la valeur du pointeur de pile devant être enre- gistrée dans la région de gestion de pointeur de pile pour traiter l'interruption passe de la valeur initiale SPI0 à la valeur SPA1 du poin- teur de pile à l'instant o le traitement de la tâche A est interrompu. En- suite, le pointeur de pile se déplace vers SPI0 de façon que l'interruption commence de la position SPI0. On suppose alors que la valeur du pointeur de pile passe à "SPI1" à l'instant (à l'instant t2 sur la figure 9) o l'interruption se termine. Quand l'interruption est terminée, le pointeur de pile retourne en SPI0. Ensuite, le pointeur de pile passe à la valeur SPA1 enregistrée dans la région de gestion de pointeur de pile pour le traitement d'interruption. La routine de changement de tâche est ensuite appelée de façon que la tâche B commence. A cet instant, la valeur du pointeur de pile devant être enregistrée dans la région de gestion de pointeur de pile pour la tâche A passe de la valeur initiale SPA0 à la valeur SPA1 du pointeur de pile à l'instant o le traitement de la tâche A est interrompu. Le traitement de la tâche B commence ensuite à partir de la position SPB0 (à l'instant t3 sur la figure 9). Quand le traitement de la tâche B est achevé, la routine de chan- gement de tâche est appelée de façon que la tâche C commence (à l'instant t4 sur la figure 9). Cependant, du fait que la tâche A a une prio- rité plus élevée que la tâche C, le traitement restant de la tâche A inter- rompue est effectué (à l'instant t5 sur la figure 9) à la suite de la tâche B. A cet instant, le pointeur de pile passe en SPA1, qui est la valeur en- registrée dans la région de gestion de pointeur de pile pour la tâche A, de façon que le traitement restant de la tâche A soit effectué à partir de la position SPA1 de la région de pile. Quand le traitement de la tâche A est terminé, le pointeur de pile passe en SPC0 de façon que le traitement de la tâche C commence à la position SPA1 de la région de pile (à l'instant t6 sur la figure 9). La figure 8 est un organigramme montrant l'intégralité de la routine de traitement d'interruption. Quand le traitement d'interruption com- mence, la valeur du pointeur de pile, enregistrée dans la région de ges- tion de pointeur de pile pour le traitement d'interruption, passe tout d'abord à la valeur SPA1 ou la valeur courante du pointeur de pile (c'est- à-dire la valeur du pointeur de pile à l'instant o le traitement est inter- rompu) (Etape 141). Ensuite, le pointeur de pile est déplacé vers la posi- tion SPI0 de la région de pile pour le traitement d'interruption (Etape 142) de façon que le traitement d'interruption soit effectué (Etape 143). De plus, quand le traitement d'interruption est achevé, le pointeur de pile passe à la valeur SPA1 ou la valeur du pointeur de pile qui est enregis- trée dans la région de gestion de pointeur de pile pour le traitement d'interruption (Etape 144). Ensuite, la routine de changement de tâche est appelée de façon que la tâche B soit lancée (Etape 145). Sur la figure 8, les étapes de ce mode de réalisation qui sont ajoutées à une architecture de commande classique, sont les étapes 141, 142 et 144. Dans ce mode de réalisation, comme on l'a décrit en détail, l'interruption est traitée, si elle survient pendant que la tâche A est en cours de traitement, par la région de pile réservée qui est établie à l'avance. Ceci s'applique de façon similaire au cas o l'interruption sur- vient pendant que la tâche B ou la tâche C est en cours de traitement. Ainsi, les tailles des régions de pile pour les tâches individuelles A - C peuvent être fixées aux valeurs nécessaires pour traiter les tâches. De plus, la taille de la région de gestion de pointeur de pile est tellement petite que la taille de la mémoire vive 313 est déterminée par le total les tailles des régions de pile pour les tâches individuelles A - C et le traite- ment d'interruption. En d'autres termes, la taille de la mémoire vive 313 peut être fixée au total des tailles nécessaires pour traiter les tâches individuelles A - C et de la taille nécessaire au traitement d'interruption. Dans un cas o la taille nécessaire pour traiter la tâche A est de 400 octets, la taille nécessaire pour traiter la tâche B est de 300 octets, la taille nécessaire pour traiter la tâche C est de 500 octets, et la taille nécessaire pour le traitement d'interruption est de 100 octets, la taille de la mémoire vive peut avoir la valeur totale de 1300 (400 + 300 + 500 + ) octets. Cependant, dans l'art antérieur représenté sur la figure 10, la taille de la mémoire vive dans des conditions identiques devait être de 1500 octets. Par conséquent, avec ce mode de réalisation, la taille de la mé- moire vive 313 peut être diminuée de 200 (1500 - 1300) octets par rap- port à celle de l'art antérieur. De plus, dans l'unité de commande électronique 30 pour comman- der le moteur de l'automobile, il y a une limite a la taille de la mémoire vive 313 qui peut être incorporée. Cependant, avec le mode de réalisa- tion présent, la taille de la mémoire vive 313 peut être réduite afin de procurer une mémoire vive de petite taille et peu coûteuse pour l'unité de commande électronique 30. Il va de soi que de nombreuses modifications peuvent être appor- tées au procédé et au dispositif décrits à titre d'exemple non limitatif, sans sortir du cadre de l'invention. REVENDICATIONS 1. Procédé pour commander des tâches effectuées par un sys- tème d'exploitation, caractérisé en ce qu'il comprend: l'établissement d'une interruption (SPIO) pour interrompre l'une quelconque d'une multi- plicité de taches individuelles, en ayant une priorité supérieure à des priorités établies des tâches individuelles; I'établissement d'une région de pile (313a) à titre de région active pour traiter les taches individuelles (SPA0, SPB0, SPC0) et l'interruption (SPI0) dans une mémoire accessi- ble en écriture et en lecture (313), et avec une taille nécessaire pour traiter les taches individuelles et conformément à un nombre de tâches; et l'établissement d'une région (313b) pour l'interruption, séparée de la région de pile (313a) dans la mémoire accessible en écriture et en lec- ture. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre: I'établissement d'une région de gestion de pointeur de pile (313c) dans la mémoire (313) pour chacune des tâches indivi- duelles (SPA0, SPB0, SPC0) et l'interruption (SPI0); la mémorisation d'une valeur d'un pointeur de pile dans la région de gestion de pointeur de pile pour une tâche qui est en cours de traitement lorsque le traite- ment est interrompu (141); et le déplacement du pointeur de pile vers la région de pile pour l'interruption, pour exécuter l'interruption (142). 3. Procédé selon la revendication 2, caractérisé en ce qu'il comprend en outre: le déplacement du pointeur de pile vers la valeur mémorisée dans la région de gestion de pointeur de pile lorsque l'inter- ruption est terminée (144); et l'appel d'une routine de changement de tâche établie dans le système d'exploitation, pour commencer une tâche prédefinie (145). 4. Procédé selon la revendication 3, caractérisé en ce que l'ap- pel comprend l'appel d'une nouvelle des tâches individuelles à effectuer (145). 5. Procédé selon la revendication 3, caractérisé en ce que l'ap- pel comprend l'appel de la tâche qui était en cours de traitement avant que la mémorisation ne soit effectuée (145). 6. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre la synchronisation de chacune des tâches individuel- les en employant soit une synchronisation avec le temps, soit une syn- chronisation avec la rotation d'un vilebrequin. 7. Procédé selon la revendication 1, caractérisé en ce qu'il est prévu pour un système d'exploitation multitâche. 8. Procédé selon la revendication 1, caractérisé en ce qu'il est prévu pour un système d'exploitation en temps réel. 9. Procédé selon la revendication 1, caractérisé en ce qu'il est destiné à commander le fonctionnement d'un moteur de véhicule, et les tâches individuelles consistent en une ou plusieurs des suivantes: com- mande de papillon d'accélérateur du moteur, commande d'injection de carburant et commande du débit d'air d'admission du moteur au ralenti. 10. Mémoire de système d'exploitation, caractérisée en ce qu'elle comprend: une première région de pile (313a) pour traiter des tâches individuelles et une interruption, et ayant une taille nécessaire pour traiter les tâches individuelles et en conformité avec un nombre des tâches individuelles; et une seconde région de pile (313b), indépendante de la première région de pile, pour traiter une interruption pour interrom- pre les tâches individuelles, I'interruption ayant une priorité supérieure à des priorités établies des tâches individuelles. 11. Mémoire de système d'exploitation selon la revendication , caractérisée en ce que la première région de pile (313a) comprend une multiplicité de sous-régions, chacune d'elles étant dimensionnée pour traiter l'une correspondante des tâches individuelles. 12. Mémoire de système d'exploitation selon la revendication , caractérisée en ce qu'elle comprend en outre une région de gestion de pointeur de pile (313c) pour mémoriser et gérer un pointeur de pile indiquant une adresse dans l'une des première et seconde régions, pour traiter les tâches individuelles et l'interruption. 13. Mémoire de système d'exploitation selon la revendication , caractérisée en ce que le système d'exploitation est un système d'ex- ploitation multitâche ou un système d'exploitation en temps réel. 14. Mémoire de système d'exploitation selon la revendication 12, caractérisée en ce que le système d'exploitation est destiné à com- mander le fonctionnement d'un moteur de véhicule, et les tâches individuelles consistent en une ou plusieurs des suivantes: commande de papillon d'accélérateur du moteur, commande d'injection de carburant et commande du débit d'air d'admission au ralenti. 15. Mémoire de système d'exploitation selon la revendication 10, caractérisée en ce qu'elle comprend en outre une unité de commande (30) pour exécuter une commande de tâche des tâches individuelles et de l'interruption, et un support d'enregistrement (313) en communication avec l'unité de commande, le support d'enregistrement (313) contenant un programme enregistré pour déclencher l'exécution de la commande de tâche par l'unité de commande. 16. Procédé pour commander un véhicule à moteur, caractérisé en ce qu'il comprend: I'établissement d'une première région (313a) pour traiter des tâches individuelles (SPA0, SPBO, SPC0) dans une mémoire accessible en écriture et en lecture, et avec une taille nécessaire pour traiter les taches individuelles et conformément à un nombre de tâches, d'une seconde région (313b) pour une interruption (SPI0) pour interrom- pre une multiplicité de tâches individuelles (SPA0, SPB0, SPC0) en ayant la priorité la plus élevée, et d'une région de gestion de pointeur de pile (313c) pour chacune des taches individuelles (SPA0, SPB0, SPC0) et pour l'interruption (SPIO); la mémorisation d'une valeur d'un pointeur de pile dans la région de gestion de pointeur de pile, pour une tâche qui est en cours de traitement lorsque la tâche est interrompue (141); le dépla- cement du pointeur de pile vers une région de pile de traitement d'inter- ruption pour effectuer le traitement d'interruption (142); et le déplace- ment en retour du pointeur de pile à la valeur mémorisée dans la région de gestion de pointeur de pile, lorsque le traitement d'interruption est terminé (144). 17. Procédé selon la revendication 16, caractérisé en ce qu'il comprend en outre l'appel d'une routine de changement de tâche établie dans le système d'exploitation, pour faire démarrer une tâche préétablie, après le déplacement en retour du pointeur vers la valeur mémorisée dans la région de gestion de pointeur de pile (145). 18. Procédé selon la revendication 17, caractérisé en ce que l'appel comprend l'appel d'une nouvelle des tâches individuelles à effec- tuer (145). 19. Procédé selon la revendication 17, caractérisé en ce que l'appel comprend l'appel de la tâche qui était traitée avant que la mémo- risation soit effectuée (145). 20. Procédé selon la revendication 16, caractérisé en ce qu'il comprend en outre la synchronisation de chacune des taches individuel- les en employant une synchronisation avec le temps ou une synchronisa- tion avec la rotation d'un vilebrequin.