Brevet FR2531551A1 — publié le 19840210

PROCESSEUR DE COMMANDE DU CANAL C2LC DANS UN CONTROLEUR DE CAISSE A MICROPROCESSEUR La présente invention concerne un processeur de commande du canal CkMAC dans un contrôleur de caisse à microprocesseur, intelligent. Il existe des perfectionnements connus de controleurs de caisse a microprocesseur (voir les références nolU 2 et 5 énumérées en fin de texte) où, dans le cas de l'adressage du canal CAMAC, un dispositif engendrant les cycles S1, S2 et et B d'horloge de commande du canal est commuté, et l'information qui passe sur les barres omnibus R et W du canal est commandée par programme, c'est--dire que la mémoire du controleur de caisse est enregistrée ou lue sous le controle du microproces- seur.Par ailleurs, la partie adresse de la microinstruction du microprocesseur contint le numéro du poste N et la sous- adresse AR tandis que la partie données contient la fonction F de CAMAC. Le défaut de ces contrôleurs de caisse est que le temps d'organisation du cycle CAMAC est trop grand L'organisation des modes CAMAC spécifiques, tels que le mode "répétition", le mode "arrêt", le mode "exploration d'adresse" et le mode "transfert de bloc", est effectuée par programme ou bien dans des modules CAMAC supplémentaires contenant des mémoires tam pons.De plus, les données (24 bits) qui sont échangées sur le bus CAMAC sont retrouvées dans la mémoire du contrôleur dé caisse ou y sont enregistrées au moyen de la configuration du micro-ordinateur de commande. C'est l'objectif de la présente invention de procurer un processeur permettant la commande du canal CAMAC et l'accès la mémoire, dans lequel le traitementdes donnees soit efèc- tué dans le temps minimum recommandé par les normes EUR 4100 de CSUNC, et un accès direct ou sélectif a la mémoire du micro-ordinateur soit possible Cet objectif est atteint, selon l'invention, par un processeur de commande du canal CAMAC dans un contrôleur de caisse a microprocesseur, se composant d'un multiplexeur d'adres- ses de mémoires de programmes dont les entrées sont connectées au bus du microprocesseur et aux sorties du compteur d'adresses de mémoires de programmes, et dont les sorties sont connectées aux entrées d'adresses des mémoires de programmes l'entrée de commande du multiplexeur est connectée à la sortie unique d'une bascule d'état dont l'entrée S est connectée a un décodeur d'adresse et dont l'entrée R est connectée a un générateur d'impulsions de commande et a l'entrée S de la bascule "fin de CAMAC", dont l'entrée R est connectée au décodeur d'adresse et a l'entrée s de la bascule d'erreur, et la sortie de la bascule de fin de CAMAC est connectée à l'entrée d'un inverseur a collecteur ouvert dont la sortie est connectée aux bornes du bus IRQ du bus du microprocesseur et a la sortie d'un second inverseur à collecteur ouvert dont l'entrée est connec tée à la sortie neutre de la bascule d'erreur Par ailleurs, l'entrée R de la bascule d'erreur est connectée à la sortie d'un circuit ET à double entrée dont l'une des entrées est con bectée au bloc de codage et de commande d'état du processeur, et dont la seconde entrée est connectée à la sortie d'un circuit NOM-ET à double entrée, dont l'une des entrées est connectée au bus X du bus CAMAC et dont la seconde entrée est connec- tee à la sortie B du générateur CAMAC, qui est connectéeaux entrées séparatrices de la mémoire tampon de la -fonction CAMAC, de la mémoire tampon d'adresse de CAMAC, du décodeur de poste et de.la mémoire tampon du bus W g de plus, les sélecteurs de bus des ensembles de programme sont connectés au décodeur d'adresse, et les bus D des ensembles de programme sont connectés bilatéralement au multiplexeur de mémoires de programmes, qui est lui-meme connecté bilatéralement au bus du microproces- seur et unilatéralement au registre de fonction CAMAC, au compteur d'adresses de CAMAC, au compteur de postes, au bloc de codage et de commande d'état du processeur, aux registres tampons des postes et au multiplexeur du registre d'adresses de données;; l'entrée de la commande du multiplexeur de mémoires de programmes est connectée au décodeur d'adresse, ce dernier étant connecté aux bus d'adresse du bus du microprocesseur, l'entrée de comptage du compteur de mémoires de programmes est connectée au gdné- rateur d'impulsions de commande qui est connecté au générateur CAMAC bilatéralement , au bloc de codage et de commande d'état du processeur, à l'entrée du compteur du registre d'adresses de données, à l'entrée du chargeur du registre de données, qui est également connecté bilatéralement au bloc d'accès de mémoire sélectif, ce dernier étant connecté aux barres omnibus VMA et Cl du bus du microprocesseur, le bus Cl étant connecté à l'entrée séparatrice des registres tampons d'adresses de donnée's et à l'entrée de la commande du multiplexeur de données, et l'entrée de la commande de direction de données du multiplexeur est connectée au bloc d'accès de mémoire sélectif ; en outre, le multiplexeur de données est connecte bilatéralement aux bus D du bus principal du microprocesseur et aux entrées et aux sorties du registre de données, qui est lui-même connecté à la mémoire tampon du bus W, aux bus R du bus CMAC, au générateur CAMAC et au bloc d'accès de mémoire sélectif qui est connecté bilatéralement au générateur CAMAC, ce dernier étant connecté à l'entrée d'horloge de la bascule Q dont l'entrée D est con nectée au bus Q du bus CAtEC, et dont l'unique sortie est con nectée au bloc de codage et de commande d'état du processeur qui est lui-même connecté en outre au multiplexeur du registre d'adresses de données, au compteur de pages, au compteur d'adres sesae CAEIAC, et au registre de fonction de C1 [ AC, dont les sorties sont connectées aux bus F du bus CAMAC, les sorties du compteur d'adresses étant connectées à des circuits tampons dont les sorties sont connectées aux bus A du bus CAMAC (bus principal), et les sorties du compteur de postes sont connectées aux entrées du décodeur de poste, dont les sorties sont connectées aux sorties des tampons du registre de postes et aux bus N du bus principal de CAMAC. L'invention présente les avantages suivants elle ga- rantit un échange rapide de données sur le canal CAWiAC ; elle fait fonctionner de manière simple les modes CAMAC spécifiques, sans un grand nombre de dispositifs supplémentaires. L'invention va être illustrée plus en détail par un exemple de mode de réalisation, représenté sur les dessins cijoints, sur lesquels la figure 1 est un schéma-bloc du processeur de commande du canal CSiAC dans un contrôleur de caisse à microprocesseur la figure 2 est un diagramme de l'état du processeur la figure 3 représente le multiplexage à accès de mémoire double. Le processeur de commande du canal CAMAC dans un contrôleur de caisse à microprocesseur se compose d'un multiplexeur d'adresses de mémoiresde programmes 2 dont les entrées sont con nectées au bus principal 1 du microprocesseur et aux sorties du compteur 3 d'adresses de mémoires de programmes, les sorties du multiplexeur 2 étantSconnctees aux entrées d'adresse des mémoires de programmes 5, 6, 7 et 8 ; l'entrée de commande du multiplexeur est connectée à la sortie unique de la bascule d'état 18, dont l'entrée S est connectée au décodeur d'adresse 4, et dont l'entrée R est connectée au générateur 19 d'impulsions de commande et à l'entrée S de la bascule 30 de fin de CAMAC, dont l'entrée R est connectée au décodeur d'adresse 4 et à l'entrée S de la bascule d'erreur 31, la sortie de la bascule 30 étant connectée à l'inverseur 32 à collecteur ouvert, dont la sortie est elle-même connectée au bus IRQ du bus principal 1 du microprocesseur et à la sortie 33 de l'inverseur à collecteur ouvert 33,1 'entrée de cet inverseur étant con nectée à la sortie neutre de la bascule d'erreur 31. t'entrée de la bascule 31 est connectée à la sortie du circuit ET 23 à double entrée, dont l'une des entrées est connectée au bloc 10 de codage et de commande d'état du processeur, et dont la seconde entrée est connectée à la sortie du circuit NON-ET 22 à double entrée, dont l'une des entrées est connectée au bus X du bus principal 18 de CAMAC, et dont la seconde entrée est connectée à la sortie B du générateur CS fiNC 21, qui est ellemême connectée aux entrées séparatrices du tampon 12 de fonction CSiAC, au tampon 14 d'adressesCAMAC, au décodeur de poste 16 et au tampon 27 du bus W ; les sélecteurs de bus des mémoires de programmes 6, 7 et 8 sont connectés au décodeur d'adresses 4,et les bus B des mémoires de programmes 5,, 6, 7 et 8 sont connectés bilatéralement au multiplexeur 9 de mXmoires.de programmes, lequel est connecté bilatéralement au bus principal 1 du microprocesseur et unilatéralement au registre 11 de fonction CAMAC, au compteur 13 d'adresses C~ & C, au compteur de postes 15, au bloc 10 de codage et de commande d'état du processeur, aux registres tampons 17 de poste, et au multiplexeur du registre 24 d'adresses de données ; l'entrée de commande du multiplexeur 9 de mémoires de programmes est connectée au décodeur d'adresse 4 et ce dernier est connecté aux bus dlad- resse du bus principal 1 du microprocesseur e l'entrée de compta du compteur 3 de mémoires de programmes est connectée au généra- teur 19 d'impulsions de commande, lequel est connecté au gene rateur CAMAC 21 bilatéralemente au bloc 10 de codage et de commande d'état du processeur, a entrée compteur du registre 25 d'adresses de données, à l'entrée du chargeur 26 du registre de données, et est en outre connecté bilatéralement au bloc 20 d'accès de mémoire sélectif é ce dernier est connecté au bus çN du bus principal 1 du microprocesseur et au bus C1 du bus principal 1 du microprocesseur, lequel est connecté à l'entrée séparatrice du registre tampon 29 d'adresses de données et à l'enti de commande du multiplexeur de données 28 e et l'entrée de Commande # qui permet de commander la direction du multi plexeur est connectée à son tour au bloc 20 d'accès de mémoire sélectif ; le multiplexeur de données 28 est connecté bilaté- ralement aux bus D du bus principal 1 du microprocesseur et aux entrées du registre de données 262 lequel est connecté au tampon 27 du bus W, aux bus R du bus principal 18 de CAMAC, au générateur CAMAC 21 et au bloc 20 d'acces de mémoire sélectif, lequel est à son tour connecté bilatéralement au générateur CAMAC 21, ce dernier étant connecté à l'entrée d?horloge de la bascule Q 34, dont l'entrée D est connectée au bus Q du bus principal 18 de CAMlC, et dont l'unique sortie est connec tée au bloc 10 de codage et de commande d'état du processeur, qui à son tour est connecté en outre au multiplexeur du regis- tre 24 d'adresses de données, au compteur de postes 15, au compteur 13 d'adresses CAMAC et au registre 11 de fonction CAMAC, dont les sorties sont connectées aux tampons 12, dont les sorties sont connectées aux bus F du bus principal 18 de CAMAC les sorties du compteur d'adresses 13 sont connectées aux tam- pons 14, dont les sorties sont connectées au bus A du bus prin- cipal 18 de CAMAC ; les sorties du compteur de postes 15 sont connectées aux entrées du décodeur 16, dont les sorties sont connectées aux sorties des registres tampons 17 de poste et aux bus N du bus principal 18 de CAMAC. Les mémoires de programmes 5, 6, i et 8 sont du type RAM (mémoire à accès sélectif) de 128 x 8 bits chacune. Lorsque la bascule d'état 18 est dans l'-état 110:1, le processeur est déconnecté et le microprocesseur qui commande les contrôleurs de caisse a accès à la mémoire de programme au moyen du bus principal 1 du microprocesseur.Par axlleurs-, les entrées d'adresses des mémoires de programmes 5g6, 7 et 8 sont envoyées au moyen du multiplexeur sur les deux bus d'adresses A2 et A8, et le sélecteur de bus commun est décodé par les bus d'adresse A9 et A15, les bus d'adresses A0 et A1 recommutant successivement quatre mémoires de programmes Le microprocesseur de commande, au moyen du système de fonctionnement, charge les mémoires de programme 5, 6, 7 et 8 avec les programmes d'opéra- tion du processeur de commande du canal CAMAC.La figure 2 représente le schéma de fonctionnement du processeur Suivant le programme qui est enregistré dans les mémoires de programmes 5, 6, 7 et 8, le processeur de commande du canal Ck2NAC passe dans l'un des trois modes de fonctionnement de base, dont chacun se caractérise par la commande de l'un des trois blocs principaux du processeur # le bloc 19 d'impulsions de commande (générateur 19) ; le bloc 20 d'accès de mémoire sélectif ; et le générateur CAMAC 21. Les transitions d'un étt de fonctionnement à un autre s'effectuent sous la commande du bloc 10 de codage et de commande d'état du processeur.Le générateur 19 d'impulsions de commande prépare le processeur en vue de la commande du canal CAMAC pour le fonctionnement. Le démarrage du processeur est effectué par le décodeur d'adresse 4 qui décode l'adresse de départ - état spécifié des bus d'adresses sur le bus principal 1 du microprocesseur, oh les bus A7 et A15 de poids le plus fort fournissent le code de début de CAMAC inversant la bascule d'état 18 en la faisant passer à l'état "1", et le contenu des bus A0 et A6 de poids le moins fort est reproduit dans le compteur 3 de mémoires de programmes et forme l'adresse de départ pour le p-rograzr.e CAMAC. La bascule d'état 18 empêche le choix des mémoires de programmes 5, 6, 7 et 8 par le bus principal 1 du microprocesseur et valide la fourniture du contenu du compteur 3 de mémoires de programmesaux bornes du multiplexeur d'adresse de- la mémoire de programme 2, et le dé- codeur d'adresse 4 fournit simultanément un sélecteur commun aux quatre mémoires de programmes 5, 6, 7 et 8.Ainsi, au moyen du multiplexeur de données 9, le contenu des cellules choisies (ayant la même adresse) des mémoires de programmes 5, 6, 7 et 8 est injecté dans le registre 11 de fonction CAMAC, dans le compteur 13 d'adressesCAMAC, dans le compteur 15 de postes,dans le bloc 10 de codage et de commande d'état du processeur, et, au moyen du multiplexeur 24 du registre d'adresses de données, dans le registre 25 dladressesde données, Le processeur de commande du canal CMiAC fonctionne suivant deux formats d'instruction, suivant l'état de bit, à savoir dans le format dinstruction simple (32 bits) ou double (64 bits). Après que le processeur de commande du canal CAMAC a été . activé au moyen du générateur 19 d'impulsions de commande et du bloc 10 de codage et de commande d'état du Pro- cesseur, l'initialisation du processeur se produit, ce qui se traduit par le chargement du contenu de lecture des mémoires de-programmes 5,6, 7 et 8 dans le registre de fonction il, dans le compteur 13 d'adressesCAMAC, dans le compteur de postes 15 et, suivant le type des instructions CAMAC, dans le registre 25 d'adresses de données Il y a lieu de noter que les instructions CAMAC se subdivisent en deux types : celles qui utilisent les bus R et W du bus principal 18 de CAMAC, (instructions de lecture et d'enregistrement-dans les modules CkZAC), et celles qui n'utilisent pas ces bus (3) Dans les instructions du premier type (suivant la fonction F), le registre 25 d'adresses de données est chargé Par ailleurs, avec le premier type d'instructions spécifiques pour les modes CAMAC normaux, on peut organiser le transfert de données en bloc en utilisant le bus Q du bus principal 18 NON-OU de C4AC. Afin de prédéterminer et d'organiser un tel mode, le contenu du compteur 3 de mémoires de programmes est augmenté d'une unité et la seconde partie de l'instruction dite "format jumelé" est lue, ce qui indique le type du mode CA&commat;;EC. Après la préparation .initiale (figure 2), le processeur de commande du canal CXM\C est décalé sur l'un des deux états caractérisés par la commande du bloc 20 d'accès de mémoire sélectif et du générateur ClAC 21. Suivant le type d'instructions et le mode CAMAC, des transitions différentes dans le schéma de fonctionnement du processeur de commande du canal CAMAC sont opérée s (figure 2). Par exemple, une instruction provenant d'une lecture de module dans le mode "répétition" (3) est exécutée dans l'ordre suivant, c'est-à-dire que les branches de transition suivantes sont excitées : 1, 3, 5, 4, 9. Ce qui est caractéristique de ce mode est que le processeur reste dans l'état du générateur CAMAC (c'est-à-dire qu'il répète le cycle CAMAC) jusqu'S ce que le module réponde par le bus Q qu'il a accepté lginstruction. Pendant l'état du générateur CAMAC, le processeur excite les bus F, A et N du bus principal l8 de CAMAC et lui envoie des impulsions de fixation de commande.Le fonctionnement du bloc d'accès de mémoire sélectif se caractérise par le fait qu'il lit la mémoire du contrôleur de caisse et enregistre dans le registre de données 26, ou bien il enregistre le con tenu du registre de données 26 dans la mémoire, ou il y a lieu de noter que le mot CAMAC est à 24 bits, et celui de la mémoire à 8 bits. L'accès de mémoire double par le microprocesseur de commande et le processeur de commande du canal CAMAC se fait dans le mode dit "transparent" t4) qui est représenté sur la figure 3. Le microprocesseur a accès à la mémoire dans le cycle C2, et le processeur a accès à la mémoire dans le cycle 2, et le processeur de commande du canal CAMAC dans le cycle Cl. Un bit spécifique de l'instruction CAMAC indique que l'instruction exécutée est la dernière, ou bien qu'une nouvelle instruction doit suivre dans le programme. S'il ne s'agit pas de la dernière instruction après l'exécution de l'instruction en cours, le compteur de mémoires de programmes est incrémenté et la nouvelle instruction est lue. Si l'instruction exécutée est la dernière, la bascule 18 de "début" est mise à zéro, et la bascule 30 de fin de CAMAC est inversée sur l'état "1", ce qui excite le bus IRQ du bus principal 1 du microprocesseur. En cas d'erreur dans l'instruction cREaC et d'un mauvais fonctionnement du module CAMAC, la bascule 31 est inversée sur l'état O, ce qui a également pour effet d'exciter le bus IRQ. REVENDICATION Processeur de commande du canal CAMAC dans un contrôleur de caisse à microprocesseur, caractérisé en ce qu'il se compose d'un multiplexeur (2) d'adresses de mémoires de programmes dont les entrées sont connectées au bus principal (1) du microprocesseur et aux sorties d'un compteur (3) d'adresses de mémoires de programmes, et dont les sorties sont connectées aux entrées d'adresses des mémoires de programmes (5, 6, 7 et 8), l'entrée de commande du multiplexeur (2) étant connectée à la sortie unique d'une bascule d'état (18) dont l'entrée S est connectée à un décodeur d'adresse (4) et dont l'entrée R est connectée àun générateur (19) d'impulsions de commande et à l'entrée S d'une bascule (30) de "fin de CAMAC", dont l'entrée R est connectée au décodeur d'adresse (4) et à l'entrée S d'une bascule (31) d'erreur, la sortie de la bascule (30) étant connectée à un inver- seur (32) à collecteur ouvert, dont la sortie est connectée au bus IRQ du bus principal (1) du microprocesseur et à la sortie d'un autre inverseur (33) à collecteur ouvert dont l'entrée est connectée à la sortie neutre de la bascule d'erreur (31), l'entrée de la bascule d'erreur (31) étant connectée à la sortie d'un circuit ET (23) à double entrée dont l'une des entrées est connectée à un bloc (10) de codage et de commande d'état du processeur; et dont la seconde entrée est connectée à la sortie d'un circuit NON-ET (22) à double entrée, dont l'une des entrées est connectée au bus X du bus principal (18) de CAMAC, et dont la seconde entrée est connectée a la sortie B du générateur CAMAC (21), laquelle est à son tour connectée aux entrées séparatrices du tampon de la fonction CAMAC (12), au registre tampon (14) d'adresses de CAMAC, à un décodeur de poste (16) et au tampon des bus W (27);; les selecteurs de bus de mémoires de programmes (5, 6, 7 et 8) étant connectée au décodeur d'adresses (4) et les bus D des mémoires de programmes (5, 6, 7 et 8) étant connectés bilatéralement à un multiplexeur (9) de mémoires de programmes, lequel est connecté bilatérale- ment au bus principal (1) du microprocesseur et unilatéralement au registre (11) de la fonction CAMAC, au compteur (13) d'adresses de CAMAC, au compteur de postes (15), au bloc (10) de codage et de commande d'état du processeur, aux registres tampons (17) de postes et au multipleseur (24) d'un registre adresses de données, lfflen-tree de commande du multiplexeur (9) des mémoires de programmes étant connectée au décodeur d'adresse (4), et le décodeur d'adresse (4) etant connecté aux bus d'adresse du bus principal (1) du microprocesseur et l'entrée de comptage du compteur (3) de mémoires de programme est connectee au générateur 5193 d'impulsions de commande, lequel est connecté au générateur CAMAC (21) bilatéralement, au bloc (10) de codage et de commande d'état du processeur, à l'entrée de compt du registre (25) d'adresses de données, à l'entrée du charmeur (26) zut du registre de données, et est en outre con- net bilatéralement a un bloc (20) d'accès sélectif de mémoire, ce dernier étant connecté aux bus VMA et C1 du bus principal (i) du microprocesseur, le bus C1 étant connecté a l'entrée sé- paratrice des registres tampons (29) d'adresses de données et à l'entrée de corande du multiplexeur de données (28) et l'enw trée de commande de direction du multiplexeur de données (28) est connectée au bloc (20) d'accès sélectif de mémoire, le multiplexeur de données (28) étant connecté bilatéralement aux bus B du bus principal (1) du microprocesseur et aux. entrées et aux sorties du registre de données (26), lequel est a son tour connecté au tampon (27) du bus W, aux bus R du bus principal (18) de CAMAC, au genérateur CAMAC (21) et au bloc (20) d'accès sélectif de mémoire, lequel est connecté bilatéralement au générateur CAMAC (21), ce dernier étant connecté à 1 'entrée de cycle d'horloge d'une bascule Q, dont l'entrée D est connec- tee au bus Q du bus principal (18) de CAMAC, et dont l'unique sortie est connectée au bloc (10) de codage et de commande d'état du processeur, lequel est à son tour connecté en outre au multiplexeur du registre (24) d'adresses de données, au compteur de postes (15), au compteur (13) d'adresses CAMAC et au registre (11) de fonction CN, dont les sorties sont connectées au bus F du bus principal (18) de CAMAC, les sorties du compteur d'adresses (13) étant connectées aux tampons (14), dont les sorties sont connectées aux bus A du bus principal (18) de CEXAC, et les sorties du compteur de postes (15) sont connectées aux entrées du décodeur (16), dont les sorties sont connectées aux sorties des registres tampons (17) de;posteset aux bus N du bus principal (18) de CAMAC.