FR 2608806 A1 19880624 FR 8618099 A 19861223 Procédé et appareil programmable pour le transcodage de chaînes de caractères La présente invention concerne, d'une manière générale, des problèmes d'incompatibilité de codage de caractères et de messages d'instruction pouvant se poser entre deux systèmes différents de traitement de données lorsque ceux-ci doivent communiquer entre eux. Par exemple, l'un des systèmes est un micro-ordinateur ou un terminal connaissant un alphabet de caractères et une structure de message donné, et l'autre système est un système électronique central connaissant des alphabet et structure de message différents. Il existe actuellement un large éventail de terminaux, de micro-ordinateurs, et de systèmes électroniques n'utilisant pas toujours le même alphabet de caractères, le même protocole d'échanges en transmission et réception, ou la même structure de message. Cette incompatibilité entre ces différents matériels rend souvent impossible leurs interconnexions pour la réalisation d'équipements ou de systèmes plus évolués. Des matériels devant être par nature compatibles et adaptables sont bien souvent, en fait, incompatibles, tels que les terminaux équipés pour la plupart d'un clavier ayant des touches déterminant des fonctionsprogrammes auxquelles sont attribuées des combinaisons de codage fixées arbitrairement par le constructeur. Certains terminaux font appel à des codes d'ordres spécifiques, respectivement pour leur gestion interne et une gestion de piriphériques qui leurs sont raccordés. De tels terminaux raccordés à un système électronique central ne connaissant pas les mêmes codes d'ordres présentent un fonctionnement incomplet. De plus, l'évolution constante des techniques informatiques contribue à l'apparition de différents types de terminaux, notaement des terminaux à visualisation en couleurs, rendant plus délicat les problèmes d'incompatibilité. La normalisation existante permet de disposer de protocoles d'échanges normalisés, tels que l'ANSI, le VT52, le VT100, ou le standard vidéotex. Ces protocoles ont l'avantage de rendre adaptables les matériels pour certains types d'échanges mais -2- réduisent bien souvent le champ d'utilisation de matériels plus performants. Par ailleurs, la gamme des alphabets normalisés existants est en perpétuelle évolution pour répondre aux différents besoins nationaux et s'adapter aux nouvelles possibilités technologiques. Ainsi à un même caractère peut correspondre des combinaisons binaires de codage différentes suivant l'alphabet normalisé qui est utilisé. La présente invention vise à fournir un procédé et des appareils de transcodage pour résoudre les problèmes d'incompatibilité évoqués ci-dessus. Selon le procédé de l'invention, un message à transcoder transmis par un premier système numérique de traitement de données vers un second système numérique de traitement de données peut être composé d'un ou plusieurs mots binaires représentant respectivement, dans un premier alphabet associé audit premier système, un caractère ou une chatne de caractères auxquels correspondent généralement une entité déterminée ou une signification déterminée. Le message à transcoder transmis peut ne pas avoir d'équivalent ou de signification pour le second système, auquel cas aucun message ne sera délivré au second système. Au message à transcoder transmis peut correspondre un mot binaire ou une suite de mots binaires représentant respectivement dans un second alphabet associé au second système, un caractère ou une chaîne de caractères. A cette fin, un procédé selon l'invention pour transcoder un message entrant de N mots binaires entrants ordonnés, N étant un entier supérieur ou égal à 1, en un message sortant transcodé de H mots sortants, M étant un entier quelconque, est caractérisé en ce que chaque mot binaire entrant est utilisé pour adresser dans une table de transcodage, associée à un rang n du mot binaire entrant dans le message entrant, o n est un entier compris entre 1 et N, un mot de transcodage comprenant un premier champ et un second champ, en ce que dans la table de transcodage associée au rang 1 du premier mot de message entrant, le premier champ est un indicateur pour identifier le second champ comme étant un message sortant transcodé ayant un unique mot binaire sortant, ou comme étant une -3- adresse dans une table de messages transcodés relative à un message sortant transcodé de M mots sortants, ou comme;tant une adresse de la table de transcodage associée au rang n égal A 2, et en ce que dans les tables de transcodage associées respectivement à des rangs n différents de 1, le premier champ est un indicateur pour identifier le second champ come étant une adresse dans ladite table de messages transcodés d'un message sortant transcode, ou comme étant une adresse de la table de transcodage associée au rang n+l, ou comme étant un code d'échec lorsque le message entrant n'est pas à transcoder. Un appareil de transcodage pour la mise en oeuvre du procédé selon la revendication 1, est caractérisé en ce qu'il comprend: des moyens d'interfaçage pour relier l'appareil à des systèmes numériques à travers des liaisons par lesquelles transitent les messages entrants et les messages sortants transcodés, des moyens de traitement comprenant les tables de transcodage associées et un algorithme programmé pour identifier les messages entrants et pour délivrer les messages sortants transcodés correspondants, des moyens de commutation pour connecter les moyens d'interfaçage aux moyens de traitement et transmettre, à travers les moyens de traitement, un mot sortant ou un message de mots sortants transcodés en correspondance à un mot entrant ou un message entrant, de l'un vers l'autre des moyens d'interfacage, et des moyens de gestion d'échange pour gérer les moyens d'interfaçage et les moyens de comutation en fonction d'un mot binaire de comande délivré par les moyens de traitement et pour réguler le débit des messages échaigés entre l'appareil et lesdits systèmes en fonction d'informations fournies par les moyens d'interfaçage. Le procédé selon l'invention présente les principaux avantages suivants: il n'est pas nécessaire que les chaînes de caractères à transcoder comprennent des "caractères délimiteurs" signalant le début et la fin de la chaîne. - le temps de traitement du transcodage est négligeable. En effet, du fait de l'utilisation de tables de transcodage contenant -4- des valeurs précalculées, les opérations de traitement sont simples et se résument à des décalages, des comparaisons, et des lectures et écritures dans les tables. Cette simplicité des opérations de traitement résultent également d'un traitement en mode caractère, c'est-à-dire chaque caractère introduit dans l'appareil de transcodage fait progresser le traitement d'un pas, contrairement au traitement en mode bloc de caractères; - l'utilisation de modes d'adressage relatif ou indexé contribue à optimiser l'espace mémoire nécessaire au traitement, ce qui rend dans la plupart des cas l'utilisation d'un microprocesseur à 8 bits possible; - il est possible d'identifier des caractères ou des chaines de caractères imbriqués dans des chaines de caractères de tailles supérieures; et - l'augmentation des performances, quant à la quantité des caractères, ou de chaînes de caractères, différents transcodables par un appareil de transcodage selon l'invention dépend uniquement de l'espace mémoire disponible dans ledit appareil de transcodage. Les deux derniers avantages cités permettent, en outre, d'envisager l'utilisation de l'invention à des fins cryptographiques. D'autres avantages et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description suivante de plusieurs réalisations de l'invention en référence aux dessins annexés correspondants dans lesquels: - la Fig.1 est un bloc- diagramme fonctionnel d'un appareil programmable de transcodage unidirectionnel selon l'invention; - la Fig.2 montre une organisation simplifiée de tables de transcodage incluses dans un appareil de transcodage pour la mise en oeuvre du procédé selon l'invention; - la Fig. 3 montre l'utilisation d'une table d'index pour réduire la taille des tables de transcodage utilisées pour l'identification de messages; et - la Fig.4 montre une variante préférée de l'organisation de tables de transcodage mémorisant les messages transcodés. Dans la description de la structure et du fonctionnement d'un appareil programmable de transcodage unidirectionnel AT suivant -5l'invention, on considère, à- titre d'exemple, un transcodage unidirectionnel à réaliser entre un premier système numérique de traitement de données S1 transmettant des messages et un second système numérique de traitement de données S2 en attente de ces messages. A partir d'un appareil de transcodage unidirectionnel, l'homme du métier peut réaliser un appareil de transcodage bidirectionnel, en doublant des tables de transcodage et en assurant un traitement en temps partagé pour les deux sens de transmission et le contr8le de flux global du système. Les premier et second systèmes Si et S2 utilisent respectivement des premier et second alphabets déterminés A1 et A2 l0 composés de caractères éditables pour la plupart et de commandes auxquels correspondent des mots binaires ayant un nombre de bits B déterminé, toutes les combinaisons binaires possibles de B bits pouvant être utilisées par les alphabets A1 et A2. Les commandes sont, par exemple, des commandes utilitaires telles, que "action du buzzer", "retour chariot", et "saut de ligne" notées respectivement "BEL", "CR", et "LF" dans la plupart des alphabets normalisés existants. Par la suite dans la description le terme de caractère est utilisé, comme il est d'usage, indifféremment pour un caractère éditable ou pour une Z0 commande. En référence à la Fig.l, le système SI transmet à l'appareil programmable de transcodage AT des messages entrants ME à travers une liaison de transmission de données unidirectionnelles 111. Un message entrant est constitué d'un unique mot entrant (CE) ou d'une suite de N mots binaires entrants [(CE1), (CE2),... (CEn),... (CE)], N étant un entier pouvant varier de 1 à un nombre entier maximum prédéterminé Nmax. A chacun des mots entrants d'une suite de mots correspond un rang n, n étant un entier compris entre 1 et N, représentatif de son ordre chronologique d'arrivée dans l'appareil de transcodage AT par rapport au premier mot reconnu (CE1) de la suite entrante. Aux mots entrants (CE) et (CE1), (CE2),... (CE n),... (CN) correspondent dans l'alphabet A1 du système SI des caractères CE et CE1, CE2,... CE,... CEN respectivement. - 6 - Chaque mot entrant est reçu dans l'appareil de transcodage AT par une interface d'entrée I via la liaison de transmission 111. Une liaison de dialogue Ilia est prévue entre le système Si1 et l'interface 1 afin que celle-ci puisse inviter le système Sl, en cas de nécessité, à suspendre la transmission. Cette liaison de dialogue Ilia peut être supprimée par l'utilisation de caractères de commande, lesquels peuvent être des caractères, "XON" et "XOFF", pour autoriser et suspendre la transmission respectivement. Les caractères de commande, "XON" et "XOFF", sont alors transmis au système Si1 via la liaison de transmission 111, laquelle peut être bidirectionnelle, même pour une transmission de données utiles unidirectionnelle. L'interface 1 comprend un adaptateur d'entrée 11 et une file d'attente 12. L'adaptateur d'entrée 11 sert à adapter la liaison de transmission de données 111, qui peut être de type série ou de type parallèle, à des bus internes de l'appareil de transcodage AT. Par exemple, dans le cas d'une liaison de transmission 111 de type série, l'adaptateur 111 peut être un circuit spécialisé pour ce type de transmission, tel qu'un UART (Universal Asynchronous Receiver Transmitter), ou plus simplement un registre série-parallèle; dans le cas d'une liaison de transmission 111 parallèle, des mémoires tampons d'entrée, dites "buffers", peuvent convenir. La file d'attente 12 reçoit les mots entrants délivrés par l'adaptateur 11 en format parallèle à travers un bus 112. La file d'attente 12 est un registre de stockage de type FIFO (First in, First out). Pour chaque mot entrant (CE) reçu, l'adaptateur 11 délivre à travers une liaison 32 un signal de détection de mot vers une unité de gestion d'échange 3. Le mot entrant (CE) est ensuite présenté en sortie sur le bus 112 relié à l'entrée de la file d'attente 12. L'unité de gestion 3 étant avisée de l'arrivée d'un mot à travers la liaison 32, un signal de commande de stockage est appliqué à la file d'attente 12, par une liaison 33, pour mémoriser dans la file 12 le mot entrant (CE) present dans le bus 112. Des moyens de traitement et de commande sont inclus dans l'appareil de transcodage AT sous la forme d'une unité centrale 4. -7- L'unité 4 contient une mémoire morte 42 du type PROM contenant des micro-instructions pour exécuter un algorithme de transcodage et pour commander l'unité de gestion d'échange 3. L'unité centrale 4 délivre des mots de commande à l'unité de gestion 3 par un bus de commande 41. L'unité centrale 4 est constamment informée de l'état de l'appareil de transcodage par un mot d'état délivré par l'unité de gestion 3 dans un bus d'état 36. L'unité centrale 4 étant prête à lire un mot entrant (CE) stocké dans la file d'attente 12, afin de procéder à un traitement de transcodage, elle transmet à destination de l'unité de gestion d'échange 3 un mot de commande par le bus de commande 41. L'unité de gestion 3 décode ce mot de commande, génère un signal par la liaison 33 pour signifier à la file d'attente 12 de présenter sur un bus de sortie 122 connecté à une entrée 51 d'un dispositif d'aiguillage 5, le premier mot entrant (CE) par ordre chronologique d'arrivée. Le mot (CE) étant présent dans le bus 122, l'unité de gestion fournit alors, au dispositif d'aiguillage 5, un signal par une liaison 35, pour commander la connexion de l'entrée 51 sur une entrée/sortie 52 du dispositif d'aiguillage 5. L'entrée/sortie 52 est reliée à l'unité centrale 4 par un bus de données 521. L'unité centrale 4 lit le mot entrant (CE) présenté sur le bus 521. Le mot entrant (CE) est identifié dans l'unité centrale 4 à l'aide de tables de transcodage contenues dans une mémoire vive 43 du type RAM. Le mot entrant (CE) peut être identifié commrne n'ayant pas de message sortant transcodé correspondant, auquel cas, il n'est pas pris en compte. L'unité centrale 4 commande alors la lecture du mot entrant suivant dans la file d'attente 12 de la manière qui vient d'être décrite, en transmettant un mot de commande à l'unité de gestion 3 par le bus 41. Le mot entrant (CE) peut être identifié comme étant le premier mot (CE1) d'une suite de N mots entrants connue par l'unité centrale 4. L'unité centrale 4 procède alors, à la lecture et à l'identification des mots suivants de la suite entrante. Au mot entrant (CE) ou à la suite de N mots entrants [(CE1), (CE2),... (CE),... (CE-)] constituant un message entrant ME peut correspondre un message sortant transcodé MS composé d'un mot -8- sortant (CS) ou d'une suite de M mots sortants transcodés [(CS1), (CS2),... (CSm),...(CSM)2 o m est un entier compris entre 1 et M, et M est un entier, en général différent de l'entier N, pouvant varier de O à un nombre maximum prédéterminé Mmax. Dans le cas o, au message entrant ME constitué du mot entrant (CE) ou de la suite de N mots entrants correspond un message sortant transcodé MS du message entrant ME, l'unité centrale 4 fournit à l'unité de gestion 3 un autre mot de commande par le bus 41 afin de commander l'aiguillage de chacun des mots sortants du message MS vers une interface de sortie 2 transmettant des mots sortants transcodés (CS), par une liaison de transmission 211, vers le second système S2. A la réception du mot de commande, l'unité de gestion 3 provoque la connexion de l'entrée/sortie 52 du dispositif d'aiguillage 5 avec une sortie 53 du même dispositif 5, par activation de la liaison de commande 35. La sortie 53 est reliée par un bus 222 à l'entrée d'une file d'attente 22, analogue à la file d'attente 12, incluse dans l'interface de sortie 2. Chacun des mots sortants transféré est stocké, en réponse à un signal de commande délivré par l'unité de gestion 3 via une liaison de commande 38, dans la file d'attente 22, avec des mots sortants transcodés à transmettre vers le système S2. L'interface de sortie 2 comprend, outre la file d'attente 22, un adaptateur de sortie 21 connecté en sortie au second système S2 par la liaison de transmission 211 et une liaison de dialogue 211a. La liaison 211a peut, de même, que la liaison de dialogue 111a, être supprimée par l'utilisation des caractères de commande déjà cités "XON" et "XOFF". L'adaptateur 21 a pour fonction, de même que l'adaptateur d'entrée 11, d'adapter les bus internes de l'appareil de transcodage à la liaison de transmission unidirectionnelle 211, qui peut être, de même que la liaison 111, de type série ou parallèle. Un bus de liaison 221 fournit des mots sortants transcodés issus de la file d'attente 22 en entrée de l'adaptateur 21. Lorsque l'adaptateur 21 est prêt à transmettre un mot sortant (CS) stocké dans la file d'attente 22, il le signale à l'unité de gestion d'échange 3 par une liaison 39. L'unité de gestion 3 ordonne alors, par la liaison 38, à la file d'attente 22 de présenter en sortie 9 - sur le bus 221 un mot sortant (CS). Le mot sortant (CS) est lu par l'adaptateur 21 qui le transmet via la liaison 211 au système S2. L'unité de gestion d'6change 3 effectue la gestion et le contrôle des signaux échangés entre les différents circuits de l'appareil de transcodage ainsi qu'entre l'appareil de transcodage et les systèmes S1 et S2. L'unit6 de gestion 3 reçoit de l'unité centrale 4 un mot de coande relatif aux &changes de données à l'int6rieur de l'appareil de transcodage à partir duquel sont créés différents signaux de commande envoyas aux interfaces 1 et 2 par les liaisons 31, 33, 38, et 40, ainsi qu'au dispositif d'aiguillage par la liaison 35. Un mot d'6tat est fourni par l'unité de gestion d'échange 3 à l'unit6 centrale 4, à travers le bus 36 pour l'informer de tout changement intervenant dans la communication avec le système Si ou S2. Dans l'unité de gestion 3 sont pr6vus d'une manière connue, deux compteurs d'écriture et de lecture et un comparateur associ6s à chacune des deux files d'attente afin de d6terminer le niveau de remplissage respectif de chacune des files et de comparer lesdits niveaux à des seuils de remplissage haut et bas définis de manière à réguler les d6bits, d'une part entre le système S1 et l'appareil de transcodage AT et d'autre part entre l'appareil de transcodage AT et le système S2, qui, en général, sont diff6rents. Les seuils haut et bas permettent, pour chacune des files d'attente, de g6rer un contrôle de flux en fonction d'un cycle d'hystérésis destin6 à éviter une dégradation des performances de l'appareil lors d'oscillation autour d'un seuil unique de remplissage. Ainsi, lorsqu' une file d'attente, 12 ou 22, atteint un niveau de remplissage au moins égal au seuil haut, une détection est faite par le comparateur associé et l'unité de gestion d'échange 3 suspend le remplissage de la file concernée par arrêt de la transmission et de l'écriture de mots dans la file. L'unit6 de gestion d'échange 3 autorise à nouveau l'écriture de mots dans la file d'attente, lorsque le niveau de remplissage de la file d'attente devient inf6rieur ou égal au seuil bas. La gestion des cycles d'hystérésis par l'unité de gestion d'échange 3 est réalis6e à l'aide de deux indicateurs de gestion de remplissage, un pour chacune des files d'attente, inclus dans l'unité de gestion - 10 - d'échange. Un indicateur de gestion de remplissage d'une file d'attente peut prendre deux états, un état "suspension de remplissage" et un état "fonctionnement normal". Un indicateur vient à l'état "suspension de remplissage" lorsque l'unité de gestion d'échange 3 détecte un niveau de remplissage égal ou supérieur au seuil haut pour la file d'attente correspondante. Un indicateur vient à l'état "fonctionnement normal" lorsque l'unité de gestion d'échange 3 détecte un niveau de remplissage égal ou inférieur au seuil bas de la file d'attente correspondante. Un dépassement du seuil haut dans la file d'attente 22 provoque la transmission d'un mot d'état à destination de l'unité centrale 4, via le bus d'état 36. L'unité 4 suspend alors des écritures de mots sortants dans la file d'attente 22 et toute demande de lecture, via le bus 41, de mot contenu dans la file d'attente 12. Un dépassement de seuil haut dans la file d'attente 12 entraîne une activation de la liaison Mlla vers le système SI de manière à arrêter la transmission de mots entrants. A cet effet, l'unité de gestion 3 est reliée à l'adaptateur 11, par la liaison de commande 31. Un niveau de remplissage de la file d'attente 22 inférieur ou égal au seuil bas provoque, si l'indicateur de gestion de remplissage associé à la file d'attente 22 était positionné à l'état "suspension de remplissage", la transmission d'un mot d'état à destination de l'unité centrale 4, via le bus d'état 36. L'unité 4 reprend alors l'écriture de mots sortants dans la file d'attente 22 et les demandes de lecture de la file d'attente 12. Un niveau de remplissage de la file d'attente 12 inférieur ou égal au seuil bas provoque, si l'indicateur de gestion de remplissage associé à la file d'attente 12 était positionné à l'état "suspension du remplissage", la transmission d'une commande sur la liaison 31 destinée à désactiver la liaison Illa. La liaison 211a entre le système S2 et l'adaptateur 21 est prévue afin que le système S2 demande de suspendre, c'est-à-dire d'arrêter ou de différer, une transmission de mots sortants, par exemple, à la suite d' une défaillance ou d 'un remplissage de mémoires tampons dans le système S2. La demande de suspension est transmise par l'adaptateur 21 à l'unité de gestion 3, qui la valide - il - en délivrant à l'adaptateur 21, via la liaison 40, une commande d'arrêt de transmission vers le système S2. L'appareil de transcodage continue à opérer avec le système Si jusqu'à un éventuel arrêt causé par un dépassement de seuil haut dans la file d'attente 12. Lorsque la demande de suspension disparaît sur la liaison 211a, l'adapteur 21 en informe l'unité de gestion 3, qui prend en compte ce nouvel état et délivre à l'adaptateur 21, via la liaison , une autorisation de transmission vers le système S2. Le fonctionnement des moyens relatifs au contrôle des flux décrit dans les paragraphes précédents correspond à une transmission unidirectionnelle sans mode écho. Dans le cas d'une transmission plus complexe les mécanismes nécessaires au contr8le des flux sont plus développés, toutefois la gestion d'hystérésis ainsi que les différents moyens décrits sont conserves. Les tables de transcodage sont téléchargées en mémoire vive 43 dans l'unité centrale 4 lors d'une phase préalable d'initialisation, antérieurement à la mise en opération de l'appareil de transcodage. A cet effet, une liaison 61 est prévue entre l'unité centrale 4 et un microordinateur 6 ayant servi à l'élaboration des tables à partir d'une analyse des alphabets de caractères A1 et A2, des différentes possibilités de communication entre le système S1 et le système S2, ainsi que des éventuels conflits pouvant survenir entre les deux systèmes. Le micro-ordinateur peut, en outre, servir à la visualisation de données transmises par l'unité centrale 4 pendant les opérations de transcodage, susceptibles d'intéresser un opérateur. Dans les paragraphes suivants, en relation avec la Fig.2, est décrite une organisation simplifiée des tables de transcodage. De manière générale, l'unité centrale procède pour adresser les différentes tables de transcodage, suivant des modes d'adressage dits mode d'adressage relatif et mode d'adressage indexé. Le mode d'adressage relatif consiste à fournir à un processeur, un mot d'adresse représentant un décalage à réaliser généralement par rapport à la valeur d'un compteur programme afin d'obtenir une adresse effective dans une zone mémoire. Dans le mode d'adressage indexé, le mot d'adresse est fourni au processeur avec - 12 - l'adresse d'un registre dit index contenant une valeur à ajouter au mot d'adresse pour obtenir une adresse effective. L'index est situé en mémoire vive et est modifiable en cours de programme, ce qui autorise une grande souplesse d'adressage. Lesa. modes d'adressage relatif et indexé sont d'un usage fréquent pour l'adressage de tables, car ils permettent simplement de convertir une donnée en une adresse dans une table pouvant être implantée indifféremment dans une zone mémoire. Les tables de transcodage comprennent des tables d'entrée TE1 à TENMx, une table de messages TM, une table index ITE pour l'adressage des tables d'entrée, et une table index ITM pour l'adressage de la table de messages. Les tables d'entrée TE1 à TENma supportent une arborescence logique d'identification des messages entrants. Cette arborescence comprend différentes possibilités de cheminement aboutissant à l'identification de mots entrants isolés ou de suite de mots entrants connus par l'appareil de transcodage. Chacune des tables d'entrée TE1, TE2,... TEn,... TEN,... TEmx est localisée en mémoire vive par une adresse de début (TE1 (T 2 '... n (TEN),(T),... (TENmax) respectivement. Seule la table d'entrée TE, parmi là totalité des tables d'entrée est utilisée pour le transcodage d'un mot entrant isolé (CE) ou (CE'). Le transcodage de suite de N mots entrants fait appel aux tables d'entrée TE1 à TEN. Les mots entrants (CE,), (CE2),... (CE),... (CEN) adressent dans les tables d'entrée TE1, TE2,... TEn... TEN, par rapport aux adresses de début (TE1), (TE2),... (TE),... (TEN), les mots de transcodage Mt1, Mt2,... Mtna... MtN respectivement. Les tables d'entrée TE2 à TENmx ne sont ainsi utilisées que pour le transcodage des messages entrants auxquels peuvent correspondre plus d'un mot sortant, leur fonction étant différente de celle de la table d'entrée TE1 elles peuvent également être appelées "tables de renvoi". Chacune des tables d'entrée comprend autant de mots de transcodage que de mots entrants différents pouvant être délivrés par le système SI, soit 2B1 mots de transcodage, en supposant que chaque mot entrant comprend B bits, typiquement 8 bits répartis en deux demi-octets en base numérique hexadécimale. A un mot entrant - 13 - ayant la valeur notée "00H" en base numérique hexadécimale correspond un caractère, noté "NUL" dans la plupart des alphabets normalisés. Le caractère NUL, bien que pouvant être traité comme tout autre caractère, est utilisé dans les tables d'entrée, ou tables de renvoi, TE2 à TE Nmax pour prendre en compte des messages entrants de longueur supérieure. Chacun des mots de transcodage comprend B+1 bits et est divisé en des premier et second champs chl et ch2. Le premier champ chl est un indicateur d'identification; il est composé du bit de poids fort, dit le bit le plus significatif MSB. Le second champ ch2 est composé des B bitsrestants. Le champ ch2 est généralement une adresse utilisée par l'unité centrale pour poursuivre le traitement de transcodage; il peut également, dans la table d'entrée TE1, être un mot sortant transcodé (CS). La table de messages TM est localisée en mémoire vive par une adresse de début de table (TM). Dans la table TM sont mémorisés des messages sortants transcodés constitués de mots sortants ayant chacun B bits. Un message sortant transcodé MS est précédé dans la table TM par le nombre M de mots sortants contenus dans ce message. Le nombre M et les mots sortants (CS1), (CS2),... (CSm),... (CSN) d'un message MS sont respectivement mémorisés à des adresses AM et AM + 1, AM + 2,... AM + m,... AM + M par rapport à l'adresse (TM). Pour une lecture d'un message sortant MS, seule l'adresse AM est fournie à l'unité centrale; celle-ci lit le nombre M afin de déduire l'adresse AN + M de fin de message. Les mots sortants sont ensuite lus successivement à partir de l'adresse AN + 1 de début de message jusqu'à l'adresse AN + M de fin de message. Si le nombre M est égal à O, le message sortant est de longueur nulle. La table index ITE est une table intermédiaire utilisée par l'unité centrale pour adresser un mot de transcodage dans une table d'entrée; elle contient les adresses de début (TE1) à (TEN8x) des tables d'entrée TE1 à TE ax. La table ITE se trouve en mémoire à une adresse de début (ITE). Chacune des adresses de début (TE1) à (TE8x) est localisée dans la table index ITE par une adresse, A1 à Amax respectivement. - 14 - La table index ITM est une table intermédiaire utilisée par l'unité centrale pour adresser des messages sortants transcodés MS' dans la table de message (TM) à partir de mots de transcodage Mt' de la table d'entrée TE. La table ITM est localisée en mémoire vive par l'adresse de début (ITM). La Fig.2 montre l'utilisation des tables par l'unité centrale pour trois cas typiques de traitement de transcodage. Selon un premier cas typique CAS1, à un message entrant constitué d'un unique mot entrant (CE) correspond un message transcodé composé d'un unique mot sortant transcodé (CS). Le mot entrant (CE) adresse dans la table TE1, par rapport à l'adresse de début (TE1), un mot de transcodage Mt. Le champ chl du mot Mt à l'état binaire "0" indique à l'unité centrale que le second champ ch2 du mot Mt adressé est le mot sortant transcodé (CS). Selon un second cas typique CAS2, à un message entrant constitué d'un unique mot entrant (CE') correspond un message sortant transcodé MS' comprenant M' mots sortants, M' étant un entier compris entre O et Nmax. Les champs chl et ch2 d'un mot de transcodage Mt' sélectionné par le mot (CE') sont alors Z0 respectivement à l'état binaire "1", contrairement au cas précédent CAS1, et égal au mot entrant (CE'). L'unité centrale utilise le mot (CE') pour adresser dans la table index ITM un mot d'adresse AM'. Le mot AM' lu par l'unité centrale est, dans la table de message TM, l'adresse du message MS' correspondant au mot (CE'). Selon un troisième cas typique CAS3, à un message entrant constitué d'une suite de N mots entrants [(CE1), (CE2),... (CEn),... (CEN)] correspond un message sortant transcodé MS comprenant une suite de M mots sortants [(CS1), (CS2),... (CSm),... (CSM)]. Le premier mot entrant (CE1) sélectionne dans la table d'entrée (TE1) un mot de transcodage Ht1 ayant un premier champ chl à l'état binaire "1". Le second champ ch2 du mot Mt1 est différent du mot entrant (CE1), contrairement au cas précédent CAS 2, ce qui permet à l'unité centrale de reconnattre le mot (CE1) comme étant le premier mot d'une suite de mots connue. Le champ ch2 du mot Mt1 est égal à l'adresse A2 situant l'adresse de début (TE2) dans la table d'index ITE. Un second mot entrant (CE2) sélectionne alors - 15 - dans la table TE2, par rapport à l'adresse de début (TE2) lue dans la table index ITE, un second mot de transcodage Mt2 ayant un premier champ chl à l'état binaire "1". Le champ chl du mot Mt2 à l'état binaire "1" confirme le cheminement d'identification suivi et indique à l'unité centrale qu'un troisième mot entrant (CE3) est attendu. Le champ ch2 du mot Mt2 est l'adresse A3 situant dans la table ITE, l'adresse de début (TE3) de la table d'entrée TE3. Le mot entrant (CE3) est utilisé de manière analogue au mot (CE2) pour sélectionner dans la table d'entrée TE3 un mot de transcodage Mt3 dont le champ chl à l'état binaire "1" indique à l'unité centrale de poursuivre un même processus, jusqu'au mot entrant (CEN). Le mot entrant (CEN) sélectionne dans la table (TEN) un mot de transcodage MtN dont le champ chl à l'état binaire "0" permet à l'unité centrale de reconnaître le mot (CEN) comme étant le dernier mot de a18 suite connue. Le champ ch2 égal alors à une adresse AM de la table de messages TM est lu par l'unité centrale afin d'adresser dans la table TM le message sortant transcodé MS correspondant. Le nombre M de mots du message MS mémorisé à l'adresse AM est compris entre 0 et Mmax. Pour un message MS correspondant, ayant un seul mot, le nombre M est égal à 1. Un mot unique sortant (CS1) est ainsi lu, à l'adresse AM+1. Un mot entrant suivant le mot (CEN) adresse à nouveau la table d'entrée TE1. Le cas CAS3 qui vient d'être décrit, concerne un cheminement dans les tables d'entrée TE1 à TE... aboutissant directement à l'identification d'une suite de mots entrants comle étant un message entrant à transcoder connu par l'unité centrale. Toutefois ime après un mot entrant (CE) identifié come le n mot entrant n d'une suite de mots connue, peut se présenter un mot entrant (CEn+1) qui n'est pas le (n+l)ième mot attendu de la suite de mots entrants connue. Le mot entrant (CEn+l) adresse alors dans la table d'entrée TEn+l un mot de transcodage Mtn+j ayant une valeur déterminée, par exemple "00". La valeur "00H" ainsi déterminée est pour l'unité centrale un code d'échec lui indiquant, compte tenu du dernier mot entrant (CE n+l), soit un échec dans le transcodage soit l'existence d'une chaîne connue plus longue. L'unité centrale initialise alors les - 16 - mots de transcodage Mt1 à Mtn+1 avec de nouvelles valeurs contenues dans une table associée aux tables d'entrée. Un nouvel essai de transcodage est entrepris à partir des mots entrants (CE1) à (CEn+i) préalablement sauvegardés dans une table de mots entrants. La table associée aux tables d'entrée contient les différents mots de transcodage possibles à une même adresse dans une table d'entrée ces différents mots correspondent à différentes possibilités de cheminements. Différentes possibilités de cheminement peuvent être essayées par l'unité centrale avant d'aboutir au transcodage des mots (CEI) à (CE), o p est un entier supérieur ou égal à 1, par un ou des messages sortants transcodés. D'autres organisations des tables de transcodage sont possibles de manière à adapter un transcodage à réaliser à des possibilités d'adressage de l'unité centrale forcément limitées et pour autoriser une grande souplesse dans le choix des valeurs affectées à des mots d'adresse, par rapport aux différentes valeurs possibles des mots entrants. La taille des tables d'entrée TE à TEN décrites 2 ENmaxdcie précédemment peut être sensiblement réduite par l'utilisation de tables d'index. En effet, un mot entrant (CEp) adressant une table d'entrée TE, o p est un entier compris entre 2 et Nmax, et identifié avec ième succès, c'est-àdire identifié comme étant bien le p mot entrant de la suite de mot attendue, est généralement compris entre un mot entrant minimum (CE)mini et un mot entrant maximum (CEp)axi conduisant à des succès dans l'identification par la table TE. Un table d'index ITE associée à la table TE contenant P p p les mots (CE)mini et (CE)maxi et utilisée pour l'adressage de la table TE permet de limiter la taille de la table d'entrée TE au P P nombre de mots compris entre (CEp)mini et (CEp)maxi. Comme montré à la Fig.2, la position de la table d'index ITE P associée à la table TE est de préférence contiguë à la table TE P P et précède celle-ci dans la zone mémoire RAM de l'appareil. Les mots (CE p)mini et (CEp)maxi sont ainsi adressés en effectuant respectivement un décalage de -2 et -1 par rapport à l'adresse de début (TE) de la table TE. p p - 17 - Un mot entrant (CEp) lu par l'unité centrale est d'abord comparé aux mots (CEp)ni et (CE)maxi. Si le mot entrant (CEp) p mini p maxi' p n'est pas compris dans la fourchette définie par les mots (CE)ii p mini et (CE) maxi' l'unité centrale en déduit directement un échec de l'essai de transcodage en cours. Si le mot entrant (CE) est bien compris entre les mots (CE p)mini et (CE)maxi' le mot de transcodage Mt correspondant est adressé dans la table d'entrée P TEp à partir de l'adresse de début (TE) par le mot (CE)-(CEp) mini représentant la différence numérique entre les mots (CE) et (CEp)mini. La table de message TM peut être remplacée par Nmax tables de messages TM1 à TMNma respectivement associées aux tables d'entrée 1 umax TE1 a Tmax. En référence à la Fig.4, une table d'entrée TEq, o q est un entier compris entre 1 et Nmax, adresse dans la table de message TM qui lui est associée, un message sortant MS" à l'aide de tables q d'index respectives, Ilq et IM2 q q Une table d'index IMI est localisée par son adresse de début (IM1i) et est composée de 3 mots de B bits, (MTq)mini, (MTq)maxi, q et L * Le mot (MT)mini est placé en début de table à l'adresse (IMIq) et est égal à un mot de transcodage minimum de la table q d'entrée TE ayant un indicateur chl = "0" et auquel correspond un q message sortant dans la table de messages TMq. Le mot (MT q)maxi est placé à l'adresse suivante (IMI)+l et est égal à un mot de Z5 transcodage maximum de la table d'entrée TE ayant un indicateur q chl = "0' et auquel correspond un message sortant dans la table de messages TMq. Le mot L représente la taille de la table d'index q q IM2; il est essentiellement utilisé pendant la phase de q génération et d'initialisation des tables pour des vérifications ou des modifications de tables. Une table d'index IM2 comprend L mots de B bits. Chacun des q q mots de la table d'index IM2 est une adresse d'un message sortant q dans la table de messages correspondante TMq, par rapport à une adresse de début (TM) de la table de messages. Une table de messages TM est localisée par l'adresse de début (TM). Un mqssage sortant S de la table de message est adress (TM). Un message sortant MS" de la table de message est adressé q - 18 - dans la table de messages TM par un mot d'adresse AW' mémorisé q dans la table index IM2. q Un mot de transcodage MT de la table d'entrée TE auquel q -q correspond un message sortant MS" est compris entre les mots (Mtq)mini et (Mtq)maxi. L'unité centrale après avoir vérifié que le mot Mt est bien compris entre les mots (Mtq)ini et (Mtq)maxi, lit le mot d'adresse AW' dans la table d'index IM2 en l'adressant à q partir de l'adresse de début (IM2) par la différence numérique des mots Mt et (Mt q)mini soit Mt q-(Mtq)mini De préférence les tables IM1 q, IM2, et TM, sont contiguës dans la zone mémoire RAM de l'appareil, comme montré à la Fig.4. En effet, l'unité centrale peut alors déduire les adresses de débuts de tables (IM2) et (TMq) à partir de l'adresse (IMlq), de la qqq taille invariable de la table IMI fixée à 3 mots, et du mot L q q représentant la taille de la table IM2, et réduit de ce fait le q nombre d'opération de lecture nécessaire pour l'adressage des messages sortants. L'appareil de transcodage selon l'invention peut subir diverses modifications pour l'adapter à différents modes de Z0 fonctionnement ou pour minimiser son coût. L'unité de gestion d'échange, dans la réalisation qui vient d'être décrite, peut être réalisée en logique câblée à l'aide de décodeurs, bascules et portes logiques, ou incluse dans l'unité centrale assurant la gestion d'échange à partir d'un microprogramme contenu en mémoire morte. Dans une réalisation plus perfectionnée, notamment pour un appareil de transcodage bidirectionnel, l'unité de gestion peut être réalisée à l'aide d'un microcontr8leur à microprocesseur, esclave de l'unité centrale et gérant les communications de manière autonome. Pour certaines réalisations ne nécessitant qu'une zone de mémoire réduite pour le traitement de transcodage, l'unité centrale peut contenir, en mémoire morte, un logiciel de génération des tables de transcodage. Le micro-ordinateur 6 peut alors être remplacé par un simple terminal de dialogue, ou un clavier hexadécimal muni d'afficheurs, pour introduire dans l'appareil de transcodage différents paramètres et données à saisir relatifs aux systèmes S1 et S2 et au mode de fonctionnement désiré. - 19 - De plus, si aucun moyen pour visualiser et surveiller des opérations de transcodage en cours n'est nécessaire, le terminal ou le micro-ordinateur 6 peut n'être connecté à l'appareil de transcodage que pendant la phase d'initialisation préalable, la connexion du terminal à l'appareil pouvant alors être effectuée par l'intermédiaire de l'interface 1 ou 2. - 20 - REVENDICATIONS 1 - Procédé pour transcoder un message entrant de N mots binaires entrants ordonnés [(CE1, (CE2),... (CE n),...(CE), N étant un entier supérieur ou égal à 1, en un message sortant transcodé de M mots sortants, M étant un entier quelconque, caractérisé en ce que chaque mot binaire entrant est utilisé pour adresser dans une table de transcodage, associée à un rang n du mot binaire entrant dans le message entrant, o n est un entier compris entre 1 et N, un mot de transcodage comprenant un premier champ et un second champ,en ce que dans la table de transcodage associée au rang 1 du premier mot du message entrant, le premier champ est un indicateur pour identifier le second champ comme étant un message sortant transcodé ayant un unique mot binaire sortant, ou comme étant une adresse dans une table de messages transcodés relative à un message sortant transcodg de M mots sortants, ou comme étant une adresse de la table de transcodage associée au rang n égal à 2, et en ce que dans les tables de transcodage associées respectivement 2 des rangs n différents de 1, le premier champ est un indicateur pour identifier le second champ comme étant une adresse dans ladite table de messages transcodés d'un message sortant transcoda, ou comme étant une adresse de la table de transcodage associée au rang n+1, ou comme étant un code d'échec lorsque le message entrant n'est pas à transcoder. 2 - Procédé de transcodage conforme à la revendication 1, caractérisé en ce que ladite table de messages transcodés est Z5 divisée en autant de tables de messages que de tables de transcodage associées, les tables de messages étant respectivement associées aux tables de transcodage. 3 - Procèdé de transcodage conforme à la revendication 1 ou 2, pour des mots binaires entrants comprenant un nombre entier déterminé de bits B, caractérisé en ce que lesdites tables de transcodage associées comprennent au plus 2B-1 mots binaires de transcodage ayant chacun au moins B+1 bits. 4 - Appareil de transcodage pour la mise en oeuvre du procédé conforme à l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comprend: - 21 - des moyens d'interfaçage (1, 2) pour relier l'appareil à des systèmes numériques (S1, S2) à travers des liaisons (111, 211) par lesquelles transitent les messages entrants et les messages sortants transcodis, des moyens de traitement (4) comprenant les tables de transcodage associées (TE, TM, ITE, ITM) et un algorithme programmé pour identifier les messages entrants et pour délivrer les messages sortants transcodés correspondants, des moyens de commutation (5) pour connecter les moyens d'interfaçage (1, 2) aux moyens de traitement (4) et transmettre, à travers les moyens de traitement, un mot sortant ou un message de mots sortants transcodés en correspondance à un mot entrant ou un message entrant, de l'un (1) vers l'autre des moyens d'interfaçage (2), et des moyens de gestion d'échange (3) pour gérer les moyens d'interfaçage (1, 2) et les moyens de commutation (5) en fonction d'un mot binaire de cosmmande délivré par les moyens de traitement (4) et pour réguler le débit des messages échangés entre l'appareil et lesdits systèmes (SI, S2) en fonction d'informations fournies par les moyens d'interfaçage (1, 2). - Appareil de transcodage conforme à la revendication 4, caractérisé en ce que les moyens d'interfaçage (1, 2) comprennent des moyens (11, 21) pour adapter l'appareil auxdites liaisons (111, 211), de type parallèle et/ou de type série, et des moyens (12, 22) pour stocker en file d'attente les messages entrants et les messages sortants transcodés. 6 - Appareil de transcodage conforme à la revendication 5, caractérisé en ce que les moyens de gestion d'échange (3) définissent des seuils de remplissage hauts et bas des moyens pour stocker (12, 22) et gèrent le remplissage des moyens pour stocker (12, 22) en fonction d'un cycle d'hystérésis défini à partir desdits seuils. 7 - Appareil de transcodage conforme à l'une quelconque des revendications 4 à 6, caractérisé en ce que les moyens de traitement (4) comprennent une mémoire vive (43) pour tables de transcodage et une mémoire morte d'algorithme (42). - 22 - 8 - Appareil programmable de transcodage conforme à la revendication 7, caractérisé en ce que des moyens (6) sont prévus pour initialiser les moyens de traitement (4) lors d'une phase préalable au transcodage, par le chargement dans ladite mémoire vive (43) desdites tables de transcodage associées (TE) et d'autres tables dont la ou les tables de messages transcodés (TM). 9 - Appareil programmable de transcodage conforme à la revendication 8, caractérisé en ce que lesdits moyens pour initialiser (6) visualisent des données en cours de transcodage. 10 - Appareil programmable de transcodage conforme à l'une quelconque des revendications 8 à 9, caractérisé en ce que les moyens pour initialiser (6) sont un micro-ordinateur, un terminal, ou un clavier hexadécimal comprenant des afficheurs.