Brevet FR2657979A1 — publié le 19910809

Coup Leur de bus série La présente invention concerne un coupleur de bus série, et plus précisément un coupleur destiné à relier au moins un bus série à un système de traitement d'information, directement ou par l'intermédiaire d'un autre coupleur. Les échanges entre un système de traitement d'information et des abonnés reliés à ce système par un ou plusieurs bus série absorbent une partie de la puissance de calcul de l'unité centrale du système et de la capacité du bus interne de celle-ci. Or, il est souvent demandé à un système de traitement d'information de pouvoir effectuer en temps réel des traitements demandant une grande puissance de calcul et une grande disponibilité du bus interne du système Il en est ainsi par exemple dans des applications telles que le guidage automatique de mobiles, la conduite de procédés ou la robotique. Aussi, la présente invention a-t-elle pour but de fournir un coupleur de bus série permettant de soulager en puissance de traitement et en occupation de bus l'unité centrale d'un système de traitement d'information lors d'échanges entre le système de traitement et des abonnés ou terminaux reliés à celui-ci par un ou plusieurs bus série. Ce but est atteint grâce à un coupleur comportant, conformément à l'invention: un processeur particulier ayant un bus de données, un bus d'adresses et un bus de contrôle, des circuits de mémoire associés au processeur et comprenant une mémoire de programmes et une mémoire vive, au moins un circuit d'interface avec un bus série aboutissant au coupleur, et une mémoire d'échange à double accès reliée d'un côté aux bus du processeur particulier du coupleur et, de l'autre côté, à des bus internes du système de traitement. L'invention sera mieux comprise à la lecture de la description, faite ci-après à titre indicatif mais non limitatif, en référence aux dessins annexés sur lesquels: la figure 1 est une vue générale d'un système informa- tique relié à des bus série par l'intermédiaire d'un coupleur conforme à l'invention. la figure 2 est une vue plus détaillée d'un mode de réalisation d'un circuit logique faisant partie du coupleur de la figure 1, la figure 3 est une vue plus détaillée d'un mode de réalisation d'un circuit de ligne série faisant partie du circuit logique de la figure 2; la figure 4 est une vue plus détaillée d'un autre mode de réalisation d'un circuit de ligne série faisant partie du circuit logique de la figure 2; et la figure 5 est une vue générale montrant une variante de réalisation du coupleur de la figure 1. Le coupleur 1 illustré par la figure 1 relie un système de traitement d'information, tel qu'un calculateur 2, à des bus série 3, 4, 5 Bien entendu, le nombre de bus série reliés au calculateur par le coupleur pourrait être différent de trois. De façon classique, le calculateur 2 comprend une unité centrale 20, des circuits de mémoire 25 associés à l'unité centrale et des circuits d'entrées/sorties 28 permettant le raccordement éventuel du calculateur à des terminaux d'entrée-sortie. L'unité centrale 20 est organisée autour d'un micro- processeur 21 Celui-ci est par exemple du type microprogrammable. L'unité centrale 20 comprend alors en outre une mémoire de micro- programmes 22 et un circuit 23 de gestion du temps et des interruptions L'unité centrale 20 a en charge la gestion des tâches accomplies par le calculateur et la gestion des informations d'entrée/sortie en provenance et vers les bus 3, 4, 5 et autres liaisons externes éventuelles. Le processeur 21 et le circuit 23 sont connectés à un bus 24 qui comprend un bus de données 24 D, un bus d'adresses 24 A et un bus de contrôLe 24 C. Le circuit 23 a pour fonctions la génération de signaux d'horloge de base du calculateur, la génération des signaux d'horloge temps réel, la gestion des interruptions et des tâches et l'arbitrage de l'accès au bus interne 24 du calculateur. La structure de l'unité centrale 20 est donc tout à fait classique, de sorte qu'une description plus détaillée n'est pas ici nécessaire. Les circuits de mémoire 25 comprennent une mémoire vive (RAM) 26 et une mémoire d'application 27 de type PROM Cette dernière contient les programmes d'application mis en oeuvre par l'unité centrale 20. Le coupleur 1 est organisé autour d'un processeur 10, par exemple de type microprogrammable, ayant un bus de données 11 D, un bus d'adresses 11 A et un bus de contrôLe 11 C Le processeur 10 fait fonction d'automate arithmétique et logique microprogrammé recevant des instructions d'une mémoire de microprogrammes 12 Les procédures de communication sur les bus 3, 4, 5 et les procédures d'échange avec le calculateur 2 sont contenues dans la mémoire 12. Le coupleur 1 comprend encore une mémoire vive (RAM) 14, un circuit logique 15 et des circuits 17, 18, 19 formant circuits d'interface entre le circuit logique 15 et les bus 3, 4, 5. La mémoire vive 14 est utilisée pour les traitements microprogrammés effectués par le processeur 10 Elle peut également être utilisée comme mémoire de sauvegarde lorsque le processeur est interrompu. Le circuit logique 15 assure la sérialisation des infor- mations à transmettre sur les bus 3, 4, 5, ainsi que le décodage et la désérialisation des informations reçues des bus 3, 4, 5 A cet effet, comme décrit en détail plus loin, le circuit logique 15 comprend des registres tampons pour le stockage intermédiaire des informations En outre, le circuit logique 15 reçoit des signaux d'horloge provenant d'un circuit 13 de base de temps et de gestion des interruptions qui fournit également les signaux d'horloge nécessaires au fonctionnement du processeur 10 Le circuit logique 15 est relié aux bus 11 D, 11 A et 11 C du processeur 10, ainsi qu'au bus de contrôle 24 C du processeur de l'unité centrale 20, ceci afin de recevoir de l'unité centrale des micro- ordres transmis sur le bus 24 C. Le dialogue entre le coupleur 1 et le calculateur 2 est réalisé par l'intermédiaire d'une mémoire d'échange à double accès 16 Celle-ci est reliée, d'un côté, aux bus de données et d'adresses 24 D, 24 A du processeur 21 et, de l'autre côté, aux bus de données et d'adresses 11 D, 11 A du processeur 10. La figure 2 montre de façon plus détaillée un mode de réalisation du circuit logique 15 Celui-ci comprend essen- tiellement: des circuits de ligne série 151, 152, 153 interposés entre les bus 11 D, 11 A et 11 C du processeur 10 et, respectivement, les circuits d'interface 17, 18, 19; un amplificateur bidirec- tionnel (buffer) 154 interposé entre le bus de données 24 D du processeur 21 et la mémoire d'échange 12; et un circuit de décodage 155 interposé entre le bus de contrôle 24 C du processeur 21 et le bus de contrôLe 11 C du processeur 10. L'amplificateur bidirectionnel 154 est commandé par le bus de contrôle 11 C. Le circuit de décodage 155 reçoit des micro-ordres transmis sur le bus de contrôLe 24 C, depuis l'unité centrale 20, et les décode pour transmettre les commandes correspondantes sur le bus de contrôLe 11 C. Les circuits de ligne 151, 152, 153 effectuent essen- tiellement la transformation parallèLe/série (ou inversement), le codage/décodage et la détection des erreurs de transmission. La figure 3 illustre de façon détaillée le circuit de ligne 151 associé au bus 3, celui-ci étant par exemple un bus série bifilaire de type '1553 ". Le circuit 151 comprend deux registres d'émission RTE 1 et RE 1, deux registres de réception RR 1 et RTR 1, un circuit de codage/décodage CDC, un registre d'état RST, un registre de contrôLe RCT, un circuit d'hor Loge CLK et un circuit Logique de contrôle CTL Le registre d'émission RTE 1 est un registre tampon dans Leque L Le stockage est commandé par Le circuit CTL, et qui est interposé entre Le bus de données 11 D et L'entrée para LLèLe du registre d'émission RE 1 à entrée para LLèLe et sortie série Cette dernière est re Liée à L'entrée de codage du circuit CDC. Le registre de réception RTR 1 est un registre tampon dans Leque L Le stockage est également commandé par Le circuit CTL, et qui est interposé entre La sortie para LLèLe du registre de réception RR 1 à entrée série et sortie para LLèLe et Le bus de données 11 D L'entrée série du registre RE est re Liée à La sortie de décodage du circuit CDC. Le registre de contrôLe RCT est chargé à partir du bus de données 11 D, sous La commande du circuit CTL, et est Lu par Le circuit de codage/décodage CDC De façon classique, Le mot contenu dans Le registre de contrôLe est formé de bits qui, se Lon qu'i Ls sont ou non positionnés à 1, provoquent: L'émission d'un mot sur Le bus série 3, La génération d'une impulsion de synchronisation caractérisant un mot de données ou un mot de commande ou d'état, pour Le mot à émettre, L'inhibition de L'émission, La désactivation de La partie décodeur du circuit CDC, Lorsque Le bus 3 est au repos (pour éviter La prise en compte de réceptions parasites), La validation du circuit d'hor Loge. Le registre d'état est chargé à partir du circuit de codage/décodage CDC, sous La commande du circuit CTL et son contenu est disponible sur Le bus de données 11 D Ega Lement de façon classique, Le mot contenu dans Le registre d'état est formé de bits qui, se Lon qu'i Ls sont ou non positionnés à 1, indiquent: La nature d'un mot reçu: mot de commande ou d'état, ou mot de donnée, une erreur dans Le mot reçu, L'inhibition de L'émission par Le circuit de protec- tion faisant partie du circuit de codage/décodage, La transmission de mots sur Le bus 3, un dépassement de capacité en réception, L'absence de réponse à une commande dans un déLai prédéterminé. Le circuit de codage/décodage CDC effectue La conversion des données para LLèLes fournies sur Le bus 11 D en données série codées se Lon La norme du bus 3 de type " 1553 ' Du côté codage (émission), Le circuit CDC comprend un circuit de protection qui inhibe L'émission Lorsqu'une transmission excède une durée prédé- terminée Du côté décodage (réception), Le circuit CDC comprend un fi Ltre destiné à éLiminer Les signaux parasites et un décodeur assurant La conversion des données série codées se Lon La norme du bus 3 en mots uti Lisab Les par Le processeur 10. Le circuit d'hor Loge CLK permet d'effectuer une datation des temps de réponse des abonnés connectés sur Le bus 3 IL comprend un compteur incrémenté par un signa L d'hor Loge CK provenant du circuit de base de temps 13 et un registre préchargé à partir du bus de données 11 D, sous La commande du circuit CTL. Le registre est préchargé à une va Leur correspondant-à un temps de réponse maximum prédéterminé Le compteur est déclenché en réponse à un signa L du circuit CDC à L'émission d'un mot et stoppé en réponse à un signa L du circuit CDC à La réception d'un mot Le dépassement par Le compteur de La va Leur préchargée dans Le registre commande une interruption vers Le processeur 10. Le circuit Logique de contrôLe CTL décode Les mots reçus du bus de contrôLe 11 C et du bus d'adresses 11 A pour éLaborer Les signaux de contrôLe des registres tampons RTE 1, RTR 1, du registre de contôLe RCT et du registre d'état RST et du circuit d'hor Loge CLK. Les sorties d'émission TX et entrées de réception RX de circuit CDC, ainsi qu'une sortie TXINH d'inhibition d'émission, sont re Liées au circuit d'interface 17 qui comprend un émetteur/récepteur 171 et un transformateur 172 connecté au bus bifilaire 3. En fonctionnement, le coupleur 1 met en communication le calculateur 2 avec des abonnés connectés sur le bus 3 Les données susceptibles d'être transmises aux abonnés sont stockées dans la mémoire d'échange à double accès 16 en provenance de l'unité centrale 20. Le coup Leur 1 peut fonctionner en mode abonné sur le bus 3 ou en mode gérant du bus 3. Au niveau du coupleur, la gestion des échanges repose sur des tables implantées en mémoire double accès 16: un bloc de contrôLe, une tab Le des descripteurs et une file d'attente. Le bloc de contrôle contient les paramètres de fonction- nement du coupleur (notamment fonctionnement en mode abonné ou en mode gérant) ainsi que les différents pointeurs permettant la gestion des échanges, notamment l'adresse de la table des descripteurs, l'adresse de La file d'attente, les pointeurs de gestion de la file. Chaque message reçu du bus 3 ou transmis sur celui-ci est caractérisé par un descripteur, et l'ensemble des descripteurs est contenu dans une table Un descripteur comprend un mot de contrôLe, un mot pointeur de données et un mot de compte-rendu Le mot de contrôLe peut être constitué, du bit de poids le plus éLevé au bit de poids le moins éLevé: d'un champ d'état comprenant un bit de verrouillage indiquant qu'un échange est en cours de traitement et un bit indiquant en fin d'échange qu'un message a été reçu ou transmis, d'un champ définissant le format du message, et d'un champ relatif à la configuration de l'échange et comprenant par exemple un bit de demande d'interruption en fin d'échange, un bit de demande d'interruption en cas d'erreur et un bit de demande de compte-rendu. Le mot de pointeur de données donne l'adresse du bloc de données en zone d'échange. Le mot de compte-rendu indique le type d'erreur éven- tuelle survenue lors de la transmission La table des descripteurs peut être partagée en deux parties: l'une affectée aux messages à transmettre (émission vers un abonné particulier ou diffusion sur le bus) et l'autre affectée aux messages reçus. La file d'attente contient les adresses des descripteurs correspondant aux messages reçus ou émis par le coupleur (fonctionnement en mode abonné) ou aux messages à traiter par le coupleur (fonctionnement en mode gérant). En fonctionnement en mode abonnné, l'adresse du descripteur correspondant à un message à émettre ou à stocker par le coupleur est déterminée par décodage, dans un mot de commande reçu sur le bus 3, d'un bit d'émission/réception et de bits iden- tifiant une sous-adresse dans la table des descripteurs Une fois l'adresse du descripteur déterminée, les informations contenues dans le mot de contrôle sont prises en compte et l'adresse de rangement des données à émettre ou recevoir est préLevée Le bit de verrouillage du mot de contrôle indiquant qu'un échange est en cours est positionné puis l'échange est réalisé avec surveillance de la transmission en fonction des bits du champ de configuration du mot de contrôLe Le contenu de la file d'attente est mis à jour par écriture de l'adresse du descripteur et incrémentation du pointeur et la procédure d'échange est terminée par remise à l'état initial du bit de verrouillage du mot de contrôle et positionnement du bit du mot de contrôle indiquant qu'un nouveau message vient d'être émis ou reçu Les échanges se déroulent de façon transpa- rente pour le calculateur Si, pour un message d'un type donné, le calculateur doit être informé à chaque échange, le bit de demande d'interruption en fin d'échange est positionné dans le mot de contrôLe pour générer une interruption vers l'unité centrale du calculateur à la fin de chaque échange concerné Sinon, il suffit de tester le bit du mot de contrôle indiquant qu'un message a été reçu ou émis pour savoir si le message a été réactualisé depuis la dernière remise à l'état initial de ce bit, cette remise à l'état initial étant effectuée par le calculateur En outre, l'examen de la file d'attente permet de connaître à tout moment les derniers transferts réalisés. En fonctionnement en mode gérant, les adresses des messages à traiter sont rangées directement dans la file d'attente par le calculateur Cette file est gérée par pointeur initialisé par le calculateur Le traitement d'un message est effectué par le coupleur sur réception par celui-ci d'une interrruption venant du calculateur Le traitement est réalisé de façon semblable à celle indiquée plus haut, jusqu'à ce que la file d'attente soit vide Le calculateur est alors maître des transferts effectués sur le bus 3. Dans le cas d'une émission, les données à émettre sont rangées par le calculateur dans la mémoire d'échange dans la zone pointée par le descripteur du message, puis une interruption est émise vers le coupleur. On a envisagé ci-avant un mode de réalisation d'un circuit de ligne série 151 pour un bus 3 de type " 1553 ". Bien entendu, le coupleur selon l'invention est utili- sable avec des bus série d'un autre type, même avec plusieurs bus ayant des types différents. Ainsi, la figure 4 illustre un mode de réalisation d'un circuit de ligne série pour un bus série de type "'RS 232 ", par exemple le circuit 152 associé au bus 4. Le circuit de ligne série 152 comprend un registre tampon de données RTD interposé entre le bus de données 11 D et un bus de données interne BDI A ce dernier sont reliés un registre de contrôle et d'état RCE, un registre tampon d'émission RTE 2 et un registre tampon de réception RTR 2 Un registre d'émission RE 2 à entrées parallèles et sortie série est inséré entre le registre tampon RTE 2 et le circuit d'interface 18 tandis qu'un registre de réception RR 2 à entrée série et sorties parallèles est inséré entre le circuit d'interface 18 et le registre tampon RTR 2 Ces différents registres du circuit de ligne série 152 sont contrôlés par un circuit de contrôle de lecture (écriture CRW) qui est connecté aux bus de contrôle 11 C et d'adresses 11 A et est relié au circuit de base de temps 13 dont il reçoit un signal d'horloge CK'. Le circuit de ligne série 152 décrit ci-avant est classique, de même que le circuit d'interface 18 par l'intermé- diaire duquel il est relié au bus 42 Ce dernier pourra par exemple être constitué par les circuits référencés 26 LS 31 et 26 LS 32 par exemple des sociétés des Etats Unis d'Amérique MOTOROLA ou TEXAS INSTRUMENTS. La transmission sur un bus série relié au coupleur 1 peut être effectuée sous forme d'une trame dans laquelle sont insérés plusieurs messages. Avantageusement alors, le format de la trame est enre- gistré dans une mémoire non volatile Un coupleur 1 ' comprenant une telle mémoire non volatile 14 ' est illustré par la figure 5. Ce coupleur 1 ' se distingue de celui 1 de la figure 2 uniquement par l'adjonction de la mémoire 14 ' et des connexions de celle-ci avec les autres circuits du coupleur Les éléments communs aux coupleurs 1 ' et 1 portent les mêmes références et ne seront pas à nouveau décrits. La mémoire 14 ' est par exemple une mémoire non volatile effaçable et réinscriptible électriquement (EEPROM)-connectées aux bus de données 11 D et d'adresses 11 A du processeur 10 Le char- gement de la mémoire 14 ' peut être effectué par l'intermédiaire d'un bus série, par exemple le bus 3, à l'aide d'une procédure microprogrammée contenue dans la mémoire 12, de sorte que la trame peut être facilement modifiée en fonction des besoins. I REVENDICATIONS 1 Coupleur de bus série destiné à relier au moins un bus série ( 3,4,5) à un système de traitement d'information ( 2) ayant une unité centrale ( 20) et des bus internes ( 24 D, 24 A, 24 C), carac- térisé en ce qu'il comporte: un processeur particulier ( 10) ayant un bus de données ( 11 D), un bus d'adresses ( 11 A) et un bus de contrôle ( 11 C), des circuits de mémoire ( 12, 14) associés au processeur ( 10) et comprenant une mémoire de programmes ( 12) et une mémoire vive ( 14), au moins un circuit d'interface ( 17, 18, 19) avec un bus série ( 3, 4, 5) aboutissant au coupleur, et une mémoire d'échange à double accès ( 16) reliée d'un côté aux bus ( 11 D, 11 A, 11 C) du processeur particulier ( 10) du coupleur et, de l'autre côté, aux bus internes ( 24 D, 24 A, 24 C) du système de traitement ( 2). 2 Coupleur selon la revendication 1, caractérisé en ce qu'il comprend en outre une mémoire non volatile ( 14 ') dans laquelle sont enregistrées des données relatives au format de trames dans lesquelles des informations sont transmises sur un bus série relié au coupleur. 3 Coupleur selon la revendication 2, caractérisé en ce que la mémoire non volatile ( 14 ') est de type effaçable et réinscriptible.