Brevet FR2573227A1 — publié le 19860516

DISPOSITIF DE SIMULATION ET DE SECURITE POUR CLAVIER DE SAISIE DE DONNEES La présente invention concerne un disposi- tif desimulation et de sécurité pour un clavier de sai- sie de données d'un processeur. Elle s'applique à la transmission d'instructions à un processeur, à partir d'un clavier de saisie de données. Elle permet notam- ment d'empêcher que tout opérateur travaillant sur ce clavier utilise le processeur avec un programme diffé- rent du programme d'exécution à partir duquel ce pro- cesseur doit fonctionner. On sait qu'un processeur fonctionne à partir d'un programme d'exécution enregistré dans une mémoi- re. Ce programme d'exécution ne peut être déroulé qu'après l'initialisation du processeur. Ce programme d'initialisation est généralement enregistré dans une mémoire morte (Mémoire ROM) et le programme d'exécu- tion se déroule, lorsqu'après l'initialisation, des instructions d'appel, spécifiques du programme d'exé- cution considéré, sont transmises au processeur, grâce à un opérateur agissant sur le clavier de saisies de données de ce processeur. Le programme d'exécution qui est généralement contenu dans une mémoire vive, ne peut donc se dérouler que si les instructions d'appel de ce programme ont été correctement fournies par le clavier. Si un opérateur transmet des instructions différentes de celles qui sont nécessaires au déroule- ment du programme d'exécution, cet opérateur peut alors travailler sur un programme différent du pro- gramme d'exécution à partir duquel il était prévu que l'opérateur travaille. Ceci arrive fréquemment, no- tamment lorsque des processeurs sont destinés à l'en- seignement. Il est souvent courant en effet que dans ce type d'application, les étudiants introduisent, après initialisation, des instructions qui ne corres- pondent pas du tout aux instructions d'appel du pro- gramme d'exécution; ces étudiants travaillent alors sur un programme de leur choix qui ne correspond pas du tout au programme d'exécution prévu pour l'ensei- gnement souhaité. L'invention a pour but de remédier à ces inconvénients et notamment de prévoir un dispositif de simulation et de sécurité pour clavier de saisie de données, ce dispositif empêchant le fonctionnement d'un processeur à partir d'un programme différent du programme d'exécution à partir duquel ce processeur doit normalement fonctionner. L'invention a pour objet un dispositif de simulation et de sécurité pour clavier de saisie de données d'un processeur, ce clavier comprenant des lignes et des colonnes et des touches de sélection, l'appui d'une touche sélectionnant une ligne et une colonne et permettant ainsi de transmettre une ins- truction codée correspondant au processeur, par l'in- termédiaire d'une unité d'entrée-sortie reliée au pro- cesseur et aux lignes et colonnes, cette unité d'en- trée-sortie fournissant des impulsions de balayage aux lignes du clavier, le processeur étant relié à au moins une mémoire contenant un programme d'initialisa- tion et au -moins une mémoire contenant un programme d'exécution qui est appelé, après l'initialisation, lorsqu'une série d'instructions codées d'appel ont été transmises au processeur par le clavier, caractérisé en ce qu'il comprend un ensemble de mémorisation con- tenant lesdites instructions codées d'appel et qui est retié à l'unité d'entrée-sortie, et un ensemble d'ai- guillage relié à l'ensemble de mémorisation, aux co- lonnes du clavier et à l'unité d'entrée-sortie pour permettre la transmission des instructions d'appel vers le processeur, pour empêcher toute transmission d'instruction codées à partir du clavier pendant l'initialisation et la transmission des instructions d'appel, puis pour autoriser la transmission des ins- tructions à partir du clavier, lorsque toutes les ins- tructions d'appel ont été reçues par Le processeur. Selon une autre caractéristique de l'inven- tion, l'ensemble de mémorisation comprend une mémoire de commande contenant lesdites instructions d'appel ainsi que les adresses codées de ces instructions, un o10 compteur d'adresses relié à cette mémoire de commande et à une sortie de commande d'un sélecteur d'impul- sions pour recevoir des impulsions de commande d'adressage de la mémoire de commande, synchronisées avec les impulsions de balayage des lignes du clavier, les moyens d'aiguillage comprenant un circuit d'ai- guillage relié par des entrées, à des moyens de lectu- re des instructions d'appel, eux-mêmes reliés à la mé- moire de commande, à une sortie du compteur et aux colonnes du clavier, des sorties des moyens d'aiguil- lage étant reliées à des entrées de l'unité d'entrée- sortie, ces moyens d'aiguillage comprenant en outre un comparateur relié à des sorties de l'unité d'entrée- sortie, pour recevoir à chaque instant, un code de balayage des lignes du clavier, ce comparateur étant aussi relié à des moyens de lecture des adresses codées des instructions d'appel, une sortie de ce com- parateur étant reliée aux moyens de lecture des ins- tructions d'appel pour commander le transfert des ins- tructions d'appel vers les moyens d'aiguillage et vers l'unité d'entréesortie, lorsque le code de-la ligne balayée correspond au code de l'adresse des instruc- tions d'appel, les moyens d'aiguillage reliés au compteur bloquant tout transfert d'instructions pro- venant du clavier pendant l'initialisation et pendant le balayage des adresses de la mémoire de commande et 25732f1 des lignes du clavier. Selon une autre caractéristique, Le séLec- teur d'impulsions comprend un circuit logique dont une entrée est reliée à une sortie de L'unité d'entrée- sortie pour recevoir des impulsions de commande d'adressage de la mémoire, provenant du processeur et dont une autre entrée est reliée à une sortie d'une horloge externe fournissant des impulsions de commande d'adressage de La mémoire, une sortie de ce sélecteur étant reliée à une entrée du compteur, deux entrées de commande de ce sélecteur étant reliées à un commuta- teur pour sélectionner Les impulsions provenant de L'unité d'entréesortie ou de L'horLoge externe, les impulsions de commande d'adressage étant synchroni- sées avec Les impulsions de balayage des Lignes du clavier. Le processeur 1 est relié à une unité d'en- trée-sortie 2, eLle-même reliée aux lignes 3 et aux colonnes 4, d'un clavier de saisie de données 5, comme on le verra plus Loin en détait.. Ce clavier comporte des touches d'appui 6 qui ne sont pas toutes représen- tées sur la figure. Les colonnes et les lignes du clavier sont portées en permanence à un niveau logique i par exemple, grâce à des tensions +Vl, +V2, appli- quées respectivement à ces lignes et ces colonnes, par l'intermédiaire de résistances R1, R2. Le processeur est aussi relié à une mémoire 7 à lecture seule (mé- moire ROM) qui contient un programme d'initialisation, et à une mémoire 8 (une mémoire vive par exemple) qui contient un programme d'exécution; ce programme ne peut être déroulé, comme indiqué plus haut, que s'il est appelé par des instructions déterminées, introdui- tes par l'opérateur, à l'aide du clavier 5. Ce clavier fonctionne normalement de la façon suivante: toutes les lignes et toutes les colonnes sont à un niveau logique 1. Le microprocesseur, grâce à l'unité d'en- trée-sortie 2 balaye périodiquement et successive- ment, les lignes 3 du clavier, en leur appliquant des impulsions de niveau logique O. Lorsque l'opérateur souhaite envoyer une instruction vers le processeur 1, il appuie sur une touche 6 par exemple; lorsque l'im- pulsion de balayage de niveau logique O est appliquée à la ligne correspondant à cette touche, une impulsion de niveau logique O apparaît aussi sur la colonne cor- respondante. Il en résulte que le processeur reçoit, par L'intermédiaire de l'unité d'entrée-sortie 2, un code correspondant à la ligne balayée et à colonne de la touche qui a été appuyée. C'est ainsi par exemple, que si le clavier comporte 8 lignes et 8 colonnes et que la touche appuyée correspond à la première ligne et à la deuxième colonne, le code transmis au proces- seur pour la première ligne est 01111111, tandis que le code correspondant à la deuxième coLonne est 10111111. On voit donc qu'après l'initialisation du processeur, l'opérateur peut envoyer des instructions à ce processeur, par l'intermédiaire du clavier. Ces instructions doivent être normalement des instruc- tions d'appel permettant le déroulement du programme d'exécution contenu dans la mémoire vive 8. Le dispo- sitif de sécurité, qui va maintenant être décrit, permet d'empêcher l'envoi de n'importe queLles ins- tructions vers le processeur, après l'initialisation de celui-ci; il permet donc d'interdire à tout opéra- teur de travailler sur un autre programme que le pro- gramme d'exécution contenu dans la mémoire 8. Le dispositif de sécurité comprend un ensem- ble de mémorisation 9 contenant des instructions co- dées d'appel du programme d'exécution. Cet ensemble de mémorisation est relié à l'unité d'entrée-sortie 2, ainsi qu'à un ensemble d'aiguillage 10 qui sera décrit plus Loin en détail. Cet ensemble d'aiguillage est aussi relié aux lignes 3 et aux colonnes 4 du clavier , ainsi qu'à l'unité d'entrée-sortie 2. IL permet, comme on le verra plus loin, de transmettre des ins- tructions d'appel du programme d'exécution, vers le processeur, par l'intermédiaire de l'unité d'entrée- sortie 2. Il permet également d'empêcher toute trans- mission d'instructions codées, à partir du clavier, pendant l'initialisation et la transmission des ins- tructions d'appel contenues dans l'ensemble de mémori- sation 9; il autorise ensuite la transmission d'ins- tructions à partir du clavier, lorsque toute les ins- tructions d'appel ont été reçues par le processeur. L'ensemble de mémorisation 9 comprend une mémoire de commande 11 (de type ROM par exemple). Cette mémoire comprend deux parties 12, 13 qui con- tiennent respectivement des instructions d'appel du programme d'exécution et les adresses de ces instruc- tions. L'ensemble de mémorisation comprend aussi un compteur d'adresses 14 qui est relié à des entrées d'adressage de la mémoire de commande 11. Ce compteur est aussi relié à une sortie 15 de commande d'un sé- lecteur 23 d'impulsions de commande d'adressage. Il reçoit des impulsions de commande d'adressage de la mémoire 11, qui sont synchronisées avec les impulsions de balayage des lignes du clavier, appliquées à celui- ci par l'unité d'entrée-sortie 2. Ce sélecteur 23 d'impulsions de commande d'adressage comprend un circuit logique 24 dont une entrée 25 est reliée à une sortie de l'unité d'entrée- sortie 2, pour recevoir des impulsions de commande d'adressage de la mémoire de commande 11, ces impul- sions provenant du processeur 1. Le circuit logique 24 comprend une autre entrée 26 qui est reliée à une sortie d'une horloge externe 27, synchronisée sur une entrée 28, sur les impulsions de balayage des lignes du clavier. Deux entrées 29, 30 de ce circuit logique, sont reliées à un commutateur 31 qui permet de sélec- tionner les impulsions de commande d'adressage prove- nant soit du processeur 1, soit de l'horloge 27. Le circuit logique 24 comprend par exemple une porte 0U32 dont la sortie constitue la sortie 15 du sélecteur et dont les entrées sont respectivement reliées aux sor- ties de deux portes ET33, 34. L'entrée 29 du sélecteur constitue l'une des entrées de la porte 33 tandis que l'entrée 30 du sélecteur constitue l'une des entrées de la porte 34. L'autre entrée de la porte 33 consti- tue l'entrée 26 du sélecteur, reliée à l'horloge 27 et l'autre entrée de la porte 34 constitue l'entrée 25 du sélecteur, reliée à l'unité d'entrée sortie 2. La sé- lection des impulsions de commande provenant du pro- cesseur 1 ou de l'horloge 27, est effectuée par le basculement du commutateur 31 vers l'entrée 29 ou vers l'entrée 30, la borne commune 35 du commutateur étant portée à un niveau logique 1. ce sélecteur permet à tout moment d'interrompre la transmission d'instruc- tions par le clavier pour faire parvenir au processeur des instructions d'appel contenues dans la mémoire 11. Ceci est notamment obtenu en plaçant le commutateur 31 dans la position 29. Les moyens d'aiguillage 10 comprennent un circuit d'aiguillage 16 relié par des entrées 17, à des moyens de lecture 18 des instructions d'appel con- tenues dans la premiere partie 12 de la mémoire de commande 11. Les moyens de lecture 18 des instructions d'appel, sont eux-mêmes reliés à cette mémoire. Ces moyens d'aiguillage 16 sont aussi reliés à une sortie du compteur 14 pour recevoir, comme on le verra plus loin en détailt, une impulsion de commande d'aiguilla- ge. Les moyens d'aiguillage sont aussi reliés aux con tonnes 4 du clavier 5 et ils comprennent aussi un com- parateur 19 qui est relié à des sorties de l'unité d'entrée-sortie 2, et à des sorties de moyens de lec- ture d'adresses 20; ces moyens de lecture sont eux- mêmes reliés à des sorties de la deuxième partie 13 de la mémoire de commande 11. Une sortie de ce compara- teur est reliée à une entrée de commande des moyens de lecture 18, des instructions d'appel contenues dans la mémoire 11. Le dispositif qui vient d'être décrit fonc- tionne de la manière suivante, lorsque le commutateur 31 est dans la position 30: pendant la phase d'ini- tialisation du processeur, le balayage du clavier n'ayant pas commence, le compteur 14 est bloqué; le circuit d'aiguillage reçoit sur son entrée de commande 21, un signal empêchant tout transfert d'instructions provenant du clavier 5, vers l'unité d'entrée-sortie 2. Pendant toute cette phase d'initialisation du pro- cesseur, l'unité d'entrée-sortie n'applique aucune impulsion de balayage sur les lignes du clavier. A la- fin de cette période d'initialisation, le processeur 1 applique, par l'intermédiaire de l'unité d'entrée- sortie 2, des impulsions de balayage des lignes 3 du clavier 5. Des impulsions synchrones de ces impulsions de balayage sont alors appliquées simultanément au compteur 14. Le signal appliqué sur l'entrée de com- mande 21 du circuit d'aiguillage 16 continue à bloquer le transfert d'instructions en provenance du clavier, vers l'unité d'entrée-sortie 2. Les sorties du comp- teur 14 permettent d'adresser la deuxième partie 13 de la mémoire 11 qui contient, sous forme codée, les adresses des instructions d'appel du programme d'exé- cution. Le comparateur 19 permet au cours du balayage des lignes du clavier de comparer le code correspon- dant à la ligne balayée avec le code de l'adresse de la mémoire 9 également balayée par le compteur 14. Si ces deux codes sont identiques, le comparateur fournit alors sur une sortie 21 une impulsion de commande des moyens de lecture 18 des instructions codées d'appel du programme d'exécution. Ces instructions sont alors transférées grâce à ces moyens de lecture 18 depuis la première partie de la mémoire de commande 11, vers les moyens d'aiguillage 16 qui les transmettent ensuite à l'unité d'entrée-sortie 2. Lorsque toutes les lignes du clavier et toutes les adresses d'instruction d'ap- pel enregistrées dans la mémoire 11 ont été balayées, le compteur 14 est remis à zéro, par des moyens connus dans l'état de la technique et qui ne sont pas décrits ici en détail. L'entrée de commande 22 des moyens d'aiguillage 16, reçoit alors un signal de commande autorisant le transfert d'instructions en provenance du clavier 5. Une séquence différente d'instructions d'appel peut à tout moment être envoyée au processeur, en plaçant le commutateur 31 dans la position 29. Le dispositif qui vient d'être décrit permet bien de bloquer tout transfert d'instructions prove- nant du clavier à tout instant et notamment pendant l'initialisation et pendant le balayage des lignes du clavier et des adresses de la mémoire de commande; il autorise ensuite tout transfert d'instructions prove- nant du clavier, après l'initialisation et le balayage du clavier ou en dehors de tout nouveau transfert d'instructions d'appel pouvant survenir lorsque le commutateur 31 est dans la position 29. Le commutateur 31 permet notamment d'appeler un autre programme d'exécution. REVENDICATIONS 1. Dispositif de simulation et de sécurité pour clavier (5) de saisies de données d'un processeur (1), ce clavier comprenant des lignes (3) et des co- tonnes (4) et des touches (6) de sélection, l'appui d'une touche sélectionnant une ligne et une colonne et permettant ainsi de transmettre une instruction codée correspondant au processeur, par l'intermédiaire d'une unité d'entrée-sortie (2) reliée au processeur (1) et aux lignes et colonnes, cette unité d'entrée- sortie fournissant des impulsions de balayage aux Lignes du clavier, le processeur étant relié à au moins une mémoire (7) contenant un programme d'initia- lisation et au moins une mémoire (8) contenant un programme d'exécution qui est appliqué après l'initia- lisation, lorsqu'une série d'instructions codées d'appel ont été transmises au processeur (1) par le clavier (5), caractérisé en ce qu'il comprend un en- semble de mémorisation (9) contenant lesdites instruc- tions codées d'appel et relié à l'unité d'entrée- sortie (2), et un ensemble d'aiguillage (10) relié à L'ensemble de mémorisation (9), aux colonnes (4) du clavier et à l'unité d'entrée-sortie (2) pour permet- tre la transmission des instructions d'appel vers le processeur (1), pour empêcher toute transmission d'instructions codées à partir du clavier (5) pendant l'initialisation et la transmission des instructions d'appel, puis pour autoriser la transmission d'ins- tructions à partir du clavier (5) lorsque toute les instructions d'appel ont été reçues par le processeur (1). 2. Dispositif selon La revendication 1, caractérisé en ce que l'ensemble de mémorisation (9) comprend une mémoire de commande (11) contenant lesdi- tes instructions d'appel ainsi que les adresses codées de ces instructions, un compteur d'adresses (14) relié à cette mémoire de commande (11) et à une sortie de commande d'un sélecteur d'impulsions pour recevoir des impulsions de commande d'adressage de la mémoire de commande (11) synchronisées avec les impulsions de ba- layage des lignes (3) du clavier (5), les moyens d'aiguillage (10) comprenant un circuit d'aiguillage (16) relié par des entrées, à des moyens de lecture (18) des instructions d'appel eux-mêmes reliés à la mémoire de commande (11), à une sortie du compteur (14) et aux colonnes (4) du clavier, des sorties des moyens d'aiguillage (16) étant reliées à des entrées de l'unité d'entrée-sortie (2), ces moyens d'aiguilLa- ge (16) comprenant en outre un comparateur (19) relié à des sorties de l'unité d'entrée-sortie (2) pour recevoir à chaque instant un code de balayage des lignes (3) du clavier, ce comparateur (19) étant aussi relié à des moyens (20) de lecture des adresses codées des instructions d'appel, une sortie (21) de ce compa- rateur étant reliée aux moyens (18) de Lecture des instructions d'appel pour commander le transfert des instructions d'appel vers les moyens d'aiguillage (16) et vers l'unité d'entrée-sortie (2), lorsque le code de -la ligne balayée correspond au code de l'adresse des instructions d'appel, les moyens d'aiguillage (16) reliés au compteur (14) bloquant tout transfert d'ins- tructions provenant du clavier (5) pendant L'initiali- sation et pendant le balayage des adresses de la mémoire de commande (11) et des lignes (3) du clavier (5). 3. Dispositif selon la revendication 2, caractérisé en ce que le sélecteur d'impulsions (23) comprend un circuit logique (24) dont une entrée est reliée à une sortie de L'unité d'entréesortie (2) pour recevoir des impulsions de commande d'adressage de la mémoire de commande (11), provenant du proces- seur (1), et dont une autre entrée est reliée à une sortie d'une horloge externe (27) fournissant des im- pulsions de commande d'adressage de la mémoire de com- mande (11), une sortie (15) de ce sélecteur étant reliée à une entrée du compteur (14), deux entrées de commande de ce sélecteur étant reliées à un commuta- teur (31) pour sélectionner Les impulsions provenant de l'unité d'entréesortie (2) ou de l'horloge externe (27), les impulsions de commande d'adressage étant synchronisées avec les impulsions de balayage des lignes du clavier (5).