FR 2672140 A1 19920731 FR 9116408 A 19911231 "Système à multicalculateur" L'invention concerne un système à multicalculateur en particulier pour la commande de processus dans les véhicules à moteur, dans lequel au5 moins deux calculateurs accèdent en commun à une mémoire. Dans ces dispositifs, il survient des difficultés, quand deux calculateurs accèdent en même temps à la cellule de mémoire Pour éviter cela, des10 mesures coûteuses sont nécessaires, qui donnent l'assurance que plusieurs calculateurs n'accéderont pas en même temps à la même cellule de mémoire. Objet de l'invention La présente invention a pour objet de garantir dans un système à plusieurs calculateurs la sécurité de la transmission des données, de minimiser les retards occasionnés par les échanges de données entre les calculateurs et d'optimiser la durée d'occupation des différents calculateurs ainsi que de tout le système. Ce système est caractérisé en ce que la mémoire est subdivisée en au moins deux zones, en ce qu'un premier calculateur accède à une zone de mémoire seulement en lisant et un deuxième calculateur25 seulement en enregistrant et en ce que le second calculateur accède seulement en lisant à une autre zone de mémoire et le premier calculateur seulement en enregistrant, les calculateurs étant synchronisés de telle façon que les calculateurs accèdent au même instant et de la même manière à la mémoire. Avantages de l'invention Le système à multicalculateur selon l'invention a l'avantage qu'aucune régulation d'accès n'est nécessaire Il n'est en aucune façon nécessaire d'avoir des moyens qui règlent l'accès des différents calculateurs à la mémoire Grâce à la synchronisation des calculateurs chaque calculateur est informé sur les fonctions que l'autre calculateur remplit justement Il en résulte l'avantage que les différents calculs peuvent avoir lieu dans le calculateur que l'on veut Toutes les données sont à la disposition de tous les calculateurs jusqu'en même temps Ainsi il n'est pas nécessaire, que le calculateur qui est relié au capteur, exploite aussi ses signaux Cette exploitation peut être entreprise par un autre calculateur De cette façon, on est assuré que tous les calculateurs sont chargés autant les uns que les autres. Selon une autre caractéristique de l'inven- tion, tous les calculateurs exécutent respectivement la même suite de fonctions (lire, calculer, enregistrer). Selon une autre caractéristique de l'inven- tion, un maître-calculateur délivre une interruption à au moins un calculateur asservi à partir duquel tous les calculateurs démarreront avec la même suite de fonctions. Selon une autre caractéristique de l'inven- tion, à la suite de l'interruption les calculateurs accèdent à la mémoire d'abord en lisant et ensuite en enregistrant. Selon une autre caractéristique de l'inven- tion, le calculateur asservi rend possible un fonctionnement de secours en cas de panne du maître- calculateur, dont il assume en partie sa fonction. Selon une autre caractéristique de l'inven- tion, le maître-calculateur, en cas de panne du calculateur asservi rend possible un fonctionnement de secours, dont il assume sa fonction en partie. Selon une autre caractéristique de l'inven- tion, le maître-calculateur calcule un signal de débit de carburant et le calculateur asservi un signal de début d'injection. Selon une autre caractéristique de l'inven- tion, le maître-calculateur calcule des signaux de déclenchement et le calculateur asservi calcule le signal de débit de carburant et le signal de début d'injection, tandis qu'un autre calculateur asservi assume la prise en charge et la délivrance de données. Selon une autre caractéristique de l'inven- tion, les zones de mémoire qui ne sont pas nécessaires à l'échange de données sont utilisées comme mémoire externe pour les micro-calculateurs. Dessins L'invention va être explicitée à partir des modes de réalisation représentés aux dessins, dans lesquels: la figure 1 représente un diagramme par blocs d'un système à multicalculateur à deux calculateurs, la figure 2 représnte un diagramme par bloc d'un système à multicalculateur à trois calculateurs, la figure 3 contient un diagramme en fonction du temps des différentes fonctions du mode de réalisation à deux calculateurs, la figure 4 contient un diagramme correspondant pour la version à trois calculateurs, la figure 5 montre une configuration dans laquelle des zones de mémoire non utilisées pour l'échange de données sont utilisées autrement. La figure 1 montre un diagramme par blocs d'un système à multicalculateur avec deux calculateurs Le premier calculateur 100 reçoit de différents capteurs 120 des signaux qui lui sont acheminés et délivre de son côté des signaux à différentes unités de commande 130 Le deuxième calculateur 110 reçoit également des signaux de différents capteurs 140 et délivre des signaux à différentes unités de commande 150 Les deux calculateurs 100 et 110 sont en liaison l'un avec l'autre par l'intermédiaire d'une mémoire 160 Cette mémoire est subdivisée en deux zones 161 et 152 La première zone 161 sert au transfert de données du premier calculateur 100 dans le deuxième calculateur La deuxième zone 162 sert au transfert de données du deuxième calculateur 110 dans le oremier calculateur 100. Le premier calculateur 100 peut être désigné comme maître-calculateur Dans un moteur à combustion interne à auto-allumage, le premier calculateur calcule de préférence un signal qui caractérise le débit de carburant à injecter Il délivre alors un signal de commande correspondant (signal de débit de carburant) à l'unité de commande déterminant le débit. Le calcul du débit de carburant à injecter a lieu en fonction du signal de sortie d'un capteur de la vitesse de rotation et d'autres capteurs. Le deuxième calculateur 110 entreprend dans ce cas le calcul du début de l'injection Pour cela, il délivre un signal au début d'injection à une unité de commande correspondante 150 Dans ce cas, le deuxième calculateur retraite aussi au moins le signal de sortie d'un capteur de la vitesse de rotation. L'invention n'est pas limitée à la commande de moteurs à combustion interne de type diesel, on peut aussi la reporter sur d'autres processus de commande et de régulation Dans un moteur à combustion interne à allumage commandé, un calculateur peut par exemple entreprendre la détermination des signaux de commande pour la commande du clapet d'étranglement et un autre la détermination du point d'allumage ou du débit à injecter En outre, il est envisageable que les calculateurs exercent par exemple des fonctions telles que la commande de la transmission, la protection antiblocage, le recyclage des gaz d'échappement ou la régulation de la pression d'admission. En cas de panne du deuxième calculateur 110, le premier calculateur 100 remplit en partie sa fonction Dans ce cas, l'étendue de la fonction est limitée au calcul du débit et du début de l'injection. De cette façon, il est possible d'avoir un fonctionnement de secours, même s'il n'est pas aussi confortable En cas de panne du premier calculateur , le second calculateur 110 remplit également, dans une étendue limitée, les fonctions du premier calculateur Pour cela, il est nécessaire que chacun des deux calculateurs puisse accéder aux deux unités de commande. Mais le procédé selon l'invention n'est pas seulement limité à un tel exemple de réalisation On peut aussi prévoir que l'un des calculateurs est seulement relié à des capteurs et que ce calculateur exploite de façon correspondante les signaux livrés par ces capteurs L'autre calculateur est alors relié aux unités de commande et calcule à partir des valeurs du premier calculateur les signaux d'actionnement pour les unités de commande. Pour le transfert des données, les deux calculateurs sont reliés à une mémoire 160 Il est à cet égard particulièrement avantageux d'utiliser une mémoire RAM à deux ports Un tel système possède deux raccords ou liaisons-bus Il peut donc être relié à deux calculateurs De cette façon, il est possible que deux calculateurs y accèdent. Selon l'invention, la mémoire 160 est subdivisée en deux zones 161 et 162 Le premier calculateur peut seulement accéder en enregistrant à la première zone 161 Dans cette zone le premier calculateur 100 ne peut donc qu'enregistrer des valeurs Le deuxième calculateur 110 par contre ne peut accéder à cette zone 161 qu'en lisant Le deuxième calculateur 110 ne peut donc que sélectionner des données à partir de cette zone 161 La zone 161 sert donc au transfert de données du premier calculateur 100 au deuxième calculateur 120 La deuxième zone 162 sert par contre au transfert de données du deuxième calculateur 110 au premier calculateur 100 Le premier calculateur 100 peut donc accéder à la deuxième zone 162 qu'en lisant et le deuxième calculateur 110 qu'en enregistrant. Dans ce cas, on doit être assuré que deux calculateurs ne vont pas accéder en même temps à une cellule de mémoire Dans les systèmes connus cela est garanti par des moyens importants relevant de la technique des circuits ou par des procédés coûteux. Le système à multicalculateur selon l'invention résout ce problème en procédant comme suit Les deux calculateurs travaillent en synchronisme, c'est-à-dire que deux calculateurs exécutent en même temps des fonctions correspondantes. Ceci signifie que deux calculateurs accèdent par exemple en lisant en même temps à la mémoire 160. Comme le premier calculateur ne sélectionne que des valeurs à partir de la deuxième zone 162 et comme le deuxième calculateur 110 ne sélectionne que des valeurs à partir de la première zone 161, il ne se pose pas de problèmes d'accès Cela vaut aussi de façon correspondante pour l'accès d'enregistrement. Le déroulement des différentes fonctions va être expliqué à partir du diagramme à la figure 3. Habituellement, un calculateur est désigné comme maître- calculateur Dans cet exemple de réalisation celui-ci est le premier calculateur Ri Après qu'une interruption ait atteint de l'extérieur le premier calculateur, celui-ci démarre avec une suite de fonctions prédéterminée En même temps, le premier calculateur crée une interruption D Pl sur le deuxième calculateur R 2 A partir de cette interruption, le deuxième calculateur démarre aussi avec une suite de fonctions déterminée L'interruption qui fait démarrer le calculateur Rl peut d'une part être orientée dans le temps ou orientée en fonction d'un événement C'est ainsi que cette interruption peut être déclenchée par une fréquence de cycles prédéfinie toujours aux mêmes intervalles de temps D'autre part, il est avantageux que ce calculateur soit déclenché en étant orienté par un événement, ceci signifie que lorsqu'il existe un événement déterminé, l'interruption est déclenchée Un tel événement est par exemple la survenance d'une impulsion de vitesse de rotation. Après la survenance d'une interruption, les deux calculateurs démarrent avec la même suite de fonctions prédéfinie Dans un premier intervalle de temps E, les données sont extraites de la mémoire 160 pour être introduites dans le calculateur respectif (fonction d'introduction) Dans un deuxième intervalle de temps R, les calculateurs calculent à partir de ces données des valeurs déterminées (fonction calcul). Dans un intervalle de temps S y faisant suite, des signaux de capteurs sont détectés Ensuite, les valeurs calculées et les signaux de capteurs détectés, sont extraits dans la mémoire 160 dans l'intervalle de temps A (fonction extraction). Après un certain laps de temps, il se produit alors une interruption renouvelée pour le calculateur 1, et celui-ci délivre de nouveau une interruption D Pl au calculateur 2 Ensuite, les deux calculateurs accomplissent de nouveau les différentes fonctions. Comme le montre le diagramme, les deux calculateurs Ri et R 2 accèdent dans un premier intervalle de temps E à la mémoire 160 en lisant seulement C'est seulement dans un intervalle de temps ultérieur que les deux calculateurs accèdent à la mémoire en enregistrant Les deux fonctions introduction et extraction, sont séparées par la fonction calcule De cette façon, on est assuré qu'il n'y aura pas d'accès simultanément à une mémoire en enregistrant et en lisant. Grâce à la détection des valeurs des capteurs peu de temps avant la délivrance des valeurs dans la mémoire, ces valeurs sont disponibles dans les deux calculateurs De cette façon, on est aussi assuré que des valeurs sont mises à la disposition d'un calculateur par un capteur, auquel il n'est pas directement relié Les valeurs des capteurs 140 sont aussi à la disposition du premier calculateur 100. Lors de chaque interruption, les mêmes valeurs sont à la disposition de tous les calculateurs après l'introduction du contenu de la mémoire De cette façon, il est permis que les différents calculs puissent être répartis de façon égale sur les calculateurs C'est ainsi que le calculateur 1, qui calcule à proprement parler seulement le débit de carburant, peut assumer des tâches du calculateur 1. Grâce à cela, on est assuré d'avoir une charge égale des deux calculateurs Les différents calculs peuvent être exécutés dans le calculateur que l'on veut Le calculateur 1 peut par exemple en partant des valeurs des capteurs 140 former des signaux pour actionnement des différentes unités de commande 150, qui en fait sont associés aux deuxième calculateur Ceci permet, entre autres, l'avantage que l'on peut coupler des calculateurs ayant de bonnes propriétés mathématiques avec des calculateurs qui présentent un bon comportement d'entrée et de sortie. La figure 2 montre un diagramme par blocs pour un système à trois calculateurs Le premier calculateur 200 détecte des signaux d'entrée de différents capteurs 202 et délivre des signaux de commande à différentes unités de commande 204 Le deuxième calculateur 300 détecte des signaux des capteurs 302 et délivre des signaux de commande à l'unité de commande 304 Le troisième calculateur 400 détecte des signaux des capteurs 402 et délivre des signaux de commande à l'unité de commande 404. Le premier et le deuxième calculateur sont reliés chacun à la mémoire 350 Celle-ci est de préférence subdivisée en trois zones A la première zone 351 et la deuxième zone 352, le deuxième calculateur peut seulement accéder en lisant A la troisième zone 353 de la mémoire, il ne peut par contre accéder qu'en enregistrant Le premier calculateur ne peut accéder à la première et à la seconde zone de la- mémoire qu'en enregistrant et à la troisième zone 353 de la mémoire qu'en lisant. Le premier et le troisième calculateur sont respectivement reliés à la mémoire 450 Celle-ci est de préférence subdivisée en trois zones A la première zone 451 de la mémoire 450, le troisième calculateur n'accède qu'en enregistrant et le premier calculateur seulement en lisant A la deuxième et à la troisième zone 452, 453 de la mémoire 450, le premier calculateur n'accède qu'en enregistrant et le troisième calculateur 400 qu'en lisant. Par les lignes en traits et points, on a indiqué que dans la première zone 351 de la mémoire 350, les données sont introduites par le premier calculateur 200, données qu'il a reçu du troisième calculateur 400 En outre, on a indiqué en hachures que dans la troisième zone 453 de la mémoire 450 le premier calculateur 200 introduit les données qu'il a reçues du deuxième calculateur 300. On a une configuration particulièrement avantageuse de l'invention dans le système à trois calculateurs, quand le premier calculateur 200 assume uniquement le calcul des signaux d'actionnement pour les unités de commande Le deuxième calculateur 300 assume alors le calcul des données de base (signal de débit de carburant, signal de débit d'injection) pour le premier calculateur 200. A la figure 4, on a représenté un diagramme du déroulement des différentes fonctions Dans cet exemple de réalisation, le premier calculateur 200 est le maître-calculateur Si celui-ci reçoit de l'extérieur une impulsion de déclenchement orientée en fonction d'un événement ou en fonction du temps, il donne ensuite un signal d'interruption au deuxième calculateur 300 et au troisième calculateur 400 Après l'interruption, les trois calculateurs désignent avec il la fonction d'introduction E des données à partir de la mémoire DPRAM Après l'introduction des données, différentes valeurs sont calculées en partant de ces données Ceci est désigné sur le diagramme par la référence R A la suite de ceci les valeurs de différents capteurs sont introduites au cours d'une autre séquence S Les différents calculateurs enregistrent les valeurs des capteurs qui leurs sont directement reliées Dans ce cas, il n'est pas obligatoire que tous les calculateurs soient reliés à des capteurs On peut penser que seul un calculateur, par exemple le troisième calculateur 400 est en liaison avec des capteurs Dans ce cas, cette fonction n'existe pas dans les autres calculateurs Ensuite, les données sont extraites pour la mémoire DPRAM (fonction A) Ceci signifie que les données sont enregistrées dans la mémoire DPRAM. Le premier calculateur 200 lit (fonction E) les données à partir de la zone 353 de la mémoire 350 et de la zone 451 de la mémoire 450 Le deuxième calculateur 300 lit les données à partir des zones 351, 352 et le troisième calculateur 400 lit les données à partir de la zone de mémoire 453 et de la zone de mémoire 452 Pendant la fonction d'introduction E, tous les calculateurs accèdent donc à des zones de mémoire différentes A chaque zone de mémoire n'accède qu'un seul calculateur Pendant la fonction A (enregistrement dans la mémoire), au cours de laquelle on enregistre dans les différentes zones de mémoire, le premier calculateur 200 fait un enregistrement dans la zone de mémoire 352 et dans la zone de mémoire 452 Le troisième calculateur fait un enregistrement dans la zone de mémoire 451 et le deuxième calculateur 300 fait un enregistrement dans la zone de mémoire 353. A ce déroulement de fonction succède encore une fois un autre déroulement de fonction, dans lequel il n'y a que le maître- calculateur (premier calculateur 200) qui soit actif Les données que le deuxième calculateur a enregistrées dans la mémoire, sont alors à la disposition du deuxième et du premier calculateur Le troisième calculateur ne peut pas encore accéder aux données du deuxième calculateur et inversement En conséquence, il est nécessaire que le premier calculateur enregistre dans un autre déroulement de fonction les données du deuxième calculateur dans la mémoire 450 et les données du troisième calculateur dans la mémoire 350. Le premier calculateur 200 introduit des valeurs à partir de la mémoire 353 et de la mémoire 451 Il en résulte en conséquence un accès de lecture à la mémoire RAM à deux ports Après une séquence possible de calcul, il extrait les données qu'il a introduit en tant que zone de mémoire 451, dans la zone de mémoire 351 On accède donc en enregistrant à la mémoire RAM à deux ports 351 Grâce à cette manière de procéder, on est assuré qu'après l'introduction suivante des données dans le calculateur, toutes les données sont à la disposition de tous les calculateurs. La manière de procéder qui a été décrite n'est pas limitée aux systèmes à deux et trois calculateurs Cette manière de procéder peut être étendue d'une manière particulièrement avantageuse aux systèmes de calcul ayant plus de trois calculateurs. Le déroulement *de fonction selon lequel les calculateurs accèdent à la mémoire d'abord en lisant et puis en enregistrant, n'est pas nécessairement obligatoire On peut accéder à la mémoire avantageusement d'abord en enregistrant et puis en lisant. Habituellement, on utilise des blocs de mémoire RAM à deux ports, qui présentent une capacité de plus de 2 k-bytes Pour le rôle décrit dans les pages précédentes, c'est-à-dire d'échange de données, on a uniquement besoin d'une capacité de mémoire d'un demi k-byte Selon l'invention, on propose en conséquence que les zones de mémoire, non nécessaires pour l'échange des données, du système à mémoire RAM à deux ports soient utilisées comme RAM externe pour les micro- calculateurs La manière de procéder offre l'avantage que des blocs externes RAM peuvent être économisés De cette façon, on peut épargner des dépenses et des circuits imprimés En outre, la fiabilité est plus élevée et le risque de pannes plus faible, car le nombre des blocs et des points de liaison est plus faible. A partir de la figure 5, on va décrire plus en détail la construction d'un tel système selon l'invention Le système selon la figure 5 correspond essentiellement à l'exemple de réalisation selon la figure 2 C'est ainsi que les composants correspondants sont aussi désignés par les mêmes références numériques Les capteurs 402, 202 et 302 ainsi que les unités de commande 304, 204 et 404 ont été omis pour augmenter la visibilité. Le premier calculateur 200 est en liaison via la mémoire 350 Oavec le deuxième calculateur 300. En outre, le premier calculateur 200 est en liaison via la mémoire 450 avec le troisième calculateur 400. La mémoire 350 est subdivisée en trois zones La première zone correspond aux zones 351, 352 et 353 décrites à la figure 2, qui sont nécessaires pour l'échange des données entre les calculateurs La zone de mémoire qui n'est pas nécessaire pour l'échange des données est subdivisée en deux autres parties 525 et 530 Le second calculateur 300 accède uniquement à la zone de mémoire 530 Pour cela un premier décodeur 535 produit un signal d'activation correspondant Le premier décodeur 535 peut également accéder à un autre élément de mémoire 550 Des données sont extraites ou introduites à partir de la zone de mémoire 530 et de l'élément de mémoire 550 en fonction des signaux de sortie du décodeur 535. La deuxième partie 525 de la mémoire 350 peut être déclenchée par un deuxième décodeur 520 Le décodeur 520 est activé par le premier calculateur 200 avec des signaux correspondants En outre, le décodeur 520 peut aussi activer la zone de mémoire 510 de la mémoire 450 En outre, le deuxième décodeur 520 active une mémoire externe 545 Le calculateur 200 peut extraire ou introduire des données à partir de la zone de mémoire 525, de la zone de mémoire 510 et de l'élément de mémoire 550 en fonction des signaux de sortie du décodeur 535. Un troisième décodeur, qui est actionné par le troisième calculateur 400 avec des signaux, commande la zone de mémoire 505 de la mémoire 450 ainsi que la mémoire externe 540 Des données sont extraites ou introduites à partir de la zone de mémoire 505 et de l'élément de mémoire 540 par le calculateur 400 en fonction des signaux de sortie du décodeur 515. Comme le montre cet exemple de réalisation, une mémoire externe 540, 545 et 550 est associée à chaque calculateur En outre, le deuxième calculateur 300 peut accéder à la zone de mémoire 530 de la mémoire 350, le premier calculateur 200 à la zone de mémoire 520 de la- mémoire 350 et à la zone de mémoire 510 de la mémoire 450 Le troisième calculateur 400 peut accéder à la zone de mémoire 505 de la mémoire 450. Selon des variantes particulièrement avantageuses, on prévoit que l'on peut éventuellement entièrement renoncer aux mémoires externes 540, 545 ou 550 On peut aussi prévoir qu'il n'y a qu'un calculateur qui accède à une mémoire, c'est ainsi qu'on peut imaginer que le deuxième calculateur 300 accède à la place de mémoire non nécessaire de la mémoire 350 Dans ce cas, le premier calculateur a seulement accès à la mémoire 545 ou à la zone 510 de la mémoire 450 Dans ce cas, on peut penser qu'on peut faire complètement l'économie de l'élément de mémoire 550. R E V E N D I C A T I O N S 1) Système à multicalculateur en particulier pour la commande de processus dans les véhicules à moteur, dans lequel au moins deux calculateurs accèdent en commun à une mémoire, système caractérisé en ce que la mémoire est subdivisée en au moins deux zones, en ce qu'un premier calculateur ( 100) a-cède à une zone de mémoire seulement en lisant et un deuxième calculateur seulement en enregistrant et en ce que le second calculateur ( 110) accède seulement en lisant à une autre zone de mémoire et le premier calculateur seulement en enregistrant, les calculateurs étant synchronisés de telle façon que les calculateurs accèdent au même instant et de la même manière à la mémoire ( 160). 2) Système à multicalculateur selon la revendication 1, caractérisé en ce que tois les calculateurs exécutent respectivement la même siite de fonctions (lire, calculer, enregistrer). 3) Système à multicalculateur selon l'une quelconque des revendications 1 et 2, caractérisé en ce qu'un maître-calculateur ( 10) délivre une interruption à au moins un calculateur asservi à partir duquel tous les calculateurs démarreront avec la même suite de fonctions. 4) Système à multicalculateur selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'à la suite de l'interruption les calculateurs ( 100, ) accèdent à la mémoire d'abord en lisant et ensuite en enregistrant. ) Système à multicalculateur selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le calculateur asservi rend possible un fonctionnement de secours en cas de panne du:naître- calculateur, dont il assume en partie sa fonction. 6) Système à multicalculateur selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le maître-calculateur, en cas de panne du calculateur asservi rend possible un fonctionnement de secours, dont il assume sa fonction en partie. 7) Système à multicalculateur selon l'une quelconque des revendications 1 à 6, caractérisé en ce que le maître-calculateur calcule un signal de débit de carburant et le calculateur asservi un signal de début d'injection. 8) Système à multicalculateur selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le maître-calculateur calcule des signaux de déclenchement et le calculateur asservi calcule le signal de débit de carburant et le signal de début d'injection, tandis qu'un autre calculateur asservi assume la prise en charge et la délivrance de données. 9) Système à multicalculateur selon l'une quelconque des revendications 1 à 8, caractérisé en ce que les zones de mémoire qui ne sont pas nécessaires à l'échange de données sont utilisées comme mémoire externe pour les micro-calculateurs.