FR 2499156 A1 19820806 FR 8102258 A 19810205 La présente invention concerne un procédé de commande d'un moteur a combustion interne. Plus particulibrement, elle concerne un procédé de commande du moteur à combustion interne ( qui sera simplement appelé dans la suite " moteur " ) d'un véhicule automobile à l'aide d'un micro-ordinateur. Ces dernières années, on a utilisé de plus en plus, pour comrnander efficacement des moteurs, des microordinateurs en vue d'améliorer la commande des fonctions intervenant dans la marche d'un moteur. Comme cela est bien connu dans la commande des vehicules automobiles, les fonctions nécessaires pour la commande des opérations du moteur varient en relation avec les types de véhicules automobiles ainsi qu'avec les objectifs qui doivent être atteints à l'aide de la commandée. Dans les circonstances actuelles, il est de plus en plus nécessaire de tenir compte des impératifs économiques et de pouvoir améliorer les possibilités de commande d'un moteur à l'aide d'un micro-ordinateur en vue de pouvoir utiliser un logiciel courant pour agir sur le système de commande du moteur indépendamment des types de véhicules automobiles, tout en permettant en outre de modifier, de changer ou même de corriger additionnellement les fonctions de commande en concordance avec des modifications du véhicule automobile et de l'objectif de commande. Dans les réalisations connues, la quantité d'air. d'aspiration ou d'admission introduit dans le moteur est détectée dans la plupart des cas en utilisant un capteur de débit d'air du type à fil chaud, du fait de son coût relativement peu élevé. A cet égard, il est à noter que l'écoulement d'air entrant ne reste pas constant mais est soumis à des variations pulsatoires. En outre, le signal disponible à la sortie d'un capteur d'écoulement d'air du type à fil chaud est en relation non linéaire avec la quantité réelle d'air d'admission, en addition au fait que le capteur d'écoulement d'air réagit rapidement ou présente une grande sensibilité à des variations de l'écoulement d'air d'admission.Il en résulte que le signal de sortie du capteur d'écoulement d'air du type à fil chaud ne représente pas obligatoirement, et avec une précision acceptable, la quantité d'air effectivement admis. I1 est en outre à noter que la conception du logiciel est dans l'ensemble très compliquée et qu'on a rencontré par le passé des difficultés pour modifier le logiciel en fonction des types de véhicules automobiles et/ou en relation avec des modifications dans des applications. En conséquence l'invention a pour but de fournir un procédé pour commander avec une grande précision le fonctionnement d'un moteur à combustion interne en réponse à la quantité d'air admis dans le moteur. Suivant un aspect de lSinvention, une détermina- tion chronométrique de l'échantillonnage d'une quantité d'air d'admission est effectuée en synchronisme avec des variations de l'écoulement d'air diadmission qui est fourni au moteur, de manière a mesurer la quantité ou débit instantané d'air d'admission dans le système chronométrique ainsi déterminé. Sur la base de plusieurs quantités instant tancées d'air djadmission ainsi obtenues, la quantité d'air d'admission à fournir réellement au moteur est déterminée arithmétiquement de manière à produire ainsi un signal de commande correspondant.Avec un el agencement, il est possible de commander avec une grande précision le fonctionnement du moteur. Dans un mode préféré de réalisation de l'invention, le logiciel ou programme utilisé pour la commande du fonc tionnement du moteur peut être divisé en un sous-programme de détermination de la quantité d'air d'admission, un sous programme de détermination arithmétique d'une quantité de carburant à fournir au moteur, et ainsi de suite, en concordance avec les caractéristiques fonctionnelles de la commande à exécuter, de sorte que les sous-programmes peuvent être enclenchés indépgndamment l'un de l'autre afin de faciliter des modifications et des changements du logiciel. D'autres avantages et caractéristiques de l'invention seront mis en évidence dans la suite de la description, donnée à titre d'exemple non limitatif, en référence aux dessins annexés dans lesquels la fig. 1 est une vue schématique en coupe partielle montrant un appareillage de commande de l'ensemble du moteur, la fig. 2 est un schéma du circuit correspondant au dispositif d'allumage représenté sur la fig. 1, la fig. 3 est un schéma à blocs mettant en évidence un système de recyclage de gaz d'échappement, la fig. 4 est un schéma synoptique général d'un système de commande de moteur, la fig. 5 est un schéma synoptique montrant un agencement de principe d'un système de programmation conforme à un exemple préféré d'application du procédé de commande de moteur selon l'invention, la fig. 6 est un diagramme donnant une table de blocs de commande de tâches qui sont mémorisés dans une mémoire RAM ( mémoire à accès sélectif ) commandée par un distributeur de tâches, la fig. 7 est un diagramme représentant une table d'adresses d'enclenchement pour un groupe de tâches qui sont déclenchées par diverses interruptions, les fig. 8 et 9 sont des organigrammes indiquant un processus de traitement effectué par le distributeur de tâches, la fig. 10 est un organigramme montrant des opérations de traitement effectuées par un programme de macro-traitement, la fig. 11 est un diagramme représentant un exemple d'une commande de priorité de tâches, la fig. 12 est un diagramme mettant en évidence des transitions d'états de tâches dans une commande de priorité de tâches, la fig. 13 est un schéma à blocs montrant un mode de réalisation du système de la fig. 5, la fig. 14 est un diagramme montrant une table de commande chronométrique qui est mémorisée dans la mémoire RAM, la fig. 15 est un organigramme montrant un processus de traitement par un programme de traitement d'interruption INTV, la fig. 16 est un diagramme de formes d'ondes correspondant à une situation dans laquelle les enclenchements et les arrêts de différentes tâches sont effectués indépendamment de la condition de marche d'un moteur, la fig. 17 est un organigramme d'un circuit générateur pour interruptions, la fig. 18 est un organigramme d'un programme INJ, la fig. 19 est un organigramme du programme IGNCAL, la fig. 20 est un organigramme montrant des détails d'un programme ISC, la fig. 21 est un organigramme montrant des détails d'un programme EGRCAL, la fig. 22 est un diagramme de formes d'ondes montrant un processus chronométrique d'échantillonnage en vue de la détection de la sortie du capteur d'écoulement d'air, la fig. 23. est un organigramme montrant un processus de traitement correspondant à un programme de traitement d'interruption, la fig. 24 est un diagramme montrant des emplacements de données de la mémoire RAM, la fig. 25 est un diagramme montrant des emplacements de données de la mémoire ROM ( mémoire fixe ), en relation avec les opérations mises en évidence dans l'organigramme de la fig. 23, la fig. 26 est un organigramme mettant en évidence le programme ADIN 2, et la fig. 27 est un schéma à blocs montrant un exemple de réalisation du capteur d'écoulement d'air. En considérant maintenant la fig. 1, on voit que de l'air d'aspiration ou d'admission est fourni à un cylindre 8 par l'intermédiaire d'un filtre à air 2, d'une chambre de carburateur 4 et d'un tuyau d'admission 6. Les gaz de combustion formés dans le cylindre 8 s'échappent dans l'atmosphère par l'intermédiiire d'un tuyau d'échappement 10. La chambre de carburateur 4 est pourvue d'un injecteur 12 servant à l'injection de carburant. Le jet de carburant produit par l'injecteur 12 est atomisé dans un passage d'air de la chambre de carburateur 4 et il est mélangé avec l'air d'admission pour former un mélange. Ce mélange passe dans le tuyau d'admission 6 et il est introdult dans une chambre de combustion du cylindre 8 lors de l'ouverture d'une soupape d'admission 20. Des papillons 14 et 16 sont placés à proximité de la sortie de l'injecteur 12. Le papillon 14 est agencé de façon à être accouplé mécaniquement avec une pédale d'accélérateur manoeuvrée par un conducteur. D'autre part, le papillon 16 est actionné à l'aide d'un diaphragme 18. Il est complètement fermé dans une période où la vitesse d'écoulement de l'air est faible. Quand la vitesse d'écoule- ment de l'air augmente, la dépression exercée sur le diaphragme 18 croît de sorte que le papillon 16 commence à s'ouvrir pour supprimer une augmentation de la résistance à l'admission. En amont des -papillons 14 et 16 de la chambre de carburateur 4, il est prévu un passage d'air 22. Un élément électrique chauffant 24, se présentant sous la forme d'un débitmètre d'air du type à fil chaud, est placé dans le passage d'air 22 afin de produire un signal électrique variable en fonction de la variation, analogue à une pulsation, de l'écoulement d'air, cela étant déterminé sur la base de la relation existant entre la vitesse d'écoulement de l'air et la quantité de chaleur transmise par l'élément chauffant. Puisque l'élément chauffant 24 est placé dans le passage d'air 22, il est protégé contre les gaz à haute température qui sont produits dans le cylindre 8, et il est également protégé contre les poussières existant dans l'air admis.La sortie du passage d'air 22 débouche au voisinage de la partie la plus rétrécie d'un tube Venturi et son entrée débouche sur le côté d'amont du tube Venturi. Le carburant placé dans un réservoir 30 est fourni à l'injecteur 12 par l'intermdiaire d'un régulateur de pression de carburant 38, d'une pompe 32, d'un clapet 34 et d'un filtre 36. Le carburant sous pression est transmis, à partir du régulateur de pression 38, à l'injecteur 12 par l'intermédiaire d'un tuyau 40. Le carburant est renvoyé du régulateur de pression 38 au réservoir 30 par l'intermédiaire d'un tuyau de retour 42 de manière que la différence entre la pression existant dans le tuyau d'admission 6, où le carburant est injecté à partir de l'injecteur 12, et la pression existant entre l'entrée et la sortie de l'injecteur 12, soit constante à tous moments. Le mélange aspiré à partir de la soupape dçadmi sion 20 est comprimé par un piston 50 et il est enflamé par une étincelle produite entre les électrodes d'une bougie d'allumage 52. L'énergie thermique résultant de la combustion du mélange est convertie en une énergie cinétique. Le cylindre 8 est refroidi avec de l'eau de refroidissement 54, dont la température est mesurée par un capteur de température d'eau 56, la valeur mesurée étant utilisée comme température de moteur. La bougie d'allumage 52 reçoit une haute tension en provenance dune bobine d'allumage 58. Un vilebrequin 51 est pourvu d'ur. capteur d'angle 53 qui fournit un signal d'angle de référence et un signal de position pour chaque angle de référence de vilebrequin par exemple de 180 degrés ) et chaque angle flxe ( par exemple de 0,5 degré ) au cours de la rotation du moteur. Les signaux de sortie du capteur d'angle de vilebrequin, du capteur de température d'eau 56 et le signal électrique de l'élément chauffant 24 sont appliqué à un circuit de commande 64 comportant un micro-ordinateur et ils sont utilisés et traités par le circuit de commande 64. L'injecteur 12 et la bobine d'allumage 58 sont commandés par des signaux de sortie fournis par le circuit de commande 64. Dans le moteur qui est commandé sur la base de la structure décrite ci-dessus, la chambre de carburateur 4 est pourvue d'un passage de dérivation 26 qui contourne le papillon 16 de la chambre de carburateur et qui communique avec le tuyau d'admission Go Le passage de dérivation 26 est pourvu d'une soupape de dérivation 62 dont le degré d'ouverture peut être commandé. La commande de la soupape de dérivation 62 est effectuée en réponse à un signal d'entrée qui est appliqué au moyen d'entraînement associé à partir du circuit de commande 64. La soupape de dérivation 62 est associée au passage de dérivation 626 contournant le papillon 16 et elle est commandée par un courant pulsatoire de manière à être ouverte ou fermée. Cette soupape de dérivation 62 agit de façon à faire varier la section droite du passage de dérivation 26 en fonction de son degré de soulèvement. Ce degré de soulèvement de la soupape est commandé par sollicitation d'un système d'actionnement à l'aide d'un signal de sortie fourni par le circuit de commande 64. Ce circuit de commande 64 engendre un signal de période d'ouverture-etfermeture de manière à commander le système d'actionnement et, sur la base de ce signal de période d'ouverture-etfermeture, le système d'actionnement applique à la partie d'actionnement de la soupape de dérivation 62 le signal de commande servant à régler son degré de soulèvement. En référence à la fig. 2, un courant pulsatoire est appliqué à un transistor de puissance 72 par l'intermédiaire d'un amplificateur 68, le transistor 72 étant rendu conducteur par ce courant. I1 passe alors un courant dans l'enroulement primaire de la bobine d'allumage 58 à partir d'une batterie 66. Le transistor 72 est bloqué lors de la disparition de ce courant pulsatoire, ce qui engendre une haute tension dans l'enroulement secondaire de la bobine d'allumage 58. La haute tension est distribuée par l'intermédiaire d'un distributeur 70 aux bougies d'allumage 52 places dans les cylindres respectifs du moteur, en synchronisme avec la rotation de ce dernier. La fig. 3 représente un système de recyclage de gaz d'échappement ( désigné dans la suite par " EGR " Une pression sous-atmosphérique fixe produite par une source de vide 80 est appliquée à un distributeur de commande 86 par l'intermédiaire d'une valve de commande de pression 84. La valve de commande de pression 84 commande la condition d'application de la pression sous-atmosphérique au distributeur de commande 86 en établissant le degré de décharge de la pression sous-atmosphérique de la source de vide dans l'atmosphère en concordance avec le coefficient d'utilisation des impulsions récurrentes qui sont appliquées à la base d'un transistor 90. En conséquence, la dépression à appliquer au distributeur de commande 86 est déterminée par le coefficient d'utilisation du transistor 90. La quantité de gaz d'échappement à recycler du tuyau d'échappement 10 vers le tuyau d'admission 6 est définie par la dépression commandée de la valve de commande de pression 84. En référence à la fig. 4, le système de commande se compose d'une unité centrale de traitement CPU 104, d'une mémoire fixe 102 ( désignée dans la suite par "ROM" )-, d'une mémoire à accès sélectif 106 ( désignée dans la suite par RAM " ) et d-'un circuit d'entrée/sortie 108. L'unité CPU 104 traite des données d'entrée provenant du circuit d'entrée / sortie 108 et elle transmet le résultat des opérations à nouveau au circuit d'entrée/sortie 108 en relation avec différents programmes contenus dans la mémoire ROM 102. Une mémorisation intermédiaire nécessaire pour ces opérations fait intervenir la mémoire RAM 106.Les échanges de diverses données entre l'unité CPU 104, la mémoire ROM 102, la mémoire RAM 106 et le circuit d'entrée/sortie 108 sont effectués par une ligne à conducteurs omnibus 110 qui se compose d'un bus de données, d'un bus de commande et d'un bus d'adresse. Le circuit d'entrée/sortie 108 comporte des moyens d'entrée pour un premier convertisseur analogique-numérique ( désigné dans la suite par " ADC1 "), un second convertisseur analogique-numérique ( désigné dans la suite par " ADC2 " ),'un circuit de traitement de signaux d'angle 126 et un circuit d'entrée/sortie distinct ( désigné dans la suite par " DIO " ) pour recevoir et fournir une information de 1 bit. Dans le convertisseur ADC1, des signaux de sortie provenant d'un capteur de détection de tension de batterie 132 ( désigné dans la suite par " VBS " ), d'un capteur de température d'eau de refroidissement 56 ( désigné dans la suite par " TWS 5, d'un capteur de température d'air atmosphérique 112 ( désigné dans la suite par " TAS " > , d'un générateur de tension réglée 114 ( désigné dans la suite par " VRS " ), d'un détecteur d'angle de papillon 116 ( désigné dans la suite par " OTHS" ) et d'un détecteur118 ( désigné dans la suite par " S "), sont appliqués à un multiplexeur 120, et l'un d'eux est sélectionné par le multiplexeur MPX 120 et est appliqué à un convertisseur analogique-numérique 122 ( désigné dans la suite par "ADC"). Une valeur numérique, qui constitue un signal de sortie du convertisseur ADC 122, est mémorisée dans un registre 124 ( désigné dans la suite par " REG " Un signal de sortie du capteur de débit 24 ( désigné dans la suite par " AFS " ) est appliqué à ADC2 et est converti, par l'intermédiaire d'un convertisseur analogiquenumérique 129 ( désigné dans la suite par " ADC " ) en une valeur numérique qui est placée dans un registre 130 ( désigné dans la suite par " REG"). Un capteur d'angle 146 ( désigné dans la suite par " ANGS " > fournit un signal représentant un angle de référence de vilebrequin, par exemple un angle de vilebrequin de 180 degrés, ( désigné dans la suite par " REF et un signal représentant un petit angle, par exemple un angle de vilebrequin de 1 degré ( désigné dans la suite par POS "). Les signaux sont appliqués à un circuit de traitement de signaux angulaires 126 en vue de leur conformation correcte. DIO reçoit des signaux de sortie d'un contacteur de ralenti 148 ( désigné dans la suite par " IDLE-SW " un contacteur de prise directe 150 ( désigné dans la suite par " TOP-SW " ) et un contacteur de démarrage 152 ( désigné dans la suite par " START- SW" ). On va maintenant décrire les circuits de sortie d'impulsions et les systèmes commandés qui sont basés sur les résultats d'opérations effectuées dans l'unité centrale de traitement CPU. Un circuit de commande d'injecteur ( désigné par " INJC " ) est un circuit qui convertit la valeur numérique du résultat d'opération en une impulsion sortante. En conséquence, une impulsion qui a une largeur correspondant à la quantité de carburant à injecter est établie par INJC 134 et elle est appliquée à l'injecteur 12 par l'intermédiaire d'une porte ET 136. Un circuit générateur d'impulsions d'allumage 138 ( désigné dans la suite par "IGNC" ) comporte un registre ( désigné par " ADV " ) dans lequel est établi le processus chronométrique d'allumage, ainsi qu'un registre ( désigné par " DWL " ) dans lequel est établi l'instant d'excitation de la bobine d'allumage. Ces données sont fournies par l'unité CPU.Des impulsions sont engendrées sur la base des données émises et elles sont appliquées, par l'intermé- diaire d'une porte ET 140, à l'amplificateur 68, comme cela a été décrit en détail en réérence à la fig. 2 Le degré d'ouverture de la soupape de dérivation 62 est commandé par des impulsions qui sont appliquées au mécanisme d'actionnement de soupape à partir d'un circuit de commande ( désigné dans la suite par " ISCC" ) 142 par l'intermédiaire d'une porte ET 144. Le circuit ISCC 142 comporte un registre ISCD qui établit une largeur dçimpul- sion ainsi qu'un registre ISCP qui établit une période d'impulsion récurrente. Un circuit 154 de génération d'impulsions de commande de quantité GR f désigné dans la suite par"EGRC S'), servant à commander le transistor 90 qui commande à son tour le distributeur de commande EGR 86 de la rig. 3, comporte un registre EORD dans lequel une valeur représentant le coefficient d'utilisation des impulsions est mémorisée et un registre EGRP dans lequel une valeur représentant la période de récurrence des impulsions est mémorisée. Les impulsions de sortie du registre EGRC sont appliquées à la base du transistor 90 par l'IntermédIaire d'une porte ET 156. Des signaux d'entrée/sortie correspondant chacun à 1 bit,sont commandés par le circuit DIO. Comme signaux d'entrée, il est prévu le signal IDLE-SW, le signal TOP-SW et le signal START-SW. Comme signal de sortie, il est prévu un signal de sortie pulsatoire pour actionner la pompe à carburant. Le circuit DIO est pourvu d'un registre DDR servant à déterminer quelles bornes doivent être utilisées comme bornes d'entrée ou comme bornes de sortie, ainsi qu'un registre DOUT pour verrouiller les données de sortie. I1 est prévu un registre 160 ( désigné dans la suite par " MOD " ) qui contient des instructions pour différents états à l'intérieur du circuit d'entrée/sortie 108. Par exemple, par utilisation d'une instruction contenue dans ce registre, toutes les portes ET 136, 140, 144 et 156 sont ouvertes ou fermées. En introduisant des instructions dans le registre MOD 160 de cette manière, on peut commander les amorçages et les arrêts des signaux de sortie des circuits INJC, IGNG ou ISCC. En référence'à la fig. 5, un programme de traitement initial 202, un programme de traitement d'interruption 206, un programme de macro-traitement 228 et un distributeur de tâches 208 constituent des programmes d'exécution permettant la commande d'un groupe de tâches. Le programme de traitement initial 202 est un programme permettant l'exécution d'opérations de pré-traitement en vue de l'actionnement d'un micro-ordinateur. Par exemple, il efface le contenu mémorisé dans la mémoire RAM 106 et il définit les valeurs initiales des registres du registre d'interface d'entrée/sortie 108.En outre il exécute les,traitements nécessaires pour le chargement d'une information d'entrée en vue de l'exécution des opérations de pré-traitement nécessaires pour la commande du moteur, par exemple les données concernant la température de l'eau de refroidissement Tw ou bien la tension de batterie. Le programme de traitement d'interruption 206 accepte différentes interruptions, il analyse les facteurs d'interruption et il transmet au distributeur de tâches 208 une demande de démarrage pour amorcer une tâche nécessaire parmi le groupe de tâches 210 à 226.Comme cela sera précisé dans la suite, les facteurs d'interruption comprennent une interruption de conversion AD ( ADC ) qui engendre l'information d'entrée concernant la tension d'alimentation, ou bien la température d'eau de refroidissement, après terminaison des conversion AD, une interruption initiale (INTL) qui est établie en synchronisme avec la rotation du moteur, une interruption d'intervalle (INTV) qui est engendrée à intervalles de temps constants et prédéterminés, par exemple de 10 ms, une interruption pour calage de moteurs ( ENST ) qui est engendrée lors de la détection d'un arrêt du moteur, et ainsi de suite. On affecte aux tâches respectives du groupe de tâches 210 à 226 des numéros représentant des niveaux de priorité, à savoir les niveaux "O" à "2". Ainsi les tâches 0 à 2 sont affectées au niveau "O", les tâches 3 à 5 sont affectées au niveau "1" et les tâches 6 à 8 sont affectées au niveau "2". Le distributeur de tâches 208 reçoit les demandes d'enclenchement des différentes interruptions et il affecte les temps d'occupation de l'unité centrale de traitement CPU sur la base des niveaux de priorité qui sont donnés aux différentes tâches correspondant à ces demandes d'enclenchement. La commande de priorité des tâches par le distributeur 208 est faite conformément à la méthode suivante : (a) Le transfert du droit d'opération à une tâche d'un degré supérieur de priorité par interruption d'une tâche d'un degré inférieur de priorité est effectué seulement en tenant compte des niveaux de tâches. I1 est à noter que le niveau "O" correspond au degré de priorité le plus élevé. (b) Dans le cas où, à l'intérieur d'un niveau identique, il' existe une tâche qui' est en train dtêtre exécutée ou qui a été interrompue, la tâche particulière possède le degré de priorité le plus élevé et toute autre tâche ne pourra pas être exécutée tant que la tâche particulière précitée n'est pas terminée. (c) Dans le cas où, à l'intérieur d'un niveau identi- que, il existe plusieurs demandes d'enclenchement de plusieurs tâches, une tâche de numéro plus petit correspond à un degré de priorité plus élevé. Les contenus de traitement du distributeur de tâches 208 seront décrits dans la suite ; le système est conçu pour assurer la commande de priorité décrite ci-dessus en prévoyant des éléments de minutage dans la mémoire RAM tâche par tâche tandis que des blocs de commande servant à la distribution des tâches sont prévus dans la mémoire RAM niveau par niveau. Lorsque l'exécution de chaque tâche est terminée, la fin de cette tâche particulière est signalée au distributeur de tâches 208 par le programme de macrotraitement 228. On va maintenant décrire les contenus de traitement du distributeur de tâches 208, en référence aux figures 6 à 12. La fig. 6 met en évidence les blocs de commande de tâches qui sont prévus dans la mémoire RAM, contrôlée par le distributeur de tâches 208. Les blocs de commande de tâches interviennent en nombre correspondant au nombre de niveaux de tâches, c'est à dire au nombre de trois en correspondance aux niveaux "'0" à "2". Huit bits sont affectés à chaque bloc de commande. Parmi ces huit bits, les bits 0 à 2 (Qg - Q2) sont des bits d'enclenchement qui indiquent une demande d'enclenchement tandis que le bit 7 (R) est un bit de déroulement qui indique5ne tâche se trouvant au même niveau est en train de se dérouler ou a été interrompue. Les bits d'enclenchement QO à Q2 sont répartis dans une séquence où le degré de priorité d'exécution est plus élevé dans le niveau de tâche correspondant. Par exemple, le bit d'enclenchement pour la tâche 4 de la fig. 5 correspond à QO pour le niveau de tâche "1". Dans le cas où les demandes d'enclenchement des tâches ont été faites, des drapeaux ou indicateurs sont établis dans l'un des bits d'enclenchement. D'autre part, le distributeur de tâches 208 extrait successivement les demandes d'enclenchement émises à partir du bit d'enclenchement correspondant à la tâche de niveau supérieur, il remet à zéro les drapeaux correspondant aux demandes de démarrage mises et il établit également des drapeaux "1" dans les bits d'exécution, et en outre il exécute les opérations nécessaires pour l'enclenchement de la tâche particulière. En référence à la fig. 7, qui représente une table d'adresses d'enclenchement qui est placée dans la mémoire RAM 106, commandée par le distributeur de tâches 208, des adresses d'enclenchement SAO à SA8 correspondent aux tâches respectives 0 à 8 du groupe de tâches 210 et 226 représenté sur la fig. 5. Seize bits sont affectés d chaque information d'adresse d'enclenchement Comme cela sera précisé dans la suite, ces informations d'adresses d'enclenchement sont utilisées pour enclencher les taches pour lesquelles les demandes d'enclenchement ont été faites par le distributeur de tâches 208. En référence aux figures 8 et 9, quand le traitement opéré par le distributeur de tâches a commence dans une étape 300, la décision d'effectuer ou non l'interruption d'exécution d'une tâche appartenant au niveau Q est prise dans une étape 302. Plus spécifiquement, 1 a mise à "1" du bit de déroulement ou d'exécution signifie un état dans lequel l'indication de fin de tâche n'a pas encore été transmise au distributeur de tâches 208 par le programme de macro-traitement et dans lequel la tâche en cours d'exécution a été interrompue du fait de ltapparitzon d'une interruption d'un niveau de priorité supérieur En conséquence, si le drapeau "1" est introduit dans le bit de déroulement eu d'exécution, le programme saute à une étape 314 en vue de résnclencher ia tâche interrompue Au contraire, dans le cas où le drapeau "1" n'est pas introduit dans le bit d'exécution ou de déroulement, c'est à dire lorsque le drapeau d'indication de déroulement est remis à zéro, le programme passe à une étape 304 afin de décider s'il existe ou non une tâche de mise en file d'attente au niveau t .Cela signifie que les bits d'enclenchement du niveau t sont extraits conformément a la séquence des degrés de priorité d'exécution des tâches correspondantes, notamment conformément à la séquence OQ, Q1 et Q2 Dans le cas où le drapeau "1" n'est pas introduit dans les bits d'enclenchement appartenant au niveau de tâche t , le programme passe à une étape 306 afin de renouveler le niveau de tâche. Ainsi le niveau de tâche 2 est augmenté de + 1 pour prendre la valeur (Q + 1- ) Lorsque le renouvellement du niveau de tâche a été effectué dans l'étape 306, le programme passe à une étape 303 de manière à décider si tous les niveaux de tâches ont été ou non vérifiés.Dans le cas où tous les niveaux de tâches n'ont pas eté vérifiés, c'est à dire si la relation l = 2 n'est pas satisfaite, le programme revient à l'état 302 et les opérations de traitement sont exécutées de la même façon par le processus décrit ci-dessus. Dans le cas où tous les niveaux de tâches ont été vérifiés dans l'étape 308, le programme passe à une étape 310 de manière à déclencher l'interruption. Le déclenchement d'interruption est effectué dans cette étape du fait que l'interruption a été empêchée pendant la période de traitement correspondant aux étapes 302 à 308. Dans l'étape suivante 312, l'interruption suivante est placée dans la file d'attente. Maintenant, dans le cas où une tâche initiale en file d'attente se trouve au niveau de tâche t dans l'étape 304, c'est à dire dans le cas où le drapeau "1" est établi dans le bit de départ appartenant au niveau de tâche le programme passe à une étape 400. A l'aide d'une série d'étapes 400 et 402, celui des bits de départ du niveau de tâche t qui reçoit le drapeau "9" est extrait dans la séquence dans laquelle les degrés correspondants de priorité d'exécution sont les plus élevés, à savoir dans la séquence Qg, Q1 et Q2. Quand le bit de départ particulier a été détecté, le programme passe à une étape 404.Dans l'étape 404, le bit de départ pour lequel le drapeau a été établi est remis à zéro et le drapeau "1" est établi dans le bit d'exécution ( appelé dans la suite " bit R " ) du niveau de tâche particulier t . En outre, dans une étape 406, le numéro de la tâche de départ est déduit et, dans une étape 408, l'information d'adresse de départ de la tâche de départ correspondante est extrait de la table d'adresses de départ prévue dans la mémoire RAM, comme indiqué sur la fig. 7. Ensuite, dans une étape 410, une décision est prise pour l'exécution ou non de la tâche de départ correspondante. Si l'information d'adresse de départ extraite correspond à une valeur spécifiée, par exemple 0 ( zéro ), la décision est prise que la tâche correspondante n'a pas besoin d'être exécutée. Cette étape de décision est nécessaire pour ne remplir que les fonctions de tâches spécifiées qui sont sélectionnées en fonction des catégories de voitures parmi les groupes de tâches intervenant dans l'exécution de la commande de moteur. Dans le cas où, dans l'étape 410, la décision a été prise que l'exécution de la tâche correspondante doit être arrêtée, le programme passe à une étape 414 de façon à remettre à zéro le bit R du niveau de tâche particulier t .Ensuite le programme revient à l'étape 302 et une décision est prise pour l'interruption ou non du niveau de tâche t . Puisqu'il peut exister un cas où des drapeaux sont établis dans plusieurs bits de départ à l'intérieur du même niveau de tâche e , le programme passe à l'étape 302 après la remise à zéro du bit R dans l'étape 414. Au contraire dans le cas où, dans l'étape .410, l'exécution de la tâche particulière ne doit pas être arrêtée mais doit se poursuivre, le programme passe à une étape 412 et il arrive à la tâche particulière, à la suite de quoi la tâche est exécutée. En référence à la fig. 10, le programme de macrotraitement 228 se compose des étapes 562 et 564 pour la recherche de la tâche finale. Dans les étapes 562 et 564, les niveaux de tâches sont extraits de "O" et le niveau de tâche à terminer est détecté. Ensuite, le programme passe à une étape 568, où le drapeau d'exécution (RUN) du septième bit du bloc de commande de tâche de la tâche à terminer est remis à zéro. En conséquence, l'exécution de la tâche est terminée complètement-. Le programme revient au distributeur de tâches 208 et la tâche suivante à exécuter est définie par décision. On va maintenant décrire en référence à la fig. il les processus d'exécution et d'interruption de tâches dans le cas où la commande de priorité de tâche est effectuée par le distributeur de tâches 208. Sur cette figure, m interve nant dans la demande de départ N définit le niveau de mn tâche et n définit le degré de. priorité dans le niveau de tâche m. On va supposer que l'unité CPU a effectué un programme d'exécution OS. Ensuite, dans le cas où une demande de départ N21 s'est produite pendant le déroulement du programme d'exécution OS, l'exécution d'une tâche,corres- pondant à la demande de départ N21, c'est à dire la tâche n" 6, est commencée à un instant T1.Dans le cas où, pendant l'exécution de la tâche n" 6, une demande de départ N01 pour une tâche de degré de priorité d'exécution supérieur a été faite à un instant T2, on passe au programme d'exécution OS et les opérations de traitement prédéterminé qui ont déjà été expliquées sont exécutées, à la suite de quoi l'exécution d'une tâche correspondant à la demande de départ N01, c'est à dire la tâche nO 0, est commencée à l'instant T3. Dans le cas où, lors de l'exécution de la tâche nO O, une demande de départ N11 a en outre été introduite à un instant T4, on passe à nouveau au programme d'exécution OS et les opérations de traitement prédéterminé sont exécutées, à la suite de quoi l'exécution de la tâche nO 0, qui a été interrompue, est reprise à un instant T5. Lorsque l'exécution de la tâche n" O est terminée à un instant T6, on repasse au programme d'exécution OS. A ce moment, la fin d'exécution de la tâche nO O est signalée au distributeur de tâches 208 par le programme de macrotraitement 228. A un instant T7, l'exécution de la tâche nO 3 correspondant à une demande de départ N11, qui a été mise en file d'attente, est reprise à nouveau.Dans le cas où, pendant l'exécution de la tâche nO 3, une demande de départ N12 présentant un degré de priorité inférieur dans le même niveau de tâche 1 a été introduite à un instant T8, l'exécution de la tâche nO 3 est encore une fois interrompue On passe alors au programme d'exécution OS et les opérations de traitement prédéterminé sont effectuées, à la suite de quoi l'exécution de la tâche n03 est reprise à un instant Tg. Quand l'exécution de la tâche nO 3 s'est terminee à un instant T10, l'unité CPU repasse au programme d'exécution OS et la fin d'exécution de la tâche nO 3 est signalée au distributeur de tâches 208 par le programme de macrotraitement 228.Ensuite, l'exécution de la tâche n 4 correspondant à une demande de. départ N12 d'un niveau de priorité inférieur est commencée à un instant Tell. Lorsque l'exécution de la tâche n 4 s'est terminée à un instant T12, l'unité CPU passe au programme d'exécution OS pour exécuter les opérations de traitement prédéterminé et ensuite, l'exécution de la tâche n 6, qui a été interrompue jusqutà ce moment en correspondance à la demande de départ N21, est reprise à un instant N13 Ainsi la commande de priorité des tâches est effectuée de la manière décrite ci-dessus. On a mis en évidence sur la fig. 12 les états de transition intervenant dans la commande de priorité des tâches. Un état " Initialisation " correspond à l'état de mise en file d'attente au départ, dans @aquelle une demande de départ ou d'enclenchement nia pas encore été émise pour une tâche. Quand une demande d'enclenchement est ensuite émise, un drapeau est mis à I dans le bit de départ du bloc de commande de tâche de façon a indiquer que le départ ou enclenchement est nécessaire. Les périodes de temps où l'état " Initialisation " est transposé en un état " File d'attente " sont déterminées en fonction des niveaux des tâches respectives.La décision concernant la séquence est en outre prise dans l'état " File d'attente et elle dépend du degré de priorité. La tache particulière passe dans l'état " Exécution " après que le drapeau du bit de départ du bloc de commande de tâche a ée remis à zéro par le distrib'tteur de tâches 208 dans le programme d'exé- cution OS et après que le drapeau a été établi dans le bit R ( septIème bit ). En conséquence l'exécution de la tâche est commencée. Quand l'exécution est terminée, le drapeau du bit R du-bloc de commande de tâche est effacé et la fin d'exécution de tâche est signalée. L'écat " Exécution " se termine alors et l'état " Initialisation " est à nouveau établi, l'émission de la nouvelle demande de départ ou d'enclenchement étant attendue.Cependant, quand une interruption IRQ s'est produite lors de l'exécution de la tâche, cette tâche particulière doit être interrompue. En conséquence, l'unité CPU est contournée et l'exécution est interrompue. Cet état est désigné sur la fig. 12 par " Conditionnement . Quand un état dans lequel la tache est exécutée a à nouveau ultérieurement commencé, la partie qui a été contournée dans l'unité CPU est rétablie et l'exécution est reprise, c'est à dire que l'état " Conditionnement " revient à nouveau à l'état " Exécution ". De cette manière, chaque programme de niveau répète les quatre états indiqués sur la fig. 12. La fig. 12 met en évidence des processus typiques mais il est possible qu'un drapeau soit mis à "1" dans le bit de départ du bloc de commande de tâche dans l'état " Conditionnement ".Cela correspond par exemple à un cas où une demande de départ est arrivée au moment où une tâche particulière est en train d'être exécutée. A ce moment, une priorité est affectée au drapeau du bit R et -la tâche qui a été interrompue est d'abord terminée. En conséquence le drapeau du bit R disparaît et l'état " File d'attente " est établi par le drapeau du bit oe départ sans passage par l'état " Initialisation ". En référence à la fig. 13, le programme d'exécution OS se compose du programme de traitement initial 202, du programme de traitement d'interruption 206, du distributeur de tâches 208 et du programme de macro-traitement 228. Le programme de traitement d'interruption 206 comprend différents programmes de traitement d'interruption. Un programme d'interruption initiale ( désigné dans la suite par " traitement d'interruption INTL " ) 602 est effectué de manière que des interruptions initiales soient produites à la moitié du nombre des cylindres du moteur ( c'est à dire deux pour quatre cylindres ) à chaque révolution du moteur à l'aide de signaux d'interruption initiale qui sont engendrés en synchronisme avec la rotation du moteur ). Sous l'effet de l'interruption initiale, l'instant d'injection du carburant, calculé dans une tâche EGI 612, est introduit dans le registre EGI du circuit d'interface d'entrée/sortie 108. Un traitement d'interruption de conversion AD 604 fait intervenir deux processus, qui sont respectivement l'interrup- tion du convertisseur analogique-numérique AD 1 ( désigné dans la suite par l'abréviation' " ADC1" ) et l'interruption du convertisseur analogique-numérique AD 2 ( désigné domz la suite par l'abréviation " ADC2 " )., Le convertisseur AD 1 a une précision de 8 bits et il est utilisé pour les entrées représentant la tension d'alimentation, la température d'eau de refroidissement, la température d'admission et le réglage de service. I1 commence la conversion en même temps que le point d'entrée au multiplexeur 120 est défini et il engendre l'interruption ADC1 après terminaison de la conversion. Cette interruption est utilisée seulement avant le démarrage du moteur. D'autre part, le convertisseur AD 128 est utilisé pour l'entrée du débit d'air et il engendre l'interruption AD2 après terminaison de la conversion. Cette interruption est également utilisée seulement avant le démarrage du moteur. Dans un programme de traitement d'interruption d'intervalle ( désigné dans la suite par l'expression programme de traitement d'interruption INTV " ) 60G, un signal d'interruption INTV est engendré pour chaque impulsion mémorisée dans le registre INTV, par exemple à des intervalles de 10 ms, et il est utilisé comme signal fondamental pour le contrôle du temps d'une tâche à commencer dans une période fixe. Avec ce signal d'interruption, le minutage relatif est remis à jour et une tâche ayant atteint la période prescrite, est commencée. En outre, dans le programme de traitement d'interruption pour calage de moteur ( qui sera appelé dans la suite " programme de traitement d'interruption ENST " ) 608, l'état d'arrêt du moteur est détecté.Lors de la détection du signal INTL, un comptage est amorcé. Quand le signal d'interruption INTL n'a pas été détecté ensuite au bout d'un temps prédéterminé, par exemple de 1 seconde, un arrêt du moteur est détecté par l'intermédiaire du logiciel associé. Lorsque la décision concernant le-calage du moteur est prise, l'alimentation en courant de la bobine d'allumage et le fonctionnement de la pompe à carburant sont arrêtés. Après ces opérations de conditionnement, la commande est mise en attente jusqu'à ce que le contacteur de démarrage 152 ait été fermé. On a mis en évidence dans le tableau 1 les principes des opérations de conditionnement à effectuer en fonction des facteurs d'interruption mentionnés ci-dessus. Tableau 1 - Oprations de conditionnement pour facteur d' interruption Désignation du facteur Opérations de conditionnement d'interrup tion (1) Le temps d'injection de carburant est INTL introduit dans le registre EGI. (2) Pour la synchronisation du démarrage, on effectue ltéchantillonnage du signal de sortie du capteur d'écoulement d'air. ADC1 La tâche ADIN1 est amorcée ADC2 La tâche ADIN2 est amorcée Les périodes de départ des tâches ADIN2, INTV EGI, MONIT, ADINI, AFSIA et ISC à commencer à des périodes fixes sont vérifiées et les tâches ayant atteint les périodes prescri tes sont commencées. QA Cette interruption définit le minutage pour l'échantillonnage du signal de sortie du capteur d'écoulement d'air. La sortie de AD2 est extraite. En ce qui concerne le programme de traitement initial 202 et le programme de macro-traitement 228, les opérations de conditionnement définies ci-dessus sont exécutées. Le groupe des tâches qui sont amorcées par les différentes interruptions va être défini dans la suite. Les tâches appartenant au niveau O sont respectivemen-t une tâche d'introduction dans AD2 ( désignée dans la suite par " tâche ADIN2 " ), une tâche de commande d'injection de carburant ( désignée dans la suite par ' tâche EDI " ) et une tâche de contrôle de démarrage ( désignéc dans la suite par " tâche MONIT " ).Les tâches appartenant au niveau 1 sont respectivement une tâche d'introduction dans AD1 ( désignée dans la suite par " tâche DIN1 ") et une tâche de traitement de coefficient de temps ( désignée dans la suite par " tâche AFSIA ,, ) En outre le tâches appartenant au niveau 2 sont respectivement une tâche de commande de rotation au ralenti ( désignée dans la suite par " tâche ISC " ), une tâche de calcul de correction ( désignée' dans la suite par " tâche HOSEI " ) et une tâche de pré-traitement due démarrage ( désignée dans la suite par t, tâche ISTRT " ). On a indiqué dans le Tableau 2 l'affectation des différents niveaux de tâches ainsi que les fonctions des tâches. Tableau 2 - Affectation des niveaux de tâches et fonctions des tâches. Niveau Désignation Tâche Période de de program- N Fonctions démarrage me 0 Commande d'interruption de rotation de moteur OS au moins 5 ms 1 Autre opération de traitement OS Entrée convertisseur AD2, La tâche est commenétalonnage, filtrage, commande cée pour l'arrivée ADIN2 0 d'accélération de la demande INITIAL IRQ afin d'extraire la sortie de ACD2 en synchronisme avec Q4 IRQ 0 Entrée, étalonnage et filtrage de la Activation toutes vitesse de révolution du moteur les 10 ms. Alimentation carburant coupée EGI 1 Commande de temps d'injection de Activation toutes carburant les 20 ms Réglage CO MONIT 3 Contrôle du contacteur de démarrage Activation tates ( Arrêt) les 40 ms Commande du temps d'injection de carburant au démarrage Démarrage et arrêt de la minuterie relative. Suite Tableau 2 ( suite ) Niveau Désignation Tâche Période de de programme N Fonctions démarrage ADIN1 4 Entrée convertisseur AD1, étalonnage, Activation toutes filtrage les 50 ms 1 AFSIA 6 Commande de coefficient de temps Activation toutes après interdémarrage, aprés- les 120 ms ralenti, après-accélération ISC 8 Commande du nombre de tours au Activation toutes ralenti les 200 ms 2 HOSEI 9 Calcul de coefficient de Activation toutes correction les 300 ms ISTRT 11 Calcul de valeur initiale de EGI Activation toutes Contrôle du contacteur de démarrage les 30 ms ( enclenchement ) Démarrage et arrêt de la minuterie relative Pompe à carburant, démarrage entrée/ sortie LSI Comme le montre le Tableau 2, les périodes de démarrage des tâches à amorcer par les différentes interruptions sont déterminées à l'avance. Cette information est mémorisée dans la mémoire ROM 102. On va maintenant décrire le traitement d'une interruption INTV en référence aux figures 14 à 16. La figure 14 donne une table de minutage relatif qui est prévue dans la mémoire RAM 106. Cette table de minutage relatif est pourvue de blocs de minutage dont le nombre est égal à celui des différentes périodes de démarrage à amorcer par les différentes interruptions. Les " blocs de minutage désignent des emplacements de mémoire dans lesquels -sont emmagasinées des informations temporelles concernant les périodes de démarrage des tâches mémorisées dans la mémoire ROM 104. Le symbole TMB désigne la première adresse de la table de minutage relatif intervenant dans la mémoire RAM 106.L'information temporelle concernant la période de démarrage ( dans le cas où l'interruption INTV est effectuée à intervalles périodiques de 10 ms par exemple) est transmise et emmagasinée dans chaque bloc de minutage de la table de minutage relatif, en provenance de la mémoire ROM 104, lors du démarrage du moteur. La fi9. 15 est un organigramme du programme de traitement d'interruption INTV 606. Quand le programme a été commencé dans une étape 626, la table de minutage relatif qui est prévue dans la mémoire RAM 106 est initialisée dans une étape 628, c-'est à dire que le contenu i du registre d'indexage est ramené à 0 ( zéro ) et que le temps restant Ti qui est mémorisé dans le bloc de minutage ayant l'adresse TMB + O dans la table de minutage relatif est vérifié. On obtient T. = To dans ce cas. Ensuite, dans une étape 630, une décision est prise pour définir si le minutage relatif examiné dans l'étape 628 a été ou non arrêté.Plus spécifiquement, dans le cas où letemps restant Ti mémorisé dans la table de minutage relatif est T. = 0, une décision est prise en ce qui concerne l'arrêt du minutage relatif ; en outre une décision est prise pour définir l'arrêt de la tâche particulière à amorcer par le minutage relatif et le programme passe alor d une étape 640 de façon à azurer la mise à jour de la table de minutage relatif. Au contraire, dans le cas où le temps restant T. indiqué dans la table de minutage relatif est Ti f O, le programme passe à une étape 632, où le temps restant du bloc de minutage est remis à jour. Le temps restant est réduit de (-1) à partir de Ti. Ensuite, dans une étape 634, une décision est prise pour définir si le minutage relatif intervenant dans la table de minutage a atteint ou non la période de démarrage. Plus spécnriquement, dans le cas où le temps restant T. est défini T. = O, on décide que la I i période de démarrage a été atteinte et le programme passe à une étape 636 dans ce cas.D'autre part, dans le cas où on a décidé que le minutage relatif n'a pas atteint la période de démarrage, le programme passe à l'étape 640 de façon à remettre à jour la table de minutage relatif. Dans le cas où la table de minutage relatif a atteint la période de démarrage, le temps restant T. de la table de minutage relatif est initiais dans l'étape 636, c'est à dire que l'information temporelle concernant la période de départ de la tâche particulière est transmise de la mémoire ROM 102 3 la mémoire RAM 106.Après que le temps restant Ti de la table de minutage relatif a été initialisé dans l'étape 5369 la demande de départ et d'enclenchement de la tâche correspontant à la table de minutage relatif est faite dans une étape 638. Ensuite, dans l'étape 640, la table de minutage relatif est remise à jour,-c'est à dire que le contenu du registre d'indexage est augmenté ( + 1 ). En outre, dans l'étape 642, une décision est prise pour définir si la totalité ou non des tables de minutage relatif ont été vérifiées. Puisque les (N + 1 ) tables de minutage relatif sont prévues dans le mode de réalisation représenté sur la fig. 14, la vérification de toutes les tables de minutage relatif est considérée comme étant terminée dans le cas où le contenu i du registre d'indexage est i = N + 1.Dans ce cas, le-programme de traitement d'interruption INTV 606 se termine par une étape 644. Au contraire, dans le cas où on a décidé, dans l'étape 642, que toutes les tables de minutage relatif n'avaient pas été vérifiées, le programme revient à l'étape 630 et les mêmes opérations de traitement que celles définies ci-dessus sont exécutées. De la manière indiquée ci-dessus, la demande de départ ou d'enclenchement de la tâche particulière est émise en relation avec les différentes interruptions et 1'exécu- tiôn de cette tâche particulière est effectuée sur la base de la demande. Cependant, toutes les tâches énumérées dans le Tableau 2 ne sont pas toujours exécutées. Sur la base de l'information de fonctionnement du moteur, l'information de temps concernant la période de départ d'une des tâches du groupe qui est mémorisé dans la mémoire ROM 102 est sélectionnée et elle est transmise et mémorisée dans la table de minutage relatif de la mémoire RAM 106. EN supposant par exemple que la période d'enclenchement d'une tâche donnée est de 20 ms, la tâche est amorcée à tout moment approprié. Si l'enclenchement dela tâche doit être effectué de façon continue en fonction des conditions de marche du moteur, la table de minutage relatif correspondant à la tâche particulière est remise à jour et initialisée à tous moments. On va maintenant décrire, en référence au diagramme de forme d'ondes représenté sur la fig. 16, la situation dans laquelle les tâches du groupe sont enclenchées et arrêtées par les différentes opérations en concordance avec les conditions de fonctionnement du moteur. Lorsque le courant est établi par actionnement du contacteur de démarrage 152, l'unité CPU 104 fonctionne et un "1" est établi dans un drapeau logiciel IST et dans un drapeau logiciel EM. Le drapeau logiciel IST est un drapeau indiquant que le moteur se trouve dans l'état avant démarrage tandis que le drapeau logiciel EM est un drapeau pour ernpêcher l'interruption ENST. A partir de la position de ces deux drapeaux, il est possible de déterminer i le moteur est prêt à démarrer, est en train de démarrer ou a démarré. Lorsque l'état d'établissement de courant a été défini par actionnement du contacteur de démarrage 152, la tâche ADIN1 est enclenchée en premier et les données nécessaires pour le démarrage du moteur, par exemple une information d'entrée telle que la température d'eau de refroidissement et la tension de batterie sont appliquées au convertisseur AD 122 par l'intermédiaire du multiplexeur 120 à l'aide des différents capteurs La tâche HOSEI est enclenchée à chaque cycle d'introduction desdites données, des calculs de correction étant effectués sur la base des informations d'entrée. A chaque cycle d'introductien des données provenant des différents capteurs dans le convertisseur AD 122 par la tâche ADINl, la tâche ISTRT est amorcée pour le calcul de la quantité de carburant à injecter pendant le démarrage du moteur.Les trois tâches définies ci-dessus, c'est à dire la tâche ADINl, la tâche HOSEI et la tâche ISTRT sont enclenchées par le programme de traitement initial 202. Quand le contacteur de démarrage 152 a été commuté dans la condition de fermeture, les trois tâches ADINl, MONIT et ADIN2 sont enclenchées par mise à 1 des drapeaux "Q" engendrés par la tâche ISTRT. Les tâches ADIN1 et MONIT ont seulement besoin de se dérouler dans la période de temps où le contacteur de démarrage 152 se trouve dans l'état de"fermeture", c'est dire pendant le démarrage du moteur. Dans la période de temps correspondante, les informations de temps, contenues dans la mémoire ROM 102, concernant les périodes prédéterminées de démarrage sont transmises et mémorisées dans les tables de minutage relatif prévues dans la mémoire RAM 106. Dans la période de temps considérée, le temps restant T. de la période de démarrage de la table de minutage relatif est initialisé et la période de démarrage est établie de façon répétée.La tâche MONIT est une tâche de calcul de la quantité de carburant à injecter lors du démarrage du moteur et elle devient inutile après que le moteur a démarré. En conséquence, quand la tâche a été effectuée un nombre prédéterminé de fois, l'enclenchement du minutage relatif est arrêté et le signal d'arrêt, émis pour la fin de tâche, est utilisé pour enclencher le groupe d'autres tâches nécessaires après que le moteur a démarré. L'arrêt de la tâche est effectué par le minutage relatif de manière qu'un "O" soit écrit dans la table de minutage relatif correspondante de la tâche par un signal indiquant la fin de tâche, c'est à dire en d'autres termes que le contenu de la minuterie relative est effacé. I1 est à noter que le mode de réalisation qui est décrit a été conçu pour effectuer les enclenchements et les arrêts des tâches à l'aide des minuteries relatives et que par conséquent il est possible d'assurer une commande efficace et sûre de plusieurs tâches comportant des périodes d'enclenchement ou de départ qui sont inégales. En référence à la fig. 17, un circuit générateur IRQ comprend un registre 735, un compteur 736, un comparateur 737 et une bascule 738 qui constituent ensemble un circuit générateur de la demande dtinterruption INTV. IRQ. La période de génération de INTV IRQ, par exemple de 10 ms dans le mode de réalisation considéré, est établie dans le registre 735. Des impulsions d'horloge sont appliquées au compteur 736. Quand la valeur du compte du compteur 736 concorde avec le contenu du registre 735, la bascule 738 est mise à 1. Le compteur 736 est alors effacé et il recommence le comptage. En correspondance, la demande INTV IRQ est produite à intervalles de temps fixes ( 10 ms ). Le circuit générateur IRQ comprend en outre un registre 741, un compteur 742, un comparateur 743 et une bascule 744, qui constituent ensemble un circuit générateur de la demande QA IRQ, qui détecte le top de minutage en vue de l'introduction de la donnée engendrée par le convertisseur AD2. Le registre 741, le compteur 742 et le comparateur 743 sont identiques aux composants définis ci-dessus et la demande QA IRQ est engendrée quand la valeur de compte a atteint la valeur du registre 741. La demande INTV IRQ engendrée dans la bascule 738, la demande QA IRQ engendrée dans la bascule 744 et la demande IRQ engendrée dans les convertisseurs ADC1 ou ADC2 sont respectivement appliquées aux bascules 740, 746 et 764 ou 768. Des signaux pour la génération ou l'inhibition des demandes IRQ sont appliqués aux bascules 739, 745, 762 et 766. Si un niveau "H" est établi dans les bascules 739, 745, 762 et 766, des portes ET 748, 750, 770 et 772 sont ouvertes. Lorsque la demande IRQ est engendrée, elle est fournie à la sortie d'une porte OU 751. En correspondance, suivent qu'un niveau haut "H" ou un niveau bas "L" a été établi dans les bascules respectives 739, 745, 762 et 766, il est possible d'empêcher la génération de IRQ ou de déclencher ltinhibition. Lorsque IRQ a été engendré, la cause de la génération de IRQ est définie en chargeant les contenus de bascules 740, 746, 764 et 768 dans l'unité CPU 104. Dans le cas où l'unité CPU a commencé a executer le programme en réponse a la demande IRQ le signal RQ doit être effacé et en conséquence une .e, bascules 740, 746, 764 et 768, correspondant au début de traitement. de ia demande IRQ, est remise à zéro. La fig. 18 représente un organigramme du programme INJ qui est établi pendant une période de temps de 20 ms. A une étape 800, la valeur numérique QA représentant le signal de sortie du débitmètre d'air 24 et mémorisée dans la mémoire RAM 1O6 par exécution de la tâche ADC21N après une conversion analogique-numérique, est extraite.Dans une étape 802, la valeur réelle de QA, lue dans une tape 800, est comparée avec des valeurs QA, établies dans des emplacements Xn d'un ensemble AF existant dans la mémoire ROM 102, en vue de déterminer la valeur n de xn correspondant à la valeur réelle de QA. ans une étape 804 la donnée N de vitesse de moteur, qui a été mémorisée dans la mémoire RAM 106 par exécution de la tâche ADC2IN, est extraite. Dans une étape 806, la valeur réelle de N, qui a été extraite de la mémoire, est comparée avec les valeurs de N définies dans des emplacements yn de l'ensemble AF de la mémoire, afin de déterminer la valeur n de n correspondant à la valeur réelle de N Dans une étape 808, une adresse de l'ensemble AF est déterminée sur la base de xn et yn, qui ont été définis respectivement dans les. étapes 802 et 806 La quantité de carburant fourni, qui est emmagasinée à l'adresse déterminée, est extraite et place dans le registre INJD 134, représenté sur la fig. 4, dans une étape 810. La fig. 19 représente un organigramme du programme IGNCAL. Dans une étape 820, une valeur numérique QA, représentant la valeur de sortie du débitmètre d'air et mémorisée dans la mémoire RAM 106 par exécution du programme ADC2IN, est extraite. Dans une étape 822, la valeur réelle de QA ainsi extraite de la mémoire est comparée avec des valeurs de QA se trouvant dans des emplacements xn de l'ensemble ADV se trouvant dans la mémoire ROM 102, en vue de déterminer la valeur n de xn qui correspond à la valeur réelle de QA. Dans une étape 824, la donnée N, représentant la vitesse du moteur et mémorisée dans la mémoire RAM 106 par exécution de ADC2IN, est extraite.Dans une étape 826, la valeur réelle de N, ainsi extraite de la mémoire, est comparée avec des valeurs de N se trouvant dans des emplace ments n de l'ensemble ADV de la mémoire en vue de déterminer la valeur n de yn qui correspond à la valeur réelle de N. Dans uné étape 828, une adresse de l'ensemble ADV est déterminée sur la base de xn et yin, déterminés respectivement dans les étapes 822 et 826. Dans une étape 830, le top de minutage d'allumage, qui est mémorisé à l'adresse déterminée, est extrait et placé dans le registre ADV représenté sur la fig. 4. Le programme HOSEI est établi pour la détermination de coefficients de correction concernant par exemple les températures de l'atmosphère et de l'eau de refroidissement. Puisque ces paramètres sont seulement affectés par des modifications lentes, il est suffisant de déterminer les coefficients de correction à long terme. En considérant maintenant la fig. 20, on voit qu'il est prévu un programme ISC pour la commande du degré d'ouverture de la valve de dérivation d'air 62 quand le moteur fonctionne au ralenti. Lorsqu'il a été défini que le contacteur de ralenti 148 est enclenché par un contrôle de DIO de la fig. 4 dans une étape 850, le premier bit du registre DOUT se trouve au niveau bas "L", de sorte que la valve de dérivation d'air 62 est désignée. En conséquence, la valve de dérivation d'air est commandée en fonction de la valeur placée dans le registre EGRD de la fig. 4. La valve de dérivation d'air 62, servant à la commande de l'écoulement d'air dans le passage de dérivation, est commandée dans des conditions de marche spécifiques. Plus particulièrement, dans le cas d'un fonctionnement à une-température ambiante basse, par exemple en hiver, lors du démarrage à froid du moteur ou bien lors d'un fonctionnement sous une forte charge du fait de l'utilisation d'un conditionneur d'air dans le véhicule, l'écoulement d'air passant dans le passage de dérivation est augmenté. Dans une étape 852, on détermine le coefficient d'utilisation de la valve de dérivation d'air et on introduit ce facteur dans le registre EGRD en relation avec la température de lteau de refroidissement du moteur. Dans une étape 854, une décision est prise pour savoir si le contacteur de ralenti 148 est fermé ou non. Si le contacteur est fermé, un drapeau de demande d'activation pour le programme ISC est alors établi dans une étape 856. En d'autres termes, un bit "1" est établi en Q10 du mot de commande de tâche TCW10 de la mémoire RAM indiquée sur la fig. 16. Simultanément, le premier bit du registre DOUT de DiO 174 est mis au niveau bas "L". Ensuite, une indication de terminaison est émise. D'autre part, quand le contacteur de ralenti est ouvert, une indication de terminaison est immédiatement établie. En conséquence, ce programme n'est plus exécuté par la suite. De cette manière, quand le contacteur de ralenti est fermé dans l'étape 856, le drapeau de demande d'activation pour le programme ISC est établi et alors l'indication de terminaison est effectuée. La fig. 21 représente un organigramme concernant le programme EGRCAL. Quand le contacteur de ralenti se trouve dans la condition d'ouverture, la valve de dérivation d'air 90 n'est pas commandée mais le recyclage des gaz d'échappement est effectué. Dans ce but, le système EGR de commande de la quantité dq,recyclage de gaz d'échappement est enclenché . Pour l'enclenchement du système EGR, le premier bit du registre DOUT de D10 est mis au niveau haut "H" dans une étape 860, de sorte que le système EGR représenté sur la fig. 3 est activé en concordance avec la valeur établie dan le registre EGRD de la fig. 4. Ensuite une ope'ration nrithmtique servant à la (icterMination de la quantité EGR est effectuée.Dans une étape 862, on vérifie si la température d'eau de refroidissement TW est supérieure à una valeur prédéterminée TA OC. Si la réponse est affirmative, l'opération EGR est interdite ou arrêtée. Dans ce but, un zéro est établi dans le registre EGRD pour effectuer l'opération EGR CUT dans une étape 866. Lorsque la température d'eau de refroidissement TW est inférieure à la valeur prédéterminée ( TA OC ), le programme passe à l'étape 864 où une décision est prise pour savoir si la température TW de l'eau de refroidissement est inférieure à une valeur prédéterminée TB "C. Dans l'affirmative, l'opération EGR est alors interdite. Dans ce but, un zéro est établi dans le registre EGRD dans une étape 866.La température TA dans l'étape 862 représente la limite supérieure tandis que la température TB dans l'étape 864 représente la limite inférieure. L'opération EGR ne peut être effectuée que lorsque la température TW de l'eau de refroidissement du moteur est comprise dans la plage délimitée par TA et TB. Le programme passe à une étape 868 où la quantité EGR est déterminée arithmétiquement sur la base de la quantité d'air d'admission QA et du nombre de tours N du moteur, en effectuant les extractions de données appropriées à partir d'une table de mémoire. La table utilisée pour ces opérations d'extraction est prévue dans la mémoire ROM 102. Les valeurs extraites sont introduites dans le registre EGRD. De cette manière, la valve intervenant dans l'opération EGR est ouverte en fonction de la valeur placée dans le registre EGRD et en fonction du cycle d'utilisation précédemment établi dans le registre EGRP ; l'opération EGR est alors exécutée. Dans une étape 872, une décision est prise pour définir si le contacteur de ralenti se trouve dans l'état de fermeture par un contrôle de DIO. Quand le contacteur de ralenti est ouvert, un drapeau de demande d'activation concernant le programme EGRCAL est établi. En d'autres termes, le bit "1" est établi en Qll du mot de commande de tâche TCWll de la mémoire RAM. En outre le premier bit du registre DOUT de DIO est mis au niveau haut "H". On va maintenant décrire en détail, et-seulement à titre d'exemple non limitatif, comment se déroule le traitement d'un signal fourni par le capteur d'écoulement d'air du type à fil chaud conformément à la présente invention. Le signal disponible à la sortie du capteur d'écoulement d'air du type à fil chaud est d'sabord échan- tillonné en réponse à l'interruption INTL. Le minutage d'échantillonnage du signal de capteur dffère dans chacun des trois modes qui sont définis en relation avec la vitesse de rotation du moteur.Plus particulièrement, en référence à la fig. 22, un des trois modes correspond au mode 0 dans lequel le nombre de tours N du moteur est compris dans la gamme définie par N Dans l'exemple considéré, on fait en sorte que cinq échantillonnages du signai de sortie du capteur d'écou- lement d'air soient effectués dans le mode 0. En d'autres termes, l'échantillonnage est effectué dans chaque intervalle de temps qui correspond à un angle de rotation de vilebrequin de 36 dans ce mode 0. D'une manière semblable, dans le cas du mode 1, l'échantillonnage du signal de capteur est effectué dans chaque intervalle de temps qui correspond à un angle de rotation de vilebrequin de 72 , du fait que le nombre de tours N dans ce mode 1 est deux fois plus grand que celui correspondant au mode 0. Enfin, dans le mode 2, l'échantillonnage est effectué dans chaque intervalle de temps correspondant à un angle de rotation de vilebrequin de 144 , du fait que le nombre de tours N dans ce mode 2 est quatre fois plus grand que celui dans le mode 0.Dans ces conditions, les données concernant l'écoulement d'air sont extraites dans tous les modes 0, 1 et 2 dans une position angulaire identique du vilebrequin, du fait que l'angle de rotation du vilebrequin correspondant à la course unique d'admission du moteur reste le même pour tous les modes. De cette manière, en faisant varier le top de minutage où la donnée concernant l'écoulement d'air est échantillonnée ou extraite en fonction du nombre de tours du moteur, on fait en sorte que le temps nécessaire pour le traitement de la donnée ne soit pas soumis à des influences dues à des variations de la vitesse du moteur. La fig. 23 est un organigramme destiné à montrer comment l'échantillonnage du signal de sortie du capteur d'écoulement d'air du type à fil chaud est effectué. En référence à cette figure, lorsqu'une demande d'interruption correspondante est émise, la fonction d'exécution est transférée à l'étape d'entrée 204 indiquée sur les fig. 5 et 13, où une décision est prise pour définir si la demande d'interruption concerne ou non l'interruption INTL dans une étape 902 indiquée sur la fig. 23. Lorsque le résultat de la décision est affirmatif ( OUI ), on vérifie dans une étape 904 si un compteur analogique destiné à commander l'échantillonnage ou l'extraction du signal représentant le débit instantané d'air est mis à zéro (O) ou non. Le compteur analogique est placé dans le logiciel et il est disposé à l'adresse AAB 3 de la mémoire RAM 106, comme indiqué sur la fig. 24. La valeur contenue dans le compteur analogique représente un des points d'échantillonna ge 1 à 5 indiqués sur la fig. 22.Quand le contenu du compteur analogique est zéro, le convertisseur analogiquenumérique 128 ( fig. 4 ) est activé dans une étape 902 de façon à préparer l'amorçage de l'échantillonnage du débit d'air vl ( fig. 22 ). L'échantillonnage du débit d'air vl, basé sur cette activation, est effectué dans une étape 904. Dans une étape 908, le nombre de tours N du moteur est extrait de la mémoire RAM 106 à l'adresse AA 1. Un agencement de la mémoire RAM 106 a été représenté en détail sur la fig. 24. Dans une étape 910, le mode correspondant au nombre de tours du moteur est déterminé. Dans ce but, un zéro est établi à l'adresse AAB 4 de la mémoire RAM 106 ( fig. 24 ), puis on effectue une comparaison de la vitesse de moteur N avec une valeur " 1600 " mémorisée dans la mémoire ROM 102 à une adresse AAC 1 ( fig. 25 ).Quand la vitesse de moteur N est supérieure à 1600, le nombre ou valeur de mode mémorisé à l'adresse AAC 2 dans la mémoire RAM 106 est augmenté de + 1 ( c'est à dire plus une unité ). La valeur augmentée est alors comparée avec la valeur t, 3200 't mémorisée dans la mémoire ROM 102 à l'adresse AAC ?, comme indiqué sur la fig. 25. Quand la vitesse de rotation N du moteur est supérieure à la valeur " 3200 ", le nombre ou valeur de mode contenu dans la mémoire RAM 106 à l'adresse AAB 4 est additionnellement augmenté de + 1. De cette manière, un des modes 0 à 2 est établi. Sur la base du mode ainsi établi à l'adresse AAB 4 de la mémoire RAM 106 ( fig. 24 ), une donnée est extraite de la mémoire ROM 102 à l'adresse correspondant à la somme du nombre de mode qui vient d'être établi et du contenu se trouvant à l'adresse AAC 3, dans une étape 912. En conséquence, quand le nombre de mode est zéro, la donnée lue dans l'étape 912 correspond au contenu mémorisé à i'adresse AAC 3, qui représente un angle de rotation de vilebrequin de 36 degrés. Dans le mode 1, la donnée lue correspond au contenu se trouvant à l'adresse AAC 4 et qui représente l'angle de rotation de vilebrequin de 72 degrés alors que, dans le mode 2, la donnée correspondant à celle qui est mémorisée à l'adresse AAC 5 et qui représente l'angle de rotation de rotation de 144 degrés est lue. Ces angles de rotation de vilebrequin jouent un rôle lors de la détermination des tops de minutage où la donnée concernant l'écoulement d'air est échantillonnée dans les modes respectifs, comme cela a été déjà décrit en référence à la fig. 22. Sur la base de l'échantillonnage des valeurs d'angle et de vitesse de rotation N ( c'est à dire des contenus mémorisés à l'adresse AAA 1 de la mémoire RAM 106 de la fig. ?4 ), l'instant d'échantillonnage est arithmétiquement déterminé et est chargé dans le registre ?41 représenté sur la fig. 17. En même temps, la bascule (FF) 774 est remise à zéro pour fermer ainsi la porte ET 776. Quand l'instant d'échar.tillon- nage est établi de cette manière dans les étapes 914, les registres INJD, ADV et DWCsont chargés avec les données associées. Ensuite, le registre ATATVS correspondant à la demande INTL IRQ est remis à zéro , puis le programme de traitement de l'interruption INTL est effectué. Quand le compte du compteur analogique n'est pas égal à zéro dans l'étape 904, on passe à l'étape 916. D'autre part, lorsqu'il n'existe aucune demande d'interruption INTL dans l'étape 902, on examine dans une étape 920 si la demande correspondant à une interruption QA est bien présente. Si la réponse est affirmative ( OUI ), on détermine alors dans une étape 922 si un drapeau d'inhibition de l'échantillonnage du signal de sortie du capteur d'écoulement d'air a été établi ou non. Dans le cas où le drapeau d'inhibition est établi, le programme en question est exécuté jusqu'à sa terminaison. Lorsqu'il n'y a pas de drapeau d'inhibition, le signal de débit d'air v sortant du capteur d'écoulement d'air est extrait dans une étape 924. Dans une étape suivante 926, le compte du compteur analogique, c'est à dire le contenu de l'adresse AAB 3 de la mémoire RAM 106 de la fig. 24, est augmenté de + 1. Dans une étape 928, on définit alors si l'échatillonnage v est terminé ( c'est à dire si le nombre indiqué par le compteur établit que l'échantillonnage a été effectué un nombre prédéterminé de fois ). Après terminaison de l'échantillonnage du signal de débit v, la bascule 774 est mise à 1 pour autoriser la porte ET 776 à assurer la remise à zéro du compteur de la fig. 7 dans une étape 936. Dans ce but, la bascule 742 est remise à zéro par le signal REF dans une étape 936. Dans cette étape 936, le compteur analogique est remis à zéro. Dans le cas où on trouve que l'extraction des données ou l'échantillonnage des signaux n'a pas encore été terminé dans l'étape 928, le convertisseur ADC 2 est activé pour échantillonner le signal d sortie du capteur d'écoulement d'air. La valeur numérique obtenue par suite de l'activation du convertisseur ADC 2 est emmagasinée dans le registre 130 de la fig. 4, après avoir subi la conversion analogique-numérique par le convertisseur ADC 2 et elle peut par conséquent être extraite dans l'étape 924. Dans une étape 932, une quantité (v-c)2, où c représente une constante, est calculée en utilisant la valeur v extraite dans l'étape 924. Les valeurs résultant du calcul (v-c)2 sont séquentiellement introduites dans la mémoire RAM aux adresses AAA 4 à A A 8 représentées sur la fig. 24. Plus spécifiquement, la valeur v correspondant au point d'échantillonnage 1 indiqué sur la fig. 22 est mémorisée à l'adresse A 4, la valeur v correspondant au point d'échantillonnage 2 de la fig, 22 est mémorisée l'adresse AAA 5 et ainsi de suite. Ces adresses peuvent tre déterminées en concordance avec l'expression ( AAA 4 Y @ ( C contenu du compteur analogique ) - 1. Quand on a défini dans l'étape 920 que l'interrup- tion QA n'est pas présente, on définit alors dans une étape 938 si on a affaire à une interruption ADC END. Quand le résultat de cette décision est affirmatif, une décision est alors prise dans une étape 940 pour définir si le drapeau IST ( fig. 16 ) est mis à "1". Dans l'affirmative, le signal de sortie v du capteur d'écoulement d'air est extrait dans une étape 942. Ce signal de sortie v du capteur est utilisé pour la mise en route du moteur sans l'aide du démarreur. Quand aucune interruption ADC END n'a été détectée dans l'étape 928, ou bien quand le drapeau IST n'est pas établi ( c'est à dire n'est pas mis à "1" Y dans l'étape 940, le traitement de l'interruption INTV est exécuté en partant de l'étape 628 indiquée sur la fig. 15. On va maintenant décrire la tâche concernant le traitement des signaux d'écoulement d'air (AC) 610, mise en évidence sur la fig. 13. La tâche de traitement des signaux d'écoulement d'air est enclenchée dans une étape 950, comme le montre cette figure. Lors de l'enclenchement de la tâche, le drapeau d'interdiction de l'extraction du signal v de sortie du capteur d'écoulement d'air est établi. Dans une étape suivante 953, la quantité {Cv-c)2}2 est calculée. Les résultats du calcul sont séquentiellement mémorisés aux adresses AAA 9 à AAAD de la mémoire 106 de la fig. 24. Dans une étape 954, le drapeau d'interdiction d'extraction est remis à zéro. Ensuite, dans une étape 955, les valeurs obtenues à partir du calcul de t(v-c)2}2 , qui ont été mémorisées dans la mémoire RAM 106, sont additionnées et on effectue leur moyenne. La valeur moyenne représente la quantité d'air fournie au moteur. Cette quantité d'air est désignée par QA. On définit alors dans une étape 956 si le moteur se trouve dans le mode d'accélération ou non. Si le résultat de la décision de l'étape 956 est affirmatif ( OUI ),une injection de carburant pour accélération est faite en correspondance dans une étape 957. Lorsqu'on a déterminé dans l'étape 956 que le moteur ne se trouve pas dans l'état d'accélération, la vitesse de rotation du moteur est échantillonnée dans une étape 958. Dans'ce but, la mesure de la vitesse de rotation du moteur est effectuée par un circuit 126 indiqué sur la fig. 4. Ce circuit 126 comprend un compteur assurant le comptage des impulsions de sortie POS provenant du capteur ANGL 53 pendant un temps prédéterminé. Cette valeur de comptage représente la vitesse de rotation du moteur. La donnée représentant la vitesse de rotation N du moteur est mémorisée à l'adresse AAA 1 de la mémoire RAM 106 indiquée sur la fig. 24. En variante, à la place de l'exécution des étapes 932 ( fig. 23 ) et 953 ( fig. 26 ), le résultat du calcul peut être mémorisé dans la mémoire ROM et extrait dans la phase 944. La fig. 27 représente en détail un agencement du capteur d'écoulement d'air représenté sur la fig. 4. Les résistances thermo-sensibles 1003 et 1006 sont formées du même matériau, par exemple du platine, présentant un coefficient de température0(. La résistance thermo-sensible 1006 est placée dans la voie de dérivation 22 en vue de détecter la température de fluide. On va maintenant décrire le fonctionnement du circuit de démarrage 1023. Lorsque la source de courant du véhicule est enclenchée, l'amplificateur 1008 est obligé de produire temporairement un signal de sortie et il en résulte une mise en conduction du transistor 1002 en vue de l'excitation du circuit représenté sur la fig. 27. Quand la source de courant n'est pas enclenchée, le transis- tor 1002 est bloqué et les signaux de sortie des amplificateurs opérationnels 1008 et 1012 sont à l'état zéro. Quand la source de courant est enclenchée, la tension de source Vcc est appliquée au collecteur du transistor 1002 et au circuit 1023. Puisque les diodes 1018 et 1020 présentent chacune une chute de tension directe Vd, le potentiel anodique de la diode 1018 prend la valeur 2 Vd de sorte que. le potentiel à l'entrée non inversée de l'amplificateur opérationnel 1008 prend la valeur 1 Vd du fait que la chute de tension directe de la diode 1008 est égale à Vd. A ce moment, le potentiel de la borne d'entrée d'inversion de l'amplificateur 1008 est O de sorte que le signal de sortie de l'amplificateur opérationnel 1008 prend le niveau haut et que le transistor 1002 devient conducteur. Quand le circuit comportant les résistances thermo-sensibles 1002 et 1006 prend sa condition d'équilibre, les tensions aux bornes d'entree d'inversion et de non-inversion de l'amplificateur opérationnel 1008 sont toutes deux plus grandes que la chute de tension directe Vd dans la diode 1018 de sorte que cette diode est polarisée en sens inverse et que le circuit de démarrage 1023 est déconnect & électriquement de l'amplificateur opérationnel 1008. Lorsqu'un transistor PNP est utilisé à la place du transistor NPN 1002 de la fig. 27, la cathode de la diode 1018 doit être reliée à l'entrée d'inversion de l'amplifica- teur opérationnel 1008 à la place de son entrée de noninversion. Lors de la mise en conduction du transistor 1002 qui est déclenché par le circuit de démarrage, le courant d'émetteur du transistor 1002 passe dans le circuitsérie comprenant les résistances 1003 et 1004 ainsi que dans le diviseur de tension comprenant les résistances 1009 et 1010. On va maintenant supposer que les valeurs ohmiques des résistances 1003, 1004, 1006, 1009, 1010 et 1011 sont respectivement désignées par R3, R4, R6, R9, R10 et Rîl et qu'il existe aux bornes de la résistance 1004 une chute de potentiel V4 et aux bornes de la résistance 1003 une chute de potentiel V3.L'amplificateur opérationnel 1012 compare les potentiels d'entrée aux bornes d'inversion et de noninversion, c'est à dire un potentiel au point de jonction entre les résistances 1003 et 1004 et un potentiel au point de jonction entre les résistances 1006 et 1011, et il commande son potentiel de sortie de manière que lesdits potentiels d'entrée soient respectivement égaux. Le potentiel de sortie de l'amplificateur opérationnel 1012 devient V4 + R6/Rll x V4. L'amplificateur opérationnel 1008 commande la tension de base du transistor 1002 de façon qu'un potentiel appliqué au point de jonction entre les résistances 1009 et 1010, ou bien une tension divisée dans la résistance 1003 V4 + R10 x V3/(R9 + R10)} , et un potentiel apparaissant à la sortie de l'amplificateur opérationnel 1012 soient respectivement égaux. Il est à noter que l'amplificateur 1008 n'affecte pas la commande pour rendre la tension aux bornes de la résistance 1003 égale à celle existant aux bornes de la résistance 1006 mais qu'il compare la tension divisée apparaissant aux bornes de la résistance thermosensible 1003 avec la tension apparaissant aux bornes de la résistance thermo-sensible 1006 et qu'il effectue la commande en vue de rendre ces tensions égales.En conséquence, on peut choisir la tension aux bornes de la résistance 1006 de façon qu'elle soit bien plus petite que la tension aux bornes de la résistance 1003. On obtient de la manière suivante le signal de sortie du circuit de la fig. 27 lorsqu'une condition d'équilibre est maintenue. On va maintenant supposer que la somme des valeurs ohmiques des résistances 1009 et 1010 est choisie de façon à être bien supérieure à la valeur ohmique de la résistance thermo-sensible 1003. Les valeurs ohmiques des résistances thermo-sensibles 1003 et 1006 sont définies par les relations suivantes : R3 = R30 ( 1 + &alpha;T3 ) ................. (1) R6 = R60 ( 1 + &alpha;T6 ) ................. (2) où R30 : valeur ohmique de la résistancs 1003 à une température de référence, R60 E valeur ohmique de la résistance 1006 a une température de référence T3 = température de surface de la résistance . 1003 T6 = température de surface de la résistance 1006. La condition d'équilibrage du circuit de la fig. 27 est définie par la relation suivante R4 x R6 = k x R11 x R3 ................. (3) où k : R 10/(R9 + R 10 ) En introduisant les équations (1) et (2) dans l'équation (3), on obtient : T3 - T6 = # T = 1/&alpha;x (1 + k x R11.R30/R4. R60)(1+&alpha;T3) ......... (4) Une relation entre la quantité de chaleur, engendrée par une résistance chauffante placée dans un fluide, et la quantité de chaleur évacuée par le fluide est exprimée de la façon suivante où I : intensité du courant passant dans la résistance 1003, C1 et C2 étant des constantes, 9am : débit pondéral d'air, Q : quantité de chaleur engendrée par la résistance 1003 A partir des équations (1) et (5), on obtient A partir des équations (4) et (6), on obtient également Q = I2R30 ( 1 + &alpha;T3 ) En conséquence où k = 1/R30 x (1 - k x Roll. R30/R4.R60 ) = une constante. Comme le montre l'équation (4), la différence de température QT est une fonction seulement de T3 et en conséquence il n'est pas nécessaire de régler les valeurs des composants du circuit. Une telle différence de tempé rature # T satisfait à l'équation (8),de sorte que le courant passant dans la résistance thermo-sensible 1003 est fonction seulement du débit d'air qam. En conséquence, dans la condition d'équilibrage du circuit, les courants passant dans la thermo-résistance 1003 et dans la résistance 1004 sont égaux. I1 en résulte qu'on peut obtenir le débit de fluide en mesurant la tension aux bornes de la résistance R4. En d'autres termes, la tension aux bornes de la résistance 1004, dans le mode de réalisation considéré, est produite à l'aide de l'amplificateur opérationnel 1013. Puisque les résistances 1014 et 1015 sont sélectionnées de façon que le facteur d'amplification de l'amplificateur opérationnel 1013 soit égal à 1, la tension v apparaissant à la borne de sortie 1024 de l'amplificateur oDérationnel 1013 est définie par la relation suivante L'équation (9) indique que la tension v est une fonction du débit. En conséquence qam est une fonction de la tension v.Le rapport entre les tensions V3 et V6 apparavissant aux bornes des résistances thermo-sensibles 1003 et 1006 est défini par la relation suivante V3/V6 = R3.Rll/R6.R4 ...................... (10) Lorsque les valeurs ohmiques des résistances thermo-sensibles 1003 et 1006 sont égales, le rapport devient V3/V6 = Rll/R4 ........................ (11) L'équation (11) implique que, si la valeur ohmique de la résistance 1011 est choisie à une valeur considérablement supérieure à celle de la résistance 1004, une tension appliquée à la résistance thermo-sensible 1006 peut être sélectionnée de façon à être bien plus petite que celle appliquée à la résistance thermo-sensible 1003.En conséquence, la résistance thermo-sensible 1006 n'est pas chauffée par elle-même, de sorte que la température du fluide peut être mesurée avec une grande précision et qu'on est toujours assuré d'obtenir une compensation correcte de l'influence de la température lors d'une variation de la température du fluide. En outre, puisque le courant passant dans la résistance thermo-sensible 1003 peut être réglé à une valeur élevée, la sensibilité à obtenir pour le débit d'air est bonne de sorte que, lorsque le circuit représenté sur la fig. 27 est monté sur une automobile, on est assuré d'obtenir une grande sensibilité bien que la tension de la batterie soit faible, par exemple de 12 volts.En outre, puisque le circuit conforme à l'invention permet d'utiliser les mêmes résistances pour constituer les résistances thermo-sensibles, on améliore la précision des mesures, tout en obtenant un bon rendement et une productivité économique. On va maintenant expliquer le rôle de la diode Zener 1016. Quand le circuit de la fig. 27 fonctionne dans une condition normale, une tension apparaissant aux bornes du circuit-série comprenant la résistance thermo-sensible 1003 et la résistance 1004, c'est à dire un potentiel apparaissant à la borne 1025, et une tension apparaissant aux bornes de la résistance 1004, c'est à dire un potentiel apparaissant à la borne d'entrée de non-inversion de l'amplificateur opérationnel 1012, varient proportionnellement l'une par rapport à l'autre. Quand la résistance thermosensible 1003 est déconnectée ou bien quand le transistor 1002 est bloqué, la proportionnalité de la variation de tension est cependant altérée et un grand courant passe dans les résistances 1009, 1010 et 1004, ce qui provoque également une augmentation de la tension aux bornes de la résistance 1004.A ce moment, le potentiel à la borne 1025 augmente jusqu'à une valeur correspondant à la tension de dêclenchement de la diode Zener 1016, de sorte que cette diode Zener devient conductrice et que le potentiel à la borne d'entrée d'inversion de l'amplificateur opérationnel 1013 augmente. I1 en résulte que la tension de sortie de l'amplificateur opérationnel diminue, ce qui indique que le débit d'air est nul ou se rapproche de zéro. En conséquence, on empêche que l'injection de carburant soit faite de façon erronée, c'est à dire que l'injection de carburant 12 injecte de façon incorrecte une quantité excessive de carburant, et on empêche également qu'un courant excessif passe dans la résistance thermo-sensible 1003 qui serait alors excessivement chauffée et qui risquerait de produire un dommage tel qu'un incendie. Bien entendu, l'invention n'est nullement limitée aux exemples de réalisation ci-dessus décrits et représentés, à partir desquels on pourra prévoir d'autres modes et d'autres formes de réalisation, sans pour cela sortir du cadre de l'invention. REVENDICATIONS 1. Procédé de commande d'un moteur à combustion -interne, dans lequel un mélange air-carburant, formé à partir d'air introduit par l'intermédiaire d'un passage d'admission (6) et de carburant introduit par un dispositif d'alimentation (32), est soumis à une combustion pour produire une énergie thermique qui est convertie en une énergie mécanique servant à faire tourner un arbre de sortie (51) dudit moteur, tandis que les gaz d'échappement résultant de la combustion sont évacues par l'intermédiaire d'un passage d'échappement (10), un capteur d'écoulement d'air (24) étant prévu pour produire à sa sorte un signal représentant l'état de l'écoulement d'air ?'admission passant dans ledit passage d'admission ut moteur, et un circuit arithmétique (64) étant prévu pour produire à sa sortie un signal de commande du dispositif d'alimenation en carburant (32) en fonction du signal de sortie du capteur d'écoulement d'air, procédé caractérisé en ce qu'@n détermine arithmétiquement la quantité d'air introduit dans le moteur sur la base du signal de sortie dudit capteur d'écoulement d'air C2), en ce qu'on établit le signal de corniande sur la base voit résultat de ladite déteation arithmétique, en ce gon commande ledit dispositif d'alimen- tation en carburant (32) en fonction dudit signal de commande, et en ce. que ladite opération de détermination arithmétique de la quantité d'air introduite dans le moteur comprend - une première phase consistant à établir des donnees représentant un top de minutage d'échantillonnage de signal de capteur en vue de l'échantillonnage du signal de sortie (AFS) dudit capteur d'écoulement d'air (24) en synchronisme avec la distribution pulsée dudit écoulement d'air audit moteur, - une seconde phase consistant à produire un signal de minutage pour l'échantillonnage dudit signal de sortie de capteur sur la-base desdites données représentant le top de minutage d'échantillonnage du signal de sortie de capteur, - une troisième phase consistant à échantillonner le signal de sortie du capteur d'écoulement d'air en concordance avec le signal de minutage produit dans ladite seconde phase, et - une quatrième phase consistant à déterminer la quantité d'air d'admission sur la base d'un certain nombre des valeurs du signal échantillonné dans la troisième phase. 2. Procédé de commande d'un moteur à combustion interne selon la revendication 1, caractérisé en ce que ladite première phase comprend - une cinquième phase consistant à détecter une vitesse de rotation de l'arbre de sortie du moteur, - une sixième phase consistant à produire le minutage destiné à l'échantillonnage du signal de sortie du capteur d'écoulement d'air (24) sous la forme de données représentées par un angle de rotation dudit arbre de sortie (51) du moteur en concordance avec la vitesse de rotation dudit arbre de sortie (51) et qui a été détectée dans ladite cinquième phase, afin que ledit signal de minutage soit produit dans ladite seconde phase quand l'arbre de sortie (51) a été déplacé par rotation, à partir d'une position de référence, dudit angle de rotation défini dans ladite sixième phase. 3. Procédé de commande d'un moteur à combustion interne selon la revendication 2, caractérisé en ce que le circuit arithmétique (64) comprend une mémoire (106) dans laquelle des données représentant le minutage d'échantillonnage du signal de sortie du capteur d'écoulement d'air (24) sont mémorisées dans des emplacements correspondant à un certain nombre de gammes de vitesses qui sont définies par une division correspondante de toute une gamme dans laquelle la vitesse de rotation dudit arbre de sortie (51) du moteur peut varier, et en ce que ladite première phase comprend en outre - une cinquième phase consistant à détecter la vitesse de rotation dudit arbre de sortie (51) du moteur, et - une sixième phase consistant à déterminer la gamme de vitesses dans laquelle rentre la vitesse de rotation de l'arbre de sortie du moteur qui a été détectée dans ladite cinquième phase et à lire dans ladite mémoire la donnée de minutage d'échantillonnage correspondant à ladite gamme de vitesses déterminée, afin que ledit signal de minutage soit produit dans la seconde phase quand l'arbre de sortie a été déplacé par rotation, à partir d'une position de réfé rence, dudit angle de rotation qui a été défini dans la sixième phase. 4. Procédé de commande d'un moteur à combustion interne selon la revendication 3, caractérisé en ce que ladite première phase comprend une septième phase consistant à convertir la donnée de minutage d'échantillonnage, obtenue dans la sixième phase, en une donnée représentant une durée en utilisant l'angle de rotation dudit arbre de sortie (51) du moteur, et en ce que ladite seconde phase comprend une huitième phase consistant à produire le signal de minutage quand le temps représenté par la donnée obtenue dans la septième phase s'est écoulé à partir de ladite position de référence dudit arbre de sortie (51) du moteur. 5. Procédé de commande d'un moteur à combustion interne selon la revendication 3, caractérisé en ce que ladite quatrième phase comprend une septième phase consistant à déterminer arithmétiquement des quantités d'air d'admission instantanées sur la base du signal de sortie (AFS) dudit capteur d'écoulement d'air (24), à la suite de l'échantillon- nage effectué dans ladite troisième phase, ainsi qu'une huitième phase consistant à établir la moyenne desdites quantités d'air d'admission instantanées. 6. Procédé de commande d'un moteur à combustion interne selon la revendication 1, caractérisé en ce que ledit circuit arithmétique comprend-en outre un circuit de génération d'un premier signal d'inferruption en réponse à ladite position de référence intervenant pendant la rotation de l'arbre de sortie (51) du moteur, ainsi qu'un circuit de génération de signal d'interruption à intervalle pour engendrer un second signal d'intervalle à chaque fois qu'un temps prédéterminé s'est écoulé, en ce que lesdites phases permettant de déterminer arithmétiquement la quantité d'air d'admission à introduire dans le moteur sur la base du signal de sortie (AFS) dudit capteur d'écoulement d'air (24) sont amorcées en synchronisme avec ledit signal d'interruption et en ce que lesdites phases d'établissement dudit signal de commande sont amorcées en synchronisme avec ledit second signal d'interruption.