Brevet FR2578337A1 — publié le 19860905

1.- Procédé et dispositif pour l'échange de données entre des microprocesseurs." L'invention part d'un procédé pour l'échange de données d'un groupe de lignes de données entre un proces- seur principal et un processeur secondaire, avec des mémoi- res intermédiaires pour les données à échanger. Le couplage de deux microprocesseurs est connu en tant que tel depuis longtemps. La transmission de données s'effectue alors soit en série par l'intermédiaire d'interfaces normalisées, ou bien en parallèle par l'intermédiaire de ce que l'on appelle une ligne de données. Le couplage en série présente l'in- convénient que la transmission de données, du fait de la transmission à chiffres binaires, ne s'effectue que lente- ment. Si on utilise une ligne générale de transmission, le bloc constitutif qui doit réagir doit être tout d'abord adressé, et ensuite le protocole de données peut être trans- mis. Notamment dans le cas de transmissions de données cri- tiques en ce qui concerne le temps, cette voie n'est en gé- néral pas praticable, car un temps relativement important est nécessaire pour l'adressage. L'invention a pour but de remédier à ces in- convénients et est caractérisée à cet effet en ce que l'é- change des données commence par une succession spécifique de signaux émise par le processeur principal et est ensuite 2,- transmise se!on une successi rn êterzinéeo Le procédé conforée à l'invention avec les caractéristiques définies ci-dessus présente par czntre l'avantage que l'échange de données est effectué très rapi- dement avec l'aide des inpulsions nécessaires pour cet échange de données. L'adressage s'effectue sans laps de temps supplémentaire avec la réaction de la mémoire inter- médiaire. Les données sont transmises selon une succession en série prédéfinie. D'autres caractéristiques de l'invention per- mettent d'envisager des compléments avantageux et des amé- liorations du procédé défini ci-dessus. Si on utilise comme signaux spécifiques les signaux d'inscription et/ou de lecture du microprocesseur, la transmission est particulièrement rapide. Il y a lieu de considérer comme un autre avantage, que seuls de petits nombres déléments électriques constituants supplémentaires et de canalisations supplémentaires sont nécessaires. Il est en outre avantageux que l'un des microprocesseurs délivre un signal après la fin de la transmission. Ainsi, la trans- mission des signaux peut être contrôlée par le microproces- seur effectuant la transmission et cela ouvre la possibilité de transmettre d'autres signaux. La formation des signaux spécifiques, notam- ment des signaux d'inscription ou de lecture, s'effectue avantageusement par l'intermédiaire d'un organe de comnuta- tion grâce au signal de sortie duquel le processus secon- daire est susceptible d'être commuté. Ainsi la transmission de données peut être réalisée avec un minimum de moyens. La fin de chaque transmission est communiquée de la façon la plus avantageuse par l'intermédiaire d'une liaison de confirmation. Le déploiement d'autres moyens techniques de branchement n'est alors pas nécessaire. Un exemple de réalisation de l'invention est représenté sur les dessins ci-joints et exposé plus en détail 3.- dans la description ci-après: - la figure 1 montre un exemple de réalisa- tion d'un dispositif pour l'échange de données, - la figure 2 est un diagramme de structures pour expliquer le mode de fonctionnement du microprocesseurs - la figure 3 est un diagramme d'impulsions pour expliquer le mode de fonctionnement du dispositif de circuit. La figure 1 montre un microprocesseur prin- cipal 10 dont le port I/0 est relié à l'entrée d'une bascu- le 11. Avec l'entrée correspondante de cette bascule 11, est en outre reliée la sortie de signaux d'inscription WR du microprocesseur principal 10. La sortie de signaux deins- cription Ti aboutit par ailleurs à une entrée d'une porte OU 14. La sortie du verrou 11 aboutit à un port I/0 d'un microprocesseur secondaire 12. La sortie des signaux de lecture du microprocesseur.2 est par ailleurs reliée au verrou 11. Une bascule 13 est branchée en anti-paral- lèle sur le verrou 11 et prend en charge les signaux d'un port I/O du microprocesseur secondaire 12 pour les trans- mettre au port I/0 du microprocesseur principal 100 Au verrou 13 est reliée la sortie de signaux d'inscription -R du microprocesseur 12. Par ailleurs, la sortie des si- gnaux de lecture RD du microprocesseur 10 est reliée au verrou 13. En outre, une jonction va de la sortie des signaux de lecture RD du microprocesseur 10 à une autre entrée de la porte OU 14. La sortie de la porte OU 14 abou- tit à une entrée d'une bascule bistable 15. La bascule bistable 15 modifie son état de sortie pour chaque ordre d'inscription ou de lecture du microprocesseur principal. La sortie de la bascule bista- ble 15 est en liaison avec l'entrée interrupt INT du microprocesseur secondaire 12. Par ailleurs, un port P du microprocesseur principal 10 est relié avec un port P équivalent du microprocesseur secondaire 12.Des microproces- -.- seumsdu type 8051 De la Firme Intel conviernnent rnota-ment come microprocesseurs. On peut toutefois utiliser d'autres microprocesseurs, nota..ment les processeurs de la série de la Firme Intel. La question de savoir quel port I/O dans le processeur principal 10 ou bien dans le processeur secondaire 12 est utilisé pour l'introduction ou la sortie des données, est une question de programation du micro- processeur et est en princioe indifférente. Comme port P on peut utiliser une liaison de signaux quelconques du port existant. Celle-ci est également déterminée par le programme et en tant que telle n'a pas d'importance pour l'invention. Par ailleurs, il est prévu un circuit de re- mise à l'état initial 16 qui réagit par exemple lors d'in- terruption de tension ou lors d'autres perturbations élec- triques. Ce circuit de remise à l'état initial 16 est relié à l'entrée de remise à l'état initial du processeur princi- pal 10 et de la bascule bistable 15. On empêche ainsi que la bascule bistable 15 en cas d'incidents, prenne une posi- tion indéfinie. Le mode de fonctionnement de l'échuange de données qui peut également être constitué par une trans- mission de données dans un sens, va être maintenant expli- cité plus en détail en se référant au diagramme de structu- res de la figure 2 et au diagramme de la figure 3. Le microprocesseur 10 fonctionne comme processeur principal et perçoit par exemple les problèmes de commande d'un mo- teur à combustion interne d'un véhicule automobile. L'éten- due des problèmes de commande à traiter en temps réel rend nécessaire que le processeur principal transmette une partie de ces données calculées des problèmes au processeur secon- daire et que celui-ci prenne en charge la commande du pro- blème en temps voulu pour ces grandeurs (injections séquen- tielles). Egalement Xne partie du calcul de ces données peut s'effectuer dans le processeur secondaire. Par ailleurs, le processeur secondaire peut saisir une partie des données 5.- utilisées par le processeur principal, les traiter préala- blement et les transmettre au processeur principal. Pour ne pas perdre, lors de la transmissicn des données, la rapidi- té obtenue grâce aux deux microprocesseurs, il est nécessai- re que le transfert des données s'effectue très rapidement. Le processeur principal 10 a, lors de la trans- mission des données, une priorité absolue c'est-à-dire que ce processeur principal 10 appelle les données en cas de besoin ou bien les transmet en cas de besoin au processeur secondaire 12. Le processeur seccndaire est alors commandé par l'intermédiaire de son entrée d'interruapt, c'est-àdire que le processeur secondaire 12 interrompt sur 14invitation du processeur principal 10 son programme en cours et prépare les données nécessaires ou bien reçoit les données trans- mises. Il est alors important que les données soient trans- mises selon la succession correcte à partir du processeur secondaire, ou bien vers le processeur secondaire. Dans ce but, l'échange des données doit débuter en un point de démarrage compatible déterminé. Ensuite, la succession des données est déterminée sur la base des différentes étapes du programme qui sont traitées par le processeur princi- pal 10. Grâce à la synchronisation mentionnée, on obtient que même lors de l'enclenchement du système ou bien lors d'une impulsion de remise à l'état initial après une per- turbation, des données erronées ne soient jamais délivrées par le processeur secondaire 12 au processeur principal 10, en entendant par données erronées, également une associa- tion erronée des données les unes par rapport aux autres. Sur la figure 2a est représenté l'exemple d'un diagramme de structures pour le processeur principal et sur la figure 2b le diagramme de structures pour le processeur secondaire 12, en ce qui concerne la transmis- sion des données. Si des données doivent être échangées, le processeur principal 10 délivre deux fois ces mômes don- nées en 20 au moyen d'un ordre d'inscription dans la bas- cule 11 Il passe ensuite en 21 avec son prograzme princi- pal. Du fait du double ordre d'inscription, la bascule 15 est commutée deux fois par la porte OU 14. A la sortie de la bascule 15 il apparait en conséquence le signal 40 qui est reprêsenté plus en détail sur la figure 3a. Du fait du premier ordre d'inscription, on a le flanc tombant et du fait du second ordre d'inscription, le flanc montant. L'interrupt dans le microprocesseur 12 est obtenu dans l'exemple décrit par le flanc tombant du signal d'interrupt. Le microprocesseur secondaire 12 qui prête entre temps son programme secondaire en 30 sur la figure 2b, termine après l'entrée de l'interrupt 31 les instructions commencées et passe alors dans un programme spécial d'interrupt qui com- mande l'échange de données du processeur secondaire. Sur la figure 3b, les différents points de passage sont indi- qués par un trait vertical, Le temps entre l'interrupt et le passage est conditionné de façon que le processeur se- condaire termine l'ordre de programme du moment. Dès que le processeur secondaire 12 est passé au programme d'interrupt, il demande en 32 quel est l'état de la liaison d'interrupt. A cet effet, des liaisons sup- plémentaires ne sont pas nécessaires car il peut y avoir accès direct à la liaison d'interrupt. Si sur cette liai- son il y a, après le passage, une logique 1, cela signifie que le processeur principal a délivré les deux premiers or- dres d'enregistrement ou de lecture d'un cycle de trans- mission de données. Le processeur secondaire reconnaît ainsi qu'il doit maintenant commencer la transmission du premier mot de données. En 33 il reçoit les données inscrites par le microprocesseur en 20 dans la bascule 11. En 34, les don- nées sont inscrites dans la bascule 13. Après l'achèvement de l'échange de données, un signal est délivré au port P par le processeur secondaire, ce signal consistant unieue- ment en une modification de l'état initial du signal, comme cela est représenté sur la figure 3c. Le premier échange de 7.- domnnées est alors terminé o Après un laps de temps déterminé par le program- me principal, le processeur principal 10 interroge le port P en 22. Si ce port a modifié son état le processeur princi- pal 10 et que le processeur secondaire 12 a terminé son travail et que les données souhaitées par lui peuvent être reçues ou tranmises. Comme en dernier lieu des données ont été inscrites en 34 par le processeur secondaire 12 dans le verrou 13, le processeur principal 10 appelle maintenant ces données à partir du verrou 13 en délivrant en 23 à ce verrou 13 un ordre de lecture. Par cet ordre de lecture, la bascule 15 est basculée par lintermédiaire de la porte OU 149 (44). Tandis que le processeur principal 10 après la prise en charge des données en 24 poursuit le programme principal, un nouvel interrupt est déclenché par le basculez ment de la bascule 15. Le déroulement du programme secon- daire en 36 est interrompu par un passage dans la routine d'interrupt. Le processeur secondaire reconnaît alors que l'interrupt est sur 0, que le premier mot de données ne doit pas être lu mais que le mot de données suivant doit l'être. Quel mot de données doit être inscrit ou lu peut être fa- cilement déterminé dans le processeur secondaire 12 par un compteur programmé qui compte les passages selon la syn- chronisation. Comme décrit ci-dessus, des données sont ins- crites ou lues dans les verrous 11 ou 13. Après terminaison du processus du lecture, le port P est à nouveau selon la figure 3c commuté par le processeur secondaire. Les diagrammes représentés sur la figure 3 sont établis de sorte que dans le processeur principal, après le double ordre d'inscription initial (40) et l'ordre unique d'inscription ou de lecture suivant (44), il s'en suit toujours alternativement un ordre de lecture et un ordre d'inscription. Si en conséquence, les données doivent être lues ou prises en charge au point d'interrogation 25, e.- alors par exemple les données sont lues avec le flanc as- cendarnt de l'impulsion 40 avec un ordre d'inscripticn dans le verrou 11 et des données sont prises en charge avec le flanc descendant à partir de la bascule 13. Comme un inter- rupt n'est respectivement provoqué que par une impulsion de 1 à 0, l'ordre d'inscription au point d'interrogation 26 n'entraine pas d'interrupt, mais seulement l'ordre de lecture qui y fait suite à l'emplacement 27 après que le processeur principal 10 se soit assuré au point 25 que le processeur secondaire 12 a déjà terminé sa précédente transmission de dornnéeso Si un ensemble complet de données est transmis, il est possible, après l'écoulement d'un certain temps, de mettre la liaison d'interrupt et la liaison de port P à une logique 1, comme cela est représenté sur le bord droit de la figure 3, Grece à cette position haute, aucune autre fonc- tion n'est libérée car, comme déjà mentionné, un interrupt ne peut avoir lieu que lors du passage de 1 à O. L'exemple montre que de cette façon, des ensem- bles de données peuvent être transmis rapidement et avec sécurité, le démarrage de l'ensemble de données étant ici déterminé par l'ordre d'inscription répété deux fois. On peut cependant choisir à volonté la façon de débuter la transmission des données. Au lieu du double ordre d'inscrip- tion, il est également possible qu'un double ordre de lec- ture soit délivré par le microprocesseur 10 ou bien alterna- tivement un ordre d'inscription et un ordre de lecture. j j Des données sont respectivement inscrites dans le verrou 11 par le processeur principal 10 et respectivement lues à par- tir du verrou 13. Cela peut être par exemple aussi des logiques nulles lorsqu'aucune donnée n'est encore inscrite dans le verrou 13. Cela doit toutefois être auparavant ren- du compatible par le programme. On peut également voir sans difficultés que l'inscription et la lecture alternées décri- tes peuvent aussi 8tre remplacées par une lecture et une inscription ou bien par une double lecture ou bien par une 9.- double inscription. Ceci dépend du cas d'application0 On peut voir en outre que les fonctions d'interrupt ne sont pas obligatoirement obtenues par la commande de l'entrée d'interrupt, mais par exemple aussi par la commande deun au- tre port quelconque. Il est important que grâce à une struc- turation spéciale du premier signal, une synchronisation ait lieu entre les deux microprocesseurs 10 et 12 et que les transmissions de données suivantes soient auparavant accordées les unes aux autres, c'est-à-dire que l'ensemble des données soit défini dans sa succession. Il est également avantageux que les entrées et sorties pour la transmission des données existant déjà sur le microprocesseur, puissent être utilisées, auquel cas le nombre des liaisons supplémentaires à établir est très réduito 10.- R E V E I C A TI O I S 1.- Procédé pour l'échange de dcnnées d'un groupe de ignes de données entre un processeur principal (10) et un processeur secondaire (12) avec des mémoires intermé- diaires (11,13(verrous)) pour les donnêeE à échanger, procédé caractérisé en ce que l'échange des données conmence par une succession spécifique de signaux (I-NT) émise par le processeur principal (10) et est ensuite transmise selon une succession déterminéee 2.- Procédé selon la revendication 1, carac- térisé en ce que le signal spécifique est une succession au moins double d'un ordre d'inscription et/ou de lecture. 3.- Procédé selon l'une quelconque des reven- dications 1 ou 2, caractérisé en ce que la transmission s'effectue par un enregistrement et une lecture alternatives des microprocesseurs. 4.- Procédé selon l'une quelconque des reven- dications 1 à 3, caractérisé en ce qu'après la fin de la transmission, un signal (P) est délivré. 5.- Dispositif pour la mise en oeuvre d'un procédé selon une quelconque des revendications 1 à 4, avec un processeur principal (10) et un processeur secondaire (12) et avec une mémoire intermédiaire (11, 13)(verrous)pour chaque sens de transmission prévu, dispositif caractérisé en ce qu'il est prévu un organe de commutation (15)(bascule bistable) susceptible d'être commuté par un organe d'inscription et/ou de lecture du processeur principal (10), et qu'un interrupt dans le processeur secondaire (12) est déclenché par l'ordre de com- mutation. 6.- Dispositif selon la revendication 5, ca- ractérisé en ce qu'une ligne de confirmation est branchée entre le processeur secondaire (12) et le processeur princi- pal (10). 7.- Dispositif selon l'une quelconque des re- vendications 5 ou 6, caractérisé en ce qu'il est prévu des 11..- moyens de remise à létat initial (16) grace auxquels le processeur principal (10) et l'organe de commutation (15) (bascule bistable) sont susceptibles d'être amenés dans tune position prédéfinieo S.- Dispositif selon la revendication 7p caractérisé en ce que lorgane de commutation (15) 4basoule bistable) est susceptible ditre remis à l'état initial par le processeur prîncipal (I0).