FR 2464373 A1 19810306 FR 8019084 A 19800904 La présente invention concerne une méthode de régula- tion électronique pour moteurs à combustion interne. Tout dernièrement, on a fait appel à un micro-ordina- teur pour la régulation des moteurs à combustion interne.Ce microordinateur sert principalement à déterminer la quan- tité de carburant fournie au moteur et le réglage d'alluma- ge nécessaire à l'inflammation du carburant fourni.L'alimen- tation en carburant et 17 inflammation du carburant fourni s'effectuent de manière synchronisée avec la rotation du vilebrequin.Ainsi, en cas de régime élevé du moteur, l'in- tervalle entre points d'introduction du carburant ou points d'allumage est réduit et il est difficile d'effectuer toutes les opérations arithmétiques nécessaires à la détermination de la quantité de carburant délivrée et du réglage d'alluma- ge.Le nombre d'opérations arithmétiques de l'ordinateur devra être réduit en cas de-régime élevé du moteur.Dans ce but, le programme destiné à la détermination arithmétique de la quantité de carburant fournie et du réglage d'alluma- ge est classifié selon une pluralité de tâches et ces dernières classées selon une pluralité de niveaux de priori- té, en fonction de leur influence sur le fonctionnement du moteur.Lorsque les intervalles d'alimentation en carburant et d'allumage sont réduits du fait d'un régime- moteur élevé, l'ordinateur n'effectue que les tâches de plus haut niveau et utilise de manière répétitive les résul- tats des tâches de plus bas niveau déjà calculés, afin de supprimer tout calcul de tâches de plus bas niveau. Dans un tel système programmé, le programme destiné à déterminer la quantité de carburant ou le point d'allumage comporte de nombreuses tâches, chacune possédant un niveau de priorité et étant liée aux autres. Du fait de sa complexité, il est difficile de corriger, modifier ou ajouter diverses fonctions de régulation. La présente invention a pour but de proposer une mé- thode de régulation électronique pour moteurs à combustion interne, permettant une correction, une modification ou un ajout faciles de diverses fonctions de régulation des mo- teurs à combustion interne. Le programme de régulation du moteur à combustion interne comporte une pluralité de tâches, possédant chacune une période de lancement qui permet le lancement répétitif de l'exécution de la tâche.En outre, chacune des tâches possède un niveau de priorité propre.Dans la présente in- vention, une mémoire contient un bloc de commande des tâches avec des zones d'indicateurs permettant d'établir des indicateurs de demande de lancement et des zones d'indi- cateurs d'exécution pour l'établissement d'indicateurs d'exécution. L'indicateur de demande de lancement de la tâche est établi en réponse au lancement de l'exécution de celle-ci et effacé en réponse à l'achèvement de cette exécution.La tâche à lancer est déterminée par l'état de l'in- dicataur de lancement de tâch; et de l'indicateur d'exécution. Dans le présent système, le lancement de l'exécution de la tâche n'est pas altéré par la modification, la correction ou l'ajout d'une autre tâche.Il est, en outre, possible d'ajouter une nouvelle tâche ou de renoncer à une ZO tâche sans modification du niveau de priorité ou de la période de lancement. Les autres objectifs, caractéristiques et avantages de la présente invention seront plus évidents à la lecture de la description suivante et en se référant aux dessins annexés, sur lesquels: La figure 1 est un schéma de montage montrant un ap- pareil de régulation pour tout le système moteur, La figure P est une vue explicative d'un dispositif d'allumage de la figure 1, La figure 3 est un schéma de montage destiné à expli- quer un système de recirculation des gaz d'échappement, La figure 4 est un montage général d'un système de ré- gulation de moteurs, La figure 5 est un diagramme montrant le montage fon- damental d'un système de programmation d'une méthode de régulation des moteurs selon l'invention, La figure 6 est un diagramme montrant un tableau de blocs de commande des tâches qui sont prévus dans une mémoire à accès sélectif dirigée par un distributeur de tâches, La figure 7 est un diagramme montrant un tableau d'adresses de départ pour un groupe de tâches lancées par diverses interruptions, Les figures 8 et 9 sont des diagrammes montrant le déroulement du traitement du distributeur de taches, La figure 10 est un diagramme montrant le déroulement d'un programme de macro-exploitation, La figure Il est un diagramme montrant un exemple d'une commande de priorité de tâches, La figure 12 est un diagramme montrant les états de transition des tâches dans la commande de priorité des taches, La Figure 13 est un diagramme montrant un mode de réalisation concret de la figure 5, La figure 14 est un diagramme montrant unetable de ry- thmeur souple prévue dans la mémoire à accès sélectif, 250 La figure 15 est un diagramme montrant le déroulement d'un programme d'exploitation d'interruption INTV, La figure 16 est un diagramme des temps montrant un état o les lancements et les arrêts des différentes tâches sont réalisés, en fonction des régimes d'un moteur, La figure 17 est un diagramme d'un circuit générateur d'interruptions, La figure 18 est un schéma de principe du programme INJ, La figure 19 représenta un diagramme du programme IGNCAL, La figure 20 est un diagramme destiné à illustrer les détails d'un programme ISC, et La figure 21 est un diagramme destiné à illustrer les détails d'un programme EOR CAL. La figure 1 montre donc un appareil de régulation pour tout le système moteur.Sur cette figure l'air aspiré est alimenté à-un cylindre 8 par l'intermédiaire d'un filtre à air Z, un boisseau d'étranglement 4 et un conduit d'aspi- ration 6.Le gaz brulé dans le cylindre 8 s'échappe de ce dernier dans l'air, par l'intermédiaire d'un conduit d'évacuation 10. Le boisseau d'étranglement 4 est muni d'un injecteur 12 destiné à injecter le carburant.Le carburant jaillissant de l'injecteur 12 est atomisé à l'intérieur d'un conduit d'air du boisseau d'étranglement 4 et se mélange avec l'air aspiré pour former un mélange.Ce mélange traverse le tuyau d'aspiration 6 et est introduit dans une chambre à combustion du cylindre 8, dès l'ouverture d'un clapet d'aspiration Zo. Des papillons 14 et 16 sont placés à proximité de l'orifice de sortie de l'injecteur 1a.Le papillon 14 est construit de manière à s'enclencher mécaniquement avec une pédale d'accélérateur, et est actionné par un conducteur. D'autre part, le papillon 16 est disposé de manière à être actionné au moyen d'un diaphragme 18.Il se ferme complète- ment dans une région o le débit d'air est faible.Quand ce PO débit augmente, la dépression sur le diaphragme 18 augmente et le papillon 16 commence à s'ouvrir de manière à suppri- mer l'élévation de la résistance d'aspiration. En amont des papillons 14 et 16 du boisseau d'étrangle- ment 4 se trouve un conduit d'air 22.Un élément chauffant électrique 24 qui forme un débilmètre d'air de type thermi- que est disposé dans le conduit P2, pour extraire un signal électrique qui varie en fonction d'une vitesse du débit d'air, telle qu'on la détermine sur la base de la relation entre la vitesse du débit d'air et la quantité de chaleur transmise de l'élément chauffant.Comme l'élément chauffant 24 est disposé à l'intérieur du conduit P2, il se trouve protégé d'un gaz à haute température produit au retour de flamme du cylindre 8, et il ne risque pas aussi d'être souillé par des poussières etc... de l'air aspiré.L'orifice de sortie du conduit d'air Z2 est ouvert au voisinage de la partie la plus étroite d'un tube Venturi, et son orifice d'entrée est ouvert du côté supérieur dudit tube. l1 Le carburant à fournir à l'injecteur 12 est alimenté d'un réservoir 30 à un régulateur de pression 38 par l'in- termédiaire d'une pompe 3E, cFun papillon 34 et d'un filtre 36.0'autre part, la carburant sous pression est alimenté du régulateur 38 à l'injecteur 1Z par un tuyau 40.Le car- burant retourne du régulateur de pression 38 au réservoir par un tuyau de retour 4E de sorte que la différence entre la pression du tuyau d'aspiration 6 o le carburant est injecté de l'injecteur 1E et la pression du carburant fourni à l'injecteur 1 soit toujours constante. Le mélange aspiré du clapet d'aspiration 20 est compri- mé par un piston 50, et enflammé par une étincelle d'une bougie d'allumage 52, la combustion étant transformée en énergie cinétique.Le cylindre 8 est refroidi par de l'eau de refroidissement 54 dont la température est mesurée par un détecteur 5S, cette valeur mesurée étant utilisée comme une température du moteur.La bougie d'allumage 52 est alimentée en haute tension par une bobine d'allumage 58 conformément à un réglage de l'allumage. E0 Un vilebrequin non représenté est muni d'un détecteur d'angle de lancement qui fournit un signal d'angle de réfé- rence et un signal de positionnement à chaque angle de lancement de référence et à chaque angle fixe [par exemple 0,50) selon la rotation du moteur.Les signaux de sortie du détecteur de l'angle de lancement, le signal de sortie 56A du détecteur 56 de la température de l'eau et le signal électrique de l'élément chauffant 24 sont appliqués à un circuit de commande 64 formé d'un micro-ordinateur etc... o ils sont exploités et traités.L'injecteur 12 et la bobine d'allumage 58 sont actionnés par les signaux de sortie du circuit de commande 64. Selon la construction décrite ci-dessus, le boisseau d'étranglement 4 est muni d'une dérivation 26 qui chevauche le papillon 16 du boisseau d'étranglement et communique avec le tuyau d'aspiration 6.La dérivation 26 est munie d'une soupape de dérivation TZU commandée pour ouverture ou fermeture.La commande d'ouverture ou de fermeture de la soupape de dérivation 6Z est réalisée de telle sorte qu'une partie excitatrice de celle-ci est alimentée par une entrée de commande du circuit 64.- La soupape de dérivation 6Z fait face à la dérivation 26 disposée autour de l'obturateur 16, et est commandée par un courant d'impulsion pour l'ouverture ou la fermeture. Cette soupape de dérivation 62 a pour fonction de faire varier la zone transversale de la dérivation 26 par la gran- deur de levée de la soupape.Cette grandeur est commandée de telle manière qu'un système moteur est actionné par une sortie de circuit de commande 64.Plus particulièrement, le circuit de commande 64 produit un signal périodique d'ouverture et de fermeture pour commander le système d'attaque, et sur la base de ce signal, le système d'atta- que donne à la partie excitatrice de la soupape de dériva- tion 62 le signal de commande pour régler la grandeur de levée de la soupape de dérivation S6. La figure 2 est une vue destinée à expliquer le disposi- tif d'allumage de la figure 1.Un courant d'impulsion est appliqué à un transistor de puissance 7? par un amplifica- teur 65, et ce transistor 72 est ouvert par ce courant. Ainsi, un courant de bobine primaire traverse la bobine d'allumage 58 à partir d'une batterie 66.Le transistor 72 est coupé par la chute de ce courant d'impulsion, pour produire une haute tension aux bornes d'une bobine secondai- re de la bobine d'allumage 58. La haute tension est répartie par un distributeur 70 aux bougies d'allumage 52 disposées dans les cylindres respectifs du moteur, en synchronisme avec la rotation du moteur. La figure 3 sert à expliquer un système de recirculation des gaz d'échappement Cabrégé ci-aprés en système EGRJ.Une dépression fixe d'une source 80 est appliquée à une soupape de réglage 86 par l'intermédiaire d'une soupape de commande de pression 84.Cette dernière commande l'état d'application de la dépression à la soupape de réglage 86 en commandant la proportion de dépression fixe libérée de la source dans l'air 88 selon le taux de remplissage en service des impulsions récurrentes appliquées sur un transistor 90.En conséquence, la dépression à appliquer à la soupape de réglage 86 est déterminée par le taux de remplissage en service du tran- sistor 90.La quantité EGR du tuyau d'échappement 10 au tuyau d'aspiration 6 est commandée par la dépression réglée de la soupape 84 déterminant la pression. La figure 4 est un diagramme de la construction géné- rale d'un système de commande.Ce système de commande est formé d'une unité centrale de traitement 102., d'une mémoire morte 104, d'une mémoire à accès sélectif 106, et d'un dispositif d'entrée/sortie 10S.L'unité centrale de traite- ment 102 traite les données d'entrée du dispositif d'entrée/ sortie 108 et y ramène les résultats exploités suivant divers programmes mémorisés dans la mémoire morte 104.La mémorisation intermédiaire nécessaire à ces opérations utilise la mémoire à accès sélectif 106.Les échanges des différentes données entre l'unité centrale de traitement 102, la mémoire morte 104, la mémoire à accès sélectif 106 et le dispositif d'entrée/sortie 108 sont réalisés par une ligne omnibus 110 qui comprend un bus de données, un bus de commande et un bus d'abresse. Le dispositif d'entrée/sortie 108 comporte les moyens d'entrée d'un premier convertisseur analogique-numérique [abrégé ci-dessous en '"ADC1"], d'un second convertisseur analogique-numérique [abrégé ci-dessous en "ADC2"], un circuit de traitement des signaux d'angle 126, et un cir- cuit discret d'entrée/sortie [7DIO"] destiné à recevoir et débiter des informations à 1 bit. Dans le convertisseur ADCI, les sorties d'un détec- teur 132 de tension de batterie [abrégé en "VBS"), du dé- tecteur 56 de température de l'eau de refroidissement ["TW6"S, d'un détecteur 112 de la température de l'air atmosphérique ["TAS"], d'un détecteur 116 de l'angle d'obturation ["QTHS"), et d'un détecteur 118 ("S"] sont appliquées à un multiplexeur 120, et l'une d'elles est choisie puis appliquée à un circuit convertisseur analogi- que-numérique 1 C("ADCC"] au moyen du multiplexeur 120. Une valeur numérique qui est une sortie du convertisseur ADC 1I2 est maintenue dans un registre 124 [REG]. Une sortie du détecteur de débit 24 ["AFS"] est appli- quée au convertisseur ADC2 et est convertie par un circuit convertisseur analogique-numérique 1@8 ["ADC"] en une va- leur numérique, qui est positionnée dans un registre 130. Un détecteur d'angle 146 ["ANGS"] fournit un signal indiquant un angle de lancement de référence [REF], par exemple 180 et un signal indiquant un angle minuscule, par exemple 1 ["POS").Les signaux sont appliqués au cir- cuit de traitement 126 des signaux d'angle et y sont mis en formes d'onde. Le circuit discret d'entrée/sortie DIO regoit les signaux de sortie d'un commutateur au repos 148 ["IDLE-SW"], d'un commutateur à prise directe 150 ["TOP-SW"] et d'un commutateur de démarrage ["START-SW"]. On va maintenant décrire les circuits de sortie d'im- pulsions et les systèmes commandés, sur la base des résul- tats exploités de l'unité centrale de traitement.Le cir- cuit de commande de l'injecteur ["INJC"] est un circuit qui convertit la valeur numérique du résultat exploité en une sortie d'impulsion.En conséquence, une impulsion dont la largeur correspond à la quantité de carburant in- jecté est préparée par le circuit de commande INJC 134 et est appliquée à l'injecteur 12 par une porte "ET" 136. Un circuit générateur d'impulsions d'allumage 138 ["IGNC"] possède un registre "ADV" o est positionné le réglage de l'allumage, et un registre "DWL" o est posi- tionnée la durée de démarrage à conductibilité de courant primaire de la bobine d'allumage.Ces données sont position- nées à partir de l'unité centrale de traitement.Des im- pulsions sont produites sur la base des données établies, et sont appliquées par ureporte "ET" 140 à l'amplificateur 68 décrit en détails en se référant à la figure R. La proportion d'ouverture de la soupape de dérivation 6S est commandée par des impulsions appliquées sur celle- ci d'un circuit de commande C["ISCC"] 142 par une porte "ET" 144.Le circuit ISCC 142 possède un registre ISCO qui positionne une largeur d'impulsion et un registre ISCP qui positionne une période récurrente d'impulsions. Un circuit générateur d'impulsions de commande de quantité EGR C"EGRC") 154 qui commande le transistor 90 pour régler la soupape de réglage EGR 86, représentée sur la figure 6, possède un registre EGRD o une valeur repré- sentative du taux d'impulsions est positionnée et un regis- tre EGRP o une valeur représentative de la période récur- rente des impulsions est établie.Les impulsions de sortie du circuit EGlC sont appliquées sur le transistor 90 par une porte "ET" 156. Les signaux d'entrée/sortie de 1 bit sont commandés par le circuit DIO. Comme signaux d'entrée, il y a le signal IDLE-SW, le signal TOP-SW et le signal START-SW.Comme signal de sortie, il y a le signal de sortie d'impulsion pour exci- ter la pompe à carburant.Le circuit DIO est muni d'un regis- tre DOM pour déterminer si les bornes à utiliser sont des bornes d'entrée ou des bornes de sortie, et d'un registre DOUT pour verrouiller les données de sortie. Le registre 160 est un registre ["MOD") qui maintient les instructions de différents états à l'intérieur du dis- positif d'entrée/sortie 108.Par exemple, en positionnant une instruction dans ce registre, toutes les portes "ET" 136, 140, 144 et 156 sont branchées ou coupées.En posi- tionnant ainsi les instructions dans le registre MOO 160, on peut commander les arrêts et les départs des sorties des circuits INJC, IGNC ou ISCC. La figure 5 est un diagramme montrant le montage fondamental du système de programmation du circuit de commande de la figure 4. Sur cette figure, le programme de traitement initial 202, le programme de traitement d'interruption 206, le programme de macro-traitement 228 et le distributeur de tâches 208 sont des programmes superviseurs pour exploiter un groupe de tâches.Le programme initial -02 est un programme destiné à réaliser des pré-traitements pour actionner un micro-ordinateur. A titre d'exemple, il efface le contenu mémorisé de la mémoire à accès sélectif 106 et positionne les valeurs initiales des registres du disposi- tif de jonction d'entrée/sortie 108.De plus, il supervise des traitements destinés à charger des informations d'entrée pour réaliser des prétraitements nécessaires à la commande du moteur, par exemple les données de la température T de refroidissement, la tension de la batterie etc... Le pro- gramme de traitement d'interruption -06 accepte diverses interruptions, analyse les facteurs d'interruption, et donne au distributeur de tâches PlS un ordre de lancement pour une tâche donnée choisie dans le groupe de tâches 210 à 226.Les facteurs d'interruption comportent une interruption de conversion analogique-numérique [ADC] qui produit l'information d'entrée de la tension d'alimentation, la température de l'eau de refroidissement etc... après la fin des conversions analogiquesnumériques, une interruption initiale CINTL) engendrée en synchronisme avec la rotation du moteur, une interruption d'intervalle CINTV) engendrée à un moment constant pré-établi, par exemple 10ms, une interruption de blocage du moteur CENST) produite dès la détection de l'arrêt du moteur, etc... Les tâches respectives du groupe 210 à -26 sont attri- buées tâches Nos représentatives des niveaux de priorité, P5 et elles appartiennent à l'un des niveaux de tâches "0" à "2".C'est à dire que les tâches O à 2 appartiennent au niveau "0", les tâches 3 à 5 au niveau "1", et les tâches 6 à 8 au niveau "2". Le distributeur de tâches Z08 regoit les demandes de lancement des diverses interruptions et distribue les temps d'occupation de l'unité centrale de traitement, sur la base des niveaux de priorité donnés aux différentes tâches correspondantes à ces demandes de lancement. La commande de priorité des tâches par le distributeur Z06 se conforme à la méthode suivante: [I] Le transfert de la droite du traitement à une tâche d'un degré de priorité plus élevé en interrompant une tâche d'un degré de priorité plus bas ne se fait qu'entre. les niveaux de taches.Ici, le niveau "0" doit être de plus haut degré. CZI Si, à l'intérieur d'un même niveau, il existe une tache actuellement en cours ou en interruption, la tâche particulière doit être du degré de priorité le plus élevé, et une autre tâche ne peut pas être exploitée jusqu'à ce que la tâche particulière prenne fin. [3) Dans la cas o, à l'intérieur d'un même niveau de tâches, il existe des demandes de lancement pour plusieurs taches, un No de tâche plus petit devra avoir un degré de priorité plus élevé.La présente invention est construite de manière à réaliser la commande de priorité ci-dessus de sorte que des rythmeurs souples puissent être prévus dans la mémoire à accès sélectif comme taches, tandis que des blocs de commande pour distribuer des tâches peuvent être établis dans la mémoire à accès sélectif comme niveaux de tâches.Quand le passage de chaque tâche s'est terminé, la fin d'exécution de la tache particulière est reportée au distributeur Z08 par le programme de macro-exploitation RE8. En se référant aux figures 6 à 12, on va décrire main- tenant le contenu d'exploitation du distributeur de taches Z08.La figure 6 montre les blocs de commande de tâches prévus dans la mémoire à accès sélectif que le distribu- teur 208 exploite.Le nombre des blocs de commande des taches est fonction des niveaux de tâches, et ici est de 3 ce qui correspond aux niveaux "D'0 à "2".I.Huit bits [8) sont attribués à chaque bloc de commande.Parmi ceuxci, les bits 0 à a [Q0-Q2] sont des bits de départ qui indiquent une tâche de demande de lancement, et le bit 7 [RI est un bit de passage qui indique qu'une tâche à l'intérieur du même niveau est actuellement en exploitation ou en interruption. Les bits de départ Q0 à Qa sont répartis dans la séquence o le degré de priorité de passage est plus élevé dans le niveau de tache correspondant. A titre d'exemple, le bit de départ pour la Tache 4 de la figure 5 est Q0 du niveau de tache "1".Si les demandes de lancement des tâches ont été effectuées, des indicateurs sont hissés dans l'un des bits de départ. D'autre part, le distributeur 208 récupère les demandes de lancement émises, successivement à partir du bit de départ correspondant à la tâche de plus haut niveau, res- taure les indicateurs correspondant aux demandes de lance- ment émises et hisse aussi les indicateurs "1" aux bits de passage, et exécute des traitements pour lancer la tâche particulière. La figure 7 montre un tableau d'adresses de départ pré- vues dans la mémoire à accès sélectif 106 qui est supervisée par le distributeur de tâches a08.Les adresses de départ SAO à SAS correspondent aux tâches respectives 0 à 8 dans le groupe de tâches 210 à 226, représentées sur la figure 5. Seize C16) bits sont attribués à chaque information d'adresse de départ. Celles-ci sont utilisées pour lancer les tâches pour lesquelles les demandes de lancement ont été effectuées par le distributeur 208. Les figures 8 et 9 représentent un ordinogramme du distributeur de tâches. Sur la figure S, quand le traitement du distributeur de tâches a été lancé au pas 300, l'inter- ruption ou non de l'exécution ou passage d'une tâche appar- tenant au niveau 1 est décidée à un pas 302.Plus particuliè-* rement, le lancement de "1" dans le bit de passage signifie un état o la fin de la tâche n'a pas encore été présentée au distributeur 208 par le programme de macro-exploitation -28 et o la tâche qui était en exécution est interrompue en raison de l'arrivée d'un signal d'interruption de niveau de priorité plus élevé.En conséquence, si l'indicateur "1" est émis au bit de passage, l'ordre d'exécution saute au pas 314 de manière à relancer la tâche d'interruption. Au contraire, si l'indicateur "1" ne s'élève pas au bit de passage, c'est à dire que l'indicateur indiquant le pas- sage est restauré, l'ordre se décale au pas 304 de manière à décider si oui ou non une tâche de mise en file d'attente de lancement existe au niveau l.C'est à dire que les bits de- départ du niveau 1 sont récupérés dans la séquence des degrés de priorité d'exécution ou passage plus élevés des tâches correspondantes, à savoir dans la séquence QO, Q1 et Q.Si l'indicateur "1" ne s'élève pas aux bits de départ appar- tenant au niveau de tâche l, l'ordre passe au pas 306 de manière à renouveler le niveau.C'est à dire que le niveau de tâche 1 est augmenté de i1 en [1+1].Quand le renouvelle- ment du niveau a été réalisé au pas 306, la séquence se déplace au pas 308 de manière à décider si oui ou non tous les niveaux ont été contrâlés. DOans le cas contraire, c'est à dire si 1=2, la séquence retourne au pas 302, et les traitements sont réalisés de la même fagon par la procé- dure ci-dessus.Si tous les niveaux des tâches ont été con- trolés au pas 308, la séquence passe au pas 310 pour libé- rer l'interruption.La libération de cette interruption se fait à ce pas parcequ'elle en est empêchée durant la pério- de de traitement des pas 302 'à 308.Au prochain pas 312, l'interruption suivant.est mise en file d'attente. Si une tâche en file d'attente de lancement existe au niveau 1 du pas 304, c'est à dire si l'indicateur "1" ?0 intervient au bit de départ appartenant au niveau de tâche 1, la séquence passe au pas 400.Quand le bit de dé- part particulier a été trouvéjla séquence se déplace à un pas 404.Dans ce pas 404, le bit de départ o l'indicateur s'élève est restauré, et l'indicateur "1" est monté au bit de passage [appelé bit R) du niveau de tâche particulier 1.0 e plus, à un pas 406, la tâche de lancement No est déduite, et à un pas 408, l'information d'adresse de lance- ment de la tâche de lancement correspondante est recherchée en utilisant le tableau d'adresse de lancement prévu dans la mémoire à accès sélectif représenté sur la figure 7. Ensuite, c'est au pas 410 qu'il est décidé si oui ou non la tâche de lancement correspondante est exécutée.Ici, si l'information d'adresse de lancement recherchée est une valeur donnée, par exemple zéro [0), il est décidé que la tâche correspondante ne doit pas être exécutée.Ce pas de décision est nécessaire pour permettre aux fonctions des tâches seulement spécifiées, de fagon sélective en fonction des différentes catégories devoitures, parmi tout le groupe de tâches, de réaliser la régulation du moteur.Si au pas 410 il a été décidé que l'exécution de la tâche corres- pondante doit être arrêtée, la séquence passe au pas 414 de manière à restaurer le bit R du niveau particulier 1.En outre, la séquence retourne au pas 302 o il est décidé si oui ou non le niveau de tâche 1 est en interruption. Comme il n'y a pas de oas o les indicateurs sont érigés à une pluralité de bits de départ à l'intérieur du même niveau de tâche 1, la séquence se déplace au pas 302 après restauration du bit R au pas 414. Au contraire, si au pas 410, l'exécution de la tâche particulière ne doit pas être arrêtée mais poursuivie, la séquence se déplace au pas 412 et saute à la tâche particu- lière, de manière à l'exécuter. La figure 10 est un diagramme montrant le déroulement du programme de macro-exploitation Z28.Ce programme com- porte des pas 56Z et 564 destinés à trouver la tâche finale. Aux pas 56Z et 564, les niveaux de tâches sont recherchés 0 à partir de "0" et le niveau de tâche qui s'est terminé est trouvé.Ensuite, la séquence passe au pas 568 o l'indica- teur d'exécution CRUN] du septième bit du bloc de commande des tâches de la tâche qui s'est terminée est restauré. C'est ainsi que se termine complètement l'exécution de la tâche.La séquence retourne à nouveau au distributeur de tâche 208, et la tâche d'exploitation suivante est décidée. En se référant à la figure 11, on va décrire maintenant tous les aspects de l'exécution et de l'interruption des tâches dans le cas o la commande de priorité des tâches est réalisée par le distributeur a08.Ici, m de la demande- * de lancement Nn désigne le niveau de la tâche, et n dési- mn - - gne le niveau du degré de priorité du niveau m.Supposons maintenant que l'unité centrale de traitement a à exécuter un programme superviseur OS. Alors, dans le cas o une demande de lancement N1 est intervenue durant l'exécution du programme superviseur OS, l'exécution d'une tâche corres- pondant à la demande de lancement Nai ou la tâche 6 est lancée à un instant T.Ici, lors de l'exécution de la tâche 6, si une demande de lancement NO1 pour une tâche de degré de priorité plus élevé est intervenue à un instant T., l'exécution se déplace au programme superviseur OS et les traitements prédéterminés déjà établis sont exécutés, de manière à ce que l'exploitation d'une tâche correspondant à la demande de lancement NO1 ou tache 0 soit lancée à un instant T3.Si au moment de l'exploitation de la tache 0, une demande de lancement N1l a de plus pénétré à un instant T4, l'exploitation se déplace immédiatement au programme superviseur OS et les traitements prédéterminés sont execu- tés, de Façon à ce que l'exploitation de la tache 0 qui a été interrompue soit relancée à un instant T 5.Quand l'ex- ploitation de la tache 0 s'est terminée à un instant T6, l'exécution se déplace à nouveau au programme superviseur OS.Ici, la Fin d'exploitation de la tache O est reportée au distributeur 208 par le programme ZZS.A un instant T7, l'ex- ploitation de la tache 3 correspondant à une demande de lan- cement N1 mise en file d'attente est à nouveau lancée.Dans O20 le cas o, en exploitation de la tâche 3, une demande de lancement NIa de degré de priorité inférieur dans le même niveau de tâche I est entrée à un instant T6, l'exploita- tion de la tâche 3 est immédiatement interrompue.L'exploi- tation se déplace vers le programme superviseur OS et les traitements predéterminés sont réalisés, de manière à ce que l'exploitation de la tache 3 soit relancée à un instant T9. Quand l'exploitation de la tache 3 s'est terminée à un ins- tant T10, l'exploitation de l'unité centrale de traitement passe au programme superviseur OS, et le rapport de fin d'exploitation de la tâache 3 est réalisé vers le distribu- teur de tâches goB par le programme E6S.Ensuite, l'exploita- tion de la tache 4 correspondant à une demande de lancement N12 de niveau de priorité plus bas est lancée à un instant Tl'.Quand l'exploitation de la tache 4 s'est terminée à un instant T,,, l'exploitation passe au programme superviseur OS pour réaliser les traitements prédéterminés, et ensuite, l'exploitation de la tâche 6 interrompue jusqu'alors et correspondant à la demande de lancement N21 est relancée à un instant T13. C'est de cette manière qu'est réalisée la commande de priorité des tâches. Les transitions d'états dans la commande de priorité des tâches sont représentées sur la figure l1.L'état "au repos" est l'état de mise en attente de-départ o une quelconque demande de lancement n'est pas encore émise pour une tâche.Quand une demande de lancement est ensuite émise, un indicateur est établi au bit de départ du bloc de comman- de des tâches de manière à indiquer que le lancement est nécessaire.Les périodes de temps o l'état "au repos" passe à l'état "mise en attente" sont déterminées en fonction des niveaux des tâches respectives.La décision de mise en sé- quence est de plus réalisée dans l'état de mise en file d'attente et dépend du degré de priorité.La tâche particu- lière est exploitée après que l'indicateur du bit de départ du bloc de commande des tâches ait été restauré par le dis- tributeur -08 dans le programme superviseur OS et que l'indicateur ait été hissé au bit R [septième bit].C'est aO ainsi qu'est déclenchée l'exploitation de la tâche.Cet état est un état "Exploitation".Quand l'exploitation est termi- née, l'indicateur du bit R du bloc de commande des tâches est remis à zéro, et l'état de fin est terminé.Ensuite, l'état d'exécution se termine, et l'état d'attente commence à nouveau, la délivrance de la demande de lancement suivan- te étant attendue.Cependant, quand une interruption IRQ est arrivée pendant l'exploitation de la tâche, la tâche par- ticulière doit être interrompue de la programmation.Par conséquent, le contenu de l'unité centrale de traitement est mis en dérivation, et l'exécution est interrompue.Cet état est un état de "Disponibilité".Quand un état de remise en exploitation de la tâche a ensuite commence, le contenu mis en dérivation retourne à l'unité centrale de traitement à partir de la zone de dérivation, et l'exploitation est relancée.C'est à dire que l'état de disponibilité revient à nouveau à l'état de marche.De cette manière, chaque pro- gramme de niveau répète les quatre états de la figure 1P. Cette dernière représente d'ailleurs des organigrammes ty- piques, mais il existe une possibilité qu'un indicateur soit établi au bit de départ du bloc de commande des tâ- ches à l'état de disponibilité.Ceci correspond, par exem- pie, à un cas o une synchronisation de demande de lance- ment, proche de la tâche particulière, a été atteinte au cours de l'interruption de départ.A ce moment-là, une prio- rité est donnée à l'indicateur du bit R, et la tâche en interruption est tout d'abord terminée.Ainsi, l'indicateur du bit R disparait, et l'état de mise en File d'attente est établi par l'indicateur du bit de départ sans passer par l'état d'attente. De cette façon, les tâches 0 à 8 sont dans l'un quel- conque des états de la figure 12, respectivement. La figure 13 montre un mode de réalisation concret du système de programmation de la figure 5.Sur cette figure, le programme superviseur OS comporte le programme de trai- tement initial 202, le programme de traitement d'interrup- tion 206, le distributeur de tâches PO8 et le programme de macro-exploitation RZS. Le programme de traitement d'interruption -06 comprend divers programmes. Le traitement d'interruption initiale 602 [dénommé ci-dessous traitement d'interruption INTL) est tel que des interruptions initiales interviennent à chaque moi- tié du nombre des cylindres du moteur [c'est à dire deux fois pour quatre cylindres] par révolution du moteur au moyen de signaux d'interruption initiale produits en syn- chronisme avec la rotation du moteur.Grâce à l'interruption initiale, la durée d'injection du carburant, calculée dans une tâche EGI 61E, est établie dans le registre EGI du cir- cuit intermédiaire d'entrée/sortie 108DS.Le traitement d'in- terruption de conversion analogique-numérique 604 en compor- te deux, à savoir l'interruption du convertisseur analogi- que-numérique I ["ADCI"] et l'interruption du convertisseur analogique-numérique a ["ADCa"].Le convertisseur analogique- numérique I a une précision de 8 bits, et est utilisé pour les entrées de la tension d'alimentation, la température de l'eau de refroidissement, la température d'aspiration, le réglage d'entretien etc... Il commence la conversion au moment o est désigné le point d'entrée au multiplexeur , et il produit l'interruption ADCI1 aprés la fin de la conversion.Cette interruption n'est utilisée qu'avant le démarrage.D'autre part, le convertisseur analogique-numé- rique 128 est utilisé pour l'entrée du débit d'air, et il produit l'interruption ADCE après la fin de la conversion. Cette interruption n'est aussi utilisée qu'avant le démar- rage. Dans un programme de traitement d'interruption d'inter- valles 606 [dénommé ci-aprés "Programme de traitement d'in- terruption INTV"], un signal d'interruption INTV est pro- duit à chaque instant établi dans le registre INTV, par exemple lOms et est utilisé comme signal fondamental pour surveiller la durée d'une tâche à lancer à une période fi- xe.Avec ce signal d'interruption, le rythmeur souple est renouvelé, et une tâche qui a atteint la période donnée est lancée.En outre, dans le programme 608 de traitement d'in- terruption par arrêt du moteur [dénommé ci-aprés "Programme de traitement d'interruption ENST"], l'état d'arrêt du mo- teur est détecté.DJs la détection de ce signal d'interrup- tion INTL, le comptage démarre.Quand le signal d'interrup- tion INTL n'a pas été ensuite détecté dans un temps donné, par exemple I seconde, l'interruption ENST intervient.Si les interruptions ENST sont arrivées trois fois, c'est à dire quand aucun signal d'interruption INTL n'a étédétecté même après 3 secondes par exemple, il est décidé que le moteur a calé, et que l'alimentation à la bobine d'allumage ainsi que le fonctionnement de la pompe à carburant sont arrêtés.Aprés ces traitements, la commande reste en attente jusqu'à ce que le commutateur de démarreur 152 soit allumé. Le résumé des traitements pour les facteurs-d'interruption ci-dessus est indiqué sur le tableau 1. TABLEAU 1 Organigramme des traitements pour les fac- teurs d'interruption En ce qui concerne le programme de traitement initial a02 et le programme de macro-exploitation d-8, les traite- ments déjà établis sont exécutés. Le groupe des tâches lancées par les différentes inter- ruptions est le suivant.Comme tâches appartenant au niveau 0, il y a la tâche d'entrée ADR [dénommée ci-dessous "tâche ADINa"], la tâche de commande d'injection du carbu- rant C"tâche EGI") et la tâche de contrôle de lancement C"tâche MONIT"3. Comme tâches appartenant au niveau 1, il y a Désignation du facteur d'inter- Résumé du traitement ruption INTL Le temps d'injection du carburant est positionné dans le registre EGI AOCI Lancement de la tâche ADIN1 ADCa Lancement de la tache AOIN2 INTV ContrBle des périodes de lancement des taches ADIN2, EGI, MONIT, ADINI, AFSIA et ISC à lancer à pé- riodes fixes, et lancement des tâ- ches qui ont atteint les périodes données ENST Réalisation des traitements d'ar- rêt du moteur, et retour de la commande à l'état initial la tâche ADI ["tâche ADINI") et une tâche de traitement du coefficient de temps C"têche AFSIA"].En outre, comme tâches appartenant au niveau 2, il y a la tâche de commande de ro- tation du ralenti ["tâche ISC"-, une tâche de calcul du mouvement ["tâche HOSEI") et une tâche de pré-traitement de lancement ["tâche ISTRT"). La répartition des divers niveaux de tâches et les fonc- tions des tâches sont répertoriées dans le tableau 2. TABLEAU a REPARTITION DES NIVEAUX DE TACHES ET FONCTIONS DE CES DERNIERES Désignation du Tache Période de Niveau programme N Fonctions lancement O Commande d'interruption de la rotation du OS moteur au moins 5 ms 1 Autres traitements OS Entrée 2, étalonnage, filtrage du conver- tisseur analogique-numérique, commande de ADIN2 l'accélération. 10 m Entrée, étalonnage, filtrage du nombre de 10 m O tours.Coupure du carburant EGI 1 Réglage du temps d'injection du carburant 20 m Réglage du CO MONIT 3 Contrôle du commutateur desdémarreur [COUP40 Réglage du temps d'injection du carburant au 40 m démarrage.Départ et arrêt du rythmeur souple ADIN1 4 Entrée 1, étalonnage, filtrage du convertis- 50 m seur analogique-numérique I AFSIA S Commande du coefficient de temps aprésdémarra- 120 ms ge, aprés-ralenti, aprés-accélération ISC 8 Commande du nombre de tours au ralenti 200 ms 2 HOSEI 9 Calcul du coefficient de mouvement 30 ms Calcul de la valeur initiale EGI.Contrâle du ISTRT 11 commutateur de démarreur COUVERT].Départ et arrêt du rythmeur souple.Pompe à carburant. _______ i Lancement LSI d'entrée/sortie u o' w u4 -4 tu Z2Z Sur ce tableau 2, les périodes de départ des tâches à lancer par les diverses interruptions sont déterminées à l'avance.Ces informations sont mémorisées dans la mémoire morte 104. En-se référant aux figures 14 à 16, on va décrire main- tenant le traitement d'interruption INTV.La Figure 14 re- présente une table d'horloge logicielles prévue dans la mémoire à accès sélectif 106.Cette table est munie de blocs rythmeurs égaux en nombre aux différentes périodes de dé- part à lancer par les diverses interruptions.Ici, le terme "Blocs rythmeurs" signiFie des zones de mémoire auxquelles sont transmises les informations temps sur les périodes de départ des tâches mémorisées dans la mémoire morte 104.Le terme TMB écrit à l'extrémité gauche de la figure signifie la première adresse de la table de rythmeur logiciel dans la mémoire à accès sélectif 106.L'information de durée sur la période de départ [dans le cas o l'interruption INTV est réalisée, par exemple, toutes les 10 ms, c'est une va- leur qui est égale à un nombre entier de fois plus grand] P0 est transmise et mémorisée dans chaque bloc de la table du rythmeur, à partir de la mémoire morte 104 au moment du lancement du moteur. La figure 15 représente un ordinogramme du traitement 606 d'interruption INTV.Sur cette figure, quand le program- me a été lancé à un pas S26 la table du rythmeur, prévue dans la mémoire à accès sélectif 106, est initialisée à un pas 628.C'est à dire que le contenu i du registre d'index est rendu nul [= zéro], et le temps restant T. mémorisé dans le bloc rythmeur d'adresse TMB + 0 de la table du rythmeur est contr lé.Dans ce cas T.=T.Ensuite, c'est au i o pas 630 qu'il est décidé si oui ou non le rythmeur examiné au pas 628 est en arrêt.Plus particulièrement, si le temps restant T. mémorisé dans la table du rythmeur est T.i= 0, le rythmeur est en arrêt ainsi que la tâche particulière à lancer par celui-ci, et la séquence passe à un pas 640 de manière à renouveler la table du rythmeur. Au contraire, si T. est Y 0, la séquence se déplace à P3 un pas 632 o le temps restant du bloc rythmeur est re- nouvelé.Le temps restant est diminué de -1 par rapport à Ti.Ensuite, c'est au pas 634 qu'il est décidé que le ryth- meur de la table a atteint ou non la période de départ.Plus particulièrement, si le temps restant T. est égal à zéro, la période de départ a été atteinte, et dans ce cas la sé- quence passe à un pas 636.Dans le cas contraire, la séquence saute au pas 640 de manière à renouveler la table du rythmeur.Si cette table a atteint le période de départ, le temps restant T. est initialisé au pas 636.C'est à dire z que l'information de temps de la période de départ de la tâche particulière est transmise de la mémoire morte 104 à la mémoire à accès sélectif 106.Aprés initialisation au pas 636 du temps restant Ti, la demande de lancement pour la tâche correspondant à la table du rythmeur est réalisée à un pas 638.Ensuite, au pas 640,le table du rythmeur est renouvelée.C'est à dire que le contenu du registre d'index est augmenté de +1.De plus, c'est à un pas 642 qu'il est décidé que toutes les tables ont été ou non contrôlées. 2O Comme les tables du rythmeur IN+1) sont prévues dans le pré- sent mode de réalisation représenté sur la figure 14, le contrôle de toutes les tables est terminé si le contenu i du registre d'index est i=N+ 1.Dans ce cas, le programme de traitement d'interruption INTV 606 se termine à un pas 644.Au contraire, si au pas 642 toutes les tables n'ont pas été contrôlées, la séquence retourne au pas 630 et les mêmes traitements établis ci-dessus sont réalisés. De la manière décrits ci-dessus, la demande de lance- ment pour la tâche particulière est émise selon les diver- ses interruptions, et l'exploitation de la tâche particu- liàre se fait sur la base de la demande.Cependant, toutes les tâches répertoriées sur le tableau Z ne sont pas tou- jours exploitées sur la base des consignes d'exploitation du moteur, l'information temps sur la période de départ de n'importe quel groupe de tâches prévues dans la mémoire morte 104 est choisie, et elle est transmise puis mémori- sée dans la table du rythmeur de la mémoire à accès sélec- -2464373 a4 tif 106.A titre d'exemple, si l'on suppose que la période de lancement de la tâche donnée est de 2O ms, la tâche est lancée à chaque fois.Si le lancement de la tâche doit être réalisé de façon continue en fonction des conditions d'exploitation, la table du rythmeur correspondant à la tâche particulière est renouvelée et initialisée à chaque fois.En se référant maintenant à un tableau des temps représenté sur la figure 16, on va décrire l'état dans le- quel les groupes de tâches sont lancés et arrêtés selon les conditions de fonctionnement du moteur.Quand la puis- sance est lachée en actionnant le commutateur de démarreur 152, l'unité centrale de traitement fonctionne, et "1" est établi à un indicateur logiciel IST et à un indicateur logiciel EM.L'indicateur logiciel IST indique que le mo- teur se trouve dans l'état précédent le démarrage, tandis que l'indicateur logiciel EM est destiné à empê- cher l'interruption ENST.Grâce à ces deux indicateurs, il est possible de savoir si le moteur se trouve dans un état précédent le démarrage,en démiarrge oueprès ceMii-ci.Qamndl'tdemi- se en puissance a été établi en actionnant le commutateur de démarreur 152, la tâche ADIN1 est la première lancée, et les données nécessaires au lancement du moteur, par exemple les informations d'entrée telles que la température de l'eau de refroidissement et la tension de la batterie, sont appliquées au convertisseur analogique-numérique 122 par le multiplexeur 120, au moyen des différents détecteurs. La tâche HOSEI est lances à chaque cycle d'entrées de ces données, les calculs de mouvements étant réalisés sur la base des informations d'entrée.A chaque cycle d'entrées des données des différents détecteurs au convertisseur analogique-numérique 1Z2 par la tâche ADIN1I, la tâche ISTRT est lancée pour calculer la quantité de carburant injecté nécessaire durant le lancement du moteur.Les trois tâches ci-dessus, c'est à dire, la tâche ADIN1, la tâche HOSEI et la tâche ISTRT sont lancées par le programme de traitement initial D202. Quand le commutateur de démarreur 152 est mis en cir- z5 cuit, des lancements sont appliqués aux trois tâches ADIN1, MONIT et ADIN2 par le signal d'interruption ISTRT. Ces tâches ne doivent être exploitées que dans la période de temps o le commutateur de démarreur 152 est en circuit Cdurant le démarrage du moteur)].Dans cette période, les informations de temps des périodes de départ prédéterminées, provenant de la mémoire morte 104, sont transmises et mémorisées dans les tables du rythmeur prévues dans la mémoire à accès sélectif 106 et correspondant respective- ment aux taches.Dans cette même période, le temps restant Ti de la période de départ de la table du rythmeur est initialisé, et la période de lancement est établie de fa- con répétée.La tâche MONIT est destinée à calculer la quantité de carburant injecté au moment du démarrage du moteur, et elle n'est pas nécessaire après le lancement de ce dernier.Par conséquent, quand l'exploitation de la tâche a achevé un cycle prédéterminé, le lancement du rythmeur est arrêté, et le signal d'arrêt émis à la fin de la tâche est utilisé pour lancer le groupe des autres tâches nécessaires après le démarrage du moteur. Ici, l'arrêt de la tâche est réalisé par le rythmeur de telle fagon que "0" soit écrit dans la table correspondante de la tâche par un signal indiquant la fin de la tâche au moment de sa décision, ou en d'autres termes quand le a5 contenu du rythmeur est remis à zéro. Compte tenu de tout ce qui précède, le présent mode de réalisation est construit de manière à réaliser simplement les lancements et les arrêts des tâches au moyen des rythmeurs, et par conséquent il devient possible d'exécuter une supervision efficace et sûre de la pluralité des tâches présentant des périodes de lancement inégales. Un circuit générateurIRQ est représenté sur la figure 17.Un registre 735, un compteur 736, un comparateur 737 et une bascule 738 constituent un circuit générateur pour le signal INTV IRQ.La période de production du INTV IRQ, par exemple 10 [ms), dans le présent mode de réalisation, est positionnée dans le registre 735.0'autre part, des impul- P6 sions d'horloge sont positionnées dans le compteur 736. Quand la valeur de ce dernier est en accord avec le con- tenu du registre 735, la bascule 738 est amenée à l'état de positionnement.Le compteur 736 est remis à zéro par l'état de positionnement, et relance le comptage.En consé- quence, le signal INTV IRQ est produit à chaque temps fixe Eo10 msec). Un registre 741, un compteur 742, un comparateur 743 et une bascule 744 constituent un circuit générateur du signal ENST IRQ qui détecte l'arrêt du moteur.Le registre 741, le compteur 742 et le comparateur 743 sont identiques à ceux décrits ci-dessus, et le signal ENST IRQ est produit quand la valeur calculée a etteint la valeur du registre 741.Cependant, durant la rotation du moteur, le compteur 742 est remis à zéro par les impulsions REF pro- duites aux intervalles de l'angle de lancement fixe venant du détecteur, de sorte que la valeur du compteur 742 n'at- teigne pas la valeur du registre 741 et que le signal ENST IRQ n'apparaisse pas. z0 Le signal INTV IRQ prcduit dans la bascule 738, le si- gnal ENST IRQ produit dans la bascule 744 et le signal IRQ produit dans le circuit ADC1 ou AOCZ sont respectivement positionnés dans des bascules 740, 746, et 764 ou 768. Des signaux destinés à produire ou empêcher les signaux P5 IRQ sont positionnés dans des bascules 739, 745, 762 et 766.Si "H" est positionné dans les bascules 739, 745, 76E et 766, les portes ET 748, 750, 770 et 772 sont validées. Quand le signal IRQ est produit, il est immédiatement fourni d'une porte OU 751. En conséquence, en fonction de l'établissement de "H" ou "L" dans les bascules respectives 739, 745, 762 et 766, il est possible d'empêcher la production du si- gnal IRQ ou de libérer l'interdiction.Quand le signal IRQ a été produit, la cause de cette production est connue en chargeant le contenu des bascules 740, 746, 764 et 768 dans l'unité centrale de traitement. Si l'unité centrale de traitement a commencé l'exploi- tation du programme en réponse au signal IRQ; ce dernier doit être remis à zéro, et en conséquence l'une des bas- cules 740, 746, 764 et 768 concernée par le signal IRQ qui a commencé l'exploitation est remise à zéro. La figure 18 est un organigramme du programme INJ qui est activé à un intervalle ou période de temps de msec.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 à accès sélectif 106 par exécution de la tache ADC2IN après conversion analogique-numérique est lue à un pas 800.La valeur réelle de QA lue au pas 570 est compa- rée avec des valeurs QA positionnées en xn du plan d'implantation AF prévu dans la mémoire morte 104, de manière à déterminer n de xn correspondant à la valeur réelle de QA.La donnée de vitesse du moteur N mémorisée dans la mémoire à accès sélectif par exécution de la tâche RPMIN est extraite à un pas 804.La valeur réelle de N telle qu'elle est lue, est comparée avec les valeurs de N positionnées en Yn dans le plan d'implantation AF à un pas 0 806, de manière à déterminer n de yn correspondant à la valeur réelle de N.A un pas 808, une adresse du plan d'im- plantation AF est déterminée sur la base de xn et yn dé- terminés respectivement au pas 802.La quantité d'alimenta- tion en carburant,mémorisée à l'adresse déterminée, est extraite et placée dans le registre INJD 134 représenté sur la figure 4 à un pas 810. La figure 19 représente un organigramme du programme IGNCAL.A un pas 802, la valeur numérique QA, représentant la sortie du débitmàtre d'air et mémorisée dans la mémoire à accès sélectif par exécution du programme ADCEIN est extraite.A un pas 82, la valeur effective de QA telle qu'elle est extraite est comparée avec des valeurs de QA positionnées en xn du plan d'implantation ADV pré- vu dans la mémoire morte 104, de manière à déterminer n de xn qui correspond à la valeur réelle de QA.La donnée de vitesse du moteur N mémorisée dans la mémoire à accès sélectif par exécution du programme RPMIN est extrai- te à un pas 8Z4.A un pas 826, la valeur réelle de N telle qu'elle est extraite est comparée avec des valeurs de N positionnées en yn du plan d'implantation ADV, de manière à déterminer n de yn qui correspond à la valeur réelle de N.A un pas 88, une adresse du ADV est déter- minée sur la base de xn et yn déterminés respectivement aux pas 82 et 86.A un pas 830, le réglage de l'allumage mémorisé à l'adresse déterminée est extrait et placé dans le registre ADV, représenté sur la figure 4. Le programme HOSEI est prévu pour déterminer des coefficients correcteurs, par exemple pour les températu- res de l'atmosphère et de l'eau de refroidissement. Comme ces paramètres ne subissent que de faibles varia- tions, il suffit de déterminer les coefficients correc- teurs à long terme. Le programme ADCIN est décrit, par exemple dans le dépôt US N 952-75 du 18 octobre 1978 au nom de Masao Takato et al, sous le titre "Input Signal Processor Used in Electronic Engine Control Apparatus" attribué à HITACHI LTD, et dans le brevet US N 78468 du Z4 septembre 1979 au nom de Takao Sasayama et al, sous le titre "Hot-Wire Flow Flate Measuring Apparatus" attribué aussi à HITACHI LTD. Le programme RPMIN est décrit dans le brevet US N095P275, par exemple. Le programme DWLCAL est décrit, par exemple, dans la demande de brevet US de 1980, au nom de Toshio Furuhashi sous le titre "Method for controlling an internal combus- tion engine" et attribué à HITACHI LTD. Un exemple du programme ENST est décrit dans le dépôt US N 952531 du 18 octobre 1978, au nom de Masumi Iwai et al, sous le titre "Electronic Engine Control Apparatus" et attribué à HITACHI LTD. Le programme ISC est destiné à commander le degré d'ouverture de la soupape de dérivation d'air 6S, au ralenti.La figure ZO montre les détails de ce programme. Quand il est décidé que le commutateur du ralenti 148 est ouvert en contrôlant DIO de la figure 4 à un pas 850, le premier bit du registre DOUT est au niveau "L", de manière à désigner la soupape de dérivation d'air 62. Cette dernière est donc commandée en fonction de la va- leur placée dans le registre EGRD de la figure 4.Cette soupape 6E, destinée à commander le débit d'air par le con- duit de dérivation, est commandée dans des conditions spécifiques de fonctionnement.Plus particulièrement, dans le cas d'un fonctionnement à basse température, par exemple en hiver, ou lors du démarrage du moteur froid, ou dans le cas d'un fonctionnement en charge importante due à l'utilisation d'air conditionné ou analogue, le débit d'air dans le conduit de dérivation est accru. A un pas 852, le coefficient d'utilisation de la sou- pape de dérivation d'air est déterminé et positionné dans le registre EGRD, en fonction de la température de l'eau de refroidissement du moteur. C'est au pas 854 qu'il est décidé que le commutateur du ralenti 148 est fermé ou non.Si ce commutateur est ?O fermé, l'indicateur de demande d'activation du programme ISC est positionné à un pas 856.En d'autres termes, un bit "1" est positionné en Q10 du mot de commande de tâche TCWIO de la mémoire à accès sélectif, représentée sur la figure 16.En même temps, le premier bit du regis- m5 tre DOUT du DIO 174 est positionné au niveau "L". Ensuite, une indication de fin est émise. * D'autre part, quand le commutateur du ralenti est ou- vert, une indication de fin se fait immédiatement.Ce programme n'est donc plus executé.De cette façon, quand le commutateur du ralenti est fermé au pas 856, l'indica- teur de demande d'activation du programme ISC est position- né et l'indication de fin se fait alors. La figure Z1 montre un organigramme du programme EGRCAL.Quand le commutateur du ralenti est ouvert, la soupape de dérivation d'air 90 n'est pas commandée, mais la recirculation des gaz d'échappement s'effectue.Dans ce but, le système EGR de régulation de la quantité des gaz d'échappement remise en circulation est actionné.Pour actionner le système EGR, le premier bit du registre DOUT du DIO est positionné au niveau "H" à un pas 860, de manière à ce que le système EGR de la figure 3 soit actionné selon la valeur établie au registre EGRD de la figure 4. Ensuite, une opération arithmétique pour déterminer la quantité EGR est réalisée.C'est à un pas 86E que l'on contrôle si la température TW de l'eau de refroidissement est supérieure à une valeur prédéter- minée TA C.Si la réponse est affirmative l'opération EGR est invalidée ou coupée.Dans ce but, zéro est établi au registre EGRD pour effectuer l'opération EGR CUT à un pas 866.Quand la température TW de l'eau de refroidissement est inférieure à la valeur prédéterminée TA OC, le program- me se poursuit au pas 864 o il est décidé si la tempéra- ture TW de l'eau de refroidissement est inférieure à une valeur prédéterminée TB C.S'il en est ainsi, l'opération EGR est alors interdite. Dans ce but, zéro est établi au registre EGRD à un pas 866.La température TA au pas 862 P0 représente la limite supérieure, tandis que la température TB au pas 864 représente la limite inférieure.C'est seule- ment quand la température TW de l'eau de refroidissement du moteur se situe entre TA et TB que l'opération EGR est réalisée.C'est à dire que le programme se poursuit à un pas 868 o la quantité EGR est déterminée de façon arithmétique, sur la base de la quantité d'air aspiré QA et du nombre de tours N du moteur, par voie de recher- ches topographiques.Le plan d'implantation utilisé pour cette recherche est prévu dans la mémoire morte 104.Les valeurs extraites sont établies au registre EGRD.De cette manière, la soupape pour opération EGR est ouverte en fonction de la valeur placée dans le registre EGRD et du coefficient d'utilisation établi à l'avance dans le regis- tre EGRP, de façon à réaliser l'opération EGR. A un pas 872, il est décidé si le commutateur du ralen- ti est fermé en contrôlant le DI0.Quand ce commutateur est ouvert, l'indicateur de demande d'activation pour le programme EGRCAL est positionné.En d'autres termes, le bit "1" est positionné en QIt du mot de commande de tâche TCW11 de la mémoire à accès sélectif.En outre, le premier bit du registre DOUT du 01D0 est positionné au niveau "H". Ensuite, une indication de fin est émise. Bien que le précédent mode de réalisation ait été décrit en se référant à la régulation d'un moteur auto- mobile, il va de soi que l'invention n'est nullement limitée à ce mode particulier mais qu'elle peut s'appli- quer à d'autres unités de commande de calculateur. Dans l'invention décrite ci-dessus, les rythmeurs souples sont prévus sous forme de tâches, ou les blocs de commande destinés à superviser les tâches sont établis comme des niveaux de taches dans la mémoire: à accès sélec- tif de sorte qu'à chaque passage de la tâche, le rapport de fin d'exploitation de la tache particulière puisse être réalisé.Il est donc possible de réaliser une méthode de régulation des moteurs en réduisant le facteur charge du microprocesseur et en améliorant la capacité de régula- tion. REVENDICATIONS 1 - Méthode de régulation électronique du fonction- nement d'un moteur à combustion interne avec système de régulation, caractérisée en ce que ledit système de régulation comporte des détecteurs détectant les condi- tions de fonctionnement dudit moteur, une unité de calcul destinée à déterminer arithmétiquement les grandeurs de régulation dudit moteur par traitement numérique des signaux de sortie provenant desdits détecteurs, un système de mémoires pour le stockage des programmes et données nécessaires à l'exécution desdites opérations ari- thmétiques, et un système de commande pour la régulation dudit moteur en réponse aux résultats desdites opérations arithmétiques, lesdits programmes étant classifiés sous forme d'une pluralité de tâches, sur la base de la fonction de régulation, et chaque tâche classifiée ayant sa propre période de lancement, établie respectivement en fonction de son influence sur le moteur et de son niveau de priorité; ladite méthode étant caractérisée aussi en ce 2O qu'elle comprend les stades suivants A. un premier pas d'établissement de l'indicateur de demande de lancement à l'intérieur du système de mémoires, en réponse à l'écoulement de la période de lancement, B. un second pas de recherche fructueuse dudit indicateur P5 de lancement, à partir de la tâche de plus haut niveau, C. un troisième pas de lecture d'une adresse de lancement de la tâche spécifique, sur la base des résultats de la recherche, 0. un quatrième pas d'exécution de la tâche spécifique, d'établissement d'un indicateur d'exécution en utilisant une adresse de lancement et d'effacement de l'indicateur de demande de lancement, E. un cinquième pas d'effacement dudit indicateur d'exécu- tion, basé sur l'achèvement de l'exécution de ladite tâche spécifique, et F. un sixième pas de répétition des pas un à cinq. Z - Méthode de régulation selon la revendication 1, caractérisée en ce que ledit système de mémoire comprend une pluralité de zones de niveau, en Fonction desdits niveaux de priorité des programmes et o chaque zone de niveau comporte les zones d'indicateurs de demande de lancement correspondant à tous les programmes du niveau de priorité correspondant, ledit premier pas établissant l'indicateur de demande de lancement dans la zone d'indica- teurs de demande de lancement correspondante du système de mémoires, et ledit deuxième pas recherchant fructueuse- ment ledit indicateur de demande de lancement à partir de la zone de plus haut niveau. 3 - Méthode de régulation selon la revendication 2, caractérisée en ce que chacune desdites zones de niveau du système de mémoires comporte une zone d'indicateurs d'exécution, ledit quatrième pas établissant l'indicateur d'exécution dans la zone d'indicateurs d'exécution de niveau de priorité correspondant, et ledit cinquième pas effaçant l'indicateur d'exécution du niveau correspondant, sur la base d'une modification de l'exécution de la tâche. PZ0 4 - Méthode de régulation selon la revendication 3, caractérisée en ce que ledit second pas comprend,en outre: G. un septième pas de recherche de l'état d'établissement dudit indicateur d'exécution du groupe de tâches de plus Z5 haut niveau, H. un huitième pas de recherche de l'état d'établissement desdits indicateurs de demande de lancement desdites tâches comprenant le plus haut niveau, en fonction du résultat du septième pas, I. un neuvième pas de recherche de l'état d'établisse- ment dudit indicateur d'exécution du groupe de tâches du plus bas niveau, en fonction du résultat du septième pas, et J. un dixième pas de recherche de l'état d'établissement desdits indicateurs de demande de lancement desdites tâches comprenant le plus bas niveau, en fonction du résultat de la neuvième étape. - Méthode de régulation selon la revendication 4, caractérisée en ce qu'elle comprend K. un onzième pas de recherche d'une tâche interrompue et d'exécution de la tâche interrompue, en réponse au résultat du septième ou du neuvième pas, et un douzième pas de lancement de l'exécution de la tâche correspondant à l'indicateur de demande de lancement répondant au résultat du huitième ou du dixième pas.