Brevet FR2482332A1 — publié le 19811113

L'invention concerne un coupleur pour logique de commande. Elle est applicable dans les industries de l'électronique, de l'auto matisme et des télécommunieations. Une application préférentielle est la réalisation d'un coupleur permettant la gestion d'une interface par un microprocesseur, par exemple une interface de dialogue entre le microprocesseur et les organes d'un central telephonique électroméca- nique Dans une application de ce type, la gestion de l'interface présente plusieurs difficultes Le très grand nombre de points ventrée et de sortie de l'interface et la diversite des conditions rencontrees (potentiels, durées de stabilisation) necessitent des equipements et des moyens de raccordement et de câblage d'autant plus coûteux qu'ils sont en partie spécifiques à chaque installation D'autre part les moyens d'exploration et de distribution doivent êt > e très rapide et de charger le microprocesseur des opérations cycliques d' entre' e/sortie Le but de l'invention est de réaliser un coupleur permettant de résoudre ces difficultés et ne necessitant pratiquement aucun câblage spécifique9 en permettant en particulier de dissocier complètement l'adresse physique des points de l'interface de l'adresse logique des informations concernant ces points, seules les adresses logiques étant connues du microprocesseur. L'invention a pour objet un coupleur pour logique de commande réalisant les échanges de champs binaires entre un processeur et une interface par l'intermédiaire d'un bloc mémoire dans lequel sont stockés temporairement les champs binaires. Suivant une caractéristique de l'invention, le coupleur comporte un séquentiel délivrant à chaque pas un mot de commande comportant l'adresse d'un mot du bloc mémoire, l'adresse d'un point de l'interface, et des zones d'informations de sélection du sens des échanges entre bloc mémoire et interface, et de sélection de champs binaires du mot mémoire adressé pendant l'échange en cours, et le coupleur comporte également une logique microprogrammée reliée au processeur, au bloc mémoire et au séquentiel pour le pilotage desdits échanges. L'invention va être précisée par la description donnée ci-après d'un mode de réalisation préférentiel de l'invention, appuyée sur le dessin annexé dans lequel - la figure 1 est un schéma d'ensemble d'une application de l'invention, - la figure 2 représente schématiquement un coupleur selon l'invention, - la figure 3 représente un mode de réalisation d'une interface de lecture, - la figure 4 est un diagramme de temps montrant les principaux modes de fonctionnement du coupleur de la figure 2. Dahs cette application de l'invention, on a représenté à la figure 1 l'ensemble du microprocesseur de commande mP, du coupleur et de l'interface IN, par exemple une interface de liaison avec un central téléphonique électromécanique. Le coupleur comporte une logique de commande microprogrammée Lm, une base de temps BT, un bloc mémoire BM dans lequel sont stockés d'une part les informations lues dans linter- face IN et d'autre part les ordres du microprocesseur destinés à l'interface, et un séquentiel SQ de commande d'accès à l'interface. Le coupleur comporte également un circuit d'adressage AD qui permet au séquentiel d'adresser à chaque pas un point de l'interface par une ligne d'adresse LA et d'adresser le mot du bloc mémoire BM dans lequel sera lu ou stocké un élément d'information, par exemple un ordre pour commander un point de l'interface ou l'état d'un point de l'interface. Un circuit de sélection SL permet le choix de l'élément d'information constitué par un champ binaire extrait du mot adressé, ou injecté dans le mot adressé, et permet aussi une opération sur cet élément, par exemple une inversion. Le circuit SL reçoit des commandes de positionnement du séquentiel SQ et des microcommandes de la logique Lm, et il est relié au bloc mémoire BM et à l'interface IN par une ligne de données LD. Le coupleur réalise deux groupes d'opérations les échanges avec l'interface et les échanges avec le microprocesseur. La logique Lm intervient dans les deux cas, et elle possède pour cela une mémoire comportant les microprogrammes correspondants - échanges avec l'interface IN : le séquentiel SQ adresse tous les points de l'interface selon un ordre prédéterminé dans le bloc BM. A chaque pas du séquentiel, la logique Lm déroule un microprogramme que l'on appelera "cycle machine" ou simplement "cycle", et qui permet de piloter les circuits intervenant dans l'échange (BM, SL) - échanges avec le microprocesseur : ces échanges ont lieu à la demande du microprocesseur. Cette demande est acheminée par le bus de commande BC relié à la logique Lm. Cette demande est testée par la logique Lm à chaque fin de cycle machine. Si la demande est présente, la logique Lm bloque le séquentiel SQ et déroule un microprogramme d'échange entre microprocesseur mP et bloc mémoire BM Le bloc BM est dans ce cas adressé par le bus d'adresse BA du microprocesseur, et l'échange a lieu sur le bus de données BD. A la fin d'un cycle machine quelconque, s'il n'y a pas de demande d'accès du microprocesseur, un signal de fin de cycle commande la progression du séquentiel. Un schéma de principe d'un coupleur corres- pondant à l'application qui vient d'être décrite est représenté à la figure 2. La logique Lm comporte une mémoire d'instructions MI, par exemple de type PROM, dont la sortie est reliée à un registre d'instruction RI en sortie duquel sont délivrées les microcommandes m La mémoire MI est divisée en 4 parties contenant respectivement les programmes d'échange avec interface (entrées et sorties) et les programmes d'échange avec le microprocesseur ventrées et sorties). A l'intérieur de chaque partie, la mémoire est adressée par un compteur CR1 piloté par le signal h de la base de temps (figure 4). Le compteur est remis à zéro (entrée R) par un ordre en sortie du registre RI. Le signal de fin de cycle FC est délivré par une porte "ET" Pi commandée en sortie du registre RI et par un signal de synchronisation sy de la base de temps. Le registre RI est chargé sur un signal ch de la base de temps. La logique Lm comporte également les moyens suivants de dialogue avec le microprocesseur - un comparateur d'adresse CP : le coupleur constitue une zone mémoire du microprocesseur. L'adresse du coupleur sélectionné est fournie par le bus d'adresse BA (poids A8 à A15) et cette adresse est comparée à une valeur câblée K - une bascule B1 de prise en compte de demande d'accès DA, commandée -par le signal FC. L'entrée de données D est pilotée par une porte "ET" P2 reliée à la sortie du comparateur CP et à deux fils du bus BC : un fil V de validation des entrées/sorties et un fil AE d'autorisation d'échange. Deux autres fils du bus BC sont utilisés : un fil de sortie PE de coupleur indiquant que celui-ci est prêt à émettre ou à recevoir une donnée sur le bus BD, et un fil d'entrée L/E indiquant le sens de l'échange. A titre d'exemple, le microprocesseur est de type 8085 de la Société INTEL. La correspondance des fils du bus BC est la suivante : V = IOAMEM , AE = ALE, PE = READY. Le fil PE est relié à la sortie d'une bascule B2 commandée par la porte P2 et dont l'entrée D est à l'état 0. En cas de demande d'accès, le signal PE est mis à O et oblige le processeur à attendre jusqu'à ce qu'une microcommande m remette la bascule à l'état 1 (entrée de positionnement S de B2). Le signal L/E et le signal DA permettent d'adresser les 4 parties de la mémoire MI. Le signal L/E est transmis à la mémoire à travers un multiplexeur MX1 adressé par le signal DA. Pour les échanges avec l'interface, DA = O et le fil d'adressage L/E est commandé par le séquentiel comme indiqué plus loin. Le séquentiel comporte une mémoire de commande MC adressée par un compteur CR2. Le compteur est commandé à travers une porte "ET" P3 recevant le signal FC, et le signal DA inversé (inverseur I1) : il progresse donc en fin de cycle machine en l'absence de demande d'accès. La mémoire MC est par exemple de type PROM, et chaque mot est divisé en zones, par exemple 7, délivrant en parallèle les commandes de positionnement du coupleur et d'adressage de l'interface et du bloc mémoire. La zone 1 comporte 1 e.b. de remise à O du compteur CR2. La zone 2 contient le signal L/E. La zone 3 est l'adresse du bloc mémoire Les zones 4 et 5 commandent le circuit de sélection SL, et les zones 6 et 7 sont destinées au circuit d'adressage AD. Le circuit AD comporte des groupes d'amplificateurs AMI, AM2 et un décodeur DC1. Dans cette application, ltinterface comporte n cartes contenant chacune k groupes de h points d'accès. Pour avoir un large éventail d'applications sans modification de câblage, on raccorde sur une meme carte des points d'accès de types différents (par exemple test de points de différentes polarités, de différents voltages) mais chaque groupe de points ne contient que des points de meme polarité. Pour l#adressage, la mémoire PROM permet de choisir librement l'adresse de carte sc (zone 6) et l'adresse de groupe sg (zone 7). Par contre l'adresse d'un point dans un groupe (sp) peut être fournie de manière fixe, par exemple en sortie du compteur CR2 (pour h points par groupe, on utilise je.b. de poids faibles, avec 2j = h). Le bloc mémoire est formé d'une mémoire de réception MR ou sont enregistrés les états des points explorés par le séquentiel, d une mémoire d' émission ME pour stocker les ordres du microprocesseur à I 'interface et d'un multiplexeur MX2 d'adressage commun aux deux mémoires. Le multiplexeur positionné par le signal DA, reçoit sur une entrée les poids AO à A7 du bus BAS et sur l'autre entrée la zone 3 de la mémoire MC (8.e.b.). Le bus BD bidîrectionnel est relié par des portes 3 états PB1 et PB2 respectivement à l'entrée de la mémoire ME et à la sortie de la mémoire MR. Les portes PB1 et PB2 sont controlées par des micro commandes m. Le circuit de sélection SL est organisé, dans cette application, pour effectuer les échanges entre bloc mémoire et interface portant sur un seul eob. par champ binaire échangé à chaque pas du séquentiel, alors que les échanges avec le microprocesseur se font évidemment par mot. En émission l'e.b. choisi dans le mot adressé est sélectionné en sortie de la mémoire ME par un multiplexeur MX3 adressé par la zone 4 de la mémoire MC. La sortie du multiplexeur MX3 est reliée à un fil d'émission EM par des portes 3 états P4 et P5 en parallèle : la porte P4 est directe et la porte P5 inverseuse, la validation de l'une ou de l'autre étant contrôlée par 1 e.b. de la zone 5 de la mémoire MC. En réception la procédure choisie est la suivante o le mot mémoire de x eçb. dans lequel doit etre chargé l'e.b. reçu est d'abord chargé dans un registre RM à un instant déterminé par une microcommande m (figure 4A). Ensuite à travers deux groupes de x portes 3 états P6 et P7, on écrit en mémoire le mot formé de x-i e.b. provenant du registre et 1 e.b. provenant du point de l'interface en cours de lecture. Pour cela les groupes de portes P6 et P7 sont contrôlés par la zone 4 de la mémoire MC, par l'intermédiaire d'un décodeur DC2 et de groupes de portes "ET" P8 et P9 pilotées par une microcommande m. Les portes P8 ont une entrée inverseuse, de telle manière que chaque sortie du décodeur valide soit une porte du groupe P8 et une porte du groupe P7, soit une porte du groupe P9 et une porte du groupe P6. En réception on utilise deux fils de liaison avec l'interface l'un CROZ affecté à la lecture des points de polarité positive, et l'autre (Ri) pour les points de polarité négative. La sélection est faite par des portes 3 états P10 et Pli contrôlées par un e.b. de la zone 5 de la mémoire MC. La sortie commune des portes P10 et Pli est reliée à des portes P12 et P13 permettant de transmettre le signal direct ou inversé à l'entrée de chaque porte du groupe P7. Un exemple de carte dtinterface de lecture est représenté à la figure 3. Les points à tester sont répartis sur la carte en q groupes de h points chacun. Chaque groupe comporte un circuit d'adaptation à résistances et capacités (CA1 à CAq) relié à une polarité Pi à Pq, et relié à un multiplexeur (DX1 à DXq) adressé par les fils sp et validé par les fils sg à travers un décodeur DC3. Les sorties des multiplexeurs DXl à DXq sont reliées à une ligne de test commune LT connectée en parallèle à deux amplificateurs opérationnels OPO et OP1 utilisés chacun pour le test de l'une des polarités par comparaison à un potentiel de référence (RF+, RF-). La sortie de chacun des amplificateurs OPO OP1 est reliée à l'une des sorties RO, Ri par une porte 3 états validée par le signal de sélection de carte sc. On pourrait réaliser de manière analogue une carte d'interface d'émission. Dans ce cas il pourra être utile d'émettre une commande de prise en compte de l'ordre émis sur le fil EM, par exemple par une microcommande transmise par un amplificateur AM3. En général il nty aura pas besoin d'accusé de réception : la non exécution de l'ordre pourra par exemple créer une alarme transmise directement au microprocesseur par une procédure d'interruption. Le fonctionnement du coupleur dans les quatre cas définis plus haut (accès mP ou IN, entrée ou sortie), correspondant aux quatre programmes stockés en mémoire MI, est représenté par les quatre dia- grammes A à D de la figure 4 :4 Diagramme A : lecture interface, Diagramme B : commande interface, Diagramme C : lecture par le processeur, Diagramme D : écriture par le processeur. Pour chaque diagramme on trouve 3 types d'informations - Ad : indique la présence de l'adressage (exemple Ad MC) - mod : indique le mode lecture L ou écriture E d'une mémoire - m : validation ou chargement par microcommande La mise en oeuvre de l'invention permet de réaliser un coupleur microprogrammé offrant la possibilité d'établir toutes les liaisons entre une interface et les organes d'un central au moyen d'une mémoire contenant des microcommandes. Le coupleur en assurant une exploration et une distribution très rapides permet de décharger le microprocesseur d'un certain nombre de taches en particulier des opérations cycliques d'entrée sortie. Bien entendu on pourra réaliser les circuits représentés de diverses manières équivalentes sans sortir du cadre de l'inventionO On pourrait par exemple réaliser le séquentiel à l'aide d'un compteur associé à une matrice de diodes, et/ou utiliser un nombre quelconque de zones de commande. On pourra également réaliser des échanges de champs binaires de longueur quelconque : dans ce cas on pourrait remplacer le multiplexeur MX3 par des groupes de portes, et le registre RM pourrait être remplacé par des bascules commandées par groupes ou par des registres de capacités égales à la longueur des champs binaires à prendre en compte. D'autre part, le bloc mémoire pourrait regrouper physiquement les mémoires ME et MR. REVENDICATIONS 1/ Coupleur pour logique de commande, réalisant les échanges de champs binaires entre un processeur (mP) et une interface (IN) par l'intermédiaire d'un bloc mémoire (BM) dans lequel sont stockés temporairement lesdits champs binaires, caractérisé par le fait qu'il comporte un séquentiel (SQ) délivrant à chaque pas un mot de commande comportant l'adresse d'un mot du bloc mémoire (3), l'adresse d'un point de l'inter- face (scl à sen, sg, sp) et deszones d'informations (2, 4, 5), de sélection du sens des échanges entre bloc mémoire et interface, et de sélection des champs binaires du mot mémoire adressé pendant l'échange en cours, et par le fait qu'il comporte une logique #microprogrammée reliée au processeur, au bloc mémoire (BM) et au séquentiel (SQ) pour le pilotage desdits échanges. 2/ Coupleur suivant la revendication 1, caractérisé par le fait qu'il comporte un circuit de sélection (SL) réalisant l'extraction d'un champ d'éléments binaires du mot mémoire adressé par le séquentiel pour l'émission dudit champ sur une ligne de données (LD) vers l'interface, et réalisant-l'introduction d'un champ reçu sur la ligne de donnée dans le mot mémoire' adressé, ledit circuit de sélection recevant lesdites informations de sélection (2, 4, 5) du séquentiel, et des microcommandes (m) de la logique (Lm). 3/ Coupleur suivant la revendication 1, caractérisé par le fait que le séquentiel (SQ) est formé par une mémoire morte (MC) adressée par un compteur (CR2). 4/ Coupleur suivant la revendication 3, caractérisé par le-fait qu'il comporte un circuit d'adressage de l'interface (AD) recevant pour chaque pas du séquentiel une adresse composée d'une zone fournie directement par le compteur (CR2) et d'au moins une zone (6, 7) inscrite dans la mémoire morte (MC). 5/ Coupleur suivant la revendication 1, caractérisé par le fait que le bloc mémoire (BM) comporte une mémoire de réception (MR), une mémoire d'émission (ME), et un multiplexeur d'adressage (MX2) commun aux mémoires (ME et MR), ledit multiplexeur (MX2) recevant sur une entrée une zone d'adressage fournie par le séquentiel, et sur une seconde entrée une adresse fournie par le processeur (mP). 6/ Coupleur suivant la revendication 1 pour la liaison entre un microprocesseur (mP) et une interface, dans lequel ladite logique (Lm) comporte une mémoire d'instructions (Ml), un compteur d'adresses (CR2) piloté par une base de temps, et un registre d'instructions (RI), caractérisé par le fait que la mémoire d'instructions (MI) est divisée en blocs comportant chacun un cycle d'instructions permettant de délivrer successivement toutes les microcommandes nécessaires au coupleur pour un échange d'informations en cours, et une commande de fin de cycle (r C) réalisant l'initialisation de l'échange suivant 7/ Coupleur suivant la revendication 5, caractérisé par le fait qu'il comporte des moyens de dialogue avec le microprocesseur (CP, P2, Bi, B2, 2 > 121 pour la prise en charge des demandes d'accès (DA) au bloc mémoire, pour la sélection du bloc de la mémoire d'instructions (MI), et pour l'aiguillage vers le bloc mémoire de l'adresse provenant soit du séquentiel, soit du bus d'adresse (BA) du microprocesseur