FR 2696024 A1 19940325 FR 9211378 A 19920924 1 2696024 PROCEDE ET DISPOSITIF MODULAIRE PERMETTANT LE COUPLAGE ET LE MULTIPLEXAGE DE BUS DE DIFFERENTS TYPES. La présente invention concerne un procédé et un disposi- tif de couplage de bus permettant l'interfaçage entre un bus de transfert de données numérique et à au moins un bus numérique ou une ligne analogique. Elle s'applique notamment à la connexion d'une unité de traitement de données à base de processeurs et de mémoires, à différents organes périphériques dont les bus ne sont pas compatibles Ces bus peuvent être analogiques aussi bien que numériques, du type série comme par exemple, les lignes V 24 ou 1553, ou bien du type paral- lèle comme les bus VME. Généralement, chaque type de connexion de bus est réalisé selon une architecture matérielle spécifique et un protocole de communication définissant comment s'effectue le transfert des données En réception de données, ce protocole concerne la désérialisation (le cas échéant) et le décodage des données pour les rendre exploitables par une unité de traitement En émission, il concerne le codage des données et la sérialisation de celles-ci, si besoin est. Dans les applications de traitement de données, il est courant d'avoir besoin de faire communiquer deux organes utilisant des bus de types différents Pour parvenir à ce résultat, on utilise généralement une carte de couplage qui réalise entre les deux bus, un interfaçage à la fois sur le plan électrique et sur le plan logique pour tenir compte du protocole de communication utilisé sur chaque bus. Lorsqu'une unité de traitement doit pouvoir échanger des données avec des organes externes mettant en oeuvre des bus de types quelconques, il est connu d'utiliser une carte de couplage pour chaque bus à connecter, en vue d'établir la connexion du bus local de l'unité de traite- ment avec les bus externes. Cette solution pose souvent des problèmes d'encombrement notamment lorsque l'unité de traitement doit communiquer avec un grand nombre de bus externes. Ce problème devient crucial, du fait de la grande diver- sité de types de bus existant aujourd'hui D'autre part, les utilisateurs de ce type de matériel présentent bien souvent, des besoins spécifiques, ce qui peut les amener, pour un bus d'un type donné, à modifier le protocole de communication. Dans ce contexte, il est alors nécessaire de développer une nouvelle carte de couplage pour chaque type de couplage à réaliser. Cette méthode manque de souplesse et conduit à multiplier les développements de cartes électroniques qui s'avèrent longs et coûteux. L'invention a pour but de supprimer ces inconvénients. Elle propose à cet effet un procédé de couplage d'un premier bus numérique de transfert de données avec au 2 - moins un second bus numérique ou analogique à l'aide d'une carte de couplage. Ce procédé est caractérisé en ce qu'il comprend le regroupement des particularités électriques et logiques du second bus dans un module assurant la connexion avec le second bus, le module étant enfichable dans la carte de couplage réalisant la connexion avec le premier bus. Ainsi, une carte de couplage peut être utilisée pour connecter le premier bus à un autre bus de n'importe quel type en utilisant le module enfichable adéquat Donc, à chaque fois qu'un utilisateur a besoin d'effectuer un nouveau couplage, il n'est plus nécessaire de développer une carte de couplage complète, mais il suffit simplement de réaliser un module enfichable spécifique du bus à connecter. Selon une particularité de l'invention, ce procédé comprend l'initialisation de la carte de couplage lors de sa mise sous tension, au cours de laquelle un programme, mémorisé dans le module enfichable, est transféré dans une interface programmable située sur la carte de couplage Cette interface effectue une sérialisation et un codage de données pour un transfert de données du premier bus vers le second, et une désérialisation et un décodage de données pour un transfert inverse. Avantageusement, le programme, chargé dans l'interface programmable lors de sa mise sous tension, peut être paramétrable pour pouvoir s'adapter aux différentes caractéristiques d'utilisation du second bus. Ces différents paramètres peuvent être, par exemple pour une ligne V 24, du type fréquence de ligne, format et codage des données, nombre et motifs des mots de synchro- nisation Ils sont transmis à l'interface programmable par l'unité de traitement lors de son initialisation Le programme chargé dans l'interface comprend alors une 3 - fonction particulière assurant la réception et la prise en compte de ces paramètres. L'invention concerne également un dispositif mettant en oeuvre le procédé caractérisé en ce qu'il comporte une carte de couplage comprenant: au moins une interface programmable contrôlée par un programme stocké dans une mémoire externe et réalisant la connexion avec le premier bus, un emplacement par interface programmable comportant des moyens de connexion capables de connecter un module enfichable à l'interface programmable, et au moins un module enfichable comprenant un circuit réalisant l'interface électrique avec au moins un second bus et une mémoire non volatile, dans laquelle est stocké le programme qui contrôle l'interface programmable pour respecter le protocole de communication du second bus. Les avantages de cette solution sont considérables en termes de coût de réalisation et de souplesse d'utilisa- tion, le dispositif pouvant être reconfiguré simplement, soit en changeant les valeurs des paramètres, soit en remplaçant le module enfichable. Selon une particularité de l'invention, le dispositif comprend les moyens de connexion nécessaires pour pouvoir recevoir simultanément plusieurs modules enfichables connectés chacun à au moins un bus de type quelconque, chacun de ces moyens de connexion étant relié à une interface programmable standard connectée au premier bus pour pouvoir échanger des données avec une unité de traitement. Grâce à cette disposition, une seule et unique carte de couplage est nécessaire pour connecter simultanément plusieurs bus qu'ils soient de mêmes types ou non Cette solution permet donc, d'une part, de réduire l'encombre- 4 - 2696024 ment des différents circuits de couplage, et d'autre part, de n'utiliser qu'un seul moyen de connexion de l'unité de traitement. Lorsque l'interface matérielle à réaliser sur un module est complexe et donc relativement encombrante, il est possible d'utiliser deux emplacements de modules enfi- chables du dispositif. Le dispositif selon l'invention est également capable d'établir la connexion avec une ligne analogique Pour cela, il suffit d'incorporer dans le module enfichable à réaliser, un convertisseur analogique/numérique entre l'interface matérielle située sur le module et l'inter- face programmable. Un mode d'exécution de l'invention sera décrit ci-après, à titre d'exemple non limitatif, avec référence aux dessins dans lesquels: la figure 1 est une représentation schématique d'une carte de couplage avec un bus de type numérique; la figure 2 est une représentation schématique d'une carte de couplage avec une ligne d'acquisition analogique; la figure 3 représente une carte de couplage capable de recevoir plusieurs modules enfichables assurant la connexion avec des bus différents; la figure 4 représente le schéma électronique simplifié d'une carte de couplage capable de rece- voir quatre modules; la figure 5 représente le schéma électronique simplifié d'un module permettant de raccorder quatre lignes R 5422. Sur la figure 1, la carte de couplage 1 comprend une interface programmable 2 et des moyens de connexion 8, 9 lui permettant de recevoir un module enfichable 3 Ce module 3 comprend une mémoire non volatile 4 de type PROM dans laquelle est stocké un programme destiné à être chargé dans l'interface programmable 2 par l'intermédiaire d'une liaison série 9, au moment de la mise sous tension de la carte de couplage Le module enfichable 3 comprend également un circuit 5 réalisant l'interface électrique avec le bus numérique 6 à connecter, ce bus 6 pouvant être de type série comme les lignes PCM, V 24, R 5232, R 5422, ARINC et 1553 ou parallèle comme le bus VME. L'interface programmable 2 est connectée à un bus 7, par exemple de type VME, lui permettant de communiquer avec une unité de traitement de données Elle est constituée d'un composant de type FPGA (matrice de portes logiques programmable) intégrant des cellules logiques organisées en matrices, ainsi que des cellules d'entrées/sorties, o les interconnexions entre les cellules sont contrôlées par le programme stocké dans la mémoire non volatile 4. Ce composant appartient, par exemple, à la famille XC 4000 fabriquée par la société XILINX. En acquisition, les données sont transmises par le circuit 5 et la ligne 8, du bus 6 vers l'interface programmable 2 qui assure leur désérialisation et leur décodage Ces données sont ensuite mises en forme suivant un format déterminé compatible avec le bus 7 avant d'y être transférées à destination d'une unité de traitement. En émission, les données parcourent le chemin inverse. Elles circulent tout d'abord sur le bus 7 Puis elles sont codées et sérialisées par l'interface programmable 2, avant d'être envoyées sur la ligne série 8 à destina- tion du circuit 5 puis du bus 6. 6 - La figure 2 représente la carte de couplage 1 comprenant l'interface programmable 2 et dans laquelle est enfiché le module 10 Comme précédemment, ce module 10 comprend une mémoire 13 de type PROM contenant le programme à charger dans l'interface programmable 2 et un circuit 11 réalisant l'interface électrique avec la ligne 14 de type analogique Comme l'interface programmable 2 n'est capable de recevoir que des données de type numérique sur la ligne série 8, un convertisseur 12 analogique/ numé- rique est intercalé entre le circuit 1 h et la ligne série 8. Dans cette configuration (figure 2), la carte de couplage 1 fonctionne de la même façon que dans le cas o le bus à connecter est de type numérique (figure 1). Selon un mode de réalisation préféré (figure 3), la carte de couplage 15 permet de réaliser le couplage avec plusieurs bus simultanément (quatre sur la figure), ces bus pouvant être de type différents Pour cela, elle comprend quatre interfaces programmables 20 à 23 pouvant être associées à quatre modules enfichables 16 à 19 Les quatre interfaces programmables 20 à 23 sont connectées au même bus 24 leur permettant d'échanger les données, alors de même format, avec l'unité de traitement 25. L'initialisation de la carte de couplage 15 s'effectue d'une manière similaire à celle décrite précédemment, les programmes stockés au niveau des modules enfichables 16 à 19 sont chargés respectivement dans les interfaces programmables 20 à 23. Le bus 24 est en fait constitué de 2 bus parallèles de 16 bits, un bus dédié à l'acquisition de données et un bus dédié à l'émission de données, de manière à simplifier la gestion des demandes d'accès au bus et à obtenir un haut débit de transmission de données entre la carte de 7 couplage 15 et l'unité de traitement 25 Selon ce schéma, chaque donnée est codée sur 16 bits et est associée, dans le cas des acquisitions, à un mot de contrôle de 16 bits permettant, tout d'abord, d'identifier le bus origine de la donnée à partir: du numéro de carte de couplage de manière à permettre la connexion de plusieurs cartes de couplage à la même unité de traitement, du numéro du module sur la carte de couplage (de O à 3 dans l'exemple de la figure 3), et du numéro de ligne du module de manière à permettre qu'un module enfichable soit connecté, à la fois, à plusieurs bus de même type (par exemple de type ARINC), Ce mot de contrôle fournit, ensuite, des informations sur la donnée elle- même concernant le type de la donnée dans le protocole du type de bus acquis, comme par exemple, mot de commande, status ou identificateur de message. Il donne, en outre, des indications sur la qualité de la transmission, comme par exemple, le type de l'erreur détectée le cas échéant. L'unité de traitement 25 comprend une pile de type FIFO (premier entré premier sorti) dans laquelle sont empi- lés tous les mots arrivant par le bus 24 dédié à l'acqui- sition L'unité de traitement 25 comprend également un processeur rapide, par exemple, de type RISC (processeur à jeu d'instructions réduit) pour pouvoir lire et traiter les données écrites dans cette pile suffisamment rapide- ment afin d'éviter la saturation de cette dernière. Selon cette configuration, il est possible de réaliser les programmes chargés dans les interfaces programmables de manière paramétrable de façon à pouvoir les adapter aux différentes utilisations possibles des bus connectés sans avoir besoin de changer de module enfichable. 8 - Pour chacun des quatre bus, ces paramètres sont saisis au niveau de la station de travail 26, puis transférés à l'unité de traitement 25 qui les mémorise et les transmet à l'interface programmable correspondante par l'intermé- diaire du bus 24 dédié à l'émission. Le programme chargé dans chaque interface programmable 20 à 23 comporte alors une fonction capable de recevoir ces paramètres et de les utiliser pour configurer ses fonctions d'acquisition et d'émission. Par exemple, pour une ligne série de type V 24, ces para- mètres définissent la fréquence de ligne, le nombre de bits dans un mot, le nombre de bits d'arrêt, le nombre de mots de synchronisation, la valeur de ces mots de synchronisation, le type de codage de ligne, la signification du bit de parité (bit de parité, donnée ou sans signification), et la position de l'identificateur du message dans la trame. L'unité de traitement 25 comporte une mémoire de type EEPROM o des données peuvent être écrites par programme et conservées même en l'absence de tension Cette mémoire permet de garder les dernières valeurs des paramètres saisis par l'utilisateur sur la station de travail 26, afin de les transmettre aux différentes cartes d'inter- face 20 à 23, lors de l'initialisation de l'unité de traitement 25 et de la carte de couplage 15 Lorsque l'initialisation de l'unité de traitement 25 est termi- née, ainsi que le chargement des programmes stockés au niveau des modules enfichables 16 à 19 dans les inter- faces programmables 20 à 23, l'unité de traitement 25 lit 9 - - cette mémoire EEPROM et transmet son contenu aux diffé- rentes interfaces programmables 20 à 23 par l'intermé- diaire du bus d'émission 24. Cette configuration (figure 3) permet, par exemple, d'espionner trois bus et d'émettre les données lues sur le quatrième bus, la station de travail 26 permettant à un opérateur de piloter l'unité de traitement 25 et indi- rectement, la carte de couplage 15. Cette configuration permet également de connecter un bus nécessitant une interface complexe et donc encombrante car un module enfichable 27 (représenté en traits inter- rompus sur la figure 3) peut occuper l'emplacement de deux modules 18, 19 sur la carte de couplage 15 Le module 27 peut alors utiliser une seule ou les deux interfaces programmables 22, 23. Lorsqu'ils sont enfichés dans la carte de couplage 55 (figure 4), chacun de ces modules 16 à 19 est raccordé respectivement aux composants de type FPGA 50 à 53 par l'intermédiaire des liaisons 43 et 44 La liaison 43 permet au composant de type FPGA d'accéder à la PROM du module pour charger son programme, tandis que la liaison 44 permet l'échange des données. Chaque composant 50 à 53 est connecté à quatre bus de 16 bits: un premier bus 33 sur lequel transitent les données acquises, un second bus 34 sur lequel transite le mot de contrôle associé à chaque donnée acquise, un troisième bus 35 permettant d'émettre des données, et un quatrième bus 36 sur lequel transite l'adresse asso- ciée à chaque donnée à émettre. il - En acquisition, les données et leurs mots de contrôle respectifs arrivent sur un multiplexeur 29 permettant de transférer alternativement, une donnée et son mot de contrôle sur le bus d'acquisition 41 de 16 bits à destination de l'unité de traitement. Ce multiplexeur 29, ainsi que les composants 50 à 53 sont contrôlés respectivement, grâce aux liaisons 40 et 37, par un arbitre 28 de type PAL (tableau logique programmable) qui gère les accès aux bus 33 à 36. En émission, les informations émises par l'unité de traitement sur le bus de 16 bits 42 sont constituées de mots de 16 bits représentant alternativement une donnée et son adresse de transfert Ces informations sont stockées dans deux piles 31, 32 de type FIFO, contrôlées par l'arbitre 28, la pile 31 étant réservée aux données, tandis que l'autre pile 32 reçoit les adresses associées. Chacune de ces données associée à son adresse est ensuite transférée dans une mémoire volatile 30 sous le contrôle de l'arbitre 28 avant d'être envoyée sur les bus 35 et 36 à destination d'un des composants 50 à 53 et du module 16 à 19 correspondant. Le module 46 représenté sur la figure 5 est conçu pour assurer la connexion de quatre lignes externes de type R 5422 utilisées en PCM, deux lignes différentielles (DO 1 +, D Ol-) et (D 02 +, D 02-) en émission et deux lignes différentielles (RI 1 +, R Il-) et (RI 2 +, RI 2-) en réception Ce module comprend une mémoire non volatile 47 de type PROM série, contrôlée par l'intermédiaire des lignes CLK, CE et RST et qui peut transférer le programme qui y est mémorisé par la ligne DATA IN. Pour une acquisition de type PCM, ce programme enchaîne les opérations suivantes à partir des données transitant sur la ligne externe de type R 5422: 12 - réception des données et synchronisation bit à bit, à partir des paramètres vitesse de transmission, nombre de bits par mots et type de codage de ligne, reconstitution des mots par comptage des bits, transcodage des données suivant le format utilisé sur le bus interne 33 et génération du mot de contrôle associé, demande d'accès aux bus internes 33 et 34, et émission de chaque donnée sur le bus 33 et de son mot de contrôle sur le bus 34. En émission de type PCM, ce programme effectue les opéra- tions suivantes lorsque des données sont disponibles dans la mémoire 30 demande d'accès aux bus 35 et 36 pour lire dans la mémoire 30, les données à émettre et leurs adresses, contrôle du nombre de données à envoyer par comparaison des adresses, codage des données, et génération de l'horloge d'émission et émission des données vers le module enfichable. 13 - REVENDICATIONS 1 Procédé de couplage d'un premier bus numé- rique ( 7) de transfert de données avec au moins un second bus de type quelconque ( 6) à l'aide d'une carte de couplage ( 1) caractérisé en ce qu'il comprend le regrou- pement des caractéristiques électriques et logiques du second bus ( 6) dans un module enfichable ( 3) assurant la connexion avec le second bus, le module ( 3) étant enfichable sur la carte de couplage ( 1) réalisant la connexion avec le premier bus ( 7). 2.Procédé selon la revendication 1, caractérisé en ce qu'il comprend l'initialisation de la carte de couplage ( 1) lors de sa mise sous tension, au cours de laquelle un programme mémorisé dans le module enfichable ( 3) est transféré dans une interface program- mable ( 2) située sur la carte de couplage ( 1) et réalisant la connexion avec le premier bus ( 7). 3 Procédé selon la revendication 2, caractérisé en ce que le programme mémorisé au niveau du module enfichable ( 3) effectue successivement une sérialisation et un codage de données pour un transfert de données du premier bus ( 7) vers le second bus ( 6). 4 Procédé selon l'une des revendications 2 et 3, caractérisé en ce que le programme mémorisé au niveau du module enfichable ( 3) effectue successivement une désérialisation et un décodage de données pour un transfert de données du second bus ( 6) vers le premier bus ( 7). 5 Procédé selon l'une des revendications 2 à 4, caractérisé en ce que le programme mémorisé au niveau du module enfichable ( 3) est conçu de manière paramétrable pour pouvoir s'adapter à différentes caractéristiques 14 - d'utilisation du second bus ( 6), les paramètres étant transmis à l'interface programmable ( 2) par l'intermé- diaire du premier bus ( 7). 6 Dispositif pour la mise en oeuvre du procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte une carte de couplage ( 1) comprenant: au moins une interface programmable ( 2) contrôlée par un programme stocké dans une mémoire externe et réalisant la connexion avec le premier bus ( 7), un emplacement par interface programmmable comportant des moyens de connexion capables connecter un module enfichable ( 3) à l'interface programmable, et au moins un module enfichable ( 3) comprenant un circuit ( 5) réalisant l'interface électrique avec au moins un second bus ( 6) et une mémoire non volatile ( 4), dans laquelle est stocké le programme qui contrôle l'interface programmable ( 2) pour respecter le protocole de communication du second bus ( 6). 7 Dispositif selon la revendication 6, caractérisé en ce que les moyens de connexion comprennent une première ligne série ( 8) permettant un transfert de données entre le second bus ( 6) et l'interface programmable ( 2) via le circuit d'interface électrique ( 5) et une seconde ligne série ( 9) permettant à l'interface programmable ( 2) d'accéder à la mémoire non volatile ( 4). 8 Dispositif selon l'une des revendications 6 et 7, caractérisé en ce que l'interface programmable ( 2) est réalisée à l'aide de composants intégrant des cellules logiques organisées en matrices et des cellules d'entrées/sorties, les interconnexions entre les cellules étant contrôlées par le programme stocké dans la mémoire non volatile ( 4). - 9 Dispositif selon l'une des revendications 7 et 8, caractérisé en ce que l'emplacement est capable de recevoir module enfichable ( 10) comprenant un circuit ( 11) réalisant l'interface électrique avec au moins une ligne analogique ( 14), un convertisseur analogique/numérique ( 12) inséré entre le circuit d'interface électrique ( 11) et la ligne série ( 8) permettant le transfert des données entre le second bus ( 14) et l'interface programmable ( 2), et une mémoire non volatile ( 13) qui vient se raccorder à la seconde ligne série ( 9) et dans laquelle est stocké ledit programme qui contrôle l'interface programmable ( 2). Dispositif selon l'une des revendications 6 à 9, caractérisé en ce que le premier bus ( 24) est connecté à une unité de traitement ( 25) à base de processeurs et de mémoires. 11 Dispositif selon la revendication 10, caractérisé en ce que le programme paramétrable mémorisé au niveau d'un module enfichable ( 16 à 19) reçoit des paramètres après son chargement dans l'interface programmable ( 2) par l'unité de traitement ( 25) qui comprend une mémoire dans laquelle sont mémorisés les paramètres. 12 Dispositif selon l'une des revendications 6 à 11, caractérisé en ce qu'un module enfichable ( 27) peut occu- per deux emplacements de modules enfichables ( 22, 23) sur la carte de couplage 15 pour pouvoir réaliser une inter- face électrique complexe avec un bus. 16 2696024 13 Dispositif selon l'une des revendications 6 à 12, caractérisé en ce que la carte de couplage ( 55) comprend quatre bus ( 33 à 36) qui relient chacune des interfaces matérielles ( 50 à 53): un premier bus ( 33) sur lequel transitent les données acquises, un second bus ( 34) sur lequel transite un mot de contrôle associé à chaque donnée acquise, un troisième bus ( 35) permettant d'émettre des données, et un quatrième bus ( 36) sur lequel transite une adresse associée à chaque donnée à émettre. 14 Dispositif selon la revendication 13, caractérisé en ce que la carte de couplage ( 55) est reliée à l'unité de traitement par un bus ( 41) dédié à l'acquisition de données et par un bus ( 42) dédié à l'émission de données. Dispositif selon la revendication 14, caractérisé en ce que le premier bus ( 33) et le second bus ( 34) sont connectés à un multiplexeur ( 29) contrôlé par un arbitre ( 28) permettant de transférer alternati- vement un mot de donnée et le mot de contrôle associé sur le bus ( 41) dédié à l'acquisition. 16 Dispositif selon l'une des revendications 14 et 15, caractérisé en ce que le bus ( 42) dédié à l'émission est connecté à deux mémoires ( 31, 32) de type FIFO en parallèle, l'une recevant des mots de données et l'autre recevant leurs adresses respectives, ces deux mémoires ( 31, 32) étant lues simultanément pour transférer leur contenu respectivement sur le troisième bus ( 35) et le quatrième bus ( 36).