Brevet FR2607648A1 — publié le 19880603

i PROCEDE ET DISPOSITIF DE TRANSMISSION RAPIDE DE DONNEES ENTRE UN EMETTEUR ET UN RECEPTEUR PAR LIAISON SERIE STANDARD La présente invention concerne le domaine de l'informa- tique et plus particulièrement les liaisons entre un ordinateur et un périphérique. On s'intéressera ci-après à titre d'exemple à une con- nexion entre un ordinateur personnel et un périphérique tel qu'une imprimante mais il sera clair que la présente invention s'applique à la liaison entre d'autres dispositifs, le premier ayant une vitesse de fonctionnement plus rapide que le second. Dans le cas de la liaison entre un ordinateur personnel et une imprimante, on est amené à choisir une liaison de type série, bi ou trifilaire, pour permettre de prévoir des distances supérieures à une dizaine de mètres entre ces deux éléments. Ce type de liaison est maintenant devenu un standard prévu dans la plupart des logiciels d'ordinateurs personnels. L'inconvénient d'une liaison série est que la vitesse de transmission est nécessairement limitée, par exemple à une vitesse de 9 600 bauds c'est-àdire 9 600 bits par seconde. Ainsi, un caractère qui est généralement exprimé par un code à 10 bits (un bit de départ, 8 bits significatifs et 1 bit d'arrêt) est transmis en 10/9 600 secondes soit environ 1 milliseconde. Ce rythme est généralement satisfaisant pour une imprimante mais, pendant toute la durée de transmission, le logiciel de l'émetteur (l'ordinateur personnel) s'occupe de cette liaison du fait qu'il attend l'accusé de réception lui indiquant qu'il peut envoyer le mot suivant. Il en résulte une occupation longue du logiciel pendant laquelle celui-ci ne peut se consacrer à d'autres tâches. A titre d'exemple, dans le cas cidessus et pour une page d'un million de points, la durée de transmission serait de l'ordre de 100 s. Un moyen classique pour augmenter des vitesses de transmission consiste à utiliser des interfaces parallèles. Un inconvénient fondamental de telles interfaces réside dans le fait que la liaison entre les deux éléments à connecter se fait par un câble à grand nombre de fils d'o il résulte inévitablement que les distances de transmission sont fortement limitées. En outre, les logiciels correspondant sont des logiciels spécifiques et ne permettent pas d'adapter un périphérique donné à un grand nombre de logiciels d'ordinateurs classiques. La présente invention vise à réduire le temps d'occupa- tion du logiciel de l'ordinateur émetteur sans que cela entraîne de modification de ce logiciel et tout en permettant l'utilisation d'une liaison série. Pour atteindre cet objet ainsi que d'autres, la présente invention prévoit un procédé de transmission de données entre un émetteur muni d'un logiciel standard adapté à une interface série et un récepteur standard muni d'une interface série, comprenant les étapes suivantes: simuler une interface série pour le logi- ciel de l'émetteur, mémoriser dans une RAM associée à un micropro- cesseur les données émises par l'émetteur, renvoyer au logiciel des signaux d'accusé de réception standards simulés, et trans- mettre vers le récepteur les signaux stockés dans la RAM au rythme de la liaison série. L'invention prévoit en outre de mettre en oeuvre ce procédé au moyen d'un dispositif de transmission de données entre un émetteur muni d'un logiciel standard adapté à une interface série et un récepteur standard muni d'une interface série, compre- nant un ensemble de remplacement de l'interface série de l'émet- teur comprenant les mêmes entrées-sorties et comportant un simulateur d'interface série se comportant comme une interface série pour le logiciel de l'émetteur, une RAM associée à un micro- processeur pour recevoir à grande vitesse les données émises par l'émetteur et lui renvoyer par l'intermédiaire du simulateur les signaux d'accusé réception standards, et une interface série pour transmettre vers le récepteur les signaux stockés dans la RAM au rythme de la liaison série. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante de modes de réalisation particuliers faite en relation avec les figures jointes parmi lesquelles: La figure 1 représente sous forme de blocs une liaison série classique entre un ordinateur et un périphérique; La figure 2 représente sous forme de blocs une liaison parallèle classique entre un ordinateur et un périphérique; La figure 3 représente sous forme de blocs une liaison selon la présente invention entre un ordinateur central et un périphérique; La figure 4 représente sous forme de blocs la conception générale d'un dispositif selon la présente invention, La figure 5 représente à titre d'exemple et sous forme de blocs quelques éléments d'une interface série classique; La figure 6 représente schématiquement et sous forme de blocs les modifications apportées aux éléments de la figure 5 dans un simulateur d'interface série selon l'invention; Les figures 7, 8 et 9 représentent de façon plus détaillée des exemples de cases de registre utilisées dans un simulateur d'interface série selon l'invention. Comme le représente la figure 1, la plupart des ordina- teurs classiques 1 comprennent une carte d'interface série 2 commandée par le logiciel 3 de l'ordinateur pour des connexions à des périphériques du type imprimante. Ces logiciels associés à des interfaces série sont maintenant réalisés selon des standards classiques pour être interchangeables d'un appareil à un autre. La liaison série se fait par l'intermédiaire d'une ligne bifilaire ou trifilaire 4 à des rythmes normalisés dont les plus rapides actuellement sont de l'ordre 9 600 bauds. L'appareil récepteur, par exemple une imprimante 5, comprend une interface série de réception 6 symétrique de l'interface série d'émission 2, un logi- ciel standard d'interface 7 et une partie mécanique 8 commandée par ce logiciel. L'intérêt d'une telle structure est qu'elle per- met à des fabricants de périphériques d'utiliser des interfaces et des logiciels standards et coupler leur périphérique à tout ordi- nateur standard. Néanmoins, comme cela a été précisé antérieure- ment, l'inconvénient d'un tel dispositif réside essentiellement dans la lenteur de la transmission et le temps d'occupation résultant de l'ordinateur. Pour accélérer les choses, et aller jusqu'à ce que la vitesse limite de fonctionnement du logiciel 17, on est amené, comme le représente la figure 2, à utiliser des liaisons par interface parallèle. Ainsi, dans l'ordinateur émetteur 11, on prévoit une interface parallèle 12 qui est commandée par un logi- ciel spécifique 13. Cette interface transmet par une pluralité de fils 14 des signaux vers une interface parallèle de réception au niveau du dispositif périphérique 15 par l'intermédiaire d'une interface parallèle 16, reliée à un logiciel spécifique 17 comman- dant une partie mécanique 18. Les inconvénients d'un tel disposi- tif sont, d'une part, qu'il convient de prévoir des logiciels spécifiques et que les périphériques ne sont plus interchangeables et, d'autre part, qu'une liaison parallèle ne peut être faite sur une longue distance. La figure 3 représente de façon très schématique la caractéristique de base de la présente invention. Selon la présente invention, on prévoit d'effectuer, comme dans le cas de la figure 1, une liaison série entre un ordinateur émetteur 1 et un périphérique récepteur 5 par l'intermédiaire d'une ligne bifi- laire ou trifilaire 4. Les composants du périphérique sont stric- tement identiques à ceux de la figure 1, à savoir que l'on ne modifie ni l'interface série 6, ni le logiciel 7 ni bien entendu la partie mécanique 8. De même, selon la présente invention on prévoit de ne pas modifier le logiciel standard 3 de l'ordinateur émetteur mais de remplacer l'interface série classique 2 par une nouvelle interface 22 qui est constituée sous la forme d'une carte de circuit qui remplace la carte d'interface 2 de la figure 1. La structure générale de cette interface selon l'invention est illustrée schématiquement sous forme de blocs en figure 4. Elle communique avec le logiciel 3 par l'intermédiaire d'un bus 30 relié à un premier bloc 31 qui simule une interface série. Ce simulateur d'interface série reçoit tous les signaux qu'un logiciel standard d'interface série émet et renvoie en retour tous les signaux normalement renvoyés par une interface série mais à un rythme beaucoup plus rapide. Ce simulateur 31 com- munique avec un microprocesseur 32 associé à une mémoire vive (RAM) 33. Ainsi, les données arrivant sur le bus 30 sont immédiatement mémorisées dans la RAM 33 et des signaux d'accusé réception tels que ceux que renvoie normalement une interface série classique sont fournis en retour par le microprocesseur 32 au simulateur 31 puis par le bus 30 vers le logiciel standard 3. Ainsi, les données (des suites de caractères dans le cas d'une connexion à une imprimante) fournies par le logiciel 3 pour l'imprimante sont stockées très rapidement dans la RAM 33 alors que le logiciel standard croit communiquer à un rythme lent avec une interface série normale. Ensuite, le microprocesseur 32 gère la transmission des données contenues dans la RAM 33 vers la liaison série 4 par l'intermédiaire d'une interface série 34, tan- dis que l'ordinateur 1 est libéré. L'avantage fondamental de ce système selon la présente invention réside dans le fait que l'on ne modifie en rien le logi- ciel standard d'un ordinateur classique ni les éléments du périphérique. On utilise seulement le fait que les logiciels stan- dards d'interface série procèdent en envoyant des instructions ou des données et attendent chaque fois un accusé réception de ces instructions ou de ces données. On leurre ce logiciel en lui ren- voyant très rapidement le signal d'accusé réception ce qui fait que le logiciel envoie immédiatement le signal suivant de données ou de commande. Deux cas peuvent se présenter ou bien le logiciel standard envoie un message de données ou de commande qui est effectivement utilisé pour une mémorisation dans la RAM 33, auquel cas on renvoie normalement un message d'accusé réception la seule différence étant que cela est effectué très rapidement, ou bien le logiciel standard envoie un message qui ne présente aucune utilité dans le cas d'une application selon l'invention. Par exemple, un logiciel standard d'interface série envoie des messages destinés à commander le rythme d'émission de données sur la ligne série. Pour ce type de message, on prévoira des cellules renvoyant des signaux de leurre faisant croire que ce signal a été correctement reçu. C'est là l'un des aspects de la présente invention que de prévoir au niveau du simulateur 31, en plus d'une transmission des signaux utiles, un renvoi immédiat d'accusé réception pour des ordres de commande qui ne sont absolument pas utilisés par l'ensemble microprocesseur 32 RAM 33. Avec le procédé selon l'invention on peut réduire d'un facteur au moins égal à 100 la durée d'occupa- tion de l'ordinateur. En effet, la durée entre l'envoi d'un signal et le retour d'un accusé réception peut être de l'ordre de 10-2 ms au lieu de 1 ms avec une liaison série classique, cette dernière durée dépendant des limitations liées à la transmission mais aussi à la vitesse maximum de fonctionnement de l'imprimante. La figure 5 représente schématiquement et sous forme de blocs des éléments d'interface série classique. Une telle interface série est reliée, d'une part, à un bus 30 recevant et transmettant des signaux déterminés par le logiciel standard 3 d'un ordinateur personnel 1 et, d'autre part, à une ligne bifilaire de liaison série 4. Le bus 30 est représenté sous forme d'un bus unique, mais il pourra être décomposé en un bus de données, un bus d'adresses et un bus de contrôle. Ce bus est connecté à des registres tels qu'un registre d'émission de données 41, un registre de réception de données 42, un registre de contrôle 43 et un registre d'état 44. Il s'agira couramment de registres à 8 bits. Le registre d'émission de données 41 est connecté à un serialiseur 45 transmettant des signaux de sortie sur l'un des conducteurs 4-1 de la ligne bifilaire 4. Le registre de réception de données 42 est connecté à un désérialiseur 46 recevant des bits à partir du conducteur de réception 4-2 de la liaison série 4. Le registre de contrôle ou registre de commande 43 est chargé par le bus 30 de mots d'un ou plusieurs bits destinés à contrôler le fonctionnement de divers éléments du système. Par exemple, un mot 43-1 de ce registre est connecté à un générateur dé vitesse 47 destiné à commander la vitesse de fonctionnement du sérialiseur 45 et du désérialiseur 46. Un mot de contrôle 43-2 est destiné à déclencher un contrôle de parité dans les données transmises ou reçues par le sérialiseur 45 et le désérialiseur 46. Un mot 43-3 est un mot commandant une interruption indiquée au registre d'état 44. Le registre d'état 44 comprend également une pluralité de mots, que l'on a représenté uniquement sous forme de bits uni- ques, c'est-à-dire que ce registre comprend des cases d'un bit. La case 44-1 reçoit un signal Ai, en provenance du sérialiseur 45 pour indiquer que celui-ci est vide, c'est-à-dire que le mot qu'il contenait a été émis. La case 44-2 change d'état quand elle reçoit un signal A2 indiquant que le désérialiseur 46 est plein, c'est-à- dire qu'un accusé réception a été reçu sur le conducteur 4-2. La case 443 est activée quand un signal A3 est reçu indiquant qu'une erreur de parité existe. La case 44-4 change d'état quand elle reçoit un signal A4 indiquant qu'un caractère a été perdu dans la transmission. Et, comme cela a été indiqué précédemment, la case 44-5 est reliée à la case 43-3 du registre de contrôle. Bien entendu, les indications données ci-dessus ne don- nent que des exemples particuliers de mots de contrôle et de mots d'état prévus dans la plupart des interfaces série et ne consti- tuent pas non plus une liste exhaustive de ces mots. Le fonctionnement de cette interface série 2 est tel que le logiciel de l'ordinateur personnel interroge en permanence par l'intermédiaire du bus 30 le registre d'état 44. Notamment, au cours de chaque phase de la transmission série, le bus interroge les cases 44-1 et 44-2 du registre 44 pour vérifier le contenu du sérialiseur et du désérialiseur. C'est uniquement quand le sérialiseur a été vidé et que le désérialiseur a reçu un accusé réception que l'on peut envoyer un mot ultérieur dans le sériali- seur 45 et sur la ligne bifilaire 4. Selon la présente invention, comme le représente la figure 6, on remplace l'interface série 2 de l'art antérieur par un simulateur d'interface série 31 également connecté au bus 30 qui est contrôlé par le même logiciel standard que le bus de la figure 5. Toutefois, la sortie du simulateur d'interface au lieu d'être connectée directement à une liaison série 4 est connectée à un bus 50 relié au microprocesseur 32 servant à charger la RAM 33 illustrés en figure 4. On retrouve, en communication avec le bus , des éléments analogues à ceux qui étaient reliés à ce bus en figure 5, c'est-à-dire un registre d'émission de données 51, un registre de réception de données 52, un registre de contrôle 53 et un registre d'état 54. Le registre d'émission de données 51 au lieu d'être connecté à un sérialiseur est connecté à un second registre 55 dialoguant avec le bus 50; de même le registre de réception de données 52 est connecté à un autre registre 56 dialoguant avec le bus 50 et le microprocesseur 32 associé. Le registre de contrôle 53 qui contenait précédemment des mots de commande fournis par le bus 30 pour commander tout le fonctionnement de la carte est maintenant seulement un registre leurre destiné à donner l'impression au bus 30 qu'il communique avec une carte d'interface série classique. Ce registre 53 ne comprend plus que des connections avec le bus 30 pour permettre, comme dans le cas d'une interface série classique, au logiciel standard 3 de relire ce qu'il a écrit dans le registre. Un exemple de réalisation d'une case d'un tel registre leurre sera illustré ci-après. Le registre d'état 54 communique maintenant avec le bus et le bus 50. Certaines de ses cases continuent à avoir les mêmes fonctions que précédemment tandis que d'autres, dites cases temoins, sont bloquées à un état déterminé pour indiquer au bus 30 que cette case reflète une situation sans problème et que le logi- ciel 3 peut continuer à tourner pour examiner une autre case du registre. Parmi les bits qui sont conservés, on peut notamment signaler les bits A1 et A2 qui contrôleront les états des registres 55 et 56 pour vérifier si un mot a été transféré du registre 55 par le bus 50 vers la mémoire RAM et si un accusé réception a été reçu par le registre 56. Ces opérations, de même nature que celles effectuées par les bits Ai et A2 de la figure 5 sont beaucoup plus rapides car il s'agit là d'un transfert dans une mémoire vive et non pas d'un transfert par l'intermédiaire d'une liaison série. Toutefois, pour le bus 30, ces informations bien qu'intervenant beaucoup plus vite sont présentées sous une forme identique. La figure 7 représente un exemple de réalisation d'une case d'un registre tel que le registre d'état 54, correspondant à une case active susceptible de changer d'état, comme dans le cas de la case 54-1 devant recevoir le bit A1. Il s'agit là d'une case non modifiée par rapport aux cases d'un registre d'état classique; elle est décrite essentiellement pour faire ressortir l'origina- lité des cases modifiées selon l'invention illustrées en figures 8 et 9. Cette case, connectée au bus 30 comprend une bascule RS 60 reliée au bus par l'intermédiaire d'une porte ou tampon à trois états 61. La bascule 60 reçoit sur son entrée S le bit Ai. Sa sor- tie Q est connectée à l'entrée de la porte 61. L'entrée de com- mande 62 de la porte 61 reçoit un signal de validation à partir d'une porte ET 63 recevant d'une part un signal de lecture R, d'autre part un signal d'adresse AD en provenance d'un décodeur d'adresses 64 représenté schématiquement sous forme d'une porte ET à plusieurs entrées. En pratique, le signal de lecture R pro- viendra du bus de contrôle associé au bus de données 30 et les entrées de la porte 64 proviendront du bus d'adresses associé à ce bus de données 30. En outre, la sortie de la porte ET 63 est connectée à l'entrée R de la bascule 60. Ainsi, chaque fois qu'un signal d'adresse et un signal de lecture seront présents pour cette case d'un registre, on lira l'état du bit Ai et la bascule est remise à zéro jusqu'au signal d'adresse et de lecture suivant pour détecter une modification éventuelle de l'état du bit Ai. La figure 8 représente de façon schématique un exemple de réalisation d'une case leurre d'un registre, par exemple une case du registre 53 remplaçant le registre de contrôle 43. En fait, selon l'invention, ce registre est inutile puisqu'il ne com- mande pas les états de fonctionnement de la carte. Toutefois, le bus 30 muni de son logiciel standard adresse périodiquement ce registre pour écrire des ordres de commande et peut lire ce 26 07648 registre pour vérifier que les ordres ont été convenablement inscrits. Ainsi, cette case comprend essentiellement une bascule de type D 70 dont l'entrée D est reliée au bus 30, et dont la sor- tie Q est renvoyée à ce bus 30 par l'intermédiaire d'une porte tampon à trois états 71. Il est prévu un système d'adressage en lecture et en écriture. L'adresse est détectée par un décodeur d'adresse représenté schématiquement sous la forme d'une porte ET à plusieurs entrées 72 dont la sortie AD est envoyée aux premières entrées de deux portes ET 73 et 74 dont les deuxièmes entrées reçoivent respectivement un signal d'écriture W et un signal de lecture R. La sortie de la porte ET 73 est connectée à l'entrée d'horloge CK de la bascule 70 et la sortie de la porte ET 74 est connectée à l'entrée de validation de la porte 71. Ainsi, quand un signal d'adresse et un signal d'écriture W sont simultanément présents, des données sont inscrites dans la bascule 70, c'est-à- dire dans la case convenable du registre correspondant. Quand un signal d'adresse et un signal de lecture R sont simultanément présents, la porte à trois états 71 est validiée et le bus 30 lit l'état précédemment inscrit dans la case du registre remplaçant le registre de contrôle. La figure 9 illustre une case témoin de registre, par exemple une case du registre d'état 54, maintenue à un état constant. Cette case comprend simplement une porte à trois états dont l'entrée est maintenue à un niveau constant, qui est représentée comme étant la masse mais qui peut correspondre à un niveau 0 ou à un niveau 1. Quand le logiciel commandant le bus 30 envoie simultanément un signal d'adresse AD 0 une entrée d'un décodeur d'adresse 81 et un signal de lecteur R à l'entrée d'une porte ET 82 dont l'autre entrée reçoit la sortie du décodeur d'adresse 81, la porte 80 est validée, et le bus 30 lit un certain niveau prédéterminé qui correspond pour le logiciel de contrôle de ce bus à un état satisfaisant n'entraînant pas la génération d'une interruption. Une case de ce type sera utilisée pour les cases 54- 3 et 54-4 du registre 54 remplaçant les cases d'erreur de parité 44-3 et de caractère perdu 44-4 du registre 44 puisque, dans une communication entre un registre et une RAM, il n y a plus lieu d'effectuer de telles vérification qui étaient nécessaires dans le cas d'une liaison série. Avec les trois types de cases mémoire (case normale, case leurre, case témoin) décrits précédemment, on peut maintenir tous les registres avec lesquels le logiciel et le bus d'un ordin- nateur associé à une interface série classique avaient l'habitude de dialoguer et donc le logiciel ne peut pas voir que la carte selon la présente invention est distincte d'une carte d'interface série classique. C'est pourquoi l'on a parlé de simulateur ou de leurre dans la description précédente. Ceci permet de ne modifier en rien les logiciels standards préexistants et donc d'assurer une compatibilité totale avec ces logiciels. REVENDICATIONS 1. Procédé de transmission de données entre un émetteur muni d'un logiciel standard adapté à une interface série et un récepteur standard muni d'une interface série, caractérisé en ce qu'il comprend les étapes suivantes: simuler une interface série pour le logiciel de l'émetteur - mémoriser dans une RAM associée à un microprocesseur les données émises par l'émetteur et lui renvoyer des signaux d'accusé réception standards, et transmettre vers le récepteur les signaux stockés dans la RAM au rythme de la liaison série. 2. Dispositif de transmission de données entre un émetteur (1) muni d'un logiciel standard (3) adapté à une inter- face série et un récepteur standard (5) muni d'une interface série, caractérisé en ce qu'il comprend un ensemble de remplace- ment de l'interface série de l'émetteur comprenant les mêmes entréessorties et comportant: - un simulateur d'interface série (31) se comportant comme une interface série pour le logiciel de l'émetteur - une RXM (33) associée à un microprocesseur (32) pour recevoir à grande vitesse les données émises par l'émetteur et lui renvoyer par l'intermédiaire du simulateur les signaux d'accusé réception standards; et - une interface (34) pour transmettre vers le récepteur les données stockées dans la RAM au rythme de la liaison. 3. Dispositif de transmission de données selon la reven- dication 2, caractérisé en ce que le simulateur d'interface série (31) comprend les mêmes registres d'entrées/sorties avec les mêmes cases que l'interface série qu'il vise à remplacer. 4. Dispositif de transmission de données selon la reven- dication 3, caractérisé en ce que le registre (53) du simulateur d'interface série remplaçant le registre de contrôle d'une inter- face série classique comprend des cases leurre à lecture et écri- ture dont la sortie d'écriture correspond à l'entrée de lecture immédiatement précédente. Dispositif de transmission de données selon la reven- dication 3, caractérisé en ce que le registre du simulateur d'interface série remplaçant le registre d'état de l'interface série classique comprend d'une part des cases de même nature (54- 1, 54-2) permettant de détecter l'état du système, d'autre part des cases témoin (54-3, 54-4) maintenues à des niveaux fixes vali- des. 6. Dispositif de transmission de données selon la reven- dication 4, caractérisé en ce qu'une case leurre comprend une bascule de type D (70) dont l'entrée d'horloge (CK) est actionnée en présence d'un signal d'adresse (AD) et d'un signal d'écriture (W) et dont la sortie Q, identique à l'entrée D immédiatement précédente, est lue en présence d'un signal d'adresse (AD) et d'un signal de lecture R. 7. Dispositif de transmission de données selon la reven- dication 5, caractérisé en ce qu'une case témoin du registre comprend une porte commandée (80) dont l'entrée est à niveau fixe et qui est lue en présence d'un signal d'adresse (AD) et d'un signal de lecture (R).