FR 2531792 A1 19840217 FR 8214081 A 19820813 COUPLEUR D'INTERFACE ENTE UN HICRO-PROCESSEUR CENTRAL ET UN AUTOMATISME COMPORTANT UNE PLURALITE D'AXES DE COMMANDE Invention concerne l'interface entre un micro-processeur central et un automatisme à plusieurs axes, par exemple un robot. Dans ce qui suit, on supposera, pour fixer les idées, qu'une unité centrale effectue un calcul de trajectoire, à partir de mesures effectuées par des capteurs et d'ordres fournis à partir d'un pupitre, et transmet à un ensemble de commande comportant une pluralité (par exemple 3 à 8) de moteurs d'asservissement à courant continu, des Variateurs de vitesse et un micro-processeur auxiliaire exécutant les tâ- ches d'asservissement et d'interpolation entre deux points successifs, des données binaires se présentant sous la-forme de mots, de 16 ou 20 bits par exemple, et définissant des positions angulaires absolues L'ensemble de commande comporte encore un codeur d'angle, du type incrémental par axe, dont les informations relatives au sens et à l'amplitude de la rotation relative doivent etre traduites en informations binaires de position absolue l'interface entre les codeurs et les variateurs d'une part et l'unité centrale d'autre part, doit donc évidemment assurer pour chaque voie correspondant à un axe, le traitement des informations issues des codeurs. Ce traitement doit être suffisamment rapide pour que dans l'intervalle entre deux points successifs, correspondant par exemple à un temps de 20 s, cette information n'ait pas évolué de manière signal ficative. Dans l'art antérieur, ce tel problème est habituellement résolu en associant à chaque codeur un circuit relativement complexe de descrimination du sens de rotation, comportant par exemple des moyens logiques d'examiner les transitions des deux signaux en créneaux dephasés entre eux fournis par chaque codeur et et des conteurs-décompteurs. L'ensemble comportant un micro processeur auxiliaire pour chaque axe est finalement encombrant et onéreux lorsque le nombre d'axes est relativement grand. L'invention se propose de réaliser un coupleur simplifié0 se présentant sous la forme d'une carte comportant un seul micro-processeur unique auxiiiaire et des moyens cablés, vus comme un périphérique par ledit micro-processeur auxi- liaire,- de traiter successivement, à une vitesse supérieure à l'évolution la plus rapide possible des axes, les signaux incrémentaux provenant d'un nombre quelconque de codeurs. Suivant l'invention, un coupleur d'interface entre un organe de calcul et un automatisme comportant une pluralité m d'axes de commande dont les mouvements de rotation sont respectivement controlés par m codeurs dsangle incrémentaux et définis par des informations binaires de position angulaire absolue se présentant sous la forme de mots d-e n bits, est caractérisé par des moyens de multiplexer et diechantil- lonner les signaux issus des m codeurs ; un circuit logique de discrimination du sens de rotation défini par la séquence des signaux multiplexés et échantillonnés correspondant successivement aux m codeurs, agencé pour fournir trois signaux logiques définissant respectlvement une rotation positive, une rotation négative et une absence de rotation, une mémoire organisée en mots élémentaires de p bits, 2 étant sensiblement inférieur à n et, avantageusement, un sous-multiple de n dans laquelle est stockée ladite information binaire de position angulaire absolue, un opérateur arithmétique apte à effectuer, , sur . un mot élémentaire prélevé en mémoire, un traitement d'incrémentation de 1, de décrémentation de 1 ou de non modification, suivant que le signal issu dudit circuit logique de discrimination indique une rotation positive, une rotation négative ou une absence de rotation et des moyens de séquencement aptes à incorporer, au cours de phases successives correspondant chacune à une période d'horloge ; pendant une première phase, la lecture dans la mémoire des états logiques des couples de signaux issus de codeurs au cours d'une période d'échantillonnage précédente, puis l'écriture des états logiques courants ; pendant une deuxième phase, la lecture d'un premier mot élémentaire de la mémoire (mot 1), le traitement par l'opérateur et l'inscription du résultat dans le premier mot élémentaire, et pendant un nombre variable k de phases successives, la lecture des mots élémentaires successifs (mots 1 à 4), leur traitement par l'opérateur arithmétique, et l'inscription du résultat dans le mot correspondant de la mémoire, la dernière phase k de traitement étant celle pour laquelle le résultat de ce traitement ne comporte pas de retenue ; l'ensemble des phases se déroulant au cours de chaque période d'échantillonnage et le circuit de discrimination étant agencé pour comparer les états logiques courants aux états logiques précédents. Suivant un mode d'exécution préféré, ledit capteur comprend un micro-processeur v-is-à-vis duquel l'ensemble séquentiel à mémoire comprenant les moyens de multiplexage et d'échantillonnage, le circuit logique de discrimination, l'opérateur arithmétique, la mémoire et les moyens de séquencement sont agencés pour se comporter comme un périphérique, la dernière phase de traitement étant suivie d'une phase de lecture de lax mémoire à la requête du microprocesseur. Les avantages, ainsi que les particularités de-llinvention, apparaîtront clairement à la lumière de la description ciaprès. .Au dessin annexé La figure 1 est un schéma de principe d'un coupleur d'interface conforme à l'invention, associé à un micro-proces-seur auxiliaire et à un bloc analogique de commande des variateurs ; La figure 2 représente le dispositif de multiplexage. et d'échantillonnage que comporte ce coupleur La figure 3, illustre la forme des signaux en créneaux issus des codeurs et l'échantillonnage La figure 4 est un schéma de principe de l'ensemble séquentiel à mémoire que comporte un tel coupleur La figure 5 illustre la séquence des phases du pro-. cessus mis en oeuvre dans le coupleur La figure 6 représente un mode d'exécution -préféré du circuit logique de descrimination du sens de rota eion t et La figure 7 est un diagramme des phases du fonction nement des organes de séquencement. A la figure 1, l'ensemble constitué par le circuit logique de discrimination, l'opérateur arithmétique et la mémoire rapide (ayant un temps d'accès de l'ordre de 45 ns) est désigné par SSAM, pour rappeler qu'il s'agit d'un système séquentiel à mémoire. Les couples de signaux en crénaux A, B et leurs compléments , B fournis par les codeurs sur cinq voies VO à- V4 dans l'exemple non limitatif décrit, sont appliqués à un dispositif de multiplexage et d'échantillonnage ME, qui reçoit à l'entrée SEL, comme on l'expliquera dans la suite-, une information de SSAM lui -permettant de sélectionner successivement les voies 0 à 4 et procède à un échantillonnage des signaux. Les signaux multiplexés et échantillonnés Aech et Bech après traitement par SSAM, sont appliqués à un bloc CNA + SH comprenant un convertisseur numérique-analogique et un échantillonneur bloqueur, pour fournir aux variateurs des consignes de vitesse et de sens de rotation CV0 à CV4. Pour fixer les idées, on supposera que l'information est fournie sous la forme de mots de 16 bits. Dans ce cas, comme on l'expliquera.dans la suite, 17 information de position absolue est pour chaque voie, présente dans la mémoire de SSAM sous la forme de 4 mots de 4 bits. Les communications avec le micro-processeur auxiliaire P et le bus MB de l'unité centrale se font sous la forme de 2 mots de 8 bits et un interface 8/16 bis est prévu. Le dispositif comporte encore avantageusement une mémoire vive RAM, une mémoiremorte programmable PROM (contenant notamment l'algorithme de régulation3 et une liaison série LS. On va maintenant décrire le dispositif ME en se référant à la figure 2. Il comprend pour chaque voie deux récepteurs différentiels RL de ligne à sortie trois états, dont les entrées de validation sont reliées à un décodeur DC de l'adresse de voie Celle-ci, comme on l'expliquera dans la suite, est constituée par les trois bits de poids fort de l'adresse mémoire les sorties des récepteurs sont en parallèle. Les signaux Anaux et Bmux obtenus par multiplexage temporel des voies sont synchronisés par deux.bascules synchrones BS1 et BS2 commandes par les signaux d'horloge H (voir figure 1) et transmis par SSAM. On notera que, pendant le traitement de la voie 3 par SSS4F c'est V4 qui est validée dans le multiplexeur ; de meme, pendant le traitement de la voie 4, c'est la suivante V0 qui est validée dans le multiplexeur. Gracie à cet artifice, au moment du début du traitement, on est assuré de disposer de signaux Aech et Bech stables.Comme on l'expliquera dans la suite, l'horloge H sert à l'adressage des voies et, par conséquent, détermine la fréquence d'échantillonnage l/tech. Celle-ci doit évidemment être telle que l'on obtienne pour chaque cycle T d'un signal A ou B au moins un échantillon par état #1, #2, #3 et #4 de durée T/4 (on considère le cas où A et B sont déphasés d'un quart de période), pour la vitesse de rotation la plus rapide de l'un des cinq axes.Dans l'exemple considéré, il faudra donc, pendant chaque état procéder à 5 echantillonnages, d'où Tech T 20 A la figure 4, on a représenté schématiquement la mémoire statique rapide MSR, l'opérateur arithmétique OPA et le dis criminateur du sens de rotation DIS que comporte l'ensemble SSAM, ainsi qu'un séquenceur composé de deux compteurs CSO et CSA et divers organes accessoires. On indiquera tout d'abord le principe de fonctionnement du dispositif g qui est illustré par le chronogramme de la figure 5. Chacune des périodes d'échantillonnage tech = T/20 définis ci-dessus est fractionnée, en six phase #0 à 5, dont # est réservée à la discrimination du sens de rotation #1 à #4 sont réservées au comptage-décomptage des créneaux et #5, à l'accès du micro-processeur P à la mémoire MSR. On expliquera en détail dans la suite comment s'opère la discrimination du sens de rotation. On indiquera simplement, pour le moment, que le circuit DIS détecte chaque changement d'état de A et B en remarquant d'ailleurs que A et B ne peuvent changer d'état en même temps. On voit, à la figure 3, que pendant les deux premiers cycles représentés, B est retardé de T/4 par rapport à A, ce qui indique un sens positif de rotation, tandis que, su cours de la troisième période, le déphasage, dans le sens de rotation, change de signe.Il en résulte que l'on passe de la configuration A = 1, B - O ; A - B = 1 ; A = 0, B = 1 r A = B = O à la configuration : A = 1, B = 0 ; A = 1, B = 0 ; A = B = 0 ; A = O, B = 1. Une logique simple permet aussi, par comparai- sons des valeurs de Aech et Bech courantes avec es valeurs Av et Bv correspondant à l'échantillon précédent, de fournir, suivant les cas : + 1 sens de rotation positif), -1 (sens de rotation négatif) ou O (pas de rotation). Ces opérations sont indiquées dans le chronogramme par "lecture Av, Bv" et "Calcul de sens". Le dispositif est en outre agencé pour écrire dans la mémoire MSR, au cours de la deuxième moitié de #0 (définie par l'horloge H, dont on voit que la période est tech/6 = T/120), les valeurs courantes de Aech et Bech, qui deviendront Av et Bv lors de l'échantillonnage suivant de la meme voie. La mémoire MSR est organisée en mots élémentaires de 4 bits et, dans l'exemple considéré où l'information de position absolue à traiter est constituée de 16 bits, elle occupera donc 4 mots élémentaires de la mémoire (Mot 1 à Mot 4, figure 4). Dans cet exemple, on aura besoin de quatre phases à à 4 pour incrémenter ou décrémenter cette information, suivant que le sens de rotation est positif ou négatif. Si le nombre de bits du mot d'information absolue de position était différent, le nombre de mots élémentaires affectés à cette information et, par conséquent, le nombre de phases nécessaires à l'incrémentation ou à la décrémentation de la mémoire, seraient évidemment différents.Ce fractionnement des n bits du mot d'information en un certain nombre de mots élémentaires de p bits qui permet d'utiliser un opérateur OPA très simple, (surtout dans le cas où p' = 4) requiers en effet que l'information passe n/p fois dans l'opérateur de traitement au cours de n/p phases de calcul de mise à jour. Pour réaliser par exemple l'incrémentation de 1, le séquenceur adresse d'une manière qui sera expliquée plus loin, pendant la phase #1, lé mot élémentaire 1 qui contient les 4 bits de poids faibles de l'information. Ce mot élémentaire 1 est lu dans OPA au cours de la première moitié de , qui lui ajoute + 1. Le résultat de cette addition est rangé à la même adresse dans la mémoire. Si aucune retenue n'a été engendrée, le séquenceur fait passer directement le dispositif à la phase #0 de la voie suivante. S'il y a retenue, il faut évidemment incrémenter également le mot élémentaire 2, ce qui se fait de la-même manière que pour le mot élémentaire 1,- et ainsi de suite, l'incrémentation pouvant finalement porter sur l'ensemble des quatre mots élémentaires. La décrémentation se fait d'une manière analogue. Le chronogramme de la figure 5 illustre un exemple où, pour la voie V;, seuls les mots élémentaires 1 et 2 doivent être incrémentés ou décrémentés, tandis que, pour les voies j+l et j+2, aucune rotation ne ssest produite ; les phases de calcul sont alors sautées. La phase 5 n'a pas été utilisée, car, dans l'exemple Considéré, UP n'a pas demandé de lecture de position des voies. S'il émet une telle requête, il y a adressage de la mémoire sur une case affectée à 05, par l'intermédiaire de signaux fournis en AdM p et transmis à la mémoire par les portes OU référencées 00 et OA.Cette requête RQ, ainsi que le numéro de la voie qu'elle concerne, sont mémorisées et la phase g5 est activée seulement lorsque le calcul de mise à jour de l'information est termine. A ce moment, l'information fournie en D'datas P" par un registre REG2 qui la délivre sous la forme de deux mots de 8 bits. On expliquera plus loin le détail du processus. L'adressage de la mémoire se fait, pour les voies, en utilisant les 3 bits de poids forts d'une adresse à 6 bits fournie par le séquenceur et, pour les cases correspondant aux phasmes, les 3 bits de poids faibles. La voie O correspond à la configuration 000 des bits de poids forts, la voie 1 à la configuration 001, la voie 2 à la configuration 010, etc., tandis que la phase O correspond à la configuration 000 des bits de poids faibles, la phase g1 à 001, la phase #2 à 010, etc. I1 suffit donc en principe d'appliquer la fréquence d'horloge H à un compteur par 6 (référencé CSA), qui s'incrémente d'une unité à chaque nouvelle phase et les trois dont la sortie est reliée aux entrées d'adressage de poids faibles de la mémoire par l'intermédiaire de OA, et de commander un coupleur CSO par les passages à zéro du compte de CSA au bout de 6 coups d'horloge.Le compteur CSO, ayant lui-même une capacité de 6 fois l'exemple considéré, à sa sortie reliée, par la porte 00, aux entrées d'adressage de poids- forts de la mémoire. On notera que les trois bits de poids forts de l'adresse (PFO) sont appliqués à l'entrée de commande du décodeur DC du multiplexeur-échantillonneur. Les adresses de poids faibles (PFA) de la mémoire sont également indiquées à la figure 5. Le principe d'adressage exposé ci-dessus ne tient pas compte du fait que, suivant la configuration réelle des signaux incrémentaux de chaque voie, un saut direct de l'une quel conque des phases d'une voie (y compris #0, voir figure 5) à la voie suivante peut être nécessaire et qu'en outre, une phase 05 doit être intercalée avant #0 s'il y a requête de lecture RQ du micro-processeur. Pour effectuer le séquencement convenable, un circuit SQ précédé d'une bascule JK est prévu. Le tableau suivant donne les variables a à i de séquencement, les équations logiques correspondantes et les actions qui en résultent, tandis que la figure 7 donne un diagramme des phases du séquencement chaque transition est validée par l'horloge H. La réalisation des circuits à partir de ces indications est à la portée de l'homme de l'art. Variable Equation logique Action a CHANGE. RQ + 1 sur n de voie b CHANGE + 1 sur bits poids faibles c retenue + 1 sur bits poids forts d retenue,RQ forçage bits poids faible à e adresse mot 4 attente de la lecture du mot f CHANGE. RQ génération de g adresse mot 4 + 1 sur n de voie h retenue.RQ + 1 sur n de voie i adresse mot 4. retenue erreur a On voit que la variable "9" est validée lorsqu'il n'y a ni changement d'état (signal CHANGE à la sortie du discriminateur), ni pour requête RQ. A ce moment, le numéro de voie (donné par le compteur CSO) doit être incrémenté de le La variable b est validée lorsqu'il y a changement d'état (+ I à la sortie du discriminateur) go SQ ajoute alors 1 sur les bits de poids faible (compteur CSA) La variable e est validée par une retenue. Q ajoute alors également 1 sur les bits de poids forts (compteur CSA.La variable d est validée lorsqu'il y a à la fois absence de retenue et requête RQ, pour le passage à la phase 05 par forçage du compteur CSA. La variable e est validée en l'absence de l'adresse du mot élémentaire N 4. En fait, le compteur CSA évolue, en présence d'une requête RQ, de manière à balayer les adresses successives des mots 1, 2, 3, 4 et chaque mot lu est placé dans un registre RE G1 de manière à former un mot de 16 bits pour le micro-processeur. La lecture du mot 4 fait retomber la requête RQ (bascule JK). La variable c correspond à la période d'attente de lecture du mot 4. Quand l'adresse mot 4 est présente (variable g), le N de voie est incrémenté de 1 pour passage à la phase #0 suivante. S'il y a en même temps retenue (variable i), cela indique une erreur. On remarque, à la figure 5, que la lecture de la mémoire s'effectue pendant H = 1 et l'écriture pendant H = o : le signal H sera donc appliqué à l'entrée R/W de la mémoire pour en commander le fonctionnement en lecture ou en écri- ture à l'adresse déterminée par l'adressage. L'information Av, Bv destinée à être comparée par DIS à l'information courante Aech et Bech, est fournie par la liaison ES d'entrée/sortie de la mémoire, (opération "lecture Av, Bv" du chronogramme) Il faut également insérer, dans la case de la mémoire réservée à cet effet, l'information Aech Bech courante. Cette information est transmise à la liaison ES par des portes GA GB, tandis que l'information "mot élémentaire # 1" fournie par OPA est transmise par une porte Gm.Ces trois portes sont commandées par SQ (les liaisons n ont pas été figurées), GA et GB seulement pendant t et Gm pendant les phases à A la figure 6, on voit que les signaux qui représentent le circuit DIS de la figure 4 Aech, Aech, Bech, Bech et les signaux Av et Bv sont appliqués à deux couples de portes OU EXCLUSIF.~Les sorties des deux portes OU EXCLUSIF de chaque couple sont appliquées à une porte NON OU. Les sorties des deux portes NON OU sont appliquées à une porte NON OU. Il. est facile de voir, à l'examen de la figue 3, que la présence d'un signal -1 ou +1 aux bornes indiquées au schéma de la figure 6 correspond à un sen-s négatif ou positif de rotation, tandis que le signal CHANGE correspond à l'absence de rotation. Il va de soi que d'autres combinaisons de portes logiques procureraient un résultat équivalent. Les modifications ou formes dgexëcutions différentes à la portée de l'homme de l'art font partie de l'invention. Revendications de brevet 1. Coupleur d'interface entre un organe de calcul et un automatisme comportant une pluralité m d'axes de commande dont les mouvements de rotation sont respectivement contrôlés par m codeurs d t angle incrémentaux et définis par des informations binaires de position angulaire absolue se présentant sous la forme de mots de n bits, caractérisé par des moyens (ME) de multiplexer et d'échantillonner les signaux issus des m codeurs ; un circuit logique (DIS) de discrimination du sens de rotation défini par la séquence des signaux multiplexes et échantillonnes correspondant successivement aux m codeurs, agencé pour fournir trois signaux logiques définissant respectivement une rotation positive, une rotation négative et une absence de rotation, une mémoire (MSR) organisée en mots élémentaires de E bits, ç etant sensiblement inférieur à n et, avantageusement, un sous-multiple de n dans laquelle est stockée ladite information binaire de position angulaire absolue, un opéra teuriarithmétique apte à effectuer, sur un mot élémentaire prélevé en mémoire, un traitement d'incrémentation de 1, de décrémentation de 1 ou de non modification, suivant que le signal issu dudit circuit logique de descrimination (DIS) indique une rotation positive, une rotation négative ou une absence de rotation et des moyens de séquencement (SQ, CSO, CSA) aptes à incorporer, au cours de phases successives correspondant chacune à une période d'horloge (H) ; perdant une première phase, la lecture dans la mémoire des états logiques (Av, Bv) des couples de signaux issus de codeurs au cours d'une période d'échantillonnage (tecs) précédente, puis l'écriture des états logiques courants (Aech, Bech) pendant une deuxième phase (al) r la lecture d'un premier mot élémentaire de la mémoire (mot 1), le traitement par l'opérateur et l'inscription du résultat dans le premier mot élémentaire, et pendant un nombre variable k de phases successives (2 à 4), la lecture des mots élémentaires successifs (mots 1 à 4), leur traitement par l'opérateur arithmétique, et l'inscription du résultat dans le mot correspondant de la mémoire, la dernière phase k de traitement étant celle pour Laquelle le résultat de ce traitement ne comporte pas de retenue ; l'ensemble des phases se déroulant au cours de chaque période d'échantillonnage (tech) et le circuit de discrimination étant agencé pour comparer les états logiques courants (Aech Bech) aux états logiques précédents (Av, Bv). 2. Coupleur d'interface selon la revendication 1, caractérisé en ce quSil comprend un micro-processeur vis à vis duquel l'ensemble séquentiel à mémoire comprenant les moyens de multiplexage et d'échantillonnage (ME), le circuit logique de discrimination (DIS), l'opérateur arithmétique (OPA), la mémoire (MSR) et les moyens de séquencement (SQ, CSO, CSA) sont agencés pour se comporter comme un périphérique, la dernière phase de traitement (#4) étant suivie d'une phase (#5) de lecture de la mémoire à la requête du micro-processeur 3.Coupleur d'interface selon la revendication 1 ou 2, en ce que lesdits moyens de séquencement comprennent un compteur de poids faibles (CSA) incrémenté par horloge (H) et adressant les emplacements de la mémoire (MSR) correspondant aux phases successives et un compteur de poids forts (CSO) qui adrésse les emplacements de la mémoire correspondant aux m voies successives et les moyens de mutliplexage et d'échantillonnage (ME) et des moyens logiques (SQ) de tester l'absence ou la présence de retenue, l'absence ou la présence d'un changement d'état et, éventuellement, l'absence ou la présence d'une requête du micro-processeur. 4. Coupleur d'interface selon l'une des revendications 1 à 3, caractérisé en ce que les moyens de séquencement sont agencés pour traiter une voie pendant le multiplexage de la voie suivante. 5. Coupleur d'interface selon l'une des revendications 1 à 4, caractérisé en ce que le circuit logique de discrimination comprend quatre circuits OU EXCLUSIF auxquels sont respecti vement appliqués Aech Bv, Av Bech, Bv Aech et Bech Av, un circuit NON OU à la sortie de chaque couple de circuit OU EXCLUSIF et un circuit NON à la sortie du couple de circuits NON OU (figure 6).