FR 2570524 A1 19860321 FR 8414379 A 19840919 Terminal de télé-informatique à extensions externes L'invention concerne les terminaux de télé- informatique, prévus pour être reliés à un réseau de transmission de données, comportant une unité de calcul telle qu'un microprocesseur, des organes d'affichage et d'entrée et une mémoire contenant un programme résidant, reliés à un bus. Parmi les applications de l'invention, on peut citer les terminaux de Videotex qui sont large- ment diffusés à l'heure actuelle mais dont les possibi- lités se limitent à l'affichage sur écran ou au trans- fert sur imprimante d'informations transmises par le réseau en réponse à une demande formulée au clavier par un opérateur local. Mais cette application, si elle est particulièrement importante à l'heure actuelle, n'est nullement exclusive et peut, dans l'avenir, devenir mi- neure par rapport à d'autres. Diverses considérations, et notamment des impé- ratifs de coûts et de délais d'étude, ainsi que de prix de vente font que les terminaux de télé-informatique et de télématique commercialisés à l'heure actuelle sont figés et difficilement adaptables aux évolutions du mar- ché. On peut considérer de tels appareils comme étant "fermés". Ils ne peuvent accepter de nouvelles fonctions que moyennant une étude d'adaptation spécifique à chaque cas particulier. On a cependant tenté d'étendre les possibilités d'un terminal de téléinformatique par enfichage d'une cartouche sur un connecteur dont est muni le terminal. En particulier, on a réalisé des modules enfichables d'extension de la capacité mémoire du terminal. Ces mo- dules sont entièrement gérés par le processeur interne du terminal de base et un logiciel qui lui est intégré. Il est indispensable que le module soit spécialement adapté au terminal, dont le logiciel doit connaitre le module pour pouvoir le gérer suivant ses caractéristi- ques particulières. On a également proposé des modules enfichables d'extension de programmes. Mais ces pro- grammes supplémentaires ne sont pas exécutés directement dans le module. Ils sont chargés par celui-ci en mémoire centrale du terminal avant exécution. Cette approche a l'inconvénient d'exiger une capacité mémoire supplémen- taire du terminal. Enfin, dans la version la plus éla- borée, on a proposé de connecter à un terminal des mo- dules disposant de leur propre intelligence (y compris d'un processeur). Le processeur du module et celui du terminal doivent alors dialoguer suivant un protocole dont la présence exige une puissance de calcul supplé- mentaire. De façon similaire, on a proposé de munir cer- tains minicalculateurs, notamment des ordinateurs per- sonnels, d'un connecteur permettant d'enficher une cartouche leur donnant des possibilités supplémentaires. Le brevet US 4 377 852 décrit par exemple un module constitué de mémoires mortes enfichables sur un ordina- teur domestique pour permettre son adaptation sur des réseaux de transmission de données. Cette adaptation exige encore un emprunt des capacités de l'ordinateur. L'invention vise à résoudre le problème de l'ad- jonction simple de fonctions supplémentaires à un termi- nal par connexion d'éléments externes gérés par le pro- tocole original de gestion du terminal, la seule con- trainte étant que chaque élément externe inséré soit identifiable par le protocole. On désignera par la suite cet élément externe par le terme de "module" pour plus de simplicité. Mais il doit être entendu que ce mot ne doit pas être pris dans le sens limitatif d'un boîtier enfichable contenant des mémoires mortes, mais comme désignant tout élément manipulable en bloc, enfichable sur un connecteur dont est équipé le terminal. Pour arriver à ce résultat, l'invention trans- pose au niveau du terminal, c'est-à-dire au niveau lo- cal, une conception déjà appliquée pour l'interconnexion de systèmes informatiques et télé-informatiques clas- siques, consistant en un modèle, établi par 1'OSI, d'in- terconnexion à sept niveaux et à la recherche d'une nor- malisation sur le nombre de niveaux le plus élevé possi- ble à partir du bas. Mais cette normalisation est obte- nue par des moyens matériels et logiciels qui sont très différents de ceux mis en oeuvre pour la normalisation de protocole suivant le modèle ISO pour systèmes ouverts et qui n'apparaissent normalement pas à l'homme du mé- tier. A partir de cette approche, l'invention propose un terminal interactif du type défini au début de la présente demande, caractérisé en ce qu'il comporte un dispositif d'extension du bus vers au moins un accès associé à un connecteur de réception de module externe et en ce qu'il comporte en mémoire résidente un proto- cole de gestion de modules, interfaçable avec les pro- tocoles internes du terminal et permettant d'accueillir les modules externes et de les rendre compatibles en même temps que d'assurer la sécurité du terminal. Du point de vue matériel, le connecteur est avantageusement placé dans un logement prévu dans le boitier du terminal, protégé par une porte basculante, la connexion physique s'effectuant par l'intermédiaire d'un connecteur à force d'insertion réduite. Le terminal est avantageusement prévu pour recevoir deux modules reliés chacun à l'appareil par l'intermédiaire d'un connecteur. Le protocole de gestion des modules externes est incorporé à un moniteur d'aiguillage qui permet au ter- minal de prendre en compte aussi bien les modules ex- ternes que les modules internes du terminal. De ce fait, chaque module externe peut dialoguer avec tout module interne ou avec l'autre module externe. Il est également à même de se substituer, aussi bien du point de vue matériel que du point de vue logiciel, à l'un quelconque 4 2570524 des modules internes. Le protocole de gestion des mo- dules externes assure la compatibilité entre ces modules et le terminal, ce qui autorise la connexion d'un module externe prévu pour la mise en oeuvre de l'invention sur l'un quelconque des terminaux ouverts, appartenant à des familles différentes, équipés d'un tel moniteur. Comme cela a été indiqué plus haut, le protocole de gestion des modules externes doit assurer des ser- vices que l'on peut assimiler aux six premiers niveaux de la normalisation ISO, dans le but de permettre la communication au septième niveau (niveau application). Il n'est pas nécessaire de décrire ici la normalisation OSI, du fait qu'elle est bien connue. En cas de besoin, on pourra cependant se reporter à des documents résumant cette normalisation,. par exemple à "Protocol standardiz- ation works its way up the ladder of the OSI model", ELECTRONICS, 14 juin 1984, pp. 148-151. Dans le cas de la mise en oeuvre de l'invention, les niveaux 1 à 6 du modèle OSI correspondent aux fonc- tions suivantes: Niveau 1 (niveau physique): établi sur le bus du terminal, complété par une extension. Niveau 2 (niveau liaison): procédure de trans- fert de l'information sur ce bus. Niveau 3 (niveau réseau): routage et mise en relation logique de plusieurs équipements de péri- informatique. Niveau 4 (niveau transport): sécurité des échanges d'information. Niveau 5 (niveau session): négociation des dif- férents services inclus dans les sous-ensembles logiques de la périphérie. Niveau 6 (niveau présentation): définition des formats et protocoles de choix de ces formats par le niveau 7 (application). Grâce à cette disposition, il devient possible ?0524 d'interconnecter soit des équipements disposant de leur propre intelligence, notamment d'un organe de calcul, soit des équipements utilisant l'intelligence d'un autre équipement, notamment celle du terminal. L'invention sera mieux comprise à la lecture de la description qui suit d'un mode particulier d'exécu- tion de l'invention, donné à titre d'exemple non limi- tatif. La description se réfère aux dessins qui l'accom- pagnent, dans lesquels: - la Figure 1 est un schéma synoptique montrant l'architecture matérielle du terminal, - la Figure 2 est un synoptique du système d'ai- guillage du terminal, - la Figure 3 est un schéma d'organisation d'un module logiciel interne du système d'aiguillage de la Figure 2, - la Figure 4 est un logigramme faisant appa- raitre la gestion du protocole de communication, - les Figures 5 à 9 sont des logigrammes indi- quant les opérations effectuées aux différents niveaux du protocole de communication, - la Figure 10 est un schéma d'organisation de module externe. L'invention sera maintenant décrite dans son application à un terminal de Videotex qui peut par exemple être celui commercialisé par la demanderesse sous la dénomination "Minitel". Un tel terminal a la constitution matérielle d'ensemble montrée en Figure 1. Le terminal 10 comporte un bus 12 auquel sont reliés un microprocesseur 14, des interfaces et des mémoires vives 16 et mortes 18. Les interfaces représentés comprennent un interface de clavier 20, un interface d'écran 22, un interface modem 24 de liaison avec une ligne de transmission par l'in- termédiaire d'un connecteur 26 et un interface 28 de liaison avec une imprimante par l'intermédiaire d'un 70524 connecteur 30. D'autres interfaces peuvent être prévus, par exemple pour les liaisons avec une ligne télépho- nique. La mise en oeuvre de l'invention sur un terminal de ce type implique des modifications de l'architec- ture matérielle et de l'organisation logicielle. L'architecture doit être telle que le terminal constitue un système ouvert ou évolutif, pouvant ac- cueillir des modules externes correspondant à des fonc- tions variées. Pour cela, le terminal comporte un dis- positif d'adaptation dont l'organe essentiel est une extension 32 du bus 12. Dans le cas illustré, l'extension 32 est prévue pour permettre au terminal de recevoir au plus deux modules externes, qu'on appellera modules 1 et 2, sui- vant le connecteur sur lequel ils sont branchés. Chacun des modules externes comporte un bus 38 et un circuit 40 d'adaptation au bus interne 12 du terminal. Les modules externes peuvent, pour le reste, avoir des constitutions très variées. Sur la Figure 1, le module externe 1 est constitué par un module 34 qui comporte uniquement une mémoire vive de données 42 et une mémoire morte de pro- gramme 44. Le module externe 2 est constitué par un module 36 qui comporte de plus un interface 46 de liai- son avec une unité de disquettes. L'organisation logicielle du terminal doit per- mettre au microprocesseur 14 de voir de la même façon le logiciel interne au terminal et le logiciel déporté dans les modules externes 1 et 2. Il faut en outre que cette organisation évite les perturbations du fonctionnement du logiciel interne par le logiciel externe. Pour cela, le logiciel interne d'un terminal fermé doit être com- plété par un protocole de gestion des modules externes qui a pour fonctions: - d'accueillir les modules externes, - d'assurer- la sécurité du terminal en cas de conflit ou de défaut de fonctionnement, - de faciliter l'acheminement des informations, - de s'interfacer avec les protocoles internes du terminal, - de banaliser les modules externes afin de les rendre compatibles avec tous les terminaux ouverts con- formes à l'invention. Ce protocole apparait dans l'organisation logi- cielle du terminal (Figure 2) comme un moniteur d'ai- guillage 48 permettant de prendre en compte tous les mo- dules pour leur permettre de dialoguer ou pour permettre à un module externe de se substituer à un module in- terne. Le principe mis en oeuvre dans la structure logique est de scinder les modules physiques en autant de modules logiques dont chacun peut dialoguer avec l'un quelconque des autres par l'intermédiaire du moniteur d'aiguillage 48. Toutefois, ce raisonnement ne s'étend pas obligatoirement aux modules externes. Sur la Figure 2, chacun des modules logiciels est désigné par la même référence que le module physique correspondant, affecté de l'indice a. Seul le module d'exploitation 50 ne cor- respond pas à une entité physique particulière: il est constitué par le logiciel d'application du terminal, comportant notamment un répertoire des fonctions. On pourrait aussi bien affecter un module logiciel interne unique aux deux modules externes, dont le nombre peut d'ailleurs être augmenté. Dans ce cas, le module logi- ciel sert àl'établissement et à la rupture des sessions (communications) entre les modules externes. Le moniteur d'aiguillage 48 dispose d'une table d'aiguillage mémorisant les différents chemins virtuels à établir entre les modules. La table dispose de valeurs permettant au système de démarrer en cas de défaut d'initialisation. Ultérieurement, chaque module qui veut dialoguer avec un autre module doit faire, au moniteur d'aiguillage 48, une demande d'établissement de con- nexion, sauf si la connexion a précédemment été établie. Le dialogue ne commence qu'après acquittement de la demande au moniteur, la première requête étant orientée de l'émetteur vers le récepteur d'information. Chacun des modules externes destinés à être connectés au terminal doit comporter un interface logiciel d'adaptation de l'application du module externe au module logiciel interne correspondant du terminal 10. En conséquence, chaque module externe doit disposer d'un minimum de logiciel d'interface et d'une table d'inter- face avec le module logiciel interne, constitué par une table implantée à une adresse fixe dans tous les modules externes. Cette table permet au terminal 10 de reconnai- tre le module externe, de l'accepter et, éventuellement, de l'activer, comme on le verra plus loin en détail. Chacun des modules logiciels internes 34a, 36a peut être regardé comme constitué de trois sous- ensembles fonctionnels, comme indiqué sur la Figure 3. Si un seul module logiciel interne est prévu, il com- porte de plus un sous-ensemble "session". L'ensemble de routage 52 est destiné uniquement à transmettre les in- formations reçues d'un module à un autre module (desti- nataire), par l'intermédiaire d'un adaptateur 54 (niveau présentation). Cet ensemble de routage fait appel à l'ensemble de gestion de module 56 lorsque les informa- tions reçues sont destinées au module logiciel interne lui-même et à l'ensemble de défense logicielle 58 pour traiter les cas d'erreur. L'ensemble de gestion 56 a pour fonction de mettre en service ou hors service le module externe associé, d'accepter ou de refuser ce mo- dule externe. L'ensemble de défense logicielle 58 cen- tralise tous les cas d'erreur et active le traitement correspondant, qui peut être de nature très variée et notamment s'étendre de la non prise en compte de l'er- reur jusqu'au redémarrage du terminal 10. L'ensemble de session, dans le cas d'un module unique, a notamment pour rôle d'organiser les dialogues et d'activer l'ap- plication prévue (éventuellement par l'intermédiaire de la présentation). La Figure 3 montre en traits mixtes un tel sous-eensemble supplémentaire de-session. Le protocole de gestion des modules externes peut ainsi assurer la compatibilité entre ces modules et le terminal. Le protocole dans son ensemble peut être regardé comme articulé en six niveaux dont le premier est classiquement constitué par la liaison physique, chaque niveau pouvant dialoguer avec les niveaux immé- diatement précédent et suivant, une information reçue étant véhiculée dans le sens montant et une information émise dans le sens descendant. Le cheminement d'infor- mation réalisé apparait sur les Figures 4 à 9 dans le cas d'une réception (c'est-à-dire du niveau 1 au niveau 7). La Figure 4 est un logigramme faisant apparaitre les fonctions du logiciel de base ayant pour rôle d'acheminer et d'activer les niveaux successifs. Les Fi- gures 5 et 6 montrent le déroulement aux niveaux N2 (liaison) et N3 (réseau) dans le cas d'une transmission d'information suivant la procédure par paquets. Les Fi- gures 7 et 8 correspondent aux niveaux N4 (traansport) et N5 (session) et font apparaitre des fonctions telles que des vérifications qui seront analysées plus loin. Enfin, la Figure 9 indique les opérations qui intervien- nent au niveau N6 (présentation). Ces opérations consis- tent en une analyse de la classe de service requis et en une gestion de l'automate de service qui sélectionne, en fonction de la classe identifiée, le traitement appro- prié avant de provoquer son exécution sur la base d'un fichier de traduction mémorisé, correspondant à la classe identifiée. Dans le cadre de ce protocole, on décrira main- tenant de façon brève la façon dont s'effectue la connexion des modules externes, leur mise en service, leur initialisation, leur exploitation et leur mise hors service. Mise en service et initialisation d'un module externe La mise en service d'un module externel ou 2 est réalisable soit par ce module externe lui-même, soit par une commande introduite par l'opérateur à l'aide du cla- vier, soit par une commande émanant du système, c'est-à- dire d'un autre module interne ou externe. Le module logiciel interne correspondant au mo- dule externe qui a été inséré est réveillé par la récep- tion d'un bloc de demande de mise en service du module externe associé. Avant d'activer ce module externe, le module logiciel interne vérifie plusieurs paramètres: - présence effective du module externe: cette présence effective peut être indiquée par une informa- tion fournie par le connecteur de réception du module externe. En cas d'absence du module externe, le module logiciel interne active son module de défense 58 (Figure 3) avec le code correspondant à l'absence de module externe à l'initialisation - module externe en état "hors service": pour demander la mise en service d'un module externe, il est nécessaire que l'état précédent de ce module soit "hors service". Si ce n'est pas le cas, il y a encore appel du module de défense logicielle 58 avec le code approprié; - sélection du démarrage autorisée, de façon automatique, sur commande du système ou sur commande au clavier; - acceptation du module externe par le terminal: pour cela, au terminal et à chaque module externe est affecté un niveau logique. Le terminal ne doit accepter de travailler avec le module externe que si celui-ci a un numéro de logique inférieur à celui du terminal. Le numéro logique du terminal est contenu dans une mémoire morte ou sauvegardée, modifiable par une commande d'exploitation spécifique - acceptation du module externe par l'autre module externe, s'il est déjà en place: en effet, l'in- troduction d'un module externe dans le terminal peut être incompatible avec un module externe présent à l'autre emplacement de réception. Cette incompatibilité peut être décelée dans la mesure o chaque module ex- terne comporte un numéro de type introduit dans son bloc moniteur et un masque d'acceptation ou de refus des autres types de module externe. Par exemple, un cas d'incompatibilité est celui o l'un des modules externes est un compilateur FORTRAN 4 tandis que l'autre est un module interpréteur BASIC. Par contre, chacun de ces modules pourra travailler avec un module externe calendrier. - vérification de clé d'accès, si celle-ci existe. Pour réserver l'utilisation d'un module externe à des personnes autorisées, ce module peut comporter une clé d'accès placée dans le bloc moniteur en mémoire morte ou en mémoire vive sauvegardée. Le module logiciel interne correspondant vérifie alors la concordance de la clé d'accès frappée par l'opérateur sur le clavier avec la clé présente dans le module externe. En cas de diver- gence, il y a intervention du module de défense logi- ciel. Exploitation du module externe Une fois le module logiciel interne 34a ou 36a initialisé, son rôle devient transparent au long du déroulement de l'application. C'est le module externe 34 ou 36 qui gère son application, notamment par dialogue avec les autres modules et positionnement d'aiguillages. En particulier, le module externe 34 ou 36 peut demander au module clavier 20a de lui affecter des tou- ches de fonctions banalisées pour sa propre exploita- tion, au module écran 22a d'afficher ses messages, etc. Le module logiciel interne ne redevient effectivement actif que s'il reçoit une commande d'exploitation le concernant, telle que demande de mise hors service. Mise hors service d'un module externe La mise hors service peut intervenir par une commande système, par une commande introduite par l'opé- rateur, par retrait du module ou par fin de traitement, le module externe intervenant alors lui-même. Cette mise hors service doit être validée de la même façon que la mise en service. La structure physique d'un module externe dépend notamment de l'application qu'il supporte. Cependant, ce module comportera toujours au minimum une zone de mé- moire non volatile (mémoire morte ou mémoire vive sauve- gardée), implantée à une adresse fixe, contenant une table d'identification et une zone de déroutement vers les programmes. La Figure 10 montre schématiquement l'organisation correspondante. La table d'identification 60, implantée à. la même adresse dans tous les modules externes, permet au terminal de reconnaitre le type de cartouche connectée et de déceler l'incompatibilité éventuelle de cette cartouche avec une autre cartouche implantée sur le terminal. Cette table peut comporter notamment un numéro logique de cartouche, l'indication du type et un masque d'acceptation et de refus. La zone de déroutement 62, placée physiquement à une adresse fixe et contigue à la table d'identification , permet au module logiciel interne 34a d'activer les traitements d'initialisation, d'application, de mise hors service et d'interruption de la cartouche. Pour permettre l'acheminement des informations entre le terminal 10 et le module externe 34, deux tam- pons, servant l'un à la- réception et l'autre à l'émis- sion, indiqués en 64 sur la Figure 10. sont communs au module externe 34 et au module logiciel interne 34a. Ces tampons sont utilisés par le module d'aiguillage et sont définis à une adresse fixe dans le terminal pour être accessibles par le module externe. Enfin, le module externe contient une zone d ap- plication 66 qui dépend directement du type d'applica- tion supporté. La structure générale de toutes les ap- plications reste néanmoins commune pour permettre de l'interfacer avec le module logiciel interne correspon- dant. L'invention est susceptible de très nombreuses applications. Sans que cette énumération soit limita- * tive, on peut indiquer quelques classes d application qui apparaissent comme importantes et peuvent directe- ment être envisagées avec des modifications relativement réduites de terminaux Videotex existants. - Application privée locale: agenda, jeux, bibliothèque de programmes de gestion (tels que les pro- grammes du genre désigné par la marque "Visicalc"), éditeur de textes,... - Application privée en mode connecté au réseau téléphonique: agenda avec numérotation automatique, dialogue de terminal à terminal par l'intermédiaire du réseau téléphonique, messagerie, carte de crédit. - Application dans l'entreprise: dialogue entre terminaux par l'intermédiaire d'un autocommutateur privé ou PABX appartenant à l'entreprise. - Application sur système télé-informatique ou télématique: interfaces série asynchrone, interfaces série synchrone, interfaces parallèle, adaptation de nouveaux périphériques. L'invention ne se limite pas aux modes particu- liers de réalisation qui ont été envisagés et décrits. Elle s'étend à l'ensemble des variantes restant dans le cadre des équivalences. Au surplus, il doit être entendu que la portée du présent brevet s'étend non seulement au terminal en lui-même, mais aussi aux organes spéciale- ment destinés à l'adapter ou à s'y adapter, et notamment aux modules externes agencés de façon à être associés à un tel terminal.. REVENDICATIONS 1. Terminal de télé-informatique comportant une unité de calcul telle qu'un microprocesseur, des organes d'affichage et d'entrée et une mémoire (18) contenant un programme résident, reliés à un bus interne (12), carac- térisé en ce qu'il comporte un dispositif (32) d'exten- sion du bus interne (12) vers au moins un accès associé à un connecteur de réception de module externe (34, 36) et en ce qu'il comporte en mémoire résidente un proto- cole de gestion de module, interfaçable avec les proto- coles internes (20a-22a, 24a, 34a, 36a, 50) du terminal (10) et permettant d'accueillir chacun des modules exc- ternes et de le rendre compatible en même temps que d'assurer la sécurité du terminal. 2. Terminal selon la revendication 1, caractéri- sé en ce qu'il comprend deux accès prévus chacun pour recevoir un module externe. 3. Terminal selon la revendication 1 ou 2, ca- ractérisé en ce que le protocole de gestion des modules externes est incorporé à un moniteur d'aiguillage (48) permettant au terminal (10) de prendre en compte aussi bien les modules externes (34, 36) que les modules in- ternes du terminal, de façon que chaque module externe puisse dialoguer avec tout module interne ou avec un autre module externe éventuel. 4. Terminal selon la revendication 3, caractéri- sé en ce qu'il comporte, pour chaque accès, un module logiciel interne (34a, 36a) comportant une zone (56) de gestion du module externe, une zone de routage (52) et une zone de défense logicielle (58). 5. Terminal selon la revendication 4, caractéri- sé en ce que chaque module externe (34, 36) comporte une table d'identification du module (60) placée à une adresse identique dans tous les modules destinés à être associés au terminal.